SiteGround Migrator - Version 2.0.0

Version Description

Download this release

Release Info

Developer ignatggeorgiev
Plugin Icon 128x128 SiteGround Migrator
Version 2.0.0
Comparing to
See all releases

Version 2.0.0

Files changed (89) hide show
  1. LICENSE.txt +339 -0
  2. README.txt +236 -0
  3. assets/css/main.min.css +44 -0
  4. assets/css/siteground-migrator-admin-rtl.css +1108 -0
  5. assets/css/siteground-migrator-admin.css +1114 -0
  6. assets/css/siteground-migrator-admin.scss +1461 -0
  7. assets/img/icon.svg +1 -0
  8. assets/img/migrator-icon.svg +1 -0
  9. assets/img/presentational-migrator-144x144.svg +1 -0
  10. assets/js/main.min.js +2 -0
  11. assets/js/main.min.js.LICENSE.txt +79 -0
  12. assets/js/siteground-migrator-admin.js +229 -0
  13. core/Activator/Activator.php +124 -0
  14. core/Admin/Admin.php +229 -0
  15. core/Api_Service/Api_Service.php +331 -0
  16. core/Background_Process/Background_Process.php +81 -0
  17. core/Background_Process/Siteground_WP_Background_Process.php +565 -0
  18. core/Background_Process/WP_Async_Request.php +163 -0
  19. core/Cli/Cli.php +18 -0
  20. core/Cli/Cli_Migrator.php +84 -0
  21. core/Database_Service/Database_Service.php +188 -0
  22. core/Deactivator/Deactivator.php +29 -0
  23. core/Directory_Service/Directory_Service.php +397 -0
  24. core/Email_Service/Email_Service.php +91 -0
  25. core/Field_Service/Settings_Field.php +194 -0
  26. core/Field_Service/Settings_Field_Text.php +32 -0
  27. core/Files_Service/Files_Service.php +394 -0
  28. core/Helper/Factory_Trait.php +50 -0
  29. core/Helper/Helper.php +205 -0
  30. core/Helper/Log_Service_Trait.php +83 -0
  31. core/Loader/Loader.php +245 -0
  32. core/Rest/Rest.php +152 -0
  33. core/Rest/Rest_Helper.php +129 -0
  34. core/Rest/Rest_Helper_Transfer_Service.php +311 -0
  35. core/Transfer_Service/Transfer_Service.php +595 -0
  36. index.php +1 -0
  37. languages/siteground-migrator-es_ES.mo +0 -0
  38. languages/siteground-migrator-es_ES.po +489 -0
  39. languages/siteground-migrator-it_IT.mo +0 -0
  40. languages/siteground-migrator-it_IT.po +482 -0
  41. manual-translations.php +5 -0
  42. react-strings.php +46 -0
  43. siteground-migrator.php +80 -0
  44. templates/email-templates/sg_migrator_failed.php +135 -0
  45. templates/email-templates/sg_migrator_successful.php +166 -0
  46. templates/email-templates/sg_migrator_successful_errors.php +194 -0
  47. templates/partials/cancel-transfer-confirmation.php +26 -0
  48. templates/partials/field-text.php +9 -0
  49. templates/partials/new-site-setup-info.php +86 -0
  50. templates/partials/siteground-migrator-admin-settings-page.php +35 -0
  51. templates/partials/transfer-fail.php +35 -0
  52. templates/partials/transfer-settings.php +95 -0
  53. templates/partials/transfer-success-warnings.php +99 -0
  54. templates/partials/transfer-success.php +23 -0
  55. uninstall.php +31 -0
  56. vendor/2createStudio/ShuttleExport/.gitignore +2 -0
  57. vendor/2createStudio/ShuttleExport/LICENSE +340 -0
  58. vendor/2createStudio/ShuttleExport/README.md +70 -0
  59. vendor/2createStudio/ShuttleExport/Vagrantfile +71 -0
  60. vendor/2createStudio/ShuttleExport/composer.json +26 -0
  61. vendor/2createStudio/ShuttleExport/demo.php +50 -0
  62. vendor/2createStudio/ShuttleExport/phpunit.xml +12 -0
  63. vendor/2createStudio/ShuttleExport/src/DBConn/DBConn.php +60 -0
  64. vendor/2createStudio/ShuttleExport/src/DBConn/Mysql.php +72 -0
  65. vendor/2createStudio/ShuttleExport/src/DBConn/Mysqli.php +69 -0
  66. vendor/2createStudio/ShuttleExport/src/Dump_File/Dump_File.php +43 -0
  67. vendor/2createStudio/ShuttleExport/src/Dump_File/Gzip.php +18 -0
  68. vendor/2createStudio/ShuttleExport/src/Dump_File/Plaintext.php +18 -0
  69. vendor/2createStudio/ShuttleExport/src/Dumper/Dumper.php +117 -0
  70. vendor/2createStudio/ShuttleExport/src/Dumper/Factory.php +21 -0
  71. vendor/2createStudio/ShuttleExport/src/Dumper/MysqldumpShellCommand.php +54 -0
  72. vendor/2createStudio/ShuttleExport/src/Dumper/Php.php +91 -0
  73. vendor/2createStudio/ShuttleExport/src/Exception.php +4 -0
  74. vendor/2createStudio/ShuttleExport/src/Exporter.php +15 -0
  75. vendor/2createStudio/ShuttleExport/src/Insert_Statement.php +47 -0
  76. vendor/2createStudio/ShuttleExport/src/Shell.php +26 -0
  77. vendor/2createStudio/ShuttleExport/tests/DumperTest.php +249 -0
  78. vendor/2createStudio/ShuttleExport/tests/bootstrap.php +2 -0
  79. vendor/autoload.php +12 -0
  80. vendor/composer/ClassLoader.php +572 -0
  81. vendor/composer/InstalledVersions.php +352 -0
  82. vendor/composer/LICENSE +21 -0
  83. vendor/composer/autoload_classmap.php +10 -0
  84. vendor/composer/autoload_namespaces.php +10 -0
  85. vendor/composer/autoload_psr4.php +13 -0
  86. vendor/composer/autoload_real.php +38 -0
  87. vendor/composer/autoload_static.php +62 -0
  88. vendor/composer/installed.json +141 -0
  89. vendor/composer/installed.php +44 -0
LICENSE.txt ADDED
@@ -0,0 +1,339 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ GNU GENERAL PUBLIC LICENSE
2
+ Version 2, June 1991
3
+
4
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
5
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6
+ Everyone is permitted to copy and distribute verbatim copies
7
+ of this license document, but changing it is not allowed.
8
+
9
+ Preamble
10
+
11
+ The licenses for most software are designed to take away your
12
+ freedom to share and change it. By contrast, the GNU General Public
13
+ License is intended to guarantee your freedom to share and change free
14
+ software--to make sure the software is free for all its users. This
15
+ General Public License applies to most of the Free Software
16
+ Foundation's software and to any other program whose authors commit to
17
+ using it. (Some other Free Software Foundation software is covered by
18
+ the GNU Lesser General Public License instead.) You can apply it to
19
+ your programs, too.
20
+
21
+ When we speak of free software, we are referring to freedom, not
22
+ price. Our General Public Licenses are designed to make sure that you
23
+ have the freedom to distribute copies of free software (and charge for
24
+ this service if you wish), that you receive source code or can get it
25
+ if you want it, that you can change the software or use pieces of it
26
+ in new free programs; and that you know you can do these things.
27
+
28
+ To protect your rights, we need to make restrictions that forbid
29
+ anyone to deny you these rights or to ask you to surrender the rights.
30
+ These restrictions translate to certain responsibilities for you if you
31
+ distribute copies of the software, or if you modify it.
32
+
33
+ For example, if you distribute copies of such a program, whether
34
+ gratis or for a fee, you must give the recipients all the rights that
35
+ you have. You must make sure that they, too, receive or can get the
36
+ source code. And you must show them these terms so they know their
37
+ rights.
38
+
39
+ We protect your rights with two steps: (1) copyright the software, and
40
+ (2) offer you this license which gives you legal permission to copy,
41
+ distribute and/or modify the software.
42
+
43
+ Also, for each author's protection and ours, we want to make certain
44
+ that everyone understands that there is no warranty for this free
45
+ software. If the software is modified by someone else and passed on, we
46
+ want its recipients to know that what they have is not the original, so
47
+ that any problems introduced by others will not reflect on the original
48
+ authors' reputations.
49
+
50
+ Finally, any free program is threatened constantly by software
51
+ patents. We wish to avoid the danger that redistributors of a free
52
+ program will individually obtain patent licenses, in effect making the
53
+ program proprietary. To prevent this, we have made it clear that any
54
+ patent must be licensed for everyone's free use or not licensed at all.
55
+
56
+ The precise terms and conditions for copying, distribution and
57
+ modification follow.
58
+
59
+ GNU GENERAL PUBLIC LICENSE
60
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
+
62
+ 0. This License applies to any program or other work which contains
63
+ a notice placed by the copyright holder saying it may be distributed
64
+ under the terms of this General Public License. The "Program", below,
65
+ refers to any such program or work, and a "work based on the Program"
66
+ means either the Program or any derivative work under copyright law:
67
+ that is to say, a work containing the Program or a portion of it,
68
+ either verbatim or with modifications and/or translated into another
69
+ language. (Hereinafter, translation is included without limitation in
70
+ the term "modification".) Each licensee is addressed as "you".
71
+
72
+ Activities other than copying, distribution and modification are not
73
+ covered by this License; they are outside its scope. The act of
74
+ running the Program is not restricted, and the output from the Program
75
+ is covered only if its contents constitute a work based on the
76
+ Program (independent of having been made by running the Program).
77
+ Whether that is true depends on what the Program does.
78
+
79
+ 1. You may copy and distribute verbatim copies of the Program's
80
+ source code as you receive it, in any medium, provided that you
81
+ conspicuously and appropriately publish on each copy an appropriate
82
+ copyright notice and disclaimer of warranty; keep intact all the
83
+ notices that refer to this License and to the absence of any warranty;
84
+ and give any other recipients of the Program a copy of this License
85
+ along with the Program.
86
+
87
+ You may charge a fee for the physical act of transferring a copy, and
88
+ you may at your option offer warranty protection in exchange for a fee.
89
+
90
+ 2. You may modify your copy or copies of the Program or any portion
91
+ of it, thus forming a work based on the Program, and copy and
92
+ distribute such modifications or work under the terms of Section 1
93
+ above, provided that you also meet all of these conditions:
94
+
95
+ a) You must cause the modified files to carry prominent notices
96
+ stating that you changed the files and the date of any change.
97
+
98
+ b) You must cause any work that you distribute or publish, that in
99
+ whole or in part contains or is derived from the Program or any
100
+ part thereof, to be licensed as a whole at no charge to all third
101
+ parties under the terms of this License.
102
+
103
+ c) If the modified program normally reads commands interactively
104
+ when run, you must cause it, when started running for such
105
+ interactive use in the most ordinary way, to print or display an
106
+ announcement including an appropriate copyright notice and a
107
+ notice that there is no warranty (or else, saying that you provide
108
+ a warranty) and that users may redistribute the program under
109
+ these conditions, and telling the user how to view a copy of this
110
+ License. (Exception: if the Program itself is interactive but
111
+ does not normally print such an announcement, your work based on
112
+ the Program is not required to print an announcement.)
113
+
114
+ These requirements apply to the modified work as a whole. If
115
+ identifiable sections of that work are not derived from the Program,
116
+ and can be reasonably considered independent and separate works in
117
+ themselves, then this License, and its terms, do not apply to those
118
+ sections when you distribute them as separate works. But when you
119
+ distribute the same sections as part of a whole which is a work based
120
+ on the Program, the distribution of the whole must be on the terms of
121
+ this License, whose permissions for other licensees extend to the
122
+ entire whole, and thus to each and every part regardless of who wrote it.
123
+
124
+ Thus, it is not the intent of this section to claim rights or contest
125
+ your rights to work written entirely by you; rather, the intent is to
126
+ exercise the right to control the distribution of derivative or
127
+ collective works based on the Program.
128
+
129
+ In addition, mere aggregation of another work not based on the Program
130
+ with the Program (or with a work based on the Program) on a volume of
131
+ a storage or distribution medium does not bring the other work under
132
+ the scope of this License.
133
+
134
+ 3. You may copy and distribute the Program (or a work based on it,
135
+ under Section 2) in object code or executable form under the terms of
136
+ Sections 1 and 2 above provided that you also do one of the following:
137
+
138
+ a) Accompany it with the complete corresponding machine-readable
139
+ source code, which must be distributed under the terms of Sections
140
+ 1 and 2 above on a medium customarily used for software interchange; or,
141
+
142
+ b) Accompany it with a written offer, valid for at least three
143
+ years, to give any third party, for a charge no more than your
144
+ cost of physically performing source distribution, a complete
145
+ machine-readable copy of the corresponding source code, to be
146
+ distributed under the terms of Sections 1 and 2 above on a medium
147
+ customarily used for software interchange; or,
148
+
149
+ c) Accompany it with the information you received as to the offer
150
+ to distribute corresponding source code. (This alternative is
151
+ allowed only for noncommercial distribution and only if you
152
+ received the program in object code or executable form with such
153
+ an offer, in accord with Subsection b above.)
154
+
155
+ The source code for a work means the preferred form of the work for
156
+ making modifications to it. For an executable work, complete source
157
+ code means all the source code for all modules it contains, plus any
158
+ associated interface definition files, plus the scripts used to
159
+ control compilation and installation of the executable. However, as a
160
+ special exception, the source code distributed need not include
161
+ anything that is normally distributed (in either source or binary
162
+ form) with the major components (compiler, kernel, and so on) of the
163
+ operating system on which the executable runs, unless that component
164
+ itself accompanies the executable.
165
+
166
+ If distribution of executable or object code is made by offering
167
+ access to copy from a designated place, then offering equivalent
168
+ access to copy the source code from the same place counts as
169
+ distribution of the source code, even though third parties are not
170
+ compelled to copy the source along with the object code.
171
+
172
+ 4. You may not copy, modify, sublicense, or distribute the Program
173
+ except as expressly provided under this License. Any attempt
174
+ otherwise to copy, modify, sublicense or distribute the Program is
175
+ void, and will automatically terminate your rights under this License.
176
+ However, parties who have received copies, or rights, from you under
177
+ this License will not have their licenses terminated so long as such
178
+ parties remain in full compliance.
179
+
180
+ 5. You are not required to accept this License, since you have not
181
+ signed it. However, nothing else grants you permission to modify or
182
+ distribute the Program or its derivative works. These actions are
183
+ prohibited by law if you do not accept this License. Therefore, by
184
+ modifying or distributing the Program (or any work based on the
185
+ Program), you indicate your acceptance of this License to do so, and
186
+ all its terms and conditions for copying, distributing or modifying
187
+ the Program or works based on it.
188
+
189
+ 6. Each time you redistribute the Program (or any work based on the
190
+ Program), the recipient automatically receives a license from the
191
+ original licensor to copy, distribute or modify the Program subject to
192
+ these terms and conditions. You may not impose any further
193
+ restrictions on the recipients' exercise of the rights granted herein.
194
+ You are not responsible for enforcing compliance by third parties to
195
+ this License.
196
+
197
+ 7. If, as a consequence of a court judgment or allegation of patent
198
+ infringement or for any other reason (not limited to patent issues),
199
+ conditions are imposed on you (whether by court order, agreement or
200
+ otherwise) that contradict the conditions of this License, they do not
201
+ excuse you from the conditions of this License. If you cannot
202
+ distribute so as to satisfy simultaneously your obligations under this
203
+ License and any other pertinent obligations, then as a consequence you
204
+ may not distribute the Program at all. For example, if a patent
205
+ license would not permit royalty-free redistribution of the Program by
206
+ all those who receive copies directly or indirectly through you, then
207
+ the only way you could satisfy both it and this License would be to
208
+ refrain entirely from distribution of the Program.
209
+
210
+ If any portion of this section is held invalid or unenforceable under
211
+ any particular circumstance, the balance of the section is intended to
212
+ apply and the section as a whole is intended to apply in other
213
+ circumstances.
214
+
215
+ It is not the purpose of this section to induce you to infringe any
216
+ patents or other property right claims or to contest validity of any
217
+ such claims; this section has the sole purpose of protecting the
218
+ integrity of the free software distribution system, which is
219
+ implemented by public license practices. Many people have made
220
+ generous contributions to the wide range of software distributed
221
+ through that system in reliance on consistent application of that
222
+ system; it is up to the author/donor to decide if he or she is willing
223
+ to distribute software through any other system and a licensee cannot
224
+ impose that choice.
225
+
226
+ This section is intended to make thoroughly clear what is believed to
227
+ be a consequence of the rest of this License.
228
+
229
+ 8. If the distribution and/or use of the Program is restricted in
230
+ certain countries either by patents or by copyrighted interfaces, the
231
+ original copyright holder who places the Program under this License
232
+ may add an explicit geographical distribution limitation excluding
233
+ those countries, so that distribution is permitted only in or among
234
+ countries not thus excluded. In such case, this License incorporates
235
+ the limitation as if written in the body of this License.
236
+
237
+ 9. The Free Software Foundation may publish revised and/or new versions
238
+ of the General Public License from time to time. Such new versions will
239
+ be similar in spirit to the present version, but may differ in detail to
240
+ address new problems or concerns.
241
+
242
+ Each version is given a distinguishing version number. If the Program
243
+ specifies a version number of this License which applies to it and "any
244
+ later version", you have the option of following the terms and conditions
245
+ either of that version or of any later version published by the Free
246
+ Software Foundation. If the Program does not specify a version number of
247
+ this License, you may choose any version ever published by the Free Software
248
+ Foundation.
249
+
250
+ 10. If you wish to incorporate parts of the Program into other free
251
+ programs whose distribution conditions are different, write to the author
252
+ to ask for permission. For software which is copyrighted by the Free
253
+ Software Foundation, write to the Free Software Foundation; we sometimes
254
+ make exceptions for this. Our decision will be guided by the two goals
255
+ of preserving the free status of all derivatives of our free software and
256
+ of promoting the sharing and reuse of software generally.
257
+
258
+ NO WARRANTY
259
+
260
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263
+ PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264
+ OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266
+ TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267
+ PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268
+ REPAIR OR CORRECTION.
269
+
270
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272
+ REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273
+ INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274
+ OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275
+ TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276
+ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277
+ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
+ POSSIBILITY OF SUCH DAMAGES.
279
+
280
+ END OF TERMS AND CONDITIONS
281
+
282
+ How to Apply These Terms to Your New Programs
283
+
284
+ If you develop a new program, and you want it to be of the greatest
285
+ possible use to the public, the best way to achieve this is to make it
286
+ free software which everyone can redistribute and change under these terms.
287
+
288
+ To do so, attach the following notices to the program. It is safest
289
+ to attach them to the start of each source file to most effectively
290
+ convey the exclusion of warranty; and each file should have at least
291
+ the "copyright" line and a pointer to where the full notice is found.
292
+
293
+ <one line to give the program's name and a brief idea of what it does.>
294
+ Copyright (C) <year> <name of author>
295
+
296
+ This program is free software; you can redistribute it and/or modify
297
+ it under the terms of the GNU General Public License as published by
298
+ the Free Software Foundation; either version 2 of the License, or
299
+ (at your option) any later version.
300
+
301
+ This program is distributed in the hope that it will be useful,
302
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
303
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304
+ GNU General Public License for more details.
305
+
306
+ You should have received a copy of the GNU General Public License along
307
+ with this program; if not, write to the Free Software Foundation, Inc.,
308
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
309
+
310
+ Also add information on how to contact you by electronic and paper mail.
311
+
312
+ If the program is interactive, make it output a short notice like this
313
+ when it starts in an interactive mode:
314
+
315
+ Gnomovision version 69, Copyright (C) year name of author
316
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317
+ This is free software, and you are welcome to redistribute it
318
+ under certain conditions; type `show c' for details.
319
+
320
+ The hypothetical commands `show w' and `show c' should show the appropriate
321
+ parts of the General Public License. Of course, the commands you use may
322
+ be called something other than `show w' and `show c'; they could even be
323
+ mouse-clicks or menu items--whatever suits your program.
324
+
325
+ You should also get your employer (if you work as a programmer) or your
326
+ school, if any, to sign a "copyright disclaimer" for the program, if
327
+ necessary. Here is a sample; alter the names:
328
+
329
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
331
+
332
+ <signature of Ty Coon>, 1 April 1989
333
+ Ty Coon, President of Vice
334
+
335
+ This General Public License does not permit incorporating your program into
336
+ proprietary programs. If your program is a subroutine library, you may
337
+ consider it more useful to permit linking proprietary applications with the
338
+ library. If this is what you want to do, use the GNU Lesser General
339
+ Public License instead of this License.
README.txt ADDED
@@ -0,0 +1,236 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === SiteGround Migrator ===
2
+ Contributors: Hristo Sg, sstoqnov, SiteGround, stoyangeorgiev, elenachavdarova
3
+ License: GPLv3
4
+ License URI: http://www.gnu.org/licenses/gpl.html
5
+ Tags: Transfer, Migration, SiteGround, automatic transfer, automatic migration
6
+ Requires at least: 4.8
7
+ Tested up to: 6.0
8
+ Requires PHP: 5.6.0
9
+
10
+ Transfer your WordPress website to SiteGround without any hassle in a completely automated way using SiteGround Migrator.
11
+
12
+ == Description ==
13
+
14
+ = SiteGround Migrator: the easiest way to move your site to SiteGround =
15
+
16
+ This plugin is designed to automate the transfer of a WordPress instance to a SiteGround hosting account. It can't be used to transfer a WordPress instance to another hosting provider.
17
+
18
+ Important: This solution is not suitable for migrating localhost WordPress sites or for Full Multisite installations (separate Multisite blogs are fine).
19
+
20
+ = How to Use =
21
+
22
+ First, you need to get a transfer token from your SiteGround account. You can do this through the WordPress Migrator tool located in the WordPress section of your SiteGround hosting control panel.
23
+
24
+ Once you select the domain name that you want to initiate the transfer for, our system will generate a transfer token for you.Paste the token in your SiteGround Migrator plugin and press Initiate Transfer. That's all!
25
+
26
+ == Installation ==
27
+
28
+ = Automatic Installation =
29
+
30
+ 1. Visit Plugins -> Add New
31
+ 1. Search for "SiteGround Migrator"
32
+ 1. Activate SiteGround Migrator from your Plugins page.
33
+ 1. Go to Plugins -> Activate SiteGround Migrator.
34
+
35
+ = Manual Installation =
36
+
37
+ 1. Upload the "siteground-migrator" folder to the "/wp-content/plugins/" directory
38
+ 1. Activate the SiteGround Migrator plugin through the 'Plugins' menu in WordPress
39
+ 1. Go to Plugins -> Activate SiteGround Migrator.
40
+
41
+ = WP-CLI Support =
42
+
43
+ In version 1.0.13 we've added WP-CLI command for migrations.
44
+
45
+ * wp migrator start transfertoken --email=your@email.com
46
+
47
+ == Changelog ==
48
+
49
+ = Version 2.0.0 =
50
+ Release Date: July 28th, 2022
51
+
52
+ * Brand New Design
53
+ * Code Refactoring
54
+
55
+ = Version 1.1.1 =
56
+ Release Date: May 19th, 2022
57
+
58
+ * Adding fallback for archives
59
+
60
+ = Version 1.1.0 =
61
+ Release Date: May 19th, 2022
62
+
63
+ * Improved Woocommerce compatibility
64
+
65
+ = Version 1.0.30 =
66
+ Release Date: April 12th, 2022
67
+
68
+ * Improved pre-migration checks
69
+
70
+ = Version 1.0.29 =
71
+ Release Date: February 23rd, 2022
72
+
73
+ * Improved pre-migration checks
74
+
75
+ = 1.0.28 =
76
+ * Improved pre-migration checks
77
+
78
+ = 1.0.27 =
79
+ * Improved error handling and pre-migration checks
80
+ * Added missing articles
81
+ * Fix utf-8 characters issues
82
+
83
+ = 1.0.26 =
84
+ * Improved error reporting
85
+
86
+ = 1.0.25 =
87
+ * Added hosting environment check
88
+
89
+ = 1.0.24 =
90
+ * Improved error handling
91
+
92
+ = 1.0.23 =
93
+ * Improved migration process
94
+
95
+ = 1.0.22 =
96
+ * Improved migration process
97
+
98
+ = 1.0.21 =
99
+ Release Date: March 19th, 2020
100
+ * Fixed RTL bug
101
+
102
+ = 1.0.20 =
103
+ Release Date: January 8th, 2020
104
+ * Custom dir support improvement
105
+
106
+ = 1.0.19 =
107
+ Release Date: January 8th, 2020
108
+ * Better support for custom setup hosting providers
109
+
110
+ = 1.0.18 =
111
+ Release Date: January 7th, 2020
112
+ * Better handling migrations with custom uploads folder
113
+ * Better handling migrations with custom hosts/ports
114
+
115
+ = 1.0.17 =
116
+ Release Date: October 23rd, 2019
117
+ * WordPress 5.3 Support Declared
118
+ * Added PHP 7.4 support
119
+
120
+ = 1.0.16 =
121
+ Release Date: September 19th, 2019
122
+ * Improved domain change checks
123
+
124
+ = 1.0.15 =
125
+ Release Date: June 4th, 2019
126
+ * Improved support for unorthodox filetypes
127
+
128
+ = 1.0.14 =
129
+ Release Date: June 4th, 2019
130
+ * Improved Email validation
131
+ * Improved migrator icon
132
+ * Better notices in case the host is missing
133
+
134
+ = 1.0.13 =
135
+ Release Date: February 25th, 2019
136
+ * Added WP-CLI support and example in the main page
137
+
138
+ = 1.0.12 =
139
+ Release Date: October 23th, 2018
140
+ * Better AES-128-CBC cipher method detection
141
+
142
+ = 1.0.11 =
143
+ Release Date: October 16th, 2018
144
+ * Fix typos in readme.txt
145
+
146
+ = 1.0.10 =
147
+ Release Date: October 10th, 2018
148
+ * Add rating box on success screen
149
+ * Update translations
150
+
151
+ = 1.0.9 =
152
+ Release Date: October 8th, 2018
153
+ * Fix authentication issue, due to missing parameters
154
+
155
+ = 1.0.8 =
156
+ Release Date: October 6th, 2018
157
+ * Add more precise check when trying to retrieve the `src_user`
158
+
159
+ = 1.0.7 =
160
+ Release Date: October 5th, 2018
161
+ * Add wp-content dir and other host params to init transfer
162
+
163
+ = 1.0.6 =
164
+ Release Date: September 13th, 2018
165
+ * Show the real error message from SiteGround api on failure.
166
+ * Hide annoying plugin notices on migrator page.
167
+ * Send wp-content dir to SiteGroud api.
168
+
169
+ = 1.0.5 =
170
+ Release Date: July 23th, 2018
171
+ * Handle fatal errors in background processes and display appropriate message to the user.
172
+
173
+ = 1.0.4 =
174
+ Release Date: July 16th, 2018
175
+ * Bug fixes
176
+
177
+ = 1.0.3 =
178
+ Release Date: July 16th, 2018
179
+ * Add fallback, when exec is not supported.
180
+
181
+ = 1.0.2 =
182
+ Release Date: July 13th, 2018
183
+ * Proper Multisite notifications
184
+ * Improved PHP Version check
185
+
186
+ = 1.0.1 =
187
+ Release Date: July 12th, 2018
188
+ * Added field for custom notification email
189
+ * Added PHP version check upon plugin activation
190
+ * Improved encryption process to save memory usage
191
+ * Fixed bug with the www prefix being considered as a domain change
192
+ * Improved support for custom database servers
193
+ * Improved support for Windows-based hosting environments
194
+ * Fixed a bug with the temporary link
195
+
196
+ = 1.0.0 =
197
+ Release Date: June 7th, 2018
198
+ * Initial Release
199
+
200
+ == Frequently Asked Questions ==
201
+
202
+ = Does it work with Localhost environments? =
203
+
204
+ We download your site content directly on the SiteGround server, that's why we can't access your content if it's hosted on a local environment.
205
+
206
+ = Does it work with WordPress.com? =
207
+
208
+ No, the plugin is designed to migrate from stand-alone WordPress installations. If you want to migrate from WordPress.com, please check the Guided Transfer service they offer.
209
+
210
+ = Does it work with Multisite? =
211
+
212
+ Due to the complexity of MS sites we don't migrate full MS networks at this point. However, separate blogs from a MS network can be migrated successfully.
213
+
214
+ = What content is migrated? =
215
+
216
+ We move only your WordPress content - themes, plugins, uploads. If you have other applications or content outside WordPress it will not be migrated
217
+
218
+ = Does it work only with cPanel hosts? =
219
+
220
+ No, we strive to make our plugin work flawlessly on every hosting environment.
221
+
222
+ = Transfer is completed but I didn't get a notification? =
223
+
224
+ The plugin uses your current site admin email to notify you that the transfer is completed. If it fails to send emails you may not receive one upon completion.
225
+
226
+ = I am getting transfer errors, now what? =
227
+
228
+ Unfortunately, our plugin works on environments that we have no control over. That's why it can fail or some hosts. In such cases, please contact our support team via a ticket in your Help Desk and we will assist you further!
229
+
230
+ == Screenshots ==
231
+
232
+ 1. Starting the transfer - paste your Migration Token and select notification email if you want
233
+ 2. If domains are different, the plugin will inform you about the changes we will make
234
+ 3. Downloading your site files to the SiteGround server
235
+ 4. Once data migration is completed, we will set your site on the new server, even change its url if necessary
236
+ 5. Migration completed! We've generated a temporary URL for you to verify your site on the new server
assets/css/main.min.css ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ :root{--padding-responsive: 30px}@media(max-width: 1500px){:root{--padding-responsive: 20px}}:root,.sg-theme-light{--color-primary: #5645f5;--color-primary-hovered: #1b0aa7;--color-primary-active: #9287fc;--color-secondary: #ebe9fa;--color-secondary-hovered: #d7d1f9;--color-secondary-active: #e8e7f4;--color-tertiary: #e8f0fb;--color-error: #e01e56;--color-success: #21ab61;--color-warning: #d78a33;--color-instruction: #2888b5;--color-info: #9b50d7;--color-hint: #868585}:root,.sg-theme-light{--background-main: #f9f9f9;--background-component-primary: #fff;--background-component-secondary: #efefef;--background-component-tertiary: var(--color-tertiary);--background-disabled: #ddd;--background-white: #fff;--background-slider: #ddd;--background-overlay: rgba(54, 54, 54, 0.8);--background-button-primary: var(--color-primary);--background-button-primary-hovered: var(--color-primary-hovered);--background-button-primary-active: var(--color-primary-active);--background-button-secondary: var(--color-secondary);--background-button-secondary-hovered: var(--color-secondary-hovered);--background-button-secondary-active: var(--color-secondary-active);--backround-popover-image-hover: rgba(0, 0, 0, 0.3)}:root,.sg-theme-light{--typography-white: #fff;--typography-light: #a4a4a4;--typography-dark: #363636;--typography-field-label-size: 14px;--typography-table-label-size: 14px}:root{--font-family-default: Roboto, Arial, Helvetica, sans-serif;--font-family-component: Poppins, Century Gothic, CenturyGothic, sans-serif}:root,.sg-theme-light{--color-scrollbar: #f2f2f2;--color-scrollbar-thumb: #ddd;--color-scrollbar-thumb-hover: #c2c2c2;--color-button-white: #fff;--color-icon-button: var(--color-primary);--color-editor-icon: var(--typography-light);--color-disabled: var(--typography-light);--border-color-outer: #ddd;--border-color-inner: #f2f2f2;--border-color-focus: #ddd;--border-color-default: #666;--component-background-hover: var(--color-tertiary);--component-color-hover: currentColor;--avatar-color: var(--color-primary);--avatar-background: var(--color-secondary);--context-menu-background: var(--background-component-primary);--chart-color-first: #2888b5;--chart-color-second: #d78a33;--chart-color-third: #21ab61;--chart-color-fourth: #4343f0;--chart-color-fifth: #86c87f;--chart-color-sixth: #9b50d7;--chart-color-seventh: #432667;--chart-color-eighth: #e01e56;--icon-color: #807d7d;--icon-color-light: var(--color-tertiary);--icon-color-lighter: var(--color-tertiary);--loader-spinner-background-primary: #0d1939;--loader-spinner-background-secondary: #4343f0;--loader-spinner-background-tertiary: #98b7ff;--loader-background: rgba(255, 255, 255, 0.75);--loader-background-dark: rgba(71, 67, 64, 0.8);--drawer-background: var(--background-main);--drawer-icon-color: var(--color-icon-button);--drawer-icon-background-hover: var(--color-tertiary);--header-background: #0d1939;--footer-background: transparent;--navigation-background: transparent;--navigation-background-hover: var(--color-tertiary);--navigation-list-color: var(--typography-dark);--navigation-list-color-selected: var(--typography-dark);--navigation-list-background: transparent;--navigation-list-background-opened: transparent;--navigation-list-background-hovered: var(--color-tertiary);--navigation-list-background-selected: #cce0fc;--navigation-icon-color: var(--icon-color);--navigation-icon-color-selected: var(--icon-color);--navigation-button-color: var(--typography-dark);--navigation-group-title-color: #c1aa95;--header-navigation-color: #fff;--header-navigation-color-hover: var(--typography-dark);--header-navigation-color-selected: var(--typography-dark);--header-navigation-background: transparent;--header-navigation-background-hover: var(--background-button-secondary);--header-navigation-background-selected: #fff;--header-second-navigation-background-selected: #fff;--header-support-navigation-background-selected: #fff;--section-background-white: var(--background-component-primary);--section-background-yellow: var(--header-second-navigation-background-selected);--section-background-light: var(--background-component-secondary);--section-background-dark: var(--header-background);--tooltip-color: #fff;--tooltip-background-light: #fff;--tooltip-background-dark: rgba(54, 54, 54, 0.9);--background-color-error-focused: #d21d22;--text-color-error-focused: #fff;--border-color-input-error-focused: #d21d22;--background-color-error-not-focused: #fae9ea;--text-color-error-not-focused: #d21d22;--border-color-input-error-not-focused: #fc8181}:root,.sg-theme-light{--first-level-box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.05), 0 1px 5px 0 rgba(0, 0, 0, 0.05);--second-level-box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.06), 0 4px 12px 0 rgba(0, 0, 0, 0.1);--third-level-box-shadow: 0 17px 40px 0 rgba(0, 0, 0, 0.17), 0 12px 15px 0 rgba(0, 0, 0, 0.2);--fourth-level-box-shadow: 0 25px 45px 0 rgba(0, 0, 0, 0.2), 0 16px 24px 0 rgba(0, 0, 0, 0.22);--fifth-level-box-shadow: 0 40px 60px 0 rgba(0, 0, 0, 0.22), 0 27px 22px 0 rgba(0, 0, 0, 0.2);--focus-shadow: inset 1px 1px 0 #24b8d2, inset -1px -1px 0 #24b8d2}.sg-theme-dark{--color-primary: #b2b2f8;--color-primary-hovered: #8c8cf9;--color-primary-active: #ceceff;--color-secondary: #484662;--color-secondary-hovered: #4c4a69;--color-secondary-active: #7b7995;--color-tertiary: #464e5b;--color-error: #fe7099;--color-success: #27c671;--color-warning: #f4a54a;--color-instruction: #3db7f0;--color-info: #ca8cfb;--color-hint: #a9a9a9}.sg-theme-dark{--background-main: #121212;--background-component-primary: #363636;--background-component-secondary: #444;--background-component-tertiary: var(--color-tertiary);--background-disabled: #666;--background-slider: #858484;--background-overlay: rgba(102, 102, 102, 0.95);--background-button-primary: var(--color-primary);--background-button-primary-hovered: var(--color-primary-hovered);--background-button-primary-active: var(--color-primary-active);--background-button-secondary: var(--color-secondary);--background-button-secondary-hovered: var(--color-secondary-hovered);--background-button-secondary-active: var(--color-secondary-active);--backround-popover-image-hover: rgba(0, 0, 0, 0.3)}.sg-theme-dark{--typography-white: #fff;--typography-light: #c2c2c2;--typography-dark: #fff}.sg-theme-dark{--color-scrollbar: #f2f2f2;--color-scrollbar-thumb: #ddd;--color-scrollbar-thumb-hover: #c2c2c2;--color-button-white: #363636;--color-icon-button: var(--color-primary);--color-disabled: #888;--border-color-outer: #858484;--border-color-inner: #444;--border-color-focus: #fff;--border-color-default: #858484;--component-background-hover: var(--color-tertiary);--component-color-hover: currentColor;--avatar-color: var(--color-primary);--avatar-background: var(--color-secondary);--context-menu-background: var(--background-component-primary);--chart-color-first: var(--color-instruction);--chart-color-second: var(--color-warning);--chart-color-third: var(--color-success);--chart-color-fourth: #7c7cee;--chart-color-fifth: #86c87f;--chart-color-sixth: var(--color-info);--chart-color-seventh: #c12aee;--chart-color-eighth: var(--color-error);--icon-color: #b9b9b9;--icon-color-light: var(--color-tertiary);--icon-color-lighter: var(--color-tertiary);--loader-background: rgba(54, 54, 54, 0.75);--loader-background-dark: rgba(54, 54, 54, 0.75);--drawer-background: var(--background-main);--drawer-icon-color: var(--color-icon-button);--drawer-icon-background-hover: var(--color-tertiary);--header-background: #363636;--footer-background: transparent;--navigation-background: transparent;--navigation-background-hover: var(--color-tertiary);--navigation-list-color: var(--typography-dark);--navigation-list-color-selected: var(--typography-dark);--navigation-list-background: transparent;--navigation-list-background-opened: transparent;--navigation-list-background-hovered: var(--color-tertiary);--navigation-list-background-selected: #44556e;--navigation-icon-color: var(--icon-color);--navigation-icon-color-selected: var(--icon-color);--navigation-button-color: var(--typography-dark);--navigation-group-title-color: #c1aa95;--header-navigation-color: #fff;--header-navigation-color-hover: var(--typography-dark);--header-navigation-color-selected: var(--typography-dark);--header-navigation-background: transparent;--header-navigation-background-hover: var(--background-button-secondary);--header-navigation-background-selected: #444;--header-second-navigation-background-selected: #444;--header-support-navigation-background-selected: #858484;--section-background-white: var(--background-component-secondary);--section-background-yellow: var(--background-component-secondary);--section-background-light: var(--background-component-secondary);--section-background-dark: var(--header-background);--tooltip-color: #fff;--tooltip-background-light: #fff;--tooltip-background-dark: #666;--text-color-error-focused: #fff;--background-color-error-focused: #f57d7d;--border-color-input-error-focused: #f57d7d;--background-color-error-not-focused: #3c3030;--text-color-error-not-focused: #f57d7d;--border-color-input-error-not-focused: #ab5b5b}.sg-theme-dark{--first-level-box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.05), 0 1px 5px 0 rgba(0, 0, 0, 0.05);--second-level-box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.06), 0 4px 12px 0 rgba(0, 0, 0, 0.1);--third-level-box-shadow: 0 17px 40px 0 rgba(0, 0, 0, 0.17), 0 12px 15px 0 rgba(0, 0, 0, 0.2);--fourth-level-box-shadow: 0 25px 45px 0 rgba(0, 0, 0, 0.2), 0 16px 24px 0 rgba(0, 0, 0, 0.22);--fifth-level-box-shadow: 0 40px 60px 0 rgba(0, 0, 0, 0.22), 0 27px 22px 0 rgba(0, 0, 0, 0.2);--focus-shadow: inset 1px 1px 0 #24b8d2, inset -1px -1px 0 #24b8d2}.sg-theme-hcb{--color-primary: #b2b2f8;--color-primary-hovered: #8c8cf9;--color-primary-active: #ceceff;--color-secondary: #484662;--color-secondary-hovered: #4c4a69;--color-secondary-active: #7b7995;--color-tertiary: #464e5b;--color-error: #fe7099;--color-success: #27c671;--color-warning: #f4a54a;--color-instruction: #3db7f0;--color-info: #ca8cfb;--color-hint: #a9a9a9}.sg-theme-hcb{--background-main: #000;--background-component-primary: #000;--background-component-secondary: #000;--background-component-tertiary: var(--color-tertiary);--background-disabled: #888;--background-slider: #fff;--background-overlay: rgba(102, 102, 102, 0.95);--background-highlight: #000;--backround-employee: #000;--backround-client: #000;--backround-popover-image-hover: rgba(0, 0, 0, 0.3)}.sg-theme-hcb{--typography-white: #fff;--typography-light: #fff;--typography-dark: #fff}.sg-theme-hcb{--color-scrollbar: #f2f2f2;--color-scrollbar-thumb: #ddd;--color-scrollbar-thumb-hover: #c2c2c2;--color-button-white: #000;--color-icon-button: #fff;--color-disabled: #888;--border-color-outer: #ececec;--border-color-inner: #ececec;--border-color-focus: #fff;--border-color-default: #fff;--high-contrast-foreground: #fff;--high-contrast-background: #000;--component-background-hover: #1797ae;--component-color-hover: currentColor;--avatar-color: #000;--avatar-background: #fff;--context-menu-background: #000;--icon-color-royal: #ececec;--icon-color-royal-light: transparent;--icon-color-royal-lighter: transparent;--icon-color-ocean: #ececec;--icon-color-ocean-light: transparent;--icon-color-ocean-lighter: transparent;--icon-color-mint: #ececec;--icon-color-mint-light: transparent;--icon-color-mint-lighter: transparent;--icon-color-grassy: #ececec;--icon-color-grassy-light: transparent;--icon-color-grassy-lighter: transparent;--icon-color-salmon: #ececec;--icon-color-salmon-light: transparent;--icon-color-salmon-lighter: transparent;--icon-color-sunset: #ececec;--icon-color-sunset-light: transparent;--icon-color-sunset-lighter: transparent;--icon-color-mango: #ececec;--icon-color-mango-light: transparent;--icon-color-mango-lighter: transparent;--icon-color-bronze: #ececec;--icon-color-bronze-light: transparent;--icon-color-bronze-lighter: transparent;--icon-logo-background-light: #fff;--loader-background: rgba(0, 0, 0, 0.75);--loader-background-dark: rgba(0, 0, 0, 0.75);--drawer-background: #000;--drawer-icon-color: #fff;--drawer-icon-background-hover: #858484;--header-background: #000;--footer-background: #000;--navigation-background: #000;--navigation-background-hover: #363636;--navigation-list-color: #363636;--navigation-list-color-selected: #363636;--navigation-list-background: #000;--navigation-list-background-opened: #000;--navigation-list-background-hovered: #444;--navigation-list-background-selected: #fff;--navigation-icon-color: #fff;--navigation-icon-color-selected: #000;--navigation-button-color: #fff;--navigation-group-title-color: #c1aa95;--header-navigation-color: #fff;--header-navigation-color-hover: #000;--header-navigation-color-selected: #000;--header-navigation-background: transparent;--header-navigation-background-hover: #fff;--header-navigation-background-selected: #fff;--header-second-navigation-background-selected: #000;--header-support-navigation-background-selected: #fff;--section-background-white: var(--background-component-primary);--section-background-yellow: var(--header-second-navigation-background-selected);--section-background-light: var(--background-component-secondary);--section-background-dark: var(--header-background);--tooltip-color: #fff;--tooltip-background-light: #000;--tooltip-background-dark: #000;--background-color-error-focused: #f98f8f;--text-color-error-focused: #000;--border-color-input-error-focused: #f98f8f;--background-color-error-not-focused: #000;--text-color-error-not-focused: #f98f8f;--border-color-input-error-not-focused: #f98f8f}.sg-theme-hcb{--first-level-box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.05), 0 1px 5px 0 rgba(0, 0, 0, 0.05);--second-level-box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.06), 0 4px 12px 0 rgba(0, 0, 0, 0.1);--third-level-box-shadow: 0 17px 40px 0 rgba(0, 0, 0, 0.17), 0 12px 15px 0 rgba(0, 0, 0, 0.2);--fourth-level-box-shadow: 0 25px 45px 0 rgba(0, 0, 0, 0.2), 0 16px 24px 0 rgba(0, 0, 0, 0.22);--fifth-level-box-shadow: 0 40px 60px 0 rgba(0, 0, 0, 0.22), 0 27px 22px 0 rgba(0, 0, 0, 0.2);--focus-shadow: inset 1px 1px 0 #24b8d2, inset -1px -1px 0 #24b8d2}.sg-theme-hcl{--color-primary: #0000ba;--color-primary-hovered: #1b0aa7;--color-primary-active: #7567f6;--color-secondary: #ebe9fa;--color-secondary-hovered: #d7d1f9;--color-secondary-active: #e8e7f4;--color-tertiary: #e8f0fb;--color-error: #932929;--color-success: #407a2e;--color-warning: #8e6025;--color-instruction: #4f2d61;--color-info: #166e7e;--color-hint: #c2c2c2}.sg-theme-hcl{--background-main: #fff;--background-component-primary: #fff;--background-component-secondary: #fff;--background-component-tertiary: var(--color-tertiary);--background-disabled: #888;--background-slider: #000;--background-overlay: rgba(255, 255, 255, 0.95);--background-highlight: #fff;--background-button-primary: var(--color-primary);--background-button-primary-hovered: var(--color-primary-hovered);--background-button-primary-active: var(--color-primary-active);--background-button-secondary: var(--color-secondary);--background-button-secondary-hovered: var(--color-secondary-hovered);--background-button-secondary-active: var(--color-secondary-active);--backround-popover-image-hover: rgba(0, 0, 0, 0.3)}.sg-theme-hcl{--typography-white: #000;--typography-light: #000;--typography-dark: #000}.sg-theme-hcl{--color-scrollbar: #f2f2f2;--color-scrollbar-thumb: #212121;--color-scrollbar-thumb-hover: #000;--color-button-white: #fff;--color-icon-button: #000;--color-disabled: #888;--border-color-outer: #000;--border-color-inner: #000;--border-color-focus: #000;--border-color-default: #000;--high-contrast-foreground: #000;--high-contrast-background: #fff;--component-background-hover: #1797ae;--component-color-hover: currentColor;--avatar-color: #fff;--avatar-background: #000;--context-menu-background: #fff;--icon-color: #000;--icon-color-light: var(--color-tertiary);--icon-color-lighter: var(--color-tertiary);--loader-background: rgba(255, 255, 255, 0.75);--loader-background-dark: rgba(255, 255, 255, 0.75);--drawer-background: #fff;--drawer-icon-color: #000;--drawer-icon-background-hover: #858484;--header-background: #fff;--footer-background: #fff;--navigation-background: #fff;--navigation-background-hover: #363636;--navigation-list-color: #363636;--navigation-list-color-selected: #fff;--navigation-list-background: #fff;--navigation-list-background-opened: #fff;--navigation-list-background-hovered: #ddd;--navigation-list-background-selected: #000;--navigation-icon-color: #000;--navigation-icon-color-selected: #fff;--navigation-button-color: #000;--navigation-group-title-color: #c1aa95;--header-navigation-color: #000;--header-navigation-color-hover: #fff;--header-navigation-color-selected: #fff;--header-navigation-background: transparent;--header-navigation-background-hover: #000;--header-navigation-background-selected: #000;--header-second-navigation-background-selected: #fff;--header-support-navigation-background-selected: #000;--section-background-white: var(--background-component-primary);--section-background-yellow: var(--header-second-navigation-background-selected);--section-background-light: var(--background-component-secondary);--section-background-dark: var(--header-background);--tooltip-color: #000;--tooltip-background-light: #fff;--tooltip-background-dark: #fff;--background-color-error-focused: #a92222;--text-color-error-focused: #fff;--border-color-input-error-focused: #a92222;--background-color-error-not-focused: #fff;--text-color-error-not-focused: #a92222;--border-color-input-error-not-focused: #a92222}.sg-theme-hcl{--first-level-box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.05), 0 1px 5px 0 rgba(0, 0, 0, 0.05);--second-level-box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.06), 0 4px 12px 0 rgba(0, 0, 0, 0.1);--third-level-box-shadow: 0 17px 40px 0 rgba(0, 0, 0, 0.17), 0 12px 15px 0 rgba(0, 0, 0, 0.2);--fourth-level-box-shadow: 0 25px 45px 0 rgba(0, 0, 0, 0.2), 0 16px 24px 0 rgba(0, 0, 0, 0.22);--fifth-level-box-shadow: 0 40px 60px 0 rgba(0, 0, 0, 0.22), 0 27px 22px 0 rgba(0, 0, 0, 0.2);--focus-shadow: inset 1px 1px 0 #24b8d2, inset -1px -1px 0 #24b8d2}@font-face{font-family:"Roboto";font-style:normal;font-weight:400;font-display:swap;src:local("Roboto"),local("Roboto-Regular"),local("sans-serif"),url("https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu7GxKKTU1Kvnz.woff2") format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Roboto";font-style:normal;font-weight:400;font-display:swap;src:local("Roboto"),local("Roboto-Regular"),local("sans-serif"),url("https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Roboto";font-style:normal;font-weight:500;font-display:swap;src:local("Roboto Medium"),local("Roboto-Medium"),local("sans-serif-medium"),url("https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fChc4AMP6lbBP.woff2") format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Roboto";font-style:normal;font-weight:500;font-display:swap;src:local("Roboto Medium"),local("Roboto-Medium"),local("sans-serif-medium"),url("https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmEU9fBBc4AMP6lQ.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Roboto";font-style:normal;font-weight:700;font-display:swap;src:local("Roboto Bold"),local("Roboto-Bold"),local("sans-serif"),url("https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfChc4AMP6lbBP.woff2") format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Roboto";font-style:normal;font-weight:700;font-display:swap;src:local("Roboto Bold"),local("Roboto-Bold"),local("sans-serif"),url("https://fonts.gstatic.com/s/roboto/v20/KFOlCnqEu92Fr1MmWUlfBBc4AMP6lQ.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Poppins";font-style:normal;font-weight:400;font-display:swap;src:local("Poppins"),local("Poppins-Regular"),local("sans-serif"),url("https://fonts.gstatic.com/s/poppins/v19/pxiEyp8kv8JHgFVrJJnecnFHGPezSQ.woff2") format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Poppins";font-style:normal;font-weight:400;font-display:swap;src:local("Poppins"),local("Poppins-Regular"),local("sans-serif"),url("https://fonts.gstatic.com/s/poppins/v19/pxiEyp8kv8JHgFVrJJfecnFHGPc.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Poppins";font-style:normal;font-weight:500;font-display:swap;src:local("Poppins Medium"),local("Poppins-Medium"),local("sans-serif"),url("https://fonts.gstatic.com/s/poppins/v19/pxiByp8kv8JHgFVrLGT9Z1JlFd2JQEl8qw.woff2") format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Poppins";font-style:normal;font-weight:500;font-display:swap;src:local("Poppins Medium"),local("Poppins-Medium"),local("sans-serif"),url("https://fonts.gstatic.com/s/poppins/v19/pxiByp8kv8JHgFVrLGT9Z1xlFd2JQEk.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Poppins";font-style:normal;font-weight:700;font-display:swap;src:local("Poppins Bold"),local("Poppins-Bold"),local("sans-serif"),url("https://fonts.gstatic.com/s/poppins/v19/pxiByp8kv8JHgFVrLCz7Z1JlFd2JQEl8qw.woff2") format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Poppins";font-style:normal;font-weight:700;font-display:swap;src:local("Poppins Bold"),local("Poppins-Bold"),local("sans-serif"),url("https://fonts.gstatic.com/s/poppins/v19/pxiByp8kv8JHgFVrLCz7Z1xlFd2JQEk.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*{box-sizing:border-box;margin:0;padding:0;scrollbar-face-color:var(--color-scrollbar);scrollbar-highlight-color:var(--color-scrollbar);scrollbar-shadow-color:var(--color-scrollbar);scrollbar-track-color:var(--color-scrollbar);-webkit-overflow-scrolling:touch}::-webkit-scrollbar{width:8px;height:8px;background-color:var(--color-scrollbar)}::-webkit-scrollbar-thumb{background-color:var(--color-scrollbar-thumb);border-radius:12px}::-webkit-scrollbar-thumb:hover{background-color:var(--color-scrollbar-thumb-hover)}::-webkit-scrollbar-corner{background-color:var(--color-scrollbar)}header,nav,section,main,article,aside,figure,toolbar,iframe,object,svg{display:block}html{background:#fff;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body{color:var(--typography-dark);background:var(--background-main);font-weight:400;font-size:16px;font-family:var(--font-family-default);line-height:26px}h1,h2,h3,h4,h5,h6{line-height:normal}dl,dt,dd,ul{list-style:none}ol{padding:0 0 0 20px}form,input,textarea,select{resize:none}form,textarea{width:100%}input,textarea,select{border-radius:0}input:focus,textarea:focus,select:focus{outline:none}input[type=submit]:focus,textarea[type=submit]:focus,select[type=submit]:focus{border:none !important}input:-internal-autofill-selected,textarea:-internal-autofill-selected,select:-internal-autofill-selected{transition:background-color 600000s 0s,color 600000s 0s}button{outline:none;border-radius:0}img{max-width:100%;height:auto;display:block;border:0}table{border-collapse:collapse}a{text-decoration:none;color:#000}:root{--z-index-page: 10;--z-index-pageHeader: 20;--z-index-drawer: 30;--z-index-sgValidation: 40;--z-index-dropdown: 50;--z-index-sticky: 60;--z-index-fixed: 70;--z-index-filter: 80;--z-index-chat: 90;--z-index-loadingModal: 100;--z-index-modalBackground: 110;--z-index-modal: 120;--z-index-contextWraper: 130;--z-index-chatNotificaion: 140;--z-index-notification: 150;--z-index-popover: 160;--z-index-popoverZoomIn: 170;--z-index-tooltip: 180}#wpcontent{background:var(--background-main)}#adminmenu .wp-menu-image img{display:inline}.sg-migrator{min-height:100vh}.sg-migrator h1,.sg-migrator h2,.sg-migrator h3,.sg-migrator h4,.sg-migrator h5,.sg-migrator h6,.sg-migrator p,.sg-migrator li{margin:0}.sg-migrator input[type=checkbox],.sg-migrator input[type=radio]{display:none}.sg-dialog h1,.sg-dialog h2,.sg-dialog h3,.sg-dialog h4,.sg-dialog h5,.sg-dialog h6,.sg-dialog p,.sg-dialog li{margin:0}.sg-dialog input[type=checkbox],.sg-dialog input[type=radio]{display:none}
2
+ .sg-section{width:100%;transition:-webkit-transform 300ms linear 0ms;transition:transform 300ms linear 0ms;transition:transform 300ms linear 0ms, -webkit-transform 300ms linear 0ms}.sg-section+.sg-section{padding-top:0}.sg-section__content{margin:0 auto;max-width:1440px}.sg-section--expanded .sg-section__content{max-width:none}.sg-section--density-none .sg-section__content{padding-left:0;padding-right:0}.sg-section--density-cozy{padding-top:20px;padding-bottom:20px}.sg-section--density-cozy .sg-section__content{padding-left:20px;padding-right:20px}.sg-section--theme-white{background-color:var(--section-background-white)}.sg-section--theme-dark{background-color:var(--section-background-dark)}.sg-section--theme-light{background-color:var(--section-background-light)}.sg-section--theme-yellow{background-color:var(--section-background-yellow)}
3
+ .sg-title--level-1{font-size:40px;line-height:56px}.sg-title--level-2{font-size:32px;line-height:40px}.sg-title--level-3{font-size:26px;line-height:36px}.sg-title--level-4{font-size:22px;line-height:32px}.sg-title--level-5{font-size:18px;line-height:28px}.sg-title--level-6{font-size:18px;line-height:28px;text-transform:uppercase}.sg-title{font-family:var(--font-family-component);max-width:100%}.sg-title:focus{outline:none}.sg-keyboard .sg-title:focus{outline:none;box-shadow:var(--focus-shadow)}.sg-title--density-airy.sg-title--level-1{padding:32px 0}.sg-title--density-airy.sg-title--level-2{padding:34px 0}.sg-title--density-airy.sg-title--level-3{padding:34px 0}.sg-title--density-airy.sg-title--level-4{padding:36px 0}.sg-title--density-airy.sg-title--level-5{padding:35px 0}.sg-title--density-airy.sg-title--level-6{padding:35px 0}.sg-title--density-comfortable.sg-title--level-1{padding:22px 0}.sg-title--density-comfortable.sg-title--level-2{padding:24px 0}.sg-title--density-comfortable.sg-title--level-3{padding:24px 0}.sg-title--density-comfortable.sg-title--level-4{padding:26px 0}.sg-title--density-comfortable.sg-title--level-5{padding:25px 0}.sg-title--density-comfortable.sg-title--level-6{padding:25px 0}.sg-title--density-cozy.sg-title--level-1{padding:12px 0}.sg-title--density-cozy.sg-title--level-2{padding:14px 0}.sg-title--density-cozy.sg-title--level-3{padding:14px 0}.sg-title--density-cozy.sg-title--level-4{padding:16px 0}.sg-title--density-cozy.sg-title--level-5{padding:15px 0}.sg-title--density-cozy.sg-title--level-6{padding:15px 0}.sg-title--density-compact.sg-title--level-1{padding:2px 0}.sg-title--density-compact.sg-title--level-2{padding:4px 0}.sg-title--density-compact.sg-title--level-3{padding:4px 0}.sg-title--density-compact.sg-title--level-4{padding:6px 0}.sg-title--density-compact.sg-title--level-5{padding:5px 0}.sg-title--density-compact.sg-title--level-6{padding:5px 0}.sg-title--density-none{padding:0}@media(max-width: 1500px){.sg-title--level-1{font-size:30px;line-height:46px}.sg-title--level-2{font-size:28px;line-height:38px}.sg-title--level-3{font-size:24px;line-height:34px}.sg-title--level-4{font-size:20px;line-height:30px}.sg-title--density-airy.sg-title--level-1{padding:16px 0}.sg-title--density-airy.sg-title--level-2{padding:18px 0}.sg-title--density-airy.sg-title--level-3{padding:18px 0}.sg-title--density-airy.sg-title--level-4{padding:20px 0}.sg-title--density-airy.sg-title--level-5{padding:22px 0}.sg-title--density-airy.sg-title--level-6{padding:22px 0}.sg-title--density-comfortable.sg-title--level-1{padding:6px 0}.sg-title--density-comfortable.sg-title--level-2{padding:8px 0}.sg-title--density-comfortable.sg-title--level-3{padding:8px 0}.sg-title--density-comfortable.sg-title--level-4{padding:10px 0}.sg-title--density-comfortable.sg-title--level-5{padding:10px 0}.sg-title--density-comfortable.sg-title--level-6{padding:10px 0}.sg-title--density-cozy.sg-title--level-4{padding:10px 0}.sg-title--density-cozy.sg-title--level-5{padding:10px 0}.sg-title--density-cozy.sg-title--level-6{padding:10px 0}}
4
+ .sg-with-color.sg-with-color--color-primary{color:var(--color-primary)}.sg-with-color.sg-with-color--color-success{color:var(--color-success)}.sg-with-color.sg-with-color--color-error{color:var(--color-error)}.sg-with-color.sg-with-color--color-warning{color:var(--color-warning)}.sg-with-color.sg-with-color--color-info{color:var(--color-info)}.sg-with-color.sg-with-color--color-instruction{color:var(--color-instruction)}.sg-with-color.sg-with-color--color-white{color:var(--typography-white)}.sg-with-color.sg-with-color--color-light{color:var(--typography-light)}.sg-with-color.sg-with-color--color-dark{color:var(--typography-dark)}
5
+ .sg-typography--align-left{text-align:left;align-self:flex-start}.sg-typography--align-center{text-align:center;align-self:center}.sg-typography--align-right{text-align:right;align-self:flex-end}.sg-typography--transform-capitalize{text-transform:capitalize}.sg-typography--transform-lowercase{text-transform:lowercase}.sg-typography--transform-uppercase{text-transform:uppercase}.sg-typography--weight-light{font-weight:300}.sg-typography--weight-regular{font-weight:400}.sg-typography--weight-medium{font-weight:500}.sg-typography--weight-bold{font-weight:600}.sg-typography--weight-extra-bold{font-weight:700}.sg-typography--italic{font-style:italic}.sg-typography--truncate{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sg-typography--break-all{word-break:break-all}.sg-typography--break-word{word-break:break-word}
6
+ .sg-card{border-radius:12px;background:var(--background-component-primary);border:1px solid transparent;position:relative}.sg-card:focus{outline:none}.sg-keyboard .sg-card:focus{outline:none;box-shadow:var(--focus-shadow)}.sg-card__content-wrapper--row{height:100%;grid-auto-flow:row;grid-template-rows:auto 1fr}.sg-card__content-wrapper--row .sg-card__content{text-align:center}.sg-card__content-wrapper--column{grid-auto-flow:column}.sg-card__content-wrapper--column .sg-card__content{text-align:left}.sg-card__content-wrapper--column.sg-card__content-wrapper{grid-template-columns:160px 1fr}.sg-card__content-wrapper--column.sg-card__content-wrapper--divided{grid-template-columns:160px 1px 1fr}.sg-card--outline-shadow{box-shadow:var(--first-level-box-shadow)}.sg-card--outline-shadow:focus{outline:none}.sg-keyboard .sg-card--outline-shadow:focus{outline:none;box-shadow:var(--first-level-box-shadow),var(--focus-shadow)}.sg-card--outline-border{border:1px solid var(--border-color-outer)}.sg-card--selected::before{content:" ";position:absolute;display:block;top:-1px;bottom:-1px;right:-1px;left:-1px;border:2px solid var(--background-button-primary-hovered);border-radius:12px;pointer-events:none}.sg-card__icon-wrapper{text-align:center}.sg-card__divider::before{content:" ";position:absolute;display:block;top:0;bottom:0;border-left:1px solid var(--border-color-outer)}.sg-card__content--vertical{text-align:center;grid-template-rows:auto 1fr}.sg-card__content--vertical .sg-card__actions-wrapper{align-self:flex-end}
7
+ .sg-with-padding.sg-with-padding.sg-with-padding--padding-top-none{padding-top:0}.sg-with-padding.sg-with-padding.sg-with-padding--padding-right-none{padding-right:0}.sg-with-padding.sg-with-padding.sg-with-padding--padding-bottom-none{padding-bottom:0}.sg-with-padding.sg-with-padding.sg-with-padding--padding-left-none{padding-left:0}.sg-with-padding.sg-with-padding.sg-with-padding--padding-top-xx-small{padding-top:5px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-right-xx-small{padding-right:5px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-bottom-xx-small{padding-bottom:5px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-left-xx-small{padding-left:5px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-top-x-small{padding-top:10px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-right-x-small{padding-right:10px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-bottom-x-small{padding-bottom:10px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-left-x-small{padding-left:10px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-top-small{padding-top:15px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-right-small{padding-right:15px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-bottom-small{padding-bottom:15px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-left-small{padding-left:15px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-top-medium{padding-top:20px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-right-medium{padding-right:20px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-bottom-medium{padding-bottom:20px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-left-medium{padding-left:20px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-top-large{padding-top:30px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-right-large{padding-right:30px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-bottom-large{padding-bottom:30px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-left-large{padding-left:30px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-top-x-large{padding-top:40px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-right-x-large{padding-right:40px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-bottom-x-large{padding-bottom:40px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-left-x-large{padding-left:40px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-top-xx-large{padding-top:60px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-right-xx-large{padding-right:60px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-bottom-xx-large{padding-bottom:60px}.sg-with-padding.sg-with-padding.sg-with-padding--padding-left-xx-large{padding-left:60px}.sg-with-padding--padding-top-responsive{padding-top:30px}.sg-with-padding--padding-right-responsive{padding-right:30px}.sg-with-padding--padding-bottom-responsive{padding-bottom:30px}.sg-with-padding--padding-left-responsive{padding-left:30px}@media(max-width: 1500px){.sg-with-padding--padding-top-responsive{padding-top:20px}.sg-with-padding--padding-right-responsive{padding-right:20px}.sg-with-padding--padding-bottom-responsive{padding-bottom:20px}.sg-with-padding--padding-left-responsive{padding-left:20px}}
8
+ .sg-grid{display:grid;border-radius:inherit}.sg-grid:focus{outline:none}.sg-keyboard .sg-grid:focus{outline:none;box-shadow:var(--focus-shadow)}.sg-grid>*{min-width:0}.sg-grid--justify-flex-start{justify-content:flex-start}.sg-grid--justify-center{justify-content:center}.sg-grid--justify-flex-end{justify-content:flex-end}.sg-grid--justify-space-between{justify-content:space-between}.sg-grid--justify-space-around{justify-content:space-around}.sg-grid--justify-items-flex-start{justify-items:flex-start}.sg-grid--justify-items-center{justify-items:center}.sg-grid--justify-items-flex-end{justify-items:flex-end}.sg-grid--justify-items-space-between{justify-items:space-between}.sg-grid--justify-items-space-around{justify-items:space-around}.sg-grid--align-self-flex-start{align-self:flex-start}.sg-grid--align-self-center{align-self:center}.sg-grid--align-self-start{align-self:start}.sg-grid--align-self-end{align-self:end}.sg-grid--align-self-self-start{align-self:self-start}.sg-grid--align-self-self-start{align-self:self-end}.sg-grid--align-self-flex-end{align-self:flex-end}.sg-grid--align-self-baseline{align-self:baseline}.sg-grid--align-self-stretch{align-self:stretch}.sg-grid--align-flex-start{align-items:flex-start}.sg-grid--align-center{align-items:center}.sg-grid--align-flex-end{align-items:flex-end}.sg-grid--align-baseline{align-items:baseline}.sg-grid--align-stretch{align-items:stretch}.sg-grid--autoflow-row{grid-auto-flow:row}.sg-grid--autoflow-column{grid-auto-flow:column}.sg-grid--gap-none{grid-gap:0}.sg-grid--gap-xx-small{grid-gap:5px}.sg-grid--gap-x-small{grid-gap:10px}.sg-grid--gap-small{grid-gap:15px}.sg-grid--gap-medium{grid-gap:20px}.sg-grid--gap-large{grid-gap:30px}.sg-grid--gap-x-large{grid-gap:40px}.sg-grid--gap-xx-large{grid-gap:60px}.sg-grid--gap-responsive{grid-gap:30px}@media(max-width: 1500px){.sg-grid--gap-responsive{grid-gap:20px}}.sg-grid--xs-1{grid-template-columns:repeat(1, 1fr)}.sg-grid--xs-2{grid-template-columns:repeat(2, 1fr)}.sg-grid--xs-3{grid-template-columns:repeat(3, 1fr)}.sg-grid--xs-4{grid-template-columns:repeat(4, 1fr)}.sg-grid--xs-5{grid-template-columns:repeat(5, 1fr)}.sg-grid--xs-6{grid-template-columns:repeat(6, 1fr)}.sg-grid--xs-7{grid-template-columns:repeat(7, 1fr)}.sg-grid--xs-8{grid-template-columns:repeat(8, 1fr)}.sg-grid--xs-9{grid-template-columns:repeat(9, 1fr)}.sg-grid--xs-10{grid-template-columns:repeat(10, 1fr)}.sg-grid--xs-11{grid-template-columns:repeat(11, 1fr)}.sg-grid--xs-12{grid-template-columns:repeat(12, 1fr)}.sg-grid--xs-13{grid-template-columns:repeat(13, 1fr)}.sg-grid--xs-14{grid-template-columns:repeat(14, 1fr)}@media(min-width: 801px){.sg-grid--sm-1{grid-template-columns:repeat(1, 1fr)}.sg-grid--sm-2{grid-template-columns:repeat(2, 1fr)}.sg-grid--sm-3{grid-template-columns:repeat(3, 1fr)}.sg-grid--sm-4{grid-template-columns:repeat(4, 1fr)}.sg-grid--sm-5{grid-template-columns:repeat(5, 1fr)}.sg-grid--sm-6{grid-template-columns:repeat(6, 1fr)}.sg-grid--sm-7{grid-template-columns:repeat(7, 1fr)}.sg-grid--sm-8{grid-template-columns:repeat(8, 1fr)}.sg-grid--sm-9{grid-template-columns:repeat(9, 1fr)}.sg-grid--sm-10{grid-template-columns:repeat(10, 1fr)}.sg-grid--sm-11{grid-template-columns:repeat(11, 1fr)}.sg-grid--sm-12{grid-template-columns:repeat(12, 1fr)}.sg-grid--sm-13{grid-template-columns:repeat(13, 1fr)}.sg-grid--sm-14{grid-template-columns:repeat(14, 1fr)}.sg-grid--auto-fit{grid-template-columns:repeat(auto-fit, minmax(0, 1fr))}}@media(min-width: 1024px){.sg-grid--m-1{grid-template-columns:repeat(1, 1fr)}.sg-grid--m-2{grid-template-columns:repeat(2, 1fr)}.sg-grid--m-3{grid-template-columns:repeat(3, 1fr)}.sg-grid--m-4{grid-template-columns:repeat(4, 1fr)}.sg-grid--m-5{grid-template-columns:repeat(5, 1fr)}.sg-grid--m-6{grid-template-columns:repeat(6, 1fr)}.sg-grid--m-7{grid-template-columns:repeat(7, 1fr)}.sg-grid--m-8{grid-template-columns:repeat(8, 1fr)}.sg-grid--m-9{grid-template-columns:repeat(9, 1fr)}.sg-grid--m-10{grid-template-columns:repeat(10, 1fr)}.sg-grid--m-11{grid-template-columns:repeat(11, 1fr)}.sg-grid--m-12{grid-template-columns:repeat(12, 1fr)}.sg-grid--m-13{grid-template-columns:repeat(13, 1fr)}.sg-grid--m-14{grid-template-columns:repeat(14, 1fr)}}@media(min-width: 1501px){.sg-grid--lg-1{grid-template-columns:repeat(1, 1fr)}.sg-grid--lg-2{grid-template-columns:repeat(2, 1fr)}.sg-grid--lg-3{grid-template-columns:repeat(3, 1fr)}.sg-grid--lg-4{grid-template-columns:repeat(4, 1fr)}.sg-grid--lg-5{grid-template-columns:repeat(5, 1fr)}.sg-grid--lg-6{grid-template-columns:repeat(6, 1fr)}.sg-grid--lg-7{grid-template-columns:repeat(7, 1fr)}.sg-grid--lg-8{grid-template-columns:repeat(8, 1fr)}.sg-grid--lg-9{grid-template-columns:repeat(9, 1fr)}.sg-grid--lg-10{grid-template-columns:repeat(10, 1fr)}.sg-grid--lg-11{grid-template-columns:repeat(11, 1fr)}.sg-grid--lg-12{grid-template-columns:repeat(12, 1fr)}.sg-grid--lg-13{grid-template-columns:repeat(13, 1fr)}.sg-grid--lg-14{grid-template-columns:repeat(14, 1fr)}}
9
+ .sg-with-border{border-radius:12px}.sg-with-border--radius-none{border-radius:0}.sg-with-border--radius-inherit{border-radius:inherit}.sg-with-border--border-top-none{border-top:0 solid var(--border-color-outer)}.sg-with-border--border-right-none{border-right:0 solid var(--border-color-outer)}.sg-with-border--border-bottom-none{border-bottom:0 solid var(--border-color-outer)}.sg-with-border--border-left-none{border-left:0 solid var(--border-color-outer)}.sg-with-border--border-top-small{border-top:1px solid var(--border-color-outer)}.sg-with-border--border-right-small{border-right:1px solid var(--border-color-outer)}.sg-with-border--border-bottom-small{border-bottom:1px solid var(--border-color-outer)}.sg-with-border--border-left-small{border-left:1px solid var(--border-color-outer)}.sg-with-border--border-top-medium{border-top:2px solid var(--border-color-outer)}.sg-with-border--border-right-medium{border-right:2px solid var(--border-color-outer)}.sg-with-border--border-bottom-medium{border-bottom:2px solid var(--border-color-outer)}.sg-with-border--border-left-medium{border-left:2px solid var(--border-color-outer)}.sg-with-border--border-top-inherit{border-top:inherit solid var(--border-color-outer)}.sg-with-border--border-right-inherit{border-right:inherit solid var(--border-color-outer)}.sg-with-border--border-bottom-inherit{border-bottom:inherit solid var(--border-color-outer)}.sg-with-border--border-left-inherit{border-left:inherit solid var(--border-color-outer)}
10
+ .sg-icon{display:inline-block;flex-grow:0;flex-shrink:0}.sg-icon:focus{outline:none}.sg-keyboard .sg-icon:focus{outline:none;box-shadow:var(--focus-shadow)}.sg-icon svg{fill:currentColor}.sg-icon .theme-foreground{fill:#fff}.sg-theme-hcl .sg-icon .theme-foreground{fill:#000}.sg-icon--presized svg{max-width:100%;max-height:100%}.sg-icon--interactive{cursor:pointer}.sg-icon--use-css-colors path,.sg-icon--use-css-colors polygon,.sg-icon--use-css-colors circle,.sg-icon--use-css-colors rect,.sg-icon--use-css-colors ellipse{fill:currentColor}.sg-icon--color-info path,.sg-icon--color-info polygon,.sg-icon--color-info circle,.sg-icon--color-info rect,.sg-icon--color-info ellipse{fill:var(--icon-color-royal)}.sg-icon--color-info.sg-icon--fill-light .sgmaincolor{fill:var(--icon-color-royal-light)}.sg-icon--color-info.sg-icon--fill-lighter .sgmaincolor{fill:var(--icon-color-royal-lighter)}.sg-icon--color-primary path,.sg-icon--color-primary polygon,.sg-icon--color-primary circle,.sg-icon--color-primary rect,.sg-icon--color-primary ellipse{fill:var(--icon-color)}.sg-icon--color-primary.sg-icon--fill-light .sgmaincolor{fill:var(--icon-color-light)}.sg-icon--color-primary.sg-icon--fill-lighter .sgmaincolor{fill:var(--icon-color-lighter)}.sg-icon--color-success path,.sg-icon--color-success polygon,.sg-icon--color-success circle,.sg-icon--color-success rect,.sg-icon--color-success ellipse{fill:var(--icon-color-mint)}.sg-icon--color-success.sg-icon--fill-light .sgmaincolor{fill:var(--icon-color-mint-light)}.sg-icon--color-success.sg-icon--fill-lighter .sgmaincolor{fill:var(--icon-color-mint-lighter)}.sg-icon--color-warning path,.sg-icon--color-warning polygon,.sg-icon--color-warning circle,.sg-icon--color-warning rect,.sg-icon--color-warning ellipse{fill:var(--icon-color-salmon)}.sg-icon--color-warning.sg-icon--fill-light .sgmaincolor{fill:var(--icon-color-salmon-light)}.sg-icon--color-warning.sg-icon--fill-lighter .sgmaincolor{fill:var(--icon-color-salmon-lighter)}.sg-icon--color-info path,.sg-icon--color-info polygon,.sg-icon--color-info circle,.sg-icon--color-info rect,.sg-icon--color-info ellipse{fill:var(--icon-color-mango)}.sg-icon--color-info.sg-icon--fill-light .sgmaincolor{fill:var(--icon-color-mango-light)}.sg-icon--color-info.sg-icon--fill-lighter .sgmaincolor{fill:var(--icon-color-mango-lighter)}.sg-icon--color-information path,.sg-icon--color-information polygon,.sg-icon--color-information circle,.sg-icon--color-information rect,.sg-icon--color-information ellipse{fill:var(--icon-color-mango)}.sg-icon--color-information.sg-icon--fill-light .sgmaincolor{fill:var(--icon-color-mango-light)}.sg-icon--color-information.sg-icon--fill-lighter .sgmaincolor{fill:var(--icon-color-mango-lighter)}.sg-theme-hcl .sg-icon--color-info path,.sg-theme-hcl .sg-icon--color-info polygon,.sg-theme-hcl .sg-icon--color-info circle,.sg-theme-hcl .sg-icon--color-info rect,.sg-theme-hcl .sg-icon--color-info ellipse,.sg-theme-hcl .sg-icon--color-primary path,.sg-theme-hcl .sg-icon--color-primary polygon,.sg-theme-hcl .sg-icon--color-primary circle,.sg-theme-hcl .sg-icon--color-primary rect,.sg-theme-hcl .sg-icon--color-primary ellipse,.sg-theme-hcl .sg-icon--color-success path,.sg-theme-hcl .sg-icon--color-success polygon,.sg-theme-hcl .sg-icon--color-success circle,.sg-theme-hcl .sg-icon--color-success rect,.sg-theme-hcl .sg-icon--color-success ellipse,.sg-theme-hcl .sg-icon--color-warning path,.sg-theme-hcl .sg-icon--color-warning polygon,.sg-theme-hcl .sg-icon--color-warning circle,.sg-theme-hcl .sg-icon--color-warning rect,.sg-theme-hcl .sg-icon--color-warning ellipse,.sg-theme-hcl .sg-icon--color-info path,.sg-theme-hcl .sg-icon--color-info polygon,.sg-theme-hcl .sg-icon--color-info circle,.sg-theme-hcl .sg-icon--color-info rect,.sg-theme-hcl .sg-icon--color-info ellipse,.sg-theme-hcl .sg-icon--color-information path,.sg-theme-hcl .sg-icon--color-information polygon,.sg-theme-hcl .sg-icon--color-information circle,.sg-theme-hcl .sg-icon--color-information rect,.sg-theme-hcl .sg-icon--color-information ellipse,.sg-theme-hcb .sg-icon--color-info path,.sg-theme-hcb .sg-icon--color-info polygon,.sg-theme-hcb .sg-icon--color-info circle,.sg-theme-hcb .sg-icon--color-info rect,.sg-theme-hcb .sg-icon--color-info ellipse,.sg-theme-hcb .sg-icon--color-primary path,.sg-theme-hcb .sg-icon--color-primary polygon,.sg-theme-hcb .sg-icon--color-primary circle,.sg-theme-hcb .sg-icon--color-primary rect,.sg-theme-hcb .sg-icon--color-primary ellipse,.sg-theme-hcb .sg-icon--color-success path,.sg-theme-hcb .sg-icon--color-success polygon,.sg-theme-hcb .sg-icon--color-success circle,.sg-theme-hcb .sg-icon--color-success rect,.sg-theme-hcb .sg-icon--color-success ellipse,.sg-theme-hcb .sg-icon--color-warning path,.sg-theme-hcb .sg-icon--color-warning polygon,.sg-theme-hcb .sg-icon--color-warning circle,.sg-theme-hcb .sg-icon--color-warning rect,.sg-theme-hcb .sg-icon--color-warning ellipse,.sg-theme-hcb .sg-icon--color-info path,.sg-theme-hcb .sg-icon--color-info polygon,.sg-theme-hcb .sg-icon--color-info circle,.sg-theme-hcb .sg-icon--color-info rect,.sg-theme-hcb .sg-icon--color-info ellipse,.sg-theme-hcb .sg-icon--color-information path,.sg-theme-hcb .sg-icon--color-information polygon,.sg-theme-hcb .sg-icon--color-information circle,.sg-theme-hcb .sg-icon--color-information rect,.sg-theme-hcb .sg-icon--color-information ellipse{fill:var(--high-contrast-foreground)}.sg-theme-hcl .sg-icon--color-info.sg-icon--fill-light .sgmaincolor,.sg-theme-hcl .sg-icon--color-primary.sg-icon--fill-light .sgmaincolor,.sg-theme-hcl .sg-icon--color-success.sg-icon--fill-light .sgmaincolor,.sg-theme-hcl .sg-icon--color-warning.sg-icon--fill-light .sgmaincolor,.sg-theme-hcl .sg-icon--color-info.sg-icon--fill-light .sgmaincolor,.sg-theme-hcl .sg-icon--color-information.sg-icon--fill-light .sgmaincolor,.sg-theme-hcb .sg-icon--color-info.sg-icon--fill-light .sgmaincolor,.sg-theme-hcb .sg-icon--color-primary.sg-icon--fill-light .sgmaincolor,.sg-theme-hcb .sg-icon--color-success.sg-icon--fill-light .sgmaincolor,.sg-theme-hcb .sg-icon--color-warning.sg-icon--fill-light .sgmaincolor,.sg-theme-hcb .sg-icon--color-info.sg-icon--fill-light .sgmaincolor,.sg-theme-hcb .sg-icon--color-information.sg-icon--fill-light .sgmaincolor{fill:transparent}.sg-theme-hcl .sg-icon--color-info.sg-icon--fill-lighter .sgmaincolor,.sg-theme-hcl .sg-icon--color-primary.sg-icon--fill-lighter .sgmaincolor,.sg-theme-hcl .sg-icon--color-success.sg-icon--fill-lighter .sgmaincolor,.sg-theme-hcl .sg-icon--color-warning.sg-icon--fill-lighter .sgmaincolor,.sg-theme-hcl .sg-icon--color-info.sg-icon--fill-lighter .sgmaincolor,.sg-theme-hcl .sg-icon--color-information.sg-icon--fill-lighter .sgmaincolor,.sg-theme-hcb .sg-icon--color-info.sg-icon--fill-lighter .sgmaincolor,.sg-theme-hcb .sg-icon--color-primary.sg-icon--fill-lighter .sgmaincolor,.sg-theme-hcb .sg-icon--color-success.sg-icon--fill-lighter .sgmaincolor,.sg-theme-hcb .sg-icon--color-warning.sg-icon--fill-lighter .sgmaincolor,.sg-theme-hcb .sg-icon--color-info.sg-icon--fill-lighter .sgmaincolor,.sg-theme-hcb .sg-icon--color-information.sg-icon--fill-lighter .sgmaincolor{fill:transparent}.sg-icon-loader-circular{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;height:100%;-webkit-transform-origin:center center;transform-origin:center center;width:100%;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto}.sg-icon-loader-path{stroke-dasharray:1,200;stroke-dashoffset:0;-webkit-animation:dash-animation 1.5s ease-in-out infinite,color-animation 2s ease-in-out infinite;animation:dash-animation 1.5s ease-in-out infinite,color-animation 2s ease-in-out infinite;stroke-linecap:round}@-webkit-keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dash-animation{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}100%{stroke-dasharray:89,200;stroke-dashoffset:-124px}}@keyframes dash-animation{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}100%{stroke-dasharray:89,200;stroke-dashoffset:-124px}}@-webkit-keyframes color-animation{100%,0%{stroke:var(--color-warning)}20%{stroke:var(--color-success)}66%{stroke:var(--color-primary)}}@keyframes color-animation{100%,0%{stroke:var(--color-warning)}20%{stroke:var(--color-success)}66%{stroke:var(--color-primary)}}
11
+ .sg-tooltip{position:absolute;max-width:500px;overflow-wrap:break-word;box-shadow:var(--first-level-box-shadow);border-radius:12px;font-size:14px;line-height:18px;color:var(--tooltip-color);z-index:180}.sg-tooltip--background-black{background-color:var(--tooltip-background-dark)}.sg-tooltip--background-white{background-color:var(--tooltip-background-light)}.sg-tooltip--density-cozy{padding:5px 10px}.sg-tooltip--density-none{padding:0}
12
+ .sg-text{word-break:break-word}.sg-text--size-small{font-size:14px;line-height:18px}.sg-text--size-medium{font-size:16px;line-height:26px}.sg-text--size-large{font-size:18px;line-height:28px}.sg-text--size-x-large{font-size:22px;line-height:32px}.sg-text--size-inherit{font-size:inherit;line-height:inherit}
13
+ .sg-container{display:flex;flex-direction:column;border-radius:12px;background:var(--background-component-primary)}.sg-theme-hcl .sg-container,.sg-theme-hcb .sg-container{border:1px solid var(--high-contrast-foreground)}.sg-container--elevation-1{box-shadow:var(--first-level-box-shadow)}.sg-container--elevation-1:focus{outline:none}.sg-keyboard .sg-container--elevation-1:focus{outline:none;box-shadow:var(--first-level-box-shadow),var(--focus-shadow)}.sg-container--elevation-2{box-shadow:var(--second-level-box-shadow)}.sg-container--elevation-2:focus{outline:none}.sg-keyboard .sg-container--elevation-2:focus{outline:none;box-shadow:var(--second-level-box-shadow),var(--focus-shadow)}.sg-container--elevation-3{box-shadow:var(--third-level-box-shadow)}.sg-container--elevation-3:focus{outline:none}.sg-keyboard .sg-container--elevation-3:focus{outline:none;box-shadow:var(--third-level-box-shadow),var(--focus-shadow)}.sg-container--elevation-4{box-shadow:var(--fourth-level-box-shadow)}.sg-container--elevation-4:focus{outline:none}.sg-keyboard .sg-container--elevation-4:focus{outline:none;box-shadow:var(--fourth-level-box-shadow),var(--focus-shadow)}.sg-container--elevation-5{box-shadow:var(--fifth-level-box-shadow)}.sg-container--elevation-5:focus{outline:none}.sg-keyboard .sg-container--elevation-5:focus{outline:none;box-shadow:var(--fifth-level-box-shadow),var(--focus-shadow)}
14
+ .sg-notice{display:flex;position:relative;background-color:var(--background-component-primary);border-top-left-radius:12px;border-top-right-radius:12px;border-bottom-left-radius:12px;border-bottom-right-radius:12px;color:var(--typography-dark);text-align:start}.sg-notice:focus{outline:none}.sg-keyboard .sg-notice:focus{outline:none;box-shadow:var(--focus-shadow)}.sg-notice .sg-notice__close-icon{color:currentColor}.sg-notice__icon{margin-top:0}.sg-notice__icon--center-by-title{margin-top:4px}.sg-notice__content{flex:1 1 0;word-break:break-word}.sg-notice__content--size-limited{max-width:800px}.sg-notice__content--size-expanded{max-width:100%}.sg-notice__close-icon{position:absolute;top:15px;right:20px}.sg-notice--shadow{box-shadow:var(--first-level-box-shadow)}.sg-notice--shadow:focus{outline:none}.sg-keyboard .sg-notice--shadow:focus{outline:none;box-shadow:var(--first-level-box-shadow),var(--focus-shadow)}.sg-notice--type-success{border:3px solid var(--color-success)}.sg-notice--type-success .sg-list__icon{color:var(--color-success)}.sg-notice--type-error{border:3px solid var(--color-error)}.sg-notice--type-error .sg-list__icon{color:var(--color-error)}.sg-notice--type-warning{border:3px solid var(--color-warning)}.sg-notice--type-warning .sg-list__icon{color:var(--color-warning)}.sg-notice--type-instruction{border:3px solid var(--color-instruction)}.sg-notice--type-instruction .sg-list__icon{color:var(--color-instruction)}.sg-notice--type-info{border:3px solid var(--color-info)}.sg-notice--type-info .sg-list__icon{color:var(--color-info)}.sg-notice--type-hint{border:3px solid var(--color-hint)}.sg-notice--density-compact{padding:10px}.sg-notice--density-compact .sg-notice--border{border-width:2px}.sg-notice--density-compact .sg-notice__content{padding:0 10px 0 10px}.sg-notice--density-cozy{padding:15px 20px}.sg-notice--density-cozy .sg-notice__content{padding:0 10px 5px 20px}@media(max-width: 1500px){.sg-notice--density-compact,.sg-notice--density-cozy{padding:10px}.sg-notice--density-compact .sg-notice__content,.sg-notice--density-cozy .sg-notice__content{padding:0 10px 0 10px}.sg-notice--border{border-width:2px}}
15
+ .sg-icon-button{display:inline-flex;justify-content:center;align-items:center;color:var(--color-icon-button);cursor:pointer;flex-shrink:0}.sg-icon-button:focus{outline:none}.sg-keyboard .sg-icon-button:focus{outline:none;box-shadow:var(--first-level-box-shadow)}.sg-icon-button:nth-child(n+2){margin-left:10px}.sg-icon-button--circle{border-radius:50%}.sg-icon-button--small{width:30px;height:30px}.sg-icon-button--medium{width:36px;height:36px}.sg-icon-button--large{width:40px;height:40px}.sg-icon-button--x-large{width:50px;height:50px}.sg-icon-button--xx-large{width:60px;height:60px}.sg-icon-button--neutral{color:var(--color-primary);background-color:transparent}.sg-icon-button--neutral:focus{outline:none}.sg-keyboard .sg-icon-button--neutral:focus{outline:none;background-color:var(--background-button-secondary)}.sg-icon-button--neutral:hover{background-color:var(--background-button-secondary)}.sg-icon-button--neutral:active{background-color:var(--background-button-secondary)}.sg-theme-hcl .sg-icon-button--neutral:hover,.sg-theme-hcl .sg-icon-button--neutral:focus,.sg-theme-hcl .sg-icon-button--neutral:active,.sg-theme-hcb .sg-icon-button--neutral:hover,.sg-theme-hcb .sg-icon-button--neutral:focus,.sg-theme-hcb .sg-icon-button--neutral:active{color:var(--high-contrast-background);background-color:var(--high-contrast-foreground)}.sg-icon-button--disabled{opacity:.3;background-color:transparent;cursor:default}.sg-theme-hcl .sg-icon-button--active.sg-icon-button--neutral,.sg-theme-hcb .sg-icon-button--active.sg-icon-button--neutral{color:var(--high-contrast-background);background-color:var(--high-contrast-foreground)}
16
+ .sg-ripple-container{position:relative;overflow:hidden}.sg-ripple{display:inline-block;position:absolute;width:0;height:0;-webkit-transform:scale(0);transform:scale(0);opacity:.4;border-radius:50%;background:currentColor;cursor:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;-webkit-animation:ripple-animation .4s linear;animation:ripple-animation .4s linear}@-webkit-keyframes ripple-animation{100%{-webkit-transform:scale(2);transform:scale(2);opacity:0}}@keyframes ripple-animation{100%{-webkit-transform:scale(2);transform:scale(2);opacity:0}}
17
+ .sg-link{display:inline-block;color:var(--color-primary);cursor:pointer}.sg-link:focus,.sg-link:hover{color:var(--color-primary-hovered);outline:none}.sg-link:focus{text-decoration:underline}.sg-link:active{color:var(--color-primary-active)}.sg-link:visited:not(.sg-link--breadcrumb){color:var(--color-info)}.sg-theme-hcl .sg-link,.sg-theme-hcb .sg-link{text-decoration:underline}.sg-link--decoration-dotted{-webkit-text-decoration:underline dotted currentColor;text-decoration:underline dotted currentColor}.sg-link--disabled{color:var(--color-disabled);cursor:default}.sg-link--disabled:hover,.sg-link--disabled:active,.sg-link--disabled:visited{color:var(--color-disabled)}
18
+ .sg-input-addon{display:inline-flex;align-items:center;flex-shrink:0;position:relative;white-space:nowrap;max-width:100%;background-color:var(--background-component-secondary);color:var(--typography-light)}.sg-input-addon:first-child{border-top-left-radius:12px;border-bottom-left-radius:12px}.sg-input-addon:last-child{border-top-right-radius:12px;border-bottom-right-radius:12px}.sg-input-addon .sg-input-text-truncate{display:block;overflow:hidden;text-overflow:ellipsis}.sg-input-addon .sg-tooltip{position:absolute;top:0;left:0;width:100%;height:100%}.sg-input-addon__array{width:100%;padding-right:15px}.sg-theme-hcl .sg-tooltip,.sg-theme-hcb .sg-tooltip{border:1px solid var(--high-contrast-foreground)}.sg-input-addon--component{background-color:transparent}.sg-input-addon__size--small .sg-input-text-truncate{max-width:120.96px;line-height:18px}.sg-input-addon__size--medium .sg-input-text-truncate{max-width:120.96px;line-height:26px}.sg-input-addon__size--large .sg-input-text-truncate{max-width:136.08px;line-height:28px}.sg-input-addon__size--x-large .sg-input-text-truncate{max-width:166.32px;line-height:32px}@media(max-width: 1500px){.sg-input-addon__size--small .sg-input-text-truncate{max-width:90.72px}.sg-input-addon__size--medium .sg-input-text-truncate{max-width:90.72px}.sg-input-addon__size--large .sg-input-text-truncate{max-width:90.72px}.sg-input-addon__size--x-large .sg-input-text-truncate{max-width:110.88px}}.sg-input-addon__size--small{height:28px;padding:0 15px;font-size:14px}.sg-input-addon__size--small.sg-input-addon--component-prefix{padding:0 0 0 15px}.sg-input-addon__size--medium{height:38px;padding:0 15px}.sg-input-addon__size--medium.sg-input-addon--component-prefix{padding:0 0 0 15px}.sg-input-addon__size--medium.sg-input-addon--component-suffix{padding-right:4px}.sg-input-addon__size--medium.sg-input-addon--component-suffix [class*=sg-button]{padding-left:8px;padding-right:8px}.sg-input-addon__size--large{height:48px;padding:0 20px;font-size:18px}.sg-input-addon__size--large.sg-input-addon--component-prefix{padding:0 0 0 20px}.sg-input-addon__size--x-large{height:58px;padding:0 30px;font-size:22px}.sg-input-addon__size--x-large.sg-input-addon--component-prefix{padding:0 0 0 30px}@media(max-width: 800px){.sg-input-addon__size--large,.sg-input-addon__size--x-large{padding:0 15px}.sg-input-addon__size--small,.sg-input-addon__size--medium,.sg-input-addon__size--large,.sg-input-addon__size--x-large{font-size:18px}}@media(max-width: 1500px){.sg-input-addon__size--x-large{height:48px;padding:0 20px;font-size:18px}.sg-input-addon__size--x-large.sg-input-addon--component-prefix{padding:0 0 0 20px}}
19
+ .sg-spacer{display:inline-block;flex-shrink:0}.sg-spacer--size-expanded{flex:1 1 0}.sg-spacer--size-xx-small{width:5px}.sg-spacer--size-x-small{width:10px}.sg-spacer--size-small{width:15px}.sg-spacer--size-medium{width:20px}.sg-spacer--size-large{width:30px}.sg-spacer--size-x-large{width:40px}.sg-spacer--size-xx-large{width:60px}
20
+ .sg-field-label{display:block;width:100%;position:relative;text-align:left}.sg-field-wrapper{display:flex;width:100%;background-color:var(--background-component-primary);border:1px solid var(--border-color-default);border-radius:12px;overflow:hidden;font-family:var(--font-family-component);font-size:16px;color:var(--typography-dark)}.sg-field-wrapper--disabled{opacity:.5;cursor:not-allowed}.sg-field-wrapper--readonly{word-break:break-all}.sg-field{width:100%;min-width:1px;background-color:transparent;border:none;font-family:var(--font-family-component);color:var(--typography-dark)}.sg-field::-webkit-input-placeholder{font-style:italic;font-weight:300;color:var(--typography-dark)}.sg-field::-moz-placeholder{font-style:italic;font-weight:300;color:var(--typography-dark)}.sg-field:-ms-input-placeholder{font-style:italic;font-weight:300;color:var(--typography-dark)}.sg-field::placeholder{font-style:italic;font-weight:300;color:var(--typography-dark)}.sg-field:only-child{border-radius:12px}.sg-field:first-child{border-top-left-radius:12px;border-bottom-left-radius:12px}.sg-field:last-child{border-top-right-radius:12px;border-bottom-right-radius:12px}.sg-field:focus{box-shadow:none}.sg-field:disabled::-webkit-input-placeholder{background-color:var(--background-component-primary);cursor:not-allowed}.sg-field:disabled::-moz-placeholder{background-color:var(--background-component-primary);cursor:not-allowed}.sg-field:disabled:-ms-input-placeholder{background-color:var(--background-component-primary);cursor:not-allowed}.sg-field:disabled,.sg-field:disabled::placeholder{background-color:var(--background-component-primary);cursor:not-allowed}.sg-field:read-only::-webkit-input-placeholder{background-color:inherit}.sg-field:read-only::-moz-placeholder{background-color:inherit}.sg-field:read-only:-ms-input-placeholder{background-color:inherit}.sg-field:-moz-read-only, .sg-field:-moz-read-only::placeholder{background-color:inherit}.sg-field:read-only,.sg-field:read-only::placeholder{background-color:inherit}.sg-field::-webkit-outer-spin-button,.sg-field::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}.sg-field[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.sg-field::-ms-clear{display:none}.sg-field-wrapper--focused{box-shadow:var(--first-level-box-shadow)}.sg-field-wrapper--has-validation{border-bottom-right-radius:0;border-bottom-left-radius:0}.sg-field-wrapper--success{border-color:var(--color-success)}.sg-field-wrapper--error{border-color:var(--border-color-input-error-not-focused)}.sg-field-wrapper--error-focused{border-color:var(--border-color-input-error-focused);box-shadow:0 0 0 1px var(--border-color-input-error-focused)}.sg-field-wrapper--warning{border-color:var(--color-warning)}.sg-input-wrapper--hint .sg-input{border-color:var(--color-hint)}.sg-field-wrapper--small .sg-field{height:28px;padding:0 15px;font-size:14px}.sg-field-wrapper--medium .sg-field{height:38px;padding:0 15px;font-size:16px}.sg-field-wrapper--large .sg-field{height:48px;padding:0 20px;font-size:18px}.sg-field-wrapper--x-large .sg-field{height:58px;padding:0 30px;font-size:22px}.sg-field-wrapper--x-large .sg-field::-webkit-input-placeholder{font-weight:600}.sg-field-wrapper--x-large .sg-field::-moz-placeholder{font-weight:600}.sg-field-wrapper--x-large .sg-field:-ms-input-placeholder{font-weight:600}.sg-field-wrapper--x-large .sg-field::placeholder{font-weight:600}@media(max-width: 800px){.sg-field-wrapper--large .sg-field,.sg-field-wrapper--x-large .sg-field{padding:0 15px}.sg-field-wrapper--small .sg-field,.sg-field-wrapper--medium .sg-field,.sg-field-wrapper--large .sg-field,.sg-field-wrapper--x-large .sg-field{font-size:18px}}@media(max-width: 1500px){.sg-field-wrapper--x-large .sg-field{height:48px;padding:0 20px;font-size:18px}}
21
+ .sg-form-label{display:block;font-size:var(--typography-field-label-size);font-family:var(--font-family-component)}.sg-form-label-tooltip{display:inline-block;margin-left:5px}
22
+ .sg-validation{display:none;position:absolute;left:0;z-index:40;margin-top:-1px;padding:7px 15px 6px 15px;width:100%;align-items:center;border-bottom-left-radius:12px;border-bottom-right-radius:12px;box-shadow:var(--first-level-box-shadow);color:var(--color-button-white);font-size:14px;word-break:break-word;line-height:16px}@media(max-width: 1500px){.sg-validation{padding:5px 15px 4px 15px}}.sg-validation-icon{margin-right:10px}.sg-validation--success{background-color:var(--color-success)}.sg-validation--error{background-color:var(--background-color-error-not-focused);color:var(--text-color-error-not-focused);border:1px solid var(--border-color-input-error-not-focused);border-top:0;align-items:flex-start;font-weight:600}.sg-validation--error span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sg-validation--error-visible{display:inline-flex}.sg-validation--focused{display:inline-flex}.sg-validation--focused span{overflow:visible;text-overflow:initial;white-space:initial}.sg-validation--error-focused{background-color:var(--background-color-error-focused);box-shadow:0 0 0 1px var(--border-color-input-error-focused);border:none;color:var(--text-color-error-focused);font-weight:600}.sg-validation--warning{background-color:var(--color-warning)}.sg-validation--hint{background-color:var(--color-hint)}
23
+ .sg-button{display:inline-block;border-radius:3rem;border:none;transition:color .2s linear,border-color .2s linear,background-color .2s linear;color:var(--color-primary);background-color:transparent;font-family:var(--font-family-component);font-weight:600;text-transform:uppercase;flex-shrink:0}.sg-button:focus{outline:none}.sg-keyboard .sg-button:focus{outline:none;box-shadow:var(--first-level-box-shadow)}.sg-button:hover,.sg-button:focus{cursor:pointer}.sg-button::-moz-focus-inner{border:0}.sg-button+.sg-button{margin-left:15px}.sg-theme-hcl .sg-button:hover,.sg-theme-hcb .sg-button:hover{color:var(--high-contrast-background);background-color:var(--high-contrast-foreground)}.sg-button--expanded{width:100%}.sg-button__content{display:inline-flex;justify-content:center;align-items:center;height:100%}.sg-button__text{line-height:1}.sg-button__text:first-child{margin-right:10px}.sg-button__text:last-child{margin-left:10px}.sg-button__text:only-child{margin-right:0;margin-left:0}.sg-button--primary{color:var(--color-button-white);background-color:var(--background-button-primary)}.sg-button--primary:focus{outline:none}.sg-keyboard .sg-button--primary:focus{outline:none;background-color:var(--background-button-primary-hovered)}.sg-button--primary:hover{background-color:var(--background-button-primary-hovered)}.sg-button--secondary{color:var(--color-primary);background-color:var(--background-button-secondary)}.sg-button--secondary:focus{outline:none}.sg-keyboard .sg-button--secondary:focus{outline:none;background-color:var(--background-button-secondary-hovered)}.sg-button--secondary:hover{background-color:var(--background-button-secondary-hovered)}.sg-button--neutral{color:var(--color-primary)}.sg-button--neutral:focus{outline:none}.sg-keyboard .sg-button--neutral:focus{outline:none;background-color:var(--background-button-secondary-hovered)}.sg-button--neutral:hover{background-color:var(--background-button-secondary-hovered)}.sg-button--xx-large{height:60px;padding-left:20px;padding-right:20px;font-size:18px}.sg-button--xx-large .sg-icon{width:22px;height:22px}.sg-button--x-large{height:50px;padding-left:28px;padding-right:28px;font-size:18px}.sg-button--x-large .sg-icon{width:20px;height:20px}.sg-button--large{height:40px;padding-left:23px;padding-right:23px;font-size:16px}.sg-button--large .sg-icon{width:16px;height:16px}.sg-button--medium{height:36px;padding-left:18px;padding-right:18px;font-size:14px}.sg-button--medium .sg-icon{width:16px;height:16px}.sg-button--small{height:30px;padding-left:18px;padding-right:18px;font-size:14px}.sg-button--small .sg-icon{width:12px;height:12px}.sg-button.sg-button--disabled{color:var(--color-disabled);background-color:transparent;border-color:transparent;pointer-events:none}.sg-button.sg-button--disabled:focus{outline:none}.sg-keyboard .sg-button.sg-button--disabled:focus{outline:none;box-shadow:none}.sg-button.sg-button--disabled:hover{color:var(--color-disabled);background-color:transparent;border-color:transparent;box-shadow:none}@media(max-width: 1500px){.sg-button--xx-large{height:50px}}
24
+ .status-box{margin-top:45px}.status-box--attention{margin-top:0}.status-box-wrapper{display:flex;flex-wrap:wrap;flex-direction:column;align-items:center}.status-box--loading .status-box-icon-background{background-image:url("data:image/svg+xml;utf8,<svg xmlns= %27http://www.w3.org/2000/svg%27 viewBox= %270 0 13 14%27><polygon points= %271.5 0 0 1.8 1.5 3.6 3 1.8 1.5 0 1.5 0%27 fill= %27%23cba871%27 /><polygon points= %2711.5 0 10 1.8 11.5 3.6 13 1.8 11.5 0 11.5 0%27 fill= %27%23cba871%27 fill-opacity= %270%27 /><polygon points= %271.5 10.4 0 12.2 1.5 14 3 12.2 1.5 10.4 1.5 10.4%27 fill= %27%23cba871%27 fill-opacity= %270%27 /></svg>")}.status-box--loading .status-box-icon{color:var(--color-success)}.status-box--success .status-box-icon-background{background-image:url("data:image/svg+xml;utf8,<svg xmlns= %27http://www.w3.org/2000/svg%27 viewBox= %270 0 13 14%27><polygon points= %271.5 0 0 1.8 1.5 3.6 3 1.8 1.5 0 1.5 0%27 fill= %27%2373c04f%27 /><polygon points= %2711.5 0 10 1.8 11.5 3.6 13 1.8 11.5 0 11.5 0%27 fill= %27%2373c04f%27 fill-opacity= %270%27 /><polygon points= %271.5 10.4 0 12.2 1.5 14 3 12.2 1.5 10.4 1.5 10.4%27 fill= %27%2373c04f%27 fill-opacity= %270%27 /></svg>")}.status-box--attention .status-box-icon-background,.status-box--warning .status-box-icon-background{background-image:url("data:image/svg+xml;utf8,<svg xmlns= %27http://www.w3.org/2000/svg%27 viewBox= %270 0 13 14%27><polygon points= %271.5 0 0 1.8 1.5 3.6 3 1.8 1.5 0 1.5 0%27 fill= %27%23eca03e%27 /><polygon points= %2711.5 0 10 1.8 11.5 3.6 13 1.8 11.5 0 11.5 0%27 fill= %27%23eca03e%27 fill-opacity= %270%27 /><polygon points= %271.5 10.4 0 12.2 1.5 14 3 12.2 1.5 10.4 1.5 10.4%27 fill= %27%23eca03e%27 fill-opacity= %270%27 /></svg>")}.status-box--error .status-box-icon-background{background-image:url("data:image/svg+xml;utf8,<svg xmlns= %27http://www.w3.org/2000/svg%27 viewBox= %270 0 13 14%27><polygon points= %271.5 0 0 1.8 1.5 3.6 3 1.8 1.5 0 1.5 0%27 fill= %27%23f54545%27 /><polygon points= %2711.5 0 10 1.8 11.5 3.6 13 1.8 11.5 0 11.5 0%27 fill= %27%23f54545%27 fill-opacity= %270%27 /><polygon points= %271.5 10.4 0 12.2 1.5 14 3 12.2 1.5 10.4 1.5 10.4%27 fill= %27%23f54545%27 fill-opacity= %270%27 /></svg>")}.status-box--exclamation .status-box-icon-background{background-image:url("data:image/svg+xml;utf8,<svg xmlns= %27http://www.w3.org/2000/svg%27 viewBox= %270 0 13 14%27><polygon points= %271.5 0 0 1.8 1.5 3.6 3 1.8 1.5 0 1.5 0%27 fill= %27%23cba871%27 /><polygon points= %2711.5 0 10 1.8 11.5 3.6 13 1.8 11.5 0 11.5 0%27 fill= %27%23cba871%27 fill-opacity= %270%27 /><polygon points= %271.5 10.4 0 12.2 1.5 14 3 12.2 1.5 10.4 1.5 10.4%27 fill= %27%23cba871%27 fill-opacity= %270%27 /></svg>")}.status-box-icon-background{position:relative;display:flex;justify-content:center;min-width:400px;height:70px;background-size:15px}.status-box-icon-background::after{position:absolute;bottom:0;right:0;display:block;content:" ";width:0;height:0;border-style:solid;border-width:0 0 30px 30px;border-color:transparent transparent var(--background-component-primary) transparent}.status-box-icon-wrapper{display:flex;justify-content:center;align-items:center;border-radius:50%;width:100px;height:100px;margin-top:-30px;background-color:var(--background-white)}.status-box-icon-wrapper--loading{background-color:var(--background-component-primary)}.status-box-icon-wrapper--attention{margin-top:-15px;width:110px;height:110px;background-color:transparent}.status-box-title{margin-top:15px}.status-box-description{padding-bottom:30px;max-width:800px}.status-box--token-button{width:100%}.status-box__grid{grid-template-columns:auto auto auto}@media(max-width: 800px){.status-box{padding:60px 20px 20px;margin-top:30px}.status-box--attention{margin-top:0}.status-box-icon-background{min-width:100%}}@media(max-width: 800px){.status-box--buttons-box{flex-direction:column}}
25
+ .info-conainter__sidebar{background-color:var(--background-component-secondary)}
26
+ .sg-grid-column{border-radius:inherit}.sg-grid-column--flex{display:flex}.sg-grid-column--justify-flex-start{justify-content:flex-start}.sg-grid-column--justify-center{justify-content:center}.sg-grid-column--justify-flex-end{justify-content:flex-end}.sg-grid-column--justify-space-between{justify-content:space-between}.sg-grid-column--justify-space-around{justify-content:space-around}.sg-grid-column--justify-self-flex-start{justify-self:flex-start}.sg-grid-column--justify-self-center{justify-self:center}.sg-grid-column--justify-self-flex-end{justify-self:flex-end}.sg-grid-column--justify-self-stretch{justify-self:stretch}.sg-grid-column--align-flex-start{align-items:flex-start}.sg-grid-column--align-center{align-items:center}.sg-grid-column--align-flex-end{align-items:flex-end}.sg-grid-column--align-baseline{align-items:baseline}.sg-grid-column--align-stretch{align-items:stretch}.sg-grid-column--xs-span-1{grid-column-end:span 1}.sg-grid-column--xs-span-2{grid-column-end:span 2}.sg-grid-column--xs-span-3{grid-column-end:span 3}.sg-grid-column--xs-span-4{grid-column-end:span 4}.sg-grid-column--xs-span-5{grid-column-end:span 5}.sg-grid-column--xs-span-6{grid-column-end:span 6}.sg-grid-column--xs-span-7{grid-column-end:span 7}.sg-grid-column--xs-span-8{grid-column-end:span 8}.sg-grid-column--xs-span-9{grid-column-end:span 9}.sg-grid-column--xs-span-10{grid-column-end:span 10}.sg-grid-column--xs-span-11{grid-column-end:span 11}.sg-grid-column--xs-span-12{grid-column-end:span 12}.sg-grid-column--xs-span-13{grid-column-end:span 13}.sg-grid-column--xs-span-14{grid-column-end:span 14}.sg-grid-column--xs-start-1{grid-column-start:1}.sg-grid-column--xs-start-2{grid-column-start:2}.sg-grid-column--xs-start-3{grid-column-start:3}.sg-grid-column--xs-start-4{grid-column-start:4}.sg-grid-column--xs-start-5{grid-column-start:5}.sg-grid-column--xs-start-6{grid-column-start:6}.sg-grid-column--xs-start-7{grid-column-start:7}.sg-grid-column--xs-start-8{grid-column-start:8}.sg-grid-column--xs-start-9{grid-column-start:9}.sg-grid-column--xs-start-10{grid-column-start:10}.sg-grid-column--xs-start-11{grid-column-start:11}.sg-grid-column--xs-start-12{grid-column-start:12}.sg-grid-column--xs-start-13{grid-column-start:13}.sg-grid-column--xs-start-14{grid-column-start:14}@media(min-width: 801px){.sg-grid-column--sm-span-1{grid-column-end:span 1}.sg-grid-column--sm-span-2{grid-column-end:span 2}.sg-grid-column--sm-span-3{grid-column-end:span 3}.sg-grid-column--sm-span-4{grid-column-end:span 4}.sg-grid-column--sm-span-5{grid-column-end:span 5}.sg-grid-column--sm-span-6{grid-column-end:span 6}.sg-grid-column--sm-span-7{grid-column-end:span 7}.sg-grid-column--sm-span-8{grid-column-end:span 8}.sg-grid-column--sm-span-9{grid-column-end:span 9}.sg-grid-column--sm-span-10{grid-column-end:span 10}.sg-grid-column--sm-span-11{grid-column-end:span 11}.sg-grid-column--sm-span-12{grid-column-end:span 12}.sg-grid-column--sm-span-13{grid-column-end:span 13}.sg-grid-column--sm-span-14{grid-column-end:span 14}.sg-grid-column--sm-start-1{grid-column-start:1}.sg-grid-column--sm-start-2{grid-column-start:2}.sg-grid-column--sm-start-3{grid-column-start:3}.sg-grid-column--sm-start-4{grid-column-start:4}.sg-grid-column--sm-start-5{grid-column-start:5}.sg-grid-column--sm-start-6{grid-column-start:6}.sg-grid-column--sm-start-7{grid-column-start:7}.sg-grid-column--sm-start-8{grid-column-start:8}.sg-grid-column--sm-start-9{grid-column-start:9}.sg-grid-column--sm-start-10{grid-column-start:10}.sg-grid-column--sm-start-11{grid-column-start:11}.sg-grid-column--sm-start-12{grid-column-start:12}.sg-grid-column--sm-start-13{grid-column-start:13}.sg-grid-column--sm-start-14{grid-column-start:14}}@media(min-width: 1024px){.sg-grid-column--m-span-1{grid-column-end:span 1}.sg-grid-column--m-span-2{grid-column-end:span 2}.sg-grid-column--m-span-3{grid-column-end:span 3}.sg-grid-column--m-span-4{grid-column-end:span 4}.sg-grid-column--m-span-5{grid-column-end:span 5}.sg-grid-column--m-span-6{grid-column-end:span 6}.sg-grid-column--m-span-7{grid-column-end:span 7}.sg-grid-column--m-span-8{grid-column-end:span 8}.sg-grid-column--m-span-9{grid-column-end:span 9}.sg-grid-column--m-span-10{grid-column-end:span 10}.sg-grid-column--m-span-11{grid-column-end:span 11}.sg-grid-column--m-span-12{grid-column-end:span 12}.sg-grid-column--m-span-13{grid-column-end:span 13}.sg-grid-column--m-span-14{grid-column-end:span 14}.sg-grid-column--m-start-1{grid-column-start:1}.sg-grid-column--m-start-2{grid-column-start:2}.sg-grid-column--m-start-3{grid-column-start:3}.sg-grid-column--m-start-4{grid-column-start:4}.sg-grid-column--m-start-5{grid-column-start:5}.sg-grid-column--m-start-6{grid-column-start:6}.sg-grid-column--m-start-7{grid-column-start:7}.sg-grid-column--m-start-8{grid-column-start:8}.sg-grid-column--m-start-9{grid-column-start:9}.sg-grid-column--m-start-10{grid-column-start:10}.sg-grid-column--m-start-11{grid-column-start:11}.sg-grid-column--m-start-12{grid-column-start:12}.sg-grid-column--m-start-13{grid-column-start:13}.sg-grid-column--m-start-14{grid-column-start:14}}@media(min-width: 1501px){.sg-grid-column--lg-span-1{grid-column-end:span 1}.sg-grid-column--lg-span-2{grid-column-end:span 2}.sg-grid-column--lg-span-3{grid-column-end:span 3}.sg-grid-column--lg-span-4{grid-column-end:span 4}.sg-grid-column--lg-span-5{grid-column-end:span 5}.sg-grid-column--lg-span-6{grid-column-end:span 6}.sg-grid-column--lg-span-7{grid-column-end:span 7}.sg-grid-column--lg-span-8{grid-column-end:span 8}.sg-grid-column--lg-span-9{grid-column-end:span 9}.sg-grid-column--lg-span-10{grid-column-end:span 10}.sg-grid-column--lg-span-11{grid-column-end:span 11}.sg-grid-column--lg-span-12{grid-column-end:span 12}.sg-grid-column--lg-span-13{grid-column-end:span 13}.sg-grid-column--lg-span-14{grid-column-end:span 14}.sg-grid-column--lg-start-1{grid-column-start:1}.sg-grid-column--lg-start-2{grid-column-start:2}.sg-grid-column--lg-start-3{grid-column-start:3}.sg-grid-column--lg-start-4{grid-column-start:4}.sg-grid-column--lg-start-5{grid-column-start:5}.sg-grid-column--lg-start-6{grid-column-start:6}.sg-grid-column--lg-start-7{grid-column-start:7}.sg-grid-column--lg-start-8{grid-column-start:8}.sg-grid-column--lg-start-9{grid-column-start:9}.sg-grid-column--lg-start-10{grid-column-start:10}.sg-grid-column--lg-start-11{grid-column-start:11}.sg-grid-column--lg-start-12{grid-column-start:12}.sg-grid-column--lg-start-13{grid-column-start:13}.sg-grid-column--lg-start-14{grid-column-start:14}}.sg-grid-column--ie11.sg-grid-column--xs-span-1{width:calc((100% - 1px) / 14 * 1)}.sg-grid-column--ie11.sg-grid-column--xs-span-2{width:calc((100% - 1px) / 14 * 2)}.sg-grid-column--ie11.sg-grid-column--xs-span-3{width:calc((100% - 1px) / 14 * 3)}.sg-grid-column--ie11.sg-grid-column--xs-span-4{width:calc((100% - 1px) / 14 * 4)}.sg-grid-column--ie11.sg-grid-column--xs-span-5{width:calc((100% - 1px) / 14 * 5)}.sg-grid-column--ie11.sg-grid-column--xs-span-6{width:calc((100% - 1px) / 14 * 6)}.sg-grid-column--ie11.sg-grid-column--xs-span-7{width:calc((100% - 1px) / 14 * 7)}.sg-grid-column--ie11.sg-grid-column--xs-span-8{width:calc((100% - 1px) / 14 * 8)}.sg-grid-column--ie11.sg-grid-column--xs-span-9{width:calc((100% - 1px) / 14 * 9)}.sg-grid-column--ie11.sg-grid-column--xs-span-10{width:calc((100% - 1px) / 14 * 10)}.sg-grid-column--ie11.sg-grid-column--xs-span-11{width:calc((100% - 1px) / 14 * 11)}.sg-grid-column--ie11.sg-grid-column--xs-span-12{width:calc((100% - 1px) / 14 * 12)}.sg-grid-column--ie11.sg-grid-column--xs-span-13{width:calc((100% - 1px) / 14 * 13)}.sg-grid-column--ie11.sg-grid-column--xs-span-14{width:calc((100% - 1px) / 14 * 14)}@media(min-width: 801px){.sg-grid-column--ie11.sg-grid-column--sm-span-1{width:calc((100% - 1px) / 14 * 1)}.sg-grid-column--ie11.sg-grid-column--sm-span-2{width:calc((100% - 1px) / 14 * 2)}.sg-grid-column--ie11.sg-grid-column--sm-span-3{width:calc((100% - 1px) / 14 * 3)}.sg-grid-column--ie11.sg-grid-column--sm-span-4{width:calc((100% - 1px) / 14 * 4)}.sg-grid-column--ie11.sg-grid-column--sm-span-5{width:calc((100% - 1px) / 14 * 5)}.sg-grid-column--ie11.sg-grid-column--sm-span-6{width:calc((100% - 1px) / 14 * 6)}.sg-grid-column--ie11.sg-grid-column--sm-span-7{width:calc((100% - 1px) / 14 * 7)}.sg-grid-column--ie11.sg-grid-column--sm-span-8{width:calc((100% - 1px) / 14 * 8)}.sg-grid-column--ie11.sg-grid-column--sm-span-9{width:calc((100% - 1px) / 14 * 9)}.sg-grid-column--ie11.sg-grid-column--sm-span-10{width:calc((100% - 1px) / 14 * 10)}.sg-grid-column--ie11.sg-grid-column--sm-span-11{width:calc((100% - 1px) / 14 * 11)}.sg-grid-column--ie11.sg-grid-column--sm-span-12{width:calc((100% - 1px) / 14 * 12)}.sg-grid-column--ie11.sg-grid-column--sm-span-13{width:calc((100% - 1px) / 14 * 13)}.sg-grid-column--ie11.sg-grid-column--sm-span-14{width:calc((100% - 1px) / 14 * 14)}}@media(min-width: 1024px){.sg-grid-column--ie11.sg-grid-column--m-span-1{width:calc((100% - 1px) / 14 * 1)}.sg-grid-column--ie11.sg-grid-column--m-span-2{width:calc((100% - 1px) / 14 * 2)}.sg-grid-column--ie11.sg-grid-column--m-span-3{width:calc((100% - 1px) / 14 * 3)}.sg-grid-column--ie11.sg-grid-column--m-span-4{width:calc((100% - 1px) / 14 * 4)}.sg-grid-column--ie11.sg-grid-column--m-span-5{width:calc((100% - 1px) / 14 * 5)}.sg-grid-column--ie11.sg-grid-column--m-span-6{width:calc((100% - 1px) / 14 * 6)}.sg-grid-column--ie11.sg-grid-column--m-span-7{width:calc((100% - 1px) / 14 * 7)}.sg-grid-column--ie11.sg-grid-column--m-span-8{width:calc((100% - 1px) / 14 * 8)}.sg-grid-column--ie11.sg-grid-column--m-span-9{width:calc((100% - 1px) / 14 * 9)}.sg-grid-column--ie11.sg-grid-column--m-span-10{width:calc((100% - 1px) / 14 * 10)}.sg-grid-column--ie11.sg-grid-column--m-span-11{width:calc((100% - 1px) / 14 * 11)}.sg-grid-column--ie11.sg-grid-column--m-span-12{width:calc((100% - 1px) / 14 * 12)}.sg-grid-column--ie11.sg-grid-column--m-span-13{width:calc((100% - 1px) / 14 * 13)}.sg-grid-column--ie11.sg-grid-column--m-span-14{width:calc((100% - 1px) / 14 * 14)}}@media(min-width: 1501px){.sg-grid-column--ie11.sg-grid-column--lg-span-1{width:calc((100% - 1px) / 14 * 1)}.sg-grid-column--ie11.sg-grid-column--lg-span-2{width:calc((100% - 1px) / 14 * 2)}.sg-grid-column--ie11.sg-grid-column--lg-span-3{width:calc((100% - 1px) / 14 * 3)}.sg-grid-column--ie11.sg-grid-column--lg-span-4{width:calc((100% - 1px) / 14 * 4)}.sg-grid-column--ie11.sg-grid-column--lg-span-5{width:calc((100% - 1px) / 14 * 5)}.sg-grid-column--ie11.sg-grid-column--lg-span-6{width:calc((100% - 1px) / 14 * 6)}.sg-grid-column--ie11.sg-grid-column--lg-span-7{width:calc((100% - 1px) / 14 * 7)}.sg-grid-column--ie11.sg-grid-column--lg-span-8{width:calc((100% - 1px) / 14 * 8)}.sg-grid-column--ie11.sg-grid-column--lg-span-9{width:calc((100% - 1px) / 14 * 9)}.sg-grid-column--ie11.sg-grid-column--lg-span-10{width:calc((100% - 1px) / 14 * 10)}.sg-grid-column--ie11.sg-grid-column--lg-span-11{width:calc((100% - 1px) / 14 * 11)}.sg-grid-column--ie11.sg-grid-column--lg-span-12{width:calc((100% - 1px) / 14 * 12)}.sg-grid-column--ie11.sg-grid-column--lg-span-13{width:calc((100% - 1px) / 14 * 13)}.sg-grid-column--ie11.sg-grid-column--lg-span-14{width:calc((100% - 1px) / 14 * 14)}}@supports not (grid-gap: 10px){.sg-grid-column--xs-span-1{width:calc((100% - 1px) / 14 * 1)}.sg-grid-column--xs-span-2{width:calc((100% - 1px) / 14 * 2)}.sg-grid-column--xs-span-3{width:calc((100% - 1px) / 14 * 3)}.sg-grid-column--xs-span-4{width:calc((100% - 1px) / 14 * 4)}.sg-grid-column--xs-span-5{width:calc((100% - 1px) / 14 * 5)}.sg-grid-column--xs-span-6{width:calc((100% - 1px) / 14 * 6)}.sg-grid-column--xs-span-7{width:calc((100% - 1px) / 14 * 7)}.sg-grid-column--xs-span-8{width:calc((100% - 1px) / 14 * 8)}.sg-grid-column--xs-span-9{width:calc((100% - 1px) / 14 * 9)}.sg-grid-column--xs-span-10{width:calc((100% - 1px) / 14 * 10)}.sg-grid-column--xs-span-11{width:calc((100% - 1px) / 14 * 11)}.sg-grid-column--xs-span-12{width:calc((100% - 1px) / 14 * 12)}.sg-grid-column--xs-span-13{width:calc((100% - 1px) / 14 * 13)}.sg-grid-column--xs-span-14{width:calc((100% - 1px) / 14 * 14)}@media(min-width: 801px){.sg-grid-column--sm-span-1{width:calc((100% - 1px) / 14 * 1)}.sg-grid-column--sm-span-2{width:calc((100% - 1px) / 14 * 2)}.sg-grid-column--sm-span-3{width:calc((100% - 1px) / 14 * 3)}.sg-grid-column--sm-span-4{width:calc((100% - 1px) / 14 * 4)}.sg-grid-column--sm-span-5{width:calc((100% - 1px) / 14 * 5)}.sg-grid-column--sm-span-6{width:calc((100% - 1px) / 14 * 6)}.sg-grid-column--sm-span-7{width:calc((100% - 1px) / 14 * 7)}.sg-grid-column--sm-span-8{width:calc((100% - 1px) / 14 * 8)}.sg-grid-column--sm-span-9{width:calc((100% - 1px) / 14 * 9)}.sg-grid-column--sm-span-10{width:calc((100% - 1px) / 14 * 10)}.sg-grid-column--sm-span-11{width:calc((100% - 1px) / 14 * 11)}.sg-grid-column--sm-span-12{width:calc((100% - 1px) / 14 * 12)}.sg-grid-column--sm-span-13{width:calc((100% - 1px) / 14 * 13)}.sg-grid-column--sm-span-14{width:calc((100% - 1px) / 14 * 14)}}@media(min-width: 1024px){.sg-grid-column--m-span-1{width:calc((100% - 1px) / 14 * 1)}.sg-grid-column--m-span-2{width:calc((100% - 1px) / 14 * 2)}.sg-grid-column--m-span-3{width:calc((100% - 1px) / 14 * 3)}.sg-grid-column--m-span-4{width:calc((100% - 1px) / 14 * 4)}.sg-grid-column--m-span-5{width:calc((100% - 1px) / 14 * 5)}.sg-grid-column--m-span-6{width:calc((100% - 1px) / 14 * 6)}.sg-grid-column--m-span-7{width:calc((100% - 1px) / 14 * 7)}.sg-grid-column--m-span-8{width:calc((100% - 1px) / 14 * 8)}.sg-grid-column--m-span-9{width:calc((100% - 1px) / 14 * 9)}.sg-grid-column--m-span-10{width:calc((100% - 1px) / 14 * 10)}.sg-grid-column--m-span-11{width:calc((100% - 1px) / 14 * 11)}.sg-grid-column--m-span-12{width:calc((100% - 1px) / 14 * 12)}.sg-grid-column--m-span-13{width:calc((100% - 1px) / 14 * 13)}.sg-grid-column--m-span-14{width:calc((100% - 1px) / 14 * 14)}}@media(min-width: 1501px){.sg-grid-column--lg-span-1{width:calc((100% - 1px) / 14 * 1)}.sg-grid-column--lg-span-2{width:calc((100% - 1px) / 14 * 2)}.sg-grid-column--lg-span-3{width:calc((100% - 1px) / 14 * 3)}.sg-grid-column--lg-span-4{width:calc((100% - 1px) / 14 * 4)}.sg-grid-column--lg-span-5{width:calc((100% - 1px) / 14 * 5)}.sg-grid-column--lg-span-6{width:calc((100% - 1px) / 14 * 6)}.sg-grid-column--lg-span-7{width:calc((100% - 1px) / 14 * 7)}.sg-grid-column--lg-span-8{width:calc((100% - 1px) / 14 * 8)}.sg-grid-column--lg-span-9{width:calc((100% - 1px) / 14 * 9)}.sg-grid-column--lg-span-10{width:calc((100% - 1px) / 14 * 10)}.sg-grid-column--lg-span-11{width:calc((100% - 1px) / 14 * 11)}.sg-grid-column--lg-span-12{width:calc((100% - 1px) / 14 * 12)}.sg-grid-column--lg-span-13{width:calc((100% - 1px) / 14 * 13)}.sg-grid-column--lg-span-14{width:calc((100% - 1px) / 14 * 14)}}}
27
+ .sg-loader{top:0;left:0}.sg-loader:focus{outline:none}.sg-keyboard .sg-loader:focus{outline:none;box-shadow:var(--focus-shadow)}.sg-loader--background-default{background:var(--loader-background)}.sg-loader--background-dark{background:var(--loader-background-dark)}.sg-loader--density-none{padding:0}.sg-loader--density-medium{padding:40px 0}.sg-loader--position-absolute{position:absolute;right:0;bottom:0;z-index:3}.sg-loader--position-fixed{position:fixed;right:0;bottom:0;z-index:100}.sg-loader--position-relative{position:relative;z-index:100}.sg-loader__content{display:flex;flex-direction:column;align-items:center}.sg-loader__content--position-sticky{position:-webkit-sticky;position:sticky;top:calc(50% - 25px)}@supports not ((position: -webkit-sticky) or (position: sticky)){.sg-loader__content--position-sticky{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}}.sg-loader__content--position-absolute{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}.sg-loader__content--transparent{opacity:.6}.sg-loader__message{margin-top:20px;max-width:500px;color:var(--typography-dark);font-size:14px;font-weight:400;font-family:var(--font-family-component);line-height:18px;text-align:center;text-transform:uppercase}.sg-loader__message--color-dark{color:var(--typography-white)}.sg-loader__spinner{position:relative;margin:0 auto;width:50px}
28
+ .sg-progress{height:8px;flex:1 1 0;position:relative;overflow:hidden;border-radius:12px;background:var(--background-slider)}.sg-progress:focus{box-shadow:var(--first-level-box-shadow);outline:none}.sg-progress__indicator{position:absolute;top:0;left:0;bottom:0;width:100%;-webkit-transform:translateX(-100%);transform:translateX(-100%);border-radius:12px}.sg-progress__indicator--color-blue{background:var(--background-button-primary)}.sg-progress__indicator--color-green{background:var(--color-success)}.sg-progress__indicator--color-orange{background:var(--color-warning)}.sg-progress__indicator--color-red{background:var(--color-error)}
29
+ .sg-flex{display:flex;flex-wrap:wrap;border-radius:inherit}.sg-flex:focus{outline:none}.sg-keyboard .sg-flex:focus{outline:none;box-shadow:var(--focus-shadow)}.sg-flex>*{min-width:0;max-width:100%}.sg-flex--margin-medium{margin-top:20px}.sg-flex--margin-medium:last-child{margin-bottom:20px}.sg-flex--direction-row{flex-direction:row}.sg-flex--direction-column{flex-direction:column}.sg-flex--direction-row-reverse{flex-direction:row-reverse}.sg-flex--direction-column-reverse{flex-direction:column-reverse}.sg-flex--justify-flex-start{justify-content:flex-start}.sg-flex--justify-center{justify-content:center}.sg-flex--justify-flex-end{justify-content:flex-end}.sg-flex--justify-space-between{justify-content:space-between}.sg-flex--justify-space-around{justify-content:space-around}.sg-flex--align-flex-start{align-items:flex-start}.sg-flex--align-center{align-items:center}.sg-flex--align-flex-end{align-items:flex-end}.sg-flex--align-baseline{align-items:baseline}.sg-flex--align-stretch{align-items:stretch}.sg-flex--align-self-flex-start{align-self:flex-start}.sg-flex--align-self-center{align-self:center}.sg-flex--align-self-flex-end{align-self:flex-end}.sg-flex--align-self-baseline{align-self:baseline}.sg-flex--align-self-stretch{align-self:stretch}.sg-flex--flex-wrap-wrap{flex-wrap:wrap}.sg-flex--flex-wrap-nowrap{flex-wrap:nowrap}.sg-flex--background-white{background-color:var(--background-component-primary)}.sg-flex--gutter-xx-small{padding-left:2.5px;padding-right:2.5px}.sg-flex--gutter-xx-small.sg-flex--expanded{margin-left:-5px;margin-right:-5px}.sg-flex--gutter-x-small{padding-left:5px;padding-right:5px}.sg-flex--gutter-x-small.sg-flex--expanded{margin-left:-10px;margin-right:-10px}.sg-flex--gutter-small{padding-left:7.5px;padding-right:7.5px}.sg-flex--gutter-small.sg-flex--expanded{margin-left:-15px;margin-right:-15px}.sg-flex--gutter-medium{padding-left:10px;padding-right:10px}.sg-flex--gutter-medium.sg-flex--expanded{margin-left:-20px;margin-right:-20px}.sg-flex--gutter-large{padding-left:15px;padding-right:15px}.sg-flex--gutter-large.sg-flex--expanded{margin-left:-30px;margin-right:-30px}.sg-flex--gutter-x-large{padding-left:20px;padding-right:20px}.sg-flex--gutter-x-large.sg-flex--expanded{margin-left:-40px;margin-right:-40px}.sg-flex--gutter-xx-large{padding-left:30px;padding-right:30px}.sg-flex--gutter-xx-large.sg-flex--expanded{margin-left:-60px;margin-right:-60px}.sg-flex--shrink-1{flex-shrink:1}.sg-flex--shrink-none{flex-shrink:0}.sg-flex--grow-1{flex-grow:1}.sg-flex--grow-2{flex-grow:2}.sg-flex--grow-3{flex-grow:3}.sg-flex--gap-none{gap:0}.sg-flex--gap-xx-small{gap:5px}.sg-flex--gap-x-small{gap:10px}.sg-flex--gap-small{gap:15px}.sg-flex--gap-medium{gap:20px}.sg-flex--gap-large{gap:30px}.sg-flex--gap-x-large{gap:40px}.sg-flex--gap-xx-large{gap:60px}.sg-flex--gap-responsive{gap:30px}@media(max-width: 1500px){.sg-flex--gap-responsive{gap:20px}}
30
+ .sg-page.from-dialog--prevent-scroll{overflow:hidden}.sg-dialog{display:flex;flex-direction:column;flex-shrink:0;margin:auto;max-width:100%;background:var(--background-component-primary);border-radius:12px;box-shadow:var(--second-level-box-shadow);will-change:transform}.sg-dialog:focus{outline:none}.sg-theme-hcl .sg-dialog,.sg-theme-hcb .sg-dialog{border-left:1px solid var(--high-contrast-foreground);border-bottom:1px solid var(--high-contrast-foreground);border-right:1px solid var(--high-contrast-foreground)}.sg-theme-hcl .sg-dialog .sg-toolbar,.sg-theme-hcb .sg-dialog .sg-toolbar{border-top:1px solid var(--high-contrast-foreground)}.sg-theme-hcl .sg-dialog--state-presentational,.sg-theme-hcl .sg-dialog--no-state,.sg-theme-hcb .sg-dialog--state-presentational,.sg-theme-hcb .sg-dialog--no-state{border-top:1px solid var(--high-contrast-foreground)}.sg-dialog__content-wrapper{display:grid;grid-gap:30px;grid-template-columns:minmax(0, 1fr)}.sg-dialog__icon-wrapper{display:flex;justify-content:center}.sg-dialog__icon{width:60px;height:60px;display:flex;align-items:center;justify-content:center;border-radius:50%}.sg-dialog__title-wrapper{width:100%}.sg-dialog__title{width:100%}.sg-dialog__title strong{font-weight:600}.sg-dialog__title em{color:var(--typography-dark);font-style:normal;word-wrap:break-word;word-break:break-all}.sg-dialog--align-left .sg-dialog__content-wrapper{text-align:left}.sg-dialog--align-center .sg-dialog__content-wrapper{text-align:center}.sg-dialog--align-right .sg-dialog__content-wrapper{text-align:right}.sg-dialog--density-none{padding-top:0}.sg-dialog--density-none .sg-dialog__icon-wrapper,.sg-dialog--density-none .sg-dialog__title-wrapper{padding-left:60px;padding-right:60px}.sg-dialog--density-small{padding-top:40px}.sg-dialog--density-small .sg-dialog__icon-wrapper,.sg-dialog--density-small .sg-dialog__title-wrapper{padding-left:60px;padding-right:60px}.sg-dialog--density-medium{padding-top:40px}.sg-dialog--density-medium .sg-dialog__icon-wrapper,.sg-dialog--density-medium .sg-dialog__title-wrapper,.sg-dialog--density-medium .sg-dialog__content{padding-left:60px;padding-right:60px}.sg-dialog--density-medium .sg-dialog__content{padding-bottom:40px}.sg-dialog--size-small{width:380px}.sg-dialog--size-medium{width:470px}.sg-dialog--size-large{width:640px}.sg-dialog--size-x-large{width:870px}.sg-dialog--size-xx-large{width:1440px}.sg-dialog--state-presentational .sg-dialog__icon{width:inherit;height:inherit}.sg-dialog--state-active{border-top:3px solid var(--color-success)}.sg-dialog--state-active .sg-dialog__icon{color:var(--typography-white);background-color:var(--color-success)}.sg-dialog--state-inactive{border-top:3px solid var(--color-error)}.sg-dialog--state-inactive .sg-dialog__icon{color:var(--typography-white);background-color:var(--color-error)}.sg-dialog--state-warning{border-top:3px solid var(--color-warning)}.sg-dialog--state-warning .sg-dialog__icon{color:var(--typography-white);background-color:var(--color-warning)}.sg-dialog--state-info{border-top:3px solid var(--color-instruction)}.sg-dialog--state-info .sg-dialog__icon{color:var(--typography-white);background-color:var(--color-instruction)}.sg-theme-hcl .sg-dialog--state-active .sg-dialog__icon,.sg-theme-hcl .sg-dialog--state-inactive .sg-dialog__icon,.sg-theme-hcl .sg-dialog--state-warning .sg-dialog__icon,.sg-theme-hcl .sg-dialog--state-info .sg-dialog__icon,.sg-theme-hcb .sg-dialog--state-active .sg-dialog__icon,.sg-theme-hcb .sg-dialog--state-inactive .sg-dialog__icon,.sg-theme-hcb .sg-dialog--state-warning .sg-dialog__icon,.sg-theme-hcb .sg-dialog--state-info .sg-dialog__icon{color:var(--high-contrast-background)}@media(max-width: 800px){.sg-dialog{width:100%}}@media(max-width: 1500px){.sg-dialog__content-wrapper{gap:20px}.sg-dialog__icon{width:40px;height:40px}.sg-dialog--density-small{padding-top:20px}.sg-dialog--density-small .sg-dialog__icon-wrapper,.sg-dialog--density-small .sg-dialog__title-wrapper{padding-left:20px;padding-right:20px}.sg-dialog--density-medium{padding-top:20px}.sg-dialog--density-medium .sg-dialog__icon-wrapper,.sg-dialog--density-medium .sg-dialog__title-wrapper,.sg-dialog--density-medium .sg-dialog__content{padding-left:20px;padding-right:20px}.sg-dialog--density-medium .sg-dialog__content{padding-bottom:20px}}@media not all and (-webkit-min-device-pixel-ratio: 0), not all and (min-resolution: 0.001dpcm){.sg-dialog--state-active,.sg-dialog--state-inactive,.sg-dialog--state-warning,.sg-dialog--state-info{border-right:3px solid transparent;border-bottom:3px solid transparent;border-left:3px solid transparent}}
31
+ .sg-dialog-wrapper{position:fixed;top:0;left:0;right:0;bottom:0;z-index:110;display:flex;flex-direction:column;padding:20px;overflow-x:hidden;overflow-y:auto;will-change:transform}.sg-dialog-wrapper--animation-open{-webkit-animation:dialog-wrapper-open-animation .2s forwards;animation:dialog-wrapper-open-animation .2s forwards}.sg-dialog-wrapper--animation-open .sg-dialog{-webkit-animation:dialog-open-animation .3s forwards;animation:dialog-open-animation .3s forwards}.sg-dialog-wrapper--animation-close{-webkit-animation:dialog-wrapper-close-animation .2s forwards;animation:dialog-wrapper-close-animation .2s forwards}.sg-dialog-wrapper--animation-close .sg-dialog{-webkit-animation:dialog-close-animation .3s forwards;animation:dialog-close-animation .3s forwards}@-webkit-keyframes dialog-wrapper-open-animation{from{background-color:transparent}to{background-color:var(--background-overlay)}}@keyframes dialog-wrapper-open-animation{from{background-color:transparent}to{background-color:var(--background-overlay)}}@-webkit-keyframes dialog-open-animation{from{opacity:0;-webkit-transform:scale(0.7);transform:scale(0.7)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dialog-open-animation{from{opacity:0;-webkit-transform:scale(0.7);transform:scale(0.7)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes dialog-wrapper-close-animation{from{background-color:var(--background-overlay)}to{background-color:transparent}}@keyframes dialog-wrapper-close-animation{from{background-color:var(--background-overlay)}to{background-color:transparent}}@-webkit-keyframes dialog-close-animation{from{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0.7);transform:scale(0.7)}}@keyframes dialog-close-animation{from{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(0.7);transform:scale(0.7)}}
32
+ .sg-toolbar{display:flex;width:100%}.sg-toolbar--direction-row{flex-direction:row}.sg-toolbar--direction-column{flex-direction:column}.sg-toolbar--direction-row-reverse{flex-direction:row-reverse}.sg-toolbar--direction-column-reverse{flex-direction:column-reverse}.sg-toolbar--density-none{padding:0}.sg-toolbar--density-compact{padding:10px 30px}.sg-toolbar--density-cozy{padding:20px 30px}.sg-toolbar--density-comfortable{padding:20px 60px}.sg-toolbar--align-flex-start{align-items:flex-start}.sg-toolbar--align-center{align-items:center}.sg-toolbar--align-flex-end{align-items:flex-end}.sg-toolbar--align-baseline{align-items:baseline}.sg-toolbar--align-stretch{align-items:stretch}.sg-toolbar--justify-flex-start{justify-content:flex-start}.sg-toolbar--justify-center{justify-content:center}.sg-toolbar--justify-flex-end{justify-content:flex-end}.sg-toolbar--justify-space-between{justify-content:space-between}.sg-toolbar--justify-space-around{justify-content:space-around}.sg-toolbar--background-default{background-color:var(--background-white)}.sg-toolbar--background-transparent{background-color:transparent}@media(max-width: 1500px){.sg-toolbar--density-compact{padding:10px 15px}.sg-toolbar--density-cozy{padding:15px 20px}.sg-toolbar--density-comfortable{padding:20px}}
33
+ .sg-tile:focus{outline:none}.sg-keyboard .sg-tile:focus{outline:none;box-shadow:var(--focus-shadow)}.sg-tile--vertical+.sg-tile--vertical,.sg-tile--vertical.sg-with-border+.sg-tile--vertical.sg-with-border{border-top:none}@media(max-width: 800px){.sg-tile.sg-with-border+.sg-tile.sg-with-border{border-top:none}.sg-tile:first-of-type{border-top-left-radius:12px;border-top-right-radius:12px}.sg-tile:last-of-type{border-bottom-left-radius:12px;border-bottom-right-radius:12px}}@media(min-width: 801px){.sg-tile.sg-with-border+.sg-tile.sg-with-border:not(.sg-tile--vertical){border-left:none}.sg-tile:first-of-type{border-top-left-radius:12px;border-bottom-left-radius:12px}.sg-tile:last-of-type{border-top-right-radius:12px;border-bottom-right-radius:12px}}
34
+ .info-circle__circle{display:flex;align-items:center;justify-content:center;flex-direction:column;width:100px;height:100px;border:2px solid transparent;border-radius:50%}.info-circle__score{font-size:1.25em;font-weight:bold}.info-circle--success .info-circle__circle{border-color:var(--color-success)}.info-circle--success .info-circle__score,.info-circle--success .info-circle__unit{color:var(--color-success)}.info-circle--error .info-circle__circle{border-color:var(--color-error)}.info-circle--error .info-circle__score,.info-circle--error .info-circle__unit{color:var(--color-error)}
35
+ .sg-list{list-style:none}.sg-list__item{display:flex;align-items:flex-start}.sg-list__item .sg-list__wrapper-icon{display:flex;align-items:center;justify-content:center}.sg-list__content{padding:0 10px;width:100%}.sg-list--ordered{counter-reset:order}.sg-list--ordered>.sg-list__item::before{font-weight:700;counter-increment:order;content:counter(order) ". "}.sg-list__content .sg-list__content{padding:0}.sg-list__content .sg-list__wrapper-icon{margin-right:10px}.sg-list--size-small{font-size:14px;line-height:18px}.sg-list--size-small .sg-list__wrapper-icon{height:18px}.sg-list--size-medium{font-size:16px;line-height:26px}.sg-list--size-medium .sg-list__wrapper-icon{height:22px}.sg-list--size-large{font-size:18px;line-height:28px}.sg-list--size-large .sg-list__wrapper-icon{height:28px}.sg-list--size-large .sg-list__content{padding:0 15px}.sg-list--type-success .sg-list__icon{color:var(--color-success)}.sg-list--type-error .sg-list__icon{color:var(--color-error)}.sg-list--type-warning .sg-list__icon{color:var(--color-warning)}.sg-list--type-info .sg-list__icon{color:var(--color-info)}.sg-list--type-instruction .sg-list__icon{color:var(--color-instruction)}.sg-list--orientation-vertical .sg-list__content,.sg-list--orientation-vertical.sg-list--large .sg-list__content{padding-right:0}.sg-list--orientation-horizontal{display:flex;flex-direction:row;align-items:center}.sg-list--orientation-horizontal .sg-list__item:last-child .sg-list__content{padding-right:0}.sg-list--orientation-horizontal:not(.sg-list--show-first-icon) .sg-list__item:first-child .sg-list__icon{display:none}.sg-list--orientation-horizontal:not(.sg-list--show-first-icon) .sg-list__item:first-child .sg-list__content{padding-left:0}.sg-list--justify-flex-start>.sg-list__item{justify-content:flex-start}.sg-list--justify-center>.sg-list__item{justify-content:center}.sg-list--justify-center>.sg-list__item>.sg-list__content:only-child{padding:0}.sg-list--justify-flex-end>.sg-list__item{justify-content:flex-end}.sg-list--density-large>.sg-list__item:nth-child(n+2){margin-top:10px}.sg-list--density-x-large>.sg-list__item:nth-child(n+2){margin-top:15px}
36
+ .sg-star-rating{display:flex;flex-wrap:nowrap;justify-content:space-around}.sg-star-rating:focus{outline:none}.sg-keyboard .sg-star-rating:focus{outline:none;box-shadow:var(--focus-shadow)}.sg-star-rating--size-small{width:100px}.sg-star-rating--size-medium{width:250px}.sg-star-rating--size-large{width:380px}
37
+ .sg-table-wrapper{width:100%;max-width:100%;border-radius:12px;background-color:var(--background-component-primary)}.sg-theme-hcl .sg-table-wrapper,.sg-theme-hcb .sg-table-wrapper{border:1px solid var(--high-contrast-foreground)}.sg-table-wrapper--box-shadow{box-shadow:var(--first-level-box-shadow)}.sg-table{width:100%;border-radius:12px;text-align:start;table-layout:fixed}.sg-table .sg-table__head .sg-table__cell:first-of-type{border-top-left-radius:12px}.sg-table .sg-table__head .sg-table__cell:last-of-type{border-top-right-radius:12px}.sg-table .sg-table__row:last-of-type .sg-table__cell:first-of-type{border-bottom-left-radius:12px}.sg-table .sg-table__row:last-of-type .sg-table__cell:last-of-type{border-bottom-right-radius:12px}.sg-table__head .sg-table__cell{color:var(--typography-dark);font-family:var(--font-family-component);font-weight:500;font-size:var(--typography-table-label-size);line-height:20px;text-align:left;border-top:none}.sg-table__head-tile{text-align:center}.sg-table__head--background-white .sg-table__cell{background-color:var(--background-component-primary)}.sg-table__footer--background-default .sg-table__cell{border-radius:12px}.sg-table__footer--background-white .sg-table__cell{background-color:var(--background-component-primary);border-radius:12px}.sg-table__row--animation-enter{opacity:0;transition:opacity .5s linear}.sg-table__row--animation-enter-active{opacity:1}.sg-table__row--animation-exit{pointer-events:none;transition:opacity .5s linear}.sg-table__row--animation-exit-active{opacity:0}.sg-table__cell.sg-table__cell--is-in-row-selection,.sg-table__cell--is-in-row-selection{background-color:var(--component-background-hover)}.sg-theme-hcl .sg-table__cell.sg-table__cell--is-in-row-selection,.sg-theme-hcl .sg-table__cell--is-in-row-selection,.sg-theme-hcb .sg-table__cell.sg-table__cell--is-in-row-selection,.sg-theme-hcb .sg-table__cell--is-in-row-selection{background-color:var(--component-background-hover)}.sg-table__cell{position:relative;padding:0 20px;vertical-align:middle;background-color:var(--background-component-primary);border-top:1px solid var(--border-color-inner);font-size:16px;line-height:20px;text-align:left}.sg-table__cell:focus{outline:none}.sg-keyboard .sg-table__cell:focus{outline:none;box-shadow:var(--focus-shadow)}.sg-table__cell--height-small{height:40px}.sg-table__cell--height-medium{height:60px}.sg-table__cell-dnd-wrapper{display:flex;align-items:center}.sg-table__cell-dnd-wrapper .sg-icon-move{display:none}.sg-table__cell-dnd-wrapper .sg-icon-dnd{margin-right:15px;color:var(--color-icon-button)}.sg-table__after-content{border-top:1px solid var(--border-color-inner)}.sg-table-load-more{display:flex;justify-content:center;padding:20px;border-bottom-right-radius:12px;border-bottom-left-radius:12px}.sg-theme-hcl .sg-table-load-more,.sg-theme-hcb .sg-table-load-more{border-top:1px solid var(--high-contrast-foreground)}.sg-table .sg-table__row .sg-table__cell.sg-table__expand-toggle{text-align:center;background-color:var(--background-component-secondary);padding:20px 15px}.sg-table__cell--skeleton{background-color:var(--background-component-secondary);height:14px}.sg-table-wrapper--density-none .sg-table__cell{padding:0}.sg-table-wrapper--density-none .sg-table__after-content{padding:0}.sg-table-wrapper--density-small .sg-table__cell:first-child{padding-left:20px}.sg-table-wrapper--density-small .sg-table__cell:last-child{padding-right:20px}.sg-table-wrapper--density-small .sg-table__after-content{padding:20px 20px}.sg-table-wrapper--density-small .sg-table-wrapper--density-small .sg-table__cell:first-child{padding-left:40px}.sg-table-wrapper--density-small .sg-table-wrapper--density-small .sg-table__cell:last-child{padding-right:40px}.sg-table-wrapper--density-medium .sg-table__cell:first-child{padding-left:30px}.sg-table-wrapper--density-medium .sg-table__cell:first-child::before{left:5px}.sg-table-wrapper--density-medium .sg-table__cell:last-child{padding-right:30px}.sg-table-wrapper--density-medium .sg-table__after-content{padding:20px 30px}.sg-table-wrapper--density-medium .sg-table-wrapper--density-medium .sg-table__cell:first-child{padding-left:60px}.sg-table-wrapper--density-medium .sg-table-wrapper--density-medium .sg-table__cell:first-child::before{left:10px}.sg-table-wrapper--density-medium .sg-table-wrapper--density-medium .sg-table__cell:last-child{padding-right:60px}.sg-table-wrapper--density-large .sg-table__cell:first-child{padding-left:60px}.sg-table-wrapper--density-large .sg-table__after-content{padding:20px 60px}.sg-table-wrapper--density-large .sg-table__cell:last-child{padding-right:60px}.sg-table-wrapper--density-large .sg-table-wrapper--density-large .sg-table__cell:first-child{padding-left:120px}.sg-table-wrapper--density-large .sg-table-wrapper--density-large .sg-table__cell:last-child{padding-right:120px}.sg-product-table{width:100%}.sg-product-table .sg-toolbar{margin:0}sg-product-table{border:2px solid transparent}.sg-product-table--selected{border:2px solid var(--color-primary);border-radius:12px}.sg-product-table__row{border-bottom:1px solid var(--border-color-inner)}@media(min-width: 801px){.sg-table.sg-table--no-footer .sg-table__row:last-child .sg-table__cell--is-selected::before{border-bottom:2px solid var(--background-button-primary)}.sg-table__cell--is-selected::before{content:" ";position:absolute;display:block;top:-1px;bottom:0;right:0;left:-2px;border-left:2px solid var(--background-button-primary);border-right:2px solid var(--background-button-primary);pointer-events:none}.sg-table__head .sg-table__cell--is-selected::before{border-top:2px solid var(--background-button-primary);border-radius:12px 12px 0 0}.sg-table__footer .sg-table__cell--is-selected::before{border-bottom:2px solid var(--background-button-primary);border-radius:0 0 12px 12px}}@media(min-width: 801px){.sg-table__row:hover .sg-table__cell{background-color:var(--component-background-hover)}}@media(max-width: 800px){.sg-table{table-layout:fixed}.sg-table-wrapper .sg-table__after-content{padding:0}.sg-table-wrapper--mobile-card .sg-table__cell,.sg-table-wrapper--mobile-card .sg-table__cell:first-child,.sg-table-wrapper--mobile-card .sg-table__cell:last-child,.sg-table-wrapper--mobile-card-flat .sg-table__cell,.sg-table-wrapper--mobile-card-flat .sg-table__cell:first-child,.sg-table-wrapper--mobile-card-flat .sg-table__cell:last-child{padding:24px 20px 15px 20px}.sg-table-wrapper--mobile-card .sg-table__cell:first-child,.sg-table-wrapper--mobile-card-flat .sg-table__cell:first-child{border-top-left-radius:12px;border-top-right-radius:12px}.sg-table-wrapper--mobile-card .sg-table__cell:last-child,.sg-table-wrapper--mobile-card-flat .sg-table__cell:last-child{border-bottom-left-radius:12px;border-bottom-right-radius:12px}.sg-table-wrapper--mobile-card .sg-table__footer,.sg-table-wrapper--mobile-card-flat .sg-table__footer{display:none}.sg-table-wrapper--mobile-card.sg-table-wrapper,.sg-table-wrapper--mobile-card-flat.sg-table-wrapper{background-color:transparent}.sg-table-wrapper--mobile-card:not(.sg-table-wrapper--no-data).sg-table-wrapper--box-shadow,.sg-table-wrapper--mobile-card-flat:not(.sg-table-wrapper--no-data).sg-table-wrapper--box-shadow{box-shadow:none}.sg-table-wrapper--mobile-card .sg-table__head,.sg-table-wrapper--mobile-card-flat .sg-table__head{display:none}.sg-table-wrapper--mobile-card .sg-table__row,.sg-table-wrapper--mobile-card-flat .sg-table__row{display:block;border-radius:12px}.sg-table-wrapper--mobile-card .sg-table__row{box-shadow:var(--first-level-box-shadow)}.sg-table-wrapper--mobile-card-flat .sg-table__row{box-shadow:none}.sg-table-wrapper--mobile-card-flat .sg-table__row{border:1px solid var(--border-color-outer)}.sg-table__cell-expandable-wrapper .sg-table__row{border-width:1px 0 0}.sg-table-wrapper--mobile-card:not(.sg-table-wrapper--reordable) .sg-table__row:not(:last-child),.sg-table-wrapper--mobile-card-flat:not(.sg-table-wrapper--reordable) .sg-table__row:not(:last-child){margin-bottom:20px}.sg-table-wrapper--mobile-card .sg-table__cell,.sg-table-wrapper--mobile-card-flat .sg-table__cell{height:auto;display:block;position:relative;border:none}.sg-table-wrapper--mobile-card .sg-table__cell:nth-child(n+2)::after,.sg-table-wrapper--mobile-card-flat .sg-table__cell:nth-child(n+2)::after{content:attr(data-label);display:block;position:absolute;top:4px;left:20px;font-family:var(--font-family-component);font-weight:500;font-size:var(--typography-table-label-size);line-height:16px;color:var(--typography-dark);text-align:initial;text-transform:capitalize}.sg-table-load-more{margin-top:20px;padding:0;background:none}}@media(max-width: 1500px){.sg-table-wrapper--density-medium .sg-table__cell:first-child{padding-left:20px}.sg-table-wrapper--density-medium .sg-table__cell:first-child::before{left:5px}.sg-table-wrapper--density-medium .sg-table__cell:last-child{padding-right:20px}.sg-table-wrapper--density-medium .sg-table__after-content{padding:20px 20px}.sg-table-wrapper--density-medium .sg-table-wrapper--density-medium .sg-table__cell:first-child{padding-left:40px}.sg-table-wrapper--density-medium .sg-table-wrapper--density-medium .sg-table__cell:last-child{padding-right:40px}.sg-table__cell--height-medium{height:50px}}
38
+ .sg-placeholder-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden}.sg-placeholder-wrapper:focus{outline:none}.sg-keyboard .sg-placeholder-wrapper:focus{outline:none;box-shadow:var(--focus-shadow)}.sg-theme-hcl .sg-placeholder-wrapper,.sg-theme-hcb .sg-placeholder-wrapper{border:1px solid var(--high-contrast-foreground)}.sg-placeholder-wrapper--border-radius-medium{border-radius:12px}.sg-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;z-index:2;width:100%}.sg-placeholder--background-white{background-color:var(--background-component-primary)}.sg-placeholder--background-lighter{background-color:var(--background-main)}.sg-placeholder--shadow{box-shadow:var(--first-level-box-shadow)}.sg-placeholder-icon-wrapper{display:flex;justify-content:center;align-items:center;border-radius:50%;background-color:var(--background-component-primary);margin-bottom:20px}.sg-placeholder-spacer{margin-top:40px}.sg-placeholder__images-container{margin:0 auto;width:800px;max-width:100%;position:absolute;height:240px;overflow:hidden;top:40px}.sg-placeholder__background-elements{width:800px;height:240px;max-width:100%;position:absolute}@media(max-width: 1500px){.sg-placeholder__background-elements{display:none}.sg-placeholder{padding:20px}}
39
+ .sg-table-dnd-placeholder{width:100%}.sg-table-dnd-placeholder tr{display:flex}.sg-table-dnd-placeholder td{display:flex;align-items:center;flex:1}.sg-icon-expandable{margin-right:15px}
40
+ .table-row--loading{pointer-events:none}.table-row--loading .table-row__cell--loading{padding:5px}.table-row__loader-wrapper{display:flex;align-items:center;justify-content:center;width:100%;max-width:100%;height:100%;position:relative}.hammerjs-wrapper{-webkit-user-select:auto !important;-moz-user-select:auto !important;-ms-user-select:auto !important;user-select:auto !important}@media(max-width: 800px){.table-row__loader-wrapper{min-height:50px}}
41
+ .sg-container-html-style h1,.sg-title--level-1{font-size:40px;line-height:56px}.sg-container-html-style h2,.sg-title--level-2{font-size:32px;line-height:40px}.sg-container-html-style h3,.sg-title--level-3{font-size:26px;line-height:36px}.sg-container-html-style h4,.sg-title--level-4{font-size:22px;line-height:32px}.sg-container-html-style h5,.sg-title--level-5{font-size:18px;line-height:28px}.sg-container-html-style h6,.sg-title--level-6{font-size:18px;line-height:28px;text-transform:uppercase}.sg-title{font-family:var(--font-family-component);max-width:100%}.sg-title:focus{outline:none}.sg-keyboard .sg-title:focus{outline:none;box-shadow:var(--focus-shadow)}.sg-title--density-airy.sg-title--level-1{padding:32px 0}.sg-title--density-airy.sg-title--level-2{padding:34px 0}.sg-title--density-airy.sg-title--level-3{padding:34px 0}.sg-title--density-airy.sg-title--level-4{padding:36px 0}.sg-title--density-airy.sg-title--level-5{padding:35px 0}.sg-title--density-airy.sg-title--level-6{padding:35px 0}.sg-title--density-comfortable.sg-title--level-1{padding:22px 0}.sg-title--density-comfortable.sg-title--level-2{padding:24px 0}.sg-title--density-comfortable.sg-title--level-3{padding:24px 0}.sg-title--density-comfortable.sg-title--level-4{padding:26px 0}.sg-title--density-comfortable.sg-title--level-5{padding:25px 0}.sg-title--density-comfortable.sg-title--level-6{padding:25px 0}.sg-title--density-cozy.sg-title--level-1{padding:12px 0}.sg-title--density-cozy.sg-title--level-2{padding:14px 0}.sg-title--density-cozy.sg-title--level-3{padding:14px 0}.sg-title--density-cozy.sg-title--level-4{padding:16px 0}.sg-title--density-cozy.sg-title--level-5{padding:15px 0}.sg-title--density-cozy.sg-title--level-6{padding:15px 0}.sg-title--density-compact.sg-title--level-1{padding:2px 0}.sg-title--density-compact.sg-title--level-2{padding:4px 0}.sg-title--density-compact.sg-title--level-3{padding:4px 0}.sg-title--density-compact.sg-title--level-4{padding:6px 0}.sg-title--density-compact.sg-title--level-5{padding:5px 0}.sg-title--density-compact.sg-title--level-6{padding:5px 0}.sg-title--density-none{padding:0}@media(max-width: 1500px){.sg-title--level-1{font-size:30px;line-height:46px}.sg-title--level-2{font-size:28px;line-height:38px}.sg-title--level-3{font-size:24px;line-height:34px}.sg-title--level-4{font-size:20px;line-height:30px}.sg-title--density-airy.sg-title--level-1{padding:16px 0}.sg-title--density-airy.sg-title--level-2{padding:18px 0}.sg-title--density-airy.sg-title--level-3{padding:18px 0}.sg-title--density-airy.sg-title--level-4{padding:20px 0}.sg-title--density-airy.sg-title--level-5{padding:22px 0}.sg-title--density-airy.sg-title--level-6{padding:22px 0}.sg-title--density-comfortable.sg-title--level-1{padding:6px 0}.sg-title--density-comfortable.sg-title--level-2{padding:8px 0}.sg-title--density-comfortable.sg-title--level-3{padding:8px 0}.sg-title--density-comfortable.sg-title--level-4{padding:10px 0}.sg-title--density-comfortable.sg-title--level-5{padding:10px 0}.sg-title--density-comfortable.sg-title--level-6{padding:10px 0}.sg-title--density-cozy.sg-title--level-4{padding:10px 0}.sg-title--density-cozy.sg-title--level-5{padding:10px 0}.sg-title--density-cozy.sg-title--level-6{padding:10px 0}}.sg-container-html-style{color:var(--typography-dark)}.sg-container-html-style a{text-decoration:none;display:inline-block;color:var(--color-primary);cursor:pointer;word-break:break-all}.sg-container-html-style a:hover{color:var(--color-secondary-hovered)}.sg-container-html-style a:active{color:var(--color-secondary-active)}.sg-container-html-style a:visited{color:var(--color-info)}.sg-container-html-style p{word-break:break-word}.sg-container-html-style h1,.sg-container-html-style h2,.sg-container-html-style h3,.sg-container-html-style h4,.sg-container-html-style h5,.sg-container-html-style h6{font-family:var(--font-family-component);max-width:100%;padding:22px 0}.sg-container-html-style figure{display:block;padding:20px;margin:0 0 30px;text-align:center;background-image:linear-gradient(45deg, #eae4db 25%, transparent 25%),linear-gradient(-45deg, #eae4db 25%, transparent 25%),linear-gradient(45deg, transparent 75%, #eae4db 75%),linear-gradient(-45deg, transparent 75%, #eae4db 75%);background-size:4px 4px;background-position:-2px -2px,0 2px,0 0,2px 0}.sg-container-html-style figure img{border:1px solid var(--border-color-outer);border-radius:12px;margin:0 auto;max-width:100%;height:auto;box-sizing:content-box}.sg-container-html-style ul,.sg-container-html-style ol{margin:0 0 30px;word-break:break-word}.sg-container-html-style ul{padding:0;list-style:none}.sg-container-html-style ul li,.sg-container-html-style ol li{padding-left:20px;margin-bottom:10px;position:relative}.sg-container-html-style ul li::before{content:"";display:block;width:7px;height:7px;background:#c1aa95;border-radius:50%;position:absolute;left:0;top:9px}.sg-container-html-style li li::before{border:1px solid #c1aa95;background:transparent;box-sizing:border-box;top:11px}.sg-container-html-style table{width:100%;border-radius:12px;text-align:start;table-layout:fixed;border:1px solid var(--border-color-outer);margin-bottom:30px}.sg-container-html-style table td,.sg-container-html-style table th{position:relative;height:60px;padding:0 20px;vertical-align:middle;background-color:#fff;border-top:1px solid #f2f2f2;font-size:16px;line-height:26px;text-align:left}.sg-container-html-style tr:last-of-type td:first-of-type{border-bottom-left-radius:12px}.sg-container-html-style tr:last-of-type td:last-of-type{border-bottom-right-radius:12px}.sg-container-html-style thead th{color:#a4a4a4;background-color:#f8f8f8;font-family:var(--font-family-component);font-weight:500;font-size:14px;line-height:18px;border-top:none}.sg-container-html-style thead th:first-of-type{border-top-left-radius:12px}.sg-container-html-style thead th:last-of-type{border-top-right-radius:12px}.sg-container-html-style--density-cozy{font-size:18px;font-weight:400;font-family:var(--font-family-component);line-height:28px}.sg-container-html-style--density-compact{font-size:16px;font-weight:400;font-family:var(--font-family-component);line-height:26px}@media(min-width: 801px){.sg-container-html-style tr:hover td{background-color:#f8f8f8}}@media(max-width: 767px){.sg-container-html-style table{table-layout:fixed;border:none}.sg-container-html-style thead{display:none}.sg-container-html-style table tr{display:block;margin-bottom:20px;border-radius:12px;border:1px solid var(--border-color-outer)}.sg-container-html-style table td{height:auto;display:block;position:relative;border:none}.sg-container-html-style table td,.sg-container-html-style table td:first-child,.sg-container-html-style table td:last-child{padding:24px 20px 15px}.sg-container-html-style table td:first-child{border-top-left-radius:12px;border-top-right-radius:12px;color:#363636;font-size:22px;font-weight:600;font-family:var(--font-family-component);line-height:32px}.sg-container-html-style table td:last-child{border-bottom-left-radius:12px;border-bottom-right-radius:12px}.sg-container-html-style table td:nth-child(n+2)::after{content:attr(data-label);display:block;position:absolute;top:4px;left:20px;font-family:var(--font-family-component);font-size:14px;line-height:26px;color:#a4a4a4;text-align:initial;text-transform:capitalize}}
42
+ .sg-layout{display:flex;flex-direction:column;width:100%;overflow:hidden;background:var(--background-main)}.sg-layout--absolute{position:absolute;top:0;left:0;right:0;bottom:0}.sg-layout__page{position:relative;display:flex;flex:1 1 0;overflow:hidden;z-index:10}.sg-layout__wrapper{display:flex;height:100%;overflow-y:auto;position:relative}.sg-layout__drawer{width:0;height:100%;flex-shrink:0;position:relative;z-index:30;overflow-x:hidden;overflow-y:auto;background-color:var(--drawer-background);transition-property:width,-webkit-transform;transition-property:width,transform;transition-property:width,transform,-webkit-transform;transition-duration:150ms;transition-timing-function:linear;transition-delay:0ms}.sg-theme-hcl .sg-layout__drawer,.sg-theme-hcb .sg-layout__drawer{border-right:1px solid var(--high-contrast-foreground);box-shadow:var(--first-level-box-shadow)}.sg-layout__drawer--opened{width:280px}.sg-layout__drawer--compact{width:280px}.sg-drawer__overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:none;cursor:pointer}@media(max-width: 1024px){.sg-layout__drawer{position:absolute;top:0;bottom:0;left:0;-webkit-transform:translateX(-260px);transform:translateX(-260px);box-shadow:var(--first-level-box-shadow)}.sg-layout__drawer--opened{-webkit-transform:translateX(0);transform:translateX(0)}.sg-drawer__overlay--opened{display:block}}@media(max-width: 1500px){.sg-layout__drawer--opened{width:250px}.sg-layout__drawer--compact{width:60px;position:relative;-webkit-transform:translateX(0);transform:translateX(0)}}
43
+ .sg-page{position:relative;flex:1 1 0;padding-left:0;background:var(--background-main);overflow-x:hidden;overflow-y:auto}.sg-page:focus{outline:none}.sg-keyboard .sg-page:focus{outline:none;box-shadow:var(--focus-shadow)}
44
+ .sg-notifications{position:fixed;top:100px;right:15px;z-index:150;overflow-x:hidden;padding:10px 15px 30px 15px}.sg-notifications strong{word-wrap:anywhere;word-break:break-all}.sg-notifications-is-empty{pointer-events:none}.sg-notification{display:flex;align-items:center;min-height:50px;max-width:390px;padding-right:10px;border-radius:12px;background-color:var(--background-component-primary);box-shadow:var(--second-level-box-shadow);overflow:hidden;-webkit-transform:translateX(0);transform:translateX(0);transition:-webkit-transform .3s ease;transition:transform .3s ease;transition:transform .3s ease, -webkit-transform .3s ease}.sg-notification:focus{outline:none}.sg-keyboard .sg-notification:focus{outline:none;box-shadow:var(--second-level-box-shadow),var(--focus-shadow)}.sg-notification:not(:first-child){margin-top:20px}.sg-notification--animation-enter,.sg-notification--animation-exit{-webkit-transform:translateX(calc(100% + 20px));transform:translateX(calc(100% + 20px))}.sg-theme-hcl .sg-notification,.sg-theme-hcb .sg-notification{border:1px solid var(--high-contrast-foreground)}.sg-notification__icon{display:flex;justify-content:center;align-items:center;align-self:stretch;flex-shrink:0;width:50px;color:var(--typography-white)}.sg-notification__close-icon{color:var(--color-icon-button);cursor:pointer}.sg-notification__content{flex:auto;padding:15px 20px;word-break:break-word}.sg-notification--success .sg-notification__icon{background-color:var(--color-success)}.sg-notification--error .sg-notification__icon{background-color:var(--color-error)}.sg-notification--warning .sg-notification__icon{background-color:var(--color-warning)}.sg-notification--instruction .sg-notification__icon{background-color:var(--color-instruction)}.sg-notification--info .sg-notification__icon{background-color:var(--color-info)}.sg-notification--hint .sg-notification__icon{background-color:var(--color-hint)}.sg-theme-hcl .sg-notification--success .sg-notification__icon,.sg-theme-hcl .sg-notification--error .sg-notification__icon,.sg-theme-hcl .sg-notification--warning .sg-notification__icon,.sg-theme-hcl .sg-notification--instruction .sg-notification__icon,.sg-theme-hcl .sg-notification--info .sg-notification__icon,.sg-theme-hcl .sg-notification--hint .sg-notification__icon,.sg-theme-hcb .sg-notification--success .sg-notification__icon,.sg-theme-hcb .sg-notification--error .sg-notification__icon,.sg-theme-hcb .sg-notification--warning .sg-notification__icon,.sg-theme-hcb .sg-notification--instruction .sg-notification__icon,.sg-theme-hcb .sg-notification--info .sg-notification__icon,.sg-theme-hcb .sg-notification--hint .sg-notification__icon{color:var(--high-contrast-background)}@media(max-width: 800px){.sg-notifications{top:60px;left:0;right:0;overflow-x:visible;padding:0}.sg-notification{-webkit-transform:translateY(0);transform:translateY(0);transition:-webkit-transform .7s ease;transition:transform .7s ease;transition:transform .7s ease, -webkit-transform .7s ease;max-width:100%}.sg-notification--animation-enter{-webkit-transform:translateY(-100vh);transform:translateY(-100vh)}.sg-notification--animation-exit{-webkit-transform:translateY(calc(-50vh - 100%));transform:translateY(calc(-50vh - 100%))}.sg-notification .sg-notification__icon{width:40px}.sg-notification .sg-notification__content{padding:10px 15px}.sg-notification__icon{width:40px}}
assets/css/siteground-migrator-admin-rtl.css ADDED
@@ -0,0 +1,1108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import url("https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Roboto+Condensed:300,400,700|Roboto:300,300i,400,400i,500,500i,700,700i&subset=latin-ext");
2
+ @keyframes spin {
3
+ 100% {
4
+ transform: rotate(360deg); } }
5
+
6
+ * {
7
+ box-sizing: border-box;
8
+ margin: 0;
9
+ padding: 0; }
10
+
11
+ svg {
12
+ display: block; }
13
+
14
+ html {
15
+ height: 100%;
16
+ background: #fff;
17
+ text-rendering: optimizeLegibility;
18
+ -webkit-font-smoothing: antialiased; }
19
+
20
+ body {
21
+ height: 100%;
22
+ color: #363636;
23
+ background: #f8f8f8;
24
+ font: 400 14px/18px "Open Sans", Arial, Helvetica, sans-serif; }
25
+
26
+ h1,
27
+ h2,
28
+ h3,
29
+ h4,
30
+ h5,
31
+ h6 {
32
+ line-height: normal;
33
+ margin: 0; }
34
+
35
+ form,
36
+ input,
37
+ textarea,
38
+ select {
39
+ resize: none; }
40
+
41
+ form,
42
+ textarea {
43
+ width: 100%; }
44
+
45
+ input,
46
+ textarea,
47
+ select {
48
+ border-radius: 0; }
49
+
50
+ input:focus,
51
+ textarea:focus,
52
+ select:focus {
53
+ outline: none;
54
+ border: none; }
55
+
56
+ input[type="submit"]:focus,
57
+ textarea[type="submit"]:focus,
58
+ select[type="submit"]:focus {
59
+ border: none !important; }
60
+
61
+ input[type=text],
62
+ input[type=text]:focus,
63
+ input[type=email],
64
+ input[type=email]:focus {
65
+ border: none;
66
+ box-shadow: none;
67
+ background-color: transparent; }
68
+
69
+ button {
70
+ outline: none;
71
+ border-radius: 0; }
72
+
73
+ table {
74
+ border-collapse: collapse; }
75
+
76
+ a {
77
+ text-decoration: none;
78
+ outline: none; }
79
+
80
+ .ua-margin-top-medium {
81
+ margin-bottom: 20px; }
82
+
83
+ .container {
84
+ display: flex;
85
+ flex-direction: column;
86
+ border-radius: 3px;
87
+ background: #fff; }
88
+
89
+ .container--elevation-1 {
90
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 5px 0 rgba(0, 0, 0, 0.16); }
91
+
92
+ .container--padding-xx-large {
93
+ padding: 60px; }
94
+
95
+ .container--padding-none {
96
+ padding: 0; }
97
+
98
+ .section {
99
+ width: 100%;
100
+ transition: transform 300ms linear 0ms;
101
+ will-change: transform; }
102
+
103
+ .section__content {
104
+ margin: 0 auto;
105
+ padding-right: 20px; }
106
+
107
+ .section--content-size-default .section__content {
108
+ max-width: 1240px; }
109
+
110
+ .section--density-cozy {
111
+ padding-top: 20px;
112
+ padding-bottom: 20px; }
113
+
114
+ .flex {
115
+ display: flex;
116
+ flex-wrap: wrap; }
117
+
118
+ .flex > * {
119
+ min-width: 0;
120
+ max-width: 100%; }
121
+
122
+ .flex--margin-medium {
123
+ margin-top: 20px; }
124
+
125
+ .flex--margin-medium:last-child {
126
+ margin-bottom: 20px; }
127
+
128
+ .flex--direction-column {
129
+ flex-direction: column; }
130
+
131
+ .flex--align-center {
132
+ align-items: center; }
133
+
134
+ .flex--gutter-medium {
135
+ padding-left: 10px;
136
+ padding-right: 10px; }
137
+
138
+ .flex--gutter-medium.flex--expanded {
139
+ margin-left: -20px;
140
+ margin-right: -20px; }
141
+
142
+ .flex--gutter-xx-large {
143
+ padding-left: 30px;
144
+ padding-right: 30px; }
145
+
146
+ .flex--gutter-xx-large.flex--expanded {
147
+ margin-left: -60px;
148
+ margin-right: -60px; }
149
+
150
+ .btn {
151
+ display: inline-block;
152
+ border: 2px solid transparent;
153
+ border-radius: 3px;
154
+ font-family: Roboto;
155
+ font-weight: 400;
156
+ text-transform: uppercase; }
157
+
158
+ .btn:hover {
159
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 5px 0 rgba(0, 0, 0, 0.16);
160
+ cursor: pointer; }
161
+
162
+ .btn:active {
163
+ box-shadow: none; }
164
+
165
+ .btn:focus {
166
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 5px 0 rgba(0, 0, 0, 0.16); }
167
+
168
+ .btn + .btn {
169
+ margin-left: 15px; }
170
+
171
+ .btn__content {
172
+ display: inline-flex;
173
+ justify-content: center;
174
+ align-items: center; }
175
+
176
+ .btn__text {
177
+ line-height: 1; }
178
+
179
+ .btn__text:first-child {
180
+ margin-right: 10px; }
181
+
182
+ .btn__text:last-child {
183
+ margin-left: 10px; }
184
+
185
+ .btn__text:only-child {
186
+ margin-right: 0;
187
+ margin-left: 0; }
188
+
189
+ .btn--primary {
190
+ color: #fff;
191
+ background-color: #f57b45; }
192
+
193
+ .btn--primary:hover {
194
+ background-color: #d45e2a; }
195
+
196
+ .btn--primary:active {
197
+ color: white;
198
+ background-color: #ef9a78; }
199
+
200
+ .btn--secondary {
201
+ color: #fff;
202
+ background-color: #25b8d2; }
203
+
204
+ .btn--secondary:hover {
205
+ background-color: #1797ae; }
206
+
207
+ .btn--secondary:active {
208
+ color: white;
209
+ background-color: #57d0dd; }
210
+
211
+ .btn--dark {
212
+ color: #444;
213
+ background-color: #f8f8f8; }
214
+
215
+ .btn--dark:hover {
216
+ background-color: #f2f2f2; }
217
+
218
+ .btn--dark:active {
219
+ color: #777777;
220
+ background-color: #f8f8f8; }
221
+
222
+ .btn--x-large {
223
+ height: 50px;
224
+ padding-left: 28px;
225
+ padding-right: 28px;
226
+ font-size: 14px; }
227
+
228
+ .btn--large {
229
+ height: 40px;
230
+ line-height: 40px;
231
+ padding-left: 23px;
232
+ padding-right: 23px;
233
+ font-size: 14px; }
234
+
235
+ .btn--medium {
236
+ height: 36px;
237
+ padding-left: 18px;
238
+ padding-right: 18px;
239
+ font-size: 13px; }
240
+
241
+ .btn--neutral {
242
+ color: #444;
243
+ background-color: transparent; }
244
+
245
+ .btn--neutral:hover {
246
+ background-color: #fff; }
247
+
248
+ .btn--neutral:active {
249
+ color: #777777;
250
+ background-color: transparent; }
251
+
252
+ .table__row-template {
253
+ display: none; }
254
+
255
+ .btn--outlined {
256
+ background-color: transparent;
257
+ border-color: currentColor; }
258
+
259
+ .btn--outlined:hover {
260
+ background-color: transparent; }
261
+
262
+ .btn--outlined.btn--primary {
263
+ color: #f57b45; }
264
+
265
+ .btn--outlined.btn--secondary {
266
+ color: #25b8d2; }
267
+
268
+ .btn--outlined.btn--dark {
269
+ color: #f8f8f8; }
270
+
271
+ .link {
272
+ display: inline-block;
273
+ color: #25b8d2;
274
+ cursor: pointer;
275
+ word-break: break-all;
276
+ outline: none !important; }
277
+
278
+ .link:active, .link:focus {
279
+ color: #57d0dd;
280
+ outline: none;
281
+ box-shadow: none; }
282
+
283
+ .link:visited {
284
+ color: #25b8d2; }
285
+
286
+ .link:hover {
287
+ color: #1797ae; }
288
+
289
+ .typography--align-center {
290
+ text-align: center;
291
+ align-self: center; }
292
+
293
+ .typography--weight-light {
294
+ font-weight: 300; }
295
+
296
+ .typography--weight-regular {
297
+ font-weight: 400; }
298
+
299
+ .typography--weight-bold {
300
+ font-weight: 600; }
301
+
302
+ .title {
303
+ font-family: Roboto;
304
+ max-width: 100%; }
305
+
306
+ .title small {
307
+ margin-left: 10px;
308
+ opacity: 0.3; }
309
+
310
+ .title--level-1 {
311
+ font-size: 32px;
312
+ line-height: 46px; }
313
+
314
+ .title--level-3 {
315
+ font-size: 24px;
316
+ line-height: 36px; }
317
+
318
+ .title--level-4 {
319
+ font-size: 18px;
320
+ line-height: 26px; }
321
+
322
+ .title--level-5 {
323
+ font-size: 18px;
324
+ line-height: 22px; }
325
+
326
+ .title--density-comfortable.title--level-1 {
327
+ padding: 22px 0; }
328
+
329
+ .title--density-comfortable.title--level-3 {
330
+ padding: 24px 0; }
331
+
332
+ .title--density-comfortable.title--level-4 {
333
+ padding: 26px 0; }
334
+
335
+ .title--density-comfortable.title--level-5 {
336
+ padding: 28px 0; }
337
+
338
+ .title--density-compact.title--level-1 {
339
+ padding: 2px 0; }
340
+
341
+ .title--density-compact.title--level-3 {
342
+ padding: 4px 0; }
343
+
344
+ .title--density-compact.title--level-4 {
345
+ padding: 6px 0; }
346
+
347
+ .title--density-compact.title--level-5 {
348
+ padding: 8px 0; }
349
+
350
+ .title--density-none {
351
+ padding: 0; }
352
+
353
+ .title--density-airy.title--level-1 {
354
+ padding: 32px 0; }
355
+
356
+ .title--density-airy.title--level-3 {
357
+ padding: 34px 0; }
358
+
359
+ .text--size-medium {
360
+ font-size: 14px;
361
+ line-height: 21px;
362
+ margin: 0 0 20px; }
363
+
364
+ .text--size-large {
365
+ font-size: 16px;
366
+ line-height: 28px; }
367
+
368
+ #field-label {
369
+ display: block;
370
+ width: 100%;
371
+ position: relative;
372
+ font: 300 12px/16px Roboto;
373
+ color: #a4a4a4;
374
+ text-align: initial; }
375
+
376
+ .field-wrapper {
377
+ display: flex;
378
+ background-color: #fff;
379
+ border: 1px solid #ddd;
380
+ border-radius: 3px; }
381
+
382
+ .field-wrapper--has-label {
383
+ margin-top: 5px; }
384
+
385
+ .field-wrapper--checkbox {
386
+ display: block;
387
+ margin-top: 30px;
388
+ margin-bottom: -15px; }
389
+
390
+ .field {
391
+ width: 100%;
392
+ min-width: 1px;
393
+ background-color: transparent;
394
+ border: none;
395
+ font-family: Roboto;
396
+ font-size: 14px;
397
+ color: #444; }
398
+
399
+ .field:placeholder {
400
+ font-style: italic;
401
+ font-weight: 300;
402
+ color: #c2c2c2; }
403
+
404
+ .field:first-child {
405
+ border-top-left-radius: 3px;
406
+ border-bottom-left-radius: 3px; }
407
+
408
+ .field:last-child {
409
+ border-top-right-radius: 3px;
410
+ border-bottom-right-radius: 3px; }
411
+
412
+ .field::-webkit-outer-spin-button, .field::-webkit-inner-spin-button {
413
+ appearance: none;
414
+ margin: 0; }
415
+
416
+ .field::-ms-clear {
417
+ display: none; }
418
+
419
+ .field-label--error .field-wrapper {
420
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 5px 0 rgba(0, 0, 0, 0.16);
421
+ border-color: #f54545; }
422
+
423
+ .field-label--success .field-wrapper {
424
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 5px 0 rgba(0, 0, 0, 0.16);
425
+ border-color: #6acb4c; }
426
+
427
+ .field-wrapper--large .field {
428
+ height: 50px;
429
+ padding: 0 20px;
430
+ font-weight: 400;
431
+ font-size: 16px; }
432
+
433
+ .field-wrapper--large .field::placeholder {
434
+ font-weight: 600; }
435
+
436
+ .field-wrapper--large .field:focus {
437
+ outline: none;
438
+ border: none; }
439
+
440
+ .field-wrapper--large .textarea {
441
+ padding: 20px; }
442
+
443
+ #checkbox__label_email {
444
+ display: flex;
445
+ width: 100%;
446
+ justify-content: center; }
447
+
448
+ #checkbox__label_email .checkbox-label-text {
449
+ margin-right: 10px;
450
+ line-height: 24px; }
451
+
452
+ #checkbox__label_email .field-wrapper {
453
+ flex-grow: 100;
454
+ position: relative; }
455
+
456
+ #checkbox__label_email .validation {
457
+ top: 100%; }
458
+
459
+ .field-wrapper--small .field {
460
+ height: 20px;
461
+ padding: 0 10px;
462
+ font-size: 14px;
463
+ border: none; }
464
+
465
+ .field-wrapper--show-validation + .validation {
466
+ display: inline-flex; }
467
+
468
+ .field-label--error-required .validation--required,
469
+ .field-label--error-pattern .validation--pattern {
470
+ display: inline-flex; }
471
+
472
+ .field-wrapper--large .input-addon .text-truncate {
473
+ max-width: 151.2px;
474
+ line-height: 21px; }
475
+
476
+ .validation {
477
+ display: none;
478
+ position: absolute;
479
+ z-index: 20;
480
+ margin-top: -1px;
481
+ padding: 7px 15px 6px 15px;
482
+ width: 100%;
483
+ align-items: center;
484
+ border-bottom-left-radius: 3px;
485
+ border-bottom-right-radius: 3px;
486
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 5px 0 rgba(0, 0, 0, 0.16);
487
+ color: #fff;
488
+ font-size: 11px;
489
+ line-height: 16px; }
490
+
491
+ .validation--error {
492
+ background-color: #f54545; }
493
+
494
+ .validation--success {
495
+ border-color: #6acb4c; }
496
+
497
+ .progress {
498
+ height: 8px;
499
+ flex: 1 1 0;
500
+ position: relative;
501
+ overflow: hidden;
502
+ border-radius: 5px;
503
+ background: #ddd; }
504
+
505
+ .progress__indicator {
506
+ position: absolute;
507
+ top: 0;
508
+ left: 0;
509
+ bottom: 0;
510
+ width: 100%;
511
+ transform: translateX(-100%);
512
+ border-radius: 3px; }
513
+
514
+ .progress__indicator--color-blue {
515
+ background: #25b8d2; }
516
+
517
+ .thank-you--success {
518
+ display: none; }
519
+
520
+ .thank-you--success .thank-you-icon-background {
521
+ background-image: url("data:image/svg+xml;utf8,<svg xmlns= 'http://www.w3.org/2000/svg' viewBox= '0 0 13 14' ><title>pattern_green</title><polygon points= '1.5 0 0 1.8 1.5 3.6 3 1.8 1.5 0 1.5 0' fill= '#73c04f' /><polygon points= '11.5 0 10 1.8 11.5 3.6 13 1.8 11.5 0 11.5 0' fill= '#cba871' fill-opacity= '0' /><polygon points= '1.5 10.4 0 12.2 1.5 14 3 12.2 1.5 10.4 1.5 10.4' fill= '#cba871' fill-opacity= '0' /></svg>");
522
+ background-size: 3.2%; }
523
+
524
+ .thank-you--success .thank-you-icon {
525
+ color: #96cb4c; }
526
+
527
+ .thank-you--warning {
528
+ display: none; }
529
+
530
+ .thank-you--warning .thank-you-icon-background {
531
+ background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 14'><title>pattern_orange</title><polygon points='1.5 0 0 1.8 1.5 3.6 3 1.8 1.5 0 1.5 0' fill='#eca03e'/><polygon points='11.5 0 10 1.8 11.5 3.6 13 1.8 11.5 0 11.5 0' fill='#cba871' fill-opacity='0'/><polygon points='1.5 10.4 0 12.2 1.5 14 3 12.2 1.5 10.4 1.5 10.4' fill='#cba871' fill-opacity='0'/></svg>");
532
+ background-size: 3.2%; }
533
+
534
+ .thank-you--warning .thank-you-icon {
535
+ color: #eca03e; }
536
+
537
+ .thank-you--warning .btn__restart {
538
+ display: none; }
539
+
540
+ .thank-you--fail {
541
+ display: none; }
542
+
543
+ .thank-you--fail .thank-you-icon-background {
544
+ background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 14'><title>pattern_red</title><polygon points='1.5 0 0 1.8 1.5 3.6 3 1.8 1.5 0 1.5 0' fill='#f54545'/><polygon points='11.5 0 10 1.8 11.5 3.6 13 1.8 11.5 0 11.5 0' fill='#f54545' fill-opacity='0'/><polygon points='1.5 10.4 0 12.2 1.5 14 3 12.2 1.5 10.4 1.5 10.4' fill='#f54545' fill-opacity='0'/></svg>");
545
+ background-size: 3.2%; }
546
+
547
+ .thank-you--fail .thank-you-icon {
548
+ color: #f54545; }
549
+
550
+ .thank-you-icon-background {
551
+ position: relative;
552
+ display: flex;
553
+ justify-content: center;
554
+ min-width: 400px;
555
+ height: 70px;
556
+ background-size: 15px; }
557
+
558
+ .thank-you-icon-background:after {
559
+ position: absolute;
560
+ bottom: 0;
561
+ right: 0;
562
+ display: block;
563
+ content: ' ';
564
+ width: 0;
565
+ height: 0;
566
+ border-style: solid;
567
+ border-width: 0 0 30px 30px;
568
+ border-color: transparent transparent #fff transparent; }
569
+
570
+ .thank-you-icon-wrapper {
571
+ display: flex;
572
+ justify-content: center;
573
+ align-items: center;
574
+ border-radius: 50%;
575
+ width: 100px;
576
+ height: 100px;
577
+ margin-top: -30px;
578
+ background-color: #f2f2f2; }
579
+
580
+ .thank-you-title {
581
+ margin-top: 15px;
582
+ margin-bottom: 5px; }
583
+
584
+ .thank-you-description {
585
+ padding-bottom: 30px;
586
+ max-width: 800px;
587
+ margin-top: 5px; }
588
+
589
+ .icon {
590
+ display: inline-block;
591
+ flex-grow: 0;
592
+ flex-shrink: 0; }
593
+
594
+ .icon svg {
595
+ fill: currentColor; }
596
+
597
+ .icon--use-current-color path,
598
+ .icon--use-current-color polygon,
599
+ .icon--use-current-color circle {
600
+ fill: currentColor; }
601
+
602
+ .icon--rating {
603
+ width: 36px;
604
+ height: 24px;
605
+ display: inline-block; }
606
+
607
+ .icon--rating svg {
608
+ width: 24px;
609
+ height: 24px;
610
+ margin: 0 auto; }
611
+
612
+ .table-wrapper {
613
+ width: 100%;
614
+ max-width: 100%;
615
+ border-radius: 3px;
616
+ background-color: #fff; }
617
+
618
+ .table {
619
+ width: 100%;
620
+ padding-right: 20px;
621
+ border-radius: 3px;
622
+ text-align: start; }
623
+
624
+ .table .table__head .table__cell:first-of-type {
625
+ border-top-left-radius: 3px; }
626
+
627
+ .table .table__head .table__cell:last-of-type {
628
+ border-top-right-radius: 3px; }
629
+
630
+ .table .table__row:last-of-type .table__cell:first-of-type {
631
+ border-bottom-left-radius: 3px; }
632
+
633
+ .table .table__row:last-of-type .table__cell:last-of-type {
634
+ border-bottom-right-radius: 3px; }
635
+
636
+ .table__head .table__cell {
637
+ color: #a4a4a4;
638
+ font-family: Roboto;
639
+ font-weight: 400;
640
+ font-size: 12px;
641
+ line-height: 20px;
642
+ text-align: left;
643
+ border-top: none; }
644
+
645
+ .table__head--background-default .table__cell {
646
+ background-color: #f8f8f8; }
647
+
648
+ .table__cell.table__cell--is-in-row-selection,
649
+ .table__cell--is-in-row-selection {
650
+ background-color: #f2f2f2; }
651
+
652
+ .table__cell {
653
+ position: relative;
654
+ height: 60px;
655
+ padding: 0 20px;
656
+ vertical-align: middle;
657
+ background-color: #fff;
658
+ border-top: 1px solid #f2f2f2;
659
+ font-size: 13px;
660
+ line-height: 20px;
661
+ text-align: left; }
662
+
663
+ .table-wrapper--density-medium .table__cell:first-child {
664
+ padding-left: 30px; }
665
+
666
+ .table-wrapper--density-medium .table__cell:first-child::before {
667
+ left: 5px; }
668
+
669
+ .table-wrapper--density-medium .table__cell:last-child {
670
+ padding-right: 30px; }
671
+
672
+ .table-wrapper--density-medium .table__cell:last-child::before {
673
+ right: 5px; }
674
+
675
+ .border-box {
676
+ display: flex;
677
+ flex-direction: column;
678
+ align-items: center;
679
+ position: relative;
680
+ border: 1px solid #ddd;
681
+ border-radius: 3px;
682
+ text-align: center;
683
+ width: 100%; }
684
+
685
+ .border-box p {
686
+ padding: 0 20px; }
687
+
688
+ .border-box__icon {
689
+ color: #c2c2c2;
690
+ margin-bottom: 15px; }
691
+
692
+ .box {
693
+ position: relative; }
694
+
695
+ .box .border-box {
696
+ padding: 30px 0; }
697
+
698
+ .box--flex {
699
+ display: flex; }
700
+
701
+ .box--direction-row {
702
+ flex-direction: row; }
703
+
704
+ .flex--gutter-none > .box {
705
+ padding-left: 0;
706
+ padding-right: 0; }
707
+
708
+ .flex--gutter-medium > .box {
709
+ padding-left: 10px;
710
+ padding-right: 10px; }
711
+
712
+ .flex--gutter-xx-large > .box {
713
+ padding-left: 30px;
714
+ padding-right: 30px; }
715
+
716
+ .label {
717
+ border: 1px solid transparent;
718
+ border-radius: 2px;
719
+ color: #fff;
720
+ text-transform: uppercase;
721
+ display: inline-flex;
722
+ align-items: center; }
723
+
724
+ .label--size-medium {
725
+ font-size: 12px;
726
+ line-height: 15px;
727
+ padding: 2px 5px; }
728
+
729
+ .label--type-inactive-link {
730
+ color: #f54545; }
731
+
732
+ .create-box {
733
+ position: relative; }
734
+
735
+ .create-box .flex {
736
+ max-width: 67%; }
737
+
738
+ .create-box:after {
739
+ content: '';
740
+ display: block;
741
+ position: absolute;
742
+ left: 0;
743
+ top: 0;
744
+ bottom: 0;
745
+ right: 67%;
746
+ background: #f8f8f8 url("../img/presentational-migrator-144x144.svg") no-repeat center center;
747
+ background-size: 37%; }
748
+
749
+ .create-box .btn {
750
+ margin: 30px 0; }
751
+
752
+ .loader {
753
+ display: none;
754
+ width: 100%;
755
+ text-align: center; }
756
+
757
+ .loader-visible {
758
+ display: block; }
759
+
760
+ .section--status-0 .thank-you--fail {
761
+ display: block; }
762
+
763
+ .section--status-0 .container--progress {
764
+ display: none; }
765
+
766
+ .section--status-4 .thank-you--warning {
767
+ display: block; }
768
+
769
+ .section--status-4 .container--progress {
770
+ display: none; }
771
+
772
+ .section--status-4 .box--actions {
773
+ display: none; }
774
+
775
+ .section--status-4 .table__row-template {
776
+ display: none; }
777
+
778
+ .section--status-4 .new-site-info {
779
+ margin: 30px -20px; }
780
+
781
+ .section--status-5 .thank-you--warning {
782
+ display: block; }
783
+
784
+ .section--status-5 .container--progress {
785
+ display: none; }
786
+
787
+ .section--status-5 .box--actions {
788
+ display: block; }
789
+
790
+ .section--status-5 .box--actions .btn__resume {
791
+ background: #f54545; }
792
+
793
+ .section--status-5 .box--errors {
794
+ display: none; }
795
+
796
+ .section--status-5 .btn__new_transfer {
797
+ display: none; }
798
+
799
+ .section--status-3 .thank-you--success {
800
+ display: block; }
801
+
802
+ .section--status-3 .container--progress {
803
+ display: none; }
804
+
805
+ .section--status-3 .new-site-info {
806
+ display: flex !important; }
807
+
808
+ .section--status-1 .settings,
809
+ .section--status-2 .settings {
810
+ display: none; }
811
+
812
+ .section--status-1 .loader,
813
+ .section--status-2 .loader {
814
+ display: block; }
815
+
816
+ a.btn__new_transfer,
817
+ a.btn__cancel {
818
+ text-decoration: underline;
819
+ color: #bfbfbf; }
820
+
821
+ .icon-x {
822
+ display: none;
823
+ width: 48px;
824
+ height: 48px;
825
+ margin: 20px auto 0;
826
+ padding: 14px;
827
+ background: #f54545;
828
+ border-radius: 50%; }
829
+
830
+ .loader-spinner {
831
+ margin: 15px auto 0;
832
+ width: 50px;
833
+ height: 50px;
834
+ border-width: 5px;
835
+ border-style: solid;
836
+ border-top-color: #c2c2c2;
837
+ border-right-color: #ececec;
838
+ border-bottom-color: #ececec;
839
+ border-left-color: #ececec;
840
+ border-radius: 50%;
841
+ -webkit-animation: spin 1.7s linear infinite;
842
+ animation: spin 1.7s linear infinite; }
843
+
844
+ .dialog-wrapper {
845
+ position: fixed;
846
+ top: 0;
847
+ left: 0;
848
+ right: 0;
849
+ bottom: 0;
850
+ z-index: 30;
851
+ display: flex;
852
+ flex-direction: column;
853
+ padding: 20px;
854
+ overflow: auto;
855
+ background-color: rgba(54, 54, 54, 0.95);
856
+ will-change: transform;
857
+ display: none; }
858
+
859
+ .dialog-wrapper.visible {
860
+ display: flex; }
861
+
862
+ .dialog {
863
+ display: flex;
864
+ flex-direction: column;
865
+ flex-shrink: 0;
866
+ margin: auto;
867
+ background: #fff;
868
+ border-radius: 3px;
869
+ box-shadow: 0 6px 17px 0 rgba(0, 0, 0, 0.16), 0 8px 14px 0 rgba(0, 0, 0, 0.18);
870
+ will-change: transform;
871
+ width: 470px; }
872
+
873
+ .dialog .dialog__toolbar {
874
+ margin: 0; }
875
+
876
+ .dialog__header {
877
+ display: flex;
878
+ flex-direction: column;
879
+ align-items: center;
880
+ padding: 40px 60px 0 60px; }
881
+
882
+ .dialog__header--striped-title {
883
+ padding-bottom: 40px; }
884
+
885
+ .dialog__header--striped-icon {
886
+ padding-top: 0; }
887
+
888
+ .dialog__content {
889
+ display: flex;
890
+ flex-direction: column;
891
+ align-items: center; }
892
+
893
+ .dialog--align-center .dialog__header,
894
+ .dialog--align-center .dialog__content {
895
+ text-align: center; }
896
+
897
+ .dialog__title {
898
+ width: 100%;
899
+ color: #363636; }
900
+
901
+ .dialog__title strong {
902
+ font-weight: 600; }
903
+
904
+ .dialog__title em {
905
+ color: #a4a4a4;
906
+ font-style: normal;
907
+ word-wrap: break-word;
908
+ word-break: break-all; }
909
+
910
+ .dialog__icon {
911
+ width: 60px;
912
+ height: 60px;
913
+ display: flex;
914
+ align-items: center;
915
+ justify-content: center;
916
+ border-radius: 50%;
917
+ padding: 10px; }
918
+
919
+ .dialog__toolbar {
920
+ justify-content: flex-end; }
921
+
922
+ .dialog--density-medium .dialog__content {
923
+ padding: 0 60px 40px 60px; }
924
+
925
+ .dialog--density-medium .dialog__content--no-header {
926
+ padding-top: 40px; }
927
+
928
+ .dialog--state-active {
929
+ border-top: 3px solid #6acb4c; }
930
+
931
+ .dialog--state-active .dialog__icon {
932
+ color: #fff;
933
+ background-color: #6acb4c; }
934
+
935
+ .dialog--state-inactive {
936
+ border-top: 3px solid #f54545; }
937
+
938
+ .dialog--state-inactive .dialog__icon {
939
+ color: #fff;
940
+ background-color: #f54545; }
941
+
942
+ .dialog--state-warning {
943
+ border-top: 3px solid #eca03e; }
944
+
945
+ .dialog--state-warning .dialog__icon {
946
+ color: #fff;
947
+ background-color: #eca03e; }
948
+
949
+ .toolbar {
950
+ display: flex;
951
+ width: 100%;
952
+ margin-top: 20px;
953
+ border-radius: 0 0 3px 3px; }
954
+
955
+ .toolbar .btn--primary {
956
+ background: #f54545; }
957
+
958
+ .toolbar--density-comfortable {
959
+ padding: 20px 60px; }
960
+
961
+ .toolbar--align-baseline {
962
+ align-items: baseline; }
963
+
964
+ .toolbar--background-light {
965
+ background-color: #f2f2f2; }
966
+
967
+ @media (max-width: 767px) {
968
+ *[class*="box--sm-"] {
969
+ width: 100%;
970
+ margin-top: 20px; }
971
+ *[class*="box--sm-"]:first-child {
972
+ margin-top: 0; }
973
+ .create-box .flex {
974
+ max-width: 100%; }
975
+ .create-box:after {
976
+ content: none; }
977
+ .create-box .btn {
978
+ width: 100%; }
979
+ .container--padding-xx-large {
980
+ padding: 60px 15px;
981
+ overflow: hidden; }
982
+ .section__content {
983
+ padding-left: 10px; }
984
+ .title--level-1 {
985
+ font-size: 26px;
986
+ line-height: 36px; }
987
+ .title--level-3 {
988
+ font-size: 20px;
989
+ line-height: 26px; }
990
+ .title--density-comfortable.title--level-1 {
991
+ padding: 12px 0; }
992
+ .title--density-comfortable.title--level-3 {
993
+ padding: 14px 0; }
994
+ .title--density-comfortable.title--level-4 {
995
+ padding: 16px 0; }
996
+ .title--density-comfortable.title--level-5 {
997
+ padding: 18px 0; }
998
+ .dialog {
999
+ width: 100%; }
1000
+ .dialog--density-medium .dialog__header {
1001
+ padding: 15px 20px 0; }
1002
+ .dialog--density-medium .dialog__header--striped-title {
1003
+ padding-bottom: 15px; }
1004
+ .dialog--density-medium .dialog__content {
1005
+ padding: 0 20px 15px; }
1006
+ .dialog--density-medium .dialog__content--no-header {
1007
+ padding-top: 15px; }
1008
+ .dialog__content {
1009
+ padding: 20px; } }
1010
+
1011
+ @media (min-width: 768px) {
1012
+ .box--sm-1 {
1013
+ width: 8.33333%; }
1014
+ .box--sm-2 {
1015
+ width: 16.66667%; }
1016
+ .box--sm-3 {
1017
+ width: 25%; }
1018
+ .box--sm-4 {
1019
+ width: 33.33333%; }
1020
+ .box--sm-5 {
1021
+ width: 41.66667%; }
1022
+ .box--sm-6 {
1023
+ width: 50%; }
1024
+ .box--sm-7 {
1025
+ width: 58.33333%; }
1026
+ .box--sm-8 {
1027
+ width: 66.66667%; }
1028
+ .box--sm-9 {
1029
+ width: 75%; }
1030
+ .box--sm-10 {
1031
+ width: 83.33333%; }
1032
+ .box--sm-11 {
1033
+ width: 91.66667%; }
1034
+ .box--sm-12 {
1035
+ width: 100%; } }
1036
+
1037
+ .hidden {
1038
+ display: none !important; }
1039
+
1040
+ .toplevel_page_siteground-migrator #wpwrap {
1041
+ background: #f8f8f8; }
1042
+
1043
+ .toplevel_page_siteground-migrator #adminmenu .wp-menu-image img {
1044
+ opacity: 1; }
1045
+
1046
+ /* stylelint-disable */
1047
+ .checkbox {
1048
+ display: -webkit-inline-box;
1049
+ display: -ms-inline-flexbox;
1050
+ display: inline-flex;
1051
+ cursor: pointer;
1052
+ font-family: Roboto;
1053
+ font-weight: 400;
1054
+ text-align: start;
1055
+ color: #25b8d2; }
1056
+
1057
+ .checkbox__input {
1058
+ display: none; }
1059
+
1060
+ .checkbox__icon {
1061
+ -ms-flex-negative: 0;
1062
+ flex-shrink: 0;
1063
+ border-radius: 3px;
1064
+ border: 1px solid currentColor;
1065
+ color: currentColor; }
1066
+
1067
+ #checkbox__label_email {
1068
+ max-width: 100%;
1069
+ color: #444; }
1070
+
1071
+ .checkbox--disabled {
1072
+ opacity: 0.5;
1073
+ pointer-events: none; }
1074
+
1075
+ .checkbox__input:focus ~ .checkbox__icon {
1076
+ border: 1px solid #c2c2c2;
1077
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 5px 0 rgba(0, 0, 0, 0.16); }
1078
+
1079
+ .checkbox__input:not(:checked):not(:indeterminate) ~ .checkbox__icon {
1080
+ border: 1px solid #ddd;
1081
+ color: transparent; }
1082
+
1083
+ /* Sizes
1084
+ ========================================================================== */
1085
+ .checkbox--medium {
1086
+ padding: 18px 0;
1087
+ display: flex;
1088
+ margin-bottom: -20px; }
1089
+
1090
+ .checkbox--medium .checkbox__icon {
1091
+ width: 18px;
1092
+ height: 18px;
1093
+ padding: 3px; }
1094
+
1095
+ .checkbox--medium #checkbox__label_email {
1096
+ padding-right: 8px;
1097
+ max-width: calc(100% - 18px);
1098
+ font-size: 14px;
1099
+ line-height: 20px; }
1100
+
1101
+ .checkbox--medium .checkbox__icon + #checkbox__label_email {
1102
+ padding-left: 8px;
1103
+ padding-right: 0; }
1104
+
1105
+ .checkbox--align-center {
1106
+ -webkit-box-align: center;
1107
+ -ms-flex-align: center;
1108
+ align-items: center; }
assets/css/siteground-migrator-admin.css ADDED
@@ -0,0 +1,1114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import url("https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Roboto+Condensed:300,400,700|Roboto:300,300i,400,400i,500,500i,700,700i&subset=latin-ext");
2
+ @keyframes spin {
3
+ 100% {
4
+ transform: rotate(360deg); } }
5
+
6
+ * {
7
+ box-sizing: border-box;
8
+ margin: 0;
9
+ padding: 0; }
10
+
11
+ svg {
12
+ display: block; }
13
+
14
+ html {
15
+ height: 100%;
16
+ background: #fff;
17
+ text-rendering: optimizeLegibility;
18
+ -webkit-font-smoothing: antialiased; }
19
+
20
+ body {
21
+ height: 100%;
22
+ color: #363636;
23
+ background: #f8f8f8;
24
+ font: 400 14px/18px "Open Sans", Arial, Helvetica, sans-serif; }
25
+
26
+ h1,
27
+ h2,
28
+ h3,
29
+ h4,
30
+ h5,
31
+ h6 {
32
+ line-height: normal;
33
+ margin: 0; }
34
+
35
+ form,
36
+ input,
37
+ textarea,
38
+ select {
39
+ resize: none; }
40
+
41
+ form,
42
+ textarea {
43
+ width: 100%; }
44
+
45
+ input,
46
+ textarea,
47
+ select {
48
+ border-radius: 0; }
49
+
50
+ input:focus,
51
+ textarea:focus,
52
+ select:focus {
53
+ outline: none;
54
+ border: none; }
55
+
56
+ input[type="submit"]:focus,
57
+ textarea[type="submit"]:focus,
58
+ select[type="submit"]:focus {
59
+ border: none !important; }
60
+
61
+ input[type=text],
62
+ input[type=text]:focus,
63
+ input[type=email],
64
+ input[type=email]:focus {
65
+ border: none;
66
+ box-shadow: none;
67
+ background-color: transparent; }
68
+
69
+ button {
70
+ outline: none;
71
+ border-radius: 0; }
72
+
73
+ table {
74
+ border-collapse: collapse; }
75
+
76
+ a {
77
+ text-decoration: none;
78
+ outline: none; }
79
+
80
+ .ua-margin-top-medium {
81
+ margin-bottom: 20px; }
82
+
83
+ .container {
84
+ display: flex;
85
+ flex-direction: column;
86
+ border-radius: 3px;
87
+ background: #fff; }
88
+
89
+ .container--elevation-1 {
90
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 5px 0 rgba(0, 0, 0, 0.16); }
91
+
92
+ .container--padding-xx-large {
93
+ padding: 60px; }
94
+
95
+ .container--padding-none {
96
+ padding: 0; }
97
+
98
+ .section {
99
+ width: 100%;
100
+ transition: transform 300ms linear 0ms;
101
+ will-change: transform; }
102
+
103
+ .section__content {
104
+ margin: 0 auto;
105
+ padding-right: 20px; }
106
+
107
+ .section--content-size-default .section__content {
108
+ max-width: 1240px; }
109
+
110
+ .section--density-cozy {
111
+ padding-top: 20px;
112
+ padding-bottom: 20px; }
113
+
114
+ .flex {
115
+ display: flex;
116
+ flex-wrap: wrap; }
117
+
118
+ .flex > * {
119
+ min-width: 0;
120
+ max-width: 100%; }
121
+
122
+ .flex--margin-medium {
123
+ margin-top: 20px; }
124
+
125
+ .flex--margin-medium:last-child {
126
+ margin-bottom: 20px; }
127
+
128
+ .flex--direction-column {
129
+ flex-direction: column; }
130
+
131
+ .flex--align-center {
132
+ align-items: center; }
133
+
134
+ .flex--gutter-medium {
135
+ padding-left: 10px;
136
+ padding-right: 10px; }
137
+
138
+ .flex--gutter-medium.flex--expanded {
139
+ margin-left: -20px;
140
+ margin-right: -20px; }
141
+
142
+ .flex--gutter-xx-large {
143
+ padding-left: 30px;
144
+ padding-right: 30px; }
145
+
146
+ .flex--gutter-xx-large.flex--expanded {
147
+ margin-left: -60px;
148
+ margin-right: -60px; }
149
+
150
+ .btn {
151
+ display: inline-block;
152
+ border: 2px solid transparent;
153
+ border-radius: 3px;
154
+ font-family: Roboto;
155
+ font-weight: 400;
156
+ text-transform: uppercase; }
157
+
158
+ .btn:hover {
159
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 5px 0 rgba(0, 0, 0, 0.16);
160
+ cursor: pointer; }
161
+
162
+ .btn:active {
163
+ box-shadow: none; }
164
+
165
+ .btn:focus {
166
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 5px 0 rgba(0, 0, 0, 0.16); }
167
+
168
+ .btn + .btn {
169
+ margin-left: 15px; }
170
+
171
+ .btn__content {
172
+ display: inline-flex;
173
+ justify-content: center;
174
+ align-items: center; }
175
+
176
+ .btn__text {
177
+ line-height: 1; }
178
+
179
+ .btn__text:first-child {
180
+ margin-right: 10px; }
181
+
182
+ .btn__text:last-child {
183
+ margin-left: 10px; }
184
+
185
+ .btn__text:only-child {
186
+ margin-right: 0;
187
+ margin-left: 0; }
188
+
189
+ .btn--primary {
190
+ color: #fff;
191
+ background-color: #f57b45; }
192
+
193
+ .btn--primary:hover {
194
+ background-color: #d45e2a; }
195
+
196
+ .btn--primary:active {
197
+ color: white;
198
+ background-color: #ef9a78; }
199
+
200
+ .btn--secondary {
201
+ color: #fff;
202
+ background-color: #25b8d2; }
203
+
204
+ .btn--secondary:hover {
205
+ background-color: #1797ae; }
206
+
207
+ .btn--secondary:active {
208
+ color: white;
209
+ background-color: #57d0dd; }
210
+
211
+ .btn--dark {
212
+ color: #444;
213
+ background-color: #f8f8f8; }
214
+
215
+ .btn--dark:hover {
216
+ background-color: #f2f2f2; }
217
+
218
+ .btn--dark:active {
219
+ color: #777777;
220
+ background-color: #f8f8f8; }
221
+
222
+ .btn--x-large {
223
+ height: 50px;
224
+ padding-left: 28px;
225
+ padding-right: 28px;
226
+ font-size: 14px; }
227
+
228
+ .btn--large {
229
+ height: 40px;
230
+ line-height: 40px;
231
+ padding-left: 23px;
232
+ padding-right: 23px;
233
+ font-size: 14px; }
234
+
235
+ .btn--medium {
236
+ height: 36px;
237
+ padding-left: 18px;
238
+ padding-right: 18px;
239
+ font-size: 13px; }
240
+
241
+ .btn--neutral {
242
+ color: #444;
243
+ background-color: transparent; }
244
+
245
+ .btn--neutral:hover {
246
+ background-color: #fff; }
247
+
248
+ .btn--neutral:active {
249
+ color: #777777;
250
+ background-color: transparent; }
251
+
252
+ .table__row-template {
253
+ display: none; }
254
+
255
+ .btn--outlined {
256
+ background-color: transparent;
257
+ border-color: currentColor; }
258
+
259
+ .btn--outlined:hover {
260
+ background-color: transparent; }
261
+
262
+ .btn--outlined.btn--primary {
263
+ color: #f57b45; }
264
+
265
+ .btn--outlined.btn--secondary {
266
+ color: #25b8d2; }
267
+
268
+ .btn--outlined.btn--dark {
269
+ color: #f8f8f8; }
270
+
271
+ .link {
272
+ display: inline-block;
273
+ color: #25b8d2;
274
+ cursor: pointer;
275
+ word-break: break-all;
276
+ outline: none !important; }
277
+
278
+ .link:active, .link:focus {
279
+ color: #57d0dd;
280
+ outline: none;
281
+ box-shadow: none; }
282
+
283
+ .link:visited {
284
+ color: #25b8d2; }
285
+
286
+ .link:hover {
287
+ color: #1797ae; }
288
+
289
+ .typography--align-center {
290
+ text-align: center;
291
+ align-self: center; }
292
+
293
+ .typography--weight-light {
294
+ font-weight: 300; }
295
+
296
+ .typography--weight-regular {
297
+ font-weight: 400; }
298
+
299
+ .typography--weight-bold {
300
+ font-weight: 600; }
301
+
302
+ .title {
303
+ font-family: Roboto;
304
+ max-width: 100%; }
305
+
306
+ .title small {
307
+ margin-left: 10px;
308
+ opacity: 0.3; }
309
+
310
+ .title--level-1 {
311
+ font-size: 32px;
312
+ line-height: 46px; }
313
+
314
+ .title--level-3 {
315
+ font-size: 24px;
316
+ line-height: 36px; }
317
+
318
+ .title--level-4 {
319
+ font-size: 18px;
320
+ line-height: 26px; }
321
+
322
+ .title--level-5 {
323
+ font-size: 18px;
324
+ line-height: 22px; }
325
+
326
+ .title--density-comfortable.title--level-1 {
327
+ padding: 22px 0; }
328
+
329
+ .title--density-comfortable.title--level-3 {
330
+ padding: 24px 0; }
331
+
332
+ .title--density-comfortable.title--level-4 {
333
+ padding: 26px 0; }
334
+
335
+ .title--density-comfortable.title--level-5 {
336
+ padding: 28px 0; }
337
+
338
+ .title--density-compact.title--level-1 {
339
+ padding: 2px 0; }
340
+
341
+ .title--density-compact.title--level-3 {
342
+ padding: 4px 0; }
343
+
344
+ .title--density-compact.title--level-4 {
345
+ padding: 6px 0; }
346
+
347
+ .title--density-compact.title--level-5 {
348
+ padding: 8px 0; }
349
+
350
+ .title--density-none {
351
+ padding: 0; }
352
+
353
+ .title--density-airy.title--level-1 {
354
+ padding: 32px 0; }
355
+
356
+ .title--density-airy.title--level-3 {
357
+ padding: 34px 0; }
358
+
359
+ .text--size-medium {
360
+ font-size: 14px;
361
+ line-height: 21px;
362
+ margin: 0 0 20px; }
363
+
364
+ .text--size-large {
365
+ font-size: 16px;
366
+ line-height: 28px; }
367
+
368
+ #field-label {
369
+ display: block;
370
+ width: 100%;
371
+ position: relative;
372
+ font: 300 12px/16px Roboto;
373
+ color: #a4a4a4;
374
+ text-align: initial; }
375
+
376
+ .field-wrapper {
377
+ display: flex;
378
+ background-color: #fff;
379
+ border: 1px solid #ddd;
380
+ border-radius: 3px; }
381
+
382
+ .field-wrapper--has-label {
383
+ margin-top: 5px; }
384
+
385
+ .field-wrapper--checkbox {
386
+ display: block;
387
+ margin-top: 30px;
388
+ margin-bottom: -15px; }
389
+
390
+ .field {
391
+ width: 100%;
392
+ min-width: 1px;
393
+ background-color: transparent;
394
+ border: none;
395
+ font-family: Roboto;
396
+ font-size: 14px;
397
+ color: #444; }
398
+
399
+ .field:placeholder {
400
+ font-style: italic;
401
+ font-weight: 300;
402
+ color: #c2c2c2; }
403
+
404
+ .field:first-child {
405
+ border-top-left-radius: 3px;
406
+ border-bottom-left-radius: 3px; }
407
+
408
+ .field:last-child {
409
+ border-top-right-radius: 3px;
410
+ border-bottom-right-radius: 3px; }
411
+
412
+ .field::-webkit-outer-spin-button, .field::-webkit-inner-spin-button {
413
+ appearance: none;
414
+ margin: 0; }
415
+
416
+ .field::-ms-clear {
417
+ display: none; }
418
+
419
+ .field-label--error .field-wrapper {
420
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 5px 0 rgba(0, 0, 0, 0.16);
421
+ border-color: #f54545; }
422
+
423
+ .field-label--success .field-wrapper {
424
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 5px 0 rgba(0, 0, 0, 0.16);
425
+ border-color: #6acb4c; }
426
+
427
+ .field-wrapper--large .field {
428
+ height: 50px;
429
+ padding: 0 20px;
430
+ font-weight: 400;
431
+ font-size: 16px; }
432
+
433
+ .field-wrapper--large .field::placeholder {
434
+ font-weight: 600; }
435
+
436
+ .field-wrapper--large .field:focus {
437
+ outline: none;
438
+ border: none; }
439
+
440
+ .field-wrapper--large .textarea {
441
+ padding: 20px; }
442
+
443
+ #checkbox__label_email {
444
+ display: flex;
445
+ width: 100%;
446
+ justify-content: center; }
447
+
448
+ #checkbox__label_email .checkbox-label-text {
449
+ margin-right: 10px;
450
+ line-height: 24px; }
451
+
452
+ #checkbox__label_email .field-wrapper {
453
+ flex-grow: 100;
454
+ position: relative; }
455
+
456
+ #checkbox__label_email .validation {
457
+ top: 100%; }
458
+
459
+ .field-wrapper--small .field {
460
+ height: 20px;
461
+ padding: 0 10px;
462
+ font-size: 14px;
463
+ border: none; }
464
+
465
+ .field-wrapper--show-validation + .validation {
466
+ display: inline-flex; }
467
+
468
+ .field-label--error-required .validation--required,
469
+ .field-label--error-pattern .validation--pattern {
470
+ display: inline-flex; }
471
+
472
+ .field-wrapper--large .input-addon .text-truncate {
473
+ max-width: 151.2px;
474
+ line-height: 21px; }
475
+
476
+ .validation {
477
+ display: none;
478
+ position: absolute;
479
+ z-index: 20;
480
+ margin-top: -1px;
481
+ padding: 7px 15px 6px 15px;
482
+ width: 100%;
483
+ align-items: center;
484
+ border-bottom-left-radius: 3px;
485
+ border-bottom-right-radius: 3px;
486
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 5px 0 rgba(0, 0, 0, 0.16);
487
+ color: #fff;
488
+ font-size: 11px;
489
+ line-height: 16px; }
490
+
491
+ .validation--error {
492
+ background-color: #f54545; }
493
+
494
+ .validation--success {
495
+ border-color: #6acb4c; }
496
+
497
+ .progress {
498
+ height: 8px;
499
+ flex: 1 1 0;
500
+ position: relative;
501
+ overflow: hidden;
502
+ border-radius: 5px;
503
+ background: #ddd; }
504
+
505
+ .progress__indicator {
506
+ position: absolute;
507
+ top: 0;
508
+ left: 0;
509
+ bottom: 0;
510
+ width: 100%;
511
+ transform: translateX(-100%);
512
+ border-radius: 3px; }
513
+
514
+ .progress__indicator--color-blue {
515
+ background: #25b8d2; }
516
+
517
+ .thank-you--success {
518
+ display: none; }
519
+
520
+ .thank-you--success .thank-you-icon-background {
521
+ background-image: url("data:image/svg+xml;utf8,<svg xmlns= 'http://www.w3.org/2000/svg' viewBox= '0 0 13 14' ><title>pattern_green</title><polygon points= '1.5 0 0 1.8 1.5 3.6 3 1.8 1.5 0 1.5 0' fill= '#73c04f' /><polygon points= '11.5 0 10 1.8 11.5 3.6 13 1.8 11.5 0 11.5 0' fill= '#cba871' fill-opacity= '0' /><polygon points= '1.5 10.4 0 12.2 1.5 14 3 12.2 1.5 10.4 1.5 10.4' fill= '#cba871' fill-opacity= '0' /></svg>");
522
+ background-size: 3.2%; }
523
+
524
+ .thank-you--success .thank-you-icon {
525
+ color: #96cb4c; }
526
+
527
+ .thank-you--warning {
528
+ display: none; }
529
+
530
+ .thank-you--warning .thank-you-icon-background {
531
+ background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 14'><title>pattern_orange</title><polygon points='1.5 0 0 1.8 1.5 3.6 3 1.8 1.5 0 1.5 0' fill='#eca03e'/><polygon points='11.5 0 10 1.8 11.5 3.6 13 1.8 11.5 0 11.5 0' fill='#cba871' fill-opacity='0'/><polygon points='1.5 10.4 0 12.2 1.5 14 3 12.2 1.5 10.4 1.5 10.4' fill='#cba871' fill-opacity='0'/></svg>");
532
+ background-size: 3.2%; }
533
+
534
+ .thank-you--warning .thank-you-icon {
535
+ color: #eca03e; }
536
+
537
+ .thank-you--warning .btn__restart {
538
+ display: none; }
539
+
540
+ .thank-you--fail {
541
+ display: none; }
542
+
543
+ .thank-you--fail .thank-you-icon-background {
544
+ background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 14'><title>pattern_red</title><polygon points='1.5 0 0 1.8 1.5 3.6 3 1.8 1.5 0 1.5 0' fill='#f54545'/><polygon points='11.5 0 10 1.8 11.5 3.6 13 1.8 11.5 0 11.5 0' fill='#f54545' fill-opacity='0'/><polygon points='1.5 10.4 0 12.2 1.5 14 3 12.2 1.5 10.4 1.5 10.4' fill='#f54545' fill-opacity='0'/></svg>");
545
+ background-size: 3.2%; }
546
+
547
+ .thank-you--fail .thank-you-icon {
548
+ color: #f54545; }
549
+
550
+ .thank-you-icon-background {
551
+ position: relative;
552
+ display: flex;
553
+ justify-content: center;
554
+ min-width: 400px;
555
+ height: 70px;
556
+ background-size: 15px; }
557
+
558
+ .thank-you-icon-background:after {
559
+ position: absolute;
560
+ bottom: 0;
561
+ right: 0;
562
+ display: block;
563
+ content: ' ';
564
+ width: 0;
565
+ height: 0;
566
+ border-style: solid;
567
+ border-width: 0 0 30px 30px;
568
+ border-color: transparent transparent #fff transparent; }
569
+
570
+ .thank-you-icon-wrapper {
571
+ display: flex;
572
+ justify-content: center;
573
+ align-items: center;
574
+ border-radius: 50%;
575
+ width: 100px;
576
+ height: 100px;
577
+ margin-top: -30px;
578
+ background-color: #f2f2f2; }
579
+
580
+ .thank-you-title {
581
+ margin-top: 15px;
582
+ margin-bottom: 5px; }
583
+
584
+ .thank-you-description {
585
+ padding-bottom: 30px;
586
+ max-width: 800px;
587
+ margin-top: 5px; }
588
+
589
+ .icon {
590
+ display: inline-block;
591
+ flex-grow: 0;
592
+ flex-shrink: 0; }
593
+
594
+ .icon svg {
595
+ fill: currentColor; }
596
+
597
+ .icon--use-current-color path,
598
+ .icon--use-current-color polygon,
599
+ .icon--use-current-color circle {
600
+ fill: currentColor; }
601
+
602
+ .icon--rating {
603
+ width: 36px;
604
+ height: 24px;
605
+ display: inline-block; }
606
+
607
+ .icon--rating svg {
608
+ width: 24px;
609
+ height: 24px;
610
+ margin: 0 auto; }
611
+
612
+ .table-wrapper {
613
+ width: 100%;
614
+ max-width: 100%;
615
+ border-radius: 3px;
616
+ background-color: #fff; }
617
+
618
+ .table {
619
+ width: 100%;
620
+ padding-right: 20px;
621
+ border-radius: 3px;
622
+ text-align: start; }
623
+
624
+ .table .table__head .table__cell:first-of-type {
625
+ border-top-left-radius: 3px; }
626
+
627
+ .table .table__head .table__cell:last-of-type {
628
+ border-top-right-radius: 3px; }
629
+
630
+ .table .table__row:last-of-type .table__cell:first-of-type {
631
+ border-bottom-left-radius: 3px; }
632
+
633
+ .table .table__row:last-of-type .table__cell:last-of-type {
634
+ border-bottom-right-radius: 3px; }
635
+
636
+ .table__head .table__cell {
637
+ color: #a4a4a4;
638
+ font-family: Roboto;
639
+ font-weight: 400;
640
+ font-size: 12px;
641
+ line-height: 20px;
642
+ text-align: left;
643
+ border-top: none; }
644
+
645
+ .table__head--background-default .table__cell {
646
+ background-color: #f8f8f8; }
647
+
648
+ .table__cell.table__cell--is-in-row-selection,
649
+ .table__cell--is-in-row-selection {
650
+ background-color: #f2f2f2; }
651
+
652
+ .table__cell {
653
+ position: relative;
654
+ height: 60px;
655
+ padding: 0 20px;
656
+ vertical-align: middle;
657
+ background-color: #fff;
658
+ border-top: 1px solid #f2f2f2;
659
+ font-size: 13px;
660
+ line-height: 20px;
661
+ text-align: left; }
662
+
663
+ .table-wrapper--density-medium .table__cell:first-child {
664
+ padding-left: 30px; }
665
+
666
+ .table-wrapper--density-medium .table__cell:first-child::before {
667
+ left: 5px; }
668
+
669
+ .table-wrapper--density-medium .table__cell:last-child {
670
+ padding-right: 30px; }
671
+
672
+ .table-wrapper--density-medium .table__cell:last-child::before {
673
+ right: 5px; }
674
+
675
+ .border-box {
676
+ display: flex;
677
+ flex-direction: column;
678
+ align-items: center;
679
+ position: relative;
680
+ border: 1px solid #ddd;
681
+ border-radius: 3px;
682
+ text-align: center;
683
+ width: 100%; }
684
+
685
+ .border-box p {
686
+ padding: 0 20px; }
687
+
688
+ .border-box__icon {
689
+ color: #c2c2c2;
690
+ margin-bottom: 15px; }
691
+
692
+ .box {
693
+ position: relative; }
694
+
695
+ .box .border-box {
696
+ padding: 30px 0; }
697
+
698
+ .box--flex {
699
+ display: flex; }
700
+
701
+ .box--direction-row {
702
+ flex-direction: row; }
703
+
704
+ .flex--gutter-none > .box {
705
+ padding-left: 0;
706
+ padding-right: 0; }
707
+
708
+ .flex--gutter-medium > .box {
709
+ padding-left: 10px;
710
+ padding-right: 10px; }
711
+
712
+ .flex--gutter-xx-large > .box {
713
+ padding-left: 30px;
714
+ padding-right: 30px; }
715
+
716
+ .label {
717
+ border: 1px solid transparent;
718
+ border-radius: 2px;
719
+ color: #fff;
720
+ text-transform: uppercase;
721
+ display: inline-flex;
722
+ align-items: center; }
723
+
724
+ .label--size-medium {
725
+ font-size: 12px;
726
+ line-height: 15px;
727
+ padding: 2px 5px; }
728
+
729
+ .label--type-inactive-link {
730
+ color: #f54545; }
731
+
732
+ .create-box {
733
+ position: relative; }
734
+
735
+ .create-box .flex {
736
+ max-width: 67%; }
737
+
738
+ .create-box:after {
739
+ content: '';
740
+ display: block;
741
+ position: absolute;
742
+ right: 0;
743
+ top: 0;
744
+ bottom: 0;
745
+ left: 67%;
746
+ background: #f8f8f8 url("../img/presentational-migrator-144x144.svg") no-repeat center center;
747
+ background-size: 37%; }
748
+
749
+ .create-box .btn {
750
+ margin: 30px 0; }
751
+
752
+ .loader {
753
+ display: none;
754
+ width: 100%;
755
+ text-align: center; }
756
+
757
+ .loader-visible {
758
+ display: block; }
759
+
760
+ .section--status-0 .thank-you--fail {
761
+ display: block; }
762
+
763
+ .section--status-0 .container--progress {
764
+ display: none; }
765
+
766
+ .section--status-4 .thank-you--warning {
767
+ display: block; }
768
+
769
+ .section--status-4 .container--progress {
770
+ display: none; }
771
+
772
+ .section--status-4 .box--actions {
773
+ display: none; }
774
+
775
+ .section--status-4 .table__row-template {
776
+ display: none; }
777
+
778
+ .section--status-4 .new-site-info {
779
+ margin: 30px -20px; }
780
+
781
+ .section--status-5 .thank-you--warning {
782
+ display: block; }
783
+
784
+ .section--status-5 .container--progress {
785
+ display: none; }
786
+
787
+ .section--status-5 .box--actions {
788
+ display: block; }
789
+
790
+ .section--status-5 .box--actions .btn__resume {
791
+ background: #f54545; }
792
+
793
+ .section--status-5 .box--errors {
794
+ display: none; }
795
+
796
+ .section--status-5 .btn__new_transfer {
797
+ display: none; }
798
+
799
+ .section--status-3 .thank-you--success {
800
+ display: block; }
801
+
802
+ .section--status-3 .container--progress {
803
+ display: none; }
804
+
805
+ .section--status-3 .new-site-info {
806
+ display: flex !important; }
807
+
808
+ .section--status-1 .settings,
809
+ .section--status-2 .settings {
810
+ display: none; }
811
+
812
+ .section--status-1 .loader,
813
+ .section--status-2 .loader {
814
+ display: block; }
815
+
816
+ a.btn__new_transfer,
817
+ a.btn__cancel {
818
+ text-decoration: underline;
819
+ color: #bfbfbf; }
820
+
821
+ .icon-x {
822
+ display: none;
823
+ width: 48px;
824
+ height: 48px;
825
+ margin: 20px auto 0;
826
+ padding: 14px;
827
+ background: #f54545;
828
+ border-radius: 50%; }
829
+
830
+ .loader-spinner {
831
+ margin: 15px auto 0;
832
+ width: 50px;
833
+ height: 50px;
834
+ border-width: 5px;
835
+ border-style: solid;
836
+ border-top-color: #c2c2c2;
837
+ border-right-color: #ececec;
838
+ border-bottom-color: #ececec;
839
+ border-left-color: #ececec;
840
+ border-radius: 50%;
841
+ -webkit-animation: spin 1.7s linear infinite;
842
+ animation: spin 1.7s linear infinite; }
843
+
844
+ .dialog-wrapper {
845
+ position: fixed;
846
+ top: 0;
847
+ left: 0;
848
+ right: 0;
849
+ bottom: 0;
850
+ z-index: 30;
851
+ display: flex;
852
+ flex-direction: column;
853
+ padding: 20px;
854
+ overflow: auto;
855
+ background-color: rgba(54, 54, 54, 0.95);
856
+ will-change: transform;
857
+ display: none; }
858
+
859
+ .dialog-wrapper.visible {
860
+ display: flex; }
861
+
862
+ .dialog {
863
+ display: flex;
864
+ flex-direction: column;
865
+ flex-shrink: 0;
866
+ margin: auto;
867
+ background: #fff;
868
+ border-radius: 3px;
869
+ box-shadow: 0 6px 17px 0 rgba(0, 0, 0, 0.16), 0 8px 14px 0 rgba(0, 0, 0, 0.18);
870
+ will-change: transform;
871
+ width: 470px; }
872
+
873
+ .dialog .dialog__toolbar {
874
+ margin: 0; }
875
+
876
+ .dialog__header {
877
+ display: flex;
878
+ flex-direction: column;
879
+ align-items: center;
880
+ padding: 40px 60px 0 60px; }
881
+
882
+ .dialog__header--striped-title {
883
+ padding-bottom: 40px; }
884
+
885
+ .dialog__header--striped-icon {
886
+ padding-top: 0; }
887
+
888
+ .dialog__content {
889
+ display: flex;
890
+ flex-direction: column;
891
+ align-items: center; }
892
+
893
+ .dialog--align-center .dialog__header,
894
+ .dialog--align-center .dialog__content {
895
+ text-align: center; }
896
+
897
+ .dialog__title {
898
+ width: 100%;
899
+ color: #363636; }
900
+
901
+ .dialog__title strong {
902
+ font-weight: 600; }
903
+
904
+ .dialog__title em {
905
+ color: #a4a4a4;
906
+ font-style: normal;
907
+ word-wrap: break-word;
908
+ word-break: break-all; }
909
+
910
+ .dialog__icon {
911
+ width: 60px;
912
+ height: 60px;
913
+ display: flex;
914
+ align-items: center;
915
+ justify-content: center;
916
+ border-radius: 50%;
917
+ padding: 10px; }
918
+
919
+ .dialog__toolbar {
920
+ justify-content: flex-end; }
921
+
922
+ .dialog--density-medium .dialog__content {
923
+ padding: 0 60px 40px 60px; }
924
+
925
+ .dialog--density-medium .dialog__content--no-header {
926
+ padding-top: 40px; }
927
+
928
+ .dialog--state-active {
929
+ border-top: 3px solid #6acb4c; }
930
+
931
+ .dialog--state-active .dialog__icon {
932
+ color: #fff;
933
+ background-color: #6acb4c; }
934
+
935
+ .dialog--state-inactive {
936
+ border-top: 3px solid #f54545; }
937
+
938
+ .dialog--state-inactive .dialog__icon {
939
+ color: #fff;
940
+ background-color: #f54545; }
941
+
942
+ .dialog--state-warning {
943
+ border-top: 3px solid #eca03e; }
944
+
945
+ .dialog--state-warning .dialog__icon {
946
+ color: #fff;
947
+ background-color: #eca03e; }
948
+
949
+ .toolbar {
950
+ display: flex;
951
+ width: 100%;
952
+ margin-top: 20px;
953
+ border-radius: 0 0 3px 3px; }
954
+
955
+ .toolbar .btn--primary {
956
+ background: #f54545; }
957
+
958
+ .toolbar--density-comfortable {
959
+ padding: 20px 60px; }
960
+
961
+ .toolbar--align-baseline {
962
+ align-items: baseline; }
963
+
964
+ .toolbar--background-light {
965
+ background-color: #f2f2f2; }
966
+
967
+ @media (max-width: 767px) {
968
+ *[class*="box--sm-"] {
969
+ width: 100%;
970
+ margin-top: 20px; }
971
+ *[class*="box--sm-"]:first-child {
972
+ margin-top: 0; }
973
+ .create-box .flex {
974
+ max-width: 100%; }
975
+ .create-box:after {
976
+ content: none; }
977
+ .create-box .btn {
978
+ width: 100%; }
979
+ .container--padding-xx-large {
980
+ padding: 60px 15px;
981
+ overflow: hidden; }
982
+ .section__content {
983
+ padding-left: 10px; }
984
+ .title--level-1 {
985
+ font-size: 26px;
986
+ line-height: 36px; }
987
+ .title--level-3 {
988
+ font-size: 20px;
989
+ line-height: 26px; }
990
+ .title--density-comfortable.title--level-1 {
991
+ padding: 12px 0; }
992
+ .title--density-comfortable.title--level-3 {
993
+ padding: 14px 0; }
994
+ .title--density-comfortable.title--level-4 {
995
+ padding: 16px 0; }
996
+ .title--density-comfortable.title--level-5 {
997
+ padding: 18px 0; }
998
+ .dialog {
999
+ width: 100%; }
1000
+ .dialog--density-medium .dialog__header {
1001
+ padding: 15px 20px 0; }
1002
+ .dialog--density-medium .dialog__header--striped-title {
1003
+ padding-bottom: 15px; }
1004
+ .dialog--density-medium .dialog__content {
1005
+ padding: 0 20px 15px; }
1006
+ .dialog--density-medium .dialog__content--no-header {
1007
+ padding-top: 15px; }
1008
+ .dialog__content {
1009
+ padding: 20px; } }
1010
+
1011
+ @media (min-width: 768px) {
1012
+ .box--sm-1 {
1013
+ width: 8.33333%; }
1014
+ .box--sm-2 {
1015
+ width: 16.66667%; }
1016
+ .box--sm-3 {
1017
+ width: 25%; }
1018
+ .box--sm-4 {
1019
+ width: 33.33333%; }
1020
+ .box--sm-5 {
1021
+ width: 41.66667%; }
1022
+ .box--sm-6 {
1023
+ width: 50%; }
1024
+ .box--sm-7 {
1025
+ width: 58.33333%; }
1026
+ .box--sm-8 {
1027
+ width: 66.66667%; }
1028
+ .box--sm-9 {
1029
+ width: 75%; }
1030
+ .box--sm-10 {
1031
+ width: 83.33333%; }
1032
+ .box--sm-11 {
1033
+ width: 91.66667%; }
1034
+ .box--sm-12 {
1035
+ width: 100%; } }
1036
+
1037
+ .hidden {
1038
+ display: none !important; }
1039
+
1040
+ .toplevel_page_siteground-migrator #wpwrap {
1041
+ background: #f8f8f8; }
1042
+
1043
+ .toplevel_page_siteground-migrator #adminmenu .wp-menu-image img {
1044
+ opacity: 1; }
1045
+
1046
+ /* stylelint-disable */
1047
+ .checkbox {
1048
+ display: -webkit-inline-box;
1049
+ display: -ms-inline-flexbox;
1050
+ display: inline-flex;
1051
+ cursor: pointer;
1052
+ font-family: Roboto;
1053
+ font-weight: 400;
1054
+ text-align: start;
1055
+ color: #25b8d2; }
1056
+
1057
+ .checkbox__input {
1058
+ display: none; }
1059
+
1060
+ .checkbox__icon {
1061
+ -ms-flex-negative: 0;
1062
+ flex-shrink: 0;
1063
+ border-radius: 3px;
1064
+ border: 1px solid currentColor;
1065
+ color: currentColor; }
1066
+
1067
+ #checkbox__label_email {
1068
+ max-width: 100%;
1069
+ color: #444; }
1070
+
1071
+ .checkbox--disabled {
1072
+ opacity: 0.5;
1073
+ pointer-events: none; }
1074
+
1075
+ .checkbox__input:focus ~ .checkbox__icon {
1076
+ border: 1px solid #c2c2c2;
1077
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 5px 0 rgba(0, 0, 0, 0.16); }
1078
+
1079
+ .checkbox__input:not(:checked):not(:indeterminate) ~ .checkbox__icon {
1080
+ border: 1px solid #ddd;
1081
+ color: transparent; }
1082
+
1083
+ /* Sizes
1084
+ ========================================================================== */
1085
+ .checkbox--medium {
1086
+ padding: 18px 0;
1087
+ display: flex;
1088
+ margin-bottom: -20px; }
1089
+
1090
+ .checkbox--medium .checkbox__icon {
1091
+ width: 18px;
1092
+ height: 18px;
1093
+ padding: 3px; }
1094
+
1095
+ .checkbox--medium #checkbox__label_email {
1096
+ padding-right: 8px;
1097
+ max-width: calc(100% - 18px);
1098
+ font-size: 14px;
1099
+ line-height: 20px; }
1100
+
1101
+ .checkbox--medium .checkbox__icon + #checkbox__label_email {
1102
+ padding-left: 8px;
1103
+ padding-right: 0; }
1104
+
1105
+ .checkbox--align-center {
1106
+ -webkit-box-align: center;
1107
+ -ms-flex-align: center;
1108
+ align-items: center; }
1109
+
1110
+
1111
+ .btn--restart {
1112
+ background-color: #6acb4c;
1113
+ color: #fff;
1114
+ }
assets/css/siteground-migrator-admin.scss ADDED
@@ -0,0 +1,1461 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import url("https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Roboto+Condensed:300,400,700|Roboto:300,300i,400,400i,500,500i,700,700i&subset=latin-ext");
2
+
3
+ $white: #fff;
4
+ $red: #f54545;
5
+ $green: #6acb4c;
6
+ $body-color: #363636;
7
+ $grey-90: #444;
8
+ $grey-60: #a4a4a4;
9
+ $grey-50: #c2c2c2;
10
+ $grey-30: #ececec;
11
+ $grey-40: #ddd;
12
+ $grey-20: #f2f2f2;
13
+ $grey-10: #f8f8f8;
14
+ $sky-blue-base: #25b8d2;
15
+ $sky-blue-dark: #1797ae;
16
+ $sky-blue-light: #57d0dd;
17
+ $grassy-base: #96cb4c;
18
+ $desert-sunset-base: #eca03e;
19
+ $salmon-base: #f57b45;
20
+ $salmon-dark: #d45e2a;
21
+ $salmon-light: #ef9a78;
22
+ $color-primary: $salmon-base;
23
+ $color-primary-hovered: $salmon-dark;
24
+ $color-primary-active: $salmon-light;
25
+ $color-secondary: $sky-blue-base;
26
+ $color-secondary-hovered: $sky-blue-dark;
27
+ $color-secondary-active: $sky-blue-light;
28
+ $color-dark: $grey-10;
29
+ $color-dark-hovered: $grey-20;
30
+ $color-dark-active: $color-dark;
31
+ $color-error: $red;
32
+ $color-success: $green;
33
+ $color-warning: $desert-sunset-base;
34
+ $font-family-main: Roboto;
35
+ $font-aspect-ratio: 0.42;
36
+ $font-weight-light: 300;
37
+ $font-weight-regular: 400;
38
+ $font-weight-bold: 600;
39
+ $font-size-small: 12px;
40
+ $font-size-medium: 14px;
41
+ $font-size-large: 16px;
42
+ $font-size-x-large: 20px;
43
+ $line-height-size-small: 17px;
44
+ $line-height-size-medium: 19px;
45
+ $line-height-size-large: 21px;
46
+ $line-height-size-x-large: 25px;
47
+ $font-size-large-letter-width: $font-size-large * $font-aspect-ratio;
48
+ $font-size-large-letter-width: $font-size-x-large * $font-aspect-ratio;
49
+ $title-density-none: 0;
50
+ $spacing-factor: 5px;
51
+ $space-xx-small: $spacing-factor * 1;
52
+ $space-x-small: $spacing-factor * 2;
53
+ $space-small: $spacing-factor * 3;
54
+ $space-medium: $spacing-factor * 4;
55
+ $space-large: $spacing-factor * 6;
56
+ $space-x-large: $spacing-factor * 8;
57
+ $space-xx-large: $spacing-factor * 12;
58
+ $radius-small: 2px;
59
+ $radius-medium: 3px;
60
+ $radius-large: 5px;
61
+ $radius-full: 50%;
62
+ $first-level-box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 5px 0 rgba(0, 0, 0, 0.16);
63
+ $second-level-box-shadow: 0 6px 17px 0 rgba(0, 0, 0, 0.16), 0 8px 14px 0 rgba(0, 0, 0, 0.18);
64
+ $prefix-postfix-max-allowed-letters: 18;
65
+ $input-addon-height: 50px;
66
+ $max-phone-size: 767px;
67
+ $media-query-max-phone: "max-width: #{$max-phone-size}";
68
+ $thank-you-icon-size: 100px;
69
+ $thank-you-icon-bg-height: 70px;
70
+ $page-content-width: 1240px;
71
+ $loader-size: 50px;
72
+
73
+ $z-indexes: (
74
+ fixed, notification, modalBackground
75
+ );
76
+
77
+ @function z-index($name) {
78
+ @return index($z-indexes, $name) * 10;
79
+ }
80
+
81
+ @keyframes spin {
82
+ 100% {
83
+ transform: rotate(360deg);
84
+ }
85
+ }
86
+
87
+ * {
88
+ box-sizing: border-box;
89
+ margin: 0;
90
+ padding: 0;
91
+
92
+ }
93
+
94
+ svg {
95
+ display: block;
96
+ }
97
+
98
+ html {
99
+ height: 100%; // TODO check all cases !?!
100
+ background: #fff;
101
+ text-rendering: optimizeLegibility;
102
+ -webkit-font-smoothing: antialiased;
103
+ }
104
+
105
+ body {
106
+ height: 100%; // TODO check all cases !?!
107
+ color: $body-color;
108
+ background: $grey-10;
109
+ font: 400 14px/18px "Open Sans", Arial, Helvetica, sans-serif;
110
+ }
111
+
112
+ h1,
113
+ h2,
114
+ h3,
115
+ h4,
116
+ h5,
117
+ h6 {
118
+ line-height: normal;
119
+ margin: 0;
120
+ }
121
+
122
+ form,
123
+ input,
124
+ textarea,
125
+ select {
126
+ resize: none;
127
+ }
128
+
129
+ form,
130
+ textarea {
131
+ width: 100%;
132
+ }
133
+
134
+ input,
135
+ textarea,
136
+ select {
137
+ //-webkit-appearance: none;
138
+ border-radius: 0;
139
+
140
+ &:focus {
141
+ outline: none;
142
+ border: none;
143
+ }
144
+
145
+ &[type="submit"]:focus {
146
+ border: none !important;
147
+ }
148
+ }
149
+
150
+ input[type=text],
151
+ input[type=text]:focus,
152
+ input[type=email],
153
+ input[type=email]:focus {
154
+ border: none;
155
+ box-shadow: none;
156
+ background-color: transparent;
157
+ }
158
+
159
+ button {
160
+ outline: none;
161
+ //-webkit-appearance: none;
162
+ border-radius: 0;
163
+ }
164
+
165
+ table {
166
+ border-collapse: collapse;
167
+ }
168
+
169
+ a {
170
+ text-decoration: none;
171
+ outline: none;
172
+ }
173
+
174
+ .ua-margin-top-medium {
175
+ margin-bottom: $space-medium;
176
+ }
177
+
178
+ .container {
179
+ display: flex;
180
+ flex-direction: column;
181
+ border-radius: $radius-medium;
182
+ background: $white;
183
+ }
184
+
185
+ .container--elevation-1 {
186
+ box-shadow: $first-level-box-shadow;
187
+ }
188
+
189
+ .container--padding-xx-large {
190
+ padding: $space-xx-large;
191
+ }
192
+
193
+ .container--padding-none {
194
+ padding: 0;
195
+ }
196
+
197
+ .section {
198
+ width: 100%;
199
+ transition: transform 300ms linear 0ms;
200
+ will-change: transform;
201
+ }
202
+
203
+ .section__content {
204
+ margin: 0 auto;
205
+ padding-right: $space-medium;
206
+ }
207
+
208
+ .section--content-size-default {
209
+ .section__content {
210
+ max-width: $page-content-width;
211
+ }
212
+ }
213
+
214
+ .section--density-cozy {
215
+ padding-top: $space-medium;
216
+ padding-bottom: $space-medium;
217
+ }
218
+
219
+ .flex {
220
+ display: flex;
221
+ flex-wrap: wrap;
222
+ }
223
+
224
+ .flex > * {
225
+ min-width: 0;
226
+ max-width: 100%;
227
+ }
228
+
229
+ .flex--margin-medium {
230
+ margin-top: $space-medium;
231
+
232
+ &:last-child {
233
+ margin-bottom: $space-medium;
234
+ }
235
+ }
236
+
237
+ .flex--direction-column {
238
+ flex-direction: column;
239
+ }
240
+
241
+ .flex--align-center {
242
+ align-items: center;
243
+ }
244
+
245
+ .flex--gutter-medium {
246
+ padding-left: $space-medium/2;
247
+ padding-right: $space-medium/2;
248
+
249
+ &.flex--expanded {
250
+ margin-left: -$space-medium;
251
+ margin-right: -$space-medium;
252
+ }
253
+ }
254
+
255
+ .flex--gutter-xx-large {
256
+ padding-left: $space-xx-large/2;
257
+ padding-right: $space-xx-large/2;
258
+
259
+ &.flex--expanded {
260
+ margin-left: -$space-xx-large;
261
+ margin-right: -$space-xx-large;
262
+ }
263
+ }
264
+
265
+ .btn {
266
+ display: inline-block;
267
+ border: 2px solid transparent;
268
+ border-radius: $radius-medium;
269
+ font-family: $font-family-main;
270
+ font-weight: $font-weight-regular;
271
+ text-transform: uppercase;
272
+
273
+ &:hover {
274
+ box-shadow: $first-level-box-shadow;
275
+ cursor: pointer;
276
+ }
277
+
278
+ &:active {
279
+ box-shadow: none;
280
+ }
281
+
282
+ &:focus {
283
+ box-shadow: $first-level-box-shadow;
284
+ }
285
+
286
+ & + & {
287
+ margin-left: $space-small;
288
+ }
289
+ }
290
+
291
+ .btn__content {
292
+ display: inline-flex;
293
+ justify-content: center;
294
+ align-items: center;
295
+ }
296
+
297
+ .btn__text {
298
+ line-height: 1;
299
+
300
+ &:first-child {
301
+ margin-right: $space-x-small;
302
+ }
303
+
304
+ &:last-child {
305
+ margin-left: $space-x-small;
306
+ }
307
+
308
+ &:only-child {
309
+ margin-right: 0;
310
+ margin-left: 0;
311
+ }
312
+ }
313
+
314
+ .btn--primary {
315
+ color: $white;
316
+ background-color: $color-primary;
317
+
318
+ &:hover {
319
+ background-color: $color-primary-hovered;
320
+ }
321
+
322
+ &:active {
323
+ color: lighten($white, 20%);
324
+ background-color: $color-primary-active;
325
+ }
326
+ }
327
+
328
+ .btn--secondary {
329
+ color: $white;
330
+ background-color: $color-secondary;
331
+
332
+ &:hover {
333
+ background-color: $color-secondary-hovered;
334
+ }
335
+
336
+ &:active {
337
+ color: lighten($white, 20%);
338
+ background-color: $color-secondary-active;
339
+ }
340
+ }
341
+
342
+ .btn--dark {
343
+ color: $grey-90;
344
+ background-color: $color-dark;
345
+
346
+ &:hover {
347
+ background-color: $color-dark-hovered;
348
+ }
349
+
350
+ &:active {
351
+ color: lighten($grey-90, 20%);
352
+ background-color: $color-dark-active;
353
+ }
354
+ }
355
+
356
+ .btn--x-large {
357
+ height: 50px;
358
+ padding-left: 28px;
359
+ padding-right: 28px;
360
+ font-size: 14px;
361
+ }
362
+
363
+ .btn--large {
364
+ height: 40px;
365
+ line-height: 40px;
366
+ padding-left: 23px;
367
+ padding-right: 23px;
368
+ font-size: 14px;
369
+
370
+ }
371
+
372
+ .btn--medium {
373
+ height: 36px;
374
+ padding-left: 18px;
375
+ padding-right: 18px;
376
+ font-size: 13px;
377
+ }
378
+
379
+ .btn--neutral {
380
+ color: $grey-90;
381
+ background-color: transparent;
382
+
383
+ &:hover {
384
+ background-color: $white;
385
+ }
386
+
387
+ &:active {
388
+ color: lighten($grey-90, 20%);
389
+ background-color: transparent;
390
+ }
391
+ }
392
+
393
+ .table__row-template {
394
+ display: none;
395
+ }
396
+
397
+ .btn--outlined,
398
+ %button--outlined {
399
+ background-color: transparent;
400
+ border-color: currentColor;
401
+
402
+ &:hover {
403
+ background-color: transparent;
404
+ }
405
+
406
+ &.btn--primary {
407
+ color: $color-primary;
408
+ }
409
+
410
+ &.btn--secondary {
411
+ color: $color-secondary;
412
+ }
413
+
414
+ &.btn--dark {
415
+ color: $color-dark;
416
+ }
417
+
418
+ }
419
+
420
+ .link {
421
+ display: inline-block;
422
+ color: $color-secondary;
423
+ cursor: pointer;
424
+ word-break: break-all;
425
+ outline: none !important;
426
+
427
+ &:active, &:focus {
428
+ color: $color-secondary-active;
429
+ outline: none;
430
+ box-shadow: none;
431
+ }
432
+
433
+ &:visited {
434
+ color: $color-secondary;
435
+ }
436
+ &:hover {
437
+ color: $color-secondary-hovered;
438
+ }
439
+ }
440
+
441
+ .typography--align-center {
442
+ text-align: center;
443
+ align-self: center;
444
+ }
445
+
446
+ .typography--weight-light {
447
+ font-weight: $font-weight-light;
448
+ }
449
+
450
+ .typography--weight-regular {
451
+ font-weight: $font-weight-regular;
452
+ }
453
+
454
+ .typography--weight-bold {
455
+ font-weight: $font-weight-bold;
456
+ }
457
+
458
+ .title {
459
+ font-family: $font-family-main;
460
+ max-width: 100%;
461
+
462
+ small { margin-left: 10px; opacity: 0.3 }
463
+ }
464
+
465
+ .title--level-1 {
466
+ font-size: 32px;
467
+ line-height: 46px;
468
+ }
469
+
470
+ .title--level-3 {
471
+ font-size: 24px;
472
+ line-height: 36px;
473
+ }
474
+
475
+ .title--level-4 {
476
+ font-size: 18px;
477
+ line-height: 26px;
478
+ }
479
+
480
+ .title--level-5 {
481
+ font-size: 18px;
482
+ line-height: 22px;
483
+ }
484
+
485
+ .title--density-comfortable {
486
+ &.title--level-1 {
487
+ padding: 22px 0;
488
+ }
489
+
490
+ &.title--level-3 {
491
+ padding: 24px 0;
492
+ }
493
+
494
+ &.title--level-4 {
495
+ padding: 26px 0;
496
+ }
497
+
498
+ &.title--level-5 {
499
+ padding: 28px 0;
500
+ }
501
+
502
+ }
503
+
504
+ .title--density-compact {
505
+ &.title--level-1 {
506
+ padding: 2px 0;
507
+ }
508
+
509
+ &.title--level-3 {
510
+ padding: 4px 0;
511
+ }
512
+
513
+ &.title--level-4 {
514
+ padding: 6px 0;
515
+ }
516
+
517
+ &.title--level-5 {
518
+ padding: 8px 0;
519
+ }
520
+ }
521
+
522
+ .title--density-none {
523
+ padding: $title-density-none;
524
+ }
525
+
526
+ .title--density-airy {
527
+ &.title--level-1 {
528
+ padding: 32px 0;
529
+ }
530
+
531
+ &.title--level-3 {
532
+ padding: 34px 0;
533
+ }
534
+ }
535
+
536
+ .text--size-medium {
537
+ font-size: $font-size-medium;
538
+ line-height: $line-height-size-large;
539
+ margin: 0 0 $space-medium;
540
+ }
541
+
542
+ .text--size-large {
543
+ font-size: 16px;
544
+ line-height: 28px;
545
+ }
546
+
547
+ #field-label {
548
+ display: block;
549
+ width: 100%;
550
+ position: relative;
551
+ font: 300 12px/16px $font-family-main;
552
+ color: $grey-60;
553
+ text-align: initial;
554
+ }
555
+
556
+ .field-wrapper {
557
+ display: flex;
558
+
559
+ background-color: $white;
560
+ border: 1px solid $grey-40;
561
+ border-radius: $radius-medium;
562
+ }
563
+
564
+ .field-wrapper--has-label {
565
+ margin-top: $space-xx-small;
566
+ }
567
+
568
+ .field-wrapper--checkbox {
569
+ display: block;
570
+ margin-top: 30px;
571
+ margin-bottom: -15px;
572
+ }
573
+
574
+ .field {
575
+ width: 100%;
576
+ min-width: 1px;
577
+ background-color: transparent;
578
+ border: none;
579
+ font-family: $font-family-main;
580
+ font-size: $font-size-medium;
581
+ color: $grey-90;
582
+
583
+ &:placeholder {
584
+ font-style: italic;
585
+ font-weight: $font-weight-light;
586
+ color: $grey-50;
587
+ }
588
+
589
+ &:first-child {
590
+ border-top-left-radius: $radius-medium;
591
+ border-bottom-left-radius: $radius-medium;
592
+ }
593
+
594
+ &:last-child {
595
+ border-top-right-radius: $radius-medium;
596
+ border-bottom-right-radius: $radius-medium;
597
+ }
598
+
599
+ &::-webkit-outer-spin-button,
600
+ &::-webkit-inner-spin-button {
601
+ appearance: none;
602
+ margin: 0;
603
+ }
604
+ }
605
+
606
+ .field::-ms-clear {
607
+ display: none;
608
+ }
609
+
610
+ .field-label--error .field-wrapper {
611
+ box-shadow: $first-level-box-shadow;
612
+ border-color: $color-error;
613
+ }
614
+
615
+ .field-label--success .field-wrapper {
616
+ box-shadow: $first-level-box-shadow;
617
+ border-color: $color-success;
618
+ }
619
+
620
+ .field-wrapper--large {
621
+ .field {
622
+ height: $input-addon-height;
623
+ padding: 0 $space-medium;
624
+ font-weight:$font-weight-regular;
625
+ font-size: $font-size-large;
626
+
627
+ &::placeholder {
628
+ font-weight: $font-weight-bold;
629
+ }
630
+ &:focus {
631
+ outline: none;
632
+ border: none
633
+ }
634
+ }
635
+
636
+ .textarea {
637
+ padding: 20px;
638
+ }
639
+ }
640
+
641
+ #checkbox__label_email {
642
+ display: flex;
643
+ width: 100%;
644
+ justify-content: center;
645
+
646
+ .checkbox-label-text {
647
+ margin-right: 10px;
648
+ line-height: 24px;
649
+ }
650
+
651
+ .field-wrapper {
652
+ flex-grow: 100;
653
+ position: relative;
654
+ }
655
+
656
+ .validation {
657
+ top: 100%;
658
+ }
659
+ }
660
+
661
+ .field-wrapper--small {
662
+ .field {
663
+ height: 20px;
664
+ padding: 0 10px;
665
+ font-size: 14px;
666
+ border: none;
667
+ }
668
+ }
669
+
670
+ .field-wrapper--show-validation + .validation {
671
+ display: inline-flex;
672
+ }
673
+
674
+ .field-label--error-required .validation--required,
675
+ .field-label--error-pattern .validation--pattern {
676
+ display: inline-flex;
677
+ }
678
+
679
+ .field-wrapper--large {
680
+ .input-addon .text-truncate {
681
+ max-width: $font-size-large-letter-width * $prefix-postfix-max-allowed-letters;
682
+ line-height: $line-height-size-large;
683
+ }
684
+ }
685
+
686
+ .validation {
687
+ display: none;
688
+ position: absolute;
689
+ z-index: z-index(notification);
690
+ margin-top: -1px; // TODO fix this ugly hack
691
+ padding: 7px $space-small 6px $space-small;
692
+ width: 100%;
693
+
694
+ align-items: center;
695
+ border-bottom-left-radius: $radius-medium;
696
+ border-bottom-right-radius: $radius-medium;
697
+ box-shadow: $first-level-box-shadow;
698
+ color: $white;
699
+ font-size: 11px;
700
+ line-height: 16px;
701
+ }
702
+
703
+ .validation--error {
704
+ background-color: $color-error;
705
+ }
706
+
707
+ .validation--success {
708
+ border-color: $color-success;
709
+ }
710
+
711
+ .progress {
712
+ height: 8px;
713
+ flex: 1 1 0;
714
+ position: relative;
715
+ overflow: hidden;
716
+
717
+ border-radius: $radius-large;
718
+ background: $grey-40;
719
+ }
720
+
721
+ .progress__indicator {
722
+ position: absolute;
723
+ top: 0;
724
+ left: 0;
725
+ bottom: 0;
726
+ width: 100%;
727
+ transform: translateX(-100%);
728
+ border-radius: $radius-medium;
729
+ }
730
+
731
+ .progress__indicator--color-blue {
732
+ background: $sky-blue-base;
733
+ }
734
+
735
+ .thank-you--success {
736
+ display: none;
737
+ .thank-you-icon-background {
738
+ background-image: url("data:image/svg+xml;utf8,<svg xmlns= 'http://www.w3.org/2000/svg' viewBox= '0 0 13 14' ><title>pattern_green</title><polygon points= '1.5 0 0 1.8 1.5 3.6 3 1.8 1.5 0 1.5 0' fill= '#73c04f' /><polygon points= '11.5 0 10 1.8 11.5 3.6 13 1.8 11.5 0 11.5 0' fill= '#cba871' fill-opacity= '0' /><polygon points= '1.5 10.4 0 12.2 1.5 14 3 12.2 1.5 10.4 1.5 10.4' fill= '#cba871' fill-opacity= '0' /></svg>");
739
+ background-size: 3.2%;
740
+ }
741
+
742
+ .thank-you-icon {
743
+ color: $grassy-base;
744
+ }
745
+ }
746
+
747
+ .thank-you--warning {
748
+ display: none;
749
+ .thank-you-icon-background {
750
+ background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 14'><title>pattern_orange</title><polygon points='1.5 0 0 1.8 1.5 3.6 3 1.8 1.5 0 1.5 0' fill='#eca03e'/><polygon points='11.5 0 10 1.8 11.5 3.6 13 1.8 11.5 0 11.5 0' fill='#cba871' fill-opacity='0'/><polygon points='1.5 10.4 0 12.2 1.5 14 3 12.2 1.5 10.4 1.5 10.4' fill='#cba871' fill-opacity='0'/></svg>");
751
+ background-size: 3.2%;
752
+ }
753
+
754
+ .thank-you-icon {
755
+ color: $color-warning;
756
+ }
757
+
758
+ .btn__restart {
759
+ display: none;
760
+ }
761
+ }
762
+
763
+ .thank-you--fail {
764
+ display: none;
765
+ .thank-you-icon-background {
766
+ background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 14'><title>pattern_red</title><polygon points='1.5 0 0 1.8 1.5 3.6 3 1.8 1.5 0 1.5 0' fill='#f54545'/><polygon points='11.5 0 10 1.8 11.5 3.6 13 1.8 11.5 0 11.5 0' fill='#f54545' fill-opacity='0'/><polygon points='1.5 10.4 0 12.2 1.5 14 3 12.2 1.5 10.4 1.5 10.4' fill='#f54545' fill-opacity='0'/></svg>");
767
+ background-size: 3.2%;
768
+ }
769
+
770
+ .thank-you-icon {
771
+ color: $color-error;
772
+ }
773
+ }
774
+
775
+ .thank-you-icon-background {
776
+ position: relative;
777
+ display: flex;
778
+ justify-content: center;
779
+ min-width: 400px;
780
+ height: $thank-you-icon-bg-height;
781
+ background-size: 15px;
782
+
783
+ &:after {
784
+ position: absolute;
785
+ bottom: 0;
786
+ right: 0;
787
+ display: block;
788
+ content: ' ';
789
+ width: 0;
790
+ height: 0;
791
+ border-style: solid;
792
+ border-width: 0 0 30px 30px;
793
+ border-color: transparent transparent $white transparent;
794
+ }
795
+ }
796
+
797
+ .thank-you-icon-wrapper {
798
+ display: flex;
799
+ justify-content: center;
800
+ align-items: center;
801
+
802
+ border-radius: 50%;
803
+ width: $thank-you-icon-size;
804
+ height: $thank-you-icon-size;
805
+ margin-top: $thank-you-icon-bg-height - $thank-you-icon-size;
806
+
807
+ background-color: $grey-20;
808
+ }
809
+
810
+ .thank-you-title {
811
+ margin-top: $space-small;
812
+ margin-bottom: $space-xx-small;
813
+ }
814
+
815
+ .thank-you-description {
816
+ padding-bottom: $space-large;
817
+ max-width: 800px;
818
+ margin-top: $space-xx-small;
819
+ }
820
+
821
+ .icon {
822
+ display: inline-block;
823
+ flex-grow: 0;
824
+ flex-shrink: 0;
825
+
826
+ svg {
827
+ fill: currentColor;
828
+ }
829
+ }
830
+
831
+ .icon--use-current-color {
832
+ path,
833
+ polygon,
834
+ circle {
835
+ fill: currentColor;
836
+ }
837
+ }
838
+
839
+ .icon--rating {
840
+ width: 36px;
841
+ height: 24px;
842
+ display: inline-block;
843
+
844
+ svg {
845
+ width: 24px;
846
+ height: 24px;
847
+ margin: 0 auto;
848
+ }
849
+
850
+ }
851
+
852
+ .table-wrapper {
853
+ width: 100%;
854
+ max-width: 100%;
855
+ border-radius: $radius-medium;
856
+ background-color: $white;
857
+ }
858
+
859
+ .table {
860
+ width: 100%;
861
+ padding-right: 20px;
862
+ border-radius: $radius-medium;
863
+ text-align: start;
864
+
865
+ .table__head .table__cell:first-of-type {
866
+ border-top-left-radius: $radius-medium;
867
+ }
868
+
869
+ .table__head .table__cell:last-of-type {
870
+ border-top-right-radius: $radius-medium;
871
+ }
872
+
873
+ .table__row:last-of-type .table__cell:first-of-type {
874
+ border-bottom-left-radius: $radius-medium;
875
+ }
876
+
877
+ .table__row:last-of-type .table__cell:last-of-type {
878
+ border-bottom-right-radius: $radius-medium;
879
+ }
880
+ }
881
+
882
+ .table__head .table__cell {
883
+ color: $grey-60;
884
+ font-family: $font-family-main;
885
+ font-weight: $font-weight-regular;
886
+ font-size: 12px;
887
+ line-height: 20px;
888
+ text-align: left;
889
+ border-top: none;
890
+ }
891
+
892
+ .table__head--background-default .table__cell {
893
+ background-color: $grey-10;
894
+ }
895
+
896
+ .table__cell.table__cell--is-in-row-selection,
897
+ .table__cell--is-in-row-selection {
898
+ background-color: $grey-20;
899
+ }
900
+
901
+ .table__cell {
902
+ position: relative;
903
+ height: 60px;
904
+ padding: 0 $space-medium;
905
+ vertical-align: middle;
906
+
907
+ background-color: $white;
908
+ border-top: 1px solid $grey-20;
909
+ font-size: 13px;
910
+ line-height: 20px;
911
+ text-align: left;
912
+ }
913
+
914
+ .table-wrapper--density-medium {
915
+ .table__cell:first-child {
916
+ padding-left: $space-large;
917
+
918
+ &::before {
919
+ left: $spacing-factor;
920
+ }
921
+ }
922
+
923
+ .table__cell:last-child {
924
+ padding-right: $space-large;
925
+
926
+ &::before {
927
+ right: $spacing-factor;
928
+ }
929
+ }
930
+ }
931
+
932
+ .border-box {
933
+ display: flex;
934
+ flex-direction: column;
935
+ align-items: center;
936
+ position: relative;
937
+ border: 1px solid $grey-40;
938
+ border-radius: $radius-medium;
939
+ text-align: center;
940
+ width: 100%;
941
+
942
+ p {
943
+ padding: 0 $space-medium;
944
+ }
945
+ }
946
+
947
+ .border-box__icon {
948
+ color: $grey-50;
949
+ margin-bottom: $space-small;
950
+ }
951
+
952
+ .box {
953
+ position: relative;
954
+
955
+ .border-box {
956
+ padding: $space-large 0;
957
+ }
958
+ }
959
+
960
+ .box--flex {
961
+ display: flex;
962
+ }
963
+
964
+ .box--direction-row {
965
+ flex-direction: row;
966
+ }
967
+
968
+ .flex--gutter-none > .box {
969
+ padding-left: 0;
970
+ padding-right: 0;
971
+ }
972
+
973
+ .flex--gutter-medium > .box {
974
+ padding-left: $space-medium/2;
975
+ padding-right: $space-medium/2;
976
+ }
977
+
978
+ .flex--gutter-xx-large > .box {
979
+ padding-left: $space-xx-large/2;
980
+ padding-right: $space-xx-large/2;
981
+ }
982
+
983
+ .label {
984
+ border: 1px solid transparent;
985
+ border-radius: $radius-small;
986
+ color: $white;
987
+ text-transform: uppercase;
988
+ display: inline-flex;
989
+ align-items: center;
990
+ }
991
+
992
+ .label--size-medium {
993
+ font-size: $font-size-small;
994
+ line-height: 15px;
995
+ padding: 2px 5px;
996
+ }
997
+
998
+ .label--type-inactive-link {
999
+ color: $color-error;
1000
+ }
1001
+
1002
+ .create-box {
1003
+ position: relative;
1004
+
1005
+ .flex {
1006
+ max-width: 67%;
1007
+ }
1008
+
1009
+ &:after {
1010
+ content: '';
1011
+ display: block;
1012
+ position: absolute;
1013
+ right: 0;
1014
+ top:0;
1015
+ bottom: 0;
1016
+ left: 67%;
1017
+ background: #f8f8f8 url('../img/presentational-migrator-144x144.svg') no-repeat center center;
1018
+ background-size: 37%;
1019
+ }
1020
+
1021
+ .btn {
1022
+ margin: 30px 0
1023
+ }
1024
+
1025
+ }
1026
+
1027
+ .loader {
1028
+ display: none;
1029
+ width: 100%;
1030
+ text-align: center
1031
+ }
1032
+
1033
+ .loader-visible {
1034
+ display: block;
1035
+ }
1036
+
1037
+ .section--status-0 {
1038
+ .thank-you--fail {
1039
+ display: block;
1040
+ }
1041
+ .container--progress {
1042
+ display: none;
1043
+ }
1044
+ }
1045
+
1046
+ .section--status-4 {
1047
+ .thank-you--warning {
1048
+ display: block;
1049
+ }
1050
+ .container--progress {
1051
+ display: none;
1052
+ }
1053
+
1054
+ .box--actions {
1055
+ display: none;
1056
+ }
1057
+
1058
+ .table__row-template {
1059
+ display: none;
1060
+ }
1061
+
1062
+ .new-site-info {
1063
+ margin: 30px -20px;
1064
+ }
1065
+ }
1066
+
1067
+ .section--status-5 {
1068
+ .thank-you--warning {
1069
+ display: block;
1070
+ }
1071
+ .container--progress {
1072
+ display: none;
1073
+ }
1074
+
1075
+ .box--actions {
1076
+ display: block;
1077
+
1078
+ .btn__resume {
1079
+ background: $red;
1080
+ }
1081
+ }
1082
+
1083
+ .box--errors {
1084
+ display: none;
1085
+ }
1086
+
1087
+ .btn__new_transfer {
1088
+ display: none;
1089
+ }
1090
+ }
1091
+
1092
+ .section--status-3 {
1093
+ .thank-you--success {
1094
+ display: block;
1095
+ }
1096
+ .container--progress {
1097
+ display: none;
1098
+ }
1099
+ .new-site-info {
1100
+ display: flex !important;
1101
+ }
1102
+ }
1103
+
1104
+
1105
+ .section--status-1,
1106
+ .section--status-2 {
1107
+
1108
+ .settings {
1109
+ display: none;
1110
+ }
1111
+
1112
+ .loader {
1113
+ display: block;
1114
+ }
1115
+
1116
+ }
1117
+
1118
+ a.btn__new_transfer,
1119
+ a.btn__cancel {
1120
+ text-decoration: underline;
1121
+ color: #bfbfbf;
1122
+ }
1123
+
1124
+ .icon-x {
1125
+ display: none;
1126
+ width: 48px;
1127
+ height: 48px;
1128
+ margin: 20px auto 0;
1129
+ padding: 14px;
1130
+ background: $red;
1131
+ border-radius: 50%;
1132
+ }
1133
+
1134
+ .loader-spinner {
1135
+ margin: $space-small auto 0;
1136
+ width: $loader-size;
1137
+ height: $loader-size;
1138
+ border-width: 5px;
1139
+ border-style: solid;
1140
+ border-top-color: $grey-50;
1141
+ border-right-color: $grey-30;
1142
+ border-bottom-color: $grey-30;
1143
+ border-left-color: $grey-30;
1144
+ border-radius: $radius-full;
1145
+ -webkit-animation: spin 1.7s linear infinite;
1146
+ animation: spin 1.7s linear infinite;
1147
+ }
1148
+
1149
+ .dialog-wrapper {
1150
+ position: fixed;
1151
+ top: 0;
1152
+ left: 0;
1153
+ right: 0;
1154
+ bottom: 0;
1155
+ z-index: z-index(modalBackground);
1156
+ display: flex;
1157
+ flex-direction: column; // IE11:
1158
+ padding: $space-medium;
1159
+ overflow: auto;
1160
+ background-color: rgba($body-color, 0.95);
1161
+ will-change: transform;
1162
+ display: none;
1163
+
1164
+ &.visible {
1165
+ display: flex;
1166
+ }
1167
+ }
1168
+
1169
+ .dialog {
1170
+ display: flex;
1171
+ flex-direction: column;
1172
+ flex-shrink: 0;
1173
+ margin: auto;
1174
+ background: $white;
1175
+ border-radius: $radius-medium;
1176
+ box-shadow: $second-level-box-shadow;
1177
+ will-change: transform;
1178
+ width: 470px;
1179
+ .dialog__toolbar {
1180
+ margin: 0;
1181
+ }
1182
+ }
1183
+
1184
+ .dialog__header {
1185
+ display: flex;
1186
+ flex-direction: column;
1187
+ align-items: center;
1188
+ padding: $space-x-large $space-xx-large 0 $space-xx-large;
1189
+
1190
+ &--striped-title {
1191
+ padding-bottom: $space-x-large;
1192
+ }
1193
+
1194
+ &--striped-icon {
1195
+ padding-top: 0;
1196
+ }
1197
+ }
1198
+
1199
+ .dialog__content {
1200
+ display: flex;
1201
+ flex-direction: column;
1202
+ align-items: center;
1203
+ }
1204
+
1205
+ .dialog--align-center {
1206
+ .dialog__header,
1207
+ .dialog__content {
1208
+ text-align: center;
1209
+ }
1210
+ }
1211
+
1212
+ .dialog__title {
1213
+ width: 100%;
1214
+ color: $body-color;
1215
+
1216
+ strong {
1217
+ font-weight: $font-weight-bold;
1218
+ }
1219
+
1220
+ em {
1221
+ color: $grey-60;
1222
+ font-style: normal;
1223
+ word-wrap: break-word;
1224
+ word-break: break-all;
1225
+ }
1226
+ }
1227
+
1228
+ .dialog__icon {
1229
+ width: 60px;
1230
+ height: 60px;
1231
+ display: flex;
1232
+ align-items: center;
1233
+ justify-content: center;
1234
+ border-radius: 50%;
1235
+ padding: $space-x-small;
1236
+ }
1237
+
1238
+ .dialog__toolbar {
1239
+ justify-content: flex-end;
1240
+ }
1241
+
1242
+ .dialog--density-medium {
1243
+ .dialog__content {
1244
+ padding: 0 $space-xx-large $space-x-large $space-xx-large;
1245
+
1246
+ &--no-header {
1247
+ padding-top: $space-x-large;
1248
+ }
1249
+ }
1250
+ }
1251
+
1252
+ .dialog--state-active {
1253
+ border-top: 3px solid $color-success;
1254
+
1255
+ .dialog__icon {
1256
+ color: $white;
1257
+ background-color: $color-success;
1258
+ }
1259
+ }
1260
+
1261
+ .dialog--state-inactive {
1262
+ border-top: 3px solid $color-error;
1263
+
1264
+ .dialog__icon {
1265
+ color: $white;
1266
+ background-color: $color-error;
1267
+ }
1268
+ }
1269
+
1270
+ .dialog--state-warning {
1271
+ border-top: 3px solid $color-warning;
1272
+
1273
+ .dialog__icon {
1274
+ color: $white;
1275
+ background-color: $color-warning;
1276
+ }
1277
+ }
1278
+ .toolbar {
1279
+ display: flex;
1280
+ width: 100%;
1281
+ margin-top: $space-medium;
1282
+ border-radius: 0 0 $radius-medium $radius-medium;
1283
+
1284
+ .btn--primary {
1285
+ background: $red;
1286
+ }
1287
+ }
1288
+
1289
+ .toolbar--density-comfortable {
1290
+ padding: $space-medium $space-xx-large;
1291
+ }
1292
+
1293
+ .toolbar--align-baseline {
1294
+ align-items: baseline;
1295
+ }
1296
+
1297
+ .toolbar--background-light {
1298
+ background-color: $grey-20;
1299
+ }
1300
+
1301
+ @media (max-width: $max-phone-size) {
1302
+ *[class*="box--sm-"] {
1303
+ width: 100%;
1304
+ margin-top: $space-medium;
1305
+
1306
+ &:first-child {
1307
+ margin-top: 0;
1308
+ }
1309
+ }
1310
+ .create-box {
1311
+ .flex { max-width: 100% }
1312
+ &:after { content: none }
1313
+ .btn {width: 100%}
1314
+ }
1315
+ .container--padding-xx-large {
1316
+ padding: $space-xx-large $space-small;
1317
+ overflow: hidden;
1318
+ }
1319
+ .section__content {
1320
+ padding-left: $space-x-small;
1321
+ }
1322
+ .title--level-1 {
1323
+ font-size: 26px;
1324
+ line-height: 36px;
1325
+ }
1326
+
1327
+ .title--level-3 {
1328
+ font-size: 20px;
1329
+ line-height: 26px;
1330
+ }
1331
+ .title--density-comfortable {
1332
+ &.title--level-1 {
1333
+ padding: 12px 0;
1334
+ }
1335
+ &.title--level-3 {
1336
+ padding: 14px 0;
1337
+ }
1338
+ &.title--level-4 {
1339
+ padding: 16px 0;
1340
+ }
1341
+ &.title--level-5 {
1342
+ padding: 18px 0;
1343
+ }
1344
+ }
1345
+ .dialog {
1346
+ width: 100%;
1347
+ }
1348
+ .dialog--density-medium {
1349
+ .dialog__header {
1350
+ padding: $space-small $space-medium 0;
1351
+ &--striped-title {
1352
+ padding-bottom: $space-small;
1353
+ }
1354
+ }
1355
+ .dialog__content {
1356
+ padding: 0 $space-medium $space-small;
1357
+ &--no-header {
1358
+ padding-top: $space-small;
1359
+ }
1360
+ }
1361
+ }
1362
+
1363
+ .dialog__content {
1364
+ padding: $space-medium;
1365
+ }
1366
+ }
1367
+
1368
+ @media (min-width: 768px) {
1369
+ @for $i from 1 through 12 {
1370
+ .box--sm-#{$i} {
1371
+ width: (100%/12*$i);
1372
+ }
1373
+ }
1374
+ }
1375
+
1376
+ .hidden { display: none !important; }
1377
+ .toplevel_page_siteground-migrator #wpwrap { background: #f8f8f8; }
1378
+ .toplevel_page_siteground-migrator #adminmenu .wp-menu-image img { opacity: 1; }
1379
+
1380
+
1381
+ /* stylelint-disable */
1382
+
1383
+ .checkbox {
1384
+ display: -webkit-inline-box;
1385
+ display: -ms-inline-flexbox;
1386
+ display: inline-flex;
1387
+ cursor: pointer;
1388
+ font-family: Roboto;
1389
+ font-weight: 400;
1390
+ text-align: start;
1391
+ color: #25b8d2;
1392
+ }
1393
+
1394
+ .checkbox__input {
1395
+ display: none;
1396
+ }
1397
+
1398
+ .checkbox__icon {
1399
+ -ms-flex-negative: 0;
1400
+ flex-shrink: 0;
1401
+ border-radius: 3px;
1402
+ border: 1px solid currentColor;
1403
+ color: currentColor;
1404
+ }
1405
+
1406
+ #checkbox__label_email {
1407
+ max-width: 100%;
1408
+ color: #444;
1409
+ }
1410
+
1411
+ .checkbox--disabled {
1412
+ opacity: 0.5;
1413
+ pointer-events: none;
1414
+ }
1415
+
1416
+ .checkbox__input:focus ~ .checkbox__icon {
1417
+ border: 1px solid #c2c2c2;
1418
+ box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 5px 0 rgba(0, 0, 0, 0.16);
1419
+ }
1420
+
1421
+ .checkbox__input:not(:checked):not(:indeterminate) ~ .checkbox__icon {
1422
+ border: 1px solid #ddd;
1423
+ color: transparent;
1424
+ }
1425
+
1426
+ /* Sizes
1427
+ ========================================================================== */
1428
+
1429
+ .checkbox--medium {
1430
+ padding: 18px 0;
1431
+ display: flex;
1432
+ margin-bottom: -20px;
1433
+
1434
+ .checkbox__icon {
1435
+ width: 18px;
1436
+ height: 18px;
1437
+ padding: 3px;
1438
+ }
1439
+
1440
+ #checkbox__label_email {
1441
+ padding-right: 8px;
1442
+ max-width: calc(100% - 18px);
1443
+ font-size: 14px;
1444
+ line-height: 20px;
1445
+ }
1446
+
1447
+ .checkbox__icon + #checkbox__label_email {
1448
+ padding-left: 8px;
1449
+ padding-right: 0;
1450
+ }
1451
+ }
1452
+
1453
+ .checkbox--align-center {
1454
+ -webkit-box-align: center;
1455
+ -ms-flex-align: center;
1456
+ align-items: center;
1457
+ }
1458
+
1459
+ .btn--restart {
1460
+ background-color: #6acb4c;
1461
+ }
assets/img/icon.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg id="bec9359b-8ad6-40be-b1a1-920c3332df03" data-name="bc284073-cdae-4608-aef9-72ef305d2a87" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><title>icon</title><polyline points="0 0 20 0 20 20 0 20" fill="#23282d" opacity="0"/><path d="M14,10h4V7.5a.5.5,0,0,0-.5-.5H14Z" fill="#fff"/><path d="M8.429,6.568A1.754,1.754,0,0,0,7.5,6H1.038c.07.5.236,1,.462,1h3a.5.5,0,0,1,0,1H2.077A1.344,1.344,0,0,0,3.5,9h2a.5.5,0,0,1,0,1h-2l-.121,0c.367.53.813,1,1.121,1h6a.5.5,0,1,0-.006-1A1.456,1.456,0,0,1,9,8.5v-1A1.771,1.771,0,0,0,8.429,6.568Z" fill="#fff"/><path d="M6.5,14h0a1.5,1.5,0,0,0,0,3h0a1.5,1.5,0,0,0,0-3Z" fill="#fff"/><path d="M19.724,11.053l-.14-.07A.463.463,0,0,1,19.5,11H14v1.5a.5.5,0,0,1-1,0V2H2.5a.5.5,0,0,0-.5.5V5H7.505a2.677,2.677,0,0,1,1.632.862A2.691,2.691,0,0,1,10,7.5v1a.457.457,0,0,0,.5.5,1.5,1.5,0,0,1,0,3h-6c-1.246,0-2.257-1.9-2.447-2.276A.508.508,0,0,1,2,9.566l0,0V15.5a.5.5,0,0,0,.5.5H4.05A2.579,2.579,0,0,1,4,15.509,2.5,2.5,0,0,1,6.491,13H6.5A2.5,2.5,0,0,1,9,15.491,2.072,2.072,0,0,1,8.95,16h4.1a2.579,2.579,0,0,1-.05-.491A2.5,2.5,0,0,1,15.491,13H15.5a2.486,2.486,0,0,1,2.441,3.024c0-.008.007-.015.009-.024H19.5a.5.5,0,0,0,.5-.5v-4A.5.5,0,0,0,19.724,11.053Z" fill="#fff"/><path d="M15.5,14H15.5a1.5,1.5,0,0,0,.005,3h.005a1.5,1.5,0,0,0-.005-3Z" fill="#fff"/></svg>
assets/img/migrator-icon.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 122.01 95.6"><path d="M113.1,44.9a1.16,1.16,0,0,1-1.2-1.2,9.6,9.6,0,0,0-9.6-9.6,1.2,1.2,0,1,1-.2-2.4h.2a9.6,9.6,0,0,0,9.6-9.6,1.2,1.2,0,1,1,2.4-.2v.2a9.6,9.6,0,0,0,9.6,9.6A1.21,1.21,0,0,1,125,33a1.18,1.18,0,0,1-1.1,1.1,9.6,9.6,0,0,0-9.6,9.6,1.1,1.1,0,0,1-1.2,1.2Zm-5.5-12a12.2,12.2,0,0,1,5.5,5.5,12.2,12.2,0,0,1,5.5-5.5,12.2,12.2,0,0,1-5.5-5.5A11.31,11.31,0,0,1,107.6,32.9Z" transform="translate(-3 -16.2)" fill="#e4cdac"/><path d="M81.5,16.2H11.2A8,8,0,0,0,3,24V72.5a8,8,0,0,0,8.2,7.8H54.3a1.5,1.5,0,0,0,0-3H11.2A5,5,0,0,1,6,72.5V34H86.8V50a1.5,1.5,0,1,0,3,0V24.1A8.13,8.13,0,0,0,81.5,16.2ZM6,31V24a5,5,0,0,1,5.2-4.8H81.5A5,5,0,0,1,86.7,24v7Z" transform="translate(-3 -16.2)" fill="#c1aa95"/><circle cx="10.8" cy="8.5" r="2.4" fill="#c1aa95"/><circle cx="18" cy="8.5" r="2.4" fill="#c1aa95"/><circle cx="25.2" cy="8.5" r="2.4" fill="#c1aa95"/><path d="M31.6,55.2a14.53,14.53,0,0,0,8.2,13.1l-7-19.1A15.67,15.67,0,0,0,31.6,55.2Zm24.5-.7a7.21,7.21,0,0,0-1.2-4A7.34,7.34,0,0,1,53.4,47a2.62,2.62,0,0,1,2.4-2.6H56a14.65,14.65,0,0,0-20.6.9A22,22,0,0,0,34,47.1h1c1.5,0,3.9-.2,3.9-.2a.65.65,0,0,1,.6.6.63.63,0,0,1-.5.6,15.44,15.44,0,0,1-1.7.1L42.6,64l3.2-9.6-2.3-6.2a11.93,11.93,0,0,1-1.5-.1.63.63,0,0,1-.4-.8c.1-.2.2-.4.5-.4,0,0,2.4.2,3.8.2s3.9-.2,3.9-.2a.65.65,0,0,1,.6.6.63.63,0,0,1-.5.6,15.44,15.44,0,0,1-1.7.1L53.5,64,55,59.1A17.2,17.2,0,0,0,56.1,54.5Zm-9.6,2L42.1,69.2a14,14,0,0,0,4.1.6,16.22,16.22,0,0,0,4.9-.8c0-.1-.1-.1-.1-.2ZM59,48.2a7.57,7.57,0,0,1,.1,1.5A13.1,13.1,0,0,1,58,54.9L53.5,67.8A14.63,14.63,0,0,0,59,48.2Z" transform="translate(-3 -16.2)" fill="#c1aa95"/><path d="M29.2,55.2a17,17,0,1,0,17-17,17,17,0,0,0-17,17Zm.8,0A16.2,16.2,0,1,1,46.2,71.4h0A16.13,16.13,0,0,1,30,55.2Z" transform="translate(-3 -16.2)" fill="#c1aa95"/><circle cx="86.4" cy="69.4" r="23.4" fill="#edddc5"/><path d="M88.2,111.8a27.4,27.4,0,1,1,27.4-27.4h0A27.44,27.44,0,0,1,88.2,111.8Zm0-51.9a24.4,24.4,0,1,0,24.4,24.4h0A24.5,24.5,0,0,0,88.2,59.9Z" transform="translate(-3 -16.2)" fill="#c1aa95"/><path d="M82.4,85.6a1.47,1.47,0,0,0,1.5-1.5,1.5,1.5,0,0,0-.4-1.1L79,78.5h21.2a1.5,1.5,0,0,0,0-3H79l4.4-4.3a1.48,1.48,0,0,0-2.1-2.1l-7,6.8a1.61,1.61,0,0,0-.5,1.1,1.78,1.78,0,0,0,.4,1l7,7.2A1.75,1.75,0,0,0,82.4,85.6Z" transform="translate(-3 -16.2)" fill="#c1aa95"/><path d="M102.1,90.7l-7-7.2a1.55,1.55,0,0,0-2.1.1,1.42,1.42,0,0,0,0,2l4.5,4.6H76.2a1.5,1.5,0,0,0,0,3H97.4L93,97.5a1.48,1.48,0,0,0,2.1,2.1l7-6.8a1.28,1.28,0,0,0,.4-1A1.19,1.19,0,0,0,102.1,90.7Z" transform="translate(-3 -16.2)" fill="#c1aa95"/><path d="M34.3,107.4a4,4,0,1,1-4-4,4,4,0,0,1,4,4" transform="translate(-3 -16.2)" fill="#e4cdac"/><path d="M52.9,107.6a3,3,0,1,1-3-3,3,3,0,0,1,3,3" transform="translate(-3 -16.2)" fill="#e4cdac"/><path d="M18.3,98.6a6,6,0,1,1-6-6,6,6,0,0,1,6,6" transform="translate(-3 -16.2)" fill="#e4cdac"/></svg>
assets/img/presentational-migrator-144x144.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg id="a96eb5ac-dc68-4251-9128-0b086d6e1c2b" data-name="Icons" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 144 144"><title>All-Icons-Source</title><path d="M104,43H21V71H35c3.951-.013,7.986,4.049,8,8v2a4.755,4.755,0,0,0,4.119,4.364C48.363,85.559,48.95,86.707,49,88c.1,2.606-2.505,3-3,3H26c-2.188-.03-3.963-2.7-5-4.73h0V111H35a8,8,0,0,0,16,0h62a8,8,0,0,0,16,0h6V96l-7-8-6-17H104Z" fill="#ecf3da"/><path d="M74.5,49A22.5,22.5,0,1,0,97,71.5,22.525,22.525,0,0,0,74.5,49ZM54.271,71.5a20.16,20.16,0,0,1,1.751-8.233l9.65,26.438A20.228,20.228,0,0,1,54.271,71.5ZM74.5,91.731a20.225,20.225,0,0,1-5.715-.824l6.07-17.637,6.218,17.036a1.823,1.823,0,0,0,.145.278A20.2,20.2,0,0,1,74.5,91.731Zm2.788-29.715c1.217-.064,2.315-.192,2.315-.192a.836.836,0,0,0-.129-1.667s-3.277.257-5.392.257c-1.988,0-5.328-.257-5.328-.257a.836.836,0,0,0-.128,1.667s1.032.128,2.122.192L73.9,70.651,69.472,83.928,62.106,62.016c1.218-.064,2.315-.192,2.315-.192a.836.836,0,0,0-.13-1.667s-3.276.257-5.391.257c-.38,0-.827-.009-1.3-.025A20.224,20.224,0,0,1,88.16,56.583c-.087-.006-.172-.017-.262-.017a3.5,3.5,0,0,0-3.4,3.591c0,1.667.962,3.077,1.987,4.744a10.651,10.651,0,0,1,1.668,5.579c0,1.732-.666,3.741-1.539,6.54L84.6,83.761Zm14.963-.22a20.231,20.231,0,0,1-7.581,27.19l6.179-17.865a19.1,19.1,0,0,0,1.538-7.245A15.505,15.505,0,0,0,92.251,61.8Z" fill="#577635"/><path d="M135.752,95.343l-6.873-7.855-5.936-16.82A1,1,0,0,0,122,70H105V43a1,1,0,0,0-1-1H21a1,1,0,0,0-1,1V70H9a1,1,0,0,0-.945,1.328C8.68,73.13,10.953,79,13.992,79h.237c.485,1.607,1.885,5.116,5.035,5.882.162.408.412.992.736,1.645V111a1,1,0,0,0,1,1H34.058A8.993,8.993,0,0,0,43,120h.032a9.011,9.011,0,0,0,8.909-8h60.118A8.993,8.993,0,0,0,121,120h.032a9.011,9.011,0,0,0,8.909-8H135a1,1,0,0,0,1-1V96A1,1,0,0,0,135.752,95.343ZM16.338,79H25a1,1,0,0,0,0-2H14c-.931,0-2.465-2.427-3.541-5H35.02C38.4,72,41.988,75.6,42,79v2a5.749,5.749,0,0,0,4.965,5.348c.881.138,1.018,1.225,1.036,1.686a1.671,1.671,0,0,1-.42,1.287A2.656,2.656,0,0,1,46,90H26.014c-1.836-.025-3.585-2.968-4.52-5H30a1,1,0,0,0,0-2H20.063C18,82.718,16.858,80.448,16.338,79ZM22,89.683A5.541,5.541,0,0,0,26,92H46a4.57,4.57,0,0,0,3.019-1.29A3.659,3.659,0,0,0,50,87.962c-.076-1.961-1.121-3.335-2.726-3.586A3.764,3.764,0,0,1,44,81V79c-.016-4.547-4.459-9-8.976-9H22V44h81v66H51.942a8.933,8.933,0,0,0-2.6-5.386A9.126,9.126,0,0,0,42.969,102a9.013,9.013,0,0,0-8.909,8H22ZM43.024,118H43a7,7,0,0,1-.023-14H43a7,7,0,0,1,.023,14Zm78,0H121a7,7,0,0,1-.023-14H121a7,7,0,0,1,.023,14ZM134,110h-4.058A8.995,8.995,0,0,0,121,102h-.032a9.013,9.013,0,0,0-8.909,8H105V72h16.292l5.3,15H112a1,1,0,0,0,0,2h15.547L134,96.377Z" fill="#577635"/><path d="M14.82,36.616a7,7,0,1,0-2.746-4.6A6.967,6.967,0,0,0,14.82,36.616Zm.17-8.6h0a5,5,0,1,1-.937,3.71A5,5,0,0,1,14.99,28.016Z" fill="#577635"/><path d="M118.684,54.95l15,5A.981.981,0,0,0,134,60a1,1,0,0,0,.98-1.2l-3-15a1,1,0,0,0-1.62-.572l-12,10a1,1,0,0,0,.324,1.717Zm11.665-9.105,2.333,11.663L121.019,53.62Z" fill="#577635"/><path d="M31.115,35.535a1,1,0,0,0,1.77.933,11.213,11.213,0,0,0-1.095-12.08,1,1,0,1,0-1.58,1.227A9.327,9.327,0,0,1,31.115,35.535Z" fill="#577635"/></svg>
assets/js/main.min.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /*! For license information please see main.min.js.LICENSE.txt */
2
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.SGMigrator=t():e.SGMigrator=t()}(self,(function(){return function(){var e={718:function(e){e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports},3381:function(e,t){var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var i=typeof n;if("string"===i||"number"===i)e.push(this&&this[n]||n);else if(Array.isArray(n))e.push(o.apply(this,n));else if("object"===i)for(var a in n)r.call(n,a)&&n[a]&&e.push(this&&this[a]||a)}}return e.join(" ")}e.exports?(o.default=o,e.exports=o):void 0===(n=function(){return o}.apply(t,[]))||(e.exports=n)}()},2580:function(e,t,n){var r;t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),this.useColors){var n="color: "+this.color;t.splice(1,0,n,"color: inherit");var r=0,o=0;t[0].replace(/%[a-zA-Z%]/g,(function(e){"%%"!==e&&(r++,"%c"===e&&(o=r))})),t.splice(o,0,n)}},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){var e;try{e=t.storage.getItem("debug")}catch(e){}return!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG),e},t.useColors=function(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type&&!window.process.__nwjs)||("undefined"==typeof navigator||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(r=!1,function(){r||(r=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||function(){},e.exports=n(3211)(t),e.exports.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},3211:function(e,t,n){var r=this&&this.__read||function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},o=this&&this.__spread||function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(r(arguments[t]));return e};e.exports=function(e){function t(e){var n,o,i,a=null;function l(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];if(l.enabled){var o=l,i=Number(new Date),a=i-(n||i);o.diff=a,o.prev=n,o.curr=i,n=i,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");var u=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,(function(n,r){if("%%"===n)return"%";u++;var i=t.formatters[r];if("function"==typeof i){var a=e[u];n=i.call(o,a),e.splice(u,1),u--}return n})),t.formatArgs.call(o,e);var s=o.log||t.log;s.apply(o,e)}}return l.namespace=e,l.useColors=t.useColors(),l.color=t.selectColor(e),l.extend=r,l.destroy=t.destroy,Object.defineProperty(l,"enabled",{enumerable:!0,configurable:!1,get:function(){return null!==a?a:(o!==t.namespaces&&(o=t.namespaces,i=t.enabled(e)),i)},set:function(e){a=e}}),"function"==typeof t.init&&t.init(l),l}function r(e,n){var r=t(this.namespace+(void 0===n?":":n)+e);return r.log=this.log,r}function i(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){var e=o(t.names.map(i),t.skips.map(i).map((function(e){return"-"+e}))).join(",");return t.enable(""),e},t.enable=function(e){var n;t.save(e),t.namespaces=e,t.names=[],t.skips=[];var r=("string"==typeof e?e:"").split(/[\s,]+/),o=r.length;for(n=0;n<o;n++)r[n]&&("-"===(e=r[n].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){if("*"===e[e.length-1])return!0;var n,r;for(n=0,r=t.skips.length;n<r;n++)if(t.skips[n].test(e))return!1;for(n=0,r=t.names.length;n<r;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(9717),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((function(n){t[n]=e[n]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){for(var n=0,r=0;r<e.length;r++)n=(n<<5)-n+e.charCodeAt(r),n|=0;return t.colors[Math.abs(n)%t.colors.length]},t.enable(t.load()),t}},6605:function(e,t,n){"use strict";var r=n(718);t.__esModule=!0,t.default=function(e,t){e.classList?e.classList.add(t):(0,o.default)(e,t)||("string"==typeof e.className?e.className=e.className+" "+t:e.setAttribute("class",(e.className&&e.className.baseVal||"")+" "+t))};var o=r(n(4120));e.exports=t.default},4120:function(e,t){"use strict";t.__esModule=!0,t.default=function(e,t){return e.classList?!!t&&e.classList.contains(t):-1!==(" "+(e.className.baseVal||e.className)+" ").indexOf(" "+t+" ")},e.exports=t.default},4213:function(e){"use strict";function t(e,t){return e.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}e.exports=function(e,n){e.classList?e.classList.remove(n):"string"==typeof e.className?e.className=t(e.className,n):e.setAttribute("class",t(e.className&&e.className.baseVal||"",n))}},696:function(e){"use strict";var t,n="object"==typeof Reflect?Reflect:null,r=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var o=Number.isNaN||function(e){return e!=e};function i(){i.init.call(this)}e.exports=i,e.exports.once=function(e,t){return new Promise((function(n,r){function o(n){e.removeListener(t,i),r(n)}function i(){"function"==typeof e.removeListener&&e.removeListener("error",o),n([].slice.call(arguments))}v(e,t,i,{once:!0}),"error"!==t&&function(e,t,n){"function"==typeof e.on&&v(e,"error",t,{once:!0})}(e,o)}))},i.EventEmitter=i,i.prototype._events=void 0,i.prototype._eventsCount=0,i.prototype._maxListeners=void 0;var a=10;function l(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function u(e){return void 0===e._maxListeners?i.defaultMaxListeners:e._maxListeners}function s(e,t,n,r){var o,i,a,s;if(l(n),void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),i=e._events),a=i[t]),void 0===a)a=i[t]=n,++e._eventsCount;else if("function"==typeof a?a=i[t]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),(o=u(e))>0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function c(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=c.bind(r);return o.listener=n,r.wrapFn=o,o}function p(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(o):h(o,o.length)}function d(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function h(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function v(e,t,n,r){if("function"==typeof e.on)r.once?e.once(t,n):e.on(t,n);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function o(i){r.once&&e.removeEventListener(t,o),n(i)}))}}Object.defineProperty(i,"defaultMaxListeners",{enumerable:!0,get:function(){return a},set:function(e){if("number"!=typeof e||e<0||o(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");a=e}}),i.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},i.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||o(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},i.prototype.getMaxListeners=function(){return u(this)},i.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var o="error"===e,i=this._events;if(void 0!==i)o=o&&void 0===i.error;else if(!o)return!1;if(o){var a;if(t.length>0&&(a=t[0]),a instanceof Error)throw a;var l=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw l.context=a,l}var u=i[e];if(void 0===u)return!1;if("function"==typeof u)r(u,this,t);else{var s=u.length,c=h(u,s);for(n=0;n<s;++n)r(c[n],this,t)}return!0},i.prototype.addListener=function(e,t){return s(this,e,t,!1)},i.prototype.on=i.prototype.addListener,i.prototype.prependListener=function(e,t){return s(this,e,t,!0)},i.prototype.once=function(e,t){return l(t),this.on(e,f(this,e,t)),this},i.prototype.prependOnceListener=function(e,t){return l(t),this.prependListener(e,f(this,e,t)),this},i.prototype.removeListener=function(e,t){var n,r,o,i,a;if(l(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(o=-1,i=n.length-1;i>=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,o),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,a||t)}return this},i.prototype.off=i.prototype.removeListener,i.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var o,i=Object.keys(n);for(r=0;r<i.length;++r)"removeListener"!==(o=i[r])&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},i.prototype.listeners=function(e){return p(this,e,!0)},i.prototype.rawListeners=function(e){return p(this,e,!1)},i.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):d.call(e,t)},i.prototype.listenerCount=d,i.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},1231:function(e){"use strict";function t(e){return function(){return e}}var n=function(){};n.thatReturns=t,n.thatReturnsFalse=t(!1),n.thatReturnsTrue=t(!0),n.thatReturnsNull=t(null),n.thatReturnsThis=function(){return this},n.thatReturnsArgument=function(e){return e},e.exports=n},2802:function(e){"use strict";e.exports=function(e,t,n,r,o,i,a,l){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var s=[n,r,o,i,a,l],c=0;(u=new Error(t.replace(/%s/g,(function(){return s[c++]})))).name="Invariant Violation"}throw u.framesToPop=1,u}}},7012:function(e,t,n){"use strict";var r=n(1231);e.exports=r},5544:function(e,t,n){var r;!function(o,i,a,l){"use strict";var u,s=["","webkit","Moz","MS","ms","o"],c=i.createElement("div"),f=Math.round,p=Math.abs,d=Date.now;function h(e,t,n){return setTimeout(E(e,n),t)}function v(e,t,n){return!!Array.isArray(e)&&(g(e,n[t],n),!0)}function g(e,t,n){var r;if(e)if(e.forEach)e.forEach(t,n);else if(e.length!==l)for(r=0;r<e.length;)t.call(n,e[r],r,e),r++;else for(r in e)e.hasOwnProperty(r)&&t.call(n,e[r],r,e)}function m(e,t,n){var r="DEPRECATED METHOD: "+t+"\n"+n+" AT \n";return function(){var t=new Error("get-stack-trace"),n=t&&t.stack?t.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",i=o.console&&(o.console.warn||o.console.log);return i&&i.call(o.console,r,n),e.apply(this,arguments)}}u="function"!=typeof Object.assign?function(e){if(e===l||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n<arguments.length;n++){var r=arguments[n];if(r!==l&&null!==r)for(var o in r)r.hasOwnProperty(o)&&(t[o]=r[o])}return t}:Object.assign;var y=m((function(e,t,n){for(var r=Object.keys(t),o=0;o<r.length;)(!n||n&&e[r[o]]===l)&&(e[r[o]]=t[r[o]]),o++;return e}),"extend","Use `assign`."),b=m((function(e,t){return y(e,t,!0)}),"merge","Use `assign`.");function w(e,t,n){var r,o=t.prototype;(r=e.prototype=Object.create(o)).constructor=e,r._super=o,n&&u(r,n)}function E(e,t){return function(){return e.apply(t,arguments)}}function _(e,t){return"function"==typeof e?e.apply(t&&t[0]||l,t):e}function O(e,t){return e===l?t:e}function x(e,t,n){g(P(t),(function(t){e.addEventListener(t,n,!1)}))}function S(e,t,n){g(P(t),(function(t){e.removeEventListener(t,n,!1)}))}function k(e,t){for(;e;){if(e==t)return!0;e=e.parentNode}return!1}function C(e,t){return e.indexOf(t)>-1}function P(e){return e.trim().split(/\s+/g)}function T(e,t,n){if(e.indexOf&&!n)return e.indexOf(t);for(var r=0;r<e.length;){if(n&&e[r][n]==t||!n&&e[r]===t)return r;r++}return-1}function j(e){return Array.prototype.slice.call(e,0)}function N(e,t,n){for(var r=[],o=[],i=0;i<e.length;){var a=t?e[i][t]:e[i];T(o,a)<0&&r.push(e[i]),o[i]=a,i++}return n&&(r=t?r.sort((function(e,n){return e[t]>n[t]})):r.sort()),r}function R(e,t){for(var n,r,o=t[0].toUpperCase()+t.slice(1),i=0;i<s.length;){if((r=(n=s[i])?n+o:t)in e)return r;i++}return l}var I=1;function A(e){var t=e.ownerDocument||e;return t.defaultView||t.parentWindow||o}var L="ontouchstart"in o,M=R(o,"PointerEvent")!==l,z=L&&/mobile|tablet|ip(ad|hone|od)|android/i.test(navigator.userAgent),D="touch",F="mouse",U=["x","y"],H=["clientX","clientY"];function W(e,t){var n=this;this.manager=e,this.callback=t,this.element=e.element,this.target=e.options.inputTarget,this.domHandler=function(t){_(e.options.enable,[e])&&n.handler(t)},this.init()}function B(e,t,n){var r=n.pointers.length,o=n.changedPointers.length,i=1&t&&r-o==0,a=12&t&&r-o==0;n.isFirst=!!i,n.isFinal=!!a,i&&(e.session={}),n.eventType=t,function(e,t){var n=e.session,r=t.pointers,o=r.length;n.firstInput||(n.firstInput=$(t)),o>1&&!n.firstMultiple?n.firstMultiple=$(t):1===o&&(n.firstMultiple=!1);var i=n.firstInput,a=n.firstMultiple,u=a?a.center:i.center,s=t.center=V(r);t.timeStamp=d(),t.deltaTime=t.timeStamp-i.timeStamp,t.angle=Q(u,s),t.distance=G(u,s),function(e,t){var n=t.center,r=e.offsetDelta||{},o=e.prevDelta||{},i=e.prevInput||{};1!==t.eventType&&4!==i.eventType||(o=e.prevDelta={x:i.deltaX||0,y:i.deltaY||0},r=e.offsetDelta={x:n.x,y:n.y}),t.deltaX=o.x+(n.x-r.x),t.deltaY=o.y+(n.y-r.y)}(n,t),t.offsetDirection=K(t.deltaX,t.deltaY);var c,f,h=q(t.deltaTime,t.deltaX,t.deltaY);t.overallVelocityX=h.x,t.overallVelocityY=h.y,t.overallVelocity=p(h.x)>p(h.y)?h.x:h.y,t.scale=a?(c=a.pointers,G((f=r)[0],f[1],H)/G(c[0],c[1],H)):1,t.rotation=a?function(e,t){return Q(t[1],t[0],H)+Q(e[1],e[0],H)}(a.pointers,r):0,t.maxPointers=n.prevInput?t.pointers.length>n.prevInput.maxPointers?t.pointers.length:n.prevInput.maxPointers:t.pointers.length,function(e,t){var n,r,o,i,a=e.lastInterval||t,u=t.timeStamp-a.timeStamp;if(8!=t.eventType&&(u>25||a.velocity===l)){var s=t.deltaX-a.deltaX,c=t.deltaY-a.deltaY,f=q(u,s,c);r=f.x,o=f.y,n=p(f.x)>p(f.y)?f.x:f.y,i=K(s,c),e.lastInterval=t}else n=a.velocity,r=a.velocityX,o=a.velocityY,i=a.direction;t.velocity=n,t.velocityX=r,t.velocityY=o,t.direction=i}(n,t);var v=e.element;k(t.srcEvent.target,v)&&(v=t.srcEvent.target),t.target=v}(e,n),e.emit("hammer.input",n),e.recognize(n),e.session.prevInput=n}function $(e){for(var t=[],n=0;n<e.pointers.length;)t[n]={clientX:f(e.pointers[n].clientX),clientY:f(e.pointers[n].clientY)},n++;return{timeStamp:d(),pointers:t,center:V(t),deltaX:e.deltaX,deltaY:e.deltaY}}function V(e){var t=e.length;if(1===t)return{x:f(e[0].clientX),y:f(e[0].clientY)};for(var n=0,r=0,o=0;o<t;)n+=e[o].clientX,r+=e[o].clientY,o++;return{x:f(n/t),y:f(r/t)}}function q(e,t,n){return{x:t/e||0,y:n/e||0}}function K(e,t){return e===t?1:p(e)>=p(t)?e<0?2:4:t<0?8:16}function G(e,t,n){n||(n=U);var r=t[n[0]]-e[n[0]],o=t[n[1]]-e[n[1]];return Math.sqrt(r*r+o*o)}function Q(e,t,n){n||(n=U);var r=t[n[0]]-e[n[0]],o=t[n[1]]-e[n[1]];return 180*Math.atan2(o,r)/Math.PI}W.prototype={handler:function(){},init:function(){this.evEl&&x(this.element,this.evEl,this.domHandler),this.evTarget&&x(this.target,this.evTarget,this.domHandler),this.evWin&&x(A(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&S(this.element,this.evEl,this.domHandler),this.evTarget&&S(this.target,this.evTarget,this.domHandler),this.evWin&&S(A(this.element),this.evWin,this.domHandler)}};var X={mousedown:1,mousemove:2,mouseup:4},Y="mousedown",Z="mousemove mouseup";function J(){this.evEl=Y,this.evWin=Z,this.pressed=!1,W.apply(this,arguments)}w(J,W,{handler:function(e){var t=X[e.type];1&t&&0===e.button&&(this.pressed=!0),2&t&&1!==e.which&&(t=4),this.pressed&&(4&t&&(this.pressed=!1),this.callback(this.manager,t,{pointers:[e],changedPointers:[e],pointerType:F,srcEvent:e}))}});var ee={pointerdown:1,pointermove:2,pointerup:4,pointercancel:8,pointerout:8},te={2:D,3:"pen",4:F,5:"kinect"},ne="pointerdown",re="pointermove pointerup pointercancel";function oe(){this.evEl=ne,this.evWin=re,W.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}o.MSPointerEvent&&!o.PointerEvent&&(ne="MSPointerDown",re="MSPointerMove MSPointerUp MSPointerCancel"),w(oe,W,{handler:function(e){var t=this.store,n=!1,r=e.type.toLowerCase().replace("ms",""),o=ee[r],i=te[e.pointerType]||e.pointerType,a=i==D,l=T(t,e.pointerId,"pointerId");1&o&&(0===e.button||a)?l<0&&(t.push(e),l=t.length-1):12&o&&(n=!0),l<0||(t[l]=e,this.callback(this.manager,o,{pointers:t,changedPointers:[e],pointerType:i,srcEvent:e}),n&&t.splice(l,1))}});var ie={touchstart:1,touchmove:2,touchend:4,touchcancel:8},ae="touchstart",le="touchstart touchmove touchend touchcancel";function ue(){this.evTarget=ae,this.evWin=le,this.started=!1,W.apply(this,arguments)}function se(e,t){var n=j(e.touches),r=j(e.changedTouches);return 12&t&&(n=N(n.concat(r),"identifier",!0)),[n,r]}w(ue,W,{handler:function(e){var t=ie[e.type];if(1===t&&(this.started=!0),this.started){var n=se.call(this,e,t);12&t&&n[0].length-n[1].length==0&&(this.started=!1),this.callback(this.manager,t,{pointers:n[0],changedPointers:n[1],pointerType:D,srcEvent:e})}}});var ce={touchstart:1,touchmove:2,touchend:4,touchcancel:8},fe="touchstart touchmove touchend touchcancel";function pe(){this.evTarget=fe,this.targetIds={},W.apply(this,arguments)}function de(e,t){var n=j(e.touches),r=this.targetIds;if(3&t&&1===n.length)return r[n[0].identifier]=!0,[n,n];var o,i,a=j(e.changedTouches),l=[],u=this.target;if(i=n.filter((function(e){return k(e.target,u)})),1===t)for(o=0;o<i.length;)r[i[o].identifier]=!0,o++;for(o=0;o<a.length;)r[a[o].identifier]&&l.push(a[o]),12&t&&delete r[a[o].identifier],o++;return l.length?[N(i.concat(l),"identifier",!0),l]:void 0}function he(){W.apply(this,arguments);var e=E(this.handler,this);this.touch=new pe(this.manager,e),this.mouse=new J(this.manager,e),this.primaryTouch=null,this.lastTouches=[]}function ve(e,t){1&e?(this.primaryTouch=t.changedPointers[0].identifier,ge.call(this,t)):12&e&&ge.call(this,t)}function ge(e){var t=e.changedPointers[0];if(t.identifier===this.primaryTouch){var n={x:t.clientX,y:t.clientY};this.lastTouches.push(n);var r=this.lastTouches;setTimeout((function(){var e=r.indexOf(n);e>-1&&r.splice(e,1)}),2500)}}function me(e){for(var t=e.srcEvent.clientX,n=e.srcEvent.clientY,r=0;r<this.lastTouches.length;r++){var o=this.lastTouches[r],i=Math.abs(t-o.x),a=Math.abs(n-o.y);if(i<=25&&a<=25)return!0}return!1}w(pe,W,{handler:function(e){var t=ce[e.type],n=de.call(this,e,t);n&&this.callback(this.manager,t,{pointers:n[0],changedPointers:n[1],pointerType:D,srcEvent:e})}}),w(he,W,{handler:function(e,t,n){var r=n.pointerType==D,o=n.pointerType==F;if(!(o&&n.sourceCapabilities&&n.sourceCapabilities.firesTouchEvents)){if(r)ve.call(this,t,n);else if(o&&me.call(this,n))return;this.callback(e,t,n)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var ye=R(c.style,"touchAction"),be=ye!==l,we="compute",Ee="auto",_e="manipulation",Oe="none",xe="pan-x",Se="pan-y",ke=function(){if(!be)return!1;var e={},t=o.CSS&&o.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach((function(n){e[n]=!t||o.CSS.supports("touch-action",n)})),e}();function Ce(e,t){this.manager=e,this.set(t)}Ce.prototype={set:function(e){e==we&&(e=this.compute()),be&&this.manager.element.style&&ke[e]&&(this.manager.element.style[ye]=e),this.actions=e.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var e=[];return g(this.manager.recognizers,(function(t){_(t.options.enable,[t])&&(e=e.concat(t.getTouchAction()))})),function(e){if(C(e,Oe))return Oe;var t=C(e,xe),n=C(e,Se);return t&&n?Oe:t||n?t?xe:Se:C(e,_e)?_e:Ee}(e.join(" "))},preventDefaults:function(e){var t=e.srcEvent,n=e.offsetDirection;if(this.manager.session.prevented)t.preventDefault();else{var r=this.actions,o=C(r,Oe)&&!ke.none,i=C(r,Se)&&!ke["pan-y"],a=C(r,xe)&&!ke["pan-x"];if(o){var l=1===e.pointers.length,u=e.distance<2,s=e.deltaTime<250;if(l&&u&&s)return}if(!a||!i)return o||i&&6&n||a&&24&n?this.preventSrc(t):void 0}},preventSrc:function(e){this.manager.session.prevented=!0,e.preventDefault()}};var Pe=32;function Te(e){this.options=u({},this.defaults,e||{}),this.id=I++,this.manager=null,this.options.enable=O(this.options.enable,!0),this.state=1,this.simultaneous={},this.requireFail=[]}function je(e){return 16&e?"cancel":8&e?"end":4&e?"move":2&e?"start":""}function Ne(e){return 16==e?"down":8==e?"up":2==e?"left":4==e?"right":""}function Re(e,t){var n=t.manager;return n?n.get(e):e}function Ie(){Te.apply(this,arguments)}function Ae(){Ie.apply(this,arguments),this.pX=null,this.pY=null}function Le(){Ie.apply(this,arguments)}function Me(){Te.apply(this,arguments),this._timer=null,this._input=null}function ze(){Ie.apply(this,arguments)}function De(){Ie.apply(this,arguments)}function Fe(){Te.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function Ue(e,t){return(t=t||{}).recognizers=O(t.recognizers,Ue.defaults.preset),new He(e,t)}function He(e,t){this.options=u({},Ue.defaults,t||{}),this.options.inputTarget=this.options.inputTarget||e,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=e,this.input=new(this.options.inputClass||(M?oe:z?pe:L?he:J))(this,B),this.touchAction=new Ce(this,this.options.touchAction),We(this,!0),g(this.options.recognizers,(function(e){var t=this.add(new e[0](e[1]));e[2]&&t.recognizeWith(e[2]),e[3]&&t.requireFailure(e[3])}),this)}function We(e,t){var n,r=e.element;r.style&&(g(e.options.cssProps,(function(o,i){n=R(r.style,i),t?(e.oldCssProps[n]=r.style[n],r.style[n]=o):r.style[n]=e.oldCssProps[n]||""})),t||(e.oldCssProps={}))}Te.prototype={defaults:{},set:function(e){return u(this.options,e),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(e){if(v(e,"recognizeWith",this))return this;var t=this.simultaneous;return t[(e=Re(e,this)).id]||(t[e.id]=e,e.recognizeWith(this)),this},dropRecognizeWith:function(e){return v(e,"dropRecognizeWith",this)||(e=Re(e,this),delete this.simultaneous[e.id]),this},requireFailure:function(e){if(v(e,"requireFailure",this))return this;var t=this.requireFail;return-1===T(t,e=Re(e,this))&&(t.push(e),e.requireFailure(this)),this},dropRequireFailure:function(e){if(v(e,"dropRequireFailure",this))return this;e=Re(e,this);var t=T(this.requireFail,e);return t>-1&&this.requireFail.splice(t,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(e){return!!this.simultaneous[e.id]},emit:function(e){var t=this,n=this.state;function r(n){t.manager.emit(n,e)}n<8&&r(t.options.event+je(n)),r(t.options.event),e.additionalEvent&&r(e.additionalEvent),n>=8&&r(t.options.event+je(n))},tryEmit:function(e){if(this.canEmit())return this.emit(e);this.state=Pe},canEmit:function(){for(var e=0;e<this.requireFail.length;){if(!(33&this.requireFail[e].state))return!1;e++}return!0},recognize:function(e){var t=u({},e);if(!_(this.options.enable,[this,t]))return this.reset(),void(this.state=Pe);56&this.state&&(this.state=1),this.state=this.process(t),30&this.state&&this.tryEmit(t)},process:function(e){},getTouchAction:function(){},reset:function(){}},w(Ie,Te,{defaults:{pointers:1},attrTest:function(e){var t=this.options.pointers;return 0===t||e.pointers.length===t},process:function(e){var t=this.state,n=e.eventType,r=6&t,o=this.attrTest(e);return r&&(8&n||!o)?16|t:r||o?4&n?8|t:2&t?4|t:2:Pe}}),w(Ae,Ie,{defaults:{event:"pan",threshold:10,pointers:1,direction:30},getTouchAction:function(){var e=this.options.direction,t=[];return 6&e&&t.push(Se),24&e&&t.push(xe),t},directionTest:function(e){var t=this.options,n=!0,r=e.distance,o=e.direction,i=e.deltaX,a=e.deltaY;return o&t.direction||(6&t.direction?(o=0===i?1:i<0?2:4,n=i!=this.pX,r=Math.abs(e.deltaX)):(o=0===a?1:a<0?8:16,n=a!=this.pY,r=Math.abs(e.deltaY))),e.direction=o,n&&r>t.threshold&&o&t.direction},attrTest:function(e){return Ie.prototype.attrTest.call(this,e)&&(2&this.state||!(2&this.state)&&this.directionTest(e))},emit:function(e){this.pX=e.deltaX,this.pY=e.deltaY;var t=Ne(e.direction);t&&(e.additionalEvent=this.options.event+t),this._super.emit.call(this,e)}}),w(Le,Ie,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Oe]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||2&this.state)},emit:function(e){if(1!==e.scale){var t=e.scale<1?"in":"out";e.additionalEvent=this.options.event+t}this._super.emit.call(this,e)}}),w(Me,Te,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[Ee]},process:function(e){var t=this.options,n=e.pointers.length===t.pointers,r=e.distance<t.threshold,o=e.deltaTime>t.time;if(this._input=e,!r||!n||12&e.eventType&&!o)this.reset();else if(1&e.eventType)this.reset(),this._timer=h((function(){this.state=8,this.tryEmit()}),t.time,this);else if(4&e.eventType)return 8;return Pe},reset:function(){clearTimeout(this._timer)},emit:function(e){8===this.state&&(e&&4&e.eventType?this.manager.emit(this.options.event+"up",e):(this._input.timeStamp=d(),this.manager.emit(this.options.event,this._input)))}}),w(ze,Ie,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Oe]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||2&this.state)}}),w(De,Ie,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:30,pointers:1},getTouchAction:function(){return Ae.prototype.getTouchAction.call(this)},attrTest:function(e){var t,n=this.options.direction;return 30&n?t=e.overallVelocity:6&n?t=e.overallVelocityX:24&n&&(t=e.overallVelocityY),this._super.attrTest.call(this,e)&&n&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers==this.options.pointers&&p(t)>this.options.velocity&&4&e.eventType},emit:function(e){var t=Ne(e.offsetDirection);t&&this.manager.emit(this.options.event+t,e),this.manager.emit(this.options.event,e)}}),w(Fe,Te,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[_e]},process:function(e){var t=this.options,n=e.pointers.length===t.pointers,r=e.distance<t.threshold,o=e.deltaTime<t.time;if(this.reset(),1&e.eventType&&0===this.count)return this.failTimeout();if(r&&o&&n){if(4!=e.eventType)return this.failTimeout();var i=!this.pTime||e.timeStamp-this.pTime<t.interval,a=!this.pCenter||G(this.pCenter,e.center)<t.posThreshold;if(this.pTime=e.timeStamp,this.pCenter=e.center,a&&i?this.count+=1:this.count=1,this._input=e,0==this.count%t.taps)return this.hasRequireFailures()?(this._timer=h((function(){this.state=8,this.tryEmit()}),t.interval,this),2):8}return Pe},failTimeout:function(){return this._timer=h((function(){this.state=Pe}),this.options.interval,this),Pe},reset:function(){clearTimeout(this._timer)},emit:function(){8==this.state&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),Ue.VERSION="2.0.7",Ue.defaults={domEvents:!1,touchAction:we,enable:!0,inputTarget:null,inputClass:null,preset:[[ze,{enable:!1}],[Le,{enable:!1},["rotate"]],[De,{direction:6}],[Ae,{direction:6},["swipe"]],[Fe],[Fe,{event:"doubletap",taps:2},["tap"]],[Me]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},He.prototype={set:function(e){return u(this.options,e),e.touchAction&&this.touchAction.update(),e.inputTarget&&(this.input.destroy(),this.input.target=e.inputTarget,this.input.init()),this},stop:function(e){this.session.stopped=e?2:1},recognize:function(e){var t=this.session;if(!t.stopped){var n;this.touchAction.preventDefaults(e);var r=this.recognizers,o=t.curRecognizer;(!o||o&&8&o.state)&&(o=t.curRecognizer=null);for(var i=0;i<r.length;)n=r[i],2===t.stopped||o&&n!=o&&!n.canRecognizeWith(o)?n.reset():n.recognize(e),!o&&14&n.state&&(o=t.curRecognizer=n),i++}},get:function(e){if(e instanceof Te)return e;for(var t=this.recognizers,n=0;n<t.length;n++)if(t[n].options.event==e)return t[n];return null},add:function(e){if(v(e,"add",this))return this;var t=this.get(e.options.event);return t&&this.remove(t),this.recognizers.push(e),e.manager=this,this.touchAction.update(),e},remove:function(e){if(v(e,"remove",this))return this;if(e=this.get(e)){var t=this.recognizers,n=T(t,e);-1!==n&&(t.splice(n,1),this.touchAction.update())}return this},on:function(e,t){if(e!==l&&t!==l){var n=this.handlers;return g(P(e),(function(e){n[e]=n[e]||[],n[e].push(t)})),this}},off:function(e,t){if(e!==l){var n=this.handlers;return g(P(e),(function(e){t?n[e]&&n[e].splice(T(n[e],t),1):delete n[e]})),this}},emit:function(e,t){this.options.domEvents&&function(e,t){var n=i.createEvent("Event");n.initEvent(e,!0,!0),n.gesture=t,t.target.dispatchEvent(n)}(e,t);var n=this.handlers[e]&&this.handlers[e].slice();if(n&&n.length){t.type=e,t.preventDefault=function(){t.srcEvent.preventDefault()};for(var r=0;r<n.length;)n[r](t),r++}},destroy:function(){this.element&&We(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},u(Ue,{INPUT_START:1,INPUT_MOVE:2,INPUT_END:4,INPUT_CANCEL:8,STATE_POSSIBLE:1,STATE_BEGAN:2,STATE_CHANGED:4,STATE_ENDED:8,STATE_RECOGNIZED:8,STATE_CANCELLED:16,STATE_FAILED:Pe,DIRECTION_NONE:1,DIRECTION_LEFT:2,DIRECTION_RIGHT:4,DIRECTION_UP:8,DIRECTION_DOWN:16,DIRECTION_HORIZONTAL:6,DIRECTION_VERTICAL:24,DIRECTION_ALL:30,Manager:He,Input:W,TouchAction:Ce,TouchInput:pe,MouseInput:J,PointerEventInput:oe,TouchMouseInput:he,SingleTouchInput:ue,Recognizer:Te,AttrRecognizer:Ie,Tap:Fe,Pan:Ae,Swipe:De,Pinch:Le,Rotate:ze,Press:Me,on:x,off:S,each:g,merge:b,extend:y,assign:u,inherit:w,bindFn:E,prefixed:R}),(void 0!==o?o:"undefined"!=typeof self?self:{}).Hammer=Ue,(r=function(){return Ue}.call(t,n,t,e))===l||(e.exports=r)}(window,document)},544:function(e,t,n){"use strict";var r=n(5538),o=n(5126);function i(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=i,i.prototype.update=function(e,t){if(e=r.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=r.join32(e,0,e.length-n,this.endian);for(var o=0;o<e.length;o+=this._delta32)this._update(e,o,o+this._delta32)}return this},i.prototype.digest=function(e){return this.update(this._pad()),o(null===this.pending),this._digest(e)},i.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,r=new Array(n+this.padLength);r[0]=128;for(var o=1;o<n;o++)r[o]=0;if(e<<=3,"big"===this.endian){for(var i=8;i<this.padLength;i++)r[o++]=0;r[o++]=0,r[o++]=0,r[o++]=0,r[o++]=0,r[o++]=e>>>24&255,r[o++]=e>>>16&255,r[o++]=e>>>8&255,r[o++]=255&e}else for(r[o++]=255&e,r[o++]=e>>>8&255,r[o++]=e>>>16&255,r[o++]=e>>>24&255,r[o++]=0,r[o++]=0,r[o++]=0,r[o++]=0,i=8;i<this.padLength;i++)r[o++]=0;return r}},8519:function(e,t,n){"use strict";var r=n(5538),o=n(544),i=n(4313),a=r.rotl32,l=r.sum32,u=r.sum32_5,s=i.ft_1,c=o.BlockHash,f=[1518500249,1859775393,2400959708,3395469782];function p(){if(!(this instanceof p))return new p;c.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(p,c),e.exports=p,p.blockSize=512,p.outSize=160,p.hmacStrength=80,p.padLength=64,p.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=a(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var o=this.h[0],i=this.h[1],c=this.h[2],p=this.h[3],d=this.h[4];for(r=0;r<n.length;r++){var h=~~(r/20),v=u(a(o,5),s(h,i,c,p),d,n[r],f[h]);d=p,p=c,c=a(i,30),i=o,o=v}this.h[0]=l(this.h[0],o),this.h[1]=l(this.h[1],i),this.h[2]=l(this.h[2],c),this.h[3]=l(this.h[3],p),this.h[4]=l(this.h[4],d)},p.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},4313:function(e,t,n){"use strict";var r=n(5538).rotr32;function o(e,t,n){return e&t^~e&n}function i(e,t,n){return e&t^e&n^t&n}function a(e,t,n){return e^t^n}t.ft_1=function(e,t,n,r){return 0===e?o(t,n,r):1===e||3===e?a(t,n,r):2===e?i(t,n,r):void 0},t.ch32=o,t.maj32=i,t.p32=a,t.s0_256=function(e){return r(e,2)^r(e,13)^r(e,22)},t.s1_256=function(e){return r(e,6)^r(e,11)^r(e,25)},t.g0_256=function(e){return r(e,7)^r(e,18)^e>>>3},t.g1_256=function(e){return r(e,17)^r(e,19)^e>>>10}},5538:function(e,t,n){"use strict";var r=n(5126),o=n(369);function i(e,t){return 55296==(64512&e.charCodeAt(t))&&!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1))}function a(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function l(e){return 1===e.length?"0"+e:e}function u(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=o,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),o=0;o<e.length;o+=2)n.push(parseInt(e[o]+e[o+1],16))}else for(var r=0,o=0;o<e.length;o++){var a=e.charCodeAt(o);a<128?n[r++]=a:a<2048?(n[r++]=a>>6|192,n[r++]=63&a|128):i(e,o)?(a=65536+((1023&a)<<10)+(1023&e.charCodeAt(++o)),n[r++]=a>>18|240,n[r++]=a>>12&63|128,n[r++]=a>>6&63|128,n[r++]=63&a|128):(n[r++]=a>>12|224,n[r++]=a>>6&63|128,n[r++]=63&a|128)}else for(o=0;o<e.length;o++)n[o]=0|e[o];return n},t.toHex=function(e){for(var t="",n=0;n<e.length;n++)t+=l(e[n].toString(16));return t},t.htonl=a,t.toHex32=function(e,t){for(var n="",r=0;r<e.length;r++){var o=e[r];"little"===t&&(o=a(o)),n+=u(o.toString(16))}return n},t.zero2=l,t.zero8=u,t.join32=function(e,t,n,o){var i=n-t;r(i%4==0);for(var a=new Array(i/4),l=0,u=t;l<a.length;l++,u+=4){var s;s="big"===o?e[u]<<24|e[u+1]<<16|e[u+2]<<8|e[u+3]:e[u+3]<<24|e[u+2]<<16|e[u+1]<<8|e[u],a[l]=s>>>0}return a},t.split32=function(e,t){for(var n=new Array(4*e.length),r=0,o=0;r<e.length;r++,o+=4){var i=e[r];"big"===t?(n[o]=i>>>24,n[o+1]=i>>>16&255,n[o+2]=i>>>8&255,n[o+3]=255&i):(n[o+3]=i>>>24,n[o+2]=i>>>16&255,n[o+1]=i>>>8&255,n[o]=255&i)}return n},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<<t|e>>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},t.sum32_5=function(e,t,n,r,o){return e+t+n+r+o>>>0},t.sum64=function(e,t,n,r){var o=e[t],i=r+e[t+1]>>>0,a=(i<r?1:0)+n+o;e[t]=a>>>0,e[t+1]=i},t.sum64_hi=function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},t.sum64_lo=function(e,t,n,r){return t+r>>>0},t.sum64_4_hi=function(e,t,n,r,o,i,a,l){var u=0,s=t;return u+=(s=s+r>>>0)<t?1:0,u+=(s=s+i>>>0)<i?1:0,e+n+o+a+(u+=(s=s+l>>>0)<l?1:0)>>>0},t.sum64_4_lo=function(e,t,n,r,o,i,a,l){return t+r+i+l>>>0},t.sum64_5_hi=function(e,t,n,r,o,i,a,l,u,s){var c=0,f=t;return c+=(f=f+r>>>0)<t?1:0,c+=(f=f+i>>>0)<i?1:0,c+=(f=f+l>>>0)<l?1:0,e+n+o+a+u+(c+=(f=f+s>>>0)<s?1:0)>>>0},t.sum64_5_lo=function(e,t,n,r,o,i,a,l,u,s){return t+r+i+l+s>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},4996:function(e,t){"use strict";function n(e){return"number"==typeof e&&isNaN(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.startsWith=function(e,t,n){return e.substr(n||0,t.length)===t},t.endsWith=function(e,t,n){var r=(n||e.length)-t.length,o=e.lastIndexOf(t,r);return-1!==o&&o===r},t.stringIncludes=function(e,t,n){return-1!==e.indexOf(t,n||0)},t.isRealNaN=n,t.arrayIncludes=function(e,t,r){var o=e.length;if(0===o)return!1;for(var i=0|r,a=n(t),l=i>=0?i:o+i;l<o;){var u=e[l++];if(u===t)return!0;if(a&&n(u))return!0}return!1}},1346:function(e,t){"use strict";function n(e,t){var n=e.indexOf(t);return-1===n?[e]:[e.slice(0,n),e.slice(n+t.length)]}function r(e){var t=e.charAt(0),n=e.length-1;return'"'!==t&&"'"!==t||t!==e.charAt(n)?e:e.slice(1,n)}function o(e){return e.map((function(e){var t=n(e.trim(),"=");return{key:t[0],value:"string"==typeof t[1]?r(t[1]):null}}))}Object.defineProperty(t,"__esModule",{value:!0}),t.splitHead=n,t.unquote=r,t.format=function e(t,n){return t.map((function(t){var r=t.type,i="element"===r?{type:r,tagName:t.tagName.toLowerCase(),attributes:o(t.attributes),children:e(t.children,n)}:{type:r,content:t.content};return n.includePositions&&(i.position=t.position),i}))},t.formatAttributes=o},9932:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseDefaults=void 0,t.parse=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:s,n=(0,r.default)(e,t),a=(0,o.default)(n,t);return(0,i.format)(a,t)},t.stringify=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:s;return(0,a.toHTML)(e,t)};var r=u(n(2255)),o=u(n(4495)),i=n(1346),a=n(249),l=n(5502);function u(e){return e&&e.__esModule?e:{default:e}}var s=t.parseDefaults={voidTags:l.voidTags,closingTags:l.closingTags,childlessTags:l.childlessTags,closingTagAncestorBreakers:l.closingTagAncestorBreakers,includePositions:!1}},2255:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.feedPosition=o,t.jumpPosition=i,t.makeInitialPosition=function(){return{index:0,column:0,line:0}},t.copyPosition=a,t.default=function(e,t){var n={str:e,options:t,position:{index:0,column:0,line:0},tokens:[]};return l(n),n.tokens},t.lex=l,t.findTextEnd=s,t.lexText=c,t.lexComment=f,t.lexTag=p,t.isWhitespaceChar=h,t.lexTagName=v,t.lexTagAttributes=g,t.lexSkipTag=y;var r=n(4996);function o(e,t,n){for(var r=e.index,o=e.index=r+n,i=r;i<o;i++)"\n"===t.charAt(i)?(e.line++,e.column=0):e.column++}function i(e,t,n){return o(e,t,n-e.index)}function a(e){return{index:e.index,line:e.line,column:e.column}}function l(e){for(var t=e.str,n=e.options.childlessTags,o=t.length;e.position.index<o;){var i=e.position.index;if(c(e),e.position.index===i)if((0,r.startsWith)(t,"!--",i+1))f(e);else{var a=p(e),l=a.toLowerCase();(0,r.arrayIncludes)(n,l)&&y(a,e)}}}var u=/[A-Za-z0-9]/;function s(e,t){for(;;){var n=e.indexOf("<",t);if(-1===n)return n;var r=e.charAt(n+1);if("/"===r||"!"===r||u.test(r))return n;t=n+1}}function c(e){var t=e.str,n=e.position,r=s(t,n.index);if(r!==n.index){-1===r&&(r=t.length);var o=a(n),l=t.slice(n.index,r);i(n,t,r);var u=a(n);e.tokens.push({type:"text",content:l,position:{start:o,end:u}})}}function f(e){var t=e.str,n=e.position,r=a(n);o(n,t,4);var l=t.indexOf("--\x3e",n.index),u=l+3;-1===l&&(l=u=t.length);var s=t.slice(n.index,l);i(n,t,u),e.tokens.push({type:"comment",content:s,position:{start:r,end:a(n)}})}function p(e){var t=e.str,n=e.position,r="/"===t.charAt(n.index+1),i=a(n);o(n,t,r?2:1),e.tokens.push({type:"tag-start",close:r,position:{start:i}});var l=v(e);g(e);var u="/"===t.charAt(n.index);o(n,t,u?2:1);var s=a(n);return e.tokens.push({type:"tag-end",close:u,position:{end:s}}),l}var d=/\s/;function h(e){return d.test(e)}function v(e){for(var t=e.str,n=e.position,r=t.length,o=n.index;o<r;){var a=t.charAt(o);if(!h(a)&&"/"!==a&&">"!==a)break;o++}for(var l=o+1;l<r;){var u=t.charAt(l);if(h(u)||"/"===u||">"===u)break;l++}i(n,t,l);var s=t.slice(o,l);return e.tokens.push({type:"tag",content:s}),s}function g(e){for(var t=e.str,n=e.position,o=e.tokens,a=n.index,l=null,u=a,s=[],c=t.length;a<c;){var f=t.charAt(a);if(l)f===l&&(l=null),a++;else{if("/"===f||">"===f){a!==u&&s.push(t.slice(u,a));break}h(f)?(a!==u&&s.push(t.slice(u,a)),u=a+1,a++):"'"===f||'"'===f?(l=f,a++):a++}}i(n,t,a);for(var p=s.length,d="attribute",v=0;v<p;v++){var g=s[v];if(-1===g.indexOf("=")){var m=s[v+1];if(m&&(0,r.startsWith)(m,"=")){if(m.length>1){var y=g+m;o.push({type:d,content:y}),v+=1;continue}var b=s[v+2];if(v+=1,b){var w=g+"="+b;o.push({type:d,content:w}),v+=1;continue}}}if((0,r.endsWith)(g,"=")){var E=s[v+1];if(E&&!(0,r.stringIncludes)(E,"=")){var _=g+E;o.push({type:d,content:_}),v+=1;continue}var O=g.slice(0,-1);o.push({type:d,content:O})}else o.push({type:d,content:g})}}var m=[].push;function y(e,t){for(var n=t.str,r=t.position,o=t.tokens,l=e.toLowerCase(),u=n.length,s=r.index;s<u;){var f=n.indexOf("</",s);if(-1===f){c(t);break}var d=a(r);i(d,n,f);var h={str:n,position:d,tokens:[]};if(l===p(h).toLowerCase()){if(f!==r.index){var v=a(r);i(r,n,f),o.push({type:"text",content:n.slice(v.index,f),position:{start:v,end:a(r)}})}m.apply(o,h.tokens),i(r,n,h.position.index);break}s=h.position.index}}},4495:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n={tagName:null,children:[]};return a({tokens:e,options:t,cursor:0,stack:[n]}),n.children},t.hasTerminalParent=o,t.rewindStack=i,t.parse=a;var r=n(4996);function o(e,t,n){var o=n[e];if(o)for(var i=t.length-1;i>=0;){var a=t[i].tagName;if(a===e)break;if((0,r.arrayIncludes)(o,a))return!0;i--}return!1}function i(e,t,n,r){e[t].position.end=r;for(var o=t+1,i=e.length;o<i;o++)e[o].position.end=n;e.splice(t)}function a(e){for(var t=e.tokens,n=e.options,l=e.stack,u=l[l.length-1].children,s=t.length,c=e.cursor;c<s;){var f=t[c];if("tag-start"===f.type){var p=t[++c];c++;var d=p.content.toLowerCase();if(f.close){for(var h=l.length,v=!1;--h>-1;)if(l[h].tagName===d){v=!0;break}for(;c<s&&"tag-end"===t[c].type;)c++;if(v){i(l,h,f.position.start,t[c-1].position.end);break}}else{var g=(0,r.arrayIncludes)(n.closingTags,d);if(g&&(g=!o(d,l,n.closingTagAncestorBreakers)),g)for(var m=l.length-1;m>0;){if(d===l[m].tagName){i(l,m,f.position.start,f.position.start),u=l[m-1].children;break}m-=1}for(var y=[],b=void 0;c<s&&"tag-end"!==(b=t[c]).type;)y.push(b.content),c++;c++;var w=[],E={start:f.position.start,end:b.position.end},_={type:"element",tagName:p.content,attributes:y,children:w,position:E};if(u.push(_),!b.close&&!(0,r.arrayIncludes)(n.voidTags,d)){var O=l.push({tagName:d,children:w,position:E}),x={tokens:t,options:n,cursor:c,stack:l};a(x),c=x.cursor,l.length===O&&(_.position.end=t[c-1].position.end)}}}else u.push(f),c++}e.cursor=c}},249:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.formatAttributes=o,t.toHTML=i;var r=n(4996);function o(e){return e.reduce((function(e,t){var n=t.key,r=t.value;if(null===r)return e+" "+n;var o=-1!==r.indexOf("'")?'"':"'";return e+" "+n+"="+o+r+o}),"")}function i(e,t){return e.map((function(e){if("text"===e.type)return e.content;if("comment"===e.type)return"\x3c!--"+e.content+"--\x3e";var n=e.tagName,a=e.attributes,l=e.children;return(0,r.arrayIncludes)(t.voidTags,n.toLowerCase())?"<"+n+o(a)+">":"<"+n+o(a)+">"+i(l,t)+"</"+n+">"})).join("")}t.default={toHTML:i}},5502:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.childlessTags=["style","script","template"],t.closingTags=["html","head","body","p","dt","dd","li","option","thead","th","tbody","tr","td","tfoot","colgroup"],t.closingTagAncestorBreakers={li:["ul","ol","menu"],dt:["dl"],dd:["dl"],tbody:["table"],thead:["table"],tfoot:["table"],tr:["table"],td:["table"]},t.voidTags=["!doctype","area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]},3578:function(e,t,n){"use strict";var r=n(8485),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function u(e){return r.isMemo(e)?a:l[e.$$typeof]||o}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=a;var s=Object.defineProperty,c=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,d=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var o=d(n);o&&o!==h&&e(t,o,r)}var a=c(n);f&&(a=a.concat(f(n)));for(var l=u(t),v=u(n),g=0;g<a.length;++g){var m=a[g];if(!(i[m]||r&&r[m]||v&&v[m]||l&&l[m])){var y=p(n,m);try{s(t,m,y)}catch(e){}}}}return t}},369:function(e){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},998:function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=l(n(8965)),i=l(n(1646)),a=l(n(5040));function l(e){return e&&e.__esModule?e:{default:e}}var u=void 0;function s(e,t){var n,a,l,c,f,p,d,h,v=[],g={};for(p=0;p<e.length;p++)if("string"!==(f=e[p]).type){if(!t.hasOwnProperty(f.value)||void 0===t[f.value])throw new Error("Invalid interpolation, missing component node: `"+f.value+"`");if("object"!==r(t[f.value]))throw new Error("Invalid interpolation, component node must be a ReactElement or null: `"+f.value+"`","\n> "+u);if("componentClose"===f.type)throw new Error("Missing opening component token: `"+f.value+"`");if("componentOpen"===f.type){n=t[f.value],l=p;break}v.push(t[f.value])}else v.push(f.value);return n&&(c=function(e,t){var n,r,o=t[e],i=0;for(r=e+1;r<t.length;r++)if((n=t[r]).value===o.value){if("componentOpen"===n.type){i++;continue}if("componentClose"===n.type){if(0===i)return r;i--}}throw new Error("Missing closing component token `"+o.value+"`")}(l,e),d=s(e.slice(l+1,c),t),a=o.default.cloneElement(n,{},d),v.push(a),c<e.length-1&&(h=s(e.slice(c+1),t),v=v.concat(h))),1===v.length?v[0]:(v.forEach((function(e,t){e&&(g["interpolation-child-"+t]=e)})),(0,i.default)(g))}t.Z=function(e){var t=e.mixedString,n=e.components,o=e.throwErrors;if(u=t,!n)return t;if("object"!==(void 0===n?"undefined":r(n))){if(o)throw new Error("Interpolation Error: unable to process `"+t+"` because components is not an object");return t}var i=(0,a.default)(t);try{return s(i,n)}catch(e){if(o)throw new Error("Interpolation Error: unable to process `"+t+"` because of error `"+e.message+"`");return t}}},5040:function(e){"use strict";function t(e){return e.match(/^\{\{\//)?{type:"componentClose",value:e.replace(/\W/g,"")}:e.match(/\/\}\}$/)?{type:"componentSelfClosing",value:e.replace(/\W/g,"")}:e.match(/^\{\{/)?{type:"componentOpen",value:e.replace(/\W/g,"")}:{type:"string",value:e}}e.exports=function(e){return e.split(/(\{\{\/?\s*\w+\s*\/?\}\})/g).map(t)}},9760:function(e,t,n){var r;e=n.nmd(e),function(){var o,i="Expected a function",a="__lodash_hash_undefined__",l="__lodash_placeholder__",u=32,s=128,c=1/0,f=9007199254740991,p=NaN,d=4294967295,h=[["ary",s],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",u],["partialRight",64],["rearg",256]],v="[object Arguments]",g="[object Array]",m="[object Boolean]",y="[object Date]",b="[object Error]",w="[object Function]",E="[object GeneratorFunction]",_="[object Map]",O="[object Number]",x="[object Object]",S="[object Promise]",k="[object RegExp]",C="[object Set]",P="[object String]",T="[object Symbol]",j="[object WeakMap]",N="[object ArrayBuffer]",R="[object DataView]",I="[object Float32Array]",A="[object Float64Array]",L="[object Int8Array]",M="[object Int16Array]",z="[object Int32Array]",D="[object Uint8Array]",F="[object Uint8ClampedArray]",U="[object Uint16Array]",H="[object Uint32Array]",W=/\b__p \+= '';/g,B=/\b(__p \+=) '' \+/g,$=/(__e\(.*?\)|\b__t\)) \+\n'';/g,V=/&(?:amp|lt|gt|quot|#39);/g,q=/[&<>"']/g,K=RegExp(V.source),G=RegExp(q.source),Q=/<%-([\s\S]+?)%>/g,X=/<%([\s\S]+?)%>/g,Y=/<%=([\s\S]+?)%>/g,Z=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,J=/^\w*$/,ee=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,te=/[\\^$.*+?()[\]{}|]/g,ne=RegExp(te.source),re=/^\s+/,oe=/\s/,ie=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ae=/\{\n\/\* \[wrapped with (.+)\] \*/,le=/,? & /,ue=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,se=/[()=,{}\[\]\/\s]/,ce=/\\(\\)?/g,fe=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,pe=/\w*$/,de=/^[-+]0x[0-9a-f]+$/i,he=/^0b[01]+$/i,ve=/^\[object .+?Constructor\]$/,ge=/^0o[0-7]+$/i,me=/^(?:0|[1-9]\d*)$/,ye=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,be=/($^)/,we=/['\n\r\u2028\u2029\\]/g,Ee="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",_e="a-z\\xdf-\\xf6\\xf8-\\xff",Oe="A-Z\\xc0-\\xd6\\xd8-\\xde",xe="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Se="["+xe+"]",ke="["+Ee+"]",Ce="\\d+",Pe="["+_e+"]",Te="[^\\ud800-\\udfff"+xe+Ce+"\\u2700-\\u27bf"+_e+Oe+"]",je="\\ud83c[\\udffb-\\udfff]",Ne="[^\\ud800-\\udfff]",Re="(?:\\ud83c[\\udde6-\\uddff]){2}",Ie="[\\ud800-\\udbff][\\udc00-\\udfff]",Ae="["+Oe+"]",Le="(?:"+Pe+"|"+Te+")",Me="(?:"+Ae+"|"+Te+")",ze="(?:['’](?:d|ll|m|re|s|t|ve))?",De="(?:['’](?:D|LL|M|RE|S|T|VE))?",Fe="(?:"+ke+"|"+je+")?",Ue="[\\ufe0e\\ufe0f]?",He=Ue+Fe+"(?:\\u200d(?:"+[Ne,Re,Ie].join("|")+")"+Ue+Fe+")*",We="(?:"+["[\\u2700-\\u27bf]",Re,Ie].join("|")+")"+He,Be="(?:"+[Ne+ke+"?",ke,Re,Ie,"[\\ud800-\\udfff]"].join("|")+")",$e=RegExp("['’]","g"),Ve=RegExp(ke,"g"),qe=RegExp(je+"(?="+je+")|"+Be+He,"g"),Ke=RegExp([Ae+"?"+Pe+"+"+ze+"(?="+[Se,Ae,"$"].join("|")+")",Me+"+"+De+"(?="+[Se,Ae+Le,"$"].join("|")+")",Ae+"?"+Le+"+"+ze,Ae+"+"+De,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Ce,We].join("|"),"g"),Ge=RegExp("[\\u200d\\ud800-\\udfff"+Ee+"\\ufe0e\\ufe0f]"),Qe=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Xe=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Ye=-1,Ze={};Ze[I]=Ze[A]=Ze[L]=Ze[M]=Ze[z]=Ze[D]=Ze[F]=Ze[U]=Ze[H]=!0,Ze[v]=Ze[g]=Ze[N]=Ze[m]=Ze[R]=Ze[y]=Ze[b]=Ze[w]=Ze[_]=Ze[O]=Ze[x]=Ze[k]=Ze[C]=Ze[P]=Ze[j]=!1;var Je={};Je[v]=Je[g]=Je[N]=Je[R]=Je[m]=Je[y]=Je[I]=Je[A]=Je[L]=Je[M]=Je[z]=Je[_]=Je[O]=Je[x]=Je[k]=Je[C]=Je[P]=Je[T]=Je[D]=Je[F]=Je[U]=Je[H]=!0,Je[b]=Je[w]=Je[j]=!1;var et={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},tt=parseFloat,nt=parseInt,rt="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,ot="object"==typeof self&&self&&self.Object===Object&&self,it=rt||ot||Function("return this")(),at=t&&!t.nodeType&&t,lt=at&&e&&!e.nodeType&&e,ut=lt&&lt.exports===at,st=ut&&rt.process,ct=function(){try{return lt&&lt.require&&lt.require("util").types||st&&st.binding&&st.binding("util")}catch(e){}}(),ft=ct&&ct.isArrayBuffer,pt=ct&&ct.isDate,dt=ct&&ct.isMap,ht=ct&&ct.isRegExp,vt=ct&&ct.isSet,gt=ct&&ct.isTypedArray;function mt(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function yt(e,t,n,r){for(var o=-1,i=null==e?0:e.length;++o<i;){var a=e[o];t(r,a,n(a),e)}return r}function bt(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}function wt(e,t){for(var n=null==e?0:e.length;n--&&!1!==t(e[n],n,e););return e}function Et(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(!t(e[n],n,e))return!1;return!0}function _t(e,t){for(var n=-1,r=null==e?0:e.length,o=0,i=[];++n<r;){var a=e[n];t(a,n,e)&&(i[o++]=a)}return i}function Ot(e,t){return!(null==e||!e.length)&&It(e,t,0)>-1}function xt(e,t,n){for(var r=-1,o=null==e?0:e.length;++r<o;)if(n(t,e[r]))return!0;return!1}function St(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}function kt(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}function Ct(e,t,n,r){var o=-1,i=null==e?0:e.length;for(r&&i&&(n=e[++o]);++o<i;)n=t(n,e[o],o,e);return n}function Pt(e,t,n,r){var o=null==e?0:e.length;for(r&&o&&(n=e[--o]);o--;)n=t(n,e[o],o,e);return n}function Tt(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}var jt=zt("length");function Nt(e,t,n){var r;return n(e,(function(e,n,o){if(t(e,n,o))return r=n,!1})),r}function Rt(e,t,n,r){for(var o=e.length,i=n+(r?1:-1);r?i--:++i<o;)if(t(e[i],i,e))return i;return-1}function It(e,t,n){return t==t?function(e,t,n){for(var r=n-1,o=e.length;++r<o;)if(e[r]===t)return r;return-1}(e,t,n):Rt(e,Lt,n)}function At(e,t,n,r){for(var o=n-1,i=e.length;++o<i;)if(r(e[o],t))return o;return-1}function Lt(e){return e!=e}function Mt(e,t){var n=null==e?0:e.length;return n?Ut(e,t)/n:p}function zt(e){return function(t){return null==t?o:t[e]}}function Dt(e){return function(t){return null==e?o:e[t]}}function Ft(e,t,n,r,o){return o(e,(function(e,o,i){n=r?(r=!1,e):t(n,e,o,i)})),n}function Ut(e,t){for(var n,r=-1,i=e.length;++r<i;){var a=t(e[r]);a!==o&&(n=n===o?a:n+a)}return n}function Ht(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}function Wt(e){return e?e.slice(0,ln(e)+1).replace(re,""):e}function Bt(e){return function(t){return e(t)}}function $t(e,t){return St(t,(function(t){return e[t]}))}function Vt(e,t){return e.has(t)}function qt(e,t){for(var n=-1,r=e.length;++n<r&&It(t,e[n],0)>-1;);return n}function Kt(e,t){for(var n=e.length;n--&&It(t,e[n],0)>-1;);return n}function Gt(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}var Qt=Dt({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),Xt=Dt({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"});function Yt(e){return"\\"+et[e]}function Zt(e){return Ge.test(e)}function Jt(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function en(e,t){return function(n){return e(t(n))}}function tn(e,t){for(var n=-1,r=e.length,o=0,i=[];++n<r;){var a=e[n];a!==t&&a!==l||(e[n]=l,i[o++]=n)}return i}function nn(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}function rn(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=[e,e]})),n}function on(e){return Zt(e)?function(e){for(var t=qe.lastIndex=0;qe.test(e);)++t;return t}(e):jt(e)}function an(e){return Zt(e)?function(e){return e.match(qe)||[]}(e):function(e){return e.split("")}(e)}function ln(e){for(var t=e.length;t--&&oe.test(e.charAt(t)););return t}var un=Dt({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"}),sn=function e(t){var n,r=(t=null==t?it:sn.defaults(it.Object(),t,sn.pick(it,Xe))).Array,oe=t.Date,Ee=t.Error,_e=t.Function,Oe=t.Math,xe=t.Object,Se=t.RegExp,ke=t.String,Ce=t.TypeError,Pe=r.prototype,Te=_e.prototype,je=xe.prototype,Ne=t["__core-js_shared__"],Re=Te.toString,Ie=je.hasOwnProperty,Ae=0,Le=(n=/[^.]+$/.exec(Ne&&Ne.keys&&Ne.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",Me=je.toString,ze=Re.call(xe),De=it._,Fe=Se("^"+Re.call(Ie).replace(te,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Ue=ut?t.Buffer:o,He=t.Symbol,We=t.Uint8Array,Be=Ue?Ue.allocUnsafe:o,qe=en(xe.getPrototypeOf,xe),Ge=xe.create,et=je.propertyIsEnumerable,rt=Pe.splice,ot=He?He.isConcatSpreadable:o,at=He?He.iterator:o,lt=He?He.toStringTag:o,st=function(){try{var e=ci(xe,"defineProperty");return e({},"",{}),e}catch(e){}}(),ct=t.clearTimeout!==it.clearTimeout&&t.clearTimeout,jt=oe&&oe.now!==it.Date.now&&oe.now,Dt=t.setTimeout!==it.setTimeout&&t.setTimeout,cn=Oe.ceil,fn=Oe.floor,pn=xe.getOwnPropertySymbols,dn=Ue?Ue.isBuffer:o,hn=t.isFinite,vn=Pe.join,gn=en(xe.keys,xe),mn=Oe.max,yn=Oe.min,bn=oe.now,wn=t.parseInt,En=Oe.random,_n=Pe.reverse,On=ci(t,"DataView"),xn=ci(t,"Map"),Sn=ci(t,"Promise"),kn=ci(t,"Set"),Cn=ci(t,"WeakMap"),Pn=ci(xe,"create"),Tn=Cn&&new Cn,jn={},Nn=Fi(On),Rn=Fi(xn),In=Fi(Sn),An=Fi(kn),Ln=Fi(Cn),Mn=He?He.prototype:o,zn=Mn?Mn.valueOf:o,Dn=Mn?Mn.toString:o;function Fn(e){if(nl(e)&&!Va(e)&&!(e instanceof Bn)){if(e instanceof Wn)return e;if(Ie.call(e,"__wrapped__"))return Ui(e)}return new Wn(e)}var Un=function(){function e(){}return function(t){if(!tl(t))return{};if(Ge)return Ge(t);e.prototype=t;var n=new e;return e.prototype=o,n}}();function Hn(){}function Wn(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=o}function Bn(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=d,this.__views__=[]}function $n(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Vn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function qn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Kn(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new qn;++t<n;)this.add(e[t])}function Gn(e){var t=this.__data__=new Vn(e);this.size=t.size}function Qn(e,t){var n=Va(e),r=!n&&$a(e),o=!n&&!r&&Qa(e),i=!n&&!r&&!o&&cl(e),a=n||r||o||i,l=a?Ht(e.length,ke):[],u=l.length;for(var s in e)!t&&!Ie.call(e,s)||a&&("length"==s||o&&("offset"==s||"parent"==s)||i&&("buffer"==s||"byteLength"==s||"byteOffset"==s)||mi(s,u))||l.push(s);return l}function Xn(e){var t=e.length;return t?e[qr(0,t-1)]:o}function Yn(e,t){return Ai(Po(e),ar(t,0,e.length))}function Zn(e){return Ai(Po(e))}function Jn(e,t,n){(n!==o&&!Ha(e[t],n)||n===o&&!(t in e))&&or(e,t,n)}function er(e,t,n){var r=e[t];Ie.call(e,t)&&Ha(r,n)&&(n!==o||t in e)||or(e,t,n)}function tr(e,t){for(var n=e.length;n--;)if(Ha(e[n][0],t))return n;return-1}function nr(e,t,n,r){return fr(e,(function(e,o,i){t(r,e,n(e),i)})),r}function rr(e,t){return e&&To(t,Rl(t),e)}function or(e,t,n){"__proto__"==t&&st?st(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function ir(e,t){for(var n=-1,i=t.length,a=r(i),l=null==e;++n<i;)a[n]=l?o:Cl(e,t[n]);return a}function ar(e,t,n){return e==e&&(n!==o&&(e=e<=n?e:n),t!==o&&(e=e>=t?e:t)),e}function lr(e,t,n,r,i,a){var l,u=1&t,s=2&t,c=4&t;if(n&&(l=i?n(e,r,i,a):n(e)),l!==o)return l;if(!tl(e))return e;var f=Va(e);if(f){if(l=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&Ie.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!u)return Po(e,l)}else{var p=di(e),d=p==w||p==E;if(Qa(e))return _o(e,u);if(p==x||p==v||d&&!i){if(l=s||d?{}:vi(e),!u)return s?function(e,t){return To(e,pi(e),t)}(e,function(e,t){return e&&To(t,Il(t),e)}(l,e)):function(e,t){return To(e,fi(e),t)}(e,rr(l,e))}else{if(!Je[p])return i?e:{};l=function(e,t,n){var r,o=e.constructor;switch(t){case N:return Oo(e);case m:case y:return new o(+e);case R:return function(e,t){var n=t?Oo(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case I:case A:case L:case M:case z:case D:case F:case U:case H:return xo(e,n);case _:return new o;case O:case P:return new o(e);case k:return function(e){var t=new e.constructor(e.source,pe.exec(e));return t.lastIndex=e.lastIndex,t}(e);case C:return new o;case T:return r=e,zn?xe(zn.call(r)):{}}}(e,p,u)}}a||(a=new Gn);var h=a.get(e);if(h)return h;a.set(e,l),ll(e)?e.forEach((function(r){l.add(lr(r,t,n,r,e,a))})):rl(e)&&e.forEach((function(r,o){l.set(o,lr(r,t,n,o,e,a))}));var g=f?o:(c?s?ri:ni:s?Il:Rl)(e);return bt(g||e,(function(r,o){g&&(r=e[o=r]),er(l,o,lr(r,t,n,o,e,a))})),l}function ur(e,t,n){var r=n.length;if(null==e)return!r;for(e=xe(e);r--;){var i=n[r],a=t[i],l=e[i];if(l===o&&!(i in e)||!a(l))return!1}return!0}function sr(e,t,n){if("function"!=typeof e)throw new Ce(i);return ji((function(){e.apply(o,n)}),t)}function cr(e,t,n,r){var o=-1,i=Ot,a=!0,l=e.length,u=[],s=t.length;if(!l)return u;n&&(t=St(t,Bt(n))),r?(i=xt,a=!1):t.length>=200&&(i=Vt,a=!1,t=new Kn(t));e:for(;++o<l;){var c=e[o],f=null==n?c:n(c);if(c=r||0!==c?c:0,a&&f==f){for(var p=s;p--;)if(t[p]===f)continue e;u.push(c)}else i(t,f,r)||u.push(c)}return u}Fn.templateSettings={escape:Q,evaluate:X,interpolate:Y,variable:"",imports:{_:Fn}},Fn.prototype=Hn.prototype,Fn.prototype.constructor=Fn,Wn.prototype=Un(Hn.prototype),Wn.prototype.constructor=Wn,Bn.prototype=Un(Hn.prototype),Bn.prototype.constructor=Bn,$n.prototype.clear=function(){this.__data__=Pn?Pn(null):{},this.size=0},$n.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},$n.prototype.get=function(e){var t=this.__data__;if(Pn){var n=t[e];return n===a?o:n}return Ie.call(t,e)?t[e]:o},$n.prototype.has=function(e){var t=this.__data__;return Pn?t[e]!==o:Ie.call(t,e)},$n.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Pn&&t===o?a:t,this},Vn.prototype.clear=function(){this.__data__=[],this.size=0},Vn.prototype.delete=function(e){var t=this.__data__,n=tr(t,e);return!(n<0||(n==t.length-1?t.pop():rt.call(t,n,1),--this.size,0))},Vn.prototype.get=function(e){var t=this.__data__,n=tr(t,e);return n<0?o:t[n][1]},Vn.prototype.has=function(e){return tr(this.__data__,e)>-1},Vn.prototype.set=function(e,t){var n=this.__data__,r=tr(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},qn.prototype.clear=function(){this.size=0,this.__data__={hash:new $n,map:new(xn||Vn),string:new $n}},qn.prototype.delete=function(e){var t=ui(this,e).delete(e);return this.size-=t?1:0,t},qn.prototype.get=function(e){return ui(this,e).get(e)},qn.prototype.has=function(e){return ui(this,e).has(e)},qn.prototype.set=function(e,t){var n=ui(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},Kn.prototype.add=Kn.prototype.push=function(e){return this.__data__.set(e,a),this},Kn.prototype.has=function(e){return this.__data__.has(e)},Gn.prototype.clear=function(){this.__data__=new Vn,this.size=0},Gn.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Gn.prototype.get=function(e){return this.__data__.get(e)},Gn.prototype.has=function(e){return this.__data__.has(e)},Gn.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Vn){var r=n.__data__;if(!xn||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new qn(r)}return n.set(e,t),this.size=n.size,this};var fr=Ro(br),pr=Ro(wr,!0);function dr(e,t){var n=!0;return fr(e,(function(e,r,o){return n=!!t(e,r,o)})),n}function hr(e,t,n){for(var r=-1,i=e.length;++r<i;){var a=e[r],l=t(a);if(null!=l&&(u===o?l==l&&!sl(l):n(l,u)))var u=l,s=a}return s}function vr(e,t){var n=[];return fr(e,(function(e,r,o){t(e,r,o)&&n.push(e)})),n}function gr(e,t,n,r,o){var i=-1,a=e.length;for(n||(n=gi),o||(o=[]);++i<a;){var l=e[i];t>0&&n(l)?t>1?gr(l,t-1,n,r,o):kt(o,l):r||(o[o.length]=l)}return o}var mr=Io(),yr=Io(!0);function br(e,t){return e&&mr(e,t,Rl)}function wr(e,t){return e&&yr(e,t,Rl)}function Er(e,t){return _t(t,(function(t){return Za(e[t])}))}function _r(e,t){for(var n=0,r=(t=yo(t,e)).length;null!=e&&n<r;)e=e[Di(t[n++])];return n&&n==r?e:o}function Or(e,t,n){var r=t(e);return Va(e)?r:kt(r,n(e))}function xr(e){return null==e?e===o?"[object Undefined]":"[object Null]":lt&&lt in xe(e)?function(e){var t=Ie.call(e,lt),n=e[lt];try{e[lt]=o;var r=!0}catch(e){}var i=Me.call(e);return r&&(t?e[lt]=n:delete e[lt]),i}(e):function(e){return Me.call(e)}(e)}function Sr(e,t){return e>t}function kr(e,t){return null!=e&&Ie.call(e,t)}function Cr(e,t){return null!=e&&t in xe(e)}function Pr(e,t,n){for(var i=n?xt:Ot,a=e[0].length,l=e.length,u=l,s=r(l),c=1/0,f=[];u--;){var p=e[u];u&&t&&(p=St(p,Bt(t))),c=yn(p.length,c),s[u]=!n&&(t||a>=120&&p.length>=120)?new Kn(u&&p):o}p=e[0];var d=-1,h=s[0];e:for(;++d<a&&f.length<c;){var v=p[d],g=t?t(v):v;if(v=n||0!==v?v:0,!(h?Vt(h,g):i(f,g,n))){for(u=l;--u;){var m=s[u];if(!(m?Vt(m,g):i(e[u],g,n)))continue e}h&&h.push(g),f.push(v)}}return f}function Tr(e,t,n){var r=null==(e=ki(e,t=yo(t,e)))?e:e[Di(Yi(t))];return null==r?o:mt(r,e,n)}function jr(e){return nl(e)&&xr(e)==v}function Nr(e,t,n,r,i){return e===t||(null==e||null==t||!nl(e)&&!nl(t)?e!=e&&t!=t:function(e,t,n,r,i,a){var l=Va(e),u=Va(t),s=l?g:di(e),c=u?g:di(t),f=(s=s==v?x:s)==x,p=(c=c==v?x:c)==x,d=s==c;if(d&&Qa(e)){if(!Qa(t))return!1;l=!0,f=!1}if(d&&!f)return a||(a=new Gn),l||cl(e)?ei(e,t,n,r,i,a):function(e,t,n,r,o,i,a){switch(n){case R:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case N:return!(e.byteLength!=t.byteLength||!i(new We(e),new We(t)));case m:case y:case O:return Ha(+e,+t);case b:return e.name==t.name&&e.message==t.message;case k:case P:return e==t+"";case _:var l=Jt;case C:var u=1&r;if(l||(l=nn),e.size!=t.size&&!u)return!1;var s=a.get(e);if(s)return s==t;r|=2,a.set(e,t);var c=ei(l(e),l(t),r,o,i,a);return a.delete(e),c;case T:if(zn)return zn.call(e)==zn.call(t)}return!1}(e,t,s,n,r,i,a);if(!(1&n)){var h=f&&Ie.call(e,"__wrapped__"),w=p&&Ie.call(t,"__wrapped__");if(h||w){var E=h?e.value():e,S=w?t.value():t;return a||(a=new Gn),i(E,S,n,r,a)}}return!!d&&(a||(a=new Gn),function(e,t,n,r,i,a){var l=1&n,u=ni(e),s=u.length;if(s!=ni(t).length&&!l)return!1;for(var c=s;c--;){var f=u[c];if(!(l?f in t:Ie.call(t,f)))return!1}var p=a.get(e),d=a.get(t);if(p&&d)return p==t&&d==e;var h=!0;a.set(e,t),a.set(t,e);for(var v=l;++c<s;){var g=e[f=u[c]],m=t[f];if(r)var y=l?r(m,g,f,t,e,a):r(g,m,f,e,t,a);if(!(y===o?g===m||i(g,m,n,r,a):y)){h=!1;break}v||(v="constructor"==f)}if(h&&!v){var b=e.constructor,w=t.constructor;b==w||!("constructor"in e)||!("constructor"in t)||"function"==typeof b&&b instanceof b&&"function"==typeof w&&w instanceof w||(h=!1)}return a.delete(e),a.delete(t),h}(e,t,n,r,i,a))}(e,t,n,r,Nr,i))}function Rr(e,t,n,r){var i=n.length,a=i,l=!r;if(null==e)return!a;for(e=xe(e);i--;){var u=n[i];if(l&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++i<a;){var s=(u=n[i])[0],c=e[s],f=u[1];if(l&&u[2]){if(c===o&&!(s in e))return!1}else{var p=new Gn;if(r)var d=r(c,f,s,e,t,p);if(!(d===o?Nr(f,c,3,r,p):d))return!1}}return!0}function Ir(e){return!(!tl(e)||(t=e,Le&&Le in t))&&(Za(e)?Fe:ve).test(Fi(e));var t}function Ar(e){return"function"==typeof e?e:null==e?ou:"object"==typeof e?Va(e)?Fr(e[0],e[1]):Dr(e):du(e)}function Lr(e){if(!_i(e))return gn(e);var t=[];for(var n in xe(e))Ie.call(e,n)&&"constructor"!=n&&t.push(n);return t}function Mr(e,t){return e<t}function zr(e,t){var n=-1,o=Ka(e)?r(e.length):[];return fr(e,(function(e,r,i){o[++n]=t(e,r,i)})),o}function Dr(e){var t=si(e);return 1==t.length&&t[0][2]?xi(t[0][0],t[0][1]):function(n){return n===e||Rr(n,e,t)}}function Fr(e,t){return bi(e)&&Oi(t)?xi(Di(e),t):function(n){var r=Cl(n,e);return r===o&&r===t?Pl(n,e):Nr(t,r,3)}}function Ur(e,t,n,r,i){e!==t&&mr(t,(function(a,l){if(i||(i=new Gn),tl(a))!function(e,t,n,r,i,a,l){var u=Pi(e,n),s=Pi(t,n),c=l.get(s);if(c)Jn(e,n,c);else{var f=a?a(u,s,n+"",e,t,l):o,p=f===o;if(p){var d=Va(s),h=!d&&Qa(s),v=!d&&!h&&cl(s);f=s,d||h||v?Va(u)?f=u:Ga(u)?f=Po(u):h?(p=!1,f=_o(s,!0)):v?(p=!1,f=xo(s,!0)):f=[]:il(s)||$a(s)?(f=u,$a(u)?f=yl(u):tl(u)&&!Za(u)||(f=vi(s))):p=!1}p&&(l.set(s,f),i(f,s,r,a,l),l.delete(s)),Jn(e,n,f)}}(e,t,l,n,Ur,r,i);else{var u=r?r(Pi(e,l),a,l+"",e,t,i):o;u===o&&(u=a),Jn(e,l,u)}}),Il)}function Hr(e,t){var n=e.length;if(n)return mi(t+=t<0?n:0,n)?e[t]:o}function Wr(e,t,n){t=t.length?St(t,(function(e){return Va(e)?function(t){return _r(t,1===e.length?e[0]:e)}:e})):[ou];var r=-1;t=St(t,Bt(li()));var o=zr(e,(function(e,n,o){var i=St(t,(function(t){return t(e)}));return{criteria:i,index:++r,value:e}}));return function(e,t){var r=e.length;for(e.sort((function(e,t){return function(e,t,n){for(var r=-1,o=e.criteria,i=t.criteria,a=o.length,l=n.length;++r<a;){var u=So(o[r],i[r]);if(u)return r>=l?u:u*("desc"==n[r]?-1:1)}return e.index-t.index}(e,t,n)}));r--;)e[r]=e[r].value;return e}(o)}function Br(e,t,n){for(var r=-1,o=t.length,i={};++r<o;){var a=t[r],l=_r(e,a);n(l,a)&&Yr(i,yo(a,e),l)}return i}function $r(e,t,n,r){var o=r?At:It,i=-1,a=t.length,l=e;for(e===t&&(t=Po(t)),n&&(l=St(e,Bt(n)));++i<a;)for(var u=0,s=t[i],c=n?n(s):s;(u=o(l,c,u,r))>-1;)l!==e&&rt.call(l,u,1),rt.call(e,u,1);return e}function Vr(e,t){for(var n=e?t.length:0,r=n-1;n--;){var o=t[n];if(n==r||o!==i){var i=o;mi(o)?rt.call(e,o,1):so(e,o)}}return e}function qr(e,t){return e+fn(En()*(t-e+1))}function Kr(e,t){var n="";if(!e||t<1||t>f)return n;do{t%2&&(n+=e),(t=fn(t/2))&&(e+=e)}while(t);return n}function Gr(e,t){return Ni(Si(e,t,ou),e+"")}function Qr(e){return Xn(Hl(e))}function Xr(e,t){var n=Hl(e);return Ai(n,ar(t,0,n.length))}function Yr(e,t,n,r){if(!tl(e))return e;for(var i=-1,a=(t=yo(t,e)).length,l=a-1,u=e;null!=u&&++i<a;){var s=Di(t[i]),c=n;if("__proto__"===s||"constructor"===s||"prototype"===s)return e;if(i!=l){var f=u[s];(c=r?r(f,s,u):o)===o&&(c=tl(f)?f:mi(t[i+1])?[]:{})}er(u,s,c),u=u[s]}return e}var Zr=Tn?function(e,t){return Tn.set(e,t),e}:ou,Jr=st?function(e,t){return st(e,"toString",{configurable:!0,enumerable:!1,value:tu(t),writable:!0})}:ou;function eo(e){return Ai(Hl(e))}function to(e,t,n){var o=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=r(i);++o<i;)a[o]=e[o+t];return a}function no(e,t){var n;return fr(e,(function(e,r,o){return!(n=t(e,r,o))})),!!n}function ro(e,t,n){var r=0,o=null==e?r:e.length;if("number"==typeof t&&t==t&&o<=2147483647){for(;r<o;){var i=r+o>>>1,a=e[i];null!==a&&!sl(a)&&(n?a<=t:a<t)?r=i+1:o=i}return o}return oo(e,t,ou,n)}function oo(e,t,n,r){var i=0,a=null==e?0:e.length;if(0===a)return 0;for(var l=(t=n(t))!=t,u=null===t,s=sl(t),c=t===o;i<a;){var f=fn((i+a)/2),p=n(e[f]),d=p!==o,h=null===p,v=p==p,g=sl(p);if(l)var m=r||v;else m=c?v&&(r||d):u?v&&d&&(r||!h):s?v&&d&&!h&&(r||!g):!h&&!g&&(r?p<=t:p<t);m?i=f+1:a=f}return yn(a,4294967294)}function io(e,t){for(var n=-1,r=e.length,o=0,i=[];++n<r;){var a=e[n],l=t?t(a):a;if(!n||!Ha(l,u)){var u=l;i[o++]=0===a?0:a}}return i}function ao(e){return"number"==typeof e?e:sl(e)?p:+e}function lo(e){if("string"==typeof e)return e;if(Va(e))return St(e,lo)+"";if(sl(e))return Dn?Dn.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function uo(e,t,n){var r=-1,o=Ot,i=e.length,a=!0,l=[],u=l;if(n)a=!1,o=xt;else if(i>=200){var s=t?null:Go(e);if(s)return nn(s);a=!1,o=Vt,u=new Kn}else u=t?[]:l;e:for(;++r<i;){var c=e[r],f=t?t(c):c;if(c=n||0!==c?c:0,a&&f==f){for(var p=u.length;p--;)if(u[p]===f)continue e;t&&u.push(f),l.push(c)}else o(u,f,n)||(u!==l&&u.push(f),l.push(c))}return l}function so(e,t){return null==(e=ki(e,t=yo(t,e)))||delete e[Di(Yi(t))]}function co(e,t,n,r){return Yr(e,t,n(_r(e,t)),r)}function fo(e,t,n,r){for(var o=e.length,i=r?o:-1;(r?i--:++i<o)&&t(e[i],i,e););return n?to(e,r?0:i,r?i+1:o):to(e,r?i+1:0,r?o:i)}function po(e,t){var n=e;return n instanceof Bn&&(n=n.value()),Ct(t,(function(e,t){return t.func.apply(t.thisArg,kt([e],t.args))}),n)}function ho(e,t,n){var o=e.length;if(o<2)return o?uo(e[0]):[];for(var i=-1,a=r(o);++i<o;)for(var l=e[i],u=-1;++u<o;)u!=i&&(a[i]=cr(a[i]||l,e[u],t,n));return uo(gr(a,1),t,n)}function vo(e,t,n){for(var r=-1,i=e.length,a=t.length,l={};++r<i;){var u=r<a?t[r]:o;n(l,e[r],u)}return l}function go(e){return Ga(e)?e:[]}function mo(e){return"function"==typeof e?e:ou}function yo(e,t){return Va(e)?e:bi(e,t)?[e]:zi(bl(e))}var bo=Gr;function wo(e,t,n){var r=e.length;return n=n===o?r:n,!t&&n>=r?e:to(e,t,n)}var Eo=ct||function(e){return it.clearTimeout(e)};function _o(e,t){if(t)return e.slice();var n=e.length,r=Be?Be(n):new e.constructor(n);return e.copy(r),r}function Oo(e){var t=new e.constructor(e.byteLength);return new We(t).set(new We(e)),t}function xo(e,t){var n=t?Oo(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function So(e,t){if(e!==t){var n=e!==o,r=null===e,i=e==e,a=sl(e),l=t!==o,u=null===t,s=t==t,c=sl(t);if(!u&&!c&&!a&&e>t||a&&l&&s&&!u&&!c||r&&l&&s||!n&&s||!i)return 1;if(!r&&!a&&!c&&e<t||c&&n&&i&&!r&&!a||u&&n&&i||!l&&i||!s)return-1}return 0}function ko(e,t,n,o){for(var i=-1,a=e.length,l=n.length,u=-1,s=t.length,c=mn(a-l,0),f=r(s+c),p=!o;++u<s;)f[u]=t[u];for(;++i<l;)(p||i<a)&&(f[n[i]]=e[i]);for(;c--;)f[u++]=e[i++];return f}function Co(e,t,n,o){for(var i=-1,a=e.length,l=-1,u=n.length,s=-1,c=t.length,f=mn(a-u,0),p=r(f+c),d=!o;++i<f;)p[i]=e[i];for(var h=i;++s<c;)p[h+s]=t[s];for(;++l<u;)(d||i<a)&&(p[h+n[l]]=e[i++]);return p}function Po(e,t){var n=-1,o=e.length;for(t||(t=r(o));++n<o;)t[n]=e[n];return t}function To(e,t,n,r){var i=!n;n||(n={});for(var a=-1,l=t.length;++a<l;){var u=t[a],s=r?r(n[u],e[u],u,n,e):o;s===o&&(s=e[u]),i?or(n,u,s):er(n,u,s)}return n}function jo(e,t){return function(n,r){var o=Va(n)?yt:nr,i=t?t():{};return o(n,e,li(r,2),i)}}function No(e){return Gr((function(t,n){var r=-1,i=n.length,a=i>1?n[i-1]:o,l=i>2?n[2]:o;for(a=e.length>3&&"function"==typeof a?(i--,a):o,l&&yi(n[0],n[1],l)&&(a=i<3?o:a,i=1),t=xe(t);++r<i;){var u=n[r];u&&e(t,u,r,a)}return t}))}function Ro(e,t){return function(n,r){if(null==n)return n;if(!Ka(n))return e(n,r);for(var o=n.length,i=t?o:-1,a=xe(n);(t?i--:++i<o)&&!1!==r(a[i],i,a););return n}}function Io(e){return function(t,n,r){for(var o=-1,i=xe(t),a=r(t),l=a.length;l--;){var u=a[e?l:++o];if(!1===n(i[u],u,i))break}return t}}function Ao(e){return function(t){var n=Zt(t=bl(t))?an(t):o,r=n?n[0]:t.charAt(0),i=n?wo(n,1).join(""):t.slice(1);return r[e]()+i}}function Lo(e){return function(t){return Ct(Zl($l(t).replace($e,"")),e,"")}}function Mo(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n=Un(e.prototype),r=e.apply(n,t);return tl(r)?r:n}}function zo(e){return function(t,n,r){var i=xe(t);if(!Ka(t)){var a=li(n,3);t=Rl(t),n=function(e){return a(i[e],e,i)}}var l=e(t,n,r);return l>-1?i[a?t[l]:l]:o}}function Do(e){return ti((function(t){var n=t.length,r=n,a=Wn.prototype.thru;for(e&&t.reverse();r--;){var l=t[r];if("function"!=typeof l)throw new Ce(i);if(a&&!u&&"wrapper"==ii(l))var u=new Wn([],!0)}for(r=u?r:n;++r<n;){var s=ii(l=t[r]),c="wrapper"==s?oi(l):o;u=c&&wi(c[0])&&424==c[1]&&!c[4].length&&1==c[9]?u[ii(c[0])].apply(u,c[3]):1==l.length&&wi(l)?u[s]():u.thru(l)}return function(){var e=arguments,r=e[0];if(u&&1==e.length&&Va(r))return u.plant(r).value();for(var o=0,i=n?t[o].apply(this,e):r;++o<n;)i=t[o].call(this,i);return i}}))}function Fo(e,t,n,i,a,l,u,c,f,p){var d=t&s,h=1&t,v=2&t,g=24&t,m=512&t,y=v?o:Mo(e);return function o(){for(var s=arguments.length,b=r(s),w=s;w--;)b[w]=arguments[w];if(g)var E=ai(o),_=Gt(b,E);if(i&&(b=ko(b,i,a,g)),l&&(b=Co(b,l,u,g)),s-=_,g&&s<p){var O=tn(b,E);return qo(e,t,Fo,o.placeholder,n,b,O,c,f,p-s)}var x=h?n:this,S=v?x[e]:e;return s=b.length,c?b=Ci(b,c):m&&s>1&&b.reverse(),d&&f<s&&(b.length=f),this&&this!==it&&this instanceof o&&(S=y||Mo(S)),S.apply(x,b)}}function Uo(e,t){return function(n,r){return function(e,t,n,r){return br(e,(function(e,o,i){t(r,n(e),o,i)})),r}(n,e,t(r),{})}}function Ho(e,t){return function(n,r){var i;if(n===o&&r===o)return t;if(n!==o&&(i=n),r!==o){if(i===o)return r;"string"==typeof n||"string"==typeof r?(n=lo(n),r=lo(r)):(n=ao(n),r=ao(r)),i=e(n,r)}return i}}function Wo(e){return ti((function(t){return t=St(t,Bt(li())),Gr((function(n){var r=this;return e(t,(function(e){return mt(e,r,n)}))}))}))}function Bo(e,t){var n=(t=t===o?" ":lo(t)).length;if(n<2)return n?Kr(t,e):t;var r=Kr(t,cn(e/on(t)));return Zt(t)?wo(an(r),0,e).join(""):r.slice(0,e)}function $o(e){return function(t,n,i){return i&&"number"!=typeof i&&yi(t,n,i)&&(n=i=o),t=hl(t),n===o?(n=t,t=0):n=hl(n),function(e,t,n,o){for(var i=-1,a=mn(cn((t-e)/(n||1)),0),l=r(a);a--;)l[o?a:++i]=e,e+=n;return l}(t,n,i=i===o?t<n?1:-1:hl(i),e)}}function Vo(e){return function(t,n){return"string"==typeof t&&"string"==typeof n||(t=ml(t),n=ml(n)),e(t,n)}}function qo(e,t,n,r,i,a,l,s,c,f){var p=8&t;t|=p?u:64,4&(t&=~(p?64:u))||(t&=-4);var d=[e,t,i,p?a:o,p?l:o,p?o:a,p?o:l,s,c,f],h=n.apply(o,d);return wi(e)&&Ti(h,d),h.placeholder=r,Ri(h,e,t)}function Ko(e){var t=Oe[e];return function(e,n){if(e=ml(e),(n=null==n?0:yn(vl(n),292))&&hn(e)){var r=(bl(e)+"e").split("e");return+((r=(bl(t(r[0]+"e"+(+r[1]+n)))+"e").split("e"))[0]+"e"+(+r[1]-n))}return t(e)}}var Go=kn&&1/nn(new kn([,-0]))[1]==c?function(e){return new kn(e)}:su;function Qo(e){return function(t){var n=di(t);return n==_?Jt(t):n==C?rn(t):function(e,t){return St(t,(function(t){return[t,e[t]]}))}(t,e(t))}}function Xo(e,t,n,a,c,f,p,d){var h=2&t;if(!h&&"function"!=typeof e)throw new Ce(i);var v=a?a.length:0;if(v||(t&=-97,a=c=o),p=p===o?p:mn(vl(p),0),d=d===o?d:vl(d),v-=c?c.length:0,64&t){var g=a,m=c;a=c=o}var y=h?o:oi(e),b=[e,t,n,a,c,g,m,f,p,d];if(y&&function(e,t){var n=e[1],r=t[1],o=n|r,i=o<131,a=r==s&&8==n||r==s&&256==n&&e[7].length<=t[8]||384==r&&t[7].length<=t[8]&&8==n;if(!i&&!a)return e;1&r&&(e[2]=t[2],o|=1&n?0:4);var u=t[3];if(u){var c=e[3];e[3]=c?ko(c,u,t[4]):u,e[4]=c?tn(e[3],l):t[4]}(u=t[5])&&(c=e[5],e[5]=c?Co(c,u,t[6]):u,e[6]=c?tn(e[5],l):t[6]),(u=t[7])&&(e[7]=u),r&s&&(e[8]=null==e[8]?t[8]:yn(e[8],t[8])),null==e[9]&&(e[9]=t[9]),e[0]=t[0],e[1]=o}(b,y),e=b[0],t=b[1],n=b[2],a=b[3],c=b[4],!(d=b[9]=b[9]===o?h?0:e.length:mn(b[9]-v,0))&&24&t&&(t&=-25),t&&1!=t)w=8==t||16==t?function(e,t,n){var i=Mo(e);return function a(){for(var l=arguments.length,u=r(l),s=l,c=ai(a);s--;)u[s]=arguments[s];var f=l<3&&u[0]!==c&&u[l-1]!==c?[]:tn(u,c);return(l-=f.length)<n?qo(e,t,Fo,a.placeholder,o,u,f,o,o,n-l):mt(this&&this!==it&&this instanceof a?i:e,this,u)}}(e,t,d):t!=u&&33!=t||c.length?Fo.apply(o,b):function(e,t,n,o){var i=1&t,a=Mo(e);return function t(){for(var l=-1,u=arguments.length,s=-1,c=o.length,f=r(c+u),p=this&&this!==it&&this instanceof t?a:e;++s<c;)f[s]=o[s];for(;u--;)f[s++]=arguments[++l];return mt(p,i?n:this,f)}}(e,t,n,a);else var w=function(e,t,n){var r=1&t,o=Mo(e);return function t(){return(this&&this!==it&&this instanceof t?o:e).apply(r?n:this,arguments)}}(e,t,n);return Ri((y?Zr:Ti)(w,b),e,t)}function Yo(e,t,n,r){return e===o||Ha(e,je[n])&&!Ie.call(r,n)?t:e}function Zo(e,t,n,r,i,a){return tl(e)&&tl(t)&&(a.set(t,e),Ur(e,t,o,Zo,a),a.delete(t)),e}function Jo(e){return il(e)?o:e}function ei(e,t,n,r,i,a){var l=1&n,u=e.length,s=t.length;if(u!=s&&!(l&&s>u))return!1;var c=a.get(e),f=a.get(t);if(c&&f)return c==t&&f==e;var p=-1,d=!0,h=2&n?new Kn:o;for(a.set(e,t),a.set(t,e);++p<u;){var v=e[p],g=t[p];if(r)var m=l?r(g,v,p,t,e,a):r(v,g,p,e,t,a);if(m!==o){if(m)continue;d=!1;break}if(h){if(!Tt(t,(function(e,t){if(!Vt(h,t)&&(v===e||i(v,e,n,r,a)))return h.push(t)}))){d=!1;break}}else if(v!==g&&!i(v,g,n,r,a)){d=!1;break}}return a.delete(e),a.delete(t),d}function ti(e){return Ni(Si(e,o,qi),e+"")}function ni(e){return Or(e,Rl,fi)}function ri(e){return Or(e,Il,pi)}var oi=Tn?function(e){return Tn.get(e)}:su;function ii(e){for(var t=e.name+"",n=jn[t],r=Ie.call(jn,t)?n.length:0;r--;){var o=n[r],i=o.func;if(null==i||i==e)return o.name}return t}function ai(e){return(Ie.call(Fn,"placeholder")?Fn:e).placeholder}function li(){var e=Fn.iteratee||iu;return e=e===iu?Ar:e,arguments.length?e(arguments[0],arguments[1]):e}function ui(e,t){var n,r,o=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function si(e){for(var t=Rl(e),n=t.length;n--;){var r=t[n],o=e[r];t[n]=[r,o,Oi(o)]}return t}function ci(e,t){var n=function(e,t){return null==e?o:e[t]}(e,t);return Ir(n)?n:o}var fi=pn?function(e){return null==e?[]:(e=xe(e),_t(pn(e),(function(t){return et.call(e,t)})))}:gu,pi=pn?function(e){for(var t=[];e;)kt(t,fi(e)),e=qe(e);return t}:gu,di=xr;function hi(e,t,n){for(var r=-1,o=(t=yo(t,e)).length,i=!1;++r<o;){var a=Di(t[r]);if(!(i=null!=e&&n(e,a)))break;e=e[a]}return i||++r!=o?i:!!(o=null==e?0:e.length)&&el(o)&&mi(a,o)&&(Va(e)||$a(e))}function vi(e){return"function"!=typeof e.constructor||_i(e)?{}:Un(qe(e))}function gi(e){return Va(e)||$a(e)||!!(ot&&e&&e[ot])}function mi(e,t){var n=typeof e;return!!(t=null==t?f:t)&&("number"==n||"symbol"!=n&&me.test(e))&&e>-1&&e%1==0&&e<t}function yi(e,t,n){if(!tl(n))return!1;var r=typeof t;return!!("number"==r?Ka(n)&&mi(t,n.length):"string"==r&&t in n)&&Ha(n[t],e)}function bi(e,t){if(Va(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!sl(e))||J.test(e)||!Z.test(e)||null!=t&&e in xe(t)}function wi(e){var t=ii(e),n=Fn[t];if("function"!=typeof n||!(t in Bn.prototype))return!1;if(e===n)return!0;var r=oi(n);return!!r&&e===r[0]}(On&&di(new On(new ArrayBuffer(1)))!=R||xn&&di(new xn)!=_||Sn&&di(Sn.resolve())!=S||kn&&di(new kn)!=C||Cn&&di(new Cn)!=j)&&(di=function(e){var t=xr(e),n=t==x?e.constructor:o,r=n?Fi(n):"";if(r)switch(r){case Nn:return R;case Rn:return _;case In:return S;case An:return C;case Ln:return j}return t});var Ei=Ne?Za:mu;function _i(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||je)}function Oi(e){return e==e&&!tl(e)}function xi(e,t){return function(n){return null!=n&&n[e]===t&&(t!==o||e in xe(n))}}function Si(e,t,n){return t=mn(t===o?e.length-1:t,0),function(){for(var o=arguments,i=-1,a=mn(o.length-t,0),l=r(a);++i<a;)l[i]=o[t+i];i=-1;for(var u=r(t+1);++i<t;)u[i]=o[i];return u[t]=n(l),mt(e,this,u)}}function ki(e,t){return t.length<2?e:_r(e,to(t,0,-1))}function Ci(e,t){for(var n=e.length,r=yn(t.length,n),i=Po(e);r--;){var a=t[r];e[r]=mi(a,n)?i[a]:o}return e}function Pi(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}var Ti=Ii(Zr),ji=Dt||function(e,t){return it.setTimeout(e,t)},Ni=Ii(Jr);function Ri(e,t,n){var r=t+"";return Ni(e,function(e,t){var n=t.length;if(!n)return e;var r=n-1;return t[r]=(n>1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(ie,"{\n/* [wrapped with "+t+"] */\n")}(r,function(e,t){return bt(h,(function(n){var r="_."+n[0];t&n[1]&&!Ot(e,r)&&e.push(r)})),e.sort()}(function(e){var t=e.match(ae);return t?t[1].split(le):[]}(r),n)))}function Ii(e){var t=0,n=0;return function(){var r=bn(),i=16-(r-n);if(n=r,i>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(o,arguments)}}function Ai(e,t){var n=-1,r=e.length,i=r-1;for(t=t===o?r:t;++n<t;){var a=qr(n,i),l=e[a];e[a]=e[n],e[n]=l}return e.length=t,e}var Li,Mi,zi=(Li=La((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(ee,(function(e,n,r,o){t.push(r?o.replace(ce,"$1"):n||e)})),t}),(function(e){return 500===Mi.size&&Mi.clear(),e})),Mi=Li.cache,Li);function Di(e){if("string"==typeof e||sl(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function Fi(e){if(null!=e){try{return Re.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function Ui(e){if(e instanceof Bn)return e.clone();var t=new Wn(e.__wrapped__,e.__chain__);return t.__actions__=Po(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}var Hi=Gr((function(e,t){return Ga(e)?cr(e,gr(t,1,Ga,!0)):[]})),Wi=Gr((function(e,t){var n=Yi(t);return Ga(n)&&(n=o),Ga(e)?cr(e,gr(t,1,Ga,!0),li(n,2)):[]})),Bi=Gr((function(e,t){var n=Yi(t);return Ga(n)&&(n=o),Ga(e)?cr(e,gr(t,1,Ga,!0),o,n):[]}));function $i(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var o=null==n?0:vl(n);return o<0&&(o=mn(r+o,0)),Rt(e,li(t,3),o)}function Vi(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=r-1;return n!==o&&(i=vl(n),i=n<0?mn(r+i,0):yn(i,r-1)),Rt(e,li(t,3),i,!0)}function qi(e){return null!=e&&e.length?gr(e,1):[]}function Ki(e){return e&&e.length?e[0]:o}var Gi=Gr((function(e){var t=St(e,go);return t.length&&t[0]===e[0]?Pr(t):[]})),Qi=Gr((function(e){var t=Yi(e),n=St(e,go);return t===Yi(n)?t=o:n.pop(),n.length&&n[0]===e[0]?Pr(n,li(t,2)):[]})),Xi=Gr((function(e){var t=Yi(e),n=St(e,go);return(t="function"==typeof t?t:o)&&n.pop(),n.length&&n[0]===e[0]?Pr(n,o,t):[]}));function Yi(e){var t=null==e?0:e.length;return t?e[t-1]:o}var Zi=Gr(Ji);function Ji(e,t){return e&&e.length&&t&&t.length?$r(e,t):e}var ea=ti((function(e,t){var n=null==e?0:e.length,r=ir(e,t);return Vr(e,St(t,(function(e){return mi(e,n)?+e:e})).sort(So)),r}));function ta(e){return null==e?e:_n.call(e)}var na=Gr((function(e){return uo(gr(e,1,Ga,!0))})),ra=Gr((function(e){var t=Yi(e);return Ga(t)&&(t=o),uo(gr(e,1,Ga,!0),li(t,2))})),oa=Gr((function(e){var t=Yi(e);return t="function"==typeof t?t:o,uo(gr(e,1,Ga,!0),o,t)}));function ia(e){if(!e||!e.length)return[];var t=0;return e=_t(e,(function(e){if(Ga(e))return t=mn(e.length,t),!0})),Ht(t,(function(t){return St(e,zt(t))}))}function aa(e,t){if(!e||!e.length)return[];var n=ia(e);return null==t?n:St(n,(function(e){return mt(t,o,e)}))}var la=Gr((function(e,t){return Ga(e)?cr(e,t):[]})),ua=Gr((function(e){return ho(_t(e,Ga))})),sa=Gr((function(e){var t=Yi(e);return Ga(t)&&(t=o),ho(_t(e,Ga),li(t,2))})),ca=Gr((function(e){var t=Yi(e);return t="function"==typeof t?t:o,ho(_t(e,Ga),o,t)})),fa=Gr(ia),pa=Gr((function(e){var t=e.length,n=t>1?e[t-1]:o;return n="function"==typeof n?(e.pop(),n):o,aa(e,n)}));function da(e){var t=Fn(e);return t.__chain__=!0,t}function ha(e,t){return t(e)}var va=ti((function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,i=function(t){return ir(t,e)};return!(t>1||this.__actions__.length)&&r instanceof Bn&&mi(n)?((r=r.slice(n,+n+(t?1:0))).__actions__.push({func:ha,args:[i],thisArg:o}),new Wn(r,this.__chain__).thru((function(e){return t&&!e.length&&e.push(o),e}))):this.thru(i)})),ga=jo((function(e,t,n){Ie.call(e,n)?++e[n]:or(e,n,1)})),ma=zo($i),ya=zo(Vi);function ba(e,t){return(Va(e)?bt:fr)(e,li(t,3))}function wa(e,t){return(Va(e)?wt:pr)(e,li(t,3))}var Ea=jo((function(e,t,n){Ie.call(e,n)?e[n].push(t):or(e,n,[t])})),_a=Gr((function(e,t,n){var o=-1,i="function"==typeof t,a=Ka(e)?r(e.length):[];return fr(e,(function(e){a[++o]=i?mt(t,e,n):Tr(e,t,n)})),a})),Oa=jo((function(e,t,n){or(e,n,t)}));function xa(e,t){return(Va(e)?St:zr)(e,li(t,3))}var Sa=jo((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]})),ka=Gr((function(e,t){if(null==e)return[];var n=t.length;return n>1&&yi(e,t[0],t[1])?t=[]:n>2&&yi(t[0],t[1],t[2])&&(t=[t[0]]),Wr(e,gr(t,1),[])})),Ca=jt||function(){return it.Date.now()};function Pa(e,t,n){return t=n?o:t,t=e&&null==t?e.length:t,Xo(e,s,o,o,o,o,t)}function Ta(e,t){var n;if("function"!=typeof t)throw new Ce(i);return e=vl(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=o),n}}var ja=Gr((function(e,t,n){var r=1;if(n.length){var o=tn(n,ai(ja));r|=u}return Xo(e,r,t,n,o)})),Na=Gr((function(e,t,n){var r=3;if(n.length){var o=tn(n,ai(Na));r|=u}return Xo(t,r,e,n,o)}));function Ra(e,t,n){var r,a,l,u,s,c,f=0,p=!1,d=!1,h=!0;if("function"!=typeof e)throw new Ce(i);function v(t){var n=r,i=a;return r=a=o,f=t,u=e.apply(i,n)}function g(e){return f=e,s=ji(y,t),p?v(e):u}function m(e){var n=e-c;return c===o||n>=t||n<0||d&&e-f>=l}function y(){var e=Ca();if(m(e))return b(e);s=ji(y,function(e){var n=t-(e-c);return d?yn(n,l-(e-f)):n}(e))}function b(e){return s=o,h&&r?v(e):(r=a=o,u)}function w(){var e=Ca(),n=m(e);if(r=arguments,a=this,c=e,n){if(s===o)return g(c);if(d)return Eo(s),s=ji(y,t),v(c)}return s===o&&(s=ji(y,t)),u}return t=ml(t)||0,tl(n)&&(p=!!n.leading,l=(d="maxWait"in n)?mn(ml(n.maxWait)||0,t):l,h="trailing"in n?!!n.trailing:h),w.cancel=function(){s!==o&&Eo(s),f=0,r=c=a=s=o},w.flush=function(){return s===o?u:b(Ca())},w}var Ia=Gr((function(e,t){return sr(e,1,t)})),Aa=Gr((function(e,t,n){return sr(e,ml(t)||0,n)}));function La(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new Ce(i);var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var a=e.apply(this,r);return n.cache=i.set(o,a)||i,a};return n.cache=new(La.Cache||qn),n}function Ma(e){if("function"!=typeof e)throw new Ce(i);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}La.Cache=qn;var za=bo((function(e,t){var n=(t=1==t.length&&Va(t[0])?St(t[0],Bt(li())):St(gr(t,1),Bt(li()))).length;return Gr((function(r){for(var o=-1,i=yn(r.length,n);++o<i;)r[o]=t[o].call(this,r[o]);return mt(e,this,r)}))})),Da=Gr((function(e,t){var n=tn(t,ai(Da));return Xo(e,u,o,t,n)})),Fa=Gr((function(e,t){var n=tn(t,ai(Fa));return Xo(e,64,o,t,n)})),Ua=ti((function(e,t){return Xo(e,256,o,o,o,t)}));function Ha(e,t){return e===t||e!=e&&t!=t}var Wa=Vo(Sr),Ba=Vo((function(e,t){return e>=t})),$a=jr(function(){return arguments}())?jr:function(e){return nl(e)&&Ie.call(e,"callee")&&!et.call(e,"callee")},Va=r.isArray,qa=ft?Bt(ft):function(e){return nl(e)&&xr(e)==N};function Ka(e){return null!=e&&el(e.length)&&!Za(e)}function Ga(e){return nl(e)&&Ka(e)}var Qa=dn||mu,Xa=pt?Bt(pt):function(e){return nl(e)&&xr(e)==y};function Ya(e){if(!nl(e))return!1;var t=xr(e);return t==b||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!il(e)}function Za(e){if(!tl(e))return!1;var t=xr(e);return t==w||t==E||"[object AsyncFunction]"==t||"[object Proxy]"==t}function Ja(e){return"number"==typeof e&&e==vl(e)}function el(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=f}function tl(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function nl(e){return null!=e&&"object"==typeof e}var rl=dt?Bt(dt):function(e){return nl(e)&&di(e)==_};function ol(e){return"number"==typeof e||nl(e)&&xr(e)==O}function il(e){if(!nl(e)||xr(e)!=x)return!1;var t=qe(e);if(null===t)return!0;var n=Ie.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&Re.call(n)==ze}var al=ht?Bt(ht):function(e){return nl(e)&&xr(e)==k},ll=vt?Bt(vt):function(e){return nl(e)&&di(e)==C};function ul(e){return"string"==typeof e||!Va(e)&&nl(e)&&xr(e)==P}function sl(e){return"symbol"==typeof e||nl(e)&&xr(e)==T}var cl=gt?Bt(gt):function(e){return nl(e)&&el(e.length)&&!!Ze[xr(e)]},fl=Vo(Mr),pl=Vo((function(e,t){return e<=t}));function dl(e){if(!e)return[];if(Ka(e))return ul(e)?an(e):Po(e);if(at&&e[at])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[at]());var t=di(e);return(t==_?Jt:t==C?nn:Hl)(e)}function hl(e){return e?(e=ml(e))===c||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function vl(e){var t=hl(e),n=t%1;return t==t?n?t-n:t:0}function gl(e){return e?ar(vl(e),0,d):0}function ml(e){if("number"==typeof e)return e;if(sl(e))return p;if(tl(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=tl(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Wt(e);var n=he.test(e);return n||ge.test(e)?nt(e.slice(2),n?2:8):de.test(e)?p:+e}function yl(e){return To(e,Il(e))}function bl(e){return null==e?"":lo(e)}var wl=No((function(e,t){if(_i(t)||Ka(t))To(t,Rl(t),e);else for(var n in t)Ie.call(t,n)&&er(e,n,t[n])})),El=No((function(e,t){To(t,Il(t),e)})),_l=No((function(e,t,n,r){To(t,Il(t),e,r)})),Ol=No((function(e,t,n,r){To(t,Rl(t),e,r)})),xl=ti(ir),Sl=Gr((function(e,t){e=xe(e);var n=-1,r=t.length,i=r>2?t[2]:o;for(i&&yi(t[0],t[1],i)&&(r=1);++n<r;)for(var a=t[n],l=Il(a),u=-1,s=l.length;++u<s;){var c=l[u],f=e[c];(f===o||Ha(f,je[c])&&!Ie.call(e,c))&&(e[c]=a[c])}return e})),kl=Gr((function(e){return e.push(o,Zo),mt(Ll,o,e)}));function Cl(e,t,n){var r=null==e?o:_r(e,t);return r===o?n:r}function Pl(e,t){return null!=e&&hi(e,t,Cr)}var Tl=Uo((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=Me.call(t)),e[t]=n}),tu(ou)),jl=Uo((function(e,t,n){null!=t&&"function"!=typeof t.toString&&(t=Me.call(t)),Ie.call(e,t)?e[t].push(n):e[t]=[n]}),li),Nl=Gr(Tr);function Rl(e){return Ka(e)?Qn(e):Lr(e)}function Il(e){return Ka(e)?Qn(e,!0):function(e){if(!tl(e))return function(e){var t=[];if(null!=e)for(var n in xe(e))t.push(n);return t}(e);var t=_i(e),n=[];for(var r in e)("constructor"!=r||!t&&Ie.call(e,r))&&n.push(r);return n}(e)}var Al=No((function(e,t,n){Ur(e,t,n)})),Ll=No((function(e,t,n,r){Ur(e,t,n,r)})),Ml=ti((function(e,t){var n={};if(null==e)return n;var r=!1;t=St(t,(function(t){return t=yo(t,e),r||(r=t.length>1),t})),To(e,ri(e),n),r&&(n=lr(n,7,Jo));for(var o=t.length;o--;)so(n,t[o]);return n})),zl=ti((function(e,t){return null==e?{}:function(e,t){return Br(e,t,(function(t,n){return Pl(e,n)}))}(e,t)}));function Dl(e,t){if(null==e)return{};var n=St(ri(e),(function(e){return[e]}));return t=li(t),Br(e,n,(function(e,n){return t(e,n[0])}))}var Fl=Qo(Rl),Ul=Qo(Il);function Hl(e){return null==e?[]:$t(e,Rl(e))}var Wl=Lo((function(e,t,n){return t=t.toLowerCase(),e+(n?Bl(t):t)}));function Bl(e){return Yl(bl(e).toLowerCase())}function $l(e){return(e=bl(e))&&e.replace(ye,Qt).replace(Ve,"")}var Vl=Lo((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),ql=Lo((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),Kl=Ao("toLowerCase"),Gl=Lo((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()})),Ql=Lo((function(e,t,n){return e+(n?" ":"")+Yl(t)})),Xl=Lo((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),Yl=Ao("toUpperCase");function Zl(e,t,n){return e=bl(e),(t=n?o:t)===o?function(e){return Qe.test(e)}(e)?function(e){return e.match(Ke)||[]}(e):function(e){return e.match(ue)||[]}(e):e.match(t)||[]}var Jl=Gr((function(e,t){try{return mt(e,o,t)}catch(e){return Ya(e)?e:new Ee(e)}})),eu=ti((function(e,t){return bt(t,(function(t){t=Di(t),or(e,t,ja(e[t],e))})),e}));function tu(e){return function(){return e}}var nu=Do(),ru=Do(!0);function ou(e){return e}function iu(e){return Ar("function"==typeof e?e:lr(e,1))}var au=Gr((function(e,t){return function(n){return Tr(n,e,t)}})),lu=Gr((function(e,t){return function(n){return Tr(e,n,t)}}));function uu(e,t,n){var r=Rl(t),o=Er(t,r);null!=n||tl(t)&&(o.length||!r.length)||(n=t,t=e,e=this,o=Er(t,Rl(t)));var i=!(tl(n)&&"chain"in n&&!n.chain),a=Za(e);return bt(o,(function(n){var r=t[n];e[n]=r,a&&(e.prototype[n]=function(){var t=this.__chain__;if(i||t){var n=e(this.__wrapped__),o=n.__actions__=Po(this.__actions__);return o.push({func:r,args:arguments,thisArg:e}),n.__chain__=t,n}return r.apply(e,kt([this.value()],arguments))})})),e}function su(){}var cu=Wo(St),fu=Wo(Et),pu=Wo(Tt);function du(e){return bi(e)?zt(Di(e)):function(e){return function(t){return _r(t,e)}}(e)}var hu=$o(),vu=$o(!0);function gu(){return[]}function mu(){return!1}var yu,bu=Ho((function(e,t){return e+t}),0),wu=Ko("ceil"),Eu=Ho((function(e,t){return e/t}),1),_u=Ko("floor"),Ou=Ho((function(e,t){return e*t}),1),xu=Ko("round"),Su=Ho((function(e,t){return e-t}),0);return Fn.after=function(e,t){if("function"!=typeof t)throw new Ce(i);return e=vl(e),function(){if(--e<1)return t.apply(this,arguments)}},Fn.ary=Pa,Fn.assign=wl,Fn.assignIn=El,Fn.assignInWith=_l,Fn.assignWith=Ol,Fn.at=xl,Fn.before=Ta,Fn.bind=ja,Fn.bindAll=eu,Fn.bindKey=Na,Fn.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Va(e)?e:[e]},Fn.chain=da,Fn.chunk=function(e,t,n){t=(n?yi(e,t,n):t===o)?1:mn(vl(t),0);var i=null==e?0:e.length;if(!i||t<1)return[];for(var a=0,l=0,u=r(cn(i/t));a<i;)u[l++]=to(e,a,a+=t);return u},Fn.compact=function(e){for(var t=-1,n=null==e?0:e.length,r=0,o=[];++t<n;){var i=e[t];i&&(o[r++]=i)}return o},Fn.concat=function(){var e=arguments.length;if(!e)return[];for(var t=r(e-1),n=arguments[0],o=e;o--;)t[o-1]=arguments[o];return kt(Va(n)?Po(n):[n],gr(t,1))},Fn.cond=function(e){var t=null==e?0:e.length,n=li();return e=t?St(e,(function(e){if("function"!=typeof e[1])throw new Ce(i);return[n(e[0]),e[1]]})):[],Gr((function(n){for(var r=-1;++r<t;){var o=e[r];if(mt(o[0],this,n))return mt(o[1],this,n)}}))},Fn.conforms=function(e){return function(e){var t=Rl(e);return function(n){return ur(n,e,t)}}(lr(e,1))},Fn.constant=tu,Fn.countBy=ga,Fn.create=function(e,t){var n=Un(e);return null==t?n:rr(n,t)},Fn.curry=function e(t,n,r){var i=Xo(t,8,o,o,o,o,o,n=r?o:n);return i.placeholder=e.placeholder,i},Fn.curryRight=function e(t,n,r){var i=Xo(t,16,o,o,o,o,o,n=r?o:n);return i.placeholder=e.placeholder,i},Fn.debounce=Ra,Fn.defaults=Sl,Fn.defaultsDeep=kl,Fn.defer=Ia,Fn.delay=Aa,Fn.difference=Hi,Fn.differenceBy=Wi,Fn.differenceWith=Bi,Fn.drop=function(e,t,n){var r=null==e?0:e.length;return r?to(e,(t=n||t===o?1:vl(t))<0?0:t,r):[]},Fn.dropRight=function(e,t,n){var r=null==e?0:e.length;return r?to(e,0,(t=r-(t=n||t===o?1:vl(t)))<0?0:t):[]},Fn.dropRightWhile=function(e,t){return e&&e.length?fo(e,li(t,3),!0,!0):[]},Fn.dropWhile=function(e,t){return e&&e.length?fo(e,li(t,3),!0):[]},Fn.fill=function(e,t,n,r){var i=null==e?0:e.length;return i?(n&&"number"!=typeof n&&yi(e,t,n)&&(n=0,r=i),function(e,t,n,r){var i=e.length;for((n=vl(n))<0&&(n=-n>i?0:i+n),(r=r===o||r>i?i:vl(r))<0&&(r+=i),r=n>r?0:gl(r);n<r;)e[n++]=t;return e}(e,t,n,r)):[]},Fn.filter=function(e,t){return(Va(e)?_t:vr)(e,li(t,3))},Fn.flatMap=function(e,t){return gr(xa(e,t),1)},Fn.flatMapDeep=function(e,t){return gr(xa(e,t),c)},Fn.flatMapDepth=function(e,t,n){return n=n===o?1:vl(n),gr(xa(e,t),n)},Fn.flatten=qi,Fn.flattenDeep=function(e){return null!=e&&e.length?gr(e,c):[]},Fn.flattenDepth=function(e,t){return null!=e&&e.length?gr(e,t=t===o?1:vl(t)):[]},Fn.flip=function(e){return Xo(e,512)},Fn.flow=nu,Fn.flowRight=ru,Fn.fromPairs=function(e){for(var t=-1,n=null==e?0:e.length,r={};++t<n;){var o=e[t];r[o[0]]=o[1]}return r},Fn.functions=function(e){return null==e?[]:Er(e,Rl(e))},Fn.functionsIn=function(e){return null==e?[]:Er(e,Il(e))},Fn.groupBy=Ea,Fn.initial=function(e){return null!=e&&e.length?to(e,0,-1):[]},Fn.intersection=Gi,Fn.intersectionBy=Qi,Fn.intersectionWith=Xi,Fn.invert=Tl,Fn.invertBy=jl,Fn.invokeMap=_a,Fn.iteratee=iu,Fn.keyBy=Oa,Fn.keys=Rl,Fn.keysIn=Il,Fn.map=xa,Fn.mapKeys=function(e,t){var n={};return t=li(t,3),br(e,(function(e,r,o){or(n,t(e,r,o),e)})),n},Fn.mapValues=function(e,t){var n={};return t=li(t,3),br(e,(function(e,r,o){or(n,r,t(e,r,o))})),n},Fn.matches=function(e){return Dr(lr(e,1))},Fn.matchesProperty=function(e,t){return Fr(e,lr(t,1))},Fn.memoize=La,Fn.merge=Al,Fn.mergeWith=Ll,Fn.method=au,Fn.methodOf=lu,Fn.mixin=uu,Fn.negate=Ma,Fn.nthArg=function(e){return e=vl(e),Gr((function(t){return Hr(t,e)}))},Fn.omit=Ml,Fn.omitBy=function(e,t){return Dl(e,Ma(li(t)))},Fn.once=function(e){return Ta(2,e)},Fn.orderBy=function(e,t,n,r){return null==e?[]:(Va(t)||(t=null==t?[]:[t]),Va(n=r?o:n)||(n=null==n?[]:[n]),Wr(e,t,n))},Fn.over=cu,Fn.overArgs=za,Fn.overEvery=fu,Fn.overSome=pu,Fn.partial=Da,Fn.partialRight=Fa,Fn.partition=Sa,Fn.pick=zl,Fn.pickBy=Dl,Fn.property=du,Fn.propertyOf=function(e){return function(t){return null==e?o:_r(e,t)}},Fn.pull=Zi,Fn.pullAll=Ji,Fn.pullAllBy=function(e,t,n){return e&&e.length&&t&&t.length?$r(e,t,li(n,2)):e},Fn.pullAllWith=function(e,t,n){return e&&e.length&&t&&t.length?$r(e,t,o,n):e},Fn.pullAt=ea,Fn.range=hu,Fn.rangeRight=vu,Fn.rearg=Ua,Fn.reject=function(e,t){return(Va(e)?_t:vr)(e,Ma(li(t,3)))},Fn.remove=function(e,t){var n=[];if(!e||!e.length)return n;var r=-1,o=[],i=e.length;for(t=li(t,3);++r<i;){var a=e[r];t(a,r,e)&&(n.push(a),o.push(r))}return Vr(e,o),n},Fn.rest=function(e,t){if("function"!=typeof e)throw new Ce(i);return Gr(e,t=t===o?t:vl(t))},Fn.reverse=ta,Fn.sampleSize=function(e,t,n){return t=(n?yi(e,t,n):t===o)?1:vl(t),(Va(e)?Yn:Xr)(e,t)},Fn.set=function(e,t,n){return null==e?e:Yr(e,t,n)},Fn.setWith=function(e,t,n,r){return r="function"==typeof r?r:o,null==e?e:Yr(e,t,n,r)},Fn.shuffle=function(e){return(Va(e)?Zn:eo)(e)},Fn.slice=function(e,t,n){var r=null==e?0:e.length;return r?(n&&"number"!=typeof n&&yi(e,t,n)?(t=0,n=r):(t=null==t?0:vl(t),n=n===o?r:vl(n)),to(e,t,n)):[]},Fn.sortBy=ka,Fn.sortedUniq=function(e){return e&&e.length?io(e):[]},Fn.sortedUniqBy=function(e,t){return e&&e.length?io(e,li(t,2)):[]},Fn.split=function(e,t,n){return n&&"number"!=typeof n&&yi(e,t,n)&&(t=n=o),(n=n===o?d:n>>>0)?(e=bl(e))&&("string"==typeof t||null!=t&&!al(t))&&!(t=lo(t))&&Zt(e)?wo(an(e),0,n):e.split(t,n):[]},Fn.spread=function(e,t){if("function"!=typeof e)throw new Ce(i);return t=null==t?0:mn(vl(t),0),Gr((function(n){var r=n[t],o=wo(n,0,t);return r&&kt(o,r),mt(e,this,o)}))},Fn.tail=function(e){var t=null==e?0:e.length;return t?to(e,1,t):[]},Fn.take=function(e,t,n){return e&&e.length?to(e,0,(t=n||t===o?1:vl(t))<0?0:t):[]},Fn.takeRight=function(e,t,n){var r=null==e?0:e.length;return r?to(e,(t=r-(t=n||t===o?1:vl(t)))<0?0:t,r):[]},Fn.takeRightWhile=function(e,t){return e&&e.length?fo(e,li(t,3),!1,!0):[]},Fn.takeWhile=function(e,t){return e&&e.length?fo(e,li(t,3)):[]},Fn.tap=function(e,t){return t(e),e},Fn.throttle=function(e,t,n){var r=!0,o=!0;if("function"!=typeof e)throw new Ce(i);return tl(n)&&(r="leading"in n?!!n.leading:r,o="trailing"in n?!!n.trailing:o),Ra(e,t,{leading:r,maxWait:t,trailing:o})},Fn.thru=ha,Fn.toArray=dl,Fn.toPairs=Fl,Fn.toPairsIn=Ul,Fn.toPath=function(e){return Va(e)?St(e,Di):sl(e)?[e]:Po(zi(bl(e)))},Fn.toPlainObject=yl,Fn.transform=function(e,t,n){var r=Va(e),o=r||Qa(e)||cl(e);if(t=li(t,4),null==n){var i=e&&e.constructor;n=o?r?new i:[]:tl(e)&&Za(i)?Un(qe(e)):{}}return(o?bt:br)(e,(function(e,r,o){return t(n,e,r,o)})),n},Fn.unary=function(e){return Pa(e,1)},Fn.union=na,Fn.unionBy=ra,Fn.unionWith=oa,Fn.uniq=function(e){return e&&e.length?uo(e):[]},Fn.uniqBy=function(e,t){return e&&e.length?uo(e,li(t,2)):[]},Fn.uniqWith=function(e,t){return t="function"==typeof t?t:o,e&&e.length?uo(e,o,t):[]},Fn.unset=function(e,t){return null==e||so(e,t)},Fn.unzip=ia,Fn.unzipWith=aa,Fn.update=function(e,t,n){return null==e?e:co(e,t,mo(n))},Fn.updateWith=function(e,t,n,r){return r="function"==typeof r?r:o,null==e?e:co(e,t,mo(n),r)},Fn.values=Hl,Fn.valuesIn=function(e){return null==e?[]:$t(e,Il(e))},Fn.without=la,Fn.words=Zl,Fn.wrap=function(e,t){return Da(mo(t),e)},Fn.xor=ua,Fn.xorBy=sa,Fn.xorWith=ca,Fn.zip=fa,Fn.zipObject=function(e,t){return vo(e||[],t||[],er)},Fn.zipObjectDeep=function(e,t){return vo(e||[],t||[],Yr)},Fn.zipWith=pa,Fn.entries=Fl,Fn.entriesIn=Ul,Fn.extend=El,Fn.extendWith=_l,uu(Fn,Fn),Fn.add=bu,Fn.attempt=Jl,Fn.camelCase=Wl,Fn.capitalize=Bl,Fn.ceil=wu,Fn.clamp=function(e,t,n){return n===o&&(n=t,t=o),n!==o&&(n=(n=ml(n))==n?n:0),t!==o&&(t=(t=ml(t))==t?t:0),ar(ml(e),t,n)},Fn.clone=function(e){return lr(e,4)},Fn.cloneDeep=function(e){return lr(e,5)},Fn.cloneDeepWith=function(e,t){return lr(e,5,t="function"==typeof t?t:o)},Fn.cloneWith=function(e,t){return lr(e,4,t="function"==typeof t?t:o)},Fn.conformsTo=function(e,t){return null==t||ur(e,t,Rl(t))},Fn.deburr=$l,Fn.defaultTo=function(e,t){return null==e||e!=e?t:e},Fn.divide=Eu,Fn.endsWith=function(e,t,n){e=bl(e),t=lo(t);var r=e.length,i=n=n===o?r:ar(vl(n),0,r);return(n-=t.length)>=0&&e.slice(n,i)==t},Fn.eq=Ha,Fn.escape=function(e){return(e=bl(e))&&G.test(e)?e.replace(q,Xt):e},Fn.escapeRegExp=function(e){return(e=bl(e))&&ne.test(e)?e.replace(te,"\\$&"):e},Fn.every=function(e,t,n){var r=Va(e)?Et:dr;return n&&yi(e,t,n)&&(t=o),r(e,li(t,3))},Fn.find=ma,Fn.findIndex=$i,Fn.findKey=function(e,t){return Nt(e,li(t,3),br)},Fn.findLast=ya,Fn.findLastIndex=Vi,Fn.findLastKey=function(e,t){return Nt(e,li(t,3),wr)},Fn.floor=_u,Fn.forEach=ba,Fn.forEachRight=wa,Fn.forIn=function(e,t){return null==e?e:mr(e,li(t,3),Il)},Fn.forInRight=function(e,t){return null==e?e:yr(e,li(t,3),Il)},Fn.forOwn=function(e,t){return e&&br(e,li(t,3))},Fn.forOwnRight=function(e,t){return e&&wr(e,li(t,3))},Fn.get=Cl,Fn.gt=Wa,Fn.gte=Ba,Fn.has=function(e,t){return null!=e&&hi(e,t,kr)},Fn.hasIn=Pl,Fn.head=Ki,Fn.identity=ou,Fn.includes=function(e,t,n,r){e=Ka(e)?e:Hl(e),n=n&&!r?vl(n):0;var o=e.length;return n<0&&(n=mn(o+n,0)),ul(e)?n<=o&&e.indexOf(t,n)>-1:!!o&&It(e,t,n)>-1},Fn.indexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var o=null==n?0:vl(n);return o<0&&(o=mn(r+o,0)),It(e,t,o)},Fn.inRange=function(e,t,n){return t=hl(t),n===o?(n=t,t=0):n=hl(n),function(e,t,n){return e>=yn(t,n)&&e<mn(t,n)}(e=ml(e),t,n)},Fn.invoke=Nl,Fn.isArguments=$a,Fn.isArray=Va,Fn.isArrayBuffer=qa,Fn.isArrayLike=Ka,Fn.isArrayLikeObject=Ga,Fn.isBoolean=function(e){return!0===e||!1===e||nl(e)&&xr(e)==m},Fn.isBuffer=Qa,Fn.isDate=Xa,Fn.isElement=function(e){return nl(e)&&1===e.nodeType&&!il(e)},Fn.isEmpty=function(e){if(null==e)return!0;if(Ka(e)&&(Va(e)||"string"==typeof e||"function"==typeof e.splice||Qa(e)||cl(e)||$a(e)))return!e.length;var t=di(e);if(t==_||t==C)return!e.size;if(_i(e))return!Lr(e).length;for(var n in e)if(Ie.call(e,n))return!1;return!0},Fn.isEqual=function(e,t){return Nr(e,t)},Fn.isEqualWith=function(e,t,n){var r=(n="function"==typeof n?n:o)?n(e,t):o;return r===o?Nr(e,t,o,n):!!r},Fn.isError=Ya,Fn.isFinite=function(e){return"number"==typeof e&&hn(e)},Fn.isFunction=Za,Fn.isInteger=Ja,Fn.isLength=el,Fn.isMap=rl,Fn.isMatch=function(e,t){return e===t||Rr(e,t,si(t))},Fn.isMatchWith=function(e,t,n){return n="function"==typeof n?n:o,Rr(e,t,si(t),n)},Fn.isNaN=function(e){return ol(e)&&e!=+e},Fn.isNative=function(e){if(Ei(e))throw new Ee("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return Ir(e)},Fn.isNil=function(e){return null==e},Fn.isNull=function(e){return null===e},Fn.isNumber=ol,Fn.isObject=tl,Fn.isObjectLike=nl,Fn.isPlainObject=il,Fn.isRegExp=al,Fn.isSafeInteger=function(e){return Ja(e)&&e>=-9007199254740991&&e<=f},Fn.isSet=ll,Fn.isString=ul,Fn.isSymbol=sl,Fn.isTypedArray=cl,Fn.isUndefined=function(e){return e===o},Fn.isWeakMap=function(e){return nl(e)&&di(e)==j},Fn.isWeakSet=function(e){return nl(e)&&"[object WeakSet]"==xr(e)},Fn.join=function(e,t){return null==e?"":vn.call(e,t)},Fn.kebabCase=Vl,Fn.last=Yi,Fn.lastIndexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=r;return n!==o&&(i=(i=vl(n))<0?mn(r+i,0):yn(i,r-1)),t==t?function(e,t,n){for(var r=n+1;r--;)if(e[r]===t)return r;return r}(e,t,i):Rt(e,Lt,i,!0)},Fn.lowerCase=ql,Fn.lowerFirst=Kl,Fn.lt=fl,Fn.lte=pl,Fn.max=function(e){return e&&e.length?hr(e,ou,Sr):o},Fn.maxBy=function(e,t){return e&&e.length?hr(e,li(t,2),Sr):o},Fn.mean=function(e){return Mt(e,ou)},Fn.meanBy=function(e,t){return Mt(e,li(t,2))},Fn.min=function(e){return e&&e.length?hr(e,ou,Mr):o},Fn.minBy=function(e,t){return e&&e.length?hr(e,li(t,2),Mr):o},Fn.stubArray=gu,Fn.stubFalse=mu,Fn.stubObject=function(){return{}},Fn.stubString=function(){return""},Fn.stubTrue=function(){return!0},Fn.multiply=Ou,Fn.nth=function(e,t){return e&&e.length?Hr(e,vl(t)):o},Fn.noConflict=function(){return it._===this&&(it._=De),this},Fn.noop=su,Fn.now=Ca,Fn.pad=function(e,t,n){e=bl(e);var r=(t=vl(t))?on(e):0;if(!t||r>=t)return e;var o=(t-r)/2;return Bo(fn(o),n)+e+Bo(cn(o),n)},Fn.padEnd=function(e,t,n){e=bl(e);var r=(t=vl(t))?on(e):0;return t&&r<t?e+Bo(t-r,n):e},Fn.padStart=function(e,t,n){e=bl(e);var r=(t=vl(t))?on(e):0;return t&&r<t?Bo(t-r,n)+e:e},Fn.parseInt=function(e,t,n){return n||null==t?t=0:t&&(t=+t),wn(bl(e).replace(re,""),t||0)},Fn.random=function(e,t,n){if(n&&"boolean"!=typeof n&&yi(e,t,n)&&(t=n=o),n===o&&("boolean"==typeof t?(n=t,t=o):"boolean"==typeof e&&(n=e,e=o)),e===o&&t===o?(e=0,t=1):(e=hl(e),t===o?(t=e,e=0):t=hl(t)),e>t){var r=e;e=t,t=r}if(n||e%1||t%1){var i=En();return yn(e+i*(t-e+tt("1e-"+((i+"").length-1))),t)}return qr(e,t)},Fn.reduce=function(e,t,n){var r=Va(e)?Ct:Ft,o=arguments.length<3;return r(e,li(t,4),n,o,fr)},Fn.reduceRight=function(e,t,n){var r=Va(e)?Pt:Ft,o=arguments.length<3;return r(e,li(t,4),n,o,pr)},Fn.repeat=function(e,t,n){return t=(n?yi(e,t,n):t===o)?1:vl(t),Kr(bl(e),t)},Fn.replace=function(){var e=arguments,t=bl(e[0]);return e.length<3?t:t.replace(e[1],e[2])},Fn.result=function(e,t,n){var r=-1,i=(t=yo(t,e)).length;for(i||(i=1,e=o);++r<i;){var a=null==e?o:e[Di(t[r])];a===o&&(r=i,a=n),e=Za(a)?a.call(e):a}return e},Fn.round=xu,Fn.runInContext=e,Fn.sample=function(e){return(Va(e)?Xn:Qr)(e)},Fn.size=function(e){if(null==e)return 0;if(Ka(e))return ul(e)?on(e):e.length;var t=di(e);return t==_||t==C?e.size:Lr(e).length},Fn.snakeCase=Gl,Fn.some=function(e,t,n){var r=Va(e)?Tt:no;return n&&yi(e,t,n)&&(t=o),r(e,li(t,3))},Fn.sortedIndex=function(e,t){return ro(e,t)},Fn.sortedIndexBy=function(e,t,n){return oo(e,t,li(n,2))},Fn.sortedIndexOf=function(e,t){var n=null==e?0:e.length;if(n){var r=ro(e,t);if(r<n&&Ha(e[r],t))return r}return-1},Fn.sortedLastIndex=function(e,t){return ro(e,t,!0)},Fn.sortedLastIndexBy=function(e,t,n){return oo(e,t,li(n,2),!0)},Fn.sortedLastIndexOf=function(e,t){if(null!=e&&e.length){var n=ro(e,t,!0)-1;if(Ha(e[n],t))return n}return-1},Fn.startCase=Ql,Fn.startsWith=function(e,t,n){return e=bl(e),n=null==n?0:ar(vl(n),0,e.length),t=lo(t),e.slice(n,n+t.length)==t},Fn.subtract=Su,Fn.sum=function(e){return e&&e.length?Ut(e,ou):0},Fn.sumBy=function(e,t){return e&&e.length?Ut(e,li(t,2)):0},Fn.template=function(e,t,n){var r=Fn.templateSettings;n&&yi(e,t,n)&&(t=o),e=bl(e),t=_l({},t,r,Yo);var i,a,l=_l({},t.imports,r.imports,Yo),u=Rl(l),s=$t(l,u),c=0,f=t.interpolate||be,p="__p += '",d=Se((t.escape||be).source+"|"+f.source+"|"+(f===Y?fe:be).source+"|"+(t.evaluate||be).source+"|$","g"),h="//# sourceURL="+(Ie.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Ye+"]")+"\n";e.replace(d,(function(t,n,r,o,l,u){return r||(r=o),p+=e.slice(c,u).replace(we,Yt),n&&(i=!0,p+="' +\n__e("+n+") +\n'"),l&&(a=!0,p+="';\n"+l+";\n__p += '"),r&&(p+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),c=u+t.length,t})),p+="';\n";var v=Ie.call(t,"variable")&&t.variable;if(v){if(se.test(v))throw new Ee("Invalid `variable` option passed into `_.template`")}else p="with (obj) {\n"+p+"\n}\n";p=(a?p.replace(W,""):p).replace(B,"$1").replace($,"$1;"),p="function("+(v||"obj")+") {\n"+(v?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(i?", __e = _.escape":"")+(a?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+p+"return __p\n}";var g=Jl((function(){return _e(u,h+"return "+p).apply(o,s)}));if(g.source=p,Ya(g))throw g;return g},Fn.times=function(e,t){if((e=vl(e))<1||e>f)return[];var n=d,r=yn(e,d);t=li(t),e-=d;for(var o=Ht(r,t);++n<e;)t(n);return o},Fn.toFinite=hl,Fn.toInteger=vl,Fn.toLength=gl,Fn.toLower=function(e){return bl(e).toLowerCase()},Fn.toNumber=ml,Fn.toSafeInteger=function(e){return e?ar(vl(e),-9007199254740991,f):0===e?e:0},Fn.toString=bl,Fn.toUpper=function(e){return bl(e).toUpperCase()},Fn.trim=function(e,t,n){if((e=bl(e))&&(n||t===o))return Wt(e);if(!e||!(t=lo(t)))return e;var r=an(e),i=an(t);return wo(r,qt(r,i),Kt(r,i)+1).join("")},Fn.trimEnd=function(e,t,n){if((e=bl(e))&&(n||t===o))return e.slice(0,ln(e)+1);if(!e||!(t=lo(t)))return e;var r=an(e);return wo(r,0,Kt(r,an(t))+1).join("")},Fn.trimStart=function(e,t,n){if((e=bl(e))&&(n||t===o))return e.replace(re,"");if(!e||!(t=lo(t)))return e;var r=an(e);return wo(r,qt(r,an(t))).join("")},Fn.truncate=function(e,t){var n=30,r="...";if(tl(t)){var i="separator"in t?t.separator:i;n="length"in t?vl(t.length):n,r="omission"in t?lo(t.omission):r}var a=(e=bl(e)).length;if(Zt(e)){var l=an(e);a=l.length}if(n>=a)return e;var u=n-on(r);if(u<1)return r;var s=l?wo(l,0,u).join(""):e.slice(0,u);if(i===o)return s+r;if(l&&(u+=s.length-u),al(i)){if(e.slice(u).search(i)){var c,f=s;for(i.global||(i=Se(i.source,bl(pe.exec(i))+"g")),i.lastIndex=0;c=i.exec(f);)var p=c.index;s=s.slice(0,p===o?u:p)}}else if(e.indexOf(lo(i),u)!=u){var d=s.lastIndexOf(i);d>-1&&(s=s.slice(0,d))}return s+r},Fn.unescape=function(e){return(e=bl(e))&&K.test(e)?e.replace(V,un):e},Fn.uniqueId=function(e){var t=++Ae;return bl(e)+t},Fn.upperCase=Xl,Fn.upperFirst=Yl,Fn.each=ba,Fn.eachRight=wa,Fn.first=Ki,uu(Fn,(yu={},br(Fn,(function(e,t){Ie.call(Fn.prototype,t)||(yu[t]=e)})),yu),{chain:!1}),Fn.VERSION="4.17.21",bt(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){Fn[e].placeholder=Fn})),bt(["drop","take"],(function(e,t){Bn.prototype[e]=function(n){n=n===o?1:mn(vl(n),0);var r=this.__filtered__&&!t?new Bn(this):this.clone();return r.__filtered__?r.__takeCount__=yn(n,r.__takeCount__):r.__views__.push({size:yn(n,d),type:e+(r.__dir__<0?"Right":"")}),r},Bn.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),bt(["filter","map","takeWhile"],(function(e,t){var n=t+1,r=1==n||3==n;Bn.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:li(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}})),bt(["head","last"],(function(e,t){var n="take"+(t?"Right":"");Bn.prototype[e]=function(){return this[n](1).value()[0]}})),bt(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");Bn.prototype[e]=function(){return this.__filtered__?new Bn(this):this[n](1)}})),Bn.prototype.compact=function(){return this.filter(ou)},Bn.prototype.find=function(e){return this.filter(e).head()},Bn.prototype.findLast=function(e){return this.reverse().find(e)},Bn.prototype.invokeMap=Gr((function(e,t){return"function"==typeof e?new Bn(this):this.map((function(n){return Tr(n,e,t)}))})),Bn.prototype.reject=function(e){return this.filter(Ma(li(e)))},Bn.prototype.slice=function(e,t){e=vl(e);var n=this;return n.__filtered__&&(e>0||t<0)?new Bn(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==o&&(n=(t=vl(t))<0?n.dropRight(-t):n.take(t-e)),n)},Bn.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Bn.prototype.toArray=function(){return this.take(d)},br(Bn.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),i=Fn[r?"take"+("last"==t?"Right":""):t],a=r||/^find/.test(t);i&&(Fn.prototype[t]=function(){var t=this.__wrapped__,l=r?[1]:arguments,u=t instanceof Bn,s=l[0],c=u||Va(t),f=function(e){var t=i.apply(Fn,kt([e],l));return r&&p?t[0]:t};c&&n&&"function"==typeof s&&1!=s.length&&(u=c=!1);var p=this.__chain__,d=!!this.__actions__.length,h=a&&!p,v=u&&!d;if(!a&&c){t=v?t:new Bn(this);var g=e.apply(t,l);return g.__actions__.push({func:ha,args:[f],thisArg:o}),new Wn(g,p)}return h&&v?e.apply(this,l):(g=this.thru(f),h?r?g.value()[0]:g.value():g)})})),bt(["pop","push","shift","sort","splice","unshift"],(function(e){var t=Pe[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);Fn.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var o=this.value();return t.apply(Va(o)?o:[],e)}return this[n]((function(n){return t.apply(Va(n)?n:[],e)}))}})),br(Bn.prototype,(function(e,t){var n=Fn[t];if(n){var r=n.name+"";Ie.call(jn,r)||(jn[r]=[]),jn[r].push({name:t,func:n})}})),jn[Fo(o,2).name]=[{name:"wrapper",func:o}],Bn.prototype.clone=function(){var e=new Bn(this.__wrapped__);return e.__actions__=Po(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Po(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Po(this.__views__),e},Bn.prototype.reverse=function(){if(this.__filtered__){var e=new Bn(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},Bn.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=Va(e),r=t<0,o=n?e.length:0,i=function(e,t,n){for(var r=-1,o=n.length;++r<o;){var i=n[r],a=i.size;switch(i.type){case"drop":e+=a;break;case"dropRight":t-=a;break;case"take":t=yn(t,e+a);break;case"takeRight":e=mn(e,t-a)}}return{start:e,end:t}}(0,o,this.__views__),a=i.start,l=i.end,u=l-a,s=r?l:a-1,c=this.__iteratees__,f=c.length,p=0,d=yn(u,this.__takeCount__);if(!n||!r&&o==u&&d==u)return po(e,this.__actions__);var h=[];e:for(;u--&&p<d;){for(var v=-1,g=e[s+=t];++v<f;){var m=c[v],y=m.iteratee,b=m.type,w=y(g);if(2==b)g=w;else if(!w){if(1==b)continue e;break e}}h[p++]=g}return h},Fn.prototype.at=va,Fn.prototype.chain=function(){return da(this)},Fn.prototype.commit=function(){return new Wn(this.value(),this.__chain__)},Fn.prototype.next=function(){this.__values__===o&&(this.__values__=dl(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?o:this.__values__[this.__index__++]}},Fn.prototype.plant=function(e){for(var t,n=this;n instanceof Hn;){var r=Ui(n);r.__index__=0,r.__values__=o,t?i.__wrapped__=r:t=r;var i=r;n=n.__wrapped__}return i.__wrapped__=e,t},Fn.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof Bn){var t=e;return this.__actions__.length&&(t=new Bn(this)),(t=t.reverse()).__actions__.push({func:ha,args:[ta],thisArg:o}),new Wn(t,this.__chain__)}return this.thru(ta)},Fn.prototype.toJSON=Fn.prototype.valueOf=Fn.prototype.value=function(){return po(this.__wrapped__,this.__actions__)},Fn.prototype.first=Fn.prototype.head,at&&(Fn.prototype[at]=function(){return this}),Fn}();it._=sn,(r=function(){return sn}.call(t,n,t,e))===o||(e.exports=r)}.call(this)},8865:function(e,t,n){var r=n(696),o=n(369);function i(e){if(!(this instanceof i))return new i(e);"number"==typeof e&&(e={max:e}),e||(e={}),r.EventEmitter.call(this),this.cache={},this.head=this.tail=null,this.length=0,this.max=e.max||1e3,this.maxAge=e.maxAge||0}e.exports=i,o(i,r.EventEmitter),Object.defineProperty(i.prototype,"keys",{get:function(){return Object.keys(this.cache)}}),i.prototype.clear=function(){this.cache={},this.head=this.tail=null,this.length=0},i.prototype.remove=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];return delete this.cache[e],this._unlink(e,t.prev,t.next),t.value}},i.prototype._unlink=function(e,t,n){this.length--,0===this.length?this.head=this.tail=null:this.head===e?(this.head=t,this.cache[this.head].next=null):this.tail===e?(this.tail=n,this.cache[this.tail].prev=null):(this.cache[t].next=n,this.cache[n].prev=t)},i.prototype.peek=function(e){if(this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return t.value}},i.prototype.set=function(e,t){var n;if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){if((n=this.cache[e]).value=t,this.maxAge&&(n.modified=Date.now()),e===this.head)return t;this._unlink(e,n.prev,n.next)}else n={value:t,modified:0,next:null,prev:null},this.maxAge&&(n.modified=Date.now()),this.cache[e]=n,this.length===this.max&&this.evict();return this.length++,n.next=null,n.prev=this.head,this.head&&(this.cache[this.head].next=e),this.head=e,this.tail||(this.tail=e),t},i.prototype._checkAge=function(e,t){return!(this.maxAge&&Date.now()-t.modified>this.maxAge&&(this.remove(e),this.emit("evict",{key:e,value:t.value}),1))},i.prototype.get=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return this.head!==e&&(e===this.tail?(this.tail=t.next,this.cache[this.tail].prev=null):this.cache[t.prev].next=t.next,this.cache[t.next].prev=t.prev,this.cache[this.head].next=e,t.prev=this.head,t.next=null,this.head=e),t.value}},i.prototype.evict=function(){if(this.tail){var e=this.tail,t=this.remove(this.tail);this.emit("evict",{key:e,value:t})}}},5126:function(e){function t(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=t,t.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)}},9717:function(e){var t=1e3,n=60*t,r=60*n,o=24*r;function i(e,t,n,r){var o=t>=1.5*n;return Math.round(e/n)+" "+r+(o?"s":"")}e.exports=function(e,a){a=a||{};var l,u,s=typeof e;if("string"===s&&e.length>0)return function(e){if(!((e=String(e)).length>100)){var i=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(i){var a=parseFloat(i[1]);switch((i[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*a;case"weeks":case"week":case"w":return 6048e5*a;case"days":case"day":case"d":return a*o;case"hours":case"hour":case"hrs":case"hr":case"h":return a*r;case"minutes":case"minute":case"mins":case"min":case"m":return a*n;case"seconds":case"second":case"secs":case"sec":case"s":return a*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return a;default:return}}}}(e);if("number"===s&&isFinite(e))return a.long?(l=e,(u=Math.abs(l))>=o?i(l,u,o,"day"):u>=r?i(l,u,r,"hour"):u>=n?i(l,u,n,"minute"):u>=t?i(l,u,t,"second"):l+" ms"):function(e){var i=Math.abs(e);return i>=o?Math.round(e/o)+"d":i>=r?Math.round(e/r)+"h":i>=n?Math.round(e/n)+"m":i>=t?Math.round(e/t)+"s":e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},1464:function(e){"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,i){for(var a,l,u=o(e),s=1;s<arguments.length;s++){for(var c in a=Object(arguments[s]))n.call(a,c)&&(u[c]=a[c]);if(t){l=t(a);for(var f=0;f<l.length;f++)r.call(a,l[f])&&(u[l[f]]=a[l[f]])}}return u}},6977:function(e,t,n){"use strict";var r=n(669);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,a){if(a!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},2598:function(e,t,n){e.exports=n(6977)()},669:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},1646:function(e,t,n){"use strict";var r=n(8965),o="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,i=n(1231),a=n(2802),l=n(7012),u="function"==typeof Symbol&&Symbol.iterator;function s(e,t){return e&&"object"==typeof e&&null!=e.key?(n=e.key,r={"=":"=0",":":"=2"},"$"+(""+n).replace(/[=:]/g,(function(e){return r[e]}))):t.toString(36);var n,r}function c(e,t,n,r){var i,l=typeof e;if("undefined"!==l&&"boolean"!==l||(e=null),null===e||"string"===l||"number"===l||"object"===l&&e.$$typeof===o)return n(r,e,""===t?"."+s(e,0):t),1;var f=0,p=""===t?".":t+":";if(Array.isArray(e))for(var d=0;d<e.length;d++)f+=c(i=e[d],p+s(i,d),n,r);else{var h=function(e){var t=e&&(u&&e[u]||e["@@iterator"]);if("function"==typeof t)return t}(e);if(h)for(var v,g=h.call(e),m=0;!(v=g.next()).done;)f+=c(i=v.value,p+s(i,m++),n,r);else if("object"===l){var y=""+e;a(!1,"Objects are not valid as a React child (found: %s).%s","[object Object]"===y?"object with keys {"+Object.keys(e).join(", ")+"}":y,"")}}return f}var f=/\/+/g;function p(e){return(""+e).replace(f,"$&/")}var d,h,v=g,g=function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)};function m(e,t,n,r){this.result=e,this.keyPrefix=t,this.func=n,this.context=r,this.count=0}function y(e,t,n){var o,a,l=e.result,u=e.keyPrefix,s=e.func,c=e.context,f=s.call(c,t,e.count++);Array.isArray(f)?b(f,l,n,i.thatReturnsArgument):null!=f&&(r.isValidElement(f)&&(o=f,a=u+(!f.key||t&&t.key===f.key?"":p(f.key)+"/")+n,f=r.cloneElement(o,{key:a},void 0!==o.props?o.props.children:void 0)),l.push(f))}function b(e,t,n,r,o){var i="";null!=n&&(i=p(n)+"/");var a=m.getPooled(t,i,r,o);!function(e,t,n){null==e||c(e,"",t,n)}(e,y,a),m.release(a)}m.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},d=function(e,t,n,r){var o=this;if(o.instancePool.length){var i=o.instancePool.pop();return o.call(i,e,t,n,r),i}return new o(e,t,n,r)},(h=m).instancePool=[],h.getPooled=d||v,h.poolSize||(h.poolSize=10),h.release=function(e){var t=this;a(e instanceof t,"Trying to release an instance into a pool of a different type."),e.destructor(),t.instancePool.length<t.poolSize&&t.instancePool.push(e)},e.exports=function(e){if("object"!=typeof e||!e||Array.isArray(e))return l(!1,"React.addons.createFragment only accepts a single object. Got: %s",e),e;if(r.isValidElement(e))return l(!1,"React.addons.createFragment does not accept a ReactElement without a wrapper object."),e;a(1!==e.nodeType,"React.addons.createFragment(...): Encountered an invalid child; DOM elements are not valid children of React components.");var t=[];for(var n in e)b(e[n],t,n,i.thatReturnsArgument);return t}},6539:function(e,t,n){"use strict";var r=n(8965),o=n(1464),i=n(9076);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(a(227));var l=new Set,u={};function s(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(u[e]=t,e=0;e<t.length;e++)l.add(t[e])}var f=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,d=Object.prototype.hasOwnProperty,h={},v={};function g(e,t,n,r,o,i,a){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var m={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){m[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];m[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){m[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){m[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){m[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){m[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){m[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){m[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){m[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var y=/[\-:]([a-z])/g;function b(e){return e[1].toUpperCase()}function w(e,t,n,r){var o=m.hasOwnProperty(t)?m[t]:null;(null!==o?0===o.type:!r&&2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1]))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!d.call(v,e)||!d.call(h,e)&&(p.test(e)?v[e]=!0:(h[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(y,b);m[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(y,b);m[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(y,b);m[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){m[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),m.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){m[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var E=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,_=60103,O=60106,x=60107,S=60108,k=60114,C=60109,P=60110,T=60112,j=60113,N=60120,R=60115,I=60116,A=60121,L=60128,M=60129,z=60130,D=60131;if("function"==typeof Symbol&&Symbol.for){var F=Symbol.for;_=F("react.element"),O=F("react.portal"),x=F("react.fragment"),S=F("react.strict_mode"),k=F("react.profiler"),C=F("react.provider"),P=F("react.context"),T=F("react.forward_ref"),j=F("react.suspense"),N=F("react.suspense_list"),R=F("react.memo"),I=F("react.lazy"),A=F("react.block"),F("react.scope"),L=F("react.opaque.id"),M=F("react.debug_trace_mode"),z=F("react.offscreen"),D=F("react.legacy_hidden")}var U,H="function"==typeof Symbol&&Symbol.iterator;function W(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=H&&e[H]||e["@@iterator"])?e:null}function B(e){if(void 0===U)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);U=t&&t[1]||""}return"\n"+U+e}var $=!1;function V(e,t){if(!e||$)return"";$=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(e){var r=e}Reflect.construct(e,[],t)}else{try{t.call()}catch(e){r=e}e.call(t.prototype)}else{try{throw Error()}catch(e){r=e}e()}}catch(e){if(e&&r&&"string"==typeof e.stack){for(var o=e.stack.split("\n"),i=r.stack.split("\n"),a=o.length-1,l=i.length-1;1<=a&&0<=l&&o[a]!==i[l];)l--;for(;1<=a&&0<=l;a--,l--)if(o[a]!==i[l]){if(1!==a||1!==l)do{if(a--,0>--l||o[a]!==i[l])return"\n"+o[a].replace(" at new "," at ")}while(1<=a&&0<=l);break}}}finally{$=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?B(e):""}function q(e){switch(e.tag){case 5:return B(e.type);case 16:return B("Lazy");case 13:return B("Suspense");case 19:return B("SuspenseList");case 0:case 2:case 15:return V(e.type,!1);case 11:return V(e.type.render,!1);case 22:return V(e.type._render,!1);case 1:return V(e.type,!0);default:return""}}function K(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case x:return"Fragment";case O:return"Portal";case k:return"Profiler";case S:return"StrictMode";case j:return"Suspense";case N:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case P:return(e.displayName||"Context")+".Consumer";case C:return(e._context.displayName||"Context")+".Provider";case T:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case R:return K(e.type);case A:return K(e._render);case I:t=e._payload,e=e._init;try{return K(e(t))}catch(e){}}return null}function G(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Q(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function X(e){e._valueTracker||(e._valueTracker=function(e){var t=Q(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,i.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Y(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Q(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function Z(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return o({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=G(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=G(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?oe(e,t.type,n):t.hasOwnProperty("defaultValue")&&oe(e,t.type,G(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function oe(e,t,n){"number"===t&&Z(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function ie(e,t){return e=o({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ae(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+G(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(a(91));return o({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ue(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(a(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(a(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:G(n)}}function se(e,t){var n=G(t.value),r=G(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var fe="http://www.w3.org/1999/xhtml";function pe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function de(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?pe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var he,ve,ge=(ve=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((he=he||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=he.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ve(e,t)}))}:ve);function me(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ye={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},be=["Webkit","ms","Moz","O"];function we(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ye.hasOwnProperty(e)&&ye[e]?(""+t).trim():t+"px"}function Ee(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=we(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(ye).forEach((function(e){be.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ye[t]=ye[e]}))}));var _e=o({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Oe(e,t){if(t){if(_e[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(a(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(a(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(a(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(a(62))}}function xe(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Se(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var ke=null,Ce=null,Pe=null;function Te(e){if(e=no(e)){if("function"!=typeof ke)throw Error(a(280));var t=e.stateNode;t&&(t=oo(t),ke(e.stateNode,e.type,t))}}function je(e){Ce?Pe?Pe.push(e):Pe=[e]:Ce=e}function Ne(){if(Ce){var e=Ce,t=Pe;if(Pe=Ce=null,Te(e),t)for(e=0;e<t.length;e++)Te(t[e])}}function Re(e,t){return e(t)}function Ie(e,t,n,r,o){return e(t,n,r,o)}function Ae(){}var Le=Re,Me=!1,ze=!1;function De(){null===Ce&&null===Pe||(Ae(),Ne())}function Fe(e,t){var n=e.stateNode;if(null===n)return null;var r=oo(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(a(231,t,typeof n));return n}var Ue=!1;if(f)try{var He={};Object.defineProperty(He,"passive",{get:function(){Ue=!0}}),window.addEventListener("test",He,He),window.removeEventListener("test",He,He)}catch(ve){Ue=!1}function We(e,t,n,r,o,i,a,l,u){var s=Array.prototype.slice.call(arguments,3);try{t.apply(n,s)}catch(e){this.onError(e)}}var Be=!1,$e=null,Ve=!1,qe=null,Ke={onError:function(e){Be=!0,$e=e}};function Ge(e,t,n,r,o,i,a,l,u){Be=!1,$e=null,We.apply(Ke,arguments)}function Qe(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Xe(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&null!==(e=e.alternate)&&(t=e.memoizedState),null!==t)return t.dehydrated}return null}function Ye(e){if(Qe(e)!==e)throw Error(a(188))}function Ze(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Qe(e)))throw Error(a(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var i=o.alternate;if(null===i){if(null!==(r=o.return)){n=r;continue}break}if(o.child===i.child){for(i=o.child;i;){if(i===n)return Ye(o),e;if(i===r)return Ye(o),t;i=i.sibling}throw Error(a(188))}if(n.return!==r.return)n=o,r=i;else{for(var l=!1,u=o.child;u;){if(u===n){l=!0,n=o,r=i;break}if(u===r){l=!0,r=o,n=i;break}u=u.sibling}if(!l){for(u=i.child;u;){if(u===n){l=!0,n=i,r=o;break}if(u===r){l=!0,r=i,n=o;break}u=u.sibling}if(!l)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(3!==n.tag)throw Error(a(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Je(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,rt,ot=!1,it=[],at=null,lt=null,ut=null,st=new Map,ct=new Map,ft=[],pt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function dt(e,t,n,r,o){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:o,targetContainers:[r]}}function ht(e,t){switch(e){case"focusin":case"focusout":at=null;break;case"dragenter":case"dragleave":lt=null;break;case"mouseover":case"mouseout":ut=null;break;case"pointerover":case"pointerout":st.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ct.delete(t.pointerId)}}function vt(e,t,n,r,o,i){return null===e||e.nativeEvent!==i?(e=dt(t,n,r,o,i),null!==t&&null!==(t=no(t))&&tt(t),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function gt(e){var t=to(e.target);if(null!==t){var n=Qe(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Xe(n)))return e.blockedOn=t,void rt(e.lanePriority,(function(){i.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function mt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Zt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=no(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function yt(e,t,n){mt(e)&&n.delete(t)}function bt(){for(ot=!1;0<it.length;){var e=it[0];if(null!==e.blockedOn){null!==(e=no(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Zt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&it.shift()}null!==at&&mt(at)&&(at=null),null!==lt&&mt(lt)&&(lt=null),null!==ut&&mt(ut)&&(ut=null),st.forEach(yt),ct.forEach(yt)}function wt(e,t){e.blockedOn===t&&(e.blockedOn=null,ot||(ot=!0,i.unstable_scheduleCallback(i.unstable_NormalPriority,bt)))}function Et(e){function t(t){return wt(t,e)}if(0<it.length){wt(it[0],e);for(var n=1;n<it.length;n++){var r=it[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==at&&wt(at,e),null!==lt&&wt(lt,e),null!==ut&&wt(ut,e),st.forEach(t),ct.forEach(t),n=0;n<ft.length;n++)(r=ft[n]).blockedOn===e&&(r.blockedOn=null);for(;0<ft.length&&null===(n=ft[0]).blockedOn;)gt(n),null===n.blockedOn&&ft.shift()}function _t(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Ot={animationend:_t("Animation","AnimationEnd"),animationiteration:_t("Animation","AnimationIteration"),animationstart:_t("Animation","AnimationStart"),transitionend:_t("Transition","TransitionEnd")},xt={},St={};function kt(e){if(xt[e])return xt[e];if(!Ot[e])return e;var t,n=Ot[e];for(t in n)if(n.hasOwnProperty(t)&&t in St)return xt[e]=n[t];return e}f&&(St=document.createElement("div").style,"AnimationEvent"in window||(delete Ot.animationend.animation,delete Ot.animationiteration.animation,delete Ot.animationstart.animation),"TransitionEvent"in window||delete Ot.transitionend.transition);var Ct=kt("animationend"),Pt=kt("animationiteration"),Tt=kt("animationstart"),jt=kt("transitionend"),Nt=new Map,Rt=new Map,It=["abort","abort",Ct,"animationEnd",Pt,"animationIteration",Tt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",jt,"transitionEnd","waiting","waiting"];function At(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],o=e[n+1];o="on"+(o[0].toUpperCase()+o.slice(1)),Rt.set(r,t),Nt.set(r,o),s(o,[r])}}(0,i.unstable_now)();var Lt=8;function Mt(e){if(0!=(1&e))return Lt=15,1;if(0!=(2&e))return Lt=14,2;if(0!=(4&e))return Lt=13,4;var t=24&e;return 0!==t?(Lt=12,t):0!=(32&e)?(Lt=11,32):0!=(t=192&e)?(Lt=10,t):0!=(256&e)?(Lt=9,256):0!=(t=3584&e)?(Lt=8,t):0!=(4096&e)?(Lt=7,4096):0!=(t=4186112&e)?(Lt=6,t):0!=(t=62914560&e)?(Lt=5,t):67108864&e?(Lt=4,67108864):0!=(134217728&e)?(Lt=3,134217728):0!=(t=805306368&e)?(Lt=2,t):0!=(1073741824&e)?(Lt=1,1073741824):(Lt=8,e)}function zt(e,t){var n=e.pendingLanes;if(0===n)return Lt=0;var r=0,o=0,i=e.expiredLanes,a=e.suspendedLanes,l=e.pingedLanes;if(0!==i)r=i,o=Lt=15;else if(0!=(i=134217727&n)){var u=i&~a;0!==u?(r=Mt(u),o=Lt):0!=(l&=i)&&(r=Mt(l),o=Lt)}else 0!=(i=n&~a)?(r=Mt(i),o=Lt):0!==l&&(r=Mt(l),o=Lt);if(0===r)return 0;if(r=n&((0>(r=31-Bt(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&a)){if(Mt(t),o<=Lt)return t;Lt=o}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)o=1<<(n=31-Bt(t)),r|=e[n],t&=~o;return r}function Dt(e){return 0!=(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function Ft(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=Ut(24&~t))?Ft(10,t):e;case 10:return 0===(e=Ut(192&~t))?Ft(8,t):e;case 8:return 0===(e=Ut(3584&~t))&&0===(e=Ut(4186112&~t))&&(e=512),e;case 2:return 0===(t=Ut(805306368&~t))&&(t=268435456),t}throw Error(a(358,e))}function Ut(e){return e&-e}function Ht(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Wt(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-Bt(t)]=n}var Bt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-($t(e)/Vt|0)|0},$t=Math.log,Vt=Math.LN2,qt=i.unstable_UserBlockingPriority,Kt=i.unstable_runWithPriority,Gt=!0;function Qt(e,t,n,r){Me||Ae();var o=Yt,i=Me;Me=!0;try{Ie(o,e,t,n,r)}finally{(Me=i)||De()}}function Xt(e,t,n,r){Kt(qt,Yt.bind(null,e,t,n,r))}function Yt(e,t,n,r){var o;if(Gt)if((o=0==(4&t))&&0<it.length&&-1<pt.indexOf(e))e=dt(null,e,t,n,r),it.push(e);else{var i=Zt(e,t,n,r);if(null===i)o&&ht(e,r);else{if(o){if(-1<pt.indexOf(e))return e=dt(i,e,t,n,r),void it.push(e);if(function(e,t,n,r,o){switch(t){case"focusin":return at=vt(at,e,t,n,r,o),!0;case"dragenter":return lt=vt(lt,e,t,n,r,o),!0;case"mouseover":return ut=vt(ut,e,t,n,r,o),!0;case"pointerover":var i=o.pointerId;return st.set(i,vt(st.get(i)||null,e,t,n,r,o)),!0;case"gotpointercapture":return i=o.pointerId,ct.set(i,vt(ct.get(i)||null,e,t,n,r,o)),!0}return!1}(i,e,t,n,r))return;ht(e,r)}Ar(e,t,r,null,n)}}}function Zt(e,t,n,r){var o=Se(r);if(null!==(o=to(o))){var i=Qe(o);if(null===i)o=null;else{var a=i.tag;if(13===a){if(null!==(o=Xe(i)))return o;o=null}else if(3===a){if(i.stateNode.hydrate)return 3===i.tag?i.stateNode.containerInfo:null;o=null}else i!==o&&(o=null)}}return Ar(e,t,r,o,n),null}var Jt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,r=n.length,o="value"in Jt?Jt.value:Jt.textContent,i=o.length;for(e=0;e<r&&n[e]===o[e];e++);var a=r-e;for(t=1;t<=a&&n[r-t]===o[i-t];t++);return tn=o.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function on(){return!0}function an(){return!1}function ln(e){function t(t,n,r,o,i){for(var a in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=o,this.target=i,this.currentTarget=null,e)e.hasOwnProperty(a)&&(t=e[a],this[a]=t?t(o):o[a]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?on:an,this.isPropagationStopped=an,this}return o(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=on)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=on)},persist:function(){},isPersistent:on}),t}var un,sn,cn,fn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},pn=ln(fn),dn=o({},fn,{view:0,detail:0}),hn=ln(dn),vn=o({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Cn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==cn&&(cn&&"mousemove"===e.type?(un=e.screenX-cn.screenX,sn=e.screenY-cn.screenY):sn=un=0,cn=e),un)},movementY:function(e){return"movementY"in e?e.movementY:sn}}),gn=ln(vn),mn=ln(o({},vn,{dataTransfer:0})),yn=ln(o({},dn,{relatedTarget:0})),bn=ln(o({},fn,{animationName:0,elapsedTime:0,pseudoElement:0})),wn=o({},fn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),En=ln(wn),_n=ln(o({},fn,{data:0})),On={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Sn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function kn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Sn[e])&&!!t[e]}function Cn(){return kn}var Pn=o({},dn,{key:function(e){if(e.key){var t=On[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Cn,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Tn=ln(Pn),jn=ln(o({},vn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Nn=ln(o({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Cn})),Rn=ln(o({},fn,{propertyName:0,elapsedTime:0,pseudoElement:0})),In=o({},vn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),An=ln(In),Ln=[9,13,27,32],Mn=f&&"CompositionEvent"in window,zn=null;f&&"documentMode"in document&&(zn=document.documentMode);var Dn=f&&"TextEvent"in window&&!zn,Fn=f&&(!Mn||zn&&8<zn&&11>=zn),Un=String.fromCharCode(32),Hn=!1;function Wn(e,t){switch(e){case"keyup":return-1!==Ln.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Bn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var $n=!1,Vn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function qn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Vn[e.type]:"textarea"===t}function Kn(e,t,n,r){je(r),0<(t=Mr(t,"onChange")).length&&(n=new pn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Gn=null,Qn=null;function Xn(e){Pr(e,0)}function Yn(e){if(Y(ro(e)))return e}function Zn(e,t){if("change"===e)return t}var Jn=!1;if(f){var er;if(f){var tr="oninput"in document;if(!tr){var nr=document.createElement("div");nr.setAttribute("oninput","return;"),tr="function"==typeof nr.oninput}er=tr}else er=!1;Jn=er&&(!document.documentMode||9<document.documentMode)}function rr(){Gn&&(Gn.detachEvent("onpropertychange",or),Qn=Gn=null)}function or(e){if("value"===e.propertyName&&Yn(Qn)){var t=[];if(Kn(t,Qn,e,Se(e)),e=Xn,Me)e(t);else{Me=!0;try{Re(e,t)}finally{Me=!1,De()}}}}function ir(e,t,n){"focusin"===e?(rr(),Qn=n,(Gn=t).attachEvent("onpropertychange",or)):"focusout"===e&&rr()}function ar(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Yn(Qn)}function lr(e,t){if("click"===e)return Yn(t)}function ur(e,t){if("input"===e||"change"===e)return Yn(t)}var sr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},cr=Object.prototype.hasOwnProperty;function fr(e,t){if(sr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!cr.call(t,n[r])||!sr(e[n[r]],t[n[r]]))return!1;return!0}function pr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function dr(e,t){var n,r=pr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=pr(r)}}function hr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?hr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function vr(){for(var e=window,t=Z();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(!n)break;t=Z((e=t.contentWindow).document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var mr=f&&"documentMode"in document&&11>=document.documentMode,yr=null,br=null,wr=null,Er=!1;function _r(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;Er||null==yr||yr!==Z(r)||(r="selectionStart"in(r=yr)&&gr(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},wr&&fr(wr,r)||(wr=r,0<(r=Mr(br,"onSelect")).length&&(t=new pn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=yr)))}At("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),At("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),At(It,2);for(var Or="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),xr=0;xr<Or.length;xr++)Rt.set(Or[xr],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),s("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),s("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),s("onBeforeInput",["compositionend","keypress","textInput","paste"]),s("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Sr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),kr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Sr));function Cr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,o,i,l,u,s){if(Ge.apply(this,arguments),Be){if(!Be)throw Error(a(198));var c=$e;Be=!1,$e=null,Ve||(Ve=!0,qe=c)}}(r,t,void 0,e),e.currentTarget=null}function Pr(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var i=void 0;if(t)for(var a=r.length-1;0<=a;a--){var l=r[a],u=l.instance,s=l.currentTarget;if(l=l.listener,u!==i&&o.isPropagationStopped())break e;Cr(o,l,s),i=u}else for(a=0;a<r.length;a++){if(u=(l=r[a]).instance,s=l.currentTarget,l=l.listener,u!==i&&o.isPropagationStopped())break e;Cr(o,l,s),i=u}}}if(Ve)throw e=qe,Ve=!1,qe=null,e}function Tr(e,t){var n=io(t),r=e+"__bubble";n.has(r)||(Ir(t,e,2,!1),n.add(r))}var jr="_reactListening"+Math.random().toString(36).slice(2);function Nr(e){e[jr]||(e[jr]=!0,l.forEach((function(t){kr.has(t)||Rr(t,!1,e,null),Rr(t,!0,e,null)})))}function Rr(e,t,n,r){var o=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,i=n;if("selectionchange"===e&&9!==n.nodeType&&(i=n.ownerDocument),null!==r&&!t&&kr.has(e)){if("scroll"!==e)return;o|=2,i=r}var a=io(i),l=e+"__"+(t?"capture":"bubble");a.has(l)||(t&&(o|=4),Ir(i,e,o,t),a.add(l))}function Ir(e,t,n,r){var o=Rt.get(t);switch(void 0===o?2:o){case 0:o=Qt;break;case 1:o=Xt;break;default:o=Yt}n=o.bind(null,t,n,e),o=void 0,!Ue||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(o=!0),r?void 0!==o?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function Ar(e,t,n,r,o){var i=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var a=r.tag;if(3===a||4===a){var l=r.stateNode.containerInfo;if(l===o||8===l.nodeType&&l.parentNode===o)break;if(4===a)for(a=r.return;null!==a;){var u=a.tag;if((3===u||4===u)&&((u=a.stateNode.containerInfo)===o||8===u.nodeType&&u.parentNode===o))return;a=a.return}for(;null!==l;){if(null===(a=to(l)))return;if(5===(u=a.tag)||6===u){r=i=a;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(ze)return e();ze=!0;try{Le(e,t,n)}finally{ze=!1,De()}}((function(){var r=i,o=Se(n),a=[];e:{var l=Nt.get(e);if(void 0!==l){var u=pn,s=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":u=Tn;break;case"focusin":s="focus",u=yn;break;case"focusout":s="blur",u=yn;break;case"beforeblur":case"afterblur":u=yn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":u=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":u=mn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":u=Nn;break;case Ct:case Pt:case Tt:u=bn;break;case jt:u=Rn;break;case"scroll":u=hn;break;case"wheel":u=An;break;case"copy":case"cut":case"paste":u=En;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":u=jn}var c=0!=(4&t),f=!c&&"scroll"===e,p=c?null!==l?l+"Capture":null:l;c=[];for(var d,h=r;null!==h;){var v=(d=h).stateNode;if(5===d.tag&&null!==v&&(d=v,null!==p&&null!=(v=Fe(h,p))&&c.push(Lr(h,v,d))),f)break;h=h.return}0<c.length&&(l=new u(l,s,null,n,o),a.push({event:l,listeners:c}))}}if(0==(7&t)){if(u="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(s=n.relatedTarget||n.fromElement)||!to(s)&&!s[Jr])&&(u||l)&&(l=o.window===o?o:(l=o.ownerDocument)?l.defaultView||l.parentWindow:window,u?(u=r,null!==(s=(s=n.relatedTarget||n.toElement)?to(s):null)&&(s!==(f=Qe(s))||5!==s.tag&&6!==s.tag)&&(s=null)):(u=null,s=r),u!==s)){if(c=gn,v="onMouseLeave",p="onMouseEnter",h="mouse","pointerout"!==e&&"pointerover"!==e||(c=jn,v="onPointerLeave",p="onPointerEnter",h="pointer"),f=null==u?l:ro(u),d=null==s?l:ro(s),(l=new c(v,h+"leave",u,n,o)).target=f,l.relatedTarget=d,v=null,to(o)===r&&((c=new c(p,h+"enter",s,n,o)).target=d,c.relatedTarget=f,v=c),f=v,u&&s)e:{for(p=s,h=0,d=c=u;d;d=zr(d))h++;for(d=0,v=p;v;v=zr(v))d++;for(;0<h-d;)c=zr(c),h--;for(;0<d-h;)p=zr(p),d--;for(;h--;){if(c===p||null!==p&&c===p.alternate)break e;c=zr(c),p=zr(p)}c=null}else c=null;null!==u&&Dr(a,l,u,c,!1),null!==s&&null!==f&&Dr(a,f,s,c,!0)}if("select"===(u=(l=r?ro(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===u&&"file"===l.type)var g=Zn;else if(qn(l))if(Jn)g=ur;else{g=ar;var m=ir}else(u=l.nodeName)&&"input"===u.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=lr);switch(g&&(g=g(e,r))?Kn(a,g,n,o):(m&&m(e,l,r),"focusout"===e&&(m=l._wrapperState)&&m.controlled&&"number"===l.type&&oe(l,"number",l.value)),m=r?ro(r):window,e){case"focusin":(qn(m)||"true"===m.contentEditable)&&(yr=m,br=r,wr=null);break;case"focusout":wr=br=yr=null;break;case"mousedown":Er=!0;break;case"contextmenu":case"mouseup":case"dragend":Er=!1,_r(a,n,o);break;case"selectionchange":if(mr)break;case"keydown":case"keyup":_r(a,n,o)}var y;if(Mn)e:{switch(e){case"compositionstart":var b="onCompositionStart";break e;case"compositionend":b="onCompositionEnd";break e;case"compositionupdate":b="onCompositionUpdate";break e}b=void 0}else $n?Wn(e,n)&&(b="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(b="onCompositionStart");b&&(Fn&&"ko"!==n.locale&&($n||"onCompositionStart"!==b?"onCompositionEnd"===b&&$n&&(y=nn()):(en="value"in(Jt=o)?Jt.value:Jt.textContent,$n=!0)),0<(m=Mr(r,b)).length&&(b=new _n(b,e,null,n,o),a.push({event:b,listeners:m}),(y||null!==(y=Bn(n)))&&(b.data=y))),(y=Dn?function(e,t){switch(e){case"compositionend":return Bn(t);case"keypress":return 32!==t.which?null:(Hn=!0,Un);case"textInput":return(e=t.data)===Un&&Hn?null:e;default:return null}}(e,n):function(e,t){if($n)return"compositionend"===e||!Mn&&Wn(e,t)?(e=nn(),tn=en=Jt=null,$n=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Fn&&"ko"!==t.locale?null:t.data}}(e,n))&&0<(r=Mr(r,"onBeforeInput")).length&&(o=new _n("onBeforeInput","beforeinput",null,n,o),a.push({event:o,listeners:r}),o.data=y)}Pr(a,t)}))}function Lr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Mr(e,t){for(var n=t+"Capture",r=[];null!==e;){var o=e,i=o.stateNode;5===o.tag&&null!==i&&(o=i,null!=(i=Fe(e,n))&&r.unshift(Lr(e,i,o)),null!=(i=Fe(e,t))&&r.push(Lr(e,i,o))),e=e.return}return r}function zr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Dr(e,t,n,r,o){for(var i=t._reactName,a=[];null!==n&&n!==r;){var l=n,u=l.alternate,s=l.stateNode;if(null!==u&&u===r)break;5===l.tag&&null!==s&&(l=s,o?null!=(u=Fe(n,i))&&a.unshift(Lr(n,u,l)):o||null!=(u=Fe(n,i))&&a.push(Lr(n,u,l))),n=n.return}0!==a.length&&e.push({event:t,listeners:a})}function Fr(){}var Ur=null,Hr=null;function Wr(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function Br(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var $r="function"==typeof setTimeout?setTimeout:void 0,Vr="function"==typeof clearTimeout?clearTimeout:void 0;function qr(e){(1===e.nodeType||9===e.nodeType&&null!=(e=e.body))&&(e.textContent="")}function Kr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Gr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Qr=0,Xr=Math.random().toString(36).slice(2),Yr="__reactFiber$"+Xr,Zr="__reactProps$"+Xr,Jr="__reactContainer$"+Xr,eo="__reactEvents$"+Xr;function to(e){var t=e[Yr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jr]||n[Yr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Gr(e);null!==e;){if(n=e[Yr])return n;e=Gr(e)}return t}n=(e=n).parentNode}return null}function no(e){return!(e=e[Yr]||e[Jr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ro(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(a(33))}function oo(e){return e[Zr]||null}function io(e){var t=e[eo];return void 0===t&&(t=e[eo]=new Set),t}var ao=[],lo=-1;function uo(e){return{current:e}}function so(e){0>lo||(e.current=ao[lo],ao[lo]=null,lo--)}function co(e,t){lo++,ao[lo]=e.current,e.current=t}var fo={},po=uo(fo),ho=uo(!1),vo=fo;function go(e,t){var n=e.type.contextTypes;if(!n)return fo;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,i={};for(o in n)i[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function mo(e){return null!=e.childContextTypes}function yo(){so(ho),so(po)}function bo(e,t,n){if(po.current!==fo)throw Error(a(168));co(po,t),co(ho,n)}function wo(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var i in r=r.getChildContext())if(!(i in e))throw Error(a(108,K(t)||"Unknown",i));return o({},n,r)}function Eo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||fo,vo=po.current,co(po,e),co(ho,ho.current),!0}function _o(e,t,n){var r=e.stateNode;if(!r)throw Error(a(169));n?(e=wo(e,t,vo),r.__reactInternalMemoizedMergedChildContext=e,so(ho),so(po),co(po,e)):so(ho),co(ho,n)}var Oo=null,xo=null,So=i.unstable_runWithPriority,ko=i.unstable_scheduleCallback,Co=i.unstable_cancelCallback,Po=i.unstable_shouldYield,To=i.unstable_requestPaint,jo=i.unstable_now,No=i.unstable_getCurrentPriorityLevel,Ro=i.unstable_ImmediatePriority,Io=i.unstable_UserBlockingPriority,Ao=i.unstable_NormalPriority,Lo=i.unstable_LowPriority,Mo=i.unstable_IdlePriority,zo={},Do=void 0!==To?To:function(){},Fo=null,Uo=null,Ho=!1,Wo=jo(),Bo=1e4>Wo?jo:function(){return jo()-Wo};function $o(){switch(No()){case Ro:return 99;case Io:return 98;case Ao:return 97;case Lo:return 96;case Mo:return 95;default:throw Error(a(332))}}function Vo(e){switch(e){case 99:return Ro;case 98:return Io;case 97:return Ao;case 96:return Lo;case 95:return Mo;default:throw Error(a(332))}}function qo(e,t){return e=Vo(e),So(e,t)}function Ko(e,t,n){return e=Vo(e),ko(e,t,n)}function Go(){if(null!==Uo){var e=Uo;Uo=null,Co(e)}Qo()}function Qo(){if(!Ho&&null!==Fo){Ho=!0;var e=0;try{var t=Fo;qo(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Fo=null}catch(t){throw null!==Fo&&(Fo=Fo.slice(e+1)),ko(Ro,Go),t}finally{Ho=!1}}}var Xo=E.ReactCurrentBatchConfig;function Yo(e,t){if(e&&e.defaultProps){for(var n in t=o({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Zo=uo(null),Jo=null,ei=null,ti=null;function ni(){ti=ei=Jo=null}function ri(e){var t=Zo.current;so(Zo),e.type._context._currentValue=t}function oi(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function ii(e,t){Jo=e,ti=ei=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Ma=!0),e.firstContext=null)}function ai(e,t){if(ti!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(ti=e,t=1073741823),t={context:e,observedBits:t,next:null},null===ei){if(null===Jo)throw Error(a(308));ei=t,Jo.dependencies={lanes:0,firstContext:t,responders:null}}else ei=ei.next=t;return e._currentValue}var li=!1;function ui(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function si(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function ci(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function fi(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function pi(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var o=null,i=null;if(null!==(n=n.firstBaseUpdate)){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===i?o=i=a:i=i.next=a,n=n.next}while(null!==n);null===i?o=i=t:i=i.next=t}else o=i=t;return n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:i,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function di(e,t,n,r){var i=e.updateQueue;li=!1;var a=i.firstBaseUpdate,l=i.lastBaseUpdate,u=i.shared.pending;if(null!==u){i.shared.pending=null;var s=u,c=s.next;s.next=null,null===l?a=c:l.next=c,l=s;var f=e.alternate;if(null!==f){var p=(f=f.updateQueue).lastBaseUpdate;p!==l&&(null===p?f.firstBaseUpdate=c:p.next=c,f.lastBaseUpdate=s)}}if(null!==a){for(p=i.baseState,l=0,f=c=s=null;;){u=a.lane;var d=a.eventTime;if((r&u)===u){null!==f&&(f=f.next={eventTime:d,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var h=e,v=a;switch(u=t,d=n,v.tag){case 1:if("function"==typeof(h=v.payload)){p=h.call(d,p,u);break e}p=h;break e;case 3:h.flags=-4097&h.flags|64;case 0:if(null==(u="function"==typeof(h=v.payload)?h.call(d,p,u):h))break e;p=o({},p,u);break e;case 2:li=!0}}null!==a.callback&&(e.flags|=32,null===(u=i.effects)?i.effects=[a]:u.push(a))}else d={eventTime:d,lane:u,tag:a.tag,payload:a.payload,callback:a.callback,next:null},null===f?(c=f=d,s=p):f=f.next=d,l|=u;if(null===(a=a.next)){if(null===(u=i.shared.pending))break;a=u.next,u.next=null,i.lastBaseUpdate=u,i.shared.pending=null}}null===f&&(s=p),i.baseState=s,i.firstBaseUpdate=c,i.lastBaseUpdate=f,Dl|=l,e.lanes=l,e.memoizedState=p}}function hi(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(null!==o){if(r.callback=null,r=n,"function"!=typeof o)throw Error(a(191,o));o.call(r)}}}var vi=(new r.Component).refs;function gi(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:o({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var mi={isMounted:function(e){return!!(e=e._reactInternals)&&Qe(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=su(),o=cu(e),i=ci(r,o);i.payload=t,null!=n&&(i.callback=n),fi(e,i),fu(e,o,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=su(),o=cu(e),i=ci(r,o);i.tag=1,i.payload=t,null!=n&&(i.callback=n),fi(e,i),fu(e,o,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=su(),r=cu(e),o=ci(n,r);o.tag=2,null!=t&&(o.callback=t),fi(e,o),fu(e,r,n)}};function yi(e,t,n,r,o,i,a){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,i,a):!(t.prototype&&t.prototype.isPureReactComponent&&fr(n,r)&&fr(o,i))}function bi(e,t,n){var r=!1,o=fo,i=t.contextType;return"object"==typeof i&&null!==i?i=ai(i):(o=mo(t)?vo:po.current,i=(r=null!=(r=t.contextTypes))?go(e,o):fo),t=new t(n,i),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=mi,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=i),t}function wi(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&mi.enqueueReplaceState(t,t.state,null)}function Ei(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs=vi,ui(e);var i=t.contextType;"object"==typeof i&&null!==i?o.context=ai(i):(i=mo(t)?vo:po.current,o.context=go(e,i)),di(e,n,o,r),o.state=e.memoizedState,"function"==typeof(i=t.getDerivedStateFromProps)&&(gi(e,t,i,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&mi.enqueueReplaceState(o,o.state,null),di(e,n,o,r),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4)}var _i=Array.isArray;function Oi(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(a(309));var r=n.stateNode}if(!r)throw Error(a(147,e));var o=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===o?t.ref:(t=function(e){var t=r.refs;t===vi&&(t=r.refs={}),null===e?delete t[o]:t[o]=e},t._stringRef=o,t)}if("string"!=typeof e)throw Error(a(284));if(!n._owner)throw Error(a(290,e))}return e}function xi(e,t){if("textarea"!==e.type)throw Error(a(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function Si(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t){return(e=Bu(e,t)).index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function u(e,t,n,r){return null===t||6!==t.tag?((t=Ku(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function s(e,t,n,r){return null!==t&&t.elementType===n.type?((r=o(t,n.props)).ref=Oi(e,t,n),r.return=e,r):((r=$u(n.type,n.key,n.props,null,e.mode,r)).ref=Oi(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Gu(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function f(e,t,n,r,i){return null===t||7!==t.tag?((t=Vu(n,e.mode,r,i)).return=e,t):((t=o(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Ku(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case _:return(n=$u(t.type,t.key,t.props,null,e.mode,n)).ref=Oi(e,null,t),n.return=e,n;case O:return(t=Gu(t,e.mode,n)).return=e,t}if(_i(t)||W(t))return(t=Vu(t,e.mode,n,null)).return=e,t;xi(e,t)}return null}function d(e,t,n,r){var o=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==o?null:u(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case _:return n.key===o?n.type===x?f(e,t,n.props.children,r,o):s(e,t,n,r):null;case O:return n.key===o?c(e,t,n,r):null}if(_i(n)||W(n))return null!==o?null:f(e,t,n,r,null);xi(e,n)}return null}function h(e,t,n,r,o){if("string"==typeof r||"number"==typeof r)return u(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case _:return e=e.get(null===r.key?n:r.key)||null,r.type===x?f(t,e,r.props.children,o,r.key):s(t,e,r,o);case O:return c(t,e=e.get(null===r.key?n:r.key)||null,r,o)}if(_i(r)||W(r))return f(t,e=e.get(n)||null,r,o,null);xi(t,r)}return null}function v(o,a,l,u){for(var s=null,c=null,f=a,v=a=0,g=null;null!==f&&v<l.length;v++){f.index>v?(g=f,f=null):g=f.sibling;var m=d(o,f,l[v],u);if(null===m){null===f&&(f=g);break}e&&f&&null===m.alternate&&t(o,f),a=i(m,a,v),null===c?s=m:c.sibling=m,c=m,f=g}if(v===l.length)return n(o,f),s;if(null===f){for(;v<l.length;v++)null!==(f=p(o,l[v],u))&&(a=i(f,a,v),null===c?s=f:c.sibling=f,c=f);return s}for(f=r(o,f);v<l.length;v++)null!==(g=h(f,o,v,l[v],u))&&(e&&null!==g.alternate&&f.delete(null===g.key?v:g.key),a=i(g,a,v),null===c?s=g:c.sibling=g,c=g);return e&&f.forEach((function(e){return t(o,e)})),s}function g(o,l,u,s){var c=W(u);if("function"!=typeof c)throw Error(a(150));if(null==(u=c.call(u)))throw Error(a(151));for(var f=c=null,v=l,g=l=0,m=null,y=u.next();null!==v&&!y.done;g++,y=u.next()){v.index>g?(m=v,v=null):m=v.sibling;var b=d(o,v,y.value,s);if(null===b){null===v&&(v=m);break}e&&v&&null===b.alternate&&t(o,v),l=i(b,l,g),null===f?c=b:f.sibling=b,f=b,v=m}if(y.done)return n(o,v),c;if(null===v){for(;!y.done;g++,y=u.next())null!==(y=p(o,y.value,s))&&(l=i(y,l,g),null===f?c=y:f.sibling=y,f=y);return c}for(v=r(o,v);!y.done;g++,y=u.next())null!==(y=h(v,o,g,y.value,s))&&(e&&null!==y.alternate&&v.delete(null===y.key?g:y.key),l=i(y,l,g),null===f?c=y:f.sibling=y,f=y);return e&&v.forEach((function(e){return t(o,e)})),c}return function(e,r,i,u){var s="object"==typeof i&&null!==i&&i.type===x&&null===i.key;s&&(i=i.props.children);var c="object"==typeof i&&null!==i;if(c)switch(i.$$typeof){case _:e:{for(c=i.key,s=r;null!==s;){if(s.key===c){if(7===s.tag){if(i.type===x){n(e,s.sibling),(r=o(s,i.props.children)).return=e,e=r;break e}}else if(s.elementType===i.type){n(e,s.sibling),(r=o(s,i.props)).ref=Oi(e,s,i),r.return=e,e=r;break e}n(e,s);break}t(e,s),s=s.sibling}i.type===x?((r=Vu(i.props.children,e.mode,u,i.key)).return=e,e=r):((u=$u(i.type,i.key,i.props,null,e.mode,u)).ref=Oi(e,r,i),u.return=e,e=u)}return l(e);case O:e:{for(s=i.key;null!==r;){if(r.key===s){if(4===r.tag&&r.stateNode.containerInfo===i.containerInfo&&r.stateNode.implementation===i.implementation){n(e,r.sibling),(r=o(r,i.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Gu(i,e.mode,u)).return=e,e=r}return l(e)}if("string"==typeof i||"number"==typeof i)return i=""+i,null!==r&&6===r.tag?(n(e,r.sibling),(r=o(r,i)).return=e,e=r):(n(e,r),(r=Ku(i,e.mode,u)).return=e,e=r),l(e);if(_i(i))return v(e,r,i,u);if(W(i))return g(e,r,i,u);if(c&&xi(e,i),void 0===i&&!s)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(a(152,K(e.type)||"Component"))}return n(e,r)}}var ki=Si(!0),Ci=Si(!1),Pi={},Ti=uo(Pi),ji=uo(Pi),Ni=uo(Pi);function Ri(e){if(e===Pi)throw Error(a(174));return e}function Ii(e,t){switch(co(Ni,t),co(ji,e),co(Ti,Pi),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:de(null,"");break;default:t=de(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}so(Ti),co(Ti,t)}function Ai(){so(Ti),so(ji),so(Ni)}function Li(e){Ri(Ni.current);var t=Ri(Ti.current),n=de(t,e.type);t!==n&&(co(ji,e),co(Ti,n))}function Mi(e){ji.current===e&&(so(Ti),so(ji))}var zi=uo(0);function Di(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Fi=null,Ui=null,Hi=!1;function Wi(e,t){var n=Hu(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function Bi(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function $i(e){if(Hi){var t=Ui;if(t){var n=t;if(!Bi(e,t)){if(!(t=Kr(n.nextSibling))||!Bi(e,t))return e.flags=-1025&e.flags|2,Hi=!1,void(Fi=e);Wi(Fi,n)}Fi=e,Ui=Kr(t.firstChild)}else e.flags=-1025&e.flags|2,Hi=!1,Fi=e}}function Vi(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Fi=e}function qi(e){if(e!==Fi)return!1;if(!Hi)return Vi(e),Hi=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!Br(t,e.memoizedProps))for(t=Ui;t;)Wi(e,t),t=Kr(t.nextSibling);if(Vi(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(a(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){Ui=Kr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}Ui=null}}else Ui=Fi?Kr(e.stateNode.nextSibling):null;return!0}function Ki(){Ui=Fi=null,Hi=!1}var Gi=[];function Qi(){for(var e=0;e<Gi.length;e++)Gi[e]._workInProgressVersionPrimary=null;Gi.length=0}var Xi=E.ReactCurrentDispatcher,Yi=E.ReactCurrentBatchConfig,Zi=0,Ji=null,ea=null,ta=null,na=!1,ra=!1;function oa(){throw Error(a(321))}function ia(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!sr(e[n],t[n]))return!1;return!0}function aa(e,t,n,r,o,i){if(Zi=i,Ji=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Xi.current=null===e||null===e.memoizedState?Ra:Ia,e=n(r,o),ra){i=0;do{if(ra=!1,!(25>i))throw Error(a(301));i+=1,ta=ea=null,t.updateQueue=null,Xi.current=Aa,e=n(r,o)}while(ra)}if(Xi.current=Na,t=null!==ea&&null!==ea.next,Zi=0,ta=ea=Ji=null,na=!1,t)throw Error(a(300));return e}function la(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ta?Ji.memoizedState=ta=e:ta=ta.next=e,ta}function ua(){if(null===ea){var e=Ji.alternate;e=null!==e?e.memoizedState:null}else e=ea.next;var t=null===ta?Ji.memoizedState:ta.next;if(null!==t)ta=t,ea=e;else{if(null===e)throw Error(a(310));e={memoizedState:(ea=e).memoizedState,baseState:ea.baseState,baseQueue:ea.baseQueue,queue:ea.queue,next:null},null===ta?Ji.memoizedState=ta=e:ta=ta.next=e}return ta}function sa(e,t){return"function"==typeof t?t(e):t}function ca(e){var t=ua(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=ea,o=r.baseQueue,i=n.pending;if(null!==i){if(null!==o){var l=o.next;o.next=i.next,i.next=l}r.baseQueue=o=i,n.pending=null}if(null!==o){o=o.next,r=r.baseState;var u=l=i=null,s=o;do{var c=s.lane;if((Zi&c)===c)null!==u&&(u=u.next={lane:0,action:s.action,eagerReducer:s.eagerReducer,eagerState:s.eagerState,next:null}),r=s.eagerReducer===e?s.eagerState:e(r,s.action);else{var f={lane:c,action:s.action,eagerReducer:s.eagerReducer,eagerState:s.eagerState,next:null};null===u?(l=u=f,i=r):u=u.next=f,Ji.lanes|=c,Dl|=c}s=s.next}while(null!==s&&s!==o);null===u?i=r:u.next=l,sr(r,t.memoizedState)||(Ma=!0),t.memoizedState=r,t.baseState=i,t.baseQueue=u,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function fa(e){var t=ua(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,i=t.memoizedState;if(null!==o){n.pending=null;var l=o=o.next;do{i=e(i,l.action),l=l.next}while(l!==o);sr(i,t.memoizedState)||(Ma=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function pa(e,t,n){var r=t._getVersion;r=r(t._source);var o=t._workInProgressVersionPrimary;if(null!==o?e=o===r:(e=e.mutableReadLanes,(e=(Zi&e)===e)&&(t._workInProgressVersionPrimary=r,Gi.push(t))),e)return n(t._source);throw Gi.push(t),Error(a(350))}function da(e,t,n,r){var o=jl;if(null===o)throw Error(a(349));var i=t._getVersion,l=i(t._source),u=Xi.current,s=u.useState((function(){return pa(o,t,n)})),c=s[1],f=s[0];s=ta;var p=e.memoizedState,d=p.refs,h=d.getSnapshot,v=p.source;p=p.subscribe;var g=Ji;return e.memoizedState={refs:d,source:t,subscribe:r},u.useEffect((function(){d.getSnapshot=n,d.setSnapshot=c;var e=i(t._source);if(!sr(l,e)){e=n(t._source),sr(f,e)||(c(e),e=cu(g),o.mutableReadLanes|=e&o.pendingLanes),e=o.mutableReadLanes,o.entangledLanes|=e;for(var r=o.entanglements,a=e;0<a;){var u=31-Bt(a),s=1<<u;r[u]|=e,a&=~s}}}),[n,t,r]),u.useEffect((function(){return r(t._source,(function(){var e=d.getSnapshot,n=d.setSnapshot;try{n(e(t._source));var r=cu(g);o.mutableReadLanes|=r&o.pendingLanes}catch(e){n((function(){throw e}))}}))}),[t,r]),sr(h,n)&&sr(v,t)&&sr(p,r)||((e={pending:null,dispatch:null,lastRenderedReducer:sa,lastRenderedState:f}).dispatch=c=ja.bind(null,Ji,e),s.queue=e,s.baseQueue=null,f=pa(o,t,n),s.memoizedState=s.baseState=f),f}function ha(e,t,n){return da(ua(),e,t,n)}function va(e){var t=la();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:sa,lastRenderedState:e}).dispatch=ja.bind(null,Ji,e),[t.memoizedState,e]}function ga(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Ji.updateQueue)?(t={lastEffect:null},Ji.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function ma(e){return e={current:e},la().memoizedState=e}function ya(){return ua().memoizedState}function ba(e,t,n,r){var o=la();Ji.flags|=e,o.memoizedState=ga(1|t,n,void 0,void 0===r?null:r)}function wa(e,t,n,r){var o=ua();r=void 0===r?null:r;var i=void 0;if(null!==ea){var a=ea.memoizedState;if(i=a.destroy,null!==r&&ia(r,a.deps))return void ga(t,n,i,r)}Ji.flags|=e,o.memoizedState=ga(1|t,n,i,r)}function Ea(e,t){return ba(516,4,e,t)}function _a(e,t){return wa(516,4,e,t)}function Oa(e,t){return wa(4,2,e,t)}function xa(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Sa(e,t,n){return n=null!=n?n.concat([e]):null,wa(4,2,xa.bind(null,t,e),n)}function ka(){}function Ca(e,t){var n=ua();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ia(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Pa(e,t){var n=ua();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ia(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Ta(e,t){var n=$o();qo(98>n?98:n,(function(){e(!0)})),qo(97<n?97:n,(function(){var n=Yi.transition;Yi.transition=1;try{e(!1),t()}finally{Yi.transition=n}}))}function ja(e,t,n){var r=su(),o=cu(e),i={lane:o,action:n,eagerReducer:null,eagerState:null,next:null},a=t.pending;if(null===a?i.next=i:(i.next=a.next,a.next=i),t.pending=i,a=e.alternate,e===Ji||null!==a&&a===Ji)ra=na=!0;else{if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=t.lastRenderedReducer))try{var l=t.lastRenderedState,u=a(l,n);if(i.eagerReducer=a,i.eagerState=u,sr(u,l))return}catch(e){}fu(e,o,r)}}var Na={readContext:ai,useCallback:oa,useContext:oa,useEffect:oa,useImperativeHandle:oa,useLayoutEffect:oa,useMemo:oa,useReducer:oa,useRef:oa,useState:oa,useDebugValue:oa,useDeferredValue:oa,useTransition:oa,useMutableSource:oa,useOpaqueIdentifier:oa,unstable_isNewReconciler:!1},Ra={readContext:ai,useCallback:function(e,t){return la().memoizedState=[e,void 0===t?null:t],e},useContext:ai,useEffect:Ea,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,ba(4,2,xa.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ba(4,2,e,t)},useMemo:function(e,t){var n=la();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=la();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=ja.bind(null,Ji,e),[r.memoizedState,e]},useRef:ma,useState:va,useDebugValue:ka,useDeferredValue:function(e){var t=va(e),n=t[0],r=t[1];return Ea((function(){var t=Yi.transition;Yi.transition=1;try{r(e)}finally{Yi.transition=t}}),[e]),n},useTransition:function(){var e=va(!1),t=e[0];return ma(e=Ta.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=la();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},da(r,e,t,n)},useOpaqueIdentifier:function(){if(Hi){var e=!1,t=function(e){return{$$typeof:L,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Qr++).toString(36))),Error(a(355))})),n=va(t)[1];return 0==(2&Ji.mode)&&(Ji.flags|=516,ga(5,(function(){n("r:"+(Qr++).toString(36))}),void 0,null)),t}return va(t="r:"+(Qr++).toString(36)),t},unstable_isNewReconciler:!1},Ia={readContext:ai,useCallback:Ca,useContext:ai,useEffect:_a,useImperativeHandle:Sa,useLayoutEffect:Oa,useMemo:Pa,useReducer:ca,useRef:ya,useState:function(){return ca(sa)},useDebugValue:ka,useDeferredValue:function(e){var t=ca(sa),n=t[0],r=t[1];return _a((function(){var t=Yi.transition;Yi.transition=1;try{r(e)}finally{Yi.transition=t}}),[e]),n},useTransition:function(){var e=ca(sa)[0];return[ya().current,e]},useMutableSource:ha,useOpaqueIdentifier:function(){return ca(sa)[0]},unstable_isNewReconciler:!1},Aa={readContext:ai,useCallback:Ca,useContext:ai,useEffect:_a,useImperativeHandle:Sa,useLayoutEffect:Oa,useMemo:Pa,useReducer:fa,useRef:ya,useState:function(){return fa(sa)},useDebugValue:ka,useDeferredValue:function(e){var t=fa(sa),n=t[0],r=t[1];return _a((function(){var t=Yi.transition;Yi.transition=1;try{r(e)}finally{Yi.transition=t}}),[e]),n},useTransition:function(){var e=fa(sa)[0];return[ya().current,e]},useMutableSource:ha,useOpaqueIdentifier:function(){return fa(sa)[0]},unstable_isNewReconciler:!1},La=E.ReactCurrentOwner,Ma=!1;function za(e,t,n,r){t.child=null===e?Ci(t,null,n,r):ki(t,e.child,n,r)}function Da(e,t,n,r,o){n=n.render;var i=t.ref;return ii(t,o),r=aa(e,t,n,r,i,o),null===e||Ma?(t.flags|=1,za(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,nl(e,t,o))}function Fa(e,t,n,r,o,i){if(null===e){var a=n.type;return"function"!=typeof a||Wu(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=$u(n.type,null,r,t,t.mode,i)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,Ua(e,t,a,r,o,i))}return a=e.child,0==(o&i)&&(o=a.memoizedProps,(n=null!==(n=n.compare)?n:fr)(o,r)&&e.ref===t.ref)?nl(e,t,i):(t.flags|=1,(e=Bu(a,r)).ref=t.ref,e.return=t,t.child=e)}function Ua(e,t,n,r,o,i){if(null!==e&&fr(e.memoizedProps,r)&&e.ref===t.ref){if(Ma=!1,0==(i&o))return t.lanes=e.lanes,nl(e,t,i);0!=(16384&e.flags)&&(Ma=!0)}return Ba(e,t,n,r,i)}function Ha(e,t,n){var r=t.pendingProps,o=r.children,i=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},bu(0,n);else{if(0==(1073741824&n))return e=null!==i?i.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},bu(0,e),null;t.memoizedState={baseLanes:0},bu(0,null!==i?i.baseLanes:n)}else null!==i?(r=i.baseLanes|n,t.memoizedState=null):r=n,bu(0,r);return za(e,t,o,n),t.child}function Wa(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function Ba(e,t,n,r,o){var i=mo(n)?vo:po.current;return i=go(t,i),ii(t,o),n=aa(e,t,n,r,i,o),null===e||Ma?(t.flags|=1,za(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,nl(e,t,o))}function $a(e,t,n,r,o){if(mo(n)){var i=!0;Eo(t)}else i=!1;if(ii(t,o),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),bi(t,n,r),Ei(t,n,r,o),r=!0;else if(null===e){var a=t.stateNode,l=t.memoizedProps;a.props=l;var u=a.context,s=n.contextType;s="object"==typeof s&&null!==s?ai(s):go(t,s=mo(n)?vo:po.current);var c=n.getDerivedStateFromProps,f="function"==typeof c||"function"==typeof a.getSnapshotBeforeUpdate;f||"function"!=typeof a.UNSAFE_componentWillReceiveProps&&"function"!=typeof a.componentWillReceiveProps||(l!==r||u!==s)&&wi(t,a,r,s),li=!1;var p=t.memoizedState;a.state=p,di(t,r,a,o),u=t.memoizedState,l!==r||p!==u||ho.current||li?("function"==typeof c&&(gi(t,n,c,r),u=t.memoizedState),(l=li||yi(t,n,l,r,p,u,s))?(f||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||("function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount()),"function"==typeof a.componentDidMount&&(t.flags|=4)):("function"==typeof a.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=u),a.props=r,a.state=u,a.context=s,r=l):("function"==typeof a.componentDidMount&&(t.flags|=4),r=!1)}else{a=t.stateNode,si(e,t),l=t.memoizedProps,s=t.type===t.elementType?l:Yo(t.type,l),a.props=s,f=t.pendingProps,p=a.context,u="object"==typeof(u=n.contextType)&&null!==u?ai(u):go(t,u=mo(n)?vo:po.current);var d=n.getDerivedStateFromProps;(c="function"==typeof d||"function"==typeof a.getSnapshotBeforeUpdate)||"function"!=typeof a.UNSAFE_componentWillReceiveProps&&"function"!=typeof a.componentWillReceiveProps||(l!==f||p!==u)&&wi(t,a,r,u),li=!1,p=t.memoizedState,a.state=p,di(t,r,a,o);var h=t.memoizedState;l!==f||p!==h||ho.current||li?("function"==typeof d&&(gi(t,n,d,r),h=t.memoizedState),(s=li||yi(t,n,s,r,p,h,u))?(c||"function"!=typeof a.UNSAFE_componentWillUpdate&&"function"!=typeof a.componentWillUpdate||("function"==typeof a.componentWillUpdate&&a.componentWillUpdate(r,h,u),"function"==typeof a.UNSAFE_componentWillUpdate&&a.UNSAFE_componentWillUpdate(r,h,u)),"function"==typeof a.componentDidUpdate&&(t.flags|=4),"function"==typeof a.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof a.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof a.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=h),a.props=r,a.state=h,a.context=u,r=s):("function"!=typeof a.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof a.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),r=!1)}return Va(e,t,n,r,i,o)}function Va(e,t,n,r,o,i){Wa(e,t);var a=0!=(64&t.flags);if(!r&&!a)return o&&_o(t,n,!1),nl(e,t,i);r=t.stateNode,La.current=t;var l=a&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&a?(t.child=ki(t,e.child,null,i),t.child=ki(t,null,l,i)):za(e,t,l,i),t.memoizedState=r.state,o&&_o(t,n,!0),t.child}function qa(e){var t=e.stateNode;t.pendingContext?bo(0,t.pendingContext,t.pendingContext!==t.context):t.context&&bo(0,t.context,!1),Ii(e,t.containerInfo)}var Ka,Ga,Qa,Xa={dehydrated:null,retryLane:0};function Ya(e,t,n){var r,o=t.pendingProps,i=zi.current,a=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&i)),r?(a=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===o.fallback||!0===o.unstable_avoidThisFallback||(i|=1),co(zi,1&i),null===e?(void 0!==o.fallback&&$i(t),e=o.children,i=o.fallback,a?(e=Za(t,e,i,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xa,e):"number"==typeof o.unstable_expectedLoadTime?(e=Za(t,e,i,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xa,t.lanes=33554432,e):((n=qu({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,a?(o=function(e,t,n,r,o){var i=t.mode,a=e.child;e=a.sibling;var l={mode:"hidden",children:n};return 0==(2&i)&&t.child!==a?((n=t.child).childLanes=0,n.pendingProps=l,null!==(a=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=a,a.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Bu(a,l),null!==e?r=Bu(e,r):(r=Vu(r,i,o,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}(e,t,o.children,o.fallback,n),a=t.child,i=e.child.memoizedState,a.memoizedState=null===i?{baseLanes:n}:{baseLanes:i.baseLanes|n},a.childLanes=e.childLanes&~n,t.memoizedState=Xa,o):(n=function(e,t,n,r){var o=e.child;return e=o.sibling,n=Bu(o,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}(e,t,o.children,n),t.memoizedState=null,n))}function Za(e,t,n,r){var o=e.mode,i=e.child;return t={mode:"hidden",children:t},0==(2&o)&&null!==i?(i.childLanes=0,i.pendingProps=t):i=qu(t,o,0,null),n=Vu(n,o,r,null),i.return=e,n.return=e,i.sibling=n,e.child=i,n}function Ja(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),oi(e.return,t)}function el(e,t,n,r,o,i){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o,lastEffect:i}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=n,a.tailMode=o,a.lastEffect=i)}function tl(e,t,n){var r=t.pendingProps,o=r.revealOrder,i=r.tail;if(za(e,t,r.children,n),0!=(2&(r=zi.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Ja(e,n);else if(19===e.tag)Ja(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(co(zi,r),0==(2&t.mode))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===Di(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),el(t,!1,o,n,i,t.lastEffect);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===Di(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}el(t,!0,n,null,i,t.lastEffect);break;case"together":el(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function nl(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Dl|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(a(153));if(null!==t.child){for(n=Bu(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Bu(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function rl(e,t){if(!Hi)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ol(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return mo(t.type)&&yo(),null;case 3:return Ai(),so(ho),so(po),Qi(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(qi(t)?t.flags|=4:r.hydrate||(t.flags|=256)),null;case 5:Mi(t);var i=Ri(Ni.current);if(n=t.type,null!==e&&null!=t.stateNode)Ga(e,t,n,r),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(a(166));return null}if(e=Ri(Ti.current),qi(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Yr]=t,r[Zr]=l,n){case"dialog":Tr("cancel",r),Tr("close",r);break;case"iframe":case"object":case"embed":Tr("load",r);break;case"video":case"audio":for(e=0;e<Sr.length;e++)Tr(Sr[e],r);break;case"source":Tr("error",r);break;case"img":case"image":case"link":Tr("error",r),Tr("load",r);break;case"details":Tr("toggle",r);break;case"input":ee(r,l),Tr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Tr("invalid",r);break;case"textarea":ue(r,l),Tr("invalid",r)}for(var s in Oe(n,l),e=null,l)l.hasOwnProperty(s)&&(i=l[s],"children"===s?"string"==typeof i?r.textContent!==i&&(e=["children",i]):"number"==typeof i&&r.textContent!==""+i&&(e=["children",""+i]):u.hasOwnProperty(s)&&null!=i&&"onScroll"===s&&Tr("scroll",r));switch(n){case"input":X(r),re(r,l,!0);break;case"textarea":X(r),ce(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=Fr)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(s=9===i.nodeType?i:i.ownerDocument,e===fe&&(e=pe(n)),e===fe?"script"===n?((e=s.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),"select"===n&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[Yr]=t,e[Zr]=r,Ka(e,t),t.stateNode=e,s=xe(n,r),n){case"dialog":Tr("cancel",e),Tr("close",e),i=r;break;case"iframe":case"object":case"embed":Tr("load",e),i=r;break;case"video":case"audio":for(i=0;i<Sr.length;i++)Tr(Sr[i],e);i=r;break;case"source":Tr("error",e),i=r;break;case"img":case"image":case"link":Tr("error",e),Tr("load",e),i=r;break;case"details":Tr("toggle",e),i=r;break;case"input":ee(e,r),i=J(e,r),Tr("invalid",e);break;case"option":i=ie(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},i=o({},r,{value:void 0}),Tr("invalid",e);break;case"textarea":ue(e,r),i=le(e,r),Tr("invalid",e);break;default:i=r}Oe(n,i);var c=i;for(l in c)if(c.hasOwnProperty(l)){var f=c[l];"style"===l?Ee(e,f):"dangerouslySetInnerHTML"===l?null!=(f=f?f.__html:void 0)&&ge(e,f):"children"===l?"string"==typeof f?("textarea"!==n||""!==f)&&me(e,f):"number"==typeof f&&me(e,""+f):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(u.hasOwnProperty(l)?null!=f&&"onScroll"===l&&Tr("scroll",e):null!=f&&w(e,l,f,s))}switch(n){case"input":X(e),re(e,r,!1);break;case"textarea":X(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+G(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ae(e,!!r.multiple,l,!1):null!=r.defaultValue&&ae(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof i.onClick&&(e.onclick=Fr)}Wr(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Qa(0,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(a(166));n=Ri(Ni.current),Ri(Ti.current),qi(t)?(r=t.stateNode,n=t.memoizedProps,r[Yr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Yr]=t,t.stateNode=r)}return null;case 13:return so(zi),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&qi(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&zi.current)?0===Ll&&(Ll=3):(0!==Ll&&3!==Ll||(Ll=4),null===jl||0==(134217727&Dl)&&0==(134217727&Fl)||vu(jl,Rl))),(r||n)&&(t.flags|=4),null);case 4:return Ai(),null===e&&Nr(t.stateNode.containerInfo),null;case 10:return ri(t),null;case 19:if(so(zi),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(s=r.rendering))if(l)rl(r,!1);else{if(0!==Ll||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(s=Di(e))){for(t.flags|=64,rl(r,!1),null!==(l=s.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(s=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=s.childLanes,l.lanes=s.lanes,l.child=s.child,l.memoizedProps=s.memoizedProps,l.memoizedState=s.memoizedState,l.updateQueue=s.updateQueue,l.type=s.type,e=s.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return co(zi,1&zi.current|2),t.child}e=e.sibling}null!==r.tail&&Bo()>Bl&&(t.flags|=64,l=!0,rl(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=Di(s))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),rl(r,!0),null===r.tail&&"hidden"===r.tailMode&&!s.alternate&&!Hi)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*Bo()-r.renderingStartTime>Bl&&1073741824!==n&&(t.flags|=64,l=!0,rl(r,!1),t.lanes=33554432);r.isBackwards?(s.sibling=t.child,t.child=s):(null!==(n=r.last)?n.sibling=s:t.child=s,r.last=s)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=Bo(),n.sibling=null,t=zi.current,co(zi,l?1&t|2:1&t),n):null;case 23:case 24:return wu(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(a(156,t.tag))}function il(e){switch(e.tag){case 1:mo(e.type)&&yo();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Ai(),so(ho),so(po),Qi(),0!=(64&(t=e.flags)))throw Error(a(285));return e.flags=-4097&t|64,e;case 5:return Mi(e),null;case 13:return so(zi),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return so(zi),null;case 4:return Ai(),null;case 10:return ri(e),null;case 23:case 24:return wu(),null;default:return null}}function al(e,t){try{var n="",r=t;do{n+=q(r),r=r.return}while(r);var o=n}catch(e){o="\nError generating stack: "+e.message+"\n"+e.stack}return{value:e,source:t,stack:o}}function ll(e,t){try{console.error(t.value)}catch(e){setTimeout((function(){throw e}))}}Ka=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Ga=function(e,t,n,r){var i=e.memoizedProps;if(i!==r){e=t.stateNode,Ri(Ti.current);var a,l=null;switch(n){case"input":i=J(e,i),r=J(e,r),l=[];break;case"option":i=ie(e,i),r=ie(e,r),l=[];break;case"select":i=o({},i,{value:void 0}),r=o({},r,{value:void 0}),l=[];break;case"textarea":i=le(e,i),r=le(e,r),l=[];break;default:"function"!=typeof i.onClick&&"function"==typeof r.onClick&&(e.onclick=Fr)}for(f in Oe(n,r),n=null,i)if(!r.hasOwnProperty(f)&&i.hasOwnProperty(f)&&null!=i[f])if("style"===f){var s=i[f];for(a in s)s.hasOwnProperty(a)&&(n||(n={}),n[a]="")}else"dangerouslySetInnerHTML"!==f&&"children"!==f&&"suppressContentEditableWarning"!==f&&"suppressHydrationWarning"!==f&&"autoFocus"!==f&&(u.hasOwnProperty(f)?l||(l=[]):(l=l||[]).push(f,null));for(f in r){var c=r[f];if(s=null!=i?i[f]:void 0,r.hasOwnProperty(f)&&c!==s&&(null!=c||null!=s))if("style"===f)if(s){for(a in s)!s.hasOwnProperty(a)||c&&c.hasOwnProperty(a)||(n||(n={}),n[a]="");for(a in c)c.hasOwnProperty(a)&&s[a]!==c[a]&&(n||(n={}),n[a]=c[a])}else n||(l||(l=[]),l.push(f,n)),n=c;else"dangerouslySetInnerHTML"===f?(c=c?c.__html:void 0,s=s?s.__html:void 0,null!=c&&s!==c&&(l=l||[]).push(f,c)):"children"===f?"string"!=typeof c&&"number"!=typeof c||(l=l||[]).push(f,""+c):"suppressContentEditableWarning"!==f&&"suppressHydrationWarning"!==f&&(u.hasOwnProperty(f)?(null!=c&&"onScroll"===f&&Tr("scroll",e),l||s===c||(l=[])):"object"==typeof c&&null!==c&&c.$$typeof===L?c.toString():(l=l||[]).push(f,c))}n&&(l=l||[]).push("style",n);var f=l;(t.updateQueue=f)&&(t.flags|=4)}},Qa=function(e,t,n,r){n!==r&&(t.flags|=4)};var ul="function"==typeof WeakMap?WeakMap:Map;function sl(e,t,n){(n=ci(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Kl||(Kl=!0,Gl=r),ll(0,t)},n}function cl(e,t,n){(n=ci(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return ll(0,t),r(o)}}var i=e.stateNode;return null!==i&&"function"==typeof i.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Ql?Ql=new Set([this]):Ql.add(this),ll(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var fl="function"==typeof WeakSet?WeakSet:Set;function pl(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(t){zu(e,t)}else t.current=null}function dl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Yo(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&qr(t.stateNode.containerInfo))}throw Error(a(163))}function hl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var o=e;r=o.next,0!=(4&(o=o.tag))&&0!=(1&o)&&(Au(n,e),Iu(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Yo(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&hi(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}hi(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&Wr(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&Et(n)))))}throw Error(a(163))}function vl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var o=n.memoizedProps.style;o=null!=o&&o.hasOwnProperty("display")?o.display:null,r.style.display=we("display",o)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function gl(e,t){if(xo&&"function"==typeof xo.onCommitFiberUnmount)try{xo.onCommitFiberUnmount(Oo,t)}catch(e){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,o=r.destroy;if(r=r.tag,void 0!==o)if(0!=(4&r))Au(t,n);else{r=t;try{o()}catch(e){zu(r,e)}}n=n.next}while(n!==e)}break;case 1:if(pl(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(e){zu(t,e)}break;case 5:pl(t);break;case 4:_l(e,t)}}function ml(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function yl(e){return 5===e.tag||3===e.tag||4===e.tag}function bl(e){e:{for(var t=e.return;null!==t;){if(yl(t))break e;t=t.return}throw Error(a(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(a(161))}16&n.flags&&(me(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||yl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?wl(e,n,t):El(e,n,t)}function wl(e,t,n){var r=e.tag,o=5===r||6===r;if(o)e=o?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Fr));else if(4!==r&&null!==(e=e.child))for(wl(e,t,n),e=e.sibling;null!==e;)wl(e,t,n),e=e.sibling}function El(e,t,n){var r=e.tag,o=5===r||6===r;if(o)e=o?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(El(e,t,n),e=e.sibling;null!==e;)El(e,t,n),e=e.sibling}function _l(e,t){for(var n,r,o=t,i=!1;;){if(!i){i=o.return;e:for(;;){if(null===i)throw Error(a(160));switch(n=i.stateNode,i.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}i=i.return}i=!0}if(5===o.tag||6===o.tag){e:for(var l=e,u=o,s=u;;)if(gl(l,s),null!==s.child&&4!==s.tag)s.child.return=s,s=s.child;else{if(s===u)break e;for(;null===s.sibling;){if(null===s.return||s.return===u)break e;s=s.return}s.sibling.return=s.return,s=s.sibling}r?(l=n,u=o.stateNode,8===l.nodeType?l.parentNode.removeChild(u):l.removeChild(u)):n.removeChild(o.stateNode)}else if(4===o.tag){if(null!==o.child){n=o.stateNode.containerInfo,r=!0,o.child.return=o,o=o.child;continue}}else if(gl(e,o),null!==o.child){o.child.return=o,o=o.child;continue}if(o===t)break;for(;null===o.sibling;){if(null===o.return||o.return===t)return;4===(o=o.return).tag&&(i=!1)}o.sibling.return=o.return,o=o.sibling}}function Ol(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var o=null!==e?e.memoizedProps:r;e=t.type;var i=t.updateQueue;if(t.updateQueue=null,null!==i){for(n[Zr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),xe(e,o),t=xe(e,r),o=0;o<i.length;o+=2){var l=i[o],u=i[o+1];"style"===l?Ee(n,u):"dangerouslySetInnerHTML"===l?ge(n,u):"children"===l?me(n,u):w(n,l,u,t)}switch(e){case"input":ne(n,r);break;case"textarea":se(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(i=r.value)?ae(n,!!r.multiple,i,!1):e!==!!r.multiple&&(null!=r.defaultValue?ae(n,!!r.multiple,r.defaultValue,!0):ae(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(a(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,Et(n.containerInfo)));case 13:return null!==t.memoizedState&&(Wl=Bo(),vl(t.child,!0)),void xl(t);case 19:return void xl(t);case 23:case 24:return void vl(t,null!==t.memoizedState)}throw Error(a(163))}function xl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new fl),t.forEach((function(t){var r=Fu.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Sl(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&null!==(t=t.memoizedState)&&null===t.dehydrated}var kl=Math.ceil,Cl=E.ReactCurrentDispatcher,Pl=E.ReactCurrentOwner,Tl=0,jl=null,Nl=null,Rl=0,Il=0,Al=uo(0),Ll=0,Ml=null,zl=0,Dl=0,Fl=0,Ul=0,Hl=null,Wl=0,Bl=1/0;function $l(){Bl=Bo()+500}var Vl,ql=null,Kl=!1,Gl=null,Ql=null,Xl=!1,Yl=null,Zl=90,Jl=[],eu=[],tu=null,nu=0,ru=null,ou=-1,iu=0,au=0,lu=null,uu=!1;function su(){return 0!=(48&Tl)?Bo():-1!==ou?ou:ou=Bo()}function cu(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===$o()?1:2;if(0===iu&&(iu=zl),0!==Xo.transition){0!==au&&(au=null!==Hl?Hl.pendingLanes:0),e=iu;var t=4186112&~au;return 0==(t&=-t)&&0==(t=(e=4186112&~e)&-e)&&(t=8192),t}return e=$o(),e=Ft(0!=(4&Tl)&&98===e?12:e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),iu)}function fu(e,t,n){if(50<nu)throw nu=0,ru=null,Error(a(185));if(null===(e=pu(e,t)))return null;Wt(e,t,n),e===jl&&(Fl|=t,4===Ll&&vu(e,Rl));var r=$o();1===t?0!=(8&Tl)&&0==(48&Tl)?gu(e):(du(e,n),0===Tl&&($l(),Go())):(0==(4&Tl)||98!==r&&99!==r||(null===tu?tu=new Set([e]):tu.add(e)),du(e,n)),Hl=e}function pu(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function du(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,o=e.pingedLanes,i=e.expirationTimes,l=e.pendingLanes;0<l;){var u=31-Bt(l),s=1<<u,c=i[u];if(-1===c){if(0==(s&r)||0!=(s&o)){c=t,Mt(s);var f=Lt;i[u]=10<=f?c+250:6<=f?c+5e3:-1}}else c<=t&&(e.expiredLanes|=s);l&=~s}if(r=zt(e,e===jl?Rl:0),t=Lt,0===r)null!==n&&(n!==zo&&Co(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==zo&&Co(n)}15===t?(n=gu.bind(null,e),null===Fo?(Fo=[n],Uo=ko(Ro,Qo)):Fo.push(n),n=zo):14===t?n=Ko(99,gu.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(a(358,e))}}(t),n=Ko(n,hu.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function hu(e){if(ou=-1,au=iu=0,0!=(48&Tl))throw Error(a(327));var t=e.callbackNode;if(Ru()&&e.callbackNode!==t)return null;var n=zt(e,e===jl?Rl:0);if(0===n)return null;var r=n,o=Tl;Tl|=16;var i=Ou();for(jl===e&&Rl===r||($l(),Eu(e,r));;)try{ku();break}catch(t){_u(e,t)}if(ni(),Cl.current=i,Tl=o,null!==Nl?r=0:(jl=null,Rl=0,r=Ll),0!=(zl&Fl))Eu(e,0);else if(0!==r){if(2===r&&(Tl|=64,e.hydrate&&(e.hydrate=!1,qr(e.containerInfo)),0!==(n=Dt(e))&&(r=xu(e,n))),1===r)throw t=Ml,Eu(e,0),vu(e,n),du(e,Bo()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(a(345));case 2:case 5:Tu(e);break;case 3:if(vu(e,n),(62914560&n)===n&&10<(r=Wl+500-Bo())){if(0!==zt(e,0))break;if(((o=e.suspendedLanes)&n)!==n){su(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=$r(Tu.bind(null,e),r);break}Tu(e);break;case 4:if(vu(e,n),(4186112&n)===n)break;for(r=e.eventTimes,o=-1;0<n;){var l=31-Bt(n);i=1<<l,(l=r[l])>o&&(o=l),n&=~i}if(n=o,10<(n=(120>(n=Bo()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*kl(n/1960))-n)){e.timeoutHandle=$r(Tu.bind(null,e),n);break}Tu(e);break;default:throw Error(a(329))}}return du(e,Bo()),e.callbackNode===t?hu.bind(null,e):null}function vu(e,t){for(t&=~Ul,t&=~Fl,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-Bt(t),r=1<<n;e[n]=-1,t&=~r}}function gu(e){if(0!=(48&Tl))throw Error(a(327));if(Ru(),e===jl&&0!=(e.expiredLanes&Rl)){var t=Rl,n=xu(e,t);0!=(zl&Fl)&&(n=xu(e,t=zt(e,t)))}else n=xu(e,t=zt(e,0));if(0!==e.tag&&2===n&&(Tl|=64,e.hydrate&&(e.hydrate=!1,qr(e.containerInfo)),0!==(t=Dt(e))&&(n=xu(e,t))),1===n)throw n=Ml,Eu(e,0),vu(e,t),du(e,Bo()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Tu(e),du(e,Bo()),null}function mu(e,t){var n=Tl;Tl|=1;try{return e(t)}finally{0===(Tl=n)&&($l(),Go())}}function yu(e,t){var n=Tl;Tl&=-2,Tl|=8;try{return e(t)}finally{0===(Tl=n)&&($l(),Go())}}function bu(e,t){co(Al,Il),Il|=t,zl|=t}function wu(){Il=Al.current,so(Al)}function Eu(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Vr(n)),null!==Nl)for(n=Nl.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&yo();break;case 3:Ai(),so(ho),so(po),Qi();break;case 5:Mi(r);break;case 4:Ai();break;case 13:case 19:so(zi);break;case 10:ri(r);break;case 23:case 24:wu()}n=n.return}jl=e,Nl=Bu(e.current,null),Rl=Il=zl=t,Ll=0,Ml=null,Ul=Fl=Dl=0}function _u(e,t){for(;;){var n=Nl;try{if(ni(),Xi.current=Na,na){for(var r=Ji.memoizedState;null!==r;){var o=r.queue;null!==o&&(o.pending=null),r=r.next}na=!1}if(Zi=0,ta=ea=Ji=null,ra=!1,Pl.current=null,null===n||null===n.return){Ll=1,Ml=t,Nl=null;break}e:{var i=e,a=n.return,l=n,u=t;if(t=Rl,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==u&&"object"==typeof u&&"function"==typeof u.then){var s=u;if(0==(2&l.mode)){var c=l.alternate;c?(l.updateQueue=c.updateQueue,l.memoizedState=c.memoizedState,l.lanes=c.lanes):(l.updateQueue=null,l.memoizedState=null)}var f=0!=(1&zi.current),p=a;do{var d;if(d=13===p.tag){var h=p.memoizedState;if(null!==h)d=null!==h.dehydrated;else{var v=p.memoizedProps;d=void 0!==v.fallback&&(!0!==v.unstable_avoidThisFallback||!f)}}if(d){var g=p.updateQueue;if(null===g){var m=new Set;m.add(s),p.updateQueue=m}else g.add(s);if(0==(2&p.mode)){if(p.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var y=ci(-1,1);y.tag=2,fi(l,y)}l.lanes|=1;break e}u=void 0,l=t;var b=i.pingCache;if(null===b?(b=i.pingCache=new ul,u=new Set,b.set(s,u)):void 0===(u=b.get(s))&&(u=new Set,b.set(s,u)),!u.has(l)){u.add(l);var w=Du.bind(null,i,s,l);s.then(w,w)}p.flags|=4096,p.lanes=t;break e}p=p.return}while(null!==p);u=Error((K(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Ll&&(Ll=2),u=al(u,l),p=a;do{switch(p.tag){case 3:i=u,p.flags|=4096,t&=-t,p.lanes|=t,pi(p,sl(0,i,t));break e;case 1:i=u;var E=p.type,_=p.stateNode;if(0==(64&p.flags)&&("function"==typeof E.getDerivedStateFromError||null!==_&&"function"==typeof _.componentDidCatch&&(null===Ql||!Ql.has(_)))){p.flags|=4096,t&=-t,p.lanes|=t,pi(p,cl(p,i,t));break e}}p=p.return}while(null!==p)}Pu(n)}catch(e){t=e,Nl===n&&null!==n&&(Nl=n=n.return);continue}break}}function Ou(){var e=Cl.current;return Cl.current=Na,null===e?Na:e}function xu(e,t){var n=Tl;Tl|=16;var r=Ou();for(jl===e&&Rl===t||Eu(e,t);;)try{Su();break}catch(t){_u(e,t)}if(ni(),Tl=n,Cl.current=r,null!==Nl)throw Error(a(261));return jl=null,Rl=0,Ll}function Su(){for(;null!==Nl;)Cu(Nl)}function ku(){for(;null!==Nl&&!Po();)Cu(Nl)}function Cu(e){var t=Vl(e.alternate,e,Il);e.memoizedProps=e.pendingProps,null===t?Pu(e):Nl=t,Pl.current=null}function Pu(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ol(n,t,Il)))return void(Nl=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Il)||0==(4&n.mode)){for(var r=0,o=n.child;null!==o;)r|=o.lanes|o.childLanes,o=o.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=il(t)))return n.flags&=2047,void(Nl=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Nl=t);Nl=t=e}while(null!==t);0===Ll&&(Ll=5)}function Tu(e){var t=$o();return qo(99,ju.bind(null,e,t)),null}function ju(e,t){do{Ru()}while(null!==Yl);if(0!=(48&Tl))throw Error(a(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(a(177));e.callbackNode=null;var r=n.lanes|n.childLanes,o=r,i=e.pendingLanes&~o;e.pendingLanes=o,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=o,e.mutableReadLanes&=o,e.entangledLanes&=o,o=e.entanglements;for(var l=e.eventTimes,u=e.expirationTimes;0<i;){var s=31-Bt(i),c=1<<s;o[s]=0,l[s]=-1,u[s]=-1,i&=~c}if(null!==tu&&0==(24&r)&&tu.has(e)&&tu.delete(e),e===jl&&(Nl=jl=null,Rl=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(o=Tl,Tl|=32,Pl.current=null,Ur=Gt,gr(l=vr())){if("selectionStart"in l)u={start:l.selectionStart,end:l.selectionEnd};else e:if(u=(u=l.ownerDocument)&&u.defaultView||window,(c=u.getSelection&&u.getSelection())&&0!==c.rangeCount){u=c.anchorNode,i=c.anchorOffset,s=c.focusNode,c=c.focusOffset;try{u.nodeType,s.nodeType}catch(e){u=null;break e}var f=0,p=-1,d=-1,h=0,v=0,g=l,m=null;t:for(;;){for(var y;g!==u||0!==i&&3!==g.nodeType||(p=f+i),g!==s||0!==c&&3!==g.nodeType||(d=f+c),3===g.nodeType&&(f+=g.nodeValue.length),null!==(y=g.firstChild);)m=g,g=y;for(;;){if(g===l)break t;if(m===u&&++h===i&&(p=f),m===s&&++v===c&&(d=f),null!==(y=g.nextSibling))break;m=(g=m).parentNode}g=y}u=-1===p||-1===d?null:{start:p,end:d}}else u=null;u=u||{start:0,end:0}}else u=null;Hr={focusedElem:l,selectionRange:u},Gt=!1,lu=null,uu=!1,ql=r;do{try{Nu()}catch(e){if(null===ql)throw Error(a(330));zu(ql,e),ql=ql.nextEffect}}while(null!==ql);lu=null,ql=r;do{try{for(l=e;null!==ql;){var b=ql.flags;if(16&b&&me(ql.stateNode,""),128&b){var w=ql.alternate;if(null!==w){var E=w.ref;null!==E&&("function"==typeof E?E(null):E.current=null)}}switch(1038&b){case 2:bl(ql),ql.flags&=-3;break;case 6:bl(ql),ql.flags&=-3,Ol(ql.alternate,ql);break;case 1024:ql.flags&=-1025;break;case 1028:ql.flags&=-1025,Ol(ql.alternate,ql);break;case 4:Ol(ql.alternate,ql);break;case 8:_l(l,u=ql);var _=u.alternate;ml(u),null!==_&&ml(_)}ql=ql.nextEffect}}catch(e){if(null===ql)throw Error(a(330));zu(ql,e),ql=ql.nextEffect}}while(null!==ql);if(E=Hr,w=vr(),b=E.focusedElem,l=E.selectionRange,w!==b&&b&&b.ownerDocument&&hr(b.ownerDocument.documentElement,b)){null!==l&&gr(b)&&(w=l.start,void 0===(E=l.end)&&(E=w),"selectionStart"in b?(b.selectionStart=w,b.selectionEnd=Math.min(E,b.value.length)):(E=(w=b.ownerDocument||document)&&w.defaultView||window).getSelection&&(E=E.getSelection(),u=b.textContent.length,_=Math.min(l.start,u),l=void 0===l.end?_:Math.min(l.end,u),!E.extend&&_>l&&(u=l,l=_,_=u),u=dr(b,_),i=dr(b,l),u&&i&&(1!==E.rangeCount||E.anchorNode!==u.node||E.anchorOffset!==u.offset||E.focusNode!==i.node||E.focusOffset!==i.offset)&&((w=w.createRange()).setStart(u.node,u.offset),E.removeAllRanges(),_>l?(E.addRange(w),E.extend(i.node,i.offset)):(w.setEnd(i.node,i.offset),E.addRange(w))))),w=[];for(E=b;E=E.parentNode;)1===E.nodeType&&w.push({element:E,left:E.scrollLeft,top:E.scrollTop});for("function"==typeof b.focus&&b.focus(),b=0;b<w.length;b++)(E=w[b]).element.scrollLeft=E.left,E.element.scrollTop=E.top}Gt=!!Ur,Hr=Ur=null,e.current=n,ql=r;do{try{for(b=e;null!==ql;){var O=ql.flags;if(36&O&&hl(b,ql.alternate,ql),128&O){w=void 0;var x=ql.ref;if(null!==x){var S=ql.stateNode;ql.tag,w=S,"function"==typeof x?x(w):x.current=w}}ql=ql.nextEffect}}catch(e){if(null===ql)throw Error(a(330));zu(ql,e),ql=ql.nextEffect}}while(null!==ql);ql=null,Do(),Tl=o}else e.current=n;if(Xl)Xl=!1,Yl=e,Zl=t;else for(ql=r;null!==ql;)t=ql.nextEffect,ql.nextEffect=null,8&ql.flags&&((O=ql).sibling=null,O.stateNode=null),ql=t;if(0===(r=e.pendingLanes)&&(Ql=null),1===r?e===ru?nu++:(nu=0,ru=e):nu=0,n=n.stateNode,xo&&"function"==typeof xo.onCommitFiberRoot)try{xo.onCommitFiberRoot(Oo,n,void 0,64==(64&n.current.flags))}catch(e){}if(du(e,Bo()),Kl)throw Kl=!1,e=Gl,Gl=null,e;return 0!=(8&Tl)||Go(),null}function Nu(){for(;null!==ql;){var e=ql.alternate;uu||null===lu||(0!=(8&ql.flags)?Je(ql,lu)&&(uu=!0):13===ql.tag&&Sl(e,ql)&&Je(ql,lu)&&(uu=!0));var t=ql.flags;0!=(256&t)&&dl(e,ql),0==(512&t)||Xl||(Xl=!0,Ko(97,(function(){return Ru(),null}))),ql=ql.nextEffect}}function Ru(){if(90!==Zl){var e=97<Zl?97:Zl;return Zl=90,qo(e,Lu)}return!1}function Iu(e,t){Jl.push(t,e),Xl||(Xl=!0,Ko(97,(function(){return Ru(),null})))}function Au(e,t){eu.push(t,e),Xl||(Xl=!0,Ko(97,(function(){return Ru(),null})))}function Lu(){if(null===Yl)return!1;var e=Yl;if(Yl=null,0!=(48&Tl))throw Error(a(331));var t=Tl;Tl|=32;var n=eu;eu=[];for(var r=0;r<n.length;r+=2){var o=n[r],i=n[r+1],l=o.destroy;if(o.destroy=void 0,"function"==typeof l)try{l()}catch(e){if(null===i)throw Error(a(330));zu(i,e)}}for(n=Jl,Jl=[],r=0;r<n.length;r+=2){o=n[r],i=n[r+1];try{var u=o.create;o.destroy=u()}catch(e){if(null===i)throw Error(a(330));zu(i,e)}}for(u=e.current.firstEffect;null!==u;)e=u.nextEffect,u.nextEffect=null,8&u.flags&&(u.sibling=null,u.stateNode=null),u=e;return Tl=t,Go(),!0}function Mu(e,t,n){fi(e,t=sl(0,t=al(n,t),1)),t=su(),null!==(e=pu(e,1))&&(Wt(e,1,t),du(e,t))}function zu(e,t){if(3===e.tag)Mu(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Mu(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Ql||!Ql.has(r))){var o=cl(n,e=al(t,e),1);if(fi(n,o),o=su(),null!==(n=pu(n,1)))Wt(n,1,o),du(n,o);else if("function"==typeof r.componentDidCatch&&(null===Ql||!Ql.has(r)))try{r.componentDidCatch(t,e)}catch(e){}break}}n=n.return}}function Du(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=su(),e.pingedLanes|=e.suspendedLanes&n,jl===e&&(Rl&n)===n&&(4===Ll||3===Ll&&(62914560&Rl)===Rl&&500>Bo()-Wl?Eu(e,0):Ul|=n),du(e,t)}function Fu(e,t){var n=e.stateNode;null!==n&&n.delete(t),0==(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===$o()?1:2:(0===iu&&(iu=zl),0===(t=Ut(62914560&~iu))&&(t=4194304))),n=su(),null!==(e=pu(e,t))&&(Wt(e,t,n),du(e,n))}function Uu(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Hu(e,t,n,r){return new Uu(e,t,n,r)}function Wu(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Bu(e,t){var n=e.alternate;return null===n?((n=Hu(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function $u(e,t,n,r,o,i){var l=2;if(r=e,"function"==typeof e)Wu(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case x:return Vu(n.children,o,i,t);case M:l=8,o|=16;break;case S:l=8,o|=1;break;case k:return(e=Hu(12,n,t,8|o)).elementType=k,e.type=k,e.lanes=i,e;case j:return(e=Hu(13,n,t,o)).type=j,e.elementType=j,e.lanes=i,e;case N:return(e=Hu(19,n,t,o)).elementType=N,e.lanes=i,e;case z:return qu(n,o,i,t);case D:return(e=Hu(24,n,t,o)).elementType=D,e.lanes=i,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case C:l=10;break e;case P:l=9;break e;case T:l=11;break e;case R:l=14;break e;case I:l=16,r=null;break e;case A:l=22;break e}throw Error(a(130,null==e?e:typeof e,""))}return(t=Hu(l,n,t,o)).elementType=e,t.type=r,t.lanes=i,t}function Vu(e,t,n,r){return(e=Hu(7,e,r,t)).lanes=n,e}function qu(e,t,n,r){return(e=Hu(23,e,r,t)).elementType=z,e.lanes=n,e}function Ku(e,t,n){return(e=Hu(6,e,null,t)).lanes=n,e}function Gu(e,t,n){return(t=Hu(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Qu(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Ht(0),this.expirationTimes=Ht(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ht(0),this.mutableSourceEagerHydrationData=null}function Xu(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:O,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}function Yu(e,t,n,r){var o=t.current,i=su(),l=cu(o);e:if(n){t:{if(Qe(n=n._reactInternals)!==n||1!==n.tag)throw Error(a(170));var u=n;do{switch(u.tag){case 3:u=u.stateNode.context;break t;case 1:if(mo(u.type)){u=u.stateNode.__reactInternalMemoizedMergedChildContext;break t}}u=u.return}while(null!==u);throw Error(a(171))}if(1===n.tag){var s=n.type;if(mo(s)){n=wo(n,s,u);break e}}n=u}else n=fo;return null===t.context?t.context=n:t.pendingContext=n,(t=ci(i,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),fi(o,t),fu(o,l,i),l}function Zu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Ju(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function es(e,t){Ju(e,t),(e=e.alternate)&&Ju(e,t)}function ts(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Qu(e,t,null!=n&&!0===n.hydrate),t=Hu(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,ui(t),e[Jr]=n.current,Nr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var o=(t=r[e])._getVersion;o=o(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,o]:n.mutableSourceEagerHydrationData.push(t,o)}this._internalRoot=n}function ns(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function rs(e,t,n,r,o){var i=n._reactRootContainer;if(i){var a=i._internalRoot;if("function"==typeof o){var l=o;o=function(){var e=Zu(a);l.call(e)}}Yu(t,a,e,o)}else{if(i=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new ts(e,0,t?{hydrate:!0}:void 0)}(n,r),a=i._internalRoot,"function"==typeof o){var u=o;o=function(){var e=Zu(a);u.call(e)}}yu((function(){Yu(t,a,e,o)}))}return Zu(a)}function os(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ns(t))throw Error(a(200));return Xu(e,t,null,n)}Vl=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||ho.current)Ma=!0;else{if(0==(n&r)){switch(Ma=!1,t.tag){case 3:qa(t),Ki();break;case 5:Li(t);break;case 1:mo(t.type)&&Eo(t);break;case 4:Ii(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var o=t.type._context;co(Zo,o._currentValue),o._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Ya(e,t,n):(co(zi,1&zi.current),null!==(t=nl(e,t,n))?t.sibling:null);co(zi,1&zi.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return tl(e,t,n);t.flags|=64}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),co(zi,zi.current),r)break;return null;case 23:case 24:return t.lanes=0,Ha(e,t,n)}return nl(e,t,n)}Ma=0!=(16384&e.flags)}else Ma=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=go(t,po.current),ii(t,n),o=aa(null,t,r,e,o,n),t.flags|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,mo(r)){var i=!0;Eo(t)}else i=!1;t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,ui(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&gi(t,r,l,e),o.updater=mi,t.stateNode=o,o._reactInternals=t,Ei(t,r,e,n),t=Va(null,t,r,!0,i,n)}else t.tag=0,za(null,t,o,n),t=t.child;return t;case 16:o=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=(i=o._init)(o._payload),t.type=o,i=t.tag=function(e){if("function"==typeof e)return Wu(e)?1:0;if(null!=e){if((e=e.$$typeof)===T)return 11;if(e===R)return 14}return 2}(o),e=Yo(o,e),i){case 0:t=Ba(null,t,o,e,n);break e;case 1:t=$a(null,t,o,e,n);break e;case 11:t=Da(null,t,o,e,n);break e;case 14:t=Fa(null,t,o,Yo(o.type,e),r,n);break e}throw Error(a(306,o,""))}return t;case 0:return r=t.type,o=t.pendingProps,Ba(e,t,r,o=t.elementType===r?o:Yo(r,o),n);case 1:return r=t.type,o=t.pendingProps,$a(e,t,r,o=t.elementType===r?o:Yo(r,o),n);case 3:if(qa(t),r=t.updateQueue,null===e||null===r)throw Error(a(282));if(r=t.pendingProps,o=null!==(o=t.memoizedState)?o.element:null,si(e,t),di(t,r,null,n),(r=t.memoizedState.element)===o)Ki(),t=nl(e,t,n);else{if((i=(o=t.stateNode).hydrate)&&(Ui=Kr(t.stateNode.containerInfo.firstChild),Fi=t,i=Hi=!0),i){if(null!=(e=o.mutableSourceEagerHydrationData))for(o=0;o<e.length;o+=2)(i=e[o])._workInProgressVersionPrimary=e[o+1],Gi.push(i);for(n=Ci(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else za(e,t,r,n),Ki();t=t.child}return t;case 5:return Li(t),null===e&&$i(t),r=t.type,o=t.pendingProps,i=null!==e?e.memoizedProps:null,l=o.children,Br(r,o)?l=null:null!==i&&Br(r,i)&&(t.flags|=16),Wa(e,t),za(e,t,l,n),t.child;case 6:return null===e&&$i(t),null;case 13:return Ya(e,t,n);case 4:return Ii(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=ki(t,null,r,n):za(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,Da(e,t,r,o=t.elementType===r?o:Yo(r,o),n);case 7:return za(e,t,t.pendingProps,n),t.child;case 8:case 12:return za(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,o=t.pendingProps,l=t.memoizedProps,i=o.value;var u=t.type._context;if(co(Zo,u._currentValue),u._currentValue=i,null!==l)if(u=l.value,0==(i=sr(u,i)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(u,i):1073741823))){if(l.children===o.children&&!ho.current){t=nl(e,t,n);break e}}else for(null!==(u=t.child)&&(u.return=t);null!==u;){var s=u.dependencies;if(null!==s){l=u.child;for(var c=s.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&i)){1===u.tag&&((c=ci(-1,n&-n)).tag=2,fi(u,c)),u.lanes|=n,null!==(c=u.alternate)&&(c.lanes|=n),oi(u.return,n),s.lanes|=n;break}c=c.next}}else l=10===u.tag&&u.type===t.type?null:u.child;if(null!==l)l.return=u;else for(l=u;null!==l;){if(l===t){l=null;break}if(null!==(u=l.sibling)){u.return=l.return,l=u;break}l=l.return}u=l}za(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=(i=t.pendingProps).children,ii(t,n),r=r(o=ai(o,i.unstable_observedBits)),t.flags|=1,za(e,t,r,n),t.child;case 14:return i=Yo(o=t.type,t.pendingProps),Fa(e,t,o,i=Yo(o.type,i),r,n);case 15:return Ua(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Yo(r,o),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,mo(r)?(e=!0,Eo(t)):e=!1,ii(t,n),bi(t,r,o),Ei(t,r,o,n),Va(null,t,r,!0,e,n);case 19:return tl(e,t,n);case 23:case 24:return Ha(e,t,n)}throw Error(a(156,t.tag))},ts.prototype.render=function(e){Yu(e,this._internalRoot,null,null)},ts.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Yu(null,e,null,(function(){t[Jr]=null}))},et=function(e){13===e.tag&&(fu(e,4,su()),es(e,4))},tt=function(e){13===e.tag&&(fu(e,67108864,su()),es(e,67108864))},nt=function(e){if(13===e.tag){var t=su(),n=cu(e);fu(e,n,t),es(e,n)}},rt=function(e,t){return t()},ke=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=oo(r);if(!o)throw Error(a(90));Y(r),ne(r,o)}}}break;case"textarea":se(e,n);break;case"select":null!=(t=n.value)&&ae(e,!!n.multiple,t,!1)}},Re=mu,Ie=function(e,t,n,r,o){var i=Tl;Tl|=4;try{return qo(98,e.bind(null,t,n,r,o))}finally{0===(Tl=i)&&($l(),Go())}},Ae=function(){0==(49&Tl)&&(function(){if(null!==tu){var e=tu;tu=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,du(e,Bo())}))}Go()}(),Ru())},Le=function(e,t){var n=Tl;Tl|=2;try{return e(t)}finally{0===(Tl=n)&&($l(),Go())}};var is={Events:[no,ro,oo,je,Ne,Ru,{current:!1}]},as={findFiberByHostInstance:to,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},ls={bundleType:as.bundleType,version:as.version,rendererPackageName:as.rendererPackageName,rendererConfig:as.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:E.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Ze(e))?null:e.stateNode},findFiberByHostInstance:as.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var us=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!us.isDisabled&&us.supportsFiber)try{Oo=us.inject(ls),xo=us}catch(ve){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=is,t.createPortal=os,t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(a(188));throw Error(a(268,Object.keys(e)))}return null===(e=Ze(t))?null:e.stateNode},t.flushSync=function(e,t){var n=Tl;if(0!=(48&n))return e(t);Tl|=1;try{if(e)return qo(99,e.bind(null,t))}finally{Tl=n,Go()}},t.hydrate=function(e,t,n){if(!ns(t))throw Error(a(200));return rs(null,e,t,!0,n)},t.render=function(e,t,n){if(!ns(t))throw Error(a(200));return rs(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!ns(e))throw Error(a(40));return!!e._reactRootContainer&&(yu((function(){rs(null,null,e,!1,(function(){e._reactRootContainer=null,e[Jr]=null}))})),!0)},t.unstable_batchedUpdates=mu,t.unstable_createPortal=function(e,t){return os(e,t,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)},t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!ns(n))throw Error(a(200));if(null==e||void 0===e._reactInternals)throw Error(a(38));return rs(e,t,n,!1,r)},t.version="17.0.2"},3102:function(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(6539)},3298:function(e,t){"use strict";var n,r,o,i;if("object"==typeof performance&&"function"==typeof performance.now){var a=performance;t.unstable_now=function(){return a.now()}}else{var l=Date,u=l.now();t.unstable_now=function(){return l.now()-u}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var s=null,c=null,f=function(){if(null!==s)try{var e=t.unstable_now();s(!0,e),s=null}catch(e){throw setTimeout(f,0),e}};n=function(e){null!==s?setTimeout(n,0,e):(s=e,setTimeout(f,0))},r=function(e,t){c=setTimeout(e,t)},o=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},i=t.unstable_forceFrameRate=function(){}}else{var p=window.setTimeout,d=window.clearTimeout;if("undefined"!=typeof console){var h=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof h&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var v=!1,g=null,m=-1,y=5,b=0;t.unstable_shouldYield=function(){return t.unstable_now()>=b},i=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):y=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,E=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();b=e+y;try{g(!0,e)?E.postMessage(null):(v=!1,g=null)}catch(e){throw E.postMessage(null),e}}else v=!1},n=function(e){g=e,v||(v=!0,E.postMessage(null))},r=function(e,n){m=p((function(){e(t.unstable_now())}),n)},o=function(){d(m),m=-1}}function _(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,o=e[r];if(!(void 0!==o&&0<S(o,t)))break e;e[r]=t,e[n]=o,n=r}}function O(e){return void 0===(e=e[0])?null:e}function x(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length;r<o;){var i=2*(r+1)-1,a=e[i],l=i+1,u=e[l];if(void 0!==a&&0>S(a,n))void 0!==u&&0>S(u,a)?(e[r]=u,e[l]=n,r=l):(e[r]=a,e[i]=n,r=i);else{if(!(void 0!==u&&0>S(u,n)))break e;e[r]=u,e[l]=n,r=l}}}return t}return null}function S(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var k=[],C=[],P=1,T=null,j=3,N=!1,R=!1,I=!1;function A(e){for(var t=O(C);null!==t;){if(null===t.callback)x(C);else{if(!(t.startTime<=e))break;x(C),t.sortIndex=t.expirationTime,_(k,t)}t=O(C)}}function L(e){if(I=!1,A(e),!R)if(null!==O(k))R=!0,n(M);else{var t=O(C);null!==t&&r(L,t.startTime-e)}}function M(e,n){R=!1,I&&(I=!1,o()),N=!0;var i=j;try{for(A(n),T=O(k);null!==T&&(!(T.expirationTime>n)||e&&!t.unstable_shouldYield());){var a=T.callback;if("function"==typeof a){T.callback=null,j=T.priorityLevel;var l=a(T.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?T.callback=l:T===O(k)&&x(k),A(n)}else x(k);T=O(k)}if(null!==T)var u=!0;else{var s=O(C);null!==s&&r(L,s.startTime-n),u=!1}return u}finally{T=null,j=i,N=!1}}var z=i;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){R||N||(R=!0,n(M))},t.unstable_getCurrentPriorityLevel=function(){return j},t.unstable_getFirstCallbackNode=function(){return O(k)},t.unstable_next=function(e){switch(j){case 1:case 2:case 3:var t=3;break;default:t=j}var n=j;j=t;try{return e()}finally{j=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=z,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=j;j=e;try{return t()}finally{j=n}},t.unstable_scheduleCallback=function(e,i,a){var l=t.unstable_now();switch(a="object"==typeof a&&null!==a&&"number"==typeof(a=a.delay)&&0<a?l+a:l,e){case 1:var u=-1;break;case 2:u=250;break;case 5:u=1073741823;break;case 4:u=1e4;break;default:u=5e3}return e={id:P++,callback:i,priorityLevel:e,startTime:a,expirationTime:u=a+u,sortIndex:-1},a>l?(e.sortIndex=a,_(C,e),null===O(k)&&e===O(C)&&(I?o():I=!0,r(L,a-l))):(e.sortIndex=u,_(k,e),R||N||(R=!0,n(M))),e},t.unstable_wrapCallback=function(e){var t=j;return function(){var n=j;j=t;try{return e.apply(this,arguments)}finally{j=n}}}},9076:function(e,t,n){"use strict";e.exports=n(3298)},4330:function(e,t){t.w=function(e){return e}},394:function(e,t){"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,i=n?Symbol.for("react.fragment"):60107,a=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,u=n?Symbol.for("react.provider"):60109,s=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,f=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,d=n?Symbol.for("react.suspense"):60113,h=n?Symbol.for("react.suspense_list"):60120,v=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,m=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,b=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function E(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case f:case i:case l:case a:case d:return e;default:switch(e=e&&e.$$typeof){case s:case p:case g:case v:case u:return e;default:return t}}case o:return t}}}function _(e){return E(e)===f}t.AsyncMode=c,t.ConcurrentMode=f,t.ContextConsumer=s,t.ContextProvider=u,t.Element=r,t.ForwardRef=p,t.Fragment=i,t.Lazy=g,t.Memo=v,t.Portal=o,t.Profiler=l,t.StrictMode=a,t.Suspense=d,t.isAsyncMode=function(e){return _(e)||E(e)===c},t.isConcurrentMode=_,t.isContextConsumer=function(e){return E(e)===s},t.isContextProvider=function(e){return E(e)===u},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return E(e)===p},t.isFragment=function(e){return E(e)===i},t.isLazy=function(e){return E(e)===g},t.isMemo=function(e){return E(e)===v},t.isPortal=function(e){return E(e)===o},t.isProfiler=function(e){return E(e)===l},t.isStrictMode=function(e){return E(e)===a},t.isSuspense=function(e){return E(e)===d},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===i||e===f||e===l||e===a||e===d||e===h||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===v||e.$$typeof===u||e.$$typeof===s||e.$$typeof===p||e.$$typeof===y||e.$$typeof===b||e.$$typeof===w||e.$$typeof===m)},t.typeOf=E},8485:function(e,t,n){"use strict";e.exports=n(394)},5732:function(e,t){"use strict";if("function"==typeof Symbol&&Symbol.for){var n=Symbol.for;n("react.element"),n("react.portal"),n("react.fragment"),n("react.strict_mode"),n("react.profiler"),n("react.provider"),n("react.context"),n("react.forward_ref"),n("react.suspense"),n("react.suspense_list"),n("react.memo"),n("react.lazy"),n("react.block"),n("react.server.block"),n("react.fundamental"),n("react.debug_trace_mode"),n("react.legacy_hidden")}},2679:function(e,t,n){"use strict";n(5732)},9879:function(e,t,n){"use strict";t.__esModule=!0;var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2598)),i=c(n(6605)),a=c(n(4213)),l=c(n(8965)),u=c(n(5743)),s=n(6994);function c(e){return e&&e.__esModule?e:{default:e}}function f(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function p(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var d=function(e,t){return t&&t.split(" ").forEach((function(t){return(0,i.default)(e,t)}))},h=function(e,t){return t&&t.split(" ").forEach((function(t){return(0,a.default)(e,t)}))},v=(r({},u.default.propTypes,{classNames:s.classNamesShape,onEnter:o.func,onEntering:o.func,onEntered:o.func,onExit:o.func,onExiting:o.func,onExited:o.func}),function(e){function t(){var n,r;f(this,t);for(var o=arguments.length,i=Array(o),a=0;a<o;a++)i[a]=arguments[a];return n=r=p(this,e.call.apply(e,[this].concat(i))),r.onEnter=function(e,t){var n=r.getClassNames(t?"appear":"enter").className;r.removeClasses(e,"exit"),d(e,n),r.props.onEnter&&r.props.onEnter(e)},r.onEntering=function(e,t){var n=r.getClassNames(t?"appear":"enter").activeClassName;r.reflowAndAddClass(e,n),r.props.onEntering&&r.props.onEntering(e)},r.onEntered=function(e,t){r.removeClasses(e,t?"appear":"enter"),r.props.onEntered&&r.props.onEntered(e)},r.onExit=function(e){var t=r.getClassNames("exit").className;r.removeClasses(e,"appear"),r.removeClasses(e,"enter"),d(e,t),r.props.onExit&&r.props.onExit(e)},r.onExiting=function(e){var t=r.getClassNames("exit").activeClassName;r.reflowAndAddClass(e,t),r.props.onExiting&&r.props.onExiting(e)},r.onExited=function(e){r.removeClasses(e,"exit"),r.props.onExited&&r.props.onExited(e)},r.getClassNames=function(e){var t=r.props.classNames,n="string"!=typeof t?t[e]:t+"-"+e;return{className:n,activeClassName:"string"!=typeof t?t[e+"Active"]:n+"-active"}},p(r,n)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.removeClasses=function(e,t){var n=this.getClassNames(t),r=n.className,o=n.activeClassName;r&&h(e,r),o&&h(e,o)},t.prototype.reflowAndAddClass=function(e,t){e.scrollTop,d(e,t)},t.prototype.render=function(){var e=r({},this.props);return delete e.classNames,l.default.createElement(u.default,r({},e,{onEnter:this.onEnter,onEntered:this.onEntered,onEntering:this.onEntering,onExit:this.onExit,onExiting:this.onExiting,onExited:this.onExited}))},t}(l.default.Component));v.propTypes={},t.default=v,e.exports=t.default},5743:function(e,t,n){"use strict";t.__esModule=!0,t.EXITING=t.ENTERED=t.ENTERING=t.EXITED=t.UNMOUNTED=void 0;var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2598)),o=a(n(8965)),i=a(n(3102));function a(e){return e&&e.__esModule?e:{default:e}}n(6994);var l=t.UNMOUNTED="unmounted",u=t.EXITED="exited",s=t.ENTERING="entering",c=t.ENTERED="entered",f=t.EXITING="exiting",p=function(e){function t(n,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var o=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,r)),i=r.transitionGroup,a=i&&!i.isMounting?n.enter:n.appear,f=void 0;return o.nextStatus=null,n.in?a?(f=u,o.nextStatus=s):f=c:f=n.unmountOnExit||n.mountOnEnter?l:u,o.state={status:f},o.nextCallback=null,o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.getChildContext=function(){return{transitionGroup:null}},t.prototype.componentDidMount=function(){this.updateStatus(!0)},t.prototype.componentWillReceiveProps=function(e){var t=(this.pendingState||this.state).status;e.in?(t===l&&this.setState({status:u}),t!==s&&t!==c&&(this.nextStatus=s)):t!==s&&t!==c||(this.nextStatus=f)},t.prototype.componentDidUpdate=function(){this.updateStatus()},t.prototype.componentWillUnmount=function(){this.cancelNextCallback()},t.prototype.getTimeouts=function(){var e=this.props.timeout,t=void 0,n=void 0,r=void 0;return t=n=r=e,null!=e&&"number"!=typeof e&&(t=e.exit,n=e.enter,r=e.appear),{exit:t,enter:n,appear:r}},t.prototype.updateStatus=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.nextStatus;if(null!==t){this.nextStatus=null,this.cancelNextCallback();var n=i.default.findDOMNode(this);t===s?this.performEnter(n,e):this.performExit(n)}else this.props.unmountOnExit&&this.state.status===u&&this.setState({status:l})},t.prototype.performEnter=function(e,t){var n=this,r=this.props.enter,o=this.context.transitionGroup?this.context.transitionGroup.isMounting:t,i=this.getTimeouts();t||r?(this.props.onEnter(e,o),this.safeSetState({status:s},(function(){n.props.onEntering(e,o),n.onTransitionEnd(e,i.enter,(function(){n.safeSetState({status:c},(function(){n.props.onEntered(e,o)}))}))}))):this.safeSetState({status:c},(function(){n.props.onEntered(e)}))},t.prototype.performExit=function(e){var t=this,n=this.props.exit,r=this.getTimeouts();n?(this.props.onExit(e),this.safeSetState({status:f},(function(){t.props.onExiting(e),t.onTransitionEnd(e,r.exit,(function(){t.safeSetState({status:u},(function(){t.props.onExited(e)}))}))}))):this.safeSetState({status:u},(function(){t.props.onExited(e)}))},t.prototype.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},t.prototype.safeSetState=function(e,t){var n=this;this.pendingState=e,t=this.setNextCallback(t),this.setState(e,(function(){n.pendingState=null,t()}))},t.prototype.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},t.prototype.onTransitionEnd=function(e,t,n){this.setNextCallback(n),e?(this.props.addEndListener&&this.props.addEndListener(e,this.nextCallback),null!=t&&setTimeout(this.nextCallback,t)):setTimeout(this.nextCallback,0)},t.prototype.render=function(){var e=this.state.status;if(e===l)return null;var t=this.props,n=t.children,r=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(t,["children"]);if(delete r.in,delete r.mountOnEnter,delete r.unmountOnExit,delete r.appear,delete r.enter,delete r.exit,delete r.timeout,delete r.addEndListener,delete r.onEnter,delete r.onEntering,delete r.onEntered,delete r.onExit,delete r.onExiting,delete r.onExited,"function"==typeof n)return n(e,r);var i=o.default.Children.only(n);return o.default.cloneElement(i,r)},t}(o.default.Component);function d(){}p.contextTypes={transitionGroup:r.object},p.childContextTypes={transitionGroup:function(){}},p.propTypes={},p.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:d,onEntering:d,onEntered:d,onExit:d,onExiting:d,onExited:d},p.UNMOUNTED=0,p.EXITED=1,p.ENTERING=2,p.ENTERED=3,p.EXITING=4,t.default=p},4730:function(e,t,n){"use strict";t.__esModule=!0;var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=u(n(2598)),i=n(8965),a=u(i),l=n(7034);function u(e){return e&&e.__esModule?e:{default:e}}var s=Object.values||function(e){return Object.keys(e).map((function(t){return e[t]}))},c=(o.default.any,o.default.node,o.default.bool,o.default.bool,o.default.bool,o.default.func,function(e){function t(n,o){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var a=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,o));return a.handleExited=function(e,t,n){var o=(0,l.getChildMapping)(a.props.children);e in o||(n&&n(t),a.setState((function(t){var n=r({},t.children);return delete n[e],{children:n}})))},a.state={children:(0,l.getChildMapping)(n.children,(function(e){return(0,i.cloneElement)(e,{onExited:function(t){a.handleExited(e.key,t,e.props.onExited)},in:!0,appear:a.getProp(e,"appear"),enter:a.getProp(e,"enter"),exit:a.getProp(e,"exit")})}))},a}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.getChildContext=function(){return{transitionGroup:{isMounting:!this.appeared}}},t.prototype.getProp=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.props;return null!=n[t]?n[t]:e.props[t]},t.prototype.componentDidMount=function(){this.appeared=!0},t.prototype.componentWillReceiveProps=function(e){var t=this,n=this.state.children,r=(0,l.getChildMapping)(e.children),o=(0,l.mergeChildMappings)(n,r);Object.keys(o).forEach((function(a){var l=o[a];if((0,i.isValidElement)(l)){var u=function(e){t.handleExited(l.key,e,l.props.onExited)},s=a in n,c=a in r,f=n[a],p=(0,i.isValidElement)(f)&&!f.props.in;!c||s&&!p?c||!s||p?c&&s&&(0,i.isValidElement)(f)&&(o[a]=(0,i.cloneElement)(l,{onExited:u,in:f.props.in,exit:t.getProp(l,"exit",e),enter:t.getProp(l,"enter",e)})):o[a]=(0,i.cloneElement)(l,{in:!1}):o[a]=(0,i.cloneElement)(l,{onExited:u,in:!0,exit:t.getProp(l,"exit",e),enter:t.getProp(l,"enter",e)})}})),this.setState({children:o})},t.prototype.render=function(){var e=this.props,t=e.component,n=e.childFactory,r=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["component","childFactory"]),o=this.state.children;return delete r.appear,delete r.enter,delete r.exit,a.default.createElement(t,r,s(o).map(n))},t}(a.default.Component));c.childContextTypes={transitionGroup:o.default.object.isRequired},c.propTypes={},c.defaultProps={component:"div",childFactory:function(e){return e}},t.default=c,e.exports=t.default},6285:function(e,t,n){"use strict";var r=a(n(9879)),o=a(n(4730)),i=a(n(5743));function a(e){return e&&e.__esModule?e:{default:e}}e.exports={Transition:i.default,TransitionGroup:o.default,CSSTransition:r.default}},7034:function(e,t,n){"use strict";t.__esModule=!0,t.getChildMapping=function(e,t){var n=Object.create(null);return e&&r.Children.map(e,(function(e){return e})).forEach((function(e){n[e.key]=function(e){return t&&(0,r.isValidElement)(e)?t(e):e}(e)})),n},t.mergeChildMappings=function(e,t){function n(n){return n in t?t[n]:e[n]}e=e||{},t=t||{};var r=Object.create(null),o=[];for(var i in e)i in t?o.length&&(r[i]=o,o=[]):o.push(i);var a=void 0,l={};for(var u in t){if(r[u])for(a=0;a<r[u].length;a++){var s=r[u][a];l[r[u][a]]=n(s)}l[u]=n(u)}for(a=0;a<o.length;a++)l[o[a]]=n(o[a]);return l};var r=n(8965)},6994:function(e,t,n){"use strict";t.__esModule=!0,t.classNamesShape=t.timeoutsShape=void 0,t.transitionTimeout=function(e){var t="transition"+e+"Timeout",n="transition"+e;return function(e){if(e[n]){if(null==e[t])return new Error(t+" wasn't supplied to CSSTransitionGroup: this can cause unreliable animations and won't be supported in a future version of React. See https://fb.me/react-animation-transition-group-timeout for more information.");if("number"!=typeof e[t])return new Error(t+" must be a number (in milliseconds)")}return null}};var r,o=(r=n(2598))&&r.__esModule?r:{default:r};t.timeoutsShape=o.default.oneOfType([o.default.number,o.default.shape({enter:o.default.number,exit:o.default.number}).isRequired]),t.classNamesShape=o.default.oneOfType([o.default.string,o.default.shape({enter:o.default.string,exit:o.default.string,active:o.default.string}),o.default.shape({enter:o.default.string,enterActive:o.default.string,exit:o.default.string,exitActive:o.default.string})])},4850:function(e,t,n){"use strict";var r=n(1464),o=60103,i=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var a=60109,l=60110,u=60112;t.Suspense=60113;var s=60115,c=60116;if("function"==typeof Symbol&&Symbol.for){var f=Symbol.for;o=f("react.element"),i=f("react.portal"),t.Fragment=f("react.fragment"),t.StrictMode=f("react.strict_mode"),t.Profiler=f("react.profiler"),a=f("react.provider"),l=f("react.context"),u=f("react.forward_ref"),t.Suspense=f("react.suspense"),s=f("react.memo"),c=f("react.lazy")}var p="function"==typeof Symbol&&Symbol.iterator;function d(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v={};function g(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||h}function m(){}function y(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||h}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(d(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},m.prototype=g.prototype;var b=y.prototype=new m;b.constructor=y,r(b,g.prototype),b.isPureReactComponent=!0;var w={current:null},E=Object.prototype.hasOwnProperty,_={key:!0,ref:!0,__self:!0,__source:!0};function O(e,t,n){var r,i={},a=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(a=""+t.key),t)E.call(t,r)&&!_.hasOwnProperty(r)&&(i[r]=t[r]);var u=arguments.length-2;if(1===u)i.children=n;else if(1<u){for(var s=Array(u),c=0;c<u;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in u=e.defaultProps)void 0===i[r]&&(i[r]=u[r]);return{$$typeof:o,type:e,key:a,ref:l,props:i,_owner:w.current}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var S=/\/+/g;function k(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function C(e,t,n,r,a){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var u=!1;if(null===e)u=!0;else switch(l){case"string":case"number":u=!0;break;case"object":switch(e.$$typeof){case o:case i:u=!0}}if(u)return a=a(u=e),e=""===r?"."+k(u,0):r,Array.isArray(a)?(n="",null!=e&&(n=e.replace(S,"$&/")+"/"),C(a,t,n,"",(function(e){return e}))):null!=a&&(x(a)&&(a=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(a,n+(!a.key||u&&u.key===a.key?"":(""+a.key).replace(S,"$&/")+"/")+e)),t.push(a)),1;if(u=0,r=""===r?".":r+":",Array.isArray(e))for(var s=0;s<e.length;s++){var c=r+k(l=e[s],s);u+=C(l,t,n,c,a)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),s=0;!(l=e.next()).done;)u+=C(l=l.value,t,n,c=r+k(l,s++),a);else if("object"===l)throw t=""+e,Error(d(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return u}function P(e,t,n){if(null==e)return e;var r=[],o=0;return C(e,r,"","",(function(e){return t.call(n,e,o++)})),r}function T(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var j={current:null};function N(){var e=j.current;if(null===e)throw Error(d(321));return e}var R={ReactCurrentDispatcher:j,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:P,forEach:function(e,t,n){P(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return P(e,(function(){t++})),t},toArray:function(e){return P(e,(function(e){return e}))||[]},only:function(e){if(!x(e))throw Error(d(143));return e}},t.Component=g,t.PureComponent=y,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=R,t.cloneElement=function(e,t,n){if(null==e)throw Error(d(267,e));var i=r({},e.props),a=e.key,l=e.ref,u=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,u=w.current),void 0!==t.key&&(a=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(c in t)E.call(t,c)&&!_.hasOwnProperty(c)&&(i[c]=void 0===t[c]&&void 0!==s?s[c]:t[c])}var c=arguments.length-2;if(1===c)i.children=n;else if(1<c){s=Array(c);for(var f=0;f<c;f++)s[f]=arguments[f+2];i.children=s}return{$$typeof:o,type:e.type,key:a,ref:l,props:i,_owner:u}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:a,_context:e},e.Consumer=e},t.createElement=O,t.createFactory=function(e){var t=O.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:u,render:e}},t.isValidElement=x,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:T}},t.memo=function(e,t){return{$$typeof:s,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return N().useCallback(e,t)},t.useContext=function(e,t){return N().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return N().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return N().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return N().useLayoutEffect(e,t)},t.useMemo=function(e,t){return N().useMemo(e,t)},t.useReducer=function(e,t,n){return N().useReducer(e,t,n)},t.useRef=function(e){return N().useRef(e)},t.useState=function(e){return N().useState(e)},t.version="17.0.2"},8965:function(e,t,n){"use strict";e.exports=n(4850)},5043:function(e,t,n){var r;"undefined"!=typeof self&&self,r=function(e,t){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=u(n(1)),a=n(2),l=u(n(3));function u(e){return e&&e.__esModule?e:{default:e}}var s=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.config=r({},e.defaultConfig,t),this.tagId=0,this.cache=[],this.generateDom=this.generateDom.bind(this),this.transform=this.transform.bind(this),this.getCache=this.getCache.bind(this),this.formatAttributes=this.formatAttributes.bind(this)}return o(e,[{key:"formatAttributes",value:function(e){var t=this,n={};return e.filter((function(e){var n=e.key;return t.config.ALLOWED_ATTRIBUTES.includes(n)})).forEach((function(e){var t=e.key,r=e.value;(0,l.default)(t),n[t]=r})),n}},{key:"generateDom",value:function(e){var t=e.type,n=void 0===t?"":t,o=e.children,a=void 0===o?[]:o,u=e.content,s=void 0===u?"":u,c=e.tagName,f=void 0===c?"":c,p=e.attributes,d=void 0===p?[]:p,h=this.config,v=h.ALLOWED_TAGS,g=h.KEY_NAME,m=a.length?a.map(this.generateDom):s;if("element"===n&&v.includes(f)){(0,l.default)(f);var y=r({},this.formatAttributes(d),{key:""+g+this.tagId++});return m?i.default.createElement(f,y,m):i.default.createElement(f,y)}return m}},{key:"getCache",value:function(e){return this.cache.find((function(t){return t.str===e}))}},{key:"transform",value:function(e){var t=this.getCache(e);if(t)return t.dom;var n=(0,a.parse)(e).map(this.generateDom);return this.cache.push({str:e,dom:n}),n}}]),e}();s.defaultConfig={ALLOWED_TAGS:["strong","a"],ALLOWED_ATTRIBUTES:["href"],KEY_NAME:"ssih-tag-"},t.default=s},function(t,n){t.exports=e},function(e,n){e.exports=t},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){e in o.attributes&&console.warn(o.attributes[e].replace("%s","attribute "+e)),e in o.tags&&console.warn(o.tags[e].replace("%s","tag <"+e+" />"))};var r="Be careful with the use of %s, it presents a potential XSS risk",o=t.messages={attributes:{ontransitionend:r,ontransitioncancel:r,onblur:r,ondrag:r,ondrop:r},tags:{script:r,style:r}}}])},e.exports=r(n(8965),n(9932))},819:function(e,t,n){"use strict";var r=n(1464),o=n(8965);t.useSubscription=function(e){var t=e.getCurrentValue,n=e.subscribe,i=o.useState((function(){return{getCurrentValue:t,subscribe:n,value:t()}}));e=i[0];var a=i[1];return i=e.value,e.getCurrentValue===t&&e.subscribe===n||(i=t(),a({getCurrentValue:t,subscribe:n,value:i})),o.useDebugValue(i),o.useEffect((function(){function e(){if(!o){var e=t();a((function(o){return o.getCurrentValue!==t||o.subscribe!==n||o.value===e?o:r({},o,{value:e})}))}}var o=!1,i=n(e);return e(),function(){o=!0,i()}}),[t,n]),i}},6442:function(e,t,n){"use strict";e.exports=n(819)},7064:function(e,t,n){"use strict";n.d(t,{default:function(){return Bs},h:function(){return Us}});var r={};n.r(r);var o={};n.r(o);var i={};n.r(i);var a={};n.r(a);var l={};n.r(l);var u={};n.r(u);var s={};n.r(s);var c={};n.r(c);var f={};n.r(f);var p={};n.r(p);var d={};n.r(d);var h={};n.r(h);var v=n(8965),g=n(3102),m=v.createContext(null),y=function(e){e()},b=function(){return y},w={notify:function(){},get:function(){return[]}};function E(e,t){var n,r=w;function o(){a.onStateChange&&a.onStateChange()}function i(){n||(n=t?t.addNestedSub(o):e.subscribe(o),r=function(){var e=b(),t=null,n=null;return{clear:function(){t=null,n=null},notify:function(){e((function(){for(var e=t;e;)e.callback(),e=e.next}))},get:function(){for(var e=[],n=t;n;)e.push(n),n=n.next;return e},subscribe:function(e){var r=!0,o=n={callback:e,next:null,prev:n};return o.prev?o.prev.next=o:t=o,function(){r&&null!==t&&(r=!1,o.next?o.next.prev=o.prev:n=o.prev,o.prev?o.prev.next=o.next:t=o.next)}}}}())}var a={addNestedSub:function(e){return i(),r.subscribe(e)},notifyNestedSubs:function(){r.notify()},handleChangeWrapper:o,isSubscribed:function(){return Boolean(n)},trySubscribe:i,tryUnsubscribe:function(){n&&(n(),n=void 0,r.clear(),r=w)},getListeners:function(){return r}};return a}var _="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?v.useLayoutEffect:v.useEffect,O=function(e){var t=e.store,n=e.context,r=e.children,o=(0,v.useMemo)((function(){var e=E(t);return e.onStateChange=e.notifyNestedSubs,{store:t,subscription:e}}),[t]),i=(0,v.useMemo)((function(){return t.getState()}),[t]);_((function(){var e=o.subscription;return e.trySubscribe(),i!==t.getState()&&e.notifyNestedSubs(),function(){e.tryUnsubscribe(),e.onStateChange=null}}),[o,i]);var a=n||m;return v.createElement(a.Provider,{value:o},r)};function x(){return x=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},x.apply(this,arguments)}function S(){return(0,v.useContext)(m)}function k(e){void 0===e&&(e=m);var t=e===m?S:function(){return(0,v.useContext)(e)};return function(){return t().store}}n(3578),n(2679);var C=k();function P(e){void 0===e&&(e=m);var t=e===m?C:k(e);return function(){return t().dispatch}}var T=P(),j=function(e,t){return e===t};function N(e){void 0===e&&(e=m);var t=e===m?S:function(){return(0,v.useContext)(e)};return function(e,n){void 0===n&&(n=j);var r=t(),o=function(e,t,n,r){var o,i=(0,v.useReducer)((function(e){return e+1}),0)[1],a=(0,v.useMemo)((function(){return E(n,r)}),[n,r]),l=(0,v.useRef)(),u=(0,v.useRef)(),s=(0,v.useRef)(),c=(0,v.useRef)(),f=n.getState();try{if(e!==u.current||f!==s.current||l.current){var p=e(f);o=void 0!==c.current&&t(p,c.current)?c.current:p}else o=c.current}catch(e){throw l.current&&(e.message+="\nThe error may be correlated with this previous error:\n"+l.current.stack+"\n\n"),e}return _((function(){u.current=e,s.current=f,c.current=o,l.current=void 0})),_((function(){function e(){try{var e=n.getState();if(e===s.current)return;var r=u.current(e);if(t(r,c.current))return;c.current=r,s.current=e}catch(e){l.current=e}i()}return a.onStateChange=e,a.trySubscribe(),e(),function(){return a.tryUnsubscribe()}}),[n,a]),o}(e,n,r.store,r.subscription);return(0,v.useDebugValue)(o),o}}var R,I,A=N();R=g.unstable_batchedUpdates,y=R;var L={Home:"@migrator/HOME",Confirmation:"@migrator/CONFIRMATION",Status:"@migrator/STATUS",Success:"@migrator/SUCCESS",Error:"@migrator/ERROR",Fail:"@migrator/FAIL"},M=((I={})[L.Home]={title:"SiteGround Migrator",text:"Migrating your website to SiteGround has never been easier. With the SiteGround Migrator plugin you can transfer your website in a few easy clicks - just go to your SiteGround Site Tools, generate a token, paste it in the migrator plugin and we'll do the rest.",icon:"product-migrator",iconColor:"primary"},I[L.Confirmation]={title:"SiteGround Migrator",text:"",icon:"",iconColor:"warning"},I[L.Status]={title:"SiteGround Migrator",text:"",icon:"product-migrator",iconColor:"primary"},I[L.Success]={title:"SiteGround Migrator",text:"",icon:"",iconColor:"success"},I[L.Error]={title:"SiteGround Migrator",text:"",icon:"",iconColor:"warning"},I[L.Fail]={title:"SiteGround Migrator",text:"",icon:"",iconColor:"error"},I);function z(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function D(e,t){if(e){if("string"==typeof e)return z(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?z(e,t):void 0}}function F(e){return function(e){if(Array.isArray(e))return z(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||D(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function U(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var H,W,B,$,V=n(2580),q=n.n(V),K=n(998);H={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},W=["(","?"],B={")":["("],":":["?","?:"]},$=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/;var G={"!":function(e){return!e},"*":function(e,t){return e*t},"/":function(e,t){return e/t},"%":function(e,t){return e%t},"+":function(e,t){return e+t},"-":function(e,t){return e-t},"<":function(e,t){return e<t},"<=":function(e,t){return e<=t},">":function(e,t){return e>t},">=":function(e,t){return e>=t},"==":function(e,t){return e===t},"!=":function(e,t){return e!==t},"&&":function(e,t){return e&&t},"||":function(e,t){return e||t},"?:":function(e,t,n){if(e)throw t;return n}};var Q={contextDelimiter:"",onMissingKey:null};function X(e,t){var n;for(n in this.data=e,this.pluralForms={},this.options={},Q)this.options[n]=void 0!==t&&n in t?t[n]:Q[n]}X.prototype.getPluralForm=function(e,t){var n,r,o,i,a=this.pluralForms[e];return a||("function"!=typeof(o=(n=this.data[e][""])["Plural-Forms"]||n["plural-forms"]||n.plural_forms)&&(r=function(e){var t,n,r;for(t=e.split(";"),n=0;n<t.length;n++)if(0===(r=t[n].trim()).indexOf("plural="))return r.substr(7)}(n["Plural-Forms"]||n["plural-forms"]||n.plural_forms),i=function(e){var t=function(e){for(var t,n,r,o,i=[],a=[];t=e.match($);){for(n=t[0],(r=e.substr(0,t.index).trim())&&i.push(r);o=a.pop();){if(B[n]){if(B[n][0]===o){n=B[n][1]||n;break}}else if(W.indexOf(o)>=0||H[o]<H[n]){a.push(o);break}i.push(o)}B[n]||a.push(n),e=e.substr(t.index+n.length)}return(e=e.trim())&&i.push(e),i.concat(a.reverse())}(e);return function(e){return function(e,t){var n,r,o,i,a,l,u=[];for(n=0;n<e.length;n++){if(a=e[n],i=G[a]){for(r=i.length,o=Array(r);r--;)o[r]=u.pop();try{l=i.apply(null,o)}catch(e){return e}}else l=t.hasOwnProperty(a)?t[a]:+a;u.push(l)}return u[0]}(t,e)}}(r),o=function(e){return+i({n:e})}),a=this.pluralForms[e]=o),a(t)},X.prototype.dcnpgettext=function(e,t,n,r,o){var i,a,l;return i=void 0===o?0:this.getPluralForm(e,o),a=n,t&&(a=t+this.options.contextDelimiter+n),(l=this.data[e][a])&&l[i]?l[i]:(this.options.onMissingKey&&this.options.onMissingKey(n,e),0===i?n:r)};var Y=n(8865),Z=n.n(Y),J=n(8519),ee=n.n(J),te=n(696),ne=/%(((\d+)\$)|(\(([$_a-zA-Z][$_a-zA-Z0-9]*)\)))?[ +0#-]*\d*(\.(\d+|\*))?(ll|[lhqL])?([cduxXefgsp%])/g;function re(e,t){var n;if(!Array.isArray(t))for(t=new Array(arguments.length-1),n=1;n<arguments.length;n++)t[n-1]=arguments[n];return n=1,e.replace(ne,(function(){var e,r,o,i,a;return e=arguments[3],r=arguments[5],"%"===(i=arguments[9])?"%":("*"===(o=arguments[7])&&(o=t[n-1],n++),void 0!==r?t[0]&&"object"==typeof t[0]&&t[0].hasOwnProperty(r)&&(a=t[0][r]):(void 0===e&&(e=n),n++,a=t[e-1]),"f"===i?a=parseFloat(a)||0:"d"===i&&(a=parseInt(a)||0),void 0!==o&&("f"===i?a=a.toFixed(o):"s"===i&&(a=a.substr(0,o))),null!=a?a:"")}))}function oe(e,t,n,r){e=(e+"").replace(/[^0-9+\-Ee.]/g,"");var o=isFinite(+e)?+e:0,i=isFinite(+t)?Math.abs(t):0,a=void 0===r?",":r,l=void 0===n?".":n,u="";return u=(i?function(e,t){var n=Math.pow(10,t);return""+(Math.round(e*n)/n).toFixed(t)}(o,i):""+Math.round(o)).split("."),u[0].length>3&&(u[0]=u[0].replace(/\B(?=(?:\d{3})+(?!\d))/g,a)),(u[1]||"").length<i&&(u[1]=u[1]||"",u[1]+=new Array(i-u[1].length+1).join("0")),u.join(l)}var ie=q()("i18n-calypso"),ae="number_format_decimals",le="number_format_thousands_sep",ue="messages",se=[function(e){return e}],ce={};function fe(){ge.throwErrors&&"undefined"!=typeof window&&window.console&&window.console.warn&&window.console.warn.apply(window.console,arguments)}function pe(e){return Array.prototype.slice.call(e)}function de(e){var t=e[0];("string"!=typeof t||e.length>3||e.length>2&&"object"==typeof e[1]&&"object"==typeof e[2])&&fe("Deprecated Invocation: `translate()` accepts ( string, [string], [object] ). These arguments passed:",pe(e),". See https://github.com/Automattic/i18n-calypso#translate-method"),2===e.length&&"string"==typeof t&&"string"==typeof e[1]&&fe("Invalid Invocation: `translate()` requires an options object for plural translations, but passed:",pe(e));for(var n={},r=0;r<e.length;r++)"object"==typeof e[r]&&(n=e[r]);if("string"==typeof t?n.original=t:"object"==typeof n.original&&(n.plural=n.original.plural,n.count=n.original.count,n.original=n.original.single),"string"==typeof e[1]&&(n.plural=e[1]),void 0===n.original)throw new Error("Translate called without a `string` value as first argument.");return n}function he(e,t){return e.dcnpgettext(ue,t.context,t.original,t.plural,t.count)}function ve(e,t){for(var n=se.length-1;n>=0;n--){var r=se[n](Object.assign({},t)),o=r.context?r.context+""+r.original:r.original;if(e.state.locale[o])return he(e.state.tannin,r)}return null}function ge(){if(!(this instanceof ge))return new ge;this.defaultLocaleSlug="en",this.defaultPluralForms=function(e){return 1===e?0:1},this.state={numberFormatSettings:{},tannin:void 0,locale:void 0,localeSlug:void 0,textDirection:void 0,translations:Z()({max:100})},this.componentUpdateHooks=[],this.translateHooks=[],this.stateObserver=new te.EventEmitter,this.stateObserver.setMaxListeners(0),this.configure()}ge.throwErrors=!1,ge.prototype.on=function(){var e;(e=this.stateObserver).on.apply(e,arguments)},ge.prototype.off=function(){var e;(e=this.stateObserver).off.apply(e,arguments)},ge.prototype.emit=function(){var e;(e=this.stateObserver).emit.apply(e,arguments)},ge.prototype.numberFormat=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="number"==typeof t?t:t.decimals||0,r=t.decPoint||this.state.numberFormatSettings.decimal_point||".",o=t.thousandsSep||this.state.numberFormatSettings.thousands_sep||",";return oe(e,n,r,o)},ge.prototype.configure=function(e){Object.assign(this,e||{}),this.setLocale()},ge.prototype.setLocale=function(e){var t,n,r;if(e&&e[""]&&e[""]["key-hash"]){var o=e[""]["key-hash"],i=function(e,t){var n=!1===t?"":String(t);if(void 0!==ce[n+e])return ce[n+e];var r=ee()().update(e).digest("hex");return ce[n+e]=t?r.substr(0,t):r},a=function(e){return function(t){return t.context?(t.original=i(t.context+String.fromCharCode(4)+t.original,e),delete t.context):t.original=i(t.original,e),t}};if("sha1"===o.substr(0,4))if(4===o.length)se.push(a(!1));else{var l=o.substr(5).indexOf("-");if(l<0){var u=Number(o.substr(5));se.push(a(u))}else for(var s=Number(o.substr(5,l)),c=Number(o.substr(6+l)),f=s;f<=c;f++)se.push(a(f))}}if(e&&e[""].localeSlug)if(e[""].localeSlug===this.state.localeSlug){if(e===this.state.locale)return;Object.assign(this.state.locale,e)}else this.state.locale=Object.assign({},e);else this.state.locale={"":{localeSlug:this.defaultLocaleSlug,plural_forms:this.defaultPluralForms}};this.state.localeSlug=this.state.locale[""].localeSlug,this.state.textDirection=(null===(t=this.state.locale["text directionltr"])||void 0===t?void 0:t[0])||(null===(n=this.state.locale[""])||void 0===n||null===(r=n.momentjs_locale)||void 0===r?void 0:r.textDirection),this.state.tannin=new X(U({},ue,this.state.locale)),this.state.numberFormatSettings.decimal_point=he(this.state.tannin,de([ae])),this.state.numberFormatSettings.thousands_sep=he(this.state.tannin,de([le])),this.state.numberFormatSettings.decimal_point===ae&&(this.state.numberFormatSettings.decimal_point="."),this.state.numberFormatSettings.thousands_sep===le&&(this.state.numberFormatSettings.thousands_sep=","),this.stateObserver.emit("change")},ge.prototype.getLocale=function(){return this.state.locale},ge.prototype.getLocaleSlug=function(){return this.state.localeSlug},ge.prototype.isRtl=function(){return"rtl"===this.state.textDirection},ge.prototype.addTranslations=function(e){for(var t in e)""!==t&&(this.state.tannin.data.messages[t]=e[t]);this.stateObserver.emit("change")},ge.prototype.hasTranslation=function(){return!!ve(this,de(arguments))},ge.prototype.translate=function(){var e=de(arguments),t=ve(this,e);if(t||(t=he(this.state.tannin,e)),e.args){var n=Array.isArray(e.args)?e.args.slice(0):[e.args];n.unshift(t);try{t=re.apply(void 0,F(n))}catch(e){if(!window||!window.console)return;var r=this.throwErrors?"error":"warn";"string"!=typeof e?window.console[r](e):window.console[r]("i18n sprintf error:",n)}}return e.components&&(t=(0,K.Z)({mixedString:t,components:e.components,throwErrors:this.throwErrors})),this.translateHooks.forEach((function(n){t=n(t,e)})),t},ge.prototype.reRenderTranslations=function(){ie("Re-rendering all translations due to external request"),this.stateObserver.emit("change")},ge.prototype.registerComponentUpdateHook=function(e){this.componentUpdateHooks.push(e)},ge.prototype.registerTranslateHook=function(e){this.translateHooks.push(e)};var me=ge;function ye(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function be(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ye(Object(n),!0).forEach((function(t){U(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ye(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var we=n(6442),Ee=n(9760),_e=new me,Oe=_e,xe=(_e.numberFormat.bind(_e),_e.translate.bind(_e)),Se=(_e.configure.bind(_e),_e.setLocale.bind(_e),_e.getLocale.bind(_e),_e.getLocaleSlug.bind(_e),_e.addTranslations.bind(_e),_e.reRenderTranslations.bind(_e),_e.registerComponentUpdateHook.bind(_e),_e.registerTranslateHook.bind(_e),_e.state,_e.stateObserver,_e.on.bind(_e),_e.off.bind(_e),_e.emit.bind(_e),function(e){e.numberFormat.bind(e),e.translate.bind(e)}(_e),function(e){var t={getCurrentValue:function(){return e.isRtl()},subscribe:function(t){return e.on("change",t),function(){return e.off("change",t)}}};function n(){return(0,we.useSubscription)(t)}var r,o,i=(r=function(e){return(0,v.forwardRef)((function(t,r){var o=n();return v.createElement(e,x({},t,{isRtl:o,ref:r}))}))},o="WithRTL",function(e){var t=r(e),n=e.displayName,i=void 0===n?e.name||"Component":n;return t.displayName="".concat((0,Ee.upperFirst)((0,Ee.camelCase)(o)),"(").concat(i,")"),t});return{useRtl:n,withRtl:i}}(_e)),ke=(Se.useRtl,Se.withRtl,n(4330)),Ce=window.navigator.userAgent.toLowerCase(),Pe=function(e){return-1!==Ce.indexOf(e)},Te=Pe("opera"),je=Pe("fxios"),Ne=Pe("firefox"),Re=Pe("safari"),Ie=!document.documentMode&&!!window.StyleMedia,Ae=Pe("crios"),Le=Pe("chrome")||Ae,Me=Pe("chromium"),ze=(Le||Te)&&!!window.CSS,De=function(){return Ie?"edge":Ae?"crios":Le?"chrome":Me?"chromium":Te?"opera":ze?"blink":je?"fxios":Ne?"firefox":Re?"safari":""},Fe=function(){var e=new RegExp(De()+"/([0-9.]+)"),t=Ce.match(e);if(Re&&!Le&&!Ne&&!je){var n=new RegExp("version/([0-9.]+)"),r=Ce.match(n);return parseInt(r[1].split(".").join("").padEnd(4,"0"))}return t.length>0?parseInt(t[1]):0},Ue=function(){return Pe("windows")},He=function(){return!Ue()&&Pe("iphone")},We=function(){return Pe("ipod")},Be=function(){return Pe("ipad")},$e=function(){return He()||We()||Be()},Ve=function(){return!Ue()&&Pe("android")},qe=function(){return Pe("blackberry")||Pe("bb10")||Pe("rim")},Ke=function(){return Ue()&&Pe("phone")},Ge=function(){return(Pe("(mobile;")||Pe("(tablet;"))&&Pe("; rv:")},Qe=function(){return Ve()&&Pe("mobile")||He()||We()||Ke()||qe()&&!Pe("tablet")||Ge()&&Pe("mobile")||Pe("meego")},Xe=function(){return window.innerWidth<=800||Qe()},Ye=function(){return Be()||Ve()&&!Pe("mobile")||qe()&&Pe("tablet")||Ue()&&Pe("touch")&&!Ke()||Ge()&&Pe("tablet")},Ze=function(){return window.innerWidth>800&&window.innerWidth<=1500||Ye()};function Je(){return{isDesktop:window.innerWidth>=1500||!Ze()&&!Xe(),isDevicePhone:Qe(),isDeviceTablet:Ye(),isPhone:Xe(),isTablet:Ze(),isPortrait:window.innerHeight/window.innerWidth>1,isLandscape:window.innerHeight/window.innerWidth<1,isTelevision:!!["googletv","viera","smarttv","internet.tv","netcast","nettv","appletv","boxee","kylo","roku","dlnadoc","roku","pov_tv","hbbtv","ce-html"].find((function(e){return Pe(e)})),browser:{name:De(),version:Fe(),isSupported:(e=Fe(),!!e&&(Ie?e>=15:Le||Te||ze?e>=58:Ne?e>=54:je?e>=16:Re?e>=1012:Ne||Re||Ie||Le||ze))},height:window.innerHeight,width:window.innerWidth};var e}var et,tt={config:{assetsPath:function(){var e="";try{e=process&&process.env&&process.env.ASSETS_PATH}catch(e){}return e||"https://d2vwyrahnvh3s3.cloudfront.net/styleguide/v2.2.0/assets"}()},device:Je()},nt=v.createContext(tt),rt=(et=function(e,t){return et=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},et(e,t)},function(e,t){function n(){this.constructor=e}et(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),ot=function(){return ot=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},ot.apply(this,arguments)},it=function(e){var t;return t=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.state={device:Je()},e.timeout=null,e.onResize=function(){e.timeout&&clearTimeout(e.timeout),e.timeout=setTimeout((function(){var t=Je();e.setState({device:t},(function(){return e.props.onResize(t)}))}),300)},e}return rt(n,t),n.prototype.componentDidMount=function(){window.addEventListener("resize",this.onResize),this.props.onInit(this.state.device)},n.prototype.componentWillUnmount=function(){window.removeEventListener("resize",this.onResize)},n.prototype.render=function(){var t=this.props,n=(t.onInit,t.onResize,t.children),r=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(t,["onInit","onResize","children"]);return v.createElement(e,ot({device:this.state.device},r),n)},n}(v.Component),t.defaultProps={onInit:function(){return null},onResize:function(){return null}},t},at=function(){return at=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},at.apply(this,arguments)},lt=it((function(e){var t=e.context,n=void 0===t?{}:t,r=e.device,o=e.children,i=at(at(at({},tt),{device:r}),n);return v.createElement(nt.Provider,{value:i},o)})),ut=n(3381),st=n.n(ut),ct=function(){return ct=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},ct.apply(this,arguments)};function ft(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e.filter(Boolean).join(" ")}function pt(e){var t=e.styles,n=e.classes,r=e.className,o=st().bind(t),i={};return r&&(i[""+r]=!0),o(ct(ct({},n),i))}var dt=function(e){var t={};return e.map((function(e){e.props.map((function(n){return t[""+e.class+n]=n===e.selected}))})),t},ht="navigation",vt=function(){window.dispatchEvent(new Event(ht))},gt=function(){return gt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},gt.apply(this,arguments)},mt=Array.from(new Set(["accept","accept-charset","accesskey","action","alt","async","autocomplete","autofocus","autoplay","charset","checked","cite","class","cols","colspan","content","contenteditable","controls","coords","data","datetime","default","defer","dir","dirname","disabled","download","draggable","dropzone","enctype","for","form","formaction","headers","height","hidden","high","href","hreflang","http-equiv","id","ismap","kind","label","lang","list","loop","low","max","maxlength","media","method","min","multiple","muted","name","novalidate","onabort","onafterprint","onbeforeprint","onbeforeunload","onblur","oncanplay","oncanplaythrough","onchange","onclick","oncontextmenu","oncopy","oncuechange","oncut","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","onhashchange","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onoffline","ononline","onpageshow","onpaste","onpause","onplay","onplaying","onprogress","onratechange","onreset","onresize","onscroll","onsearch","onseeked","onseeking","onselect","onstalled","onsubmit","onsuspend","ontimeupdate","ontoggle","onunload","onvolumechange","onwaiting","onwheel","open","optimum","pattern","placeholder","poster","preload","readonly","rel","required","reversed","role","rows","rowspan","sandbox","scope","selected","shape","size","sizes","span","spellcheck","src","srcdoc","srclang","srcset","start","step","style","tabindex","target","title","type","usemap","value","width","wrap"].concat(["children","dangerouslysetinnerhtml","oncopy","oncopycapture","oncut","oncutcapture","onpaste","onpastecapture","oncompositionend","oncompositionendcapture","oncompositionstart","oncompositionstartcapture","oncompositionupdate","oncompositionupdatecapture","onfocus","onfocuscapture","onblur","onblurcapture","onchange","onchangecapture","onbeforeinput","onbeforeinputcapture","oninput","oninputcapture","onreset","onresetcapture","onsubmit","onsubmitcapture","oninvalid","oninvalidcapture","onload","onloadcapture","onerror","onerrorcapture","onkeydown","onkeydowncapture","onkeypress","onkeypresscapture","onkeyup","onkeyupcapture","onabort","onabortcapture","oncanplay","oncanplaycapture","oncanplaythrough","oncanplaythroughcapture","ondurationchange","ondurationchangecapture","onemptied","onemptiedcapture","onencrypted","onencryptedcapture","onended","onendedcapture","onloadeddata","onloadeddatacapture","onloadedmetadata","onloadedmetadatacapture","onloadstart","onloadstartcapture","onpause","onpausecapture","onplay","onplaycapture","onplaying","onplayingcapture","onprogress","onprogresscapture","onratechange","onratechangecapture","onseeked","onseekedcapture","onseeking","onseekingcapture","onstalled","onstalledcapture","onsuspend","onsuspendcapture","ontimeupdate","ontimeupdatecapture","onvolumechange","onvolumechangecapture","onwaiting","onwaitingcapture","onclick","onclickcapture","oncontextmenu","oncontextmenucapture","ondoubleclick","ondoubleclickcapture","ondrag","ondragcapture","ondragend","ondragendcapture","ondragenter","ondragentercapture","ondragexit","ondragexitcapture","ondragleave","ondragleavecapture","ondragover","ondragovercapture","ondragstart","ondragstartcapture","ondrop","ondropcapture","onmousedown","onmousedowncapture","onmouseenter","onmouseleave","onmousemove","onmousemovecapture","onmouseout","onmouseoutcapture","onmouseover","onmouseovercapture","onmouseup","onmouseupcapture","onselect","onselectcapture","ontouchcancel","ontouchcancelcapture","ontouchend","ontouchendcapture","ontouchmove","ontouchmovecapture","ontouchstart","ontouchstartcapture","onpointerdown","onpointerdowncapture","onpointermove","onpointermovecapture","onpointerup","onpointerupcapture","onpointercancel","onpointercancelcapture","onpointerenter","onpointerentercapture","onpointerleave","onpointerleavecapture","onpointerover","onpointerovercapture","onpointerout","onpointeroutcapture","ongotpointercapture","ongotpointercapturecapture","onlostpointercapture","onlostpointercapturecapture","onscroll","onscrollcapture","onwheel","onwheelcapture","onanimationstart","onanimationstartcapture","onanimationend","onanimationendcapture","onanimationiteration","onanimationiterationcapture","ontransitionend","ontransitionendcapture"]))).reduce((function(e,t){var n;return gt(gt({},e),((n={})[t]=!0,n))}),{});function yt(e){var t,n,r=Object.keys(e),o={};try{for(var i=function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(r),a=i.next();!a.done;a=i.next()){var l=a.value,u=l.toLocaleLowerCase();(mt[u]||u.startsWith("data-")||u.startsWith("aria-"))&&(o[l]=e[l])}}catch(e){t={error:e}}finally{try{a&&!a.done&&(n=i.return)&&n.call(i)}finally{if(t)throw t.error}}return o}var bt={UP:"ArrowUp",DOWN:"ArrowDown",LEFT:"ArrowLeft",RIGHT:"ArrowRight",HOME:"Home",END:"End",ENTER:"Enter",BACKSPACE:"Backspace",ESCAPE:"Escape",COMMA:",",TAB:"Tab",META:"Meta",CONTROL:"Control",A:"a",C:"c",V:"v",SPACE:" "},wt=bt,Et=function(e){return e.key===bt.TAB&&!e.shiftKey},_t=function(e){return e.key===bt.TAB&&e.shiftKey},Ot=function(){return Ot=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Ot.apply(this,arguments)},xt="sg-keyboard",St=function(e){switch(e.key){case wt.TAB:case wt.UP:case wt.RIGHT:case wt.DOWN:case wt.LEFT:document.body.classList.add(xt)}},kt=function(){return document.body.classList.add(xt)},Ct=function(){return document.body.classList.remove(xt)},Pt=function(e){var t=e.children,n=e.context,r=e.device,o=e.headerContent,i=e.pageContent,a=e.drawerContent,l=e.isDrawerOpened,u=e.layout,s=e.onDrawerOverlayClick,c=e.position,f=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["children","context","device","headerContent","pageContent","drawerContent","isDrawerOpened","layout","onDrawerOverlayClick","position"]),p=ft("sg-layout","sg-layout--"+c),d=ft("sg-layout__drawer",u&&"sg-layout__drawer--"+u,l&&"sg-layout__drawer--opened"),h=ft("sg-drawer__overlay",l&&"sg-drawer__overlay--opened");return v.useEffect((function(){return window.addEventListener(ht,kt),window.addEventListener("keydown",St),window.addEventListener("click",Ct),function(){window.removeEventListener(ht,kt),window.removeEventListener("keydown",St),window.removeEventListener("click",Ct)}}),[]),v.createElement(nt.Provider,{value:Ot(Ot(Ot({},tt),{device:r}),n)},v.createElement("div",Ot({className:p},yt(f),{"data-e2e":e["data-e2e"]}),o,v.createElement("div",{className:"sg-layout__wrapper"},a&&v.createElement("aside",{className:d},a),v.createElement("main",{className:"sg-layout__page"},i,t),v.createElement("div",{className:h,onClick:s}))))};Pt.defaultProps={"data-e2e":"layout",position:"absolute"};var Tt=it(Pt);function jt(e,t){if("string"==typeof t)return{top:t,right:t,bottom:t,left:t};var n=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}(t,4),r=n[0],o=n[1],i=n[2],a=n[3];switch(t.length){case 2:return{top:r,right:o,bottom:r,left:o};case 3:return{top:r,right:o,bottom:i,left:o};case 4:return{top:r,right:o,bottom:i,left:a};default:throw new Error("The array with "+e+" must contain max 4 settings [top, right, bottom, left]")}}var Nt=["small","medium","large","x-large"],Rt=function(){return Nt},It=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},At=function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(It(arguments[t]));return e}(["inherit","none"],["xx-small","x-small","small","medium","large","x-large","xx-large"],["responsive"]),Lt=function(){return At},Mt=function(){return Mt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Mt.apply(this,arguments)},zt=function(e){if(!e)return null;var t=jt("padding",e),n=[{class:"sg-with-padding--padding-top-",props:Lt(),selected:t.top},{class:"sg-with-padding--padding-right-",props:Lt(),selected:t.right},{class:"sg-with-padding--padding-bottom-",props:Lt(),selected:t.bottom},{class:"sg-with-padding--padding-left-",props:Lt(),selected:t.left}];return pt({styles:r.default,classes:Mt({"sg-with-padding":!0},dt(n))})},Dt=function(){return Dt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Dt.apply(this,arguments)},Ft=v.forwardRef((function(e,t){var n=e.children,r=e.padding,o=e.className,i=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["children","padding","className"]),a=ft("sg-page",zt(r),o);return v.createElement("div",Dt({className:a},yt(i),{ref:t,"data-component":"page"}),n)}));Ft.defaultProps={"data-e2e":"page"};var Ut=Ft,Ht=n(6285),Wt=function(){return Wt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Wt.apply(this,arguments)},Bt=function(e){var t=e.className,n=e.children,r=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["className","children"]),o=ft("sg-notifications",0===n.length&&"sg-notifications-is-empty",t);return v.createElement(Ht.TransitionGroup,Wt({className:o},yt(r),{role:"alert"}),n)},$t=new(function(){function e(){this.subscribers=[]}return e.prototype.subscribe=function(e){this.subscribers.push(e)},e.prototype.emit=function(e){this.subscribers.forEach((function(t){return t(e)}))},e.prototype.unsubscribe=function(e){this.subscribers.filter((function(t){return t!==e}))},e.prototype.success=function(e,t){void 0===t&&(t=null),this.emit({id:+new Date,type:"success",message:e,title:t})},e.prototype.error=function(e,t){void 0===t&&(t=null),this.emit({id:+new Date,type:"error",message:e,title:t})},e}()),Vt=["A","BUTTON","INPUT","TEXTAREA"],qt=function(e){var t=Vt.includes(e.nodeName),n=null!==e.getAttribute("tabindex");return(t||n)&&!function(e){var t=e.getAttribute("disabled"),n=e.getAttribute("data-disabled");return""===t||"true"===t||""===n||"true"===n}(e)},Kt=function(){return Kt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Kt.apply(this,arguments)},Gt={event:null,includeChildren:!1,isDirectionForward:!0,onComponentFiltering:function(){return!0},onSuccessCallback:function(){return!0}},Qt=function(e){var t=Kt(Kt({},Gt),e),n=t.event,r=t.includeChildren,o=t.startingElement,i=void 0===o?document.activeElement:o,a=t.isDirectionForward,l=t.onComponentFiltering,u=t.onSuccessCallback,s=a?1:-1,c=Array.from(document.body.querySelectorAll("*")).filter((function(e){return e===i||e.getAttribute("data-component")&&qt(e)&&l(e)})).filter((function(e){return i===e||!!r||!1===i.contains(e)})),f=c.findIndex((function(e){return e===i})),p=c[f+s];p&&(p.focus(),function(e){e.preventDefault(),e.stopPropagation(),vt()}(n),u(p))},Xt=["primary","success","warning","error","info","instruction","white","light","dark"],Yt=function(){return Yt=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Yt.apply(this,arguments)},Zt=function(e){return void 0===e&&(e=null),pt({styles:o.default,classes:Yt({"sg-with-color":!0},dt([{class:"sg-with-color--color-",props:Xt,selected:e}]))})},Jt=0,en=function(e){return void 0===e&&(e="sg"),""+e+ ++Jt},tn=function(e){var t=e.getBoundingClientRect();return{bottom:t.bottom,height:t.height,left:t.left||t.x,right:t.top||t.y,top:t.top,width:t.width}},nn=function(e){var t=e.target,n=e.property,r=e.value;try{t.style[n]=r}catch(e){t.setAttribute(n,r),t.setAttribute("style",t.getAttribute("style")+";"+n+":"+r)}},rn=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),on=function(){return on=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},on.apply(this,arguments)},an=function(e){function t(t){var n=e.call(this,t)||this;return n.node=null,n.node=v.createRef(),n}return rn(t,e),t.prototype.componentDidMount=function(){this.setPosition()},t.prototype.setPosition=function(){var e=this.props.target,t=tn(e),n=t.left+t.width/2,r=t.top+t.height/2,o=window.innerWidth/2,i=this.node.current.offsetWidth/2,a=window.innerHeight-r>t.height/2+this.node.current.offsetHeight+5;if(n<o){var l=t.left+t.width/2-i,u=l>0?l:0;nn({target:this.node.current,property:"left",value:u+"px"})}else{var s=t.left+t.width/2+i,c=window.innerWidth-s>0?window.innerWidth-s:0;nn({target:this.node.current,property:"right",value:c+"px"})}if(a){var f=t.height+t.top+window.pageYOffset+10;nn({target:this.node.current,property:"top",value:f+"px"})}else{var p=window.innerHeight-r+t.height/2+10;nn({target:this.node.current,property:"bottom",value:p+"px"})}},t.prototype.render=function(){var e=this.props,t=e.className,n=e.children,r=e.tooltipSize,o=(e.target,e.background),i=e.density,a=e.tooltipId,l=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["className","children","tooltipSize","target","background","density","tooltipId"]),u=ft("sg-tooltip",r&&"sg-tooltip--size-"+r,o&&"sg-tooltip--background-"+o,i&&"sg-tooltip--density-"+i,t);return g.createPortal(v.createElement("div",on({ref:this.node,className:u,role:"tooltip","aria-hidden":"false",id:a},l),n),document.body)},t.defaultProps={"data-e2e":"tooltip",background:"black",density:"cozy"},t}(v.PureComponent),ln=an,un=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),sn=function(){return sn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},sn.apply(this,arguments)},cn=function(e,t){void 0===t&&(t={});var n=function(n){function r(){var e=null!==n&&n.apply(this,arguments)||this;return e.state={target:null,isTooltipVisible:!1},e.timeoutId=null,e.handleEnter=function(n){clearTimeout(e.timeoutId);var r="svg"===n.currentTarget.nodeName?n.currentTarget.parentElement:n.currentTarget;t.delay?e.timeoutId=setTimeout((function(){return e.showTooltip(r)}),t.delay):e.showTooltip(r)},e.showTooltip=function(t){e.setState({target:t,isTooltipVisible:!0},(function(){e.isMobileSafari&&(document.removeEventListener("touchend",e.handleTouchEndOnMobileSafari),document.addEventListener("touchend",e.handleTouchEndOnMobileSafari))}))},e.hideTooltip=function(){clearTimeout(e.timeoutId),e.setState({isTooltipVisible:!1}),e.isMobileSafari&&document.removeEventListener("touchend",e.handleTouchEndOnMobileSafari)},e.handleTouchEndOnMobileSafari=function(t){var n=e.state,r=n.isTooltipVisible,o=n.target;o===t.target||o.contains(t.target)||t.target.className&&t.target.className.indexOf("sg-tooltip")>=0||r&&(o!==document.activeElement&&o.focus(),o.blur())},e}return un(r,n),Object.defineProperty(r.prototype,"isMobileSafari",{get:function(){var e=this.props.device;return e.isDevicePhone&&"safari"===e.browser.name},enumerable:!0,configurable:!0}),r.prototype.componentWillUnmount=function(){this.isMobileSafari&&document.removeEventListener("touchend",this.handleTouchEndOnMobileSafari)},r.prototype.render=function(){var n=this.props,r=n.device,o=n.tooltip,i=void 0===o?t.tooltip:o,a=n.tooltipSize,l=n.forwardRef,u=n.background,s=n.density,c=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(n,["device","tooltip","tooltipSize","forwardRef","background","density"]),f=this.state,p=f.target,d=f.isTooltipVisible,h=t.preventTooltipOnMobile,g=Boolean(d&&i);h&&(g=!r.isDevicePhone&&!r.isDeviceTablet&&g);var m=en();return v.createElement(v.Fragment,null,v.createElement(e,sn({},c,{ref:l,device:r,onMouseEnter:this.handleEnter,onMouseLeave:this.hideTooltip,onFocus:this.handleEnter,onBlur:this.hideTooltip,"aria-describedby":m})),g&&v.createElement(ln,{target:p,tooltipId:m,tooltipSize:a,background:u,density:s},i))},r.defaultProps={},r}(v.Component);return v.forwardRef((function(e,t){return v.createElement(nt.Consumer,null,(function(r){var o=r.device;return v.createElement(n,sn({},e,{device:o,forwardRef:t}))}))}))},fn=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),pn=function(){return pn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},pn.apply(this,arguments)},dn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},hn={exceptionIcons:{empty:" ",e2e:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><circle class="st0" cx="16" cy="16" r="5.75"></circle></svg>'},getIcon:function(e,t){return void 0!==hn.exceptionIcons[e]?new Promise((function(t){return t(hn.exceptionIcons[e])})):(hn[e]||(hn[e]=fetch(t).then((function(e){return e.text()})).then((function(e){return e.toLowerCase().includes("!doctype")?null:e})).catch((function(e){console.warn(e)}))),hn[e])}},vn=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.state={svg:""},t.mounted=!1,t.getSVG=function(){var e=t.props,n=e.width,r=e.height,o=e.size,i=t.state.svg||"";return n||r||o?((r||o)&&(i=i.replace('xmlns="http://www.w3.org/2000/svg"','xmlns="http://www.w3.org/2000/svg" height="'+(r||o)+'" ')),(n||o)&&(i=i.replace('xmlns="http://www.w3.org/2000/svg"','xmlns="http://www.w3.org/2000/svg" width="'+(n||o)+'" ')),i):t.state.svg},t.getIconPath=function(e){return t.props.path+"/"+e+".svg"},t}return fn(t,e),t.prototype.componentDidMount=function(){var e=this;this.mounted=!0,this.fetch(this.props.name),this.props.prefetch&&this.props.prefetch.forEach((function(t){return e.prefetch(t)}))},t.prototype.componentDidUpdate=function(e){this.props.name!==e.name&&this.fetch(this.props.name)},t.prototype.componentWillUnmount=function(){this.mounted=!1},t.prototype.prefetch=function(e){hn.getIcon(e,this.getIconPath(e))},t.prototype.fetch=function(e){var t=this;hn.getIcon(e,this.getIconPath(e)).then((function(e){t.mounted&&t.setState({svg:e})}))},t.prototype.render=function(){var e=this.props,t=e.name,n=void 0===t?"":t,r=e.multicolor,o=e.fill,i=e.className,a=e.tabIndex,l=e.forwardRef,u=e.color,s=e.role,c=e["data-tooltip"],f=e["data-e2e"],p=e["data-component"],d=e["aria-label"],h=dn(e,["name","multicolor","fill","className","tabIndex","forwardRef","color","role","data-tooltip","data-e2e","data-component","aria-label"]),g=this.props,m=g.width,y=g.height,b=g.size,w=g.style,E=g.onClick,_=g.onKeyDown,O=(dn(g,["width","height","size","style","onClick","onKeyDown"]),pn(pn({},{width:(m||b)+"px",height:(y||b)+"px"}),w)),x=!r,S=c&&0,k=ft("sg-icon",E&&"sg-icon--interactive",o&&"sg-icon--fill-"+o,x&&"sg-icon--use-css-colors",x&&Zt(u),new RegExp("(presentational|product)").test(n)&&x&&"sg-icon--color-"+u,i);return v.createElement("span",pn({className:k},yt(h),{ref:l,"data-tooltip":c,style:O,onClick:E,tabIndex:void 0!==a?a:S,dangerouslySetInnerHTML:{__html:this.getSVG()},"data-e2e":f,"data-component":p,"data-icon":n,role:s,"aria-label":d,onKeyDown:function(e){switch(e.key){case wt.SPACE:case wt.ENTER:e.preventDefault(),e.stopPropagation(),e.target.click()}_&&_(e)}}))},t.defaultProps={fill:"lighter","data-e2e":"icon","data-component":"icon",role:"img"},t}(v.Component),gn=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(t){return e.reduceRight((function(e,t){return t(e)}),t)}}(cn,v.forwardRef)((function(e,t){return v.createElement(vn,pn({},e,{forwardRef:t}))}));gn.displayName="Icon";var mn=v.forwardRef((function(e,t){return v.createElement(nt.Consumer,null,(function(n){var r=n.config;return v.createElement(gn,pn({ref:t,path:r.assetsPath+"/svg"},e))}))})),yn=function(){return yn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},yn.apply(this,arguments)},bn=v.forwardRef((function(e,t){var n=t||v.createRef(),r=v.createRef(),o=e.children,i=e.disabled,a=e.className,l=e.tag,u=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["children","disabled","className","tag"]);return v.createElement(l,yn({},u,{ref:n,onMouseDown:function(e){if(!n.current||!r.current||i)return null;r.current.classList.remove("sg-ripple"),r.current.style.left="0px",r.current.style.top="0px",r.current.style.width="0px",r.current.style.height="0px";var t,o,a,l=(o=(t=n.current).offsetWidth)>=(a=t.offsetHeight)?o:a,u=function(e,t,n){var r=tn(t);return{x:e.clientX-r.left-n/2,y:e.clientY-r.top-n/2}}(e,n.current,l);r.current.style.left=u.x+"px",r.current.style.top=u.y+"px",r.current.style.width=l+"px",r.current.style.height=l+"px",r.current.classList.add("sg-ripple")},className:ft("sg-ripple-container",a)}),o,v.createElement("span",{ref:r}))}));bn.displayName="Ripple";var wn=bn,En=function(){return En=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},En.apply(this,arguments)},_n={small:"12",medium:"16",large:"18","x-large":"18","xx-large":"22"},On=v.forwardRef((function(e,t){var n=e.children,r=e.color,o=e.disabled,i=(e.device,e.size),a=e.className,l=e.icon,u=e.onClick,s=e.iconColor,c=e.tabIndex,f=e.isActive,p=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["children","color","disabled","device","size","className","icon","onClick","iconColor","tabIndex","isActive"]),d=ft("sg-icon-button","sg-icon-button--circle",f&&"sg-icon-button--active",r&&"sg-icon-button--"+r,o&&"sg-icon-button--disabled",i&&"sg-icon-button--"+i,a);return v.createElement(wn,En({ref:t,tag:"span",className:d,tabIndex:c,role:"button"},yt(p),{onKeyDown:function(e){return function(e){var t=e.event,n=e.disabled;switch(Et(t)&&Qt({event:t}),_t(t)&&Qt({event:t,isDirectionForward:!1}),t.key){case wt.SPACE:case wt.ENTER:if(n)return;return t.preventDefault(),t.stopPropagation(),t.target.click();default:return}}({event:e,disabled:o,onClick:u})},disabled:o,onClick:function(e){o?e.preventDefault():"function"==typeof u&&u(e)}}),l&&v.createElement(mn,{name:l,size:_n[i],className:"sg-icon-button__icon",tabIndex:null,color:s,"aria-hidden":!0}),n)}));On.defaultProps={color:"neutral",size:"medium","data-e2e":"icon-button","data-component":"icon-button",tabIndex:0};var xn=cn(On,{preventTooltipOnMobile:!0});xn.displayName="IconButton";var Sn=xn,kn=["left","center","right"],Cn=["capitalize","lowercase","uppercase"],Pn=["light","regular","medium","bold","extra-bold"],Tn=function(){return Tn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Tn.apply(this,arguments)},jn=function(e){if(!e)return null;var t=e.align,n=e.italic,r=e.transform,o=e.truncate,a=e.weight,l=e.wordBreak;return pt({styles:i.default,classes:Tn({"sg-typography":!0,"sg-typography--truncate":o,"sg-typography--italic":n},dt([{class:"sg-typography--align-",props:kn,selected:t},{class:"sg-typography--transform-",props:Cn,selected:r},{class:"sg-typography--weight-",props:Pn,selected:a},{class:"sg-typography--break-",props:["all","word"],selected:l}]))})},Nn=function(){return Nn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Nn.apply(this,arguments)},Rn=function(e){var t=e.children,n=e.className,r=e.size,o=e.tag,i=e.color,l=e.padding,u=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["children","className","size","tag","color","padding"]),s=[{class:"sg-text--size-",props:["small","medium","large","x-large","inherit"],selected:r}],c=ft(n,Zt(i),zt(l),jn(u)),f=pt({styles:a.default,classes:Nn({"sg-text":!0},dt(s)),className:c});return v.createElement(o,Nn({className:f},yt(u)),t)};Rn.defaultProps={weight:"regular",color:"dark",size:"medium",tag:"p","data-e2e":"text"};var In=Rn,An=n(5043),Ln=n.n(An),Mn=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},zn=function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(Mn(arguments[t]));return e},Dn=function(e,t,n){return void 0===t&&(t=[]),void 0===n&&(n=[]),e?new(Ln())({ALLOWED_TAGS:zn(["em","strong","b","br","span"],t),ALLOWED_ATTRIBUTES:zn(["class","className"],n)}).transform(e):""},Fn=["1","2","3","4","5","6"],Un=["airy","comfortable","cozy","compact","none"],Hn=function(){return Hn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Hn.apply(this,arguments)},Wn=function(e){var t=e.children,n=e.className,r=e.density,o=e.level,i=e.color,a=e.tag,u=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["children","className","density","level","color","tag"]),s=ft(Zt(i),jn(u),n),c=pt({styles:l.default,classes:Hn({"sg-title":!0},dt([{class:"sg-title--density-",props:Un,selected:r},{class:"sg-title--level-",props:Fn,selected:o}])),className:s});return v.createElement(a||"h"+o,Hn({className:c,"data-component":"title",role:"heading"},yt(u)),"string"==typeof t?Dn(t):t)};Wn.defaultProps={weight:"bold",color:"dark",density:"cozy",level:"1","data-e2e":"title"},Wn.displayName="Title";var Bn=Wn,$n=function(){return $n=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},$n.apply(this,arguments)},Vn={success:"success",error:"error",warning:"warning",info:"information",instruction:"information",hint:"information"},qn=function(e){var t=e.className,n=e.device,r=e.message,o=e.title,i=e.type,a=e.onClose,l=e.children,u=e.style,s=e.enter,c=e.onEnter,f=e.onEntered,p=e.onEntering,d=e.exit,h=e.onExit,g=e.onExited,m=e.onExiting,y=e["data-e2e"],b=e["data-component"],w=e.tabIndex,E=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["className","device","message","title","type","onClose","children","style","enter","onEnter","onEntered","onEntering","exit","onExit","onExited","onExiting","data-e2e","data-component","tabIndex"]),_=ft("sg-notification",i&&"sg-notification--"+i,t);return v.createElement(Ht.CSSTransition,$n({classNames:"sg-notification--animation"},yt(E),{in:e.in,enter:s,onEnter:c,onEntered:f,onEntering:p,exit:d,onExit:h,onExited:g,onExiting:m,mountOnEnter:!0,unmountOnExit:!0,timeout:{enter:1,exit:500}}),v.createElement("div",{style:u,className:_,"data-e2e":y,"data-e2e-status":i,"data-component":b,tabIndex:w},v.createElement("div",{className:"sg-notification__icon"},v.createElement(mn,{name:Vn[i],color:"white",size:n.isPhone?"15":"20"})),v.createElement("div",{className:"sg-notification__content","data-e2e":"notification-content"},v.createElement(Bn,{level:"6",density:"none",className:"sg-notification__title"},o),r&&v.createElement(In,{size:"small",color:"dark"},r),l),v.createElement("div",{className:"sg-notification__close-icon","data-e2e":"notification-close-icon"},a&&v.createElement(Sn,{icon:"cross",size:"small",onClick:a,tabIndex:-1}))))};qn.defaultProps={"data-e2e":"notification","data-component":"notification",tabIndex:-1};var Kn=function(e){return v.createElement(nt.Consumer,null,(function(t){var n=t.device;return v.createElement(qn,$n({},e,{device:n}))}))};Kn.displayName="Notification";var Gn=Kn,Qn=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Xn=function(){return Xn=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Xn.apply(this,arguments)},Yn=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.defaultTitles={success:t.props.defaultSuccessTitle,error:t.props.defaultErrorTitle},t.handleClose=function(){var e=t.props,n=e.removeNotification,r=e.notification;void 0!==t.timeout&&(clearTimeout(t.timeout),t.timeout=void 0,n(r.id))},t}return Qn(t,e),t.prototype.componentDidMount=function(){var e=this;this.timeout=setTimeout((function(){e.handleClose()}),7e3)},t.prototype.componentWillUnmount=function(){this.handleClose()},t.prototype.render=function(){var e=this.props,t=e.notification,n=(e.defaultErrorTitle,e.defaultSuccessTitle,e.removeNotification,function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["notification","defaultErrorTitle","defaultSuccessTitle","removeNotification"])),r=t.title||this.defaultTitles[t.type];return v.createElement(Gn,Xn({type:t.type,title:r,message:t.message,onClose:this.handleClose},n))},t}(v.Component),Zn=Yn,Jn=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),er=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.state={notifications:[]},t.addNotification=function(e){t.setState((function(t){return{notifications:t.notifications.concat(e)}}))},t.removeNotification=function(e){t.setState((function(t){return{notifications:t.notifications.filter((function(t){return t.id!==e}))}}))},t}return Jn(t,e),t.prototype.componentDidMount=function(){$t.subscribe(this.addNotification)},t.prototype.componentWillUnmount=function(){$t.unsubscribe(this.addNotification)},t.prototype.render=function(){var e=this;return v.createElement(Bt,null,this.state.notifications.map((function(t){return v.createElement(Zn,{key:t.id,notification:t,defaultSuccessTitle:e.props.defaultSuccessTitle,defaultErrorTitle:e.props.defaultErrorTitle,removeNotification:e.removeNotification})})))},t}(v.Component),tr=er,nr=function(e){var t=e.config.locale?JSON.parse(e.config.locale):{"":{}};return t[""].localeSlug=e.config.localeSlug||"en",t},rr=function(e){return e.router.page},or="FETCH_STATUS",ir="FETCH_STATUS_SUCCESS",ar="POLL_STATUS",lr=function(){return lr=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},lr.apply(this,arguments)},ur=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},sr=function(e){return{type:ir,payload:e}},cr={endpoint:"/transfer-token",resourceName:"token"},fr={endpoint:"/transfer-cancelled",resourceName:"cancel"},pr={endpoint:"/transfer-continue",resourceName:"continue"},dr={endpoint:"/transfer-status",resourceName:"status"},hr={endpoint:"/transfer-success",resourceName:"success"},vr={endpoint:"/initiate-new-transfer",resourceName:"transfer"},gr=function(){return gr=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},gr.apply(this,arguments)},mr=function(e){var t=e.className,n=e.density,r=e.padding,o=e.theme,i=e.children,a=e.expanded,l=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["className","density","padding","theme","children","expanded"]),u=ft("sg-section",n&&"sg-section--density-"+n,o&&"sg-section--theme-"+o,a&&"sg-section--expanded",t);return r&&console.warn("Property padding is deprecated. Use density for vertical spacing"),o&&console.warn("Property theme is deprecated."),v.createElement("div",gr({className:u},yt(l)),v.createElement("div",{className:"sg-section__content"},i))};mr.defaultProps={density:"cozy","data-e2e":"section"};var yr=mr,br=function(){return br=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},br.apply(this,arguments)},wr=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Er=function(e){var t=e.children,n=wr(e,["children"]);return v.createElement(Bn,br({density:"comfortable"},n),t)},_r=function(e){var t=e.children,n=wr(e,["children"]);return v.createElement(Bn,br({level:"4"},n),t)},Or=function(){return Or=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Or.apply(this,arguments)},xr=function(e){var t=e.elevation,n=e.padding,r=e.className,o=e.children,i=e.tabIndex,a=e["data-e2e"],l=e["data-component"],u=e.ref,s=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["elevation","padding","className","children","tabIndex","data-e2e","data-component","ref"]),c=ft("sg-container","sg-container--elevation-"+t,zt(n),r);return v.createElement("div",Or({ref:u,className:c,"data-e2e":a,"data-component":l,tabIndex:i},yt(s)),o)};xr.defaultProps={elevation:"1",padding:"medium","data-e2e":"container","data-component":"container"};var Sr=xr,kr={success:"check",warning:"generic-clock",error:"cross",attention:"presentational-attention",exclamation:"exclamation-mark",loading:"loader"},Cr={success:"40",warning:"64",error:"40",attention:"110",exclamation:"50"},Pr={success:"success",warning:"warning",error:"error",attention:"warning",exclamation:"warning"},Tr=function(e){var t=e.children,n=e.className,r=e.description,o=e.status,i=e.title,a=v.useContext(nt).device,l=ft("status-box",o&&"status-box--"+o,n),u=ft("status-box-icon-wrapper",o&&"status-box-icon-wrapper--"+o),s=a.isPhone?"medium":"xx-large";return v.createElement(Sr,{padding:s,className:l,tabIndex:0},v.createElement("div",{className:"status-box-wrapper"},v.createElement("div",{className:"status-box-icon-background"},v.createElement("div",{className:u},v.createElement(mn,{name:kr[o],size:Cr[o],color:Pr[o],multicolor:!Pr[o],className:"status-box-icon"}))),v.createElement(Bn,{align:"center",weight:"regular",className:"status-box-title"},i),r&&v.createElement(In,{align:"center",color:"dark",size:"large",className:"status-box-description"},r),t))};Tr.defaultProps={status:"success"},Tr.displayName="StatusBox";var jr=Tr,Nr=function(){return Nr=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Nr.apply(this,arguments)},Rr=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},Ir=function(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(Rr(arguments[t]));return e},Ar=v.forwardRef((function(e,t){var n=e.action,r=e.color,o=e.size,i=e.children,a=e.className,l=e.disabled,u=e.expand,s=e.tabIndex,c=e.tag,f=e["data-e2e"],p=e["data-component"],d=e.onClick,h=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["action","color","size","children","className","disabled","expand","tabIndex","tag","data-e2e","data-component","onClick"]),g=ft("sg-button","sg-button--"+r,"sg-button--"+o,l&&"sg-button--disabled",u&&"sg-button--expanded",a);return v.createElement(wn,Nr({tag:c,className:g,ref:t,tabIndex:s,"data-e2e":f,"data-component":p},yt(h),{type:n,onClick:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];l||"function"!=typeof d||d.apply(void 0,Ir(e))}}),v.createElement("span",{className:"sg-button__content"},i))}));Ar.displayName="Button",Ar.defaultProps={action:"submit",color:"neutral","data-e2e":"button","data-component":"button",tag:"button",size:"medium",tabIndex:0};var Lr=Ar,Mr=function(e){return e.items[cr.resourceName]},zr=function(e){return e.items[dr.resourceName]},Dr=function(e){return e.items[hr.resourceName]},Fr="PAGE_NAVIGATION",Ur=function(e){return{type:Fr,payload:{page:e}}},Hr="FETCH_ITEM",Wr="FETCH_ITEM_SUCCESS",Br="UPDATE_ITEM",$r="UPDATE_ITEM_SUCCESS",Vr=function(){return Vr=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Vr.apply(this,arguments)},qr=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},Kr=function(e,t){var n=e.requestTypeName,r=qr(e,["requestTypeName"]);return Vr({type:Hr,requestTypeName:n,payload:Vr({},r)},t)},Gr=function(e){return{type:Wr,payload:e}},Qr=function(e,t){var n=e.requestTypeName,r=qr(e,["requestTypeName"]);return Vr({type:Br,requestTypeName:n||"UPDATE_ITEM",payload:Vr({},r)},t)},Xr=function(e){return{type:$r,payload:e}},Yr=function(){return Yr=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Yr.apply(this,arguments)},Zr=function(){var e=M[L.Fail].title,t=T(),n=A(zr).transfer_status;return v.createElement(yr,null,v.createElement(Er,null,xe(e)),v.createElement(jr,{status:"warning",title:n.message,description:n.description},v.createElement("div",null,v.createElement(Lr,{color:"primary",onClick:function(){t(Qr(Yr({},fr),{onComplete:function(){t(Ur(L.Home))}}))}},xe("Cancel Transfer")),v.createElement(Lr,{color:"primary",onClick:function(){t(Qr(Yr({},pr),{onComplete:function(){t(Ur(L.Status))}}))}},xe("Continue")))))},Jr=["none","small","medium","inherit"],eo=["none","inherit"],to=function(){return Jr},no=function(){return no=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},no.apply(this,arguments)},ro=function(e,t){if(!e)return null;var n=jt("border",e),r=[{class:"sg-with-border--radius-",props:eo,selected:t},{class:"sg-with-border--border-top-",props:to(),selected:n.top},{class:"sg-with-border--border-right-",props:to(),selected:n.right},{class:"sg-with-border--border-bottom-",props:to(),selected:n.bottom},{class:"sg-with-border--border-left-",props:to(),selected:n.left}];return pt({styles:u.default,classes:no({"sg-with-border":!0},dt(r))})},oo=function(){return oo=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},oo.apply(this,arguments)},io=v.forwardRef((function(e,t){var n=e.border,r=e.borderRadius,o=e.children,i=e.className,a=e.align,l=e.alignSelf,u=e.justify,s=e.justifyItems,c=e.autoflow,f=e.xs,p=e.sm,d=e.m,h=e.lg,g=e.gap,m=e.autoFit,y=e.padding,b=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["border","borderRadius","children","className","align","alignSelf","justify","justifyItems","autoflow","xs","sm","m","lg","gap","autoFit","padding"]),w=ft("sg-grid","sg-grid--gap-"+g,l&&"sg-grid--align-self-"+l,c&&"sg-grid--autoflow-"+c,f&&"sg-grid--xs-"+f,p&&"sg-grid--sm-"+p,d&&"sg-grid--m-"+d,h&&"sg-grid--lg-"+h,m&&"sg-grid--auto-fit",a&&"sg-grid--align-"+a,u&&"sg-grid--justify-"+u,zt(y),s&&"sg-grid--justify-items-"+s,ro(n,r),!!window.MSInputMethodContext&&!!document.documentMode&&"sg-grid--ie11",i);return v.createElement("div",oo({ref:t,className:w},yt(b)),o)}));io.defaultProps={gap:"medium",autoflow:"row",alignSelf:"stretch"};var ao=io,lo=function(){return lo=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},lo.apply(this,arguments)},uo=function(e){var t=v.useRef(null),n=e.decoration,r=e.disabled,o=e.className,i=e.onClick,a=e.onKeyDown,l=e.children,u=e.target,s=e.color,c=e.title,f=e.breadcrumb,p=e.tabIndex,d=e["data-e2e"],h=e["data-component"],g=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["decoration","disabled","className","onClick","onKeyDown","children","target","color","title","breadcrumb","tabIndex","data-e2e","data-component"]),m=ft("sg-link",n&&"sg-link--decoration-"+n,r&&"sg-link--disabled",f&&"sg-link--breadcrumb",Zt(s),jn(g),o);return v.createElement("a",lo({ref:t,className:m,"data-e2e":d,"data-component":h,tabIndex:p},yt(g),{target:u,onClick:r?null:i,onKeyDown:function(e){r||(e.key===wt.ENTER&&(e.preventDefault(),e.stopPropagation(),t.current&&t.current.click()),a&&a(e))},title:c}),l)};uo.defaultProps={"data-e2e":"link","data-component":"link",tabIndex:0,role:"link",wordBreak:"all"};var so=uo;function co(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor!==t.constructor)return!1;var n,r=void 0,o=void 0;if(Array.isArray(e)){if((r=e.length)!=t.length)return!1;for(o=r;0!=o--;)if(!co(e[o],t[o]))return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof t.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof t.toString)return e.toString()===t.toString();if((r=(n=Object.keys(e)).length)!==Object.keys(t).length)return!1;for(o=r;0!=o--;)if(!Object.prototype.hasOwnProperty.call(t,n[o]))return!1;for(o=r;0!=o--;){var i=n[o];if(!co(e[i],t[i]))return!1}return!0}return e!=e&&t!=t}function fo(e){var t,n;if(null==e||"object"!=typeof e)return e;if(e instanceof Date){var r=new Date;return r.setTime(e.getTime()),r}if(e instanceof Array){for(var o=[],i=0;i<e.length;i+=1)o[i]=fo(e[i]);return o}if(e instanceof Object){var a={};try{for(var l=function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(Object.keys(e)),u=l.next();!u.done;u=l.next()){var s=u.value;Object.prototype.hasOwnProperty.call(e,s)&&(a[s]=fo(e[s]))}}catch(e){t={error:e}}finally{try{u&&!u.done&&(n=l.return)&&n.call(l)}finally{if(t)throw t.error}}return a}}var po=function(e,t){var n=!t||void 0===t.triggerNavigationEvent||t.triggerNavigationEvent;e&&(n&&vt(),e.focus())},ho=function(e){var t=getComputedStyle(e);return"none"!==t.display&&"hidden"!==t.visibility},vo={isDirectionForward:!0},go=function(e,t){var n=(void 0===t?vo:t).isDirectionForward,r=null;if(!e)return r;for(var o=n?e.firstChild:e.lastChild;o;){if(1===o.nodeType&&ho(o)){if(qt(o))return o;if(r=go(o,{isDirectionForward:n}))return r}o=n?o.nextSibling:o.previousSibling}return r},mo=function(){function e(){this.level=null,this.messages=null,this.level="warn",this.messages=[]}return e.prototype.log=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=this.messages.find((function(t){return JSON.stringify(t)===JSON.stringify(e[0])}));n||(window.console&&console.warn.apply(console,e.map((function(e){return"%c"+e})).concat("color: red; font-size: small")),this.messages=this.messages.concat(e))},e}(),yo=mo,bo=function(){return bo=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},bo.apply(this,arguments)},wo=function(e){var t=e.background,n=e.children,r=e.className,o=e.icon,i=e.iconColor,a=e.message,l=e.title,u=e.shadow,s=e.borderRadius,c=e.showFragments,f=e.handleKeyDown,p=e.tabIndex,d=e.iconSize,h=e.iconClassName,g=e.titleProps,m=e["data-e2e"],y=e["data-component"],b=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["background","children","className","icon","iconColor","message","title","shadow","borderRadius","showFragments","handleKeyDown","tabIndex","iconSize","iconClassName","titleProps","data-e2e","data-component"]),w=ft("sg-placeholder",r),E=ft("sg-placeholder-wrapper",u&&"sg-placeholder--shadow","sg-placeholder--background-"+t,s&&"sg-placeholder-wrapper--border-radius-"+s),_=Xe()?"200":"300",O=Xe()?"120":"240";return v.createElement("div",bo({className:E,"data-e2e":m,"data-component":y,tabIndex:p,onKeyDown:f,role:"figure"},yt(b)),c&&v.createElement("div",{className:"sg-placeholder__images-container"},v.createElement("div",{className:"sg-placeholder__background-elements"},v.createElement(mn,{multicolor:!0,name:"background-dots",width:"800",height:"240"}))),v.createElement("div",{className:w,"data-e2e":e["data-e2e"]},v.createElement(mn,{name:o,color:i,width:d||_,height:d||O,className:h,multicolor:!0}),l&&v.createElement(Bn,bo({},g,{density:"cozy",align:"center"}),l),a&&v.createElement(In,{align:"center"},a),n&&v.createElement("div",{className:"sg-placeholder-spacer"}),n))};wo.defaultProps={icon:"presentational-paper-rocket-dotted",iconColor:"primary",background:"white",showFragments:!0,"data-e2e":"empty-data-placeholder","data-component":"empty-data-placeholder",tabIndex:0,titleProps:{weight:"light",level:"3"}};var Eo=wo,_o=function(){return _o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},_o.apply(this,arguments)},Oo=cn(In,{preventTooltipOnMobile:!0,delay:1e3}),xo=function(e){var t=e.children,n=e.colSpan,r=e.dataAttributes,o=e.cellHeight,i=e.isInColumnSelection,a=e.isInRowSelection,l=e.isFirst,u=e.style,s=e.className,c=e.tabIndex,f=e["data-e2e"],p=e["data-component"],d=e["aria-describedby"],h=ft("sg-table__cell",s,"sg-table__cell--height-"+o,i&&"sg-table__cell--is-selected",a&&"sg-table__cell--is-in-row-selection"),g=_o(_o({className:h,colSpan:n,tabIndex:c},r),{style:u,"data-e2e":f,"data-component":p,"aria-describedby":d});return"string"==typeof t?v.createElement(nt.Consumer,null,(function(e){var n=e.device;return v.createElement("td",_o({},g),l&&n.isPhone?v.createElement(Bn,{truncate:!0,level:"4",density:"none"},t):v.createElement(Oo,{truncate:!0,tooltip:t},t))})):v.createElement("td",_o({},g),t)};xo.defaultProps={"data-e2e":"table-cell","data-component":"table-cell",cellHeight:"medium",tabIndex:-1};var So=xo,ko=n(2598),Co=n.n(ko),Po=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();function To(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function jo(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var No="undefined"!=typeof window?n(5544):void 0,Ro={children:!0,direction:!0,options:!0,recognizeWith:!0,vertical:!0},Io={action:"tap press",onDoubleTap:"doubletap",onPan:"pan",onPanCancel:"pancancel",onPanEnd:"panend",onPanStart:"panstart",onPinch:"pinch",onPinchCancel:"pinchcancel",onPinchEnd:"pinchend",onPinchIn:"pinchin",onPinchOut:"pinchout",onPinchStart:"pinchstart",onPress:"press",onPressUp:"pressup",onRotate:"rotate",onRotateCancel:"rotatecancel",onRotateEnd:"rotateend",onRotateMove:"rotatemove",onRotateStart:"rotatestart",onSwipe:"swipe",onSwipeRight:"swiperight",onSwipeLeft:"swipeleft",onSwipeUp:"swipeup",onSwipeDown:"swipedown",onTap:"tap"};function Ao(e,t){t.hasOwnProperty("vertical")&&console.warn("vertical is deprecated, please use `direction` instead");var n=t.direction;if(n||t.hasOwnProperty("vertical")){var r=n||(t.vertical?"DIRECTION_ALL":"DIRECTION_HORIZONTAL");e.get("pan").set({direction:No[r]}),e.get("swipe").set({direction:No[r]})}t.options&&Object.keys(t.options).forEach((function(n){if("recognizers"===n)Object.keys(t.options.recognizers).forEach((function(n){var r=e.get(n);r.set(t.options.recognizers[n]),t.options.recognizers[n].requireFailure&&r.requireFailure(t.options.recognizers[n].requireFailure)}),this);else{var r={};r[n]=t.options[n],e.set(r)}}),this),t.recognizeWith&&Object.keys(t.recognizeWith).forEach((function(n){e.get(n).recognizeWith(t.recognizeWith[n])}),this),Object.keys(t).forEach((function(n){var r=Io[n];r&&(e.off(r),e.on(r,t[n]))}))}Object.keys(Io).forEach((function(e){Ro[e]=!0}));var Lo=function(e){function t(){return To(this,t),jo(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),Po(t,[{key:"componentDidMount",value:function(){this.hammer=new No(this.domElement),Ao(this.hammer,this.props)}},{key:"componentDidUpdate",value:function(){this.hammer&&Ao(this.hammer,this.props)}},{key:"componentWillUnmount",value:function(){this.hammer&&(this.hammer.stop(),this.hammer.destroy()),this.hammer=null}},{key:"render",value:function(){var e={};Object.keys(this.props).forEach((function(t){Ro[t]||(e[t]=this.props[t])}),this);var t=this;return e.ref=function(e){t.props.ref&&t.props.ref(e),t.domElement=e},v.cloneElement(v.Children.only(this.props.children),e)}}]),t}(v.Component);Lo.displayName="Hammer",Lo.propTypes={className:Co().string};var Mo=Lo,zo=function(){return zo=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},zo.apply(this,arguments)},Do=function(e){var t=e.background,n=e.children,r=e.className,o=e.delay,i=e.density,a=e.hideSpinner,l=e.iconSize,u=e.position,s=e.spinnerPosition,c=e.border,f=e.borderRadius,p=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["background","children","className","delay","density","hideSpinner","iconSize","position","spinnerPosition","border","borderRadius"]),d=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}(v.useState(null),2),h=d[0],g=d[1];v.useEffect((function(){if(0!==o){var e=setTimeout((function(){return g(!0)}),o);return function(){return clearTimeout(e)}}g(!0)}),[o]);var m=ft("sg-loader","sg-loader--density-"+i,"sg-loader--position-"+u,"sg-loader--background-"+t,ro(c,f),r),y=ft("sg-loader__content","sg-loader__content--position-"+s,!h&&"sg-loader__content--transparent"),b=ft("sg-loader__message","sg-loader__message--color-"+t);return v.createElement("div",zo({className:m,"data-e2e":"loader"},yt(p)),h&&v.createElement("div",{className:y},!a&&v.createElement("div",{className:"sg-loader__spinner","data-e2e":"loader-spinner"},v.createElement(mn,{name:"loader",color:"success",size:l,multicolor:!0})),n&&v.createElement("div",{className:b,"data-e2e":"loader-message"},n)))};Do.defaultProps={background:"default",delay:1e3,density:"medium",hideSpinner:!1,iconSize:"50",position:"fixed",spinnerPosition:"sticky",border:"none",borderRadius:"inherit","data-e2e":"loader"};var Fo=Do,Uo=function(){return Uo=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Uo.apply(this,arguments)},Ho={recognizers:{tap:{threshold:9},press:{threshold:9}}},Wo=function(e){var t=e.className,n=e.children,r=e.loading,o=e.dragAndDrop,i=e.onContextMenu,a=e.onRefsReady,l=e.onRowPress,u=e.onRowTap,s=1;return Array.isArray(n)&&(s=n.reduce((function(e,t){return e.concat(t)}),[]).filter(Boolean).length),v.createElement(Mo,{ref:function(e){return e&&a&&a(e.domElement)},className:ft(t,"hammerjs-wrapper","sg-table__row",r&&"table-row--loading"),onTap:u,onPress:l,options:Ho},v.createElement("tr",Uo({onContextMenu:i},o,{"data-e2e":e["data-e2e"]}),r?v.createElement(So,{className:"table-row__cell--loading",colSpan:s},v.createElement("div",{className:"table-row__loader-wrapper"},v.createElement(Fo,{density:"none",position:"absolute",iconSize:"40"}))):n))};Wo.defaultProps={onClick:function(){return null},onContextMenu:function(){return null},onRefsReady:function(){return null},onRowPress:function(){return null},onRowTap:function(){return null},"data-e2e":"table-row"};var Bo=Wo,$o=function(){return $o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},$o.apply(this,arguments)},Vo=function(e){return 0!==e.length&&e.find((function(e){return Boolean(e.footer)}))},qo=function(e){return e.tableId+"-th-"+e.index},Ko=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Go=function(){return Go=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Go.apply(this,arguments)},Qo=function(e){function t(t){var n=e.call(this,t)||this;return n.id=en(),n}return Ko(t,e),t.prototype.getRowKey=function(e){return e[this.props.rowKey]||JSON.stringify(e)},t.prototype.getTransitionGroupProps=function(e,t){var n={className:"sg-table__body",component:"tbody","data-e2e":"table-body"};return this.props.reordable&&e&&t?Go(Go({},n),{id:this.id,ref:function(t){return t&&e.innerRef(document.querySelector("#"+t.props.id))},style:{background:"#25b8d2",width:"100%"}}):n},t.prototype.getCSSTransitionProps=function(){return this.props.disableRowAnimation?null:{classNames:"sg-table__row--animation",timeout:500}},t.prototype.getTableRowProps=function(e,t,n){var r=this.props,o=r.onContextMenuHandler,i=r.onRowPress,a=r.onRowTap,l=r.reordable,u=r.rowSelectionHandler,s={onContextMenu:function(t){return o({selectedRow:e,event:t})},onRowTap:function(t){u(e,t),a(e,t)},onRowPress:function(t){return i(e,t)},loading:(0,r.shouldRowLoading)(e),"data-e2e":"table-row"};return l&&t&&n?Go(Go({},s),{dragAndDrop:Go(Go({},t.draggableProps),t.dragHandleProps),onRefsReady:t.innerRef,style:Go({userSelect:"none"},t.draggableProps.style)}):s},t.prototype.isRowExpanded=function(e){var t=this.props,n=t.isExpandedRowInComponentProps,r=t.expandableTemplate,o=Boolean(r);return n(e)&&o},t.prototype.renderTableCell=function(e){var t=e.column,n=e.index,r=e.rowIndex,o=this.props,i=o.data,a=o.cellHeight,l=o.isSelectedRowInComponentState,u=o.selectedColumns,s=o.tableId,c=i[r];if(!c)return null;var f=c[t.accessor],p=t.render?t.render(f,c):f,d=u.includes(n),h=l(c);return v.createElement(So,{key:r+"-"+n,cellHeight:a,isInColumnSelection:d,isInRowSelection:h,isFirst:0===n,style:t.style,className:t.className,"aria-describedby":qo({tableId:s,index:n}),dataAttributes:{"data-label":"string"==typeof t.header?t.header:null,"data-cell-index":n,"data-row-index":r}},p)},t.prototype.renderTableRow=function(e){var t=this,n=e.row,r=e.rowIndex,o=e.draggableProvided,i=e.draggableSnapshot,a=this.props.columns;return v.createElement(Bo,Go({},this.getTableRowProps(n,o,i)),a.map((function(e,n){return t.renderTableCell({column:e,index:n,rowIndex:r})})))},t.prototype.render=function(){var e=this,t=this.props,n=t.columns,r=t.data,o=t.expandableTemplate,i=t.disableRowAnimation,a=i?"tbody":Ht.TransitionGroup,l=i?v.Fragment:Ht.CSSTransition;return v.createElement(nt.Consumer,null,(function(t){var i=t.device;return v.createElement(a,Go({},e.getTransitionGroupProps()),r.map((function(t,r){return v.createElement(l,Go({key:e.getRowKey(t)},e.getCSSTransitionProps()),v.createElement(v.Fragment,null,v.createElement(Bo,Go({},e.getTableRowProps(t),{className:e.isRowExpanded(t)?"sg-table__row-expanded":null}),n.slice(0,-1).map((function(t,n){return e.renderTableCell({column:t,index:n,rowIndex:r})})),i.isPhone&&e.isRowExpanded(t)&&v.createElement(So,{className:"sg-table__cell-expandable-wrapper",dataAttributes:{colSpan:n.length}},o(t,r)),n.slice(-1).map((function(t){return e.renderTableCell({column:t,index:n.length-1,rowIndex:r})}))),!i.isPhone&&e.isRowExpanded(t)&&v.createElement(Bo,null,v.createElement(So,{className:"sg-table__cell-expandable-wrapper",dataAttributes:{colSpan:n.length},style:{padding:0}},o(t,r)))))})))}))},t.defaultProps={"data-e2e":"table-body"},t}(v.Component),Xo=Qo,Yo=function(e){var t=e.columnLength,n=e.rowLength,r=e.tableHead,o=Array(n).fill(null);return v.createElement("table",{className:"sg-table"},r,v.createElement("tbody",null,o.map((function(e,n){return v.createElement("tr",{key:n,className:"sg-table__row"},Array(t).fill(null).map((function(e,t,n){return v.createElement("td",{key:t,className:"sg-table__cell sg-table__cell--height-medium"},v.createElement("div",{className:"sg-table__cell--skeleton"}))})))}))))};Yo.defaultProps={"data-e2e":"table-cell","data-component":"table-cell",rowLength:5,tabIndex:-1};var Zo=Yo,Jo=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),ei=function(){return ei=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},ei.apply(this,arguments)},ti=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n},ni=new yo,ri="data-row-index",oi="data-cell-index",ii=function(e){function t(t){var n=e.call(this,t)||this;return n.state={selectedRows:[]},n.tableId=null,n.onTableClick=function(e){var t=e.target;if("td"!==t.tagName&&(t=t.closest("td")),null!==t){var r=Number(t.getAttribute(ri)),o=Number(t.getAttribute(oi));n.props.onCellSelection({rowIndex:r,colIndex:o})}},n.getColumnRender=function(e,t,n){return e[0].render?e[0].render(t,n):t},n.handleCellNavigation=function(e){var t=e.event,r=e.cellAccumulator,o=void 0===r?0:r,i=e.rowAccumulator,a=void 0===i?0:i;Qt({event:t,isDirectionForward:!(o<0||a<0),onComponentFiltering:function(e){var n=t.target,r=n.getAttribute(oi),i=n.getAttribute(ri);if(null!==r&&null!==i){var l=String(Number(i)+a),u=String(Number(r)+o);return e.getAttribute(ri)===l&&e.getAttribute(oi)===u}},onSuccessCallback:function(e){var t=n.tableRef.querySelectorAll('td[tabindex="0"]');t.length&&Array.from(t).forEach((function(e){e.setAttribute("tabindex","-1")})),e.setAttribute("tabindex",0)}})},n.handleOnKeyDown=function(e){var t=e.target.getAttribute("data-component"),r=t&&t.indexOf("table")>-1;Et(e)&&r&&Qt({event:e,startingElement:n.tableRef}),_t(e)&&r&&Qt({event:e,startingElement:n.tableRef,isDirectionForward:!1});var o=go(e.target);switch(e.key){case wt.DOWN:return e.target===n.tableWrapperRef&&po(o),void n.handleCellNavigation({event:e,rowAccumulator:1});case wt.UP:return void n.handleCellNavigation({event:e,rowAccumulator:-1});case wt.RIGHT:return void n.handleCellNavigation({event:e,cellAccumulator:1});case wt.LEFT:return void n.handleCellNavigation({event:e,cellAccumulator:-1});case wt.ENTER:case wt.SPACE:return r&&(e.preventDefault(),e.stopPropagation()),void po(o);default:return}},n.renderNoData=function(){var e=n.props,t=e.noDataProps,r=e.customNoDataComponent,o=e.translation;return r||v.createElement(Eo,ei({background:"white",icon:"presentational-no-data-dotted",title:o.placeholderTitle,borderRadius:"medium",handleKeyDown:function(e){e.key!==wt.ESCAPE&&e.stopPropagation()}},t))},n.renderDataTable=function(e){var t=e.classesTable,r=e.disableTableHead,o=e.propsToPropagate,i=e.showHeaderWithNoData,a=e.data;return n.props.showSkeleton?v.createElement(Zo,{tableHead:n.renderHead(),columnLength:Number(n.props.columns&&n.props.columns.length),rowLength:n.props.skeletonRowCount}):0!==a.length||i?v.createElement(v.Fragment,null,v.createElement("table",ei({ref:function(e){n.tableRef=e},className:t},yt(o)),(!r||i)&&n.renderHead(),n.renderBody(),n.renderFooter()),0===a.length&&n.renderNoData()):n.renderNoData()},n.tableId=en("sg-table-"),n}return Jo(t,e),t.prototype.componentDidMount=function(){var e=this.props.selectedRows;this.props.onCellSelection&&this.tableRef&&this.tableRef.addEventListener("click",this.onTableClick,!1),e&&this.setState({selectedRows:Array.from(new Set(e))})},t.prototype.componentDidUpdate=function(e){e.data.length!==this.props.data.length&&this.setState({selectedRows:[]}),co(e.selectedRows,this.props.selectedRows)||this.setState({selectedRows:Array.from(new Set(this.props.selectedRows))}),this.tableRef&&e.onCellSelection&&!this.props.onCellSelection&&this.tableRef.removeEventListener("click",this.onTableClick,!1),this.tableRef&&!e.onCellSelection&&this.props.onCellSelection&&this.tableRef.addEventListener("click",this.onTableClick,!1)},t.prototype.componentWillUnmount=function(){this.tableRef&&this.tableRef.removeEventListener("click",this.onTableClick,!1)},t.prototype.onRowSelection=function(e){this.props.onRowSelection(e)},t.prototype.onContextMenuHandler=function(e){var t=e.event,n=e.selectedRow;if(this.props.selectable){var r=this.state.selectedRows.find((function(e){return co(e,n)}));this.state.selectedRows.length<=1||!r?this.setState({selectedRows:[n]},this.props.onRowContextMenu({event:t,selectedRows:[n]})):this.props.onRowContextMenu({event:t,selectedRows:this.state.selectedRows})}},t.prototype.getColumnsToRender=function(e){var t=this;void 0===e&&(e=!1);var n,r=this.props,o=r.reordable,i=r.columns,a=r.expandableTemplate,l=r.onExpandToggle,u=r.translation,s=Boolean(a);return s&&e?(n=fo(i)).concat({className:"sg-table__expand-toggle",render:function(e,n){return v.createElement(Lr,{color:"neutral",onClick:function(){return l(n)}},t.isExpandedRowInComponentProps(n)?u.collapse:u.expand)}}):s?((n=fo(i))[0].render=function(e,n){return v.createElement("div",null,v.createElement(mn,{size:"10",tabIndex:-1,color:"primary",className:"sg-icon-expandable",onClick:function(){return l(n)},name:t.isExpandedRowInComponentProps(n)?"minus":"plus"}),t.getColumnRender(i,e,n))},n):o?((n=fo(i))[0].render=function(e,n){return v.createElement("div",{className:"sg-table__cell-dnd-wrapper"},t.getColumnRender(i,e,n))},n):i},t.prototype.getEventKeys=function(e){return e.srcEvent,{ctrlKey:e.srcEvent.ctrlKey,metaKey:e.srcEvent.metaKey,shiftKey:e.srcEvent.shiftKey}},t.prototype.isSelectedRowInComponentState=function(e){var t=this,n=this.props.rowKey;return n?Boolean(this.state.selectedRows.find((function(t){return t[n]===e[n]}))):Boolean(this.state.selectedRows.find((function(n){return t.areObjectsEqual(n,e)})))},t.prototype.isExpandedRowInComponentProps=function(e){var t=this,n=this.props.expandedRows;return Boolean(n)&&Boolean(n.find((function(n){return t.areObjectsEqual(n,e)})))},t.prototype.areObjectsEqual=function(e,t){return JSON.stringify(e)===JSON.stringify(t)},t.prototype.toggleRowSelection=function(e){var t=this.isSelectedRowInComponentState(e)?[]:[e];this.setState({selectedRows:t},this.onRowSelection(t))},t.prototype.toggleRowsSelection=function(e,t){var n=this,r=this.props.data,o=this.getEventKeys(t),i=o.ctrlKey,a=o.metaKey,l=o.shiftKey,u=r.findIndex((function(t){return n.areObjectsEqual(t,e)})),s=[];if(l)for(var c=r.findIndex((function(e){return n.areObjectsEqual(e,n.state.selectedRows[0])})),f=this.state.selectedRows.length>0?c:u,p=Math.min(u,f),d=Math.max(u,f),h=p;h<=d;h++)s.push(r[h]);(i||a)&&(s=s.concat(this.state.selectedRows),this.isSelectedRowInComponentState(e)?s=this.state.selectedRows.filter((function(t){return n.areObjectsEqual(t,e)})):s.push(r[u])),this.setState({selectedRows:s},this.onRowSelection(s))},t.prototype.rowSelectionHandler=function(e,t){var n=this.getEventKeys(t),r=n.ctrlKey,o=n.metaKey,i=n.shiftKey;this.props.selectable&&(i||r||o?this.toggleRowsSelection(e,t):this.toggleRowSelection(e))},t.prototype.isColumnSelected=function(e){return this.props.selectedColumns.includes(e)},t.prototype.renderHead=function(){var e=this,t=this.props,n=t.headerBackground,r=t.cellHeight,o=ft("sg-table__head","sg-table__head--background-"+n),i=this.getColumnsToRender();return i.length&&i.find((function(e){return e.header}))?v.createElement("thead",{className:o,"data-e2e":"table-head"},v.createElement("tr",null,i.map((function(t,n){var o=t.renderHead?t.renderHead:t.header,i=void 0!==t.header?t.header:t.accessor;ni.log('"column.renderHead" will be deprecated in favor of "column.render" '),ni.log('Using "cell.accessor" as default column header will be deprecated.');var a=e.isColumnSelected(n),l=ft("sg-table__cell","sg-table__cell--height-"+r,a&&"sg-table__cell--is-selected"),u=function(e){var t=e.cell,n=e.device;return n.isPhone?$o({width:t.smSize,maxWidth:t.smSize},t.style):n.isTablet?$o({width:t.mSize||t.smSize,maxWidth:t.mSize||t.smSize},t.style):n.isDesktop?$o({width:t.lgSize||t.mSize||t.smSize,maxWidth:t.lgSize||t.mSize||t.smSize},t.style):$o({},t.style)}({cell:t,device:e.context.device});return v.createElement("th",{id:qo({tableId:e.tableId,index:n}),className:l,key:n,style:u,"data-cell-index":n,"data-row-index":-1,"data-component":"table-head",tabIndex:0===n?0:-1},"function"==typeof o?o(i):i)})))):null},t.prototype.renderFooter=function(){var e=this,t=this.props,n=t.footerBackground,r=t.cellHeight,o=this.props.columns,i=ft("sg-table__footer","sg-table__footer--background-"+n);return Vo(o)?v.createElement("tfoot",{className:i,"data-e2e":"table-footer"},v.createElement("tr",null,o.map((function(t,n){var o=e.isColumnSelected(n),i=ft("sg-table__cell","sg-table__cell--height-"+r,o&&"sg-table__cell--is-selected");return ni.log('Using "cell.renderFooterCell" as function will be deprecated.'),v.createElement("td",{className:i,key:"table-footer-"+n,style:ei({},t.style),"data-cell-index":n},t.footer?e.renderFooterCell(t):"")})))):null},t.prototype.renderFooterCell=function(e){return"function"==typeof e.footer?e.footer():e.footer},t.prototype.renderBody=function(){var e=this,t=this.props,n=t.data,r=t.onReorder,o=t.onRowPress,i=t.onRowTap,a=t.reordable,l=t.rowKey,u=t.selectedColumns,s=t.shouldRowLoading,c=t.expandableTemplate,f=t.disableRowAnimation,p=t.cellHeight;return v.createElement(Xo,{columns:this.getColumnsToRender(this.context.device.isPhone),data:n,cellHeight:p,disableRowAnimation:f,expandableTemplate:c,isSelectedRowInComponentState:function(t){return e.isSelectedRowInComponentState(t)},isExpandedRowInComponentProps:function(t){return e.isExpandedRowInComponentProps(t)},onContextMenuHandler:function(t){var n=t.event,r=t.selectedRow;return e.onContextMenuHandler({event:n,selectedRow:r})},onReorder:r,onRowPress:o,onRowTap:i,reordable:a,rowKey:l,rowSelectionHandler:function(t,n){return e.rowSelectionHandler(t,n)},shouldRowLoading:s,selectedColumns:u,tableRef:this.tableRef,tableId:this.tableId})},t.prototype.render=function(){var e=this,t=this.props,n=t.className,r=t.columns,o=t.data,i=t.density,a=t.disableTableHead,l=t.mobileLayout,u=t.expandableTemplate,s=t.onLoadMore,c=t.reordable,f=t.shadow,p=t.showLoadMore,d=t.translation,h=t["data-e2e"],g=t["data-component"],m=ti(t,["className","columns","data","density","disableTableHead","mobileLayout","expandableTemplate","onLoadMore","reordable","shadow","showLoadMore","translation","data-e2e","data-component"]),y=(m.expandedRows,m.selectable,m.selectedRows,m.rowKey,m.onExpandToggle,m.onRowSelection,m.onRowContextMenu,m.onCellSelection,m.selectedColumns,m.onReorder,m.renderBeforeTableContent),b=m.renderAfterTableContent,w=(m.headerBackground,m.footerBackground,m.onRowTap,m.onRowPress,m.shouldRowLoading,m.disableRowAnimation,m.border),E=m.borderRadius,_=m.showHeaderWithNoData,O=void 0!==_&&_,x=ti(m,["expandedRows","selectable","selectedRows","rowKey","onExpandToggle","onRowSelection","onRowContextMenu","onCellSelection","selectedColumns","onReorder","renderBeforeTableContent","renderAfterTableContent","headerBackground","footerBackground","onRowTap","onRowPress","shouldRowLoading","disableRowAnimation","border","borderRadius","showHeaderWithNoData"]),S=ft("sg-table-wrapper",f&&"sg-table-wrapper--box-shadow",i&&"sg-table-wrapper--density-"+i,l&&"sg-table-wrapper--mobile-"+l,Boolean(u)&&"sg-table-wrapper--expandable",c&&"sg-table-wrapper--reordable",0===o.length&&"sg-table-wrapper--no-data",this.context.device&&!this.context.device.isPhone&&ro(w,E),n),k=ft("sg-table",!Vo(r)&&"sg-table--no-footer");return v.createElement("div",{ref:function(t){e.tableWrapperRef=t},className:S,"data-e2e":h,"data-component":g,onKeyDown:this.handleOnKeyDown},y(),this.renderDataTable({classesTable:k,data:o,disableTableHead:a,propsToPropagate:x,showHeaderWithNoData:O}),p&&v.createElement("div",{className:"sg-table-load-more","data-e2e":"table-load-more"},v.createElement(Lr,{onClick:function(t){var n=go(e.tableRef,{isDirectionForward:!1});po(n),s(t)},onKeyDown:function(e){e.stopPropagation(),Et(e)&&Qt({event:e}),_t(e)&&Qt({event:e,isDirectionForward:!1})}},d.loadMoreText)),b&&v.createElement("div",{className:"sg-table__after-content"},b()))},t.contextType=nt,t.displayName="Table",t.defaultProps={columns:[],data:[],density:"medium",disableTableHead:!1,disableRowAnimation:!1,mobileLayout:"card",selectable:!1,headerBackground:"default",footerBackground:"default",selectedColumns:[],onExpandToggle:function(){return null},onRowSelection:function(){return null},onRowTap:function(){return null},onRowPress:function(){return null},onRowContextMenu:function(){return null},renderBeforeTableContent:function(){return null},shouldRowLoading:function(){return!1},reordable:!1,shadow:!1,translation:{loadMoreText:"Load More",expand:"Expand",collapse:"Collapse",placeholderTitle:"Nothing here yet"},cellHeight:"medium","data-e2e":"table","data-component":"table"},t}(v.Component),ai=ii,li=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),ui=function(){return ui=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},ui.apply(this,arguments)},si={small:"16",medium:"26",large:"36"},ci=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.starRatingRef=v.createRef(),t.state={rating:t.props.rating},t.keyboardHandling=function(e){if(Et(e))Qt({event:e,startingElement:t.starRatingRef.current});else if(_t(e))Qt({event:e,startingElement:t.starRatingRef.current,isDirectionForward:!1});else switch(e.key){case wt.LEFT:case wt.UP:if(e.preventDefault(),e.stopPropagation(),e.target===go(t.starRatingRef.current))return;Qt({event:e,includeChildren:!0,isDirectionForward:!1});break;case wt.RIGHT:case wt.DOWN:if(e.preventDefault(),e.stopPropagation(),e.target===go(t.starRatingRef.current,{isDirectionForward:!1}))return;Qt({event:e,includeChildren:!0});break;case wt.ENTER:case wt.SPACE:e.target.click()}},t.classes=function(){return ft("sg-star-rating","sg-star-rating--size-"+t.props.size,t.props.className)},t.handleOnClick=function(e){var n=t.props.onClick;n&&n(e)},t.handleOnMouseOver=function(e){var n=t.props,r=n.onClick,o=n.onMouseOver;if(r)return t.setState({rating:e}),o&&o(e)},t.handleOnMouseOut=function(){var e=t.props,n=e.rating,r=e.onClick,o=e.onMouseOut;if(r)return t.setState({rating:n}),o&&o()},t.renderStarts=function(){return new Array(t.props.stars).fill(null).map((function(e,n){var r=n+1,o=t.state.rating>=r?"star-filled":"star";return v.createElement(mn,{tabIndex:-1,key:"starRating-"+r+o,"aria-hidden":"true",name:o,size:si[t.props.size],onClick:function(){return t.handleOnClick(r)},onMouseOver:function(){return t.handleOnMouseOver(r)},onMouseOut:t.handleOnMouseOut,color:"primary",prefetch:["star-filled","star"]})}))},t}return li(t,e),t.prototype.componentDidUpdate=function(){this.props.onClick||this.state.rating===this.props.rating||this.setState({rating:this.props.rating})},t.prototype.render=function(){var e=this.props,t=(e.onClick,e.onMouseEnter,e.onMouseLeave,e.onMouseOver,e.onMouseOut,e.tabIndex),n=e["data-e2e"],r=e["data-component"],o=e["aria-label"],i=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["onClick","onMouseEnter","onMouseLeave","onMouseOver","onMouseOut","tabIndex","data-e2e","data-component","aria-label"]);return v.createElement("div",ui({role:"img","aria-label":o,ref:this.starRatingRef,className:this.classes(),"data-e2e":n,"data-component":r,tabIndex:t},yt(i),{onKeyDown:this.keyboardHandling}),this.renderStarts())},t.defaultProps={rating:0,size:"medium",stars:5,tabIndex:0,"data-e2e":"star-rating","data-component":"star-rating","aria-label":"Star Rating: 0 out of 5 stars"},t}(v.Component),fi=ci,pi=function(e){var t=e.initialRating,n=void 0===t?5:t;return v.createElement("div",{className:"rating-box"},v.createElement(_r,null,xe("Rate the SiteGround Migrator")),v.createElement(Sr,null,v.createElement(ao,{justifyItems:"center"},v.createElement(In,{size:"large",weight:"bold"},xe("That went smoothly, right?")),v.createElement(so,{className:"rating-box__link",href:"https://wordpress.org/support/plugin/siteground-migrator/reviews/#new-post",target:"_blank"},"Help us help other people by rating this plugin on WP.org!"),v.createElement(fi,{rating:n,onClick:function(){var e=document.querySelector(".rating-box__link");e&&e.click()}}))))},di=function(){return di=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},di.apply(this,arguments)},hi=function(e){var t=e.className,n=e.children,r=e.padding,o=e.border,i=e.borderRadius,a=e.tabIndex,l=e.vertical,u=e["data-e2e"],c=e["data-component"],f=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["className","children","padding","border","borderRadius","tabIndex","vertical","data-e2e","data-component"]),p=ft(zt(r),ro(o,i),t),d=pt({styles:s.default,classes:{"sg-tile":!0,"sg-tile--vertical":Boolean(l)},className:p});return v.createElement("div",di({className:d,"data-e2e":u,"data-component":c,tabIndex:a},yt(f)),n)};hi.defaultProps={border:"small",padding:"medium",borderRadius:"inherit","data-e2e":"tile","data-component":"tile"};var vi=hi,gi=function(){return gi=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},gi.apply(this,arguments)},mi=function(e){var t=e.size,n=e.density,r=e.ordered,o=e.orientation,i=e.children,a=e.className,l=e.type,u=e.showFirstIcon,s=e.justify,c=e.color,f=e.padding,p=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["size","density","ordered","orientation","children","className","type","showFirstIcon","justify","color","padding"]),d=ft("sg-list","sg-list--size-"+t,"sg-list--density-"+n,"sg-list--orientation-"+o,l&&"sg-list--type-"+l,s&&"sg-list--justify-"+s,r&&"sg-list--ordered",u&&"sg-list--show-first-icon",Zt(c),zt(f),jn(p),a);return r?v.createElement("ol",gi({className:d},yt(p)),i):v.createElement("ul",gi({className:d},yt(p)),i)};mi.defaultProps={size:"medium",density:"medium",orientation:"vertical",justify:"flex-start",ordered:!1,showFirstIcon:!1,color:"dark","data-e2e":"list"};var yi=mi,bi=function(){return bi=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},bi.apply(this,arguments)},wi=function(e){var t=e.icon,n=e.children,r=e.className,o=e.iconSize,i=e.iconColor,a=e.padding,l=e.color,u=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["icon","children","className","iconSize","iconColor","padding","color"]),s=ft("sg-list__item",zt(a),Zt(l),r);return v.createElement("li",bi({className:s},u),t&&v.createElement("div",{className:"sg-list__wrapper-icon"},v.createElement(mn,{name:t,size:o,className:"sg-list__icon",color:i})),v.createElement("div",{className:"sg-list__content"},n))};wi.defaultProps={iconSize:"8","data-e2e":"list-item"};var Ei=wi,_i=function(e){var t=e.state,n=e.score,r=e.unit,o=e.title,i=e.children,a=void 0===i?null:i,l=["info-circle","success"===t&&"info-circle--success","error"===t&&"info-circle--error"].filter(Boolean).join(" ");return v.createElement(ao,{justifyItems:"center",gap:"small",className:l},v.createElement("div",{className:"info-circle__circle"},v.createElement("div",{className:"info-circle__score"},n),v.createElement("div",{className:"info-circle__unit"},r)),v.createElement(In,{weight:"bold",size:"large"},o),a&&v.createElement("div",null,a))},Oi=function(e){var t=e.sitespeed,n=(t.old.mobile/1e3).toFixed(1),r=(t.new.mobile/1e3).toFixed(1),o=(t.old.desktop/1e3).toFixed(1),i=(t.new.desktop/1e3).toFixed(1);return v.createElement("div",null,v.createElement(_r,null,xe("Faster Loading Speed")),v.createElement(Sr,null,v.createElement(ao,null,v.createElement(In,{size:"large",weight:"bold"},xe("Your site’s even faster now!")),v.createElement(In,null,xe("Your new hosting plan comes with some amazing features included - NGINX Direct Delivery; Speed Optimized MySQL; The SiteGround Optimizer plugin and more. Thanks to a superfast Google-powered platform set up with speed in mind, as well as continuous speed optimizations, your site’s loading speed has decreased on your new hosting.")),v.createElement(ao,{autoflow:"column"},v.createElement(vi,{border:["none","small","none","none"],borderRadius:"none"},v.createElement(_i,{state:"success",score:i,unit:"sec",title:xe("SiteGround Loading Speed")},v.createElement(yi,{orientation:"horizontal"},v.createElement(Ei,null,xe("Mobile"),": ",v.createElement("span",{style:{color:"green"}},r," sec")),v.createElement(Ei,{icon:"dot"},xe("Desktop"),": ",v.createElement("span",{style:{color:"green"}},i," sec"))))),v.createElement(vi,{border:"none"},v.createElement(_i,{state:"error",score:o,unit:"sec",title:xe("Previous Host Loading Speed")},v.createElement(yi,{orientation:"horizontal"},v.createElement(Ei,null,xe("Mobile"),": ",v.createElement("span",{style:{color:"red"}},n," sec")),v.createElement(Ei,{icon:"dot"},xe("Desktop"),": ",v.createElement("span",{style:{color:"red"}},o," sec")))))))))},xi=function(){return xi=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},xi.apply(this,arguments)},Si=function(){var e=M[L.Error].title,t=T(),n=A(zr).transfer_status;return v.createElement(yr,null,v.createElement(ao,null,v.createElement("div",null,v.createElement(Er,null,xe(e)),v.createElement(jr,{status:"exclamation",title:n.message,description:xe("We have set up a {{a}}temporary URL{{/a}} (valid for 48 hours) where you can check whether your website looks and performs as expected. Once you confirm everything’s ok, don’t forget to {{b}}point your domain to the new server in order to complete the migration{{/b}}, using the name servers below. DNS propagation may take up to 48 hours.",{components:{a:v.createElement(so,{href:n.temp_url}),b:v.createElement("strong",null)}})},v.createElement(ao,{justifyItems:"center"},v.createElement("div",null,v.createElement(In,{align:"center"},xe("NS1:")," ",v.createElement("strong",null,n.dns_servers[0])),v.createElement(In,{align:"center"},xe("NS2:")," ",v.createElement("strong",null,n.dns_servers[1]))),v.createElement(ai,{border:"small",data:n.errors,columns:[{header:"File",accessor:"f",style:{width:"60%"}},{header:"Status",accessor:"e",style:{width:"40%"}}]}),v.createElement(Lr,{color:"primary",onClick:function(){t(Qr(xi({},fr),{onComplete:function(){t(Ur(L.Home))}}))}},xe("Initiate New Transfer"))))),n.sitespeed&&v.createElement(Oi,{sitespeed:n.sitespeed}),v.createElement(pi,null)))},ki=function(){return ki=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},ki.apply(this,arguments)},Ci=["a","em","p","svg","div","img","path","strong","figure","ul","li","br","ul","ol","li","h1","h2","h3","h4","h5","h6"],Pi=["class","href","src","width","height","x","y","fill","d","enable-background","viewBox","_target","sizes"],Ti=function(e){var t=e.className,n=e.density,r=e.parseHTML,o=e.injectHTML,i=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["className","density","parseHTML","injectHTML"]),a=ft("sg-container-html-style","sg-container-html-style--density-"+n,t);return r?v.createElement("div",ki({className:a},yt(i)),Dn(r,Ci,Pi)):o?v.createElement("div",ki({className:a,dangerouslySetInnerHTML:{__html:o}},yt(i))):null};Ti.defaultProps={density:"cozy","data-component":"container-html-style","data-e2e":"container-html-style"};var ji=Ti,Ni=function(){return Ni=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Ni.apply(this,arguments)},Ri=function(){var e=M[L.Fail].title,t=T(),n=A(zr).transfer_status;return v.createElement(yr,null,v.createElement(Er,null,xe(e)),v.createElement(jr,{status:"error",title:n.message,description:v.createElement(ji,{injectHTML:n.description})},v.createElement(Lr,{color:"primary",onClick:function(){t(Qr(Ni({},fr),{onComplete:function(){t(Ur(L.Home))}}))}},xe("Home"))))},Ii=function(){return Ii=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Ii.apply(this,arguments)},Ai="vertical",Li={"x-small":"36",small:"48",medium:"64",large:"96","x-large":"144"},Mi={"x-small":"6",small:"5",medium:"4",large:"3","x-large":"2"},zi=function(e){var t=e.device,n=e.divided,r=e.layout,o=e.selected,i=e.text,a=e.title,l=e.padding,u=e.iconName,s=e.iconColor,c=e.iconMulticolor,f=e.size,p=e.children,d=e.className,h=e.outline,g=e.tabIndex,m=e["data-e2e"],y=e["data-component"],b=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["device","divided","layout","selected","text","title","padding","iconName","iconColor","iconMulticolor","size","children","className","outline","tabIndex","data-e2e","data-component"]),w=t.isPhone||r===Ai,E=n&&!w,_=ft("sg-card",zt(l),h&&"sg-card--outline-"+h,o&&"sg-card--selected",d),O=ft("sg-card__content-wrapper",E&&"sg-card__content-wrapper--divided",w?"sg-card__content-wrapper--row":"sg-card__content-wrapper--column"),x=ft("sg-card__icon-wrapper");return v.createElement("div",Ii({className:_,role:"figure",tabIndex:g},yt(b),{"data-e2e":m,"data-component":y}),v.createElement(ao,{className:O,gap:w?"medium":"large"},v.createElement("div",{className:x},v.createElement(mn,{name:u,color:s,size:Li[f],multicolor:c})),E&&v.createElement("div",{className:"sg-card__divider"}),v.createElement(ao,{className:ft("sg-card__content",r===Ai&&"sg-card__content--vertical")},v.createElement(ao,null,a&&v.createElement(Bn,{level:Mi[f],weight:"bold",density:"none"},a),i&&v.createElement(In,{color:"dark"},i)),p&&v.createElement("div",{className:"sg-card__actions-wrapper"},p))))};zi.defaultProps={padding:"responsive",divided:!1,layout:"horizontal",outline:"shadow","data-e2e":"card","data-component":"card",size:"medium",tabIndex:0},zi.displayName="Card";var Di=function(e){return v.createElement(nt.Consumer,null,(function(t){var n=t.device;return v.createElement(zi,Ii({},e,{device:n}))}))},Fi=["compact","cozy"],Ui=["success","error","warning","instruction","info","hint"],Hi=function(){return Hi=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Hi.apply(this,arguments)},Wi={success:"success",error:"error-attention",warning:"warning",info:"information",instruction:"information",hint:"information"},Bi={success:"success",error:"error",warning:"warning",info:"info",instruction:"instruction",hint:"light"},$i=v.forwardRef((function(e,t){var n=v.useContext(nt).device,r=e.density,o=e.children,i=(e.className,e.contentSize,e.title),a=e.type,l=(e.shadow,e.onClose),u=e.tabIndex,s=e["data-e2e"],f=e["data-component"],p=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["density","children","className","contentSize","title","type","shadow","onClose","tabIndex","data-e2e","data-component"]),d=function(e){var t=e.density,n=e.className,r=e.contentSize,o=e.title,i=e.type,a=e.shadow,l=Hi({"sg-notice":!0,"sg-notice--shadow":a},dt([{class:"sg-notice--density-",props:Fi,selected:t},{class:"sg-notice--type-",props:Ui,selected:i}]));return{classes:pt({styles:c.default,classes:l,className:n}),contentClasses:pt({styles:c.default,classes:Hi({"sg-notice__content":!0},dt([{class:"sg-notice__content--size-",props:Rt(),selected:r}]))}),iconClasses:pt({styles:c.default,classes:{"sg-notice__icon":!0,"sg-notice__icon--center-by-title":Boolean(o)}})}}(e),h=d.classes,g=d.contentClasses,m=d.iconClasses,y=en("sg-notice-content-"),b={compact:"20",cozy:n.isDesktop?"30":"20"};return v.createElement("div",Hi({ref:t,className:h,tabIndex:u,"data-e2e":s,"data-component":f,role:"group","aria-labelledby":y},yt(p)),Wi[a]&&v.createElement(mn,{className:m,name:Wi[a],size:b[r],color:Bi[a]}),v.createElement("div",{id:y,className:g},i&&v.createElement(Bn,{level:"6",density:"none",color:Bi[a]},i),o),l&&!n.isPhone&&v.createElement(Sn,{icon:"cross",size:"small",className:"sg-notice__close-icon",onClick:l}))}));$i.defaultProps={density:"cozy",contentSize:"expanded",shadow:!0,type:"hint",tabIndex:0,"data-e2e":"notice","data-component":"notice"};var Vi=$i,qi=function(){return qi=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},qi.apply(this,arguments)},Ki=function(e){var t=e.className,n=e.size,r=e.tag,o=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["className","size","tag"]),i=ft("sg-spacer","sg-spacer--size-"+n,t);return v.createElement(r,qi({className:i,"aria-hidden":"true"},yt(o)))};Ki.defaultProps={"data-e2e":"spacer",size:"expanded",tag:"div"};var Gi=Ki,Qi=function(){return Qi=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Qi.apply(this,arguments)},Xi=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},Yi=function(){return Yi=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Yi.apply(this,arguments)},Zi=pt({styles:f.default,classes:{"sg-form-label":!0}}),Ji=function(e){var t=e.children,n=e.tooltip,r=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["children","tooltip"]);return v.createElement(In,Yi({color:"dark",size:"small",align:"left",weight:"medium",padding:t?["inherit","inherit","xx-small","inherit"]:"none",tag:"span",className:Zi},r),t,n&&v.createElement(mn,{className:"sg-form-label-tooltip",name:"information",size:"12",color:"dark",tooltip:n,tabIndex:null}))},ea=["success","error","warning","hint"],ta=function(){return ea},na=function(){return na=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},na.apply(this,arguments)},ra=function(e){var t=e.validationMessageTemplate,n=e.validationMessage,r=e.state,o=e.className,i=e.focused,a=e.showValidation,l=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["validationMessageTemplate","validationMessage","state","className","focused","showValidation"]),u=[{class:"sg-validation--",props:ta(),selected:r}],s=o+" "+o+"-"+r,c=i&&"error"===r,f=pt({styles:p.default,classes:na({"sg-validation":!0,"sg-validation--focused":i,"sg-validation--error-focused":c,"sg-validation--error-visible":a},dt(u)),className:s});if(!n&&!t)return null;if(t)return v.createElement("div",na({className:f},l,{"data-e2e":l["data-e2e"]}),t());var d="error"===r,h=pt({styles:p.default,classes:{"sg-validation-icon":!0}});return v.createElement("div",na({className:f},l,{"data-e2e":l["data-e2e"]}),d&&v.createElement(mn,{name:"error-attention",height:"13",width:"13",className:h,color:c?"white":"error"}),v.createElement("span",null,n))};ra.defaultProps={state:"hint","data-e2e":"validation"};var oa=ra,ia=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),aa=function(){return aa=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},aa.apply(this,arguments)},la=function(){return la=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},la.apply(this,arguments)},ua=function(e){var t=e.addonType,n=e.addonClasses,r=e.device,o=e.numberOfCharactersToTrim,i=e.onMouseEnter,a=e.onMouseLeave,l=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["addonType","addonClasses","device","numberOfCharactersToTrim","onMouseEnter","onMouseLeave"]),u=r&&r.isPhone?12:18,s=o||u,c=t.length>=s,f=pt({styles:h.default,classes:{"sg-input-text-truncate":c}});return v.createElement("div",{key:""+t,className:n,onMouseEnter:function(e){i&&c&&i(e)},onMouseLeave:function(e){a&&c&&a(e)},"data-e2e":e["data-e2e"]},c&&v.createElement("span",la({},l)),v.createElement("span",{className:f},t))};ua.defaultProps={"data-e2e":"addon"};var sa=cn(ua),ca=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),fa=function(){return fa=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},fa.apply(this,arguments)},pa="prefix",da="suffix",ha="password",va=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.state={isPasswordVisible:!1},t.getAddonTemplate=function(e){var n=t.props,r=n.type,o=n.forceAddonClass,i=t.getAddonProps(e,o),a=i.addon,l=i.addonTypeIsString,u=i.addonClasses,s=t.props.disableTogglePassword,c=r===ha&&e===da&&!s;if(!a&&!c)return null;if(a&&l)return v.createElement(sa,{key:e,addonType:a,addonClasses:u,tooltip:a});var f=pt({styles:h.default,classes:{"sg-input-addon__array":!0}});return a&&a.map?v.createElement("div",{className:f},a.map((function(t,n){return v.createElement("span",{key:e+"-"+n,className:u},t)}))):v.createElement("span",{key:e,className:u},c&&v.createElement(Sn,{icon:t.state.isPasswordVisible?"eye":"eye-cross",size:"small",onClick:t.togglePasswordVisibility,"data-e2e":t.state.isPasswordVisible?"password-hide":"password-show",role:"switch","aria-label":"show password","aria-checked":t.state.isPasswordVisible}),a&&v.createElement(Gi,{size:"xx-small"}),a)},t.togglePasswordVisibility=function(e){e.preventDefault(),t.setState({isPasswordVisible:!t.state.isPasswordVisible})},t.handleKeyUp=function(e){var n=t.props,r=n.onPressEnter,o=n.onKeyUp;e.key===wt.ENTER&&r&&r(),o&&o(e)},t}return ca(t,e),t.prototype.componentDidUpdate=function(e,t,n){e.visiblePassword!==this.props.visiblePassword&&this.setState({isPasswordVisible:this.props.visiblePassword})},t.prototype.getAddonProps=function(e,t){var n=this.props[e],r="string"==typeof n,o=[{class:"sg-input-addon__size--",props:Rt(),selected:this.props.size}],i=fa({"sg-input-addon":!0,"sg-input-addon--prefix":pa===e,"sg-input-addon--suffix":da===e,"sg-input-addon--component":t&&"string"!=typeof n,"sg-input-addon--component-suffix":da===e&&t&&"string"!=typeof n,"sg-input-addon--component-prefix":pa===e&&t&&"string"!=typeof n},dt(o));return{addon:n,addonTypeIsString:r,addonClasses:pt({styles:h.default,classes:i})}},t.prototype.render=function(){var e=this.props,t=e.onRefsReady,n=e.type,r=e.className,o=e.tabIndex,i=e["data-e2e"],a=e["data-component"],l=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["onRefsReady","type","className","tabIndex","data-e2e","data-component"]),u=this.state.isPasswordVisible?"text":ha;return v.createElement(v.Fragment,null,this.getAddonTemplate(pa),v.createElement("input",fa({className:r,"data-e2e":i,"data-component":a,tabIndex:o},yt(l),{onKeyUp:this.handleKeyUp.bind(this),ref:function(e){t&&t(e)},type:n===ha?u:n})),this.getAddonTemplate(da))},t.defaultProps={disableTogglePassword:!1,forceAddonClass:!0,"data-e2e":"input","data-component":"input",tabIndex:0},t}(v.Component),ga=function(e){var t;return t=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.state={isFocused:!1,debounce:null,props:{validationMessage:null,validationMessageTemplate:null}},e.debouncedTimerId=null,e.setDebouncedState=function(){var t=e.props,n=t.state,r=t._enableDebounce;e.debouncedTimerId&&clearTimeout(e.debouncedTimerId);var o={props:{validationMessage:e.props.validationMessage,validationMessageTemplate:e.props.validationMessageTemplate}};r&&e.state.debounce&&"error"===n?e.debouncedTimerId=setTimeout((function(){return e.setState(o)}),500):e.setState(o)},e.onBlurHandler=function(t){e.setState({isFocused:!1}),e.props.onBlur&&e.props.onBlur(t)},e.onFocusHandler=function(t){e.setState({isFocused:!0}),e.props.onFocus&&e.props.onFocus(t)},e.onKeyDownHandler=function(t){e.setState({debounce:!0}),e.props.onKeyDown&&e.props.onKeyDown(t)},e}return ia(n,t),n.prototype.componentDidMount=function(){this.setDebouncedState()},n.prototype.componentDidUpdate=function(e){this.props.value===e.value&&this.props.state===e.state&&this.props.validationMessage===e.validationMessage||this.setDebouncedState()},n.prototype.render=function(){var t=this.props,n=t.state,r=t.size,o=t.style,i=t.className,a=t.label,l=t.fieldClassName,u=t.tag,s=t.wrapperClassName,c=t.validationClassName,f=t.labelTooltip,p=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(t,["state","size","style","className","label","fieldClassName","tag","wrapperClassName","validationClassName","labelTooltip"]),h=this.state.props,g=h.validationMessage,m=h.validationMessageTemplate,y=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return Object.entries(e).filter((function(e){var n=Xi(e,1)[0];return!t.includes(n)})).reduce((function(e,t){var n,r=Xi(t,2),o=r[0],i=r[1];return Qi(Qi({},e),((n={})[o]=i,n))}),{})}(p,"validationMessage","validationMessageTemplate"),b=pt({styles:d.default,classes:{"sg-field-label":!0},className:i}),w=[{class:"sg-field-wrapper--",props:Rt(),selected:r},{class:"sg-field-wrapper--",props:ta(),selected:n}],E=function(e){return e&&["error","warning"].includes(e)}(n),_=(this.state.isFocused||E)&&(g||m),O=aa({"sg-field-wrapper":!0,"sg-field-wrapper--readonly":p.readOnly,"sg-field-wrapper--disabled":p.disabled,"sg-field-wrapper--focused":this.state.isFocused,"sg-field-wrapper--has-validation":_,"sg-field-wrapper--error-focused":this.state.isFocused&&"error"===n},dt(w)),x=pt({styles:d.default,classes:O,className:s}),S=pt({styles:d.default,classes:{"sg-field":!0},className:l});return v.createElement(u,{className:b,style:o,"data-disabled":p.disabled,"data-e2e":p["data-e2e"]+"-label"},v.createElement(Ji,{tooltip:f},a),v.createElement("span",{className:x},v.createElement(e,aa({},y,{size:r,className:S,onFocus:this.onFocusHandler,onBlur:this.onBlurHandler,onKeyDown:this.onKeyDownHandler}))),v.createElement(oa,{"aria-live":"polite",validationMessageTemplate:m,validationMessage:g,state:n,className:c,focused:this.state.isFocused,showValidation:E}))},n}(v.Component),t.defaultProps={size:"medium",_enableDebounce:!0,tag:"label","data-e2e":"form-field"},t}(va),ma=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,ya=function(){return ya=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},ya.apply(this,arguments)},ba=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},wa=function(){var e=M[L.Home],t=e.title,n=e.text,r=e.icon,o=e.iconColor,i=e.iconMulticolor,a=T(),l=A(Mr),u=l.transfer_token,s=l.send_email_notification,c=l.email_recepient,f=ba(v.useState(u),2),p=f[0],d=f[1],h=ba(v.useState(c),2),g=h[0],m=h[1],y=ba(v.useState(s),2),b=y[0],w=y[1],E=""===g||ma.test(g)||void 0===g;return v.useEffect((function(){a(Kr(ya({},cr)))}),[a]),v.createElement("div",null,v.createElement(yr,null,v.createElement(Er,null,xe(t)),v.createElement(Di,{iconName:r,iconColor:o,iconMulticolor:i,text:xe(n),padding:"small"})),v.createElement(yr,null,v.createElement(_r,{density:"cozy"},xe("Start New Migration")),v.createElement(Sr,{padding:"none"},v.createElement("form",{onSubmit:function(e){e.preventDefault(),E&&a(Qr(ya(ya({},cr),{body:{transfer_token:p,send_email_notification:b,email_recepient:g}}),{onComplete:function(){a(Ur(L.Status))}}))}},v.createElement(ao,{gap:"responsive",padding:"responsive"},v.createElement(Vi,{type:"info",background:"light",shadow:!1,contentSize:"expanded"},v.createElement(In,null,xe("You can get a migration token from your {{a}}SiteGround Site Tools{{/a}} in WordPress > Migrator. In there you can specify the destination URL, too.Once you have the token, paste it below to start the migration.",{components:{a:v.createElement(so,{href:"https://tools.siteground.com/"})}}))),v.createElement(ao,{autoflow:"column",gap:"responsive"},v.createElement(ga,{label:xe("Migration Token"),value:p,onChange:function(e){return d(e.target.value.trim())}}),v.createElement(ga,{label:xe("Email for migration updates (optional)"),value:g,state:E?null:"error",validationMessage:E?null:xe("Enter valid email").toString(),onChange:function(e){m(e.target.value),w(Boolean(e.target.value.length))}})),v.createElement("div",null,v.createElement(Lr,{color:"primary"},xe("Start Migration"))))))))},Ea=function(){return Ea=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Ea.apply(this,arguments)},_a=function(e){var t=e.className,n=e.color,r=e.percent,o=e.tabIndex,i=e["data-e2e"],a=e["data-component"],l=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["className","color","percent","tabIndex","data-e2e","data-component"]),u=ft("sg-progress",t);return v.createElement("div",Ea({className:u,tabIndex:o,"data-e2e":i,"data-component":a},yt(l),{role:"progressbar","aria-valuenow":r,"aria-valuemin":0,"aria-valuemax":100}),v.createElement("div",{className:"sg-progress__indicator sg-progress__indicator--color-"+n,style:{WebkitTransform:"translateX("+(-100+r)+"%)",transform:"translateX("+(-100+r)+"%)"}}))};_a.defaultProps={color:"blue",percent:0,tabIndex:0,"data-e2e":"progress","data-component":"progress"};var Oa=_a,xa=function(){return xa=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},xa.apply(this,arguments)},Sa=function(e){var t=e.className,n=e.gutter,r=e.gap,o=e.grow,i=e.align,a=e.alignSelf,l=e.background,u=e.direction,s=e.expand,c=e.justify,f=e.wrap,p=e.margin,d=e.shrink,h=e.children,g=e.padding,m=e.border,y=e.borderRadius,b=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["className","gutter","gap","grow","align","alignSelf","background","direction","expand","justify","wrap","margin","shrink","children","padding","border","borderRadius"]),w=ft("sg-flex",i&&"sg-flex--align-"+i,a&&"sg-flex--align-self-"+a,n&&"sg-flex--gutter-"+n,r&&"sg-flex--gap-"+r,u&&"sg-flex--direction-"+u,s&&"sg-flex--expanded",c&&"sg-flex--justify-"+c,f&&"sg-flex--flex-wrap-"+f,p&&"sg-flex--margin-"+p,d&&"sg-flex--shrink-"+d,o&&"sg-flex--grow-"+o,l&&"sg-flex--background-"+l,zt(g),ro(m,y),t);return v.createElement("div",xa({className:w},yt(b)),h)},ka=function(){function e(){this.subscribersOnOpen={},this.subscribersOnClose={},this.subscribersOnData={}}return e.prototype.subscribe=function(e,t,n){switch(void 0===n&&(n="visibility"),n){case"open":this.subscribersOnOpen[e]=this.subscribersOnOpen[e]?this.subscribersOnOpen[e].concat(t):[t];break;case"close":this.subscribersOnClose[e]=this.subscribersOnClose[e]?this.subscribersOnClose[e].concat(t):[t];break;case"visibility":this.subscribersOnOpen[e]=this.subscribersOnOpen[e]?this.subscribersOnOpen[e].concat(t):[t],this.subscribersOnClose[e]=this.subscribersOnClose[e]?this.subscribersOnClose[e].concat(t):[t];break;case"data":this.subscribersOnData[e]=this.subscribersOnData[e]?this.subscribersOnData[e].concat(t):[t]}},e.prototype.emit=function(e,t,n){var r,o,i;switch(void 0===n&&(n=null),t){case"open":null===(r=this.subscribersOnOpen[e])||void 0===r||r.forEach((function(e){return e("open")}));break;case"close":null===(o=this.subscribersOnClose[e])||void 0===o||o.forEach((function(e){return e("close")}));break;case"data":null===(i=this.subscribersOnData[e])||void 0===i||i.forEach((function(e){return e(n)}));break;case"visibility":throw"Cannot open and close dialog at the same time"}},e.prototype.unsubscribe=function(e,t,n){var r,o,i,a,l;switch(void 0===n&&(n="visibility"),n){case"open":this.subscribersOnOpen[e]=null===(r=this.subscribersOnOpen[e])||void 0===r?void 0:r.filter((function(e){return e!==t}));break;case"close":this.subscribersOnClose[e]=null===(o=this.subscribersOnClose[e])||void 0===o?void 0:o.filter((function(e){return e!==t}));break;case"visibility":this.subscribersOnOpen[e]=null===(i=this.subscribersOnOpen[e])||void 0===i?void 0:i.filter((function(e){return e!==t})),this.subscribersOnClose[e]=null===(a=this.subscribersOnClose[e])||void 0===a?void 0:a.filter((function(e){return e!==t}));break;case"data":this.subscribersOnData[e]=null===(l=this.subscribersOnData[e])||void 0===l?void 0:l.filter((function(e){return e!==t}))}},e.prototype.open=function(e){this.emit(e,"open")},e.prototype.close=function(e){this.emit(e,"close")},e.prototype.hidrate=function(e,t){void 0===t&&(t=null),this.emit(e,"data",t)},e}(),Ca=new ka,Pa=function(){return Pa=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Pa.apply(this,arguments)},Ta=v.useEffect,ja=v.useRef,Na=function(e){var t=e.event,n=e.domRef,r=e.isDirectionForward,o=go(n,{isDirectionForward:!0}),i=go(n,{isDirectionForward:!1}),a=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}(r?[o,i]:[i,o],2),l=a[0];a[1]===document.activeElement&&(t.preventDefault(),t.stopPropagation(),po(l))},Ra=function(e){var t=e.autoFocus,n=e.children,r=e.className,o=e.handleOnKeyDown,i=e.tabIndex,a=e.hasTabHandling,l=void 0===a||a,u=e.hasArrowHandling,s=void 0!==u&&u,c=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["autoFocus","children","className","handleOnKeyDown","tabIndex","hasTabHandling","hasArrowHandling"]),f=ja(null);return Ta((function(){if(t){var e=go(f.current);po(e,{triggerNavigationEvent:!1})}}),[t]),v.createElement("div",Pa({ref:f,className:r,tabIndex:i,onKeyDown:function(e){return function(e){var t=e.event,n=e.domRef,r=e.handleOnKeyDown,o=e.hasTabHandling,i=e.hasArrowHandling;return Et(t)&&o?Na({event:t,domRef:n,isDirectionForward:!0}):_t(t)&&o?Na({event:t,domRef:n,isDirectionForward:!1}):i?function(e){var t=e.event,n=e.domRef,r=go(n,{isDirectionForward:!0}),o=go(n,{isDirectionForward:!1});switch(t.key){case wt.RIGHT:case wt.DOWN:return t.target===o?po(r):Qt({event:t});case wt.LEFT:case wt.UP:return t.target===r?po(o):Qt({event:t,isDirectionForward:!1})}}({event:t,domRef:n}):void(r&&r(t))}({event:e,domRef:f.current,handleOnKeyDown:o,hasTabHandling:l,hasArrowHandling:s})}},yt(c)),n)};Ra.displayName="FocusScope",Ra.defaultProps={autoFocus:!0};var Ia=[],Aa={addElementToFocusQ:function(e){Ia.push(e)},focusLastElementInQ:function(){var e=Ia.pop();e&&e.focus()}},La=v.createContext(Aa),Ma=v.useEffect,za=function(){var e=v.useContext(La),t=e.focusLastElementInQ,n=e.addElementToFocusQ;return Ma((function(){return n(document.activeElement),function(){t()}}),[n,t]),null};za.displayName="HandleModalFocus";var Da=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Fa=function(){return Fa=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Fa.apply(this,arguments)},Ua=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.state={animation:""},t.mouseDownHandler=function(e){t.mouseDownTarget=e.target},t.clickHandler=function(e){e.stopPropagation(),e.currentTarget===e.target&&t.mouseDownTarget===e.currentTarget&&t.closeHandler()},t}return Da(t,e),t.prototype.componentDidMount=function(){this.setState({animation:"open"}),this.disablePageScroll()},t.prototype.componentDidUpdate=function(e){e.triggerClose!==this.props.triggerClose&&this.closeHandler()},t.prototype.componentWillUnmount=function(){this.enablePageScroll()},t.prototype.disablePageScroll=function(){var e=document.querySelector(".sg-page");e&&(e.setAttribute("aria-hidden","true"),$e()&&e.classList.add("from-dialog--prevent-scroll"))},t.prototype.enablePageScroll=function(){var e=document.querySelector(".sg-page");e&&(e.removeAttribute("aria-hidden"),$e()&&e.classList.remove("from-dialog--prevent-scroll"))},t.prototype.keypressHandler=function(e){27===e.keyCode&&(e.stopPropagation(),this.closeHandler())},t.prototype.closeHandler=function(){var e=this.props,t=e.disableClose,n=e.onCloseHandler;t||(n?this.setState({animation:"close"},(function(){setTimeout((function(){return n()}),300)})):console.warn("Dialog component must have onCloseHandler property to work correctly"))},t.prototype.render=function(){var e=this.props,t=e.autoFocus,n=e.children,r=e.wrapperClassName,o=e.className,i=e.renderCustomHeader,a=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["autoFocus","children","wrapperClassName","className","renderCustomHeader"]),l=this.state.animation,u=ft("sg-dialog-wrapper",r,l&&"sg-dialog-wrapper--animation-"+l);return g.createPortal(v.createElement("div",{className:u,onKeyDown:this.keypressHandler.bind(this),onMouseDown:this.mouseDownHandler,onClick:this.clickHandler,ref:this.props.forwardedRef,"data-component":"dialog-wrapper","data-e2e":"dialog-wrapper"},v.createElement(za,null),v.createElement(Ra,Fa({className:o,autoFocus:t},yt(a),{"data-e2e":this.props["data-e2e"]}),i&&i(),n)),document.body)},t.defaultProps={"data-e2e":"dialog-wrapper"},t}(v.Component),Ha=v.forwardRef((function(e,t){return v.createElement(Ua,Fa({},e,{forwardedRef:t}))})),Wa=function(){return Wa=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Wa.apply(this,arguments)},Ba=v.forwardRef((function(e,t){var n=e.align,r=e.background,o=e.density,i=e.justify,a=e.className,l=e.direction,u=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["align","background","density","justify","className","direction"]),s=ft("sg-toolbar","sg-toolbar--background-"+r,"sg-toolbar--density-"+o,n&&"sg-toolbar--align-"+n,i&&"sg-toolbar--justify-"+i,l&&"sg-toolbar--direction-"+l,a);return v.createElement("div",Wa({ref:t,className:s,"data-e2e":e["data-e2e"]},yt(u)),e.children)}));Ba.defaultProps={align:"baseline",background:"transparent",density:"cozy",direction:"row","data-e2e":"toolbar"};var $a=Ba,Va=function(){return Va=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Va.apply(this,arguments)},qa=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},Ka=function(e){var t=e.icon,n=e.iconColor,r=e.iconSize,o=e.state,i="presentational"===o?"72":"30",a="presentational"===o?"48":"20";return v.createElement(nt.Consumer,null,(function(e){var o=e.device;return v.createElement(mn,{name:t,color:n,size:r||(o.isDesktop?i:a),multicolor:!n})}))},Ga=v.forwardRef((function(e,t){var n=qa(v.useState(null),2),r=n[0],o=n[1],i=qa(v.useState(null),2),a=i[0],l=i[1];v.useEffect((function(){var e=en("sg-dialog-");o(e+"-title"),l(e+"-subtitle")}),[]);var u=e.autoFocus,s=e.align,c=e.children,f=e.className,p=e.density,d=e.icon,h=e.iconColor,g=e.iconSize,m=e.footer,y=e.renderCustomHeader,b=e.onCloseHandler,w=e.triggerClose,E=e.size,_=e.state,O=e.title,x=e.subTitle,S=e.wrapperClassName,k=e.autoFocusTitle,C=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["autoFocus","align","children","className","density","icon","iconColor","iconSize","footer","renderCustomHeader","onCloseHandler","triggerClose","size","state","title","subTitle","wrapperClassName","autoFocusTitle"]),P=ft("sg-dialog","sg-dialog--align-"+s,"sg-dialog--size-"+E,p&&"sg-dialog--density-"+p,_?"sg-dialog--state-"+_:"sg-dialog--no-state",f),T=O||x;return v.createElement(Ha,Va({className:P,wrapperClassName:S,autoFocus:u},yt(C),{ref:t,renderCustomHeader:y,onCloseHandler:b,triggerClose:w,role:"dialog","aria-modal":"true","aria-labelledby":r,"aria-describedby":a}),v.createElement("div",{className:"sg-dialog__content-wrapper"},d&&v.createElement("div",{className:"sg-dialog__icon-wrapper"},v.createElement("div",{className:"sg-dialog__icon"},v.createElement(Ka,{icon:d,iconColor:h,iconSize:g,state:_}))),T&&v.createElement("div",{className:"sg-dialog__title-wrapper"},O&&v.createElement(Bn,{id:r,level:"3",weight:"medium",density:"compact",className:"sg-dialog__title",align:s,tabIndex:k?0:null},O),x&&v.createElement(In,{id:a,weight:"bold",color:"dark",align:s},x)),v.createElement("div",{className:"sg-dialog__content"},c)),m&&v.createElement($a,{density:"comfortable",justify:"flex-end"},m))}));Ga.displayName="Dialog",Ga.defaultProps={align:"center",density:"medium",size:"medium",autoFocusTitle:!1,renderCustomHeader:function(){return null},"data-e2e":"dialog"};var Qa=Ga,Xa=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},e(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Ya=function(){return Ya=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Ya.apply(this,arguments)},Za=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.state={open:!1,closing:!1},t.handleChange=function(e){"open"===e?t.setState({open:!0,closing:!1}):t.setState((function(e){return{open:!1,closing:e.open}}))},t}return Xa(t,e),t.prototype.componentDidMount=function(){Ca.subscribe(this.props.id,this.handleChange)},t.prototype.componentWillUnmount=function(){Ca.unsubscribe(this.props.id,this.handleChange)},t.prototype.render=function(){var e=this.props,t=e.id,n=e.onCloseHandler,r=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["id","onCloseHandler"]),o=this.state,i=o.open,a=o.closing;return i||a?v.createElement(Qa,Ya({},r,{"data-e2e":"sg-dialog-"+t,triggerClose:a,onCloseHandler:function(){n&&n(),Ca.close(t)}})):null},t}(v.Component),Ja=Za,el=function(){return el=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},el.apply(this,arguments)},tl=function(e){var t=e.children,n=e.className,r=e.flex,o=e.xsStart,i=e.smStart,a=e.mStart,l=e.lgStart,u=e.xsSpan,s=e.smSpan,c=e.mSpan,f=e.lgSpan,p=e.align,d=e.justify,h=e.justifySelf,g=e.border,m=e.borderRadius,y=e.padding,b=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}(e,["children","className","flex","xsStart","smStart","mStart","lgStart","xsSpan","smSpan","mSpan","lgSpan","align","justify","justifySelf","border","borderRadius","padding"]),w=ft(u&&"sg-grid-column--xs-span-"+u,s&&"sg-grid-column--sm-span-"+s,c&&"sg-grid-column--m-span-"+c,f&&"sg-grid-column--lg-span-"+f,o&&"sg-grid-column--xs-start-"+o,i&&"sg-grid-column--sm-start-"+i,a&&"sg-grid-column--m-start-"+a,l&&"sg-grid-column--lg-start-"+l,r&&"sg-grid-column--flex",!!window.MSInputMethodContext&&!!document.documentMode&&"sg-grid-column--ie11",p&&"sg-grid-column--align-"+p,d&&"sg-grid-column--justify-"+d,h&&"sg-grid-column--justify-self-"+h,ro(g,m),zt(y),n);return v.createElement("div",el({className:w},yt(b)),t)},nl=function(e){var t=e.children;return v.createElement(tl,{flex:!0,align:"center",justify:"center",smSpan:"4",className:"info-conainter__sidebar"},t)},rl=function(e){var t=e.children,n=e.sideBarContent,r=e.sideBarPosition,o=void 0===r?"right":r,i=e.tabIndex,a=void 0===i?0:i;return v.createElement(Sr,{padding:"none",tabIndex:a,className:"info-conainter"},v.createElement(ao,{sm:"12",gap:"none"},"left"===o&&v.createElement(nl,null,n),v.createElement(tl,{smSpan:"8"},v.createElement(ao,{padding:"responsive",gap:"none"},t)),"right"===o&&v.createElement(nl,null,n)))},ol=function(){return ol=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},ol.apply(this,arguments)},il="CANCEL_TRANSFER_DIALOG",al=function(){var e=M[L.Status],t=e.title,n=e.icon,r=e.iconColor,o=e.iconMulticolor,i=T(),a=A(zr),l=a.transfer_progress,u=a.transfer_status;return v.useEffect((function(){i(function(e,t){var n=e.requestTypeName,r=ur(e,["requestTypeName"]);return lr({type:ar,requestTypeName:n||"POLL_ITEM",payload:lr({},r)},void 0)}(ol({},dr)))}),[i]),v.createElement(yr,null,v.createElement(ao,null,v.createElement(Er,null,xe(t)),v.createElement(rl,{sideBarContent:v.createElement(mn,{name:n,color:r,multicolor:o,size:"144"})},v.createElement(ao,null,v.createElement(Fo,{density:"none",position:"relative",delay:0}),v.createElement(Oa,{percent:Number.parseInt(l)}),v.createElement(In,{align:"center"},u.message||xe("Loading...")),v.createElement(Sa,{justify:"center"},v.createElement(Lr,{color:"primary",onClick:function(){return Ca.open(il)}},xe("Cancel"))))),v.createElement(Ja,{id:il,icon:"warning",state:"warning",size:"medium",title:xe("Cancel ongoing transfer"),footer:v.createElement(v.Fragment,null,v.createElement(Lr,{onClick:function(){Ca.close(il)}},xe("No")),v.createElement(Lr,{onClick:function(){i(Qr(ol({},fr),{onComplete:function(){Ca.close(il),i(Ur(L.Home))}}))}},xe("Yes")))},xe("Are you sure you want this?"))))},ll=function(){return ll=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},ll.apply(this,arguments)},ul=function(){var e=M[L.Success].title,t=T(),n=A(Dr),r=n.sitespeed,o=n.new_nameservers,i=n.temp_url;return v.useEffect((function(){t(Kr(ll({},hr)))}),[t]),v.createElement(yr,null,v.createElement(ao,null,v.createElement("div",null,v.createElement(Er,null,xe(e)),v.createElement(jr,{status:"success",title:xe("Data Transfer Complete!"),description:xe("We have set up a {{a}}temporary URL{{/a}} (valid for 48 hours) where you can check whether your website looks and performs as expected. Once you confirm everything’s ok, don’t forget to {{b}}point your domain to the new server in order to complete the migration{{/b}}, using the name servers below. DNS propagation may take up to 48 hours.",{components:{a:v.createElement(so,{href:i}),b:v.createElement("strong",null)}})},v.createElement(ao,{justifyItems:"center"},v.createElement("div",null,v.createElement(In,{align:"center"},xe("NS1:")," ",v.createElement("strong",null,o[0])),v.createElement(In,{align:"center"},xe("NS2:")," ",v.createElement("strong",null,o[1]))),v.createElement(Lr,{color:"primary",onClick:function(){t(Qr(ll({},vr),{onComplete:function(){t(Ur(L.Home))}}))}},xe("Initiate New Transfer"))))),r&&v.createElement(Oi,{sitespeed:r}),v.createElement(pi,null)))},sl=function(){return sl=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},sl.apply(this,arguments)},cl=function(e){switch(e){case L.Home:return v.createElement(wa,null);case L.Confirmation:return v.createElement(Zr,null);case L.Status:return v.createElement(al,null);case L.Success:return v.createElement(ul,null);case L.Error:return v.createElement(Si,null);case L.Fail:return v.createElement(Ri,null);default:return null}},fl=(0,ke.w)((function(e){e.page;var t=T(),n=A(rr),r=A(nr);return v.useEffect((function(){r&&Oe.setLocale(r)}),[r]),v.useEffect((function(){t(function(e,t){var n=e.requestTypeName,r=ur(e,["requestTypeName"]);return lr({type:or,requestTypeName:n||"FETCH_ITEM",payload:lr({},r)},void 0)}(sl({},dr)))}),[t]),v.createElement(lt,null,v.createElement(Tt,{position:"relative",pageContent:v.createElement(Ut,{className:"sg-migrator"},v.createElement(tr,{defaultErrorTitle:Oe.translate("Error").toString(),defaultSuccessTitle:Oe.translate("Success").toString()}),cl(n))}))}));function pl(e){return"Minified Redux error #"+e+"; visit https://redux.js.org/Errors?code="+e+" for the full message or use the non-minified dev environment for full errors. "}var dl="function"==typeof Symbol&&Symbol.observable||"@@observable",hl=function(){return Math.random().toString(36).substring(7).split("").join(".")},vl={INIT:"@@redux/INIT"+hl(),REPLACE:"@@redux/REPLACE"+hl(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+hl()}};function gl(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function ml(e,t,n){var r;if("function"==typeof t&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw new Error(pl(0));if("function"==typeof t&&void 0===n&&(n=t,t=void 0),void 0!==n){if("function"!=typeof n)throw new Error(pl(1));return n(ml)(e,t)}if("function"!=typeof e)throw new Error(pl(2));var o=e,i=t,a=[],l=a,u=!1;function s(){l===a&&(l=a.slice())}function c(){if(u)throw new Error(pl(3));return i}function f(e){if("function"!=typeof e)throw new Error(pl(4));if(u)throw new Error(pl(5));var t=!0;return s(),l.push(e),function(){if(t){if(u)throw new Error(pl(6));t=!1,s();var n=l.indexOf(e);l.splice(n,1),a=null}}}function p(e){if(!gl(e))throw new Error(pl(7));if(void 0===e.type)throw new Error(pl(8));if(u)throw new Error(pl(9));try{u=!0,i=o(i,e)}finally{u=!1}for(var t=a=l,n=0;n<t.length;n++)(0,t[n])();return e}function d(e){if("function"!=typeof e)throw new Error(pl(10));o=e,p({type:vl.REPLACE})}function h(){var e,t=f;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new Error(pl(11));function n(){e.next&&e.next(c())}return n(),{unsubscribe:t(n)}}})[dl]=function(){return this},e}return p({type:vl.INIT}),(r={dispatch:p,subscribe:f,getState:c,replaceReducer:d})[dl]=h,r}function yl(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}var bl=function(e){return"@@redux-saga/"+e},wl=bl("CANCEL_PROMISE"),El=bl("CHANNEL_END"),_l=bl("IO"),Ol=bl("MATCH"),xl=bl("MULTICAST"),Sl=bl("SAGA_ACTION"),kl=bl("SELF_CANCELLATION"),Cl=bl("TASK"),Pl=bl("TASK_CANCEL"),Tl=bl("TERMINATE"),jl=bl("LOCATION"),Nl=function(e){return null==e},Rl=function(e){return null!=e},Il=function(e){return"function"==typeof e},Al=function(e){return"string"==typeof e},Ll=Array.isArray,Ml=function(e){return e&&Il(e.then)},zl=function(e){return e&&Il(e.next)&&Il(e.throw)},Dl=function e(t){return t&&(Al(t)||Hl(t)||Il(t)||Ll(t)&&t.every(e))},Fl=function(e){return e&&Il(e.take)&&Il(e.close)},Ul=function(e){return Il(e)&&e.hasOwnProperty("toString")},Hl=function(e){return Boolean(e)&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype},Wl=function(e,t){var n;void 0===t&&(t=!0);var r=new Promise((function(r){n=setTimeout(r,e,t)}));return r[wl]=function(){clearTimeout(n)},r},Bl=function(e){return function(){return true}}(),$l=function(){},Vl=function(e){return e};"function"==typeof Symbol&&Symbol.asyncIterator&&Symbol.asyncIterator;var ql=function(e,t){x(e,t),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(t).forEach((function(n){e[n]=t[n]}))};function Kl(e,t){var n=e.indexOf(t);n>=0&&e.splice(n,1)}var Gl=function(e){throw e},Ql=function(e){return{value:e,done:!0}};function Xl(e,t,n){void 0===t&&(t=Gl),void 0===n&&(n="iterator");var r={meta:{name:n},next:e,throw:t,return:Ql,isSagaIterator:!0};return"undefined"!=typeof Symbol&&(r[Symbol.iterator]=function(){return r}),r}function Yl(e,t){var n=t.sagaStack;console.error(e),console.error(n)}var Zl=function(e){return Array.apply(null,new Array(e))},Jl=function(e){return function(t){return e(Object.defineProperty(t,Sl,{value:!0}))}},eu=function(e){return e===Tl},tu=function(e){return e===Pl},nu=function(e){return eu(e)||tu(e)};function ru(e,t){var n,r=Object.keys(e),o=r.length,i=0,a=Ll(e)?Zl(o):{},l={};return r.forEach((function(e){var r=function(r,l){n||(l||nu(r)?(t.cancel(),t(r,l)):(a[e]=r,++i===o&&(n=!0,t(a))))};r.cancel=$l,l[e]=r})),t.cancel=function(){n||(n=!0,r.forEach((function(e){return l[e].cancel()})))},l}function ou(e){return{name:e.name||"anonymous",location:iu(e)}}function iu(e){return e[jl]}var au=function(e){return function(e,t){void 0===e&&(e=10);var n=new Array(e),r=0,o=0,i=0,a=function(t){n[o]=t,o=(o+1)%e,r++},l=function(){if(0!=r){var t=n[i];return n[i]=null,r--,i=(i+1)%e,t}},u=function(){for(var e=[];r;)e.push(l());return e};return{isEmpty:function(){return 0==r},put:function(l){var s;if(r<e)a(l);else switch(t){case 1:throw new Error("Channel's Buffer overflow!");case 3:n[o]=l,i=o=(o+1)%e;break;case 4:s=2*e,n=u(),r=n.length,o=n.length,i=0,n.length=s,e=s,a(l)}},take:l,flush:u}}(e,4)},lu="TAKE",uu="CALL",su="FORK",cu=function(e,t){var n;return(n={})[_l]=!0,n.combinator=!1,n.type=e,n.payload=t,n};function fu(e,t){return void 0===e&&(e="*"),Dl(e)?cu(lu,{pattern:e}):Fl(n=e)&&n[xl]&&Rl(t)&&Dl(t)?cu(lu,{channel:e,pattern:t}):Fl(e)?cu(lu,{channel:e}):void 0;var n}function pu(e,t){return Nl(t)&&(t=e,e=void 0),cu("PUT",{channel:e,action:t})}function du(e,t){var n,r=null;return Il(e)?n=e:(Ll(e)?(r=e[0],n=e[1]):(r=e.context,n=e.fn),r&&Al(n)&&Il(r[n])&&(n=r[n])),{context:r,fn:n,args:t}}function hu(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return cu(uu,du(e,n))}function vu(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return cu(su,du(e,n))}var gu=hu.bind(null,Wl);var mu=function(){var e={};return e.promise=new Promise((function(t,n){e.resolve=t,e.reject=n})),e},yu=[],bu=0;function wu(e){try{Ou(),e()}finally{xu()}}function Eu(e){yu.push(e),bu||(Ou(),Su())}function _u(e){try{return Ou(),e()}finally{Su()}}function Ou(){bu++}function xu(){bu--}function Su(){var e;for(xu();!bu&&void 0!==(e=yu.shift());)wu(e)}var ku=function(e){return function(t){return e.some((function(e){return Nu(e)(t)}))}},Cu=function(e){return function(t){return e(t)}},Pu=function(e){return function(t){return t.type===String(e)}},Tu=function(e){return function(t){return t.type===e}},ju=function(){return Bl};function Nu(e){var t="*"===e?ju:Al(e)?Pu:Ll(e)?ku:Ul(e)?Pu:Il(e)?Cu:Hl(e)?Tu:null;if(null===t)throw new Error("invalid pattern: "+e);return t(e)}var Ru={type:El},Iu=function(e){return e&&e.type===El};function Au(){var e,t,n,r,o,i,a=(t=!1,r=n=[],o=function(){r===n&&(r=n.slice())},i=function(){t=!0;var e=n=r;r=[],e.forEach((function(e){e(Ru)}))},(e={})[xl]=!0,e.put=function(e){if(!t)if(Iu(e))i();else for(var o=n=r,a=0,l=o.length;a<l;a++){var u=o[a];u[Ol](e)&&(u.cancel(),u(e))}},e.take=function(e,n){var i,a;void 0===n&&(n=ju),t?e(Ru):(e[Ol]=n,o(),r.push(e),e.cancel=(i=function(){o(),Kl(r,e)},a=!1,function(){a||(a=!0,i())}))},e.close=i,e),l=a.put;return a.put=function(e){e[Sl]?l(e):Eu((function(){l(e)}))},a}function Lu(e,t){var n=e[wl];Il(n)&&(t.cancel=n),e.then(t,(function(e){t(e,!0)}))}var Mu,zu=0,Du=function(){return++zu};function Fu(e){e.isRunning()&&e.cancel()}var Uu=((Mu={}).TAKE=function(e,t,n){var r=t.channel,o=void 0===r?e.channel:r,i=t.pattern,a=t.maybe,l=function(e){e instanceof Error?n(e,!0):!Iu(e)||a?n(e):n(Tl)};try{o.take(l,Rl(i)?Nu(i):null)}catch(e){return void n(e,!0)}n.cancel=l.cancel},Mu.PUT=function(e,t,n){var r=t.channel,o=t.action,i=t.resolve;Eu((function(){var t;try{t=(r?r.put:e.dispatch)(o)}catch(e){return void n(e,!0)}i&&Ml(t)?Lu(t,n):n(t)}))},Mu.ALL=function(e,t,n,r){var o=r.digestEffect,i=zu,a=Object.keys(t);if(0!==a.length){var l=ru(t,n);a.forEach((function(e){o(t[e],i,l[e],e)}))}else n(Ll(t)?[]:{})},Mu.RACE=function(e,t,n,r){var o=r.digestEffect,i=zu,a=Object.keys(t),l=Ll(t)?Zl(a.length):{},u={},s=!1;a.forEach((function(e){var t=function(t,r){s||(r||nu(t)?(n.cancel(),n(t,r)):(n.cancel(),s=!0,l[e]=t,n(l)))};t.cancel=$l,u[e]=t})),n.cancel=function(){s||(s=!0,a.forEach((function(e){return u[e].cancel()})))},a.forEach((function(e){s||o(t[e],i,u[e],e)}))},Mu.CALL=function(e,t,n,r){var o=t.context,i=t.fn,a=t.args,l=r.task;try{var u=i.apply(o,a);if(Ml(u))return void Lu(u,n);if(zl(u))return void Xu(e,u,l.context,zu,ou(i),!1,n);n(u)}catch(e){n(e,!0)}},Mu.CPS=function(e,t,n){var r=t.context,o=t.fn,i=t.args;try{var a=function(e,t){Nl(e)?n(t):n(e,!0)};o.apply(r,i.concat(a)),a.cancel&&(n.cancel=a.cancel)}catch(e){n(e,!0)}},Mu.FORK=function(e,t,n,r){var o=t.context,i=t.fn,a=t.args,l=t.detached,u=r.task,s=function(e){var t=e.context,n=e.fn,r=e.args;try{var o=n.apply(t,r);if(zl(o))return o;var i=!1;return Xl((function(e){return i?{value:e,done:!0}:(i=!0,{value:o,done:!Ml(o)})}))}catch(e){return Xl((function(){throw e}))}}({context:o,fn:i,args:a}),c=function(e,t){return e.isSagaIterator?{name:e.meta.name}:ou(t)}(s,i);_u((function(){var t=Xu(e,s,u.context,zu,c,l,void 0);l?n(t):t.isRunning()?(u.queue.addTask(t),n(t)):t.isAborted()?u.queue.abort(t.error()):n(t)}))},Mu.JOIN=function(e,t,n,r){var o=r.task,i=function(e,t){if(e.isRunning()){var n={task:o,cb:t};t.cancel=function(){e.isRunning()&&Kl(e.joiners,n)},e.joiners.push(n)}else e.isAborted()?t(e.error(),!0):t(e.result())};if(Ll(t)){if(0===t.length)return void n([]);var a=ru(t,n);t.forEach((function(e,t){i(e,a[t])}))}else i(t,n)},Mu.CANCEL=function(e,t,n,r){var o=r.task;t===kl?Fu(o):Ll(t)?t.forEach(Fu):Fu(t),n()},Mu.SELECT=function(e,t,n){var r=t.selector,o=t.args;try{n(r.apply(void 0,[e.getState()].concat(o)))}catch(e){n(e,!0)}},Mu.ACTION_CHANNEL=function(e,t,n){var r=t.pattern,o=function(e){void 0===e&&(e=au());var t=!1,n=[];return{take:function(r){t&&e.isEmpty()?r(Ru):e.isEmpty()?(n.push(r),r.cancel=function(){Kl(n,r)}):r(e.take())},put:function(r){if(!t){if(0===n.length)return e.put(r);n.shift()(r)}},flush:function(n){t&&e.isEmpty()?n(Ru):n(e.flush())},close:function(){if(!t){t=!0;var e=n;n=[];for(var r=0,o=e.length;r<o;r++)(0,e[r])(Ru)}}}}(t.buffer),i=Nu(r),a=function t(n){Iu(n)||e.channel.take(t,i),o.put(n)},l=o.close;o.close=function(){a.cancel(),l()},e.channel.take(a,i),n(o)},Mu.CANCELLED=function(e,t,n,r){n(r.task.isCancelled())},Mu.FLUSH=function(e,t,n){t.flush(n)},Mu.GET_CONTEXT=function(e,t,n,r){n(r.task.context[t])},Mu.SET_CONTEXT=function(e,t,n,r){var o=r.task;ql(o.context,t),n()},Mu);function Hu(e,t){return e+"?"+t}function Wu(e){var t=e.name,n=e.location;return n?t+" "+Hu(n.fileName,n.lineNumber):t}function Bu(e){var t,n,r=(t=e,(n=[]).concat.apply(n,t.map((function(e){return e.cancelledTasks}))));return r.length?["Tasks cancelled due to error:"].concat(r).join("\n"):""}var $u=null,Vu=[],qu=function(e){e.crashedEffect=$u,Vu.push(e)},Ku=function(){$u=null,Vu.length=0},Gu=function(){var e,t,n=Vu[0],r=Vu.slice(1),o=n.crashedEffect?(e=n.crashedEffect,(t=iu(e))?t.code+" "+Hu(t.fileName,t.lineNumber):""):null;return["The above error occurred in task "+Wu(n.meta)+(o?" \n when executing effect "+o:"")].concat(r.map((function(e){return" created by "+Wu(e.meta)})),[Bu(Vu)]).join("\n")};function Qu(e,t,n,r,o,i,a){var l;void 0===a&&(a=$l);var u,s,c=0,f=null,p=[],d=Object.create(n),h=function(e,t,n){var r,o=[],i=!1;function a(e){p.push.apply(p,h.getTasks().map((function(e){return e.meta.name}))),u(),n(e,!0)}function l(t){o.push(t),t.cont=function(l,u){i||(Kl(o,t),t.cont=$l,u?a(l):(t===e&&(r=l),o.length||(i=!0,n(r))))}}function u(){i||(i=!0,o.forEach((function(e){e.cont=$l,e.cancel()})),o=[])}return l(e),{addTask:l,cancelAll:u,abort:a,getTasks:function(){return o}}}(t,0,v);function v(t,n){if(n){if(c=2,qu({meta:o,cancelledTasks:p}),g.isRoot){var r=Gu();Ku(),e.onError(t,{sagaStack:r})}s=t,f&&f.reject(t)}else t===Pl?c=1:1!==c&&(c=3),u=t,f&&f.resolve(t);g.cont(t,n),g.joiners.forEach((function(e){e.cb(t,n)})),g.joiners=null}var g=((l={})[Cl]=!0,l.id=r,l.meta=o,l.isRoot=i,l.context=d,l.joiners=[],l.queue=h,l.cancel=function(){0===c&&(c=1,h.cancelAll(),v(Pl,!1))},l.cont=a,l.end=v,l.setContext=function(e){ql(d,e)},l.toPromise=function(){return f||(f=mu(),2===c?f.reject(s):0!==c&&f.resolve(u)),f.promise},l.isRunning=function(){return 0===c},l.isCancelled=function(){return 1===c||0===c&&1===t.status},l.isAborted=function(){return 2===c},l.result=function(){return u},l.error=function(){return s},l);return g}function Xu(e,t,n,r,o,i,a){var l=e.finalizeRunEffect((function(t,n,r){Ml(t)?Lu(t,r):zl(t)?Xu(e,t,s.context,n,o,!1,r):t&&t[_l]?(0,Uu[t.type])(e,t.payload,r,c):r(t)}));f.cancel=$l;var u={meta:o,cancel:function(){0===u.status&&(u.status=1,f(Pl))},status:0},s=Qu(e,u,n,r,o,i,a),c={task:s,digestEffect:p};return a&&(a.cancel=s.cancel),f(),s;function f(e,n){try{var o;n?(o=t.throw(e),Ku()):tu(e)?(u.status=1,f.cancel(),o=Il(t.return)?t.return(Pl):{done:!0,value:Pl}):o=eu(e)?Il(t.return)?t.return():{done:!0}:t.next(e),o.done?(1!==u.status&&(u.status=3),u.cont(o.value)):p(o.value,r,f)}catch(e){if(1===u.status)throw e;u.status=2,u.cont(e,!0)}}function p(t,n,r,o){void 0===o&&(o="");var i,a=Du();function u(n,o){i||(i=!0,r.cancel=$l,e.sagaMonitor&&(o?e.sagaMonitor.effectRejected(a,n):e.sagaMonitor.effectResolved(a,n)),o&&function(e){$u=e}(t),r(n,o))}e.sagaMonitor&&e.sagaMonitor.effectTriggered({effectId:a,parentEffectId:n,label:o,effect:t}),u.cancel=$l,r.cancel=function(){i||(i=!0,u.cancel(),u.cancel=$l,e.sagaMonitor&&e.sagaMonitor.effectCancelled(a))},l(t,a,u)}}function Yu(e,t){for(var n=e.channel,r=void 0===n?Au():n,o=e.dispatch,i=e.getState,a=e.context,l=void 0===a?{}:a,u=e.sagaMonitor,s=e.effectMiddlewares,c=e.onError,f=void 0===c?Yl:c,p=arguments.length,d=new Array(p>2?p-2:0),h=2;h<p;h++)d[h-2]=arguments[h];var v,g=t.apply(void 0,d),m=Du();if(u&&(u.rootSagaStarted=u.rootSagaStarted||$l,u.effectTriggered=u.effectTriggered||$l,u.effectResolved=u.effectResolved||$l,u.effectRejected=u.effectRejected||$l,u.effectCancelled=u.effectCancelled||$l,u.actionDispatched=u.actionDispatched||$l,u.rootSagaStarted({effectId:m,saga:t,args:d})),s){var y=yl.apply(void 0,s);v=function(e){return function(t,n,r){return y((function(t){return e(t,n,r)}))(t)}}}else v=Vl;var b={channel:r,dispatch:Jl(o),getState:i,sagaMonitor:u,onError:f,finalizeRunEffect:v};return _u((function(){var e=Xu(b,g,l,m,ou(t),!0,void 0);return u&&u.effectResolved(m,e),e}))}var Zu=function(e){var t,n=void 0===e?{}:e,r=n.context,o=void 0===r?{}:r,i=n.channel,a=void 0===i?Au():i,l=n.sagaMonitor,u=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(n,["context","channel","sagaMonitor"]);function s(e){var n=e.getState,r=e.dispatch;return t=Yu.bind(null,x({},u,{context:o,channel:a,dispatch:r,getState:n,sagaMonitor:l})),function(e){return function(t){l&&l.actionDispatched&&l.actionDispatched(t);var n=e(t);return a.put(t),n}}}return s.run=function(){return t.apply(void 0,arguments)},s.setContext=function(e){ql(o,e)},s},Ju={rest_base:"",home_url:"",wp_nonce:""},es=function(){return es=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},es.apply(this,arguments)},ts={token:{email_recepient:"",send_email_notification:!1,transfer_token:""},status:{transfer_progress:0,transfer_status:{}},success:{sitespeed:null,new_nameservers:[],temp_url:null}},ns="HTTP_REQUEST_STARTED",rs="HTTP_REQUEST_SUCCEED",os="HTTP_REQUEST_FAILED",is=function(){return is=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},is.apply(this,arguments)},as={specified:[],unspecified:0},ls=function(e){return e.requestedAction&&e.requestedAction.requestTypeName},us={page:null},ss=function(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++){var o=t[r];"function"==typeof e[o]&&(n[o]=e[o])}var i,a=Object.keys(n);try{!function(e){Object.keys(e).forEach((function(t){var n=e[t];if(void 0===n(void 0,{type:vl.INIT}))throw new Error(pl(12));if(void 0===n(void 0,{type:vl.PROBE_UNKNOWN_ACTION()}))throw new Error(pl(13))}))}(n)}catch(e){i=e}return function(e,t){if(void 0===e&&(e={}),i)throw i;for(var r=!1,o={},l=0;l<a.length;l++){var u=a[l],s=n[u],c=e[u],f=s(c,t);if(void 0===f)throw t&&t.type,new Error(pl(14));o[u]=f,r=r||f!==c}return(r=r||a.length!==Object.keys(e).length)?o:e}}({router:function(e,t){void 0===e&&(e=us);var n=t.payload;return t.type===Fr?{page:n.page}:e},config:function(e,t){return void 0===e&&(e=Ju),t.payload,t.type,e},items:function(e,t){var n,r,o;void 0===e&&(e=ts);var i=t.payload;switch(t.type){case Wr:case ir:return es(es({},e),((n={})[i.resourceName]=i.item,n));case $r:return es(es({},e),((r={})[i.resourceName]=es(es({},e[i.resourceName]),i.item),r));case"CLEAR_ITEM":return es(es({},e),((o={})[i]=es({},ts[i]),o));default:return e}},httpRequests:function(e,t){void 0===e&&(e=as);var n=t.payload;switch(t.type){case ns:var r=ls(n);return is(is({},e),r?{specified:e.specified.filter((function(e){return e!==r})).concat(r)}:{unspecified:e.unspecified+1});case rs:case os:var o=ls(n);return is(is({},e),o?{specified:e.specified.filter((function(e){return e!==o}))}:{unspecified:e.unspecified-1});default:return e}}}),cs=ss,fs=function(e){return{done:!0,value:e}},ps={};function ds(e){return Fl(e)?"channel":Ul(e)?String(e):Il(e)?e.name:String(e)}function hs(e,t,n){var r,o,i,a=t;function l(t,n){if(a===ps)return fs(t);if(n&&!o)throw a=ps,n;r&&r(t);var l=n?e[o](n):e[a]();return a=l.nextState,i=l.effect,r=l.stateUpdater,o=l.errorState,a===ps?fs(t):i}return Xl(l,(function(e){return l(null,e)}),n)}function vs(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),o=2;o<n;o++)r[o-2]=arguments[o];var i,a={done:!1,value:fu(e)},l=function(e){return{done:!1,value:vu.apply(void 0,[t].concat(r,[e]))}},u=function(e){return i=e};return hs({q1:function(){return{nextState:"q2",effect:a,stateUpdater:u}},q2:function(){return{nextState:"q1",effect:l(i)}}},"q1","takeEvery("+ds(e)+", "+t.name+")")}function gs(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),o=2;o<n;o++)r[o-2]=arguments[o];return vu.apply(void 0,[vs,e,t].concat(r))}var ms=function(e){var t=e.status,n=e.message;this.message=n,this.status=t};function ys(e){return t=this,n=void 0,o=function(){var t,n;return function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}}(this,(function(r){switch(r.label){case 0:t=null,r.label=1;case 1:return r.trys.push([1,3,,4]),[4,e.json()];case 2:return t=r.sent(),[3,4];case 3:throw n=r.sent(),console.error(n),new ms({status:555,message:"No JSON from WP api!"});case 4:return[2,t]}}))},new((r=void 0)||(r=Promise))((function(e,i){function a(e){try{u(o.next(e))}catch(e){i(e)}}function l(e){try{u(o.throw(e))}catch(e){i(e)}}function u(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r((function(e){e(n)}))).then(a,l)}u((o=o.apply(t,n||[])).next())}));var t,n,r,o}function bs(e){var t=e.endpoint,n=e.method,r=void 0===n?"GET":n,o=e.body,i=Us.getState().config,a={method:r,headers:{Accept:"application/json","X-WP-Nonce":i.wp_nonce},body:JSON.stringify(o)};return"GET"!==r&&"DELETE"!==r||delete a.body,function(){return fetch(i.rest_base+"/siteground-migrator/v1"+t,a).catch((function(e){throw console.error(e),Error("An error occurred. Please try again later")})).then(ys).then((function(e){if(200===e.status)return e;throw new ms(e)}))}}var ws=function(e,t){return{type:ns,payload:{requestedAction:e,response:t}}},Es=function(e,t){return{type:rs,payload:{requestedAction:e,response:t}}},_s=function(){return _s=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},_s.apply(this,arguments)};function Os(e){return function(t){var n,r,o;return function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}}(this,(function(i){switch(i.label){case 0:return n=_s(_s({},t),{payload:_s(_s({},t.payload),{_meta:void 0})}),[4,pu(ws(t))];case 1:i.sent(),i.label=2;case 2:return i.trys.push([2,5,,7]),[4,hu(e,n)];case 3:return r=i.sent(),[4,pu(Es(t,r))];case 4:return i.sent(),[3,7];case 5:return o=i.sent(),console.error("Failed request...",o),[4,pu((a=t,l=o,{type:os,payload:{requestedAction:a,exception:l}}))];case 6:return i.sent(),[3,7];case 7:return[2]}var a,l}))}}var xs=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}};function Ss(e){var t,n,r,o,i,a,l,u,s=e.payload;return xs(this,(function(e){switch(e.label){case 0:return t=s.body,n=s.endpoint,r=s.method,o=void 0===r?"GET":r,i=s.resourceName,[4,hu(bs({endpoint:null!=(a=s.itemId)?n+"/"+encodeURIComponent(a):n,method:o,body:t}))];case 1:return l=e.sent(),[4,pu(Gr({resourceName:i,item:null===(u=l.data)||void 0===u?void 0:u.data}))];case 2:return e.sent(),[2,l]}}))}function ks(e){var t,n,r,o,i,a,l,u,s,c,f=e.payload;return xs(this,(function(e){switch(e.label){case 0:t=f.body,n=f.endpoint,r=f.itemId,o=f.method,i=void 0===o?"PUT":o,a=f.resourceName,l=r?n+"/"+r:n,u={},e.label=1;case 1:return e.trys.push([1,4,,5]),[4,hu(bs({endpoint:l,method:i,body:t}))];case 2:return u=e.sent(),[4,pu(Xr({resourceName:a,item:null===(c=u.data)||void 0===c?void 0:c.data}))];case 3:return e.sent(),[3,5];case 4:return s=e.sent(),console.error("Failed request...",s),[3,5];case 5:return[2,u]}}))}var Cs=function(){return xs(this,(function(e){switch(e.label){case 0:return[4,gs(Hr,Os(Ss))];case 1:return e.sent(),[4,gs(Br,Os(ks))];case 2:return e.sent(),[2]}}))},Ps=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}};function Ts(e){return Ps(this,(function(t){switch(t.label){case 0:switch(e){case 0:return[3,1];case 3:return[3,3];case 4:return[3,5];case 5:return[3,7]}return[3,9];case 1:return[4,pu(Ur(L.Fail))];case 2:case 4:case 6:case 8:return[2,t.sent()];case 3:return[4,pu(Ur(L.Success))];case 5:return[4,pu(Ur(L.Error))];case 7:return[4,pu(Ur(L.Confirmation))];case 9:return[2]}}))}function js(e){var t,n,r,o,i,a,l,u,s=e.payload;return Ps(this,(function(e){switch(e.label){case 0:return t=s.body,n=s.endpoint,r=s.method,o=void 0===r?"GET":r,i=s.resourceName,[4,hu(bs({endpoint:null!=(a=s.itemId)?n+"/"+encodeURIComponent(a):n,method:o,body:t}))];case 1:return l=e.sent(),u=l.data.transfer_status,Array.isArray(u)?[4,pu(Ur(L.Home))]:[3,3];case 2:return[2,e.sent()];case 3:return[4,pu(sr({resourceName:i,item:l.data}))];case 4:return e.sent(),[4,Ts(u.status)];case 5:return e.sent(),[2]}}))}function Ns(e){var t,n,r,o,i,a,l,u,s,c=e.payload;return Ps(this,(function(e){switch(e.label){case 0:t=c.body,n=c.endpoint,r=c.method,o=void 0===r?"GET":r,i=c.resourceName,a=c.itemId,l=null!=a?n+"/"+encodeURIComponent(a):n,e.label=1;case 1:return[4,gu(1e3)];case 2:return e.sent(),[4,hu(bs({endpoint:l,method:o,body:t}))];case 3:return u=e.sent(),s=u.data.transfer_status,Array.isArray(s)?[4,pu(Ur(L.Home))]:[3,5];case 4:return[2,e.sent()];case 5:return[4,pu(sr({resourceName:i,item:u.data}))];case 6:return e.sent(),[4,Ts(s.status)];case 7:return e.sent(),[3,1];case 8:return[2]}}))}var Rs=function(){return Ps(this,(function(e){switch(e.label){case 0:return[4,gs(or,Os(js))];case 1:return e.sent(),[4,gs(ar,Os(Ns))];case 2:return e.sent(),[4,pu(Ur(L.Status))];case 3:return e.sent(),[2]}}))},Is=function(e){var t={success:null,error:null};if(!e||!e._meta||!e._meta.notification)return t;var n=e._meta.notification;return n.success&&(t.success=n.success),n.error&&(t.error=n.error),t},As=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}};function Ls(e){var t=e.exception,n=e.requestedAction,r=Is(n.payload).error,o=null==t?void 0:t.message,i=null==t?void 0:t.status;return r&&r.intlKey?$t.error(r.intlKey):555===i?$t.error(xe("WHAT"),xe("Could not connect to the WordPress REST API")):o?$t.error(o):$t.error(xe("WHAT"),xe("Could not connect to the WordPress REST API"))}function Ms(e){var t,n,r=e.payload;return As(this,(function(e){switch(e.label){case 0:return t=r.requestedAction,[4,hu(Ls,{exception:n=r.exception,requestedAction:t})];case 1:return e.sent(),function(e,t){var n;null===(n=null==e?void 0:e.onFailure)||void 0===n||n.call(e,t)}(t,n),[2]}}))}function zs(e){var t=e.payload,n=t.requestedAction,r=t.response,o=null==r?void 0:r.message,i=Is(n.payload).success;(null==i?void 0:i.intlKey)&&$t.success(i.intlKey),o&&$t.success(o),function(e,t){var n;t&&(null===(n=null==e?void 0:e.onComplete)||void 0===n||n.call(e,t.data))}(n,r)}function Ds(){return As(this,(function(e){switch(e.label){case 0:return[4,gs(rs,zs)];case 1:return e.sent(),[4,gs(os,Ms)];case 2:return e.sent(),[2]}}))}function Fs(){return function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(i){return function(l){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,l])}}}(this,(function(e){switch(e.label){case 0:return[4,(t=[Cs(),Rs(),Ds()],n=cu("ALL",t),n.combinator=!0,n)];case 1:return e.sent(),[2]}var t,n}))}var Us,Hs=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__||yl;var Ws={init:function(e){var t=e.domElementId,n=e.page,r=e.config,o=t||function(){var e="sg-optimizer-container";if(document.getElementById(e))return e;var t=document.createElement("div");return t.id=e,document.body.append(t),e}();Us=function(e){var t=Zu(),n=ml(cs,e,Hs(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return function(){var n=e.apply(void 0,arguments),r=function(){throw new Error(pl(15))},o={getState:n.getState,dispatch:function(){return r.apply(void 0,arguments)}},i=t.map((function(e){return e(o)}));return r=yl.apply(void 0,i)(n.dispatch),be(be({},n),{},{dispatch:r})}}}(t)));return t.run(Fs),n}({config:r}),g.render(v.createElement(O,{store:Us},v.createElement(fl,{page:n})),document.getElementById(o))},PAGE:L},Bs=Ws}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e};var r=n(7064);return r.default}()}));
assets/js/main.min.js.LICENSE.txt ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Exposes number format capability
3
+ *
4
+ * @copyright Copyright (c) 2013 Kevin van Zonneveld (http://kvz.io) and Contributors (http://phpjs.org/authors).
5
+ * @license See CREDITS.md
6
+ * @see https://github.com/kvz/phpjs/blob/ffe1356af23a6f2512c84c954dd4e828e92579fa/functions/strings/number_format.js
7
+ */
8
+
9
+ /*
10
+ object-assign
11
+ (c) Sindre Sorhus
12
+ @license MIT
13
+ */
14
+
15
+ /*!
16
+ Copyright (c) 2017 Jed Watson.
17
+ Licensed under the MIT License (MIT), see
18
+ http://jedwatson.github.io/classnames
19
+ */
20
+
21
+ /*! Hammer.JS - v2.0.7 - 2016-04-22
22
+ * http://hammerjs.github.io/
23
+ *
24
+ * Copyright (c) 2016 Jorik Tangelder;
25
+ * Licensed under the MIT license */
26
+
27
+ /**
28
+ * @license
29
+ * Lodash <https://lodash.com/>
30
+ * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
31
+ * Released under MIT license <https://lodash.com/license>
32
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
33
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
34
+ */
35
+
36
+ /** @license React v0.20.2
37
+ * scheduler.production.min.js
38
+ *
39
+ * Copyright (c) Facebook, Inc. and its affiliates.
40
+ *
41
+ * This source code is licensed under the MIT license found in the
42
+ * LICENSE file in the root directory of this source tree.
43
+ */
44
+
45
+ /** @license React v16.13.1
46
+ * react-is.production.min.js
47
+ *
48
+ * Copyright (c) Facebook, Inc. and its affiliates.
49
+ *
50
+ * This source code is licensed under the MIT license found in the
51
+ * LICENSE file in the root directory of this source tree.
52
+ */
53
+
54
+ /** @license React v17.0.2
55
+ * react-dom.production.min.js
56
+ *
57
+ * Copyright (c) Facebook, Inc. and its affiliates.
58
+ *
59
+ * This source code is licensed under the MIT license found in the
60
+ * LICENSE file in the root directory of this source tree.
61
+ */
62
+
63
+ /** @license React v17.0.2
64
+ * react.production.min.js
65
+ *
66
+ * Copyright (c) Facebook, Inc. and its affiliates.
67
+ *
68
+ * This source code is licensed under the MIT license found in the
69
+ * LICENSE file in the root directory of this source tree.
70
+ */
71
+
72
+ /** @license React vundefined
73
+ * use-subscription.production.min.js
74
+ *
75
+ * Copyright (c) Facebook, Inc. and its affiliates.
76
+ *
77
+ * This source code is licensed under the MIT license found in the
78
+ * LICENSE file in the root directory of this source tree.
79
+ */
assets/js/siteground-migrator-admin.js ADDED
@@ -0,0 +1,229 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*global ajaxurl*/
2
+ (function( $ ) {
3
+ $( document ).ready(function() {
4
+ // Update the status every 5 seconds while the transfer is in progress.
5
+ if ( $( '.section--status-1' ).length ) {
6
+ updateStatus();
7
+ }
8
+
9
+ var tokenInput = $("input[name=siteground_migrator_transfer_token]")[0];
10
+ var emailInput = $("input[name=siteground_migrator_email_recipient]")[0];
11
+
12
+ $('input[name=siteground_migrator_email_recipient]'). on( 'click', function (e) {
13
+ e.preventDefault();
14
+ e.stopPropagation();
15
+ } )
16
+
17
+ // Validate migration token on keyup.
18
+ tokenInput.addEventListener('input', validateToken );
19
+ emailInput.addEventListener('input', validateEmail );
20
+
21
+ // Validate and show custom error message when the migration token is not set.
22
+ tokenInput.addEventListener('invalid', function (e) {
23
+ var parentLabel = $(this).parents('#field-label')
24
+
25
+ e.preventDefault();
26
+ if ( this.value.trim() === '' ) {
27
+ parentLabel.addClass( 'field-label--error field-label--error-required' )
28
+ }
29
+ } );
30
+
31
+ emailInput.addEventListener('invalid', function (e) {
32
+ var parentLabel = $(this).parents('#checkbox__label_email')
33
+ e.preventDefault();
34
+
35
+ if ( this.value.trim() === '' ) {
36
+ parentLabel.addClass( 'field-label--error field-label--error-required' )
37
+ }
38
+ } );
39
+
40
+ // Display the dialog.
41
+ $('.btn__cancel__confirmation').on( 'click', function(e) {
42
+ e.preventDefault();
43
+ $('.dialog-wrapper').addClass( 'visible' );
44
+ } )
45
+
46
+ // Cancel the transfer.
47
+ $('.btn__cancel').click( cancelTransfer );
48
+ // Resume the transfer.
49
+ $('.btn__resume').click( resumeTransfer );
50
+
51
+ $( '.sg-wp-migrator-options-form' ).on( 'submit', function( e ) {
52
+ e.preventDefault();
53
+
54
+ resetScreens();
55
+
56
+ $('#field-label').removeClass();
57
+ $( '.dns_servers' ).html();
58
+ $('.new-site-info').addClass( 'hidden' );
59
+
60
+ // Put hte progress bar in progress.
61
+ $( '.sg-wp-migrator-progress' )
62
+ .removeClass( 'completed failed' )
63
+ .addClass( 'inprogress' );
64
+
65
+ // Update the option asynchronous.
66
+ $.post(
67
+ ajaxurl,
68
+ $( this ).serialize()
69
+ ).done( function ( response ) {
70
+ // Update the status.
71
+ updateStatus();
72
+ } )
73
+ } )
74
+ } );
75
+
76
+ function resetScreens() {
77
+ $('.dialog-wrapper').removeClass( 'visible' );
78
+ $('.title--status').text( objectL10n.start_message );
79
+ // Reset the progress bar.
80
+ $('.progress__indicator').css( 'transform', 'translateX(-100%)' );
81
+ $('#section--transfer-status')
82
+ .removeClass()
83
+ .addClass( 'section--status-1' );
84
+ }
85
+
86
+ function cancelTransfer(e) {
87
+ e.preventDefault();
88
+ $.post(
89
+ ajaxurl,
90
+ { 'action' : 'siteground_migrator_transfer_cancelled' }
91
+ ).done( function ( response ) {
92
+ // Reset the token field.
93
+ $("input[name=siteground_migrator_transfer_token]").val('');
94
+ // Show the main screen.
95
+ $('#section--transfer-status').removeClass();
96
+ $('.dialog-wrapper').removeClass( 'visible' );
97
+ } )
98
+ }
99
+
100
+ function resumeTransfer(e) {
101
+ e.preventDefault()
102
+
103
+ resetScreens();
104
+
105
+ // Resume the transfer.
106
+ $.post(
107
+ ajaxurl,
108
+ { 'action' : 'siteground_migrator_transfer_continue' }
109
+ ).done( function ( response ) {
110
+ updateStatus();
111
+ } )
112
+ }
113
+
114
+ function validateToken(e) {
115
+ // Remove any spaces on input.
116
+ this.value = this.value.trim();
117
+
118
+ var parentLabel = $(this).parents('#field-label, #checkbox__label_email')
119
+ regex = /^[\d]{10}-[\w]{16}-[\w]{16}$/;
120
+ value = this.value;
121
+
122
+ parentLabel.removeClass();
123
+
124
+ // Do not show error message when the value is empty.
125
+ if ( value === '' ) {
126
+ // parentLabel.addClass( 'field-label--error field-label--error-required' )
127
+ } else if ( ! value.match( regex ) ) {
128
+ parentLabel.addClass( 'field-label--error field-label--error-pattern' )
129
+ } else {
130
+ parentLabel.addClass( 'field-label--success' );
131
+ }
132
+ }
133
+
134
+ function validateEmail(e) {
135
+ // Remove any spaces on input.
136
+ this.value = this.value.trim();
137
+
138
+ var parentLabel = $(this).parents('#field-label, #checkbox__label_email')
139
+ regex = /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/i;
140
+ value = this.value;
141
+
142
+ parentLabel.removeClass();
143
+
144
+ // Do not show error message when the value is empty.
145
+ if ( value === '' ) {
146
+ // parentLabel.addClass( 'field-label--error field-label--error-required' )
147
+ } else if ( ! value.match( regex ) ) {
148
+ parentLabel.addClass( 'field-label--error field-label--error-pattern' )
149
+ } else {
150
+ parentLabel.addClass( 'field-label--success' );
151
+ }
152
+ }
153
+
154
+ // Update the progress bar every 5 seconds while the transfer is in progress.
155
+ function updateStatus() {
156
+ $.post(
157
+ ajaxurl,
158
+ { action: 'siteground_migrator_get_transfer_status' }
159
+ ).done( function( response ) {
160
+ // Bail if the status is not set.
161
+ if ( typeof response.data.status === 'undefined' ) {
162
+ return;
163
+ }
164
+
165
+ $( '.title--status' ).text( response.data.message );
166
+ $( '.text--description' ).html( response.data.description );
167
+
168
+ // Update the section class.
169
+ $('#section--transfer-status')
170
+ .removeClass()
171
+ .addClass( 'section--status-' + response.data.status );
172
+
173
+ switch ( response.data.status ) {
174
+ case 1 : // In progress, the plugin prepares the data.
175
+ case 2 : // Ready, waiting for remote api to complete the transfer.
176
+ $('.progress__indicator').css( 'transform', 'translateX(-' + response.data.progress + '%)' );
177
+ // Wait 5 seconds, before making new request.
178
+ setTimeout( function() {
179
+ updateStatus();
180
+ }, 1500 );
181
+ break;
182
+
183
+ case 3 :
184
+ case 4 :
185
+ // Show the info box.
186
+ $('.new-site-info').removeClass( 'hidden' );
187
+
188
+ if ( typeof response.data.temp_url !== 'undefined' ) {
189
+ $( '.box--temp-url' ).removeClass( 'hidden' );
190
+ $( '.btn--temp-url' ).attr( 'href', response.data.temp_url );
191
+ }
192
+
193
+ if ( typeof response.data.dns_servers !== 'undefined' ) {
194
+ $( '.box--dns-servers' ).removeClass( 'hidden' );
195
+ $( '.dns_servers' ).html( '' );
196
+
197
+ for (var i = 0; i < response.data.dns_servers.length; i++) {
198
+
199
+ $('.dns_servers')
200
+ .append(
201
+ '<h4 class="title title--density-compact title--level-5 typography typography--align-center typography--weight-light with-color with-color--color-darker">NS' + ( i + 1 ) + ': <a class="link">' + response.data.dns_servers[i] + '</a></h4>'
202
+ )
203
+ }
204
+ }
205
+
206
+ if ( typeof response.data.errors !== 'undefined' ) {
207
+ $( '.box--errors' ).removeClass( 'hidden' )
208
+ // Remove errors from previous transfer.
209
+ $('.table__row:not(.table__row-template)').remove()
210
+
211
+ for (var i = 0; i < response.data.errors.length; i++) {
212
+
213
+ var tableRow = $('.table__row-template').clone();
214
+
215
+ newHtml = $(tableRow).html()
216
+ .replace( '{\$f}', response.data.errors[i].f )
217
+ .replace( '{\$e}', response.data.errors[i].e )
218
+
219
+ $(tableRow).removeClass( 'table__row-template' ).html( newHtml );
220
+
221
+ $( '.table__body_errros' ).append( tableRow )
222
+ }
223
+ }
224
+ }
225
+ } );
226
+
227
+ }
228
+
229
+ })( jQuery );
core/Activator/Activator.php ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SiteGround_Migrator\Activator;
4
+
5
+ use SiteGround_Migrator\Helper\Helper;
6
+ use SiteGround_Migrator\Directory_Service\Directory_Service;
7
+ /**
8
+ * Class managing plugin activation.
9
+ */
10
+ class Activator {
11
+
12
+
13
+ /**
14
+ * Fires on plugin activation.
15
+ *
16
+ * @since 1.0.0
17
+ */
18
+ public function activate() {
19
+ // Check the php version and deactivate the plugin is it's lower that 7.0.
20
+ if ( version_compare( PHP_VERSION, '7.0', '<' ) ) {
21
+ $this->siteground_migrator_compatability_warning();
22
+ $this->siteground_migrator_deactivate_self();
23
+ }
24
+
25
+ if ( is_multisite() && is_network_admin() ) {
26
+ $this->siteground_migrator_multisite_warning();
27
+ $this->siteground_migrator_deactivate_self();
28
+ }
29
+
30
+ // Check the hosting envirnoment.
31
+ self::check_hosting_environment();
32
+ // Set the temp directory.
33
+ self::set_temp_directory();
34
+ // Set the encryption key.
35
+ self::set_encryption_key();
36
+
37
+ $directory_service = new Directory_Service();
38
+
39
+ $directory_service->create_temp_directories();
40
+ }
41
+
42
+ /**
43
+ * Set temp directory.
44
+ *
45
+ * @since 1.0.0
46
+ */
47
+ public static function set_temp_directory() {
48
+ // Try to get the temp dir.
49
+ $temp_dir = get_option( 'siteground_migrator_temp_directory' );
50
+
51
+ // Set the directory is it's empty.
52
+ if ( empty( $temp_dir ) ) {
53
+ update_option( 'siteground_migrator_temp_directory', time() . '-' . sha1( mt_rand() ) );
54
+ }
55
+ }
56
+
57
+ /**
58
+ * Set the encryption key for current installation.
59
+ *
60
+ * @since 1.0.0
61
+ */
62
+ public static function set_encryption_key() {
63
+ // Get the encryption key.
64
+ $encryption_key = get_option( 'siteground_migrator_encryption_key' );
65
+
66
+ // Generate encryption key if it's not set already.
67
+ if ( empty( $encryption_key ) ) {
68
+ update_option( 'siteground_migrator_encryption_key', sha1( uniqid() ) );
69
+ }
70
+ }
71
+
72
+ /**
73
+ * Check the hosting environment.
74
+ *
75
+ * @since 1.0.25
76
+ */
77
+ public static function check_hosting_environment() {
78
+ // Update the option.
79
+ update_option( 'siteground_migrator_is_siteground_env', Helper::is_siteground() );
80
+ }
81
+
82
+ /**
83
+ * Display notice for minimum supported php version.
84
+ *
85
+ * @since 1.0.0
86
+ */
87
+ public function siteground_migrator_compatability_warning() {
88
+ printf(
89
+ __( '<div class="error"><p>“%1$s” requires PHP %2$s (or newer) to function properly. Your site is using PHP %3$s. Please upgrade. The plugin has been automatically deactivated.</p></div>', 'siteground-migrator' ),
90
+ 'SiteGround Migrator',
91
+ '7.0',
92
+ PHP_VERSION
93
+ );
94
+
95
+ // Hide "Plugin activated" message.
96
+ if ( isset( $_GET['activate'] ) ) {
97
+ unset( $_GET['activate'] );
98
+ }
99
+ }
100
+
101
+ /**
102
+ * Display notice if wp is multisite.
103
+ *
104
+ * @since 1.0.1
105
+ */
106
+ public function siteground_migrator_multisite_warning() {
107
+ _e( '<div class="error"><p>This plugin does not support full Multise Network migrations.</p></div>', 'siteground-migrator' );
108
+
109
+ // Hide "Plugin activated" message.
110
+ if ( isset( $_GET['activate'] ) ) {
111
+ unset( $_GET['activate'] );
112
+ }
113
+ }
114
+
115
+ /**
116
+ * Deactivate the plugin if server php version
117
+ * is lower than plugin supported version.
118
+ *
119
+ * @since 1.0.0
120
+ */
121
+ public function siteground_migrator_deactivate_self() {
122
+ deactivate_plugins( plugin_basename( __FILE__ ) );
123
+ }
124
+ }
core/Admin/Admin.php ADDED
@@ -0,0 +1,229 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SiteGround_Migrator\Admin;
4
+
5
+ use SiteGround_Migrator\Field_Service\Settings_Field;
6
+ use SiteGround_i18n\i18n_Service;
7
+ /**
8
+ * Handle all hooks for our custom admin page.
9
+ */
10
+ class Admin {
11
+
12
+ /**
13
+ * The plugin pages ids.
14
+ *
15
+ * @var array
16
+ */
17
+ public $plugin_pages = array(
18
+ 'toplevel_page_siteground-migrator',
19
+ 'toplevel_page_siteground-migrator-network',
20
+ );
21
+
22
+ /**
23
+ * The admin page slug
24
+ */
25
+ const PAGE_SLUG = 'siteground_migrator_settings';
26
+
27
+ /**
28
+ * Print the admin top menu styles.
29
+ *
30
+ * @since 1.1.0
31
+ */
32
+ public function admin_print_styles() {
33
+ // Bail if we are on different page.
34
+ if ( ! $this->is_plugin_page() ) {
35
+ return;
36
+ }
37
+
38
+ $current_screen = \get_current_screen();
39
+
40
+ // Remove notices.
41
+ echo '<style>.notice { display:none!important; } </style>';
42
+
43
+ // Get the current screen id.
44
+ $id = strtoupper(
45
+ str_replace(
46
+ '-',
47
+ '_',
48
+ $current_screen->id
49
+ )
50
+ );
51
+
52
+ // Check if it's the main page for the plugin, if so, rename the id to Home.
53
+ if ( 'TOPLEVEL_PAGE_SITEGROUND_MIGRATOR' === $id ) {
54
+ $id = 'Home';
55
+ }
56
+
57
+ $i18n_service = new i18n_Service( 'siteground-migrator' );
58
+
59
+ // Collect data regarding the current plugin set up, urls, locales, etc.
60
+ $data = array(
61
+ 'rest_base' => untrailingslashit( get_rest_url( null, '/' ) ),
62
+ 'home_url' => get_site_url(),
63
+ 'localeSlug' => join( '-', explode( '_', \get_user_locale() ) ),
64
+ 'locale' => $i18n_service->get_i18n_data_json(),
65
+ 'wp_nonce' => wp_create_nonce( 'wp_rest' ),
66
+ );
67
+
68
+ // Pass the serialized data and page_id.
69
+ echo '<script>window.addEventListener("load", function(){ SGMigrator.init({ domElementId: "root", page: SGMigrator.PAGE.' . $id . ',config:' . json_encode( $data ) . '})});</script>';
70
+ }
71
+
72
+ /**
73
+ * Register the stylesheets for the admin area.
74
+ *
75
+ * @since 1.1.0
76
+ */
77
+ public function enqueue_styles() {
78
+ echo '<style>.toplevel_page_siteground-migrator.menu-top .wp-menu-image img { width:20px; } </style>';
79
+
80
+ // Bail if this is not our settgins page.
81
+ if ( false === $this->is_plugin_page() ) {
82
+ return;
83
+ }
84
+
85
+ wp_enqueue_style(
86
+ \SiteGround_Migrator\PLUGIN_SLUG, // The plugin name.
87
+ \SiteGround_Migrator\URL . '/assets/css/siteground-migrator-admin.css',
88
+ array(),
89
+ \SiteGround_Migrator\VERSION, // The plugin version.
90
+ 'all'
91
+ );
92
+
93
+ wp_enqueue_style(
94
+ 'siteground-migrator-admin',
95
+ \SiteGround_Migrator\URL . '/assets/css/main.min.css',
96
+ array(),
97
+ \SiteGround_Migrator\VERSION,
98
+ 'all'
99
+ );
100
+
101
+ wp_style_add_data( \SiteGround_Migrator\PLUGIN_SLUG, 'rtl', 'replace' );
102
+
103
+ }
104
+
105
+ /**
106
+ * Register the JavaScript for the admin area.
107
+ *
108
+ * @since 1.1.0
109
+ */
110
+ public function enqueue_scripts() {
111
+ // Bail if this is not our settgins page.
112
+ if ( false === $this->is_plugin_page() ) {
113
+ return;
114
+ }
115
+
116
+ // Enqueue the siteground-migrator script.
117
+ wp_enqueue_script(
118
+ 'siteground-migrator-admin',
119
+ \SiteGround_Migrator\URL . '/assets/js/main.min.js',
120
+ array( 'jquery' ), // Dependencies.
121
+ \SiteGround_Migrator\VERSION,
122
+ true
123
+ );
124
+ }
125
+
126
+ /**
127
+ * Title of the settings page.
128
+ *
129
+ * @since 1.1.0
130
+ *
131
+ * @return string The title of the settings page.
132
+ */
133
+ public static function get_page_title() {
134
+ return __( 'SiteGround Migrator', 'siteground-migrator' );
135
+ }
136
+
137
+ /**
138
+ * Add the plugin options page.
139
+ *
140
+ * @since 1.1.0
141
+ */
142
+ public function add_menu_page() {
143
+ add_menu_page(
144
+ self::get_page_title(), // Page title.
145
+ 'SG Migrator', // Menu item title.
146
+ 'manage_options', // Capability.
147
+ \SiteGround_Migrator\PLUGIN_SLUG, // Page slug.
148
+ array( $this, 'display_settings_page' ), // Output function.
149
+ \SiteGround_Migrator\URL . '/assets/img/icon.svg'
150
+ );
151
+
152
+ // register settings section.
153
+ add_settings_section(
154
+ self::PAGE_SLUG,
155
+ __( 'Website Migration Settings', 'siteground-migrator' ),
156
+ '',
157
+ self::PAGE_SLUG
158
+ );
159
+ }
160
+
161
+ /**
162
+ * Defines the setting fields.
163
+ *
164
+ * @since 1.1.0
165
+ *
166
+ * @return array Array containing all setting fields.
167
+ */
168
+ private function setting_fields() {
169
+ return array(
170
+ 'siteground_migrator_transfer_token' => array(
171
+ 'type' => 'text',
172
+ 'title' => '',
173
+ 'args' => array(
174
+ 'pattern' => '[\d]{10}-[\w]{16}-[\w]{16}',
175
+ 'class_names' => 'with-padding field',
176
+ 'required' => true,
177
+ ),
178
+ ),
179
+ );
180
+ }
181
+
182
+ /**
183
+ * Register the settings.
184
+ *
185
+ * @since 1.1.0
186
+ */
187
+ public function register_settings() {
188
+ foreach ( $this->setting_fields() as $id => $field ) {
189
+ Settings_Field::factory(
190
+ $field['type'], // The field type.
191
+ $id, // Field id.
192
+ $field['title'], // The field title.
193
+ self::PAGE_SLUG, // Section name.
194
+ $field['args']
195
+ );
196
+ }
197
+ }
198
+
199
+ /**
200
+ * Output the settings page content.
201
+ *
202
+ * @since 1.1.0
203
+ */
204
+ public function display_settings_page() {
205
+ echo '<div id="root"></div>';
206
+ }
207
+
208
+ /**
209
+ * Check if this is the SiteGround Migrator page.
210
+ *
211
+ * @since 1.1.0
212
+ *
213
+ * @return bool True/False
214
+ */
215
+ public function is_plugin_page() {
216
+ // Bail if the page is not an admin screen.
217
+ if ( ! is_admin() ) {
218
+ return false;
219
+ }
220
+
221
+ $current_screen = \get_current_screen();
222
+
223
+ if ( in_array( $current_screen->id, $this->plugin_pages ) ) {
224
+ return true;
225
+ }
226
+
227
+ return false;
228
+ }
229
+ }
core/Api_Service/Api_Service.php ADDED
@@ -0,0 +1,331 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SiteGround_Migrator\Api_Service;
4
+
5
+ use SiteGround_Migrator\Helper\Log_Service_Trait;
6
+ use SiteGround_Migrator\Helper\Helper;
7
+ use SiteGround_Migrator\Database_Service\Database_Service;
8
+ use SiteGround_Migrator\Directory_Service\Directory_Service;
9
+ /**
10
+ * Handle all request to SiteGround API.
11
+ *
12
+ * This class defines all code necessary to make requests to SiteGround API.
13
+ * It also provides information about the current installtion and authenticaion.
14
+ */
15
+ class Api_Service {
16
+ use Log_Service_Trait;
17
+
18
+ /**
19
+ * The Siteground API endpoint.
20
+ *
21
+ * @var 1.0.0
22
+ */
23
+ const API_URL = 'https://wp-transfer-api.sgvps.net/wp-api-v0';
24
+
25
+ /**
26
+ * The max allowed difference between the current
27
+ * timestamp and when the request was made.
28
+ *
29
+ * @var 1.0.0
30
+ */
31
+ const MAX_TIME_DIFF = 172800;
32
+
33
+ /**
34
+ * Provide information about the current WordPress installation.
35
+ * The information includes the following:
36
+ * - Server IP address
37
+ * - PHP Version
38
+ * - WordPress version
39
+ * - site_url
40
+ * - home_url
41
+ * - database size
42
+ * - the size of wp-content directory
43
+ * - files treemap
44
+ *
45
+ * @since 1.0.0
46
+ *
47
+ * @return array Array containg the information above.
48
+ */
49
+ public function get_installation_info() {
50
+ global $wp_version;
51
+ global $wpdb;
52
+
53
+ $username = '';
54
+
55
+ if (
56
+ function_exists( 'posix_getpwuid' ) &&
57
+ function_exists( 'posix_geteuid' )
58
+ ) {
59
+ $username = posix_getpwuid( posix_geteuid() )['name'];
60
+ } else {
61
+ $username = getenv( 'USERNAME' );
62
+ }
63
+
64
+ if ( empty( $username ) ) {
65
+ $username = 'UNKNOWN';
66
+ }
67
+
68
+ $uploads_dir = wp_upload_dir();
69
+
70
+ return array(
71
+ 'ip_address' => $this->get_ip_address(),
72
+ 'php_version' => phpversion(),
73
+ 'wordpress_version' => $wp_version,
74
+ 'site_url' => is_multisite() ? network_site_url() : get_site_url(),
75
+ 'home_url' => is_multisite() ? network_home_url() : get_home_url(),
76
+ 'database_size' => Database_Service::get_database_size(),
77
+ 'wp_size' => Directory_Service::get_wordpress_size(),
78
+ 'key' => get_option( 'siteground_migrator_encryption_key' ),
79
+ 'base_ident' => get_option( 'siteground_migrator_temp_directory' ),
80
+ 'table_prefix' => $wpdb->prefix,
81
+ 'wp_content_dir' => WP_CONTENT_DIR,
82
+ 'wp_uploads_dir' => str_replace( ABSPATH, '', $uploads_dir['basedir'] ),
83
+ 'wp_content_folder' => str_replace( ABSPATH, '', WP_CONTENT_DIR ),
84
+ 'src_hostname' => gethostname(),
85
+ 'sg_host' => Helper::is_siteground(),
86
+ 'src_user' => $username,
87
+ 'src_uname' => php_uname(),
88
+ 'src_os' => PHP_OS,
89
+ );
90
+ }
91
+
92
+ /**
93
+ * Retrieve the server ip address.
94
+ *
95
+ * @since 1.0.0
96
+ *
97
+ * @return string $ip_address The server IP address.
98
+ */
99
+ private function get_ip_address() {
100
+ if ( ! empty( $_SERVER['HTTP_CLIENT_IP'] ) ) {
101
+ $ip_address = $_SERVER['HTTP_CLIENT_IP']; // WPCS: sanitization ok.
102
+ } elseif ( ! empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
103
+ $ip_address = $_SERVER['HTTP_X_FORWARDED_FOR']; // WPCS: sanitization ok.
104
+ } elseif ( ! empty( $_SERVER['HTTP_X_FORWARDED'] ) ) {
105
+ $ip_address = $_SERVER['HTTP_X_FORWARDED']; // WPCS: sanitization ok.
106
+ } elseif ( ! empty( $_SERVER['HTTP_FORWARDED_FOR'] ) ) {
107
+ $ip_address = $_SERVER['HTTP_FORWARDED_FOR']; // WPCS: sanitization ok.
108
+ } elseif ( ! empty( $_SERVER['HTTP_FORWARDED'] ) ) {
109
+ $ip_address = $_SERVER['HTTP_FORWARDED']; // WPCS: sanitization ok.
110
+ } elseif ( ! empty( $_SERVER['REMOTE_ADDR'] ) ) {
111
+ $ip_address = $_SERVER['REMOTE_ADDR']; // WPCS: sanitization ok.
112
+ } else {
113
+ $ip_address = 'UNKNOWN';
114
+ }
115
+
116
+ return sanitize_text_field( wp_unslash( $ip_address ) );
117
+ }
118
+
119
+ /**
120
+ * Sort all request params and build the query string.
121
+ *
122
+ * @since 1.0.0
123
+ *
124
+ * @param string $data json encoded representation of the data.
125
+ *
126
+ * @return string $api_query Query string containing all data params.
127
+ */
128
+ private function prepare_verify_request( $data ) {
129
+ $api_query = '';
130
+ // Sort the data keys.
131
+ ksort( $data );
132
+
133
+ // Build the query.
134
+ foreach ( $data as $key => $value ) {
135
+ $api_query .= "$key=$value|";
136
+ }
137
+
138
+ // Finally return the query.
139
+ return $api_query;
140
+ }
141
+
142
+ /**
143
+ * Make request to SG endpoint.
144
+ *
145
+ * @since 1.0.0
146
+ *
147
+ * @param string $api_endpoint API ednpoint.
148
+ * @param array $data Request body.
149
+ *
150
+ * @return array Array containing the response code and response message.
151
+ */
152
+ public function do_request( $api_endpoint, $data = array() ) {
153
+ global $wp_version;
154
+
155
+ $transfer_id = get_option( 'siteground_migrator_transfer_id' );
156
+ $transfer_psk = get_option( 'siteground_migrator_transfer_psk' );
157
+
158
+ // Add the endpoint command to data.
159
+ $data['cmd'] = $api_endpoint . $transfer_id;
160
+
161
+ // Create the authentication hash.
162
+ $auth = sha1( $this->prepare_verify_request( $data ) . $transfer_psk );
163
+
164
+ // Prepare the json encoded data for the request.
165
+ $json_data = json_encode(
166
+ array(
167
+ 'data' => $data,
168
+ )
169
+ );
170
+
171
+ // Send request to SG api.
172
+ $response = wp_remote_post(
173
+ // Add the auth parameter to endpoint.
174
+ add_query_arg( 'auth', $auth, self::API_URL . $api_endpoint . $transfer_id ),
175
+ array(
176
+ 'method' => 'POST',
177
+ 'headers' => array(
178
+ // Get the content length of encoded data.
179
+ 'Content-Length' => strlen( $json_data ),
180
+ // Add the content type.
181
+ 'Content-type' => 'application/json',
182
+ ),
183
+ 'body' => $json_data,
184
+ 'timeout' => 30,
185
+ 'sslverify' => ( 1 === version_compare( 5.3, $wp_version ) ) ? false : true,
186
+ )
187
+ );
188
+
189
+ // Return the response containing the status code and the response message.
190
+ return $this->prepare_response_message( $response );
191
+ }
192
+
193
+ /**
194
+ * Prepare response message using the response from the api.
195
+ *
196
+ * @since 1.0.0
197
+ *
198
+ * @param array $response The response from the server.
199
+ *
200
+ * @return array Array containing the error message and status code.
201
+ */
202
+ private function prepare_response_message( $response ) {
203
+ // Check for wp errors.
204
+ if ( is_wp_error( $response ) ) {
205
+ return array(
206
+ // The status code.
207
+ 'status_code' => 404,
208
+ // The response message.
209
+ 'message' => $response->get_error_message(),
210
+ );
211
+ }
212
+
213
+ // Get the status code.
214
+ $status_code = wp_remote_retrieve_response_code( $response );
215
+
216
+ // Retrieve the response body.
217
+ $response_body = json_decode( wp_remote_retrieve_body( $response ) );
218
+
219
+ // Get the responce body from the old Migrator API transfer_info
220
+ $transfer_info = ! empty( $response_body->transfer_info ) ? $response_body->transfer_info : '';
221
+
222
+ // Get the responce body from new Migrator API data->transfer_info array
223
+ if ( isset( $response_body->data->transfer_info ) ) {
224
+ $transfer_info = $response_body->data->transfer_info;
225
+ }
226
+
227
+ // Return the response.
228
+ return array(
229
+ // The status code.
230
+ 'status_code' => (int) $response_body->status,
231
+ // The response message.
232
+ 'message' => $response_body->message,
233
+ // Transfer info if there is such.
234
+ 'transfer_info' => $transfer_info,
235
+ );
236
+ }
237
+
238
+ /**
239
+ * Parse the transfer token to `transfer_id` & `transfer_psk`
240
+ *
241
+ * @since 1.0.0
242
+ */
243
+ public function parse_transfer_token() {
244
+ // Get the transfer token.
245
+ $transfer_token = get_option( 'siteground_migrator_transfer_token' );
246
+
247
+ // Parse the token and retrieve the `transfer_id` and `transfer_psk`.
248
+ $parse_result = preg_match( '~(\d{10}-\w{16})-(\w{16})~', $transfer_token, $matches );
249
+
250
+ // Bail if there are no matches.
251
+ if ( empty( $parse_result ) ) {
252
+ $this->log_error( 'Error parsing transfer token. Please, make sure it\'s valid!' );
253
+ return false;
254
+ }
255
+
256
+ // Set transfer id.
257
+ if ( ! empty( $matches[1] ) ) {
258
+ $this->log_info( 'Updating transfer id.' );
259
+ update_option( 'siteground_migrator_transfer_id', $matches[1] );
260
+ }
261
+
262
+ // Set transfer psk.
263
+ if ( ! empty( $matches[2] ) ) {
264
+ $this->log_info( 'Updating transfer psk.' );
265
+ update_option( 'siteground_migrator_transfer_psk', $matches[2] );
266
+ }
267
+
268
+ return true;
269
+ }
270
+
271
+ /**
272
+ * Verify the the request is made from SiteGroud
273
+ * server and has all required params.
274
+ *
275
+ * @param string $key Authentication key.
276
+ *
277
+ * @return bool True on success.
278
+ *
279
+ * @since 1.0.0
280
+ */
281
+ public function authenticate( $key ) {
282
+ // Bail if any of required parameters is missing.
283
+ if (
284
+ empty( $_GET['transfer_id'] ) ||
285
+ empty( $_GET['ts'] ) ||
286
+ empty( $_GET['auth'] )
287
+ ) {
288
+ $this->log_die( '`transfer_id`, `ts` & `auth` parameters are required.' );
289
+ }
290
+
291
+ // Get the time diff between current timestamp and `ts` param.
292
+ $time_diff = time() - sanitize_text_field( wp_unslash( $_GET['ts'] ) );
293
+
294
+ // Bail if the transfer timestamp is not valid.
295
+ if (
296
+ ! is_int( $time_diff ) ||
297
+ $time_diff < -60 ||
298
+ $time_diff > self::MAX_TIME_DIFF
299
+ ) {
300
+ $this->log_die( 'Transfer ts is invalid.' );
301
+ }
302
+
303
+ // Get `transfer_id`.
304
+ $transfer_id = get_option( 'siteground_migrator_transfer_id' );
305
+
306
+ // Bail if the transfer id is not valid.
307
+ if ( $transfer_id !== $_GET['transfer_id'] ) {
308
+ $this->log_die( 'Transfer id is invalid.' );
309
+ }
310
+
311
+ // Generate authentication token.
312
+ $auth = sha1( $transfer_id . '-' . $key . '-' . get_option( 'siteground_migrator_transfer_psk' ) . '-' . $_GET['ts'] ); // input var ok; sanitization ok.
313
+
314
+ // Bail if the auth param doens't exists or if the auth is not valid.
315
+ if ( $auth !== $_GET['auth'] ) {
316
+ $this->log_die( 'Authentication doesn\'t match.' );
317
+ }
318
+
319
+ return true;
320
+ }
321
+
322
+ /**
323
+ * Send json success which means the plugin is installed.
324
+ *
325
+ * @since 1.0.0.
326
+ */
327
+ public function is_plugin_installed() {
328
+ wp_send_json_success( array( 'siteground_migrator' => true ) );
329
+ }
330
+
331
+ }
core/Background_Process/Background_Process.php ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SiteGround_Migrator\Background_Process;
4
+
5
+ use SiteGround_Migrator\Helper\Log_Service_Trait;
6
+ use SiteGround_Migrator\Transfer_Service\Transfer_Service;
7
+ use SiteGround_Migrator\Background_Process\Siteground_WP_Background_Process;
8
+ /**
9
+ * Provides functionallity to fire off non-blocking asynchronous requests as a background processes.
10
+ *
11
+ */
12
+ class Background_Process extends Siteground_WP_Background_Process {
13
+ use Log_Service_Trait;
14
+
15
+ /**
16
+ * Action.
17
+ *
18
+ * @var string
19
+ *
20
+ * @since 1.0.0
21
+ */
22
+ protected $action = 'background_process';
23
+
24
+ /**
25
+ * Task
26
+ *
27
+ * @param array $item Array containing the class and the
28
+ * method to call in background process.
29
+ *
30
+ * @return mixed False on process success.
31
+ * The current item on failure, which will restart the process.
32
+ */
33
+ protected function task( $item ) {
34
+ $status = get_option( 'siteground_migrator_transfer_status' );
35
+
36
+ // Cancel the transfer if any of the previous processes has failed.
37
+ if ( 0 === $status['status'] ) {
38
+ Transfer_Service::get_instance()->transfer_cancelled( false );
39
+ return false;
40
+ }
41
+
42
+ $attempts = intval( $item['attempts'] );
43
+
44
+ for ( $i = 0; $i <= $attempts; $i++ ) {
45
+ // Call the class method.
46
+ $result = call_user_func( array( $item['class'], $item['method'] ) );
47
+
48
+ // @todo: fina a way to improve this ugly condition.
49
+ if (
50
+ 1 === $result['status'] ||
51
+ 2 === $result['status'] ||
52
+ $i === $attempts ||
53
+ isset( $result['skip_retrying'] )
54
+ ) {
55
+ Transfer_Service::update_status(
56
+ $result['title'],
57
+ $result['status'],
58
+ isset( $result['description'] ) ? $result['description'] : ''
59
+ );
60
+
61
+ Transfer_Service::get_instance()->update_transfer_progress( 6 );
62
+
63
+ return false;
64
+ }
65
+
66
+ $this->log_error( sprintf( 'Process failed : %s. Retrying...', $item['method'] ) );
67
+ }
68
+
69
+ // Remove the process from queue.
70
+ return false;
71
+ }
72
+
73
+ /**
74
+ * Complete.
75
+ *
76
+ * @since 1.0.0
77
+ */
78
+ protected function complete() {
79
+ parent::complete();
80
+ }
81
+ }
core/Background_Process/Siteground_WP_Background_Process.php ADDED
@@ -0,0 +1,565 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SiteGround_Migrator\Background_Process;
4
+
5
+ use SiteGround_Migrator\Background_Process\WP_Async_Request;
6
+ /**
7
+ * The class name of this file has been changed from WP_Background_Process to Siteground_WP_Background_Process
8
+ * because it has several custom methods. In som cases there are other plugins that are also using this class, which result in fatal errors.
9
+ */
10
+
11
+ /**
12
+ * Siteground WP Background Process
13
+ *
14
+ * @package WP-Background-Processing
15
+ */
16
+
17
+ /**
18
+ * Abstract Siteground_WP_Background_Process class.
19
+ *
20
+ * @abstract
21
+ * @extends WP_Async_Request
22
+ */
23
+ abstract class Siteground_WP_Background_Process extends WP_Async_Request {
24
+
25
+ /**
26
+ * Action
27
+ *
28
+ * (default value: 'background_process')
29
+ *
30
+ * @var string
31
+ * @access protected
32
+ */
33
+ protected $action = 'background_process';
34
+
35
+ /**
36
+ * Start time of current process.
37
+ *
38
+ * (default value: 0)
39
+ *
40
+ * @var int
41
+ * @access protected
42
+ */
43
+ protected $start_time = 0;
44
+
45
+ /**
46
+ * Cron_hook_identifier
47
+ *
48
+ * @var mixed
49
+ * @access protected
50
+ */
51
+ protected $cron_hook_identifier;
52
+
53
+ /**
54
+ * Cron_interval_identifier
55
+ *
56
+ * @var mixed
57
+ * @access protected
58
+ */
59
+ protected $cron_interval_identifier;
60
+
61
+ protected $pid;
62
+
63
+ /**
64
+ * Initiate new background process
65
+ */
66
+ public function __construct() {
67
+ parent::__construct();
68
+
69
+ $this->cron_hook_identifier = $this->identifier . '_cron';
70
+ $this->cron_interval_identifier = $this->identifier . '_cron_interval';
71
+
72
+ add_action( $this->cron_hook_identifier, array( $this, 'handle_cron_healthcheck' ) );
73
+ add_filter( 'cron_schedules', array( $this, 'schedule_cron_healthcheck' ) );
74
+ }
75
+
76
+ /**
77
+ * Dispatch
78
+ *
79
+ * @access public
80
+ * @return void
81
+ */
82
+ public function dispatch() {
83
+ // Schedule the cron healthcheck.
84
+ $this->schedule_event();
85
+
86
+ // Perform remote post.
87
+ return parent::dispatch();
88
+ }
89
+
90
+ /**
91
+ * Push to queue
92
+ *
93
+ * @param mixed $data Data.
94
+ *
95
+ * @return $this
96
+ */
97
+ public function push_to_queue( $data ) {
98
+ $this->data[] = $data;
99
+
100
+ return $this;
101
+ }
102
+
103
+ /**
104
+ * Save queue
105
+ *
106
+ * @return $this
107
+ */
108
+ public function save() {
109
+ $key = $this->generate_key();
110
+
111
+ if ( ! empty( $this->data ) ) {
112
+ update_site_option( $key, $this->data );
113
+ }
114
+
115
+ return $this;
116
+ }
117
+
118
+ /**
119
+ * Update queue
120
+ *
121
+ * @param string $key Key.
122
+ * @param array $data Data.
123
+ *
124
+ * @return $this
125
+ */
126
+ public function update( $key, $data ) {
127
+ if ( ! empty( $data ) ) {
128
+ update_site_option( $key, $data );
129
+ }
130
+
131
+ return $this;
132
+ }
133
+
134
+ /**
135
+ * Delete queue
136
+ *
137
+ * @param string $key Key.
138
+ *
139
+ * @return $this
140
+ */
141
+ public function delete( $key ) {
142
+ delete_site_option( $key );
143
+
144
+ return $this;
145
+ }
146
+
147
+ /**
148
+ * Generate key
149
+ *
150
+ * Generates a unique key based on microtime. Queue items are
151
+ * given a unique key so that they can be merged upon save.
152
+ *
153
+ * @param int $length Length.
154
+ *
155
+ * @return string
156
+ */
157
+ protected function generate_key( $length = 64 ) {
158
+ $unique = md5( microtime() . rand() );
159
+ $prepend = $this->identifier . '_batch_';
160
+
161
+ return substr( $prepend . $unique, 0, $length );
162
+ }
163
+
164
+ /**
165
+ * Maybe process queue
166
+ *
167
+ * Checks whether data exists within the queue and that
168
+ * the process is not already running.
169
+ */
170
+ public function maybe_handle() {
171
+ // Don't lock up other requests while processing
172
+ session_write_close();
173
+
174
+ if ( $this->is_process_running() ) {
175
+ // Background process already running.
176
+ wp_die();
177
+ }
178
+
179
+ if ( $this->is_queue_empty() ) {
180
+ // No data to process.
181
+ wp_die();
182
+ }
183
+
184
+ check_ajax_referer( $this->identifier, 'nonce' );
185
+
186
+ $this->handle();
187
+
188
+ wp_die();
189
+ }
190
+
191
+ /**
192
+ * Is queue empty
193
+ *
194
+ * @return bool
195
+ */
196
+ protected function is_queue_empty() {
197
+ global $wpdb;
198
+
199
+ $table = $wpdb->options;
200
+ $column = 'option_name';
201
+
202
+ if ( is_multisite() ) {
203
+ $table = $wpdb->sitemeta;
204
+ $column = 'meta_key';
205
+ }
206
+
207
+ $key = $wpdb->esc_like( $this->identifier . '_batch_' ) . '%';
208
+
209
+ $count = $wpdb->get_var(
210
+ $wpdb->prepare(
211
+ "
212
+ SELECT COUNT(*)
213
+ FROM {$table}
214
+ WHERE {$column} LIKE %s
215
+ ", $key
216
+ )
217
+ );
218
+
219
+ return ( $count > 0 ) ? false : true;
220
+ }
221
+
222
+ /**
223
+ * Is process running
224
+ *
225
+ * Check whether the current process is already running
226
+ * in a background process.
227
+ */
228
+ protected function is_process_running() {
229
+ if ( get_site_transient( $this->identifier . '_process_lock' ) ) {
230
+ // Process already running.
231
+ return true;
232
+ }
233
+
234
+ return false;
235
+ }
236
+
237
+ /**
238
+ * Lock process
239
+ *
240
+ * Lock the process so that multiple instances can't run simultaneously.
241
+ * Override if applicable, but the duration should be greater than that
242
+ * defined in the time_exceeded() method.
243
+ */
244
+ protected function lock_process() {
245
+ $this->start_time = time(); // Set start time of current process.
246
+
247
+ $lock_duration = ( property_exists( $this, 'queue_lock_time' ) ) ? $this->queue_lock_time : 60; // 1 minute
248
+ $lock_duration = apply_filters( $this->identifier . '_queue_lock_time', $lock_duration );
249
+
250
+ set_site_transient( $this->identifier . '_process_lock', microtime(), $lock_duration );
251
+ }
252
+
253
+ /**
254
+ * Unlock process
255
+ *
256
+ * Unlock the process so that other instances can spawn.
257
+ *
258
+ * @return $this
259
+ */
260
+ protected function unlock_process() {
261
+ delete_site_transient( $this->identifier . '_process_lock' );
262
+
263
+ return $this;
264
+ }
265
+
266
+ /**
267
+ * Get batch
268
+ *
269
+ * @return stdClass Return the first batch from the queue
270
+ */
271
+ protected function get_batch() {
272
+ global $wpdb;
273
+
274
+ $table = $wpdb->options;
275
+ $column = 'option_name';
276
+ $key_column = 'option_id';
277
+ $value_column = 'option_value';
278
+
279
+ if ( is_multisite() ) {
280
+ $table = $wpdb->sitemeta;
281
+ $column = 'meta_key';
282
+ $key_column = 'meta_id';
283
+ $value_column = 'meta_value';
284
+ }
285
+
286
+ $key = $wpdb->esc_like( $this->identifier . '_batch_' ) . '%';
287
+
288
+ $query = $wpdb->get_row(
289
+ $wpdb->prepare(
290
+ "
291
+ SELECT *
292
+ FROM {$table}
293
+ WHERE {$column} LIKE %s
294
+ ORDER BY {$key_column} ASC
295
+ LIMIT 1
296
+ ", $key
297
+ )
298
+ );
299
+
300
+ $batch = new \stdClass();
301
+ $batch->key = $query->$column;
302
+ $batch->data = maybe_unserialize( $query->$value_column );
303
+
304
+ return $batch;
305
+ }
306
+
307
+ /**
308
+ * Handle
309
+ *
310
+ * Pass each queue item to the task handler, while remaining
311
+ * within server memory and time limit constraints.
312
+ */
313
+ protected function handle() {
314
+ $this->set_pid( getmypid() );
315
+ $this->lock_process();
316
+ do {
317
+ $batch = $this->get_batch();
318
+
319
+ foreach ( $batch->data as $key => $value ) {
320
+ $task = $this->task( $value );
321
+
322
+ if ( false !== $task ) {
323
+ $batch->data[ $key ] = $task;
324
+ } else {
325
+ unset( $batch->data[ $key ] );
326
+ }
327
+
328
+ if ( $this->time_exceeded() || $this->memory_exceeded() ) {
329
+ // Batch limits reached.
330
+ break;
331
+ }
332
+ }
333
+
334
+ // Update or delete current batch.
335
+ if ( ! empty( $batch->data ) ) {
336
+ $this->update( $batch->key, $batch->data );
337
+ } else {
338
+ $this->delete( $batch->key );
339
+ }
340
+ } while ( ! $this->time_exceeded() && ! $this->memory_exceeded() && ! $this->is_queue_empty() );
341
+
342
+ $this->unlock_process();
343
+
344
+ // Start next batch or complete process.
345
+ if ( ! $this->is_queue_empty() ) {
346
+ $this->dispatch();
347
+ } else {
348
+ $this->complete();
349
+ }
350
+
351
+ wp_die();
352
+ }
353
+
354
+ /**
355
+ * Memory exceeded
356
+ *
357
+ * Ensures the batch process never exceeds 90%
358
+ * of the maximum WordPress memory.
359
+ *
360
+ * @return bool
361
+ */
362
+ protected function memory_exceeded() {
363
+ $memory_limit = $this->get_memory_limit() * 0.9; // 90% of max memory
364
+ $current_memory = memory_get_usage( true );
365
+ $return = false;
366
+
367
+ if ( $current_memory >= $memory_limit ) {
368
+ $return = true;
369
+ }
370
+
371
+ return apply_filters( $this->identifier . '_memory_exceeded', $return );
372
+ }
373
+
374
+ /**
375
+ * Get memory limit
376
+ *
377
+ * @return int
378
+ */
379
+ protected function get_memory_limit() {
380
+ if ( function_exists( 'ini_get' ) ) {
381
+ $memory_limit = ini_get( 'memory_limit' );
382
+ } else {
383
+ // Sensible default.
384
+ $memory_limit = '128M';
385
+ }
386
+
387
+ if ( ! $memory_limit || -1 === intval( $memory_limit ) ) {
388
+ // Unlimited, set to 32GB.
389
+ $memory_limit = '32000M';
390
+ }
391
+
392
+ return intval( $memory_limit ) * 1024 * 1024;
393
+ }
394
+
395
+ /**
396
+ * Time exceeded.
397
+ *
398
+ * Ensures the batch never exceeds a sensible time limit.
399
+ * A timeout limit of 30s is common on shared hosting.
400
+ *
401
+ * @return bool
402
+ */
403
+ protected function time_exceeded() {
404
+ $finish = $this->start_time + apply_filters( $this->identifier . '_default_time_limit', 20 ); // 20 seconds
405
+ $return = false;
406
+
407
+ if ( time() >= $finish ) {
408
+ $return = true;
409
+ }
410
+
411
+ return apply_filters( $this->identifier . '_time_exceeded', $return );
412
+ }
413
+
414
+ /**
415
+ * Complete.
416
+ *
417
+ * Override if applicable, but ensure that the below actions are
418
+ * performed, or, call parent::complete().
419
+ */
420
+ protected function complete() {
421
+ // Unschedule the cron healthcheck.
422
+ $this->clear_scheduled_event();
423
+ }
424
+
425
+ /**
426
+ * Schedule cron healthcheck
427
+ *
428
+ * @access public
429
+ * @param mixed $schedules Schedules.
430
+ * @return mixed
431
+ */
432
+ public function schedule_cron_healthcheck( $schedules ) {
433
+ $interval = apply_filters( $this->identifier . '_cron_interval', 1 );
434
+
435
+ if ( property_exists( $this, 'cron_interval' ) ) {
436
+ $interval = apply_filters( $this->identifier . '_cron_interval', $this->cron_interval );
437
+ }
438
+
439
+ // Adds every 5 minutes to the existing schedules.
440
+ $schedules[ $this->identifier . '_cron_interval' ] = array(
441
+ 'interval' => MINUTE_IN_SECONDS * $interval,
442
+ 'display' => sprintf( __( 'Every %d Minutes' ), $interval ),
443
+ );
444
+
445
+ return $schedules;
446
+ }
447
+
448
+ /**
449
+ * Handle cron healthcheck
450
+ *
451
+ * Restart the background process if not already running
452
+ * and data exists in the queue.
453
+ */
454
+ public function handle_cron_healthcheck() {
455
+ if ( $this->is_process_running() ) {
456
+ // Background process already running.
457
+ exit;
458
+ }
459
+
460
+ if ( $this->is_queue_empty() ) {
461
+ // No data to process.
462
+ $this->clear_scheduled_event();
463
+ exit;
464
+ }
465
+
466
+ $this->handle();
467
+
468
+ exit;
469
+ }
470
+
471
+ /**
472
+ * Schedule event
473
+ */
474
+ protected function schedule_event() {
475
+ if ( ! wp_next_scheduled( $this->cron_hook_identifier ) ) {
476
+ wp_schedule_event( time(), $this->cron_interval_identifier, $this->cron_hook_identifier );
477
+ }
478
+ }
479
+
480
+ /**
481
+ * Clear scheduled event
482
+ */
483
+ protected function clear_scheduled_event() {
484
+ $timestamp = wp_next_scheduled( $this->cron_hook_identifier );
485
+
486
+ if ( $timestamp ) {
487
+ wp_unschedule_event( $timestamp, $this->cron_hook_identifier );
488
+ }
489
+ }
490
+
491
+ /**
492
+ * Cancel Process
493
+ *
494
+ * Stop processing queue items, clear cronjob and delete batch.
495
+ */
496
+ public function cancel_process() {
497
+ if ( ! $this->is_queue_empty() ) {
498
+ $batch = $this->get_batch();
499
+
500
+ $this->delete( $batch->key );
501
+
502
+ wp_clear_scheduled_hook( $this->cron_hook_identifier );
503
+ }
504
+
505
+ }
506
+
507
+ /**
508
+ * Set process id
509
+ *
510
+ * @since 1.0.0
511
+ *
512
+ * @param int $pid The currently running process id.
513
+ */
514
+ private function set_pid( $pid ) {
515
+ update_option( 'wp_background_process_pid', $pid );
516
+ }
517
+
518
+ /**
519
+ * Cancel all other processes wainting in the queue.
520
+ *
521
+ * @since 1.0.0
522
+ */
523
+ public function cancel_all() {
524
+ $pid = get_option( 'wp_background_process_pid' );
525
+
526
+ // Delete all options.
527
+ delete_option( 'siteground_migrator_progress' );
528
+ delete_option( 'wp_background_process_pid' );
529
+ delete_option( 'siteground_migrator_email_recipient' );
530
+
531
+ // Delete all other process in the queue.
532
+ $this->delete_all_in_queue();
533
+
534
+ // Finally kill the currently running process if the is such.
535
+ if ( ! empty( $pid ) ) {
536
+ exec( "kill -9 $pid" );
537
+ }
538
+ }
539
+
540
+ /**
541
+ * Delete all process from database.
542
+ *
543
+ * @since 1.0.0
544
+ */
545
+ public function delete_all_in_queue() {
546
+ global $wpdb;
547
+
548
+ $wpdb->query( "DELETE FROM $wpdb->options WHERE $wpdb->options.option_name LIKE '%wp_background_process_batch_%'" );
549
+ }
550
+
551
+ /**
552
+ * Task
553
+ *
554
+ * Override this method to perform any actions required on each
555
+ * queue item. Return the modified item for further processing
556
+ * in the next pass through. Or, return false to remove the
557
+ * item from the queue.
558
+ *
559
+ * @param mixed $item Queue item to iterate over.
560
+ *
561
+ * @return mixed
562
+ */
563
+ abstract protected function task( $item );
564
+
565
+ }
core/Background_Process/WP_Async_Request.php ADDED
@@ -0,0 +1,163 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SiteGround_Migrator\Background_Process;
4
+
5
+ /**
6
+ * WP Async Request
7
+ *
8
+ * @package WP-Background-Processing
9
+ */
10
+
11
+ /**
12
+ * Abstract WP_Async_Request class.
13
+ *
14
+ * @abstract
15
+ */
16
+ abstract class WP_Async_Request {
17
+
18
+ /**
19
+ * Prefix
20
+ *
21
+ * (default value: 'wp')
22
+ *
23
+ * @var string
24
+ * @access protected
25
+ */
26
+ protected $prefix = 'wp';
27
+
28
+ /**
29
+ * Action
30
+ *
31
+ * (default value: 'async_request')
32
+ *
33
+ * @var string
34
+ * @access protected
35
+ */
36
+ protected $action = 'async_request';
37
+
38
+ /**
39
+ * Identifier
40
+ *
41
+ * @var mixed
42
+ * @access protected
43
+ */
44
+ protected $identifier;
45
+
46
+ /**
47
+ * Data
48
+ *
49
+ * (default value: array())
50
+ *
51
+ * @var array
52
+ * @access protected
53
+ */
54
+ protected $data = array();
55
+
56
+ /**
57
+ * Initiate new async request
58
+ */
59
+ public function __construct() {
60
+ $this->identifier = $this->prefix . '_' . $this->action;
61
+
62
+ add_action( 'wp_ajax_' . $this->identifier, array( $this, 'maybe_handle' ) );
63
+ add_action( 'wp_ajax_nopriv_' . $this->identifier, array( $this, 'maybe_handle' ) );
64
+ }
65
+
66
+ /**
67
+ * Set data used during the request
68
+ *
69
+ * @param array $data Data.
70
+ *
71
+ * @return $this
72
+ */
73
+ public function data( $data ) {
74
+ $this->data = $data;
75
+
76
+ return $this;
77
+ }
78
+
79
+ /**
80
+ * Dispatch the async request
81
+ *
82
+ * @return array|WP_Error
83
+ */
84
+ public function dispatch() {
85
+ $url = add_query_arg( $this->get_query_args(), $this->get_query_url() );
86
+ $args = $this->get_post_args();
87
+
88
+ return wp_remote_post( esc_url_raw( $url ), $args );
89
+ }
90
+
91
+ /**
92
+ * Get query args
93
+ *
94
+ * @return array
95
+ */
96
+ protected function get_query_args() {
97
+ if ( property_exists( $this, 'query_args' ) ) {
98
+ return $this->query_args;
99
+ }
100
+
101
+ return array(
102
+ 'action' => $this->identifier,
103
+ 'nonce' => wp_create_nonce( $this->identifier ),
104
+ );
105
+ }
106
+
107
+ /**
108
+ * Get query URL
109
+ *
110
+ * @return string
111
+ */
112
+ protected function get_query_url() {
113
+ if ( property_exists( $this, 'query_url' ) ) {
114
+ return $this->query_url;
115
+ }
116
+
117
+ return admin_url( 'admin-ajax.php' );
118
+ }
119
+
120
+ /**
121
+ * Get post args
122
+ *
123
+ * @return array
124
+ */
125
+ protected function get_post_args() {
126
+ if ( property_exists( $this, 'post_args' ) ) {
127
+ return $this->post_args;
128
+ }
129
+
130
+ return array(
131
+ 'timeout' => 0.01,
132
+ 'blocking' => false,
133
+ 'body' => $this->data,
134
+ 'cookies' => $_COOKIE,
135
+ 'sslverify' => apply_filters( 'https_local_ssl_verify', false ),
136
+ );
137
+ }
138
+
139
+ /**
140
+ * Maybe handle
141
+ *
142
+ * Check for correct nonce and pass to handler.
143
+ */
144
+ public function maybe_handle() {
145
+ // Don't lock up other requests while processing
146
+ session_write_close();
147
+
148
+ check_ajax_referer( $this->identifier, 'nonce' );
149
+
150
+ $this->handle();
151
+
152
+ wp_die();
153
+ }
154
+
155
+ /**
156
+ * Handle
157
+ *
158
+ * Override this method to perform any actions required
159
+ * during the async request.
160
+ */
161
+ abstract protected function handle();
162
+
163
+ }
core/Cli/Cli.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SiteGround_Migrator\Cli;
4
+
5
+ /**
6
+ * SG Migrator Cli plugin class.
7
+ */
8
+ class Cli {
9
+
10
+ /**
11
+ * Register the CLI Commands.
12
+ *
13
+ * @since @version
14
+ */
15
+ public function register_commands() {
16
+ \WP_CLI::add_command( 'migrator start', 'SiteGround_Migrator\Cli\Cli_Migrator' );
17
+ }
18
+ }
core/Cli/Cli_Migrator.php ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SiteGround_Migrator\Cli;
4
+
5
+ use SiteGround_Migrator\Transfer_Service\Transfer_Service;
6
+ /**
7
+ * The Cli migrator command class.
8
+ */
9
+ class Cli_Migrator {
10
+
11
+ /**
12
+ * SiteGround Migrator command.
13
+ *
14
+ * ## OPTIONS
15
+ *
16
+ * <token>
17
+ * : Transfer token.
18
+ *
19
+ * [--email=<email>]
20
+ * : Email address.
21
+ */
22
+ public function __invoke( $args, $assoc_args ) {
23
+ // Post args.
24
+ $args = array(
25
+ 'siteground_migrator_transfer_token' => $args[0],
26
+ 'siteground_migrator_update_options' => wp_create_nonce( 'siteground_migrator_options' ),
27
+ );
28
+
29
+ // Check for email args.
30
+ if ( ! empty( $assoc_args['email'] ) ) {
31
+ // Bail if the provided email is invalid.
32
+ if ( ! filter_var( $assoc_args['email'], FILTER_VALIDATE_EMAIL ) ) {
33
+ WP_CLI::error( 'Please enter valid email address.' );
34
+ }
35
+
36
+ // Add the email args if the email is ok.
37
+ $args['siteground_migrator_send_email_notification'] = 'on';
38
+ $args['siteground_migrator_email_recipient'] = $assoc_args['email'];
39
+ }
40
+
41
+ // Make the request to init the transfer.
42
+ $response = wp_remote_post(
43
+ admin_url( 'admin-ajax.php?action=update_option_siteground_migrator_transfer_token' ),
44
+ array(
45
+ 'method' => 'POST',
46
+ 'body' => $args,
47
+ )
48
+ );
49
+
50
+ if (
51
+ 200 !== wp_remote_retrieve_response_code( $response ) ||
52
+ is_wp_error( $response )
53
+ ) {
54
+ WP_CLI::error( esc_html__( 'Can not initiate the transfer.', 'siteground-migrator' ) );
55
+ }
56
+
57
+ // Wait for option to be updated.
58
+ sleep( 1 );
59
+
60
+ // Get the status after the request completes.
61
+ $status = get_option( 'siteground_migrator_transfer_status' );
62
+
63
+ if ( false === $status ) {
64
+ WP_CLI::error( esc_html__( 'Can not initiate the transfer.', 'siteground-migrator' ) );
65
+ }
66
+
67
+ switch ( $status['status'] ) {
68
+ // Show the error if the status is 0.
69
+ case 0:
70
+ WP_CLI::error( $status['message'] . '. ' . $status['description'] );
71
+ break;
72
+
73
+ case 5:
74
+ Transfer_Service::get_instance()->transfer_continue();
75
+ WP_CLI::success( esc_html__( 'Transfer started. Creating archives of files...', 'siteground-migrator' ) );
76
+ break;
77
+
78
+ default:
79
+ // Show success message.
80
+ WP_CLI::success( $status['message'] . '. ' . $status['description'] );
81
+ break;
82
+ }
83
+ }
84
+ }
core/Database_Service/Database_Service.php ADDED
@@ -0,0 +1,188 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SiteGround_Migrator\Database_Service;
4
+
5
+ use SiteGround_Migrator\Files_Service\Files_Service;
6
+ use SiteGround_Migrator\Helper\Log_Service_Trait;
7
+ use SiteGround_Migrator\Directory_Service\Directory_Service;
8
+
9
+ use ShuttleExport\Exporter;
10
+ use ShuttleExport\Exception as ShuttleException;
11
+ use ShuttleExport\Dumper\Factory;
12
+ /**
13
+ * The database class.
14
+ *
15
+ * Provides tools to retrieve information about the size of database and exporting database tables.
16
+ */
17
+ class Database_Service {
18
+ use Log_Service_Trait;
19
+ /**
20
+ * A Siteground_Migrator_Files_Service instance.
21
+ *
22
+ * @var Siteground_Migrator_Files_Service object
23
+ *
24
+ * @since 1.0.0
25
+ */
26
+ private $files_service;
27
+
28
+ /**
29
+ * The constructor
30
+ *
31
+ * @param \Siteground_Migrator_Files_Service $files_service The {@link Siteground_Migrator_Files_Service} instance.
32
+ *
33
+ * @since 1.0.0
34
+ */
35
+ public function __construct() {
36
+ // Init the `Siteground_Migrator_Files_Service`.
37
+ $this->files_service = new Files_Service();
38
+ }
39
+
40
+ /**
41
+ * Retrieve information about the tabels
42
+ * in database and the size of each one.
43
+ *
44
+ * @since 1.0.0
45
+ *
46
+ * @return array $tables The tables in database and their size.
47
+ */
48
+ private function get_tables() {
49
+ // Load the global `wpdb`.
50
+ global $wpdb;
51
+
52
+ // Get the tables information.
53
+ $tables = $wpdb->get_results(
54
+ $wpdb->prepare(
55
+ "
56
+ SELECT
57
+ table_name AS 'table_name',
58
+ ROUND( ( data_length + index_length ), 2 ) AS 'size'
59
+ FROM information_schema.TABLES
60
+ WHERE table_schema = %s
61
+ AND table_name LIKE %s
62
+ ",
63
+ DB_NAME,
64
+ $wpdb->prefix . '%'
65
+ )
66
+ ); // WPCS: cache ok.
67
+
68
+ // Return the tables info.
69
+ return $tables;
70
+ }
71
+
72
+ /**
73
+ * Create a dump for each table in database.
74
+ *
75
+ * @since 1.0.0
76
+ */
77
+ public function export_database() {
78
+ // Set the initial status to `in progress`.
79
+ $response = array(
80
+ 'title' => esc_html__( 'Database successfully compressed. Creating transfer manifest...', 'siteground-migrator' ),
81
+ 'status' => 1,
82
+ );
83
+
84
+ // Loop through all tables and create a dump for each one.
85
+ foreach ( $this->get_tables() as $table ) {
86
+ // Export the table.
87
+ $result = $this->export_and_encrypt_table( $table->table_name );
88
+
89
+ // Stop if table export fails and continue with next one.
90
+ // Additionally set the status to failed.
91
+ if ( 0 !== $result ) {
92
+ $response['status'] = 0;
93
+ continue;
94
+ }
95
+ }
96
+
97
+ // Generate response message using the status.
98
+ if ( 0 === $response['status'] ) {
99
+ $response['title'] = esc_html__( 'Transfer Failed Due To Database Error!', 'siteground-migrator' );
100
+ $response['description'] = __( 'The most common reason for such failure is if you have a large table or database that cannot be dumped for the purposes of this migration. If that is the case you may not be able to use the auto-migrator. If you believe the problem is elsewhere, such as temporary MySQL connectivity issue, you may initiate a new transfer. <br><br> For more information on how to solve this problem, please read <a href="https://www.siteground.com/kb/wordpress-migrator-database-error" target="_blank">this article</a>', 'siteground-migrator' );
101
+ }
102
+
103
+ return $response;
104
+ }
105
+
106
+ /**
107
+ * Export and encypt mysql table.
108
+ *
109
+ * @since 1.0.0
110
+ *
111
+ * @param string $table_name The name of the table to export.
112
+ *
113
+ * @return bool $status True on failure, false on success.
114
+ */
115
+ private function export_and_encrypt_table( $table_name ) {
116
+ $filename = Directory_Service::get_temp_directory_path() . '/sql/' . $table_name . '.txt';
117
+
118
+ // Try to dump database.
119
+ try {
120
+
121
+ $dumper = Exporter::export(
122
+ array(
123
+ 'db_host' => DB_HOST,
124
+ 'db_user' => DB_USER,
125
+ 'db_password' => DB_PASSWORD,
126
+ 'db_name' => DB_NAME,
127
+ 'only_tables' => array(
128
+ $table_name,
129
+ ),
130
+ 'export_file' => $filename,
131
+ 'charset' => 'utf-8',
132
+ )
133
+ );
134
+
135
+ } catch ( Exception $e ) {
136
+ // translators: The table name that failed to be exported.
137
+ $this->log_error( sprintf( 'Couldn\'t dump table: %s', $e->getMessage() ) );
138
+ // Return the status.
139
+ return 1;
140
+ }
141
+
142
+ // Encrypt the dump file and detele the original one.
143
+ $encryption_result = $this->files_service->encrypt_and_delete_original( $filename );
144
+
145
+ // Check if the encryption was successfull.
146
+ if ( false === $encryption_result ) {
147
+ // translators: The filename of mysql dump.
148
+ $this->log_error( sprintf( 'Error encrypting database: %s', $filename ) );
149
+ return 1;
150
+ }
151
+
152
+ // Return false on success, which means that there were no errors.
153
+ return 0;
154
+ }
155
+
156
+ /**
157
+ * Return the size of current WordPress database.
158
+ *
159
+ * @since 1.0.0
160
+ *
161
+ * @return mixed False on failure, the database size on success.
162
+ */
163
+ public static function get_database_size() {
164
+ // Load the global `$wpdb`.
165
+ global $wpdb;
166
+
167
+ // Get the size of database.
168
+ $response = $wpdb->get_results(
169
+ $wpdb->prepare(
170
+ "SELECT
171
+ sum( data_length + index_length ) AS 'size'
172
+ FROM information_schema.TABLES
173
+ WHERE table_schema = %s
174
+ AND table_name LIKE %s
175
+ ",
176
+ DB_NAME,
177
+ '%' . $wpdb->prefix . '%'
178
+ )
179
+ ); // WPCS: cache ok.
180
+
181
+ // Log an error if the size is not properly calculated.
182
+ if ( empty( $response[0]->size ) ) {
183
+ $this->log_error( 'Error calculating database size.' );
184
+ }
185
+
186
+ return $response[0]->size;
187
+ }
188
+ }
core/Deactivator/Deactivator.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SiteGround_Migrator\Deactivator;
4
+
5
+ use SiteGround_Migrator\Directory_Service\Directory_Service;
6
+
7
+ /**
8
+ * Class managing plugin deactivation.
9
+ */
10
+ class Deactivator {
11
+
12
+ /**
13
+ * Delete temp dirrectory upon plugin deactivation.
14
+ *
15
+ * @since 1.0.0
16
+ */
17
+ public static function deactivate() {
18
+ Directory_Service::get_instance()->remove_temp_dir();
19
+
20
+ global $wpdb;
21
+
22
+ // Delete the plugin options.
23
+ $result = $wpdb->get_results( "
24
+ DELETE
25
+ FROM $wpdb->options
26
+ WHERE `option_name` LIKE 'siteground_migrator_%'"
27
+ );
28
+ }
29
+ }
core/Directory_Service/Directory_Service.php ADDED
@@ -0,0 +1,397 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SiteGround_Migrator\Directory_Service;
4
+
5
+ use SiteGround_Migrator\Helper\Log_Service_Trait;
6
+
7
+ /**
8
+ * The directory service class.
9
+ */
10
+ class Directory_Service {
11
+ use Log_Service_Trait;
12
+ /**
13
+ * List of child directories that should be created in temp dir.
14
+ *
15
+ * @since 1.0.0
16
+ *
17
+ * @var array
18
+ */
19
+ private $child_directories = array(
20
+ '/plugins',
21
+ '/themes',
22
+ '/sql',
23
+ );
24
+
25
+ /**
26
+ * {@link Siteground_Migrator_Directory_Service} singleton instance.
27
+ *
28
+ * @since 1.0.0
29
+ * @access private
30
+ * @var \Siteground_Migrator_Directory_Service $instance {@link Siteground_Migrator_Directory_Service} singleton instance.
31
+ */
32
+ private static $instance;
33
+
34
+ /**
35
+ * The constructor
36
+ *
37
+ * @since 1.0.0
38
+ */
39
+ public function __construct() {
40
+ self::$instance = $this;
41
+ }
42
+
43
+ /**
44
+ * Get {@link Siteground_Migrator_Directory_Service} singleton instance.
45
+ *
46
+ * @since 1.0.0
47
+ *
48
+ * @return Siteground_Migrator_Directory_Service {@link Siteground_Migrator_Directory_Service} singleton instance.
49
+ */
50
+ public static function get_instance() {
51
+ if ( null == self::$instance ) {
52
+ self::$instance = new self();
53
+ }
54
+
55
+ return self::$instance;
56
+ }
57
+
58
+ /**
59
+ * Create the directory where the mysql tables will be dumped.
60
+ *
61
+ * @since 1.0.0
62
+ *
63
+ * @return bool True on success or if the directory already exists
64
+ * False on failure.
65
+ */
66
+ public function create_temp_directories() {
67
+ // Get the temp directory.
68
+ $directory = $this->get_temp_directory_path();
69
+
70
+ // try to create the temp directory.
71
+ $result = $this->create_directory( $directory );
72
+
73
+ // Bail if the main temp directory was not created.
74
+ if ( false === $result ) {
75
+ return;
76
+ }
77
+
78
+ // Create child directories if the main directory was successfully created.
79
+ foreach ( $this->child_directories as $child_dir ) {
80
+ $this->create_directory( $directory . $child_dir );
81
+ }
82
+
83
+ }
84
+
85
+ /**
86
+ * Create directory.
87
+ *
88
+ * @since 1.0.0
89
+ *
90
+ * @param string $directory The new directory path.
91
+ *
92
+ * @return bool True is the directory is created.
93
+ * False on failure.
94
+ */
95
+ public function create_directory( $directory ) {
96
+ if ( empty( $directory ) ) {
97
+ return $this->log_error( 'Temporary directory name is not set.' );
98
+ }
99
+
100
+ // The directory already exists.
101
+ if ( is_dir( $directory ) ) {
102
+ return true;
103
+ }
104
+
105
+ // Create the directory and return the result.
106
+ $is_directory_created = wp_mkdir_p( $directory );
107
+
108
+ // Bail if cannot create temp dir.
109
+ if ( false === $is_directory_created ) {
110
+ // translators: `$directory` is the name of directory that should be created.
111
+ $this->log_error( sprintf( 'Cannot create directory: %s.', $directory ) );
112
+ }
113
+
114
+ return $is_directory_created;
115
+ }
116
+
117
+ /**
118
+ * Empty temp dir after the transfer is completed.
119
+ *
120
+ * @since 1.0.0
121
+ *
122
+ * @param string $directory The directory to remove. Plugin temp dir by default.
123
+ */
124
+ public function remove_temp_dir_content( $directory = '' ) {
125
+ global $wp_filesystem;
126
+
127
+ // Initialize the WP filesystem, no more using 'file-put-contents' function.
128
+ if ( empty( $wp_filesystem ) ) {
129
+ require_once( ABSPATH . '/wp-admin/includes/file.php' );
130
+ \WP_Filesystem();
131
+ }
132
+
133
+ if ( empty( $directory ) ) {
134
+ $directory = self::get_temp_directory_path();
135
+ }
136
+
137
+ // Bail if the temp dir doesn't exists.
138
+ if ( ! is_dir( self::get_temp_directory_path() ) ) {
139
+ return;
140
+ }
141
+
142
+ foreach ( scandir( $directory ) as $file ) {
143
+ // Skip system files.
144
+ if ( '.' === $file || '..' === $file ) {
145
+ continue;
146
+ }
147
+
148
+ // Remove the file and continue.
149
+ if ( ! is_dir( "$directory/$file" ) ) {
150
+ $wp_filesystem->delete( "$directory/$file" );
151
+ continue;
152
+ }
153
+
154
+ // Continue with child directories.
155
+ $this->remove_temp_dir_content( "$directory/$file" );
156
+ }
157
+
158
+ return true;
159
+ }
160
+
161
+ /**
162
+ * Remove temp dir upon deactivation.
163
+ *
164
+ * @since 1.0.0
165
+ */
166
+ public function remove_temp_dir() {
167
+ global $wp_filesystem;
168
+
169
+ // Initialize the WP filesystem, no more using 'file-put-contents' function.
170
+ if ( empty( $wp_filesystem ) ) {
171
+ require_once( ABSPATH . '/wp-admin/includes/file.php' );
172
+ \WP_Filesystem();
173
+ }
174
+
175
+ // Remove the temporary dir and all it's content.
176
+ $wp_filesystem->rmdir( self::get_temp_directory_path(), true );
177
+ }
178
+
179
+ /**
180
+ * Return the total size of a directory in bytes.
181
+ *
182
+ * @since 1.0.0
183
+ *
184
+ * @param string $directory The directory which size to calculate.
185
+ *
186
+ * @return int $size The total size of the directory.
187
+ */
188
+ public static function get_directory_size( $directory ) {
189
+ // Init the size.
190
+ $size = 0;
191
+
192
+ // Bail if the directory doesn't exists.
193
+ if ( ! file_exists( $directory ) ) {
194
+ // translators: `$directory` placeholder contains the name of directory which size we are trying to retrieve.
195
+ ( new self )->log_error( sprintf( 'Directory: %s doesn\'t exists', $directory ) );
196
+ return;
197
+ }
198
+
199
+ // Init the iterator.
200
+ // We create this variable for code readability.
201
+ // Otherwise the foreach below looks very ugly.
202
+ $iterator = new \RecursiveIteratorIterator(
203
+ new \RecursiveDirectoryIterator(
204
+ $directory,
205
+ \FilesystemIterator::SKIP_DOTS
206
+ )
207
+ );
208
+
209
+ // Loop through all sub-directories and files
210
+ // and calculate the size of the directory.
211
+ foreach ( $iterator as $object ) {
212
+ // Increase the `size` by adding the current object size.
213
+ $size += $object->getSize();
214
+ }
215
+
216
+ // Finally return the total size of the directory.
217
+ return $size;
218
+ }
219
+
220
+ /**
221
+ * Get WordPress installation size.
222
+ *
223
+ * @since 1.0.0
224
+ *
225
+ * @return int $size The size of the installation.
226
+ */
227
+ public static function get_wordpress_size() {
228
+ $size = 0;
229
+ $paths = array(
230
+ ABSPATH . 'wp-admin',
231
+ WP_CONTENT_DIR,
232
+ ABSPATH . 'wp-includes',
233
+ );
234
+
235
+ foreach ( $paths as $path ) {
236
+ $size += self::get_directory_size( $path );
237
+ }
238
+
239
+ // return the size.
240
+ return $size;
241
+ }
242
+
243
+ /**
244
+ * Creates a tree-structured array of directories and files from a given root folder.
245
+ *
246
+ * @param string $directory The directory.
247
+ *
248
+ * @since 1.0.0
249
+ *
250
+ * @return array Tree array.
251
+ */
252
+ public function get_upload_paths( $directory ) {
253
+ // Init the dir and file arrays.
254
+ $paths = '';
255
+
256
+ // Make the dir innstance of `RecursiveDirectoryIterator`.
257
+ $directory = new \RecursiveDirectoryIterator(
258
+ (string) $directory,
259
+ \RecursiveDirectoryIterator::SKIP_DOTS
260
+ );
261
+
262
+ // Loop throug all directories and build the tree.
263
+ foreach ( $directory as $node ) {
264
+ // Call the method recursivelly if the node is directory.
265
+ if ( $node->isDir() ) {
266
+ $paths .= $this->get_upload_paths( $node->getPathname() );
267
+ } else {
268
+ // We need to replace the ABSPATH with `/` and windows server backslashes.
269
+ $path = str_replace(
270
+ array(
271
+ ABSPATH,
272
+ '\\',
273
+ ),
274
+ array(
275
+ '/',
276
+ '/',
277
+ ),
278
+ $node->getPath()
279
+ );
280
+
281
+ $paths .= $path . '/' . $node->getFilename() . "\n";
282
+ }
283
+ }
284
+
285
+ // Return the paths.
286
+ return $paths;
287
+ }
288
+
289
+ /**
290
+ * Retrieve directories in certain folder.
291
+ *
292
+ * @since 1.0.0
293
+ *
294
+ * @param string $directory The main directory.
295
+ *
296
+ * @return array $directories Child directories in main dir.
297
+ */
298
+ private function get_child_directories( $directory ) {
299
+ $directories = array();
300
+
301
+ // Make the directory innstance of `RecursiveDirectoryIterator`.
302
+ $directory_iterator = new \RecursiveDirectoryIterator(
303
+ WP_CONTENT_DIR . (string) $directory,
304
+ \RecursiveDirectoryIterator::SKIP_DOTS
305
+ );
306
+
307
+ // Loop through all directories and get the child directories.
308
+ foreach ( $directory_iterator as $node ) {
309
+ // Bail if the current node is not directory.
310
+ if (
311
+ ! $node->isDir() ||
312
+ 'siteground-migrator' === $node->getFilename()
313
+ ) {
314
+ continue;
315
+ }
316
+
317
+ $directories[] = $directory . '/' . $node->getFilename();
318
+ }
319
+
320
+ // Return the directories.
321
+ return $directories;
322
+ }
323
+
324
+ /**
325
+ * Build array of all directories that should be archived.
326
+ *
327
+ * @since 1.0.0
328
+ *
329
+ * @return array $directories Directories that should be archived.
330
+ */
331
+ public function get_plugin_and_theme_child_directories() {
332
+ $directories = array();
333
+ // The parent directories.
334
+ $parent_dirs = array(
335
+ '/plugins',
336
+ '/themes',
337
+ );
338
+
339
+ // Loop throught all parent directories
340
+ // and retrieve the sub directories in them.
341
+ foreach ( $parent_dirs as $directory ) {
342
+ $directories = array_merge( $directories, $this->get_child_directories( $directory ) );
343
+ }
344
+
345
+ // Finally return the directories that should be archived.
346
+ return $directories;
347
+ }
348
+
349
+ /**
350
+ * Retrieve temp directory name.
351
+ *
352
+ * @since 1.0.0
353
+ *
354
+ * @return string|bool False if the directory is not set, directory name otherwise.
355
+ */
356
+ public static function get_temp_directory_path() {
357
+ // Get directory name.
358
+ $directory_name = get_option( 'siteground_migrator_temp_directory' );
359
+
360
+ // Bail if the directory name is empty.
361
+ if ( empty( $directory_name ) ) {
362
+ return false;
363
+ }
364
+
365
+ $upload_dir = wp_upload_dir();
366
+
367
+ // Return the full path to directory.
368
+ return $upload_dir['basedir'] . '/' . $directory_name;
369
+ }
370
+
371
+ /**
372
+ * Check if temp directories have been created.
373
+ *
374
+ * @since 1.0.1
375
+ *
376
+ * @return bool True is directories exist, false otherwise.
377
+ */
378
+ public function check_if_temp_dirs_extist() {
379
+ // Get the main temp dir.
380
+ $directory = $this->get_temp_directory_path();
381
+
382
+ // Bail if main directory is not created.
383
+ if ( ! is_dir( $directory ) ) {
384
+ return false;
385
+ }
386
+
387
+ // Loop through all child dirs and make sure each one has been created.
388
+ foreach ( $this->child_directories as $child_dir ) {
389
+ if ( ! is_dir( $directory . $child_dir ) ) {
390
+ return false;
391
+ }
392
+ }
393
+
394
+ // All dirs have been created.
395
+ return true;
396
+ }
397
+ }
core/Email_Service/Email_Service.php ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SiteGround_Migrator\Email_Service;
4
+
5
+ /**
6
+ * The email service class.
7
+ */
8
+ class Email_Service {
9
+
10
+ /**
11
+ * Send notification to the user.
12
+ *
13
+ * @since 1.0.0
14
+ *
15
+ * @param string $recipinet The email recipient.
16
+ * @param string $subject The email subject.
17
+ * @param string $message The email message.
18
+ *
19
+ * @return bool True on success, false on failure.
20
+ */
21
+ private function send_email( $recipient, $subject, $message ) {
22
+ return wp_mail(
23
+ $recipient,
24
+ $subject,
25
+ $message,
26
+ array(
27
+ 'Content-Type: text/html; charset=UTF-8',
28
+ )
29
+ );
30
+ }
31
+
32
+ /**
33
+ * Prepare and send notifcaiton to the site admin, when the transfer is completed.
34
+ *
35
+ * @since 1.0.0
36
+ *
37
+ * @param array $data Array of data from the SiteGround api.
38
+ */
39
+ public function prepare_and_send_notification( $data ) {
40
+
41
+ // Prepare the options.
42
+ $send_notification = get_option( 'siteground_migrator_send_email_notification' );
43
+ $recipient = get_option( 'siteground_migrator_email_recipient' );
44
+
45
+ // Bail if the user has selected to not send notifications.
46
+ if (
47
+ 'no' === $send_notification ||
48
+ false === is_email( $recipient )
49
+ ) {
50
+ return;
51
+ }
52
+
53
+ // We send notication on success/failure only.
54
+ switch ( $data['status'] ) {
55
+ case 0:
56
+ // Send notification that transfer has failed.
57
+ $subject = esc_html__( 'Migration to SiteGround Failed', 'siteground-migrator' );
58
+ $file = 'sg_migrator_failed.php';
59
+ break;
60
+ case 3:
61
+ // Send notification that transfer is completed successfully.
62
+ $subject = esc_html__( 'Migration to SiteGround Completed', 'siteground-migrator' );
63
+ $file = 'sg_migrator_successful.php';
64
+ break;
65
+ case 4:
66
+ // Send notification that transfer is completed with errors.
67
+ $subject = esc_html__( 'Migration to SiteGround completed, some files could not be transferred', 'siteground-migrator' );
68
+ $file = 'sg_migrator_successful_errors.php';
69
+ break;
70
+ // Do not send anything is the transfer is in progress.
71
+ default:
72
+ return;
73
+ }
74
+
75
+ // Turn on output buffering.
76
+ ob_start();
77
+
78
+ // Include the email template.
79
+ include \SiteGround_Migrator\DIR . '/templates/email-templates/' . $file;
80
+
81
+ // Get current buffer contents and delete current output buffer.
82
+ $message = ob_get_clean();
83
+
84
+ // Send the email.
85
+ $this->send_email(
86
+ $recipient,
87
+ $subject,
88
+ $message
89
+ );
90
+ }
91
+ }
core/Field_Service/Settings_Field.php ADDED
@@ -0,0 +1,194 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace SiteGround_Migrator\Field_Service;
3
+
4
+ use SiteGround_Migrator\Admin\Admin;
5
+ /**
6
+ * The settings field.
7
+ *
8
+ * @link https://www.siteground.com
9
+ * @since 1.0.0
10
+ *
11
+ * @package Siteground_Migrator_Settings_Field
12
+ * @subpackage Siteground_Migrator/admin
13
+ */
14
+
15
+ /**
16
+ * The settings field class.
17
+ *
18
+ * @package Siteground_Migrator_Settings_Field
19
+ * @subpackage Siteground_Migrator/admin
20
+ * @author SiteGround <hristo.p@siteground.com>
21
+ */
22
+ abstract class Settings_Field {
23
+ /**
24
+ * The title of the field.
25
+ *
26
+ * @since 1.0.0
27
+ *
28
+ * @var string $title The title of the field.
29
+ */
30
+ protected $title;
31
+
32
+ /**
33
+ * The field unique id.
34
+ *
35
+ * @since 1.0.0
36
+ *
37
+ * @var string $id The id of the field.
38
+ */
39
+ protected $id;
40
+
41
+ /**
42
+ * The field additional args.
43
+ *
44
+ * @since 1.0.0
45
+ *
46
+ * @var array $args The field additional args.
47
+ */
48
+ protected $args;
49
+
50
+ /**
51
+ * Constructor.
52
+ *
53
+ * Register an administration settings field.
54
+ *
55
+ * @since 1.0.0
56
+ *
57
+ * @param string $id The ID of the field.
58
+ * @param string $title The title of the field.
59
+ * @param string $section The name of the section.
60
+ * @param array $args Additional args.
61
+ */
62
+ public function __construct( $id, $title, $section = '', $args = array() ) {
63
+
64
+ $this->title = $title;
65
+ $this->id = $id;
66
+ $this->args = $args;
67
+
68
+ add_settings_field(
69
+ $id,
70
+ $title,
71
+ array( $this, 'render' ),
72
+ Admin::PAGE_SLUG,
73
+ $section,
74
+ $args
75
+ );
76
+
77
+ register_setting( Admin::PAGE_SLUG, $id );
78
+ }
79
+
80
+ /**
81
+ * Register a new administration settings field of a certain type.
82
+ *
83
+ * @since 1.0.0
84
+ *
85
+ * @param string $type Type of the field.
86
+ * @param string $id The ID of the field.
87
+ * @param string $title The title of the field.
88
+ * @param string $section The name of the section.
89
+ * @param array $args Additional args.
90
+ *
91
+ * @return Siteground_Migrator_Settings_Field $field
92
+ */
93
+ public static function factory( $type, $id, $title, $section = '', $args = array() ) {
94
+
95
+ // Build the class name.
96
+ $class_name = __CLASS__ . '_' . ucwords( $type );
97
+
98
+ // Throw an exception if the class doesn't exists.
99
+ if ( ! class_exists( $class_name ) ) {
100
+ throw new Exception( 'Unknown settings field type "' . $type . '".' );
101
+ }
102
+
103
+ $field = new $class_name( $id, $title, $section, $args );
104
+
105
+ return $field;
106
+ }
107
+
108
+ /**
109
+ * Retrieve the field title.
110
+ *
111
+ * @access public
112
+ *
113
+ * @return string $title The title of this field.
114
+ */
115
+ public function get_title() {
116
+ return $this->title;
117
+ }
118
+
119
+ /**
120
+ * Retrieve the field ID.
121
+ *
122
+ * @access public
123
+ *
124
+ * @return string $id The ID of this field.
125
+ */
126
+ public function get_id() {
127
+ return $this->id;
128
+ }
129
+
130
+ /**
131
+ * Render help text under the field.
132
+ *
133
+ * @since 1.0.0
134
+ */
135
+ public function render_help() {
136
+ if ( ! empty( $this->args['help_text'] ) ) {
137
+ echo wp_kses(
138
+ wpautop( $this->args['help_text'] ),
139
+ array(
140
+ 'p' => array(),
141
+ )
142
+ );
143
+ }
144
+ }
145
+
146
+ /**
147
+ * Adds pattern.
148
+ *
149
+ * @since 1.0.0
150
+ */
151
+ public function add_pattern() {
152
+ return sprintf( 'pattern="%s"', $this->args['pattern'] );
153
+ }
154
+
155
+ /**
156
+ * Gets the class name.
157
+ *
158
+ * @since 1.0.0
159
+ *
160
+ * @return string The class names.
161
+ */
162
+ public function get_class_names() {
163
+ return $this->args['class_names'];
164
+ }
165
+
166
+ /**
167
+ * Returns the required field.
168
+ *
169
+ * @since 1.0.0
170
+ *
171
+ * @return string The required attr.
172
+ */
173
+ public function is_required() {
174
+ if ( true === $this->args['required'] ) {
175
+ return 'required="required"';
176
+ }
177
+ }
178
+
179
+ /**
180
+ * Retrieve the value of a field.
181
+ *
182
+ * @since 1.0.0
183
+ */
184
+ protected function get_value() {
185
+ return get_option( $this->get_id() );
186
+ }
187
+
188
+ /**
189
+ * Render this field.
190
+ *
191
+ * @since 1.0.0
192
+ */
193
+ abstract public function render();
194
+ }
core/Field_Service/Settings_Field_Text.php ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SiteGround_Migrator\Field_Service;
4
+
5
+ /**
6
+ * The text settings field.
7
+ *
8
+ * @link https://www.siteground.com
9
+ * @since 1.0.0
10
+ *
11
+ * @package Siteground_Migrator_Settings_Field_Text
12
+ * @subpackage Siteground_Migrator/admin
13
+ */
14
+
15
+ /**
16
+ * The settings field class.
17
+ *
18
+ * @package Siteground_Migrator_Settings_Field_Text
19
+ * @subpackage Siteground_Migrator/admin
20
+ * @author SiteGround <hristo.p@siteground.com>
21
+ */
22
+ class Settings_Field_Text extends Settings_Field {
23
+
24
+ /**
25
+ * Render this field.
26
+ *
27
+ * @since 1.0.0
28
+ */
29
+ public function render() {
30
+ include \SiteGround_Migrator\DIR . '/templates/partials/field-text.php';
31
+ }
32
+ }
core/Files_Service/Files_Service.php ADDED
@@ -0,0 +1,394 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SiteGround_Migrator\Files_Service;
4
+
5
+ use SiteGround_Migrator\Helper\Log_Service_Trait;
6
+ use SiteGround_Migrator\Directory_Service\Directory_Service;
7
+ use SiteGround_Migrator\Api_Service\Api_Service;
8
+ use SiteGround_Migrator\Transfer_Service\Transfer_Service;
9
+
10
+ /**
11
+ * The files service class.
12
+ *
13
+ * Provide methods to encrypt, archive and download files.
14
+ */
15
+ class Files_Service {
16
+ use Log_Service_Trait;
17
+
18
+ /**
19
+ * A Siteground_Migrator_Directory_Service instance.
20
+ *
21
+ * @var Siteground_Migrator_Directory_Service object
22
+ *
23
+ * @since 1.0.0
24
+ */
25
+ private $directory_service;
26
+
27
+ /**
28
+ * A Siteground_Migrator_Api_Service instance.
29
+ *
30
+ * @var Siteground_Migrator_Api_Service object
31
+ *
32
+ * @since 1.0.0
33
+ */
34
+ private $api_service;
35
+
36
+ /**
37
+ * The constructor.
38
+ *
39
+ * @since 1.0.0
40
+ */
41
+ public function __construct() {
42
+
43
+ $this->directory_service = new Directory_Service();
44
+ $this->api_service = new Api_Service();
45
+ }
46
+
47
+ /**
48
+ * Allow SiteGround server to
49
+ * download php files via http.
50
+ *
51
+ * @since 1.0.0
52
+ */
53
+ public function download_file_from_uploads() {
54
+ // Bail if the path parameter is not set.
55
+ if ( empty( $_GET['path'] ) ) {
56
+ $this->log_die( '`path` parameter is rquired.' );
57
+ }
58
+ $maybe_path = sanitize_text_field( wp_unslash( $_GET['path'] ) );
59
+
60
+ // Check if the request is made from SiteGround server.
61
+ $this->api_service->authenticate( $maybe_path );
62
+
63
+ // Validate and build the whole path to the file.
64
+ $path = $this->validate_and_build_path( $maybe_path ); // input var ok; sanitization ok.
65
+
66
+ // Bail if the path doesn't exist.
67
+ if ( false === $path ) {
68
+ $this->log_die(
69
+ // translators: The placeholder is the path to the file that we are trying to downlaod.
70
+ sprintf( 'The following filepath doesn\'t exist: %s', $path ) // phpcs:ignore WordPress.XSS.EscapeOutput
71
+ );
72
+ }
73
+
74
+ // Get encrypted file content.
75
+ $cipher_content = $this->get_encrypted_file_content( $path );
76
+
77
+ if ( empty( $cipher_content ) ) {
78
+ $this->log_die(
79
+ // translators: The placeholder is the path to the file that we are trying to downlaod.
80
+ sprintf( 'Error creating encrypted content for file: %s', $path ) // phpcs:ignore WordPress.XSS.EscapeOutput
81
+ );
82
+ }
83
+
84
+ die( $cipher_content ); // phpcs:ignore WordPress.XSS.EscapeOutput
85
+ }
86
+
87
+ /**
88
+ * Validate that the path is correct and it exists.
89
+ *
90
+ * @since 1.0.0
91
+ *
92
+ * @param string $maybe_path The path to validate/build.
93
+ *
94
+ * @return string $maybe_path Full path to the file/folder.
95
+ */
96
+ private function validate_and_build_path( $maybe_path ) {
97
+ // Bail if the filepath is undefined.
98
+ if ( empty( $maybe_path ) ) {
99
+ $this->log_error( 'You must specify the path to file.' );
100
+ return false;
101
+ }
102
+
103
+ // Replace all forbidden strings.
104
+ $maybe_path = str_replace( '../', '', $maybe_path );
105
+
106
+ // Build the path to the filem using the `WP_CONTENT_DIR` const.
107
+ $path = ABSPATH . $maybe_path;
108
+
109
+ // Bail if the file doesn't exists.
110
+ if ( ! file_exists( $path ) ) {
111
+ // translators: The placeholder is the name of the path that wasn't found.
112
+ $this->log_error( sprintf( 'File not found %s.', $path ) ); // phpcs:ignore WordPress.XSS.EscapeOutput
113
+ return false;
114
+ }
115
+
116
+ return $path;
117
+ }
118
+
119
+ /**
120
+ * Archive all subdirs from plugins/themes.
121
+ *
122
+ * @since 1.0.0
123
+ */
124
+ public function prepare_archives_for_download() {
125
+ // Build the response.
126
+ $response = array(
127
+ 'status' => 1,
128
+ 'title' => esc_html__( 'Files archived, compressing the database..', 'siteground-migrator' ),
129
+ );
130
+
131
+ // Loop through all child directories and create encrypted archives.
132
+ foreach ( $this->directory_service->get_plugin_and_theme_child_directories() as $path ) {
133
+ $result = $this->create_encrypted_archive( $path );
134
+
135
+ // Write in logs in case the file wasn't encrypted.
136
+ if ( false === $result ) {
137
+ $response['status'] = 0;
138
+ }
139
+ }
140
+
141
+ // Change the response status to failed.
142
+ if ( 0 === $response['status'] ) {
143
+ $response = array_merge(
144
+ $response,
145
+ array(
146
+ 'title' => esc_html__( 'Transfer cannot be initiated due to permissions error.', 'siteground-migrator' ),
147
+ 'description' => __( 'For the purposes of this transfer we need to create temporary files on your current hosting account. Please fix your files permissions at your current host and make sure your wp-content folder is writable. Files should be set to 644 and folders to 755. <br><br> For more information on how to solve this problem, please read <a href="https://www.siteground.com/kb/wordpress-migrator-permissions-error" target="_blank">this article</a>', 'siteground-migrator' ),
148
+ )
149
+ );
150
+ }
151
+
152
+ // Return the response.
153
+ return $response;
154
+ }
155
+
156
+ /**
157
+ * Create encrypted archive.
158
+ *
159
+ * @since 1.0.0
160
+ *
161
+ * @param string $path The path relative to wp-content.
162
+ *
163
+ * @return bool True on success, false on failure.
164
+ */
165
+ private function create_encrypted_archive( $path ) {
166
+ // Bail if the temp directory doesn't exist.
167
+ if ( ! is_dir( $this->directory_service->get_temp_directory_path() ) ) {
168
+ return false;
169
+ }
170
+
171
+ $wp_filesystem = $this->setup_wp_filesystem();
172
+ // Validate and build the path.
173
+ $source_path = $this->validate_and_build_path( 'wp-content/' . $path );
174
+
175
+ if ( false === $source_path ) {
176
+ $this->log_error( sprintf( 'The following path is invalid or doesn\'t exist: %s.', $path ) );
177
+ return false;
178
+ }
179
+
180
+ // Build archive filename.
181
+ $archive_filename = $this->directory_service->get_temp_directory_path() . '/' . $path . ( class_exists( 'ZipArchive' ) ? '.zip' : '.tar' );
182
+
183
+ // Delete the file if it exists and create fresh archive.
184
+ if ( file_exists( $archive_filename ) ) {
185
+ $wp_filesystem->delete( $archive_filename );
186
+ }
187
+
188
+ // Fallback, if zip extension is unavailable.
189
+ if ( ! class_exists( 'ZipArchive' ) ) {
190
+ // Init the PharData.
191
+ $phar = new PharData( $archive_filename );
192
+
193
+ // Create archive from directory.
194
+ $phar->buildFromDirectory( $source_path );
195
+
196
+ } else {
197
+ // Create archive from directory.
198
+ $this->zip_dir( $source_path, $archive_filename );
199
+ }
200
+
201
+ return $this->encrypt_and_delete_original( $archive_filename );
202
+ }
203
+
204
+ /**
205
+ * Creates a .zip archive from a given directory recursively.
206
+ *
207
+ * @since 1.1.0
208
+ *
209
+ * @param string $source Directory to be compressed.
210
+ * @param string $dest Destination for the .zip file containing the compressed directory.
211
+ */
212
+ public function zip_dir( $source, $dest ) {
213
+ // Get real path for our folder.
214
+ $root_path = realpath( $source );
215
+
216
+ // Initialize archive object.
217
+ $zip = new \ZipArchive();
218
+ $zip->open( $dest, \ZipArchive::CREATE );
219
+
220
+
221
+ // Create recursive directory iterator.
222
+ $files = new \RecursiveIteratorIterator(
223
+ new \RecursiveDirectoryIterator( $root_path ),
224
+ \RecursiveIteratorIterator::LEAVES_ONLY
225
+ );
226
+
227
+ foreach ( $files as $name => $file ) {
228
+ // Skip directories (they would be added automatically)
229
+ if ( ! $file->isDir() ) {
230
+ // Get real and relative path for current file.
231
+ $file_path = $file->getRealPath();
232
+ $relative_path = substr( $file_path, strlen( $root_path ) + 1 );
233
+
234
+ // Add current file to archive
235
+ $zip->addFile( $file_path, $relative_path );
236
+ }
237
+ }
238
+
239
+ // Zip archive will be created only after closing object.
240
+ $zip->close();
241
+ }
242
+
243
+ /**
244
+ * Create the transfer manifest.
245
+ *
246
+ * @since 1.0.0
247
+ *
248
+ * @return bool True on success, false on failure
249
+ */
250
+ public function create_transfer_manifest() {
251
+ // Get uploas dir.
252
+ $upload_dir = wp_upload_dir();
253
+
254
+ $result = $this->create_encrypted_file(
255
+ $this->directory_service->get_temp_directory_path() . '/manifest.txt', // The file name.
256
+ $this->directory_service->get_upload_paths( $upload_dir['basedir'] ) // File content.
257
+ );
258
+
259
+ $response = array(
260
+ 'status' => intval( $result ),
261
+ 'title' => esc_html__( 'Failed to create transfer manifest.', 'siteground-migrator' ),
262
+ );
263
+
264
+ if ( 1 === $response['status'] ) {
265
+ $response['title'] = esc_html__( 'Transfer manifest has been created. Sending request to SiteGround API ...', 'siteground-migrator' );
266
+ }
267
+
268
+ // Return the result of the process.
269
+ return $response;
270
+ }
271
+
272
+ /**
273
+ * Create encrypted file.
274
+ *
275
+ * @since 1.0.0
276
+ *
277
+ * @param string $filename The name of the file.
278
+ * @param string $content The content of file.
279
+ *
280
+ * @return bool True on success, false on failure.
281
+ */
282
+ private function create_encrypted_file( $filename, $content ) {
283
+ $wp_filesystem = $this->setup_wp_filesystem();
284
+
285
+ // Add the paths to the file.
286
+ if ( false === $wp_filesystem->put_contents( $filename, $content ) ) {
287
+ $this->log_error( 'Error creating file.' );
288
+ return false;
289
+ }
290
+
291
+ // Encrypt the file and delete the original file.
292
+ if ( false === $this->encrypt_and_delete_original( $filename ) ) {
293
+ $this->log_error( 'Error encrypting file.' );
294
+ return false;
295
+ }
296
+
297
+ return true;
298
+ }
299
+
300
+ /**
301
+ * Encrypt file and delete the original one.
302
+ *
303
+ * @since 1.0.0
304
+ *
305
+ * @param string $file Path to the file.
306
+ *
307
+ * @return string|bool The number of bytes that were written
308
+ * to the file, or false on failure.
309
+ */
310
+ public function encrypt_and_delete_original( $file ) {
311
+ $wp_filesystem = $this->setup_wp_filesystem();
312
+
313
+ // Get encrypted content of archive.
314
+ $encrypted_content = $this->get_encrypted_file_content( $file );
315
+
316
+ // Delete the original file.
317
+ $wp_filesystem->delete( $file );
318
+
319
+ // Create new file with encrypted content.
320
+ return $wp_filesystem->put_contents(
321
+ $file,
322
+ $encrypted_content
323
+ );
324
+ }
325
+
326
+
327
+ /**
328
+ * Retrieve encrypted content of file.
329
+ *
330
+ * @since 1.0.0
331
+ *
332
+ * @param string $file The filepath.
333
+ *
334
+ * @return string $cipher_content File encrypted content.
335
+ */
336
+ private function get_encrypted_file_content( $file ) {
337
+ $wp_filesystem = $this->setup_wp_filesystem();
338
+ // Bail if the file is empty.
339
+ if ( empty( $file ) ) {
340
+ $this->log_error( 'File parameter is required.' );
341
+ return;
342
+ }
343
+
344
+ if ( ! extension_loaded( 'openssl' ) ) {
345
+ Transfer_Service::update_status(
346
+ __( 'Openssl module is not loaded', 'siteground_migrator' ),
347
+ 0,
348
+ __( 'This plugin requires openssl module enabled. Please enable the module and restart the transfer. <br><br> For more information on how to solve this problem, please read <a href="https://www.siteground.com/kb/wordpress-migrator-openssl-module-is-not-loaded/" target="_blank">this article</a>', 'siteground_migrator' )
349
+ );
350
+ }
351
+
352
+ if (
353
+ ! in_array( 'AES-128-CBC', openssl_get_cipher_methods() ) &&
354
+ ! in_array( 'aes-128-cbc', openssl_get_cipher_methods() )
355
+ ) {
356
+ Transfer_Service::update_status(
357
+ __( 'AES-128-CBC cipher method is required.', 'siteground_migrator' ),
358
+ 0,
359
+ __( 'This plugin requires AES-128-CBC cipher method to work. <br><br> For more information on how to solve this problem, please read <a href="https://www.siteground.com/kb/wordpress-migrator-aes-128-cipher-method-required" target="_blank">this article</a>', 'siteground_migrator' )
360
+ );
361
+ }
362
+
363
+ // Get contents of the file.
364
+ $key = get_option( 'siteground_migrator_encryption_key' );
365
+ $cipher = 'AES-128-CBC';
366
+ $ivlen = openssl_cipher_iv_length( $cipher );
367
+ $iv = openssl_random_pseudo_bytes( $ivlen );
368
+ $file_contents = $wp_filesystem->get_contents( $file );
369
+ $hash = sha1( $file_contents, true );
370
+ $cipher_content = openssl_encrypt( $file_contents, $cipher, $key, OPENSSL_RAW_DATA, $iv );
371
+
372
+ // Return the encrypted content.
373
+ return $iv . $hash . $cipher_content;
374
+ }
375
+
376
+ /**
377
+ * Load the global wp_filesystem.
378
+ *
379
+ * @since 1.0.0
380
+ *
381
+ * @return object The {@link Siteground_Migrator_Api_Service} instance.
382
+ */
383
+ private function setup_wp_filesystem() {
384
+ global $wp_filesystem;
385
+
386
+ // Initialize the WP filesystem, no more using 'file-put-contents' function.
387
+ if ( empty( $wp_filesystem ) ) {
388
+ require_once( ABSPATH . '/wp-admin/includes/file.php' );
389
+ \WP_Filesystem();
390
+ }
391
+
392
+ return $wp_filesystem;
393
+ }
394
+ }
core/Helper/Factory_Trait.php ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace SiteGround_Migrator\Helper;
3
+
4
+ use SiteGround_i18n\i18n_Service;
5
+
6
+ /**
7
+ * Trait used for factory pattern in the plugin.
8
+ */
9
+ trait Factory_Trait {
10
+
11
+ /**
12
+ * Create a new dependency.
13
+ *
14
+ * @since 1.1.0
15
+ *
16
+ * @param string $namespace The namespace of the dependency.
17
+ * @param string $class (optional) The type of the dependency.
18
+ *
19
+ * @throws \Exception Exception If the type is not supported.
20
+ */
21
+ public function factory( $namespace, $class = null ) {
22
+ $path = str_replace( ' ', '_', ucwords( str_replace( '_', ' ', $namespace ) ) );
23
+
24
+ // Adding exception for i18n dependency.
25
+ if ( 'i18n' === $namespace ) {
26
+ $this->$namespace = new \SiteGround_i18n\i18n_Service( 'siteground-migrator' );
27
+ return;
28
+ }
29
+
30
+ // Build the type and path for the dependency.
31
+ if ( empty( $class ) ) {
32
+ $type = $path;
33
+ } else {
34
+ $type = str_replace( ' ', '_', ucwords( str_replace( '_', ' ', $class ) ) );
35
+ }
36
+
37
+ $class_path = 'SiteGround_Migrator\\' . $path . '\\' . $type;
38
+
39
+ if ( ! class_exists( $class_path ) ) {
40
+ throw new \Exception( 'Unknown dependency type "' . $type . '" in "' . $path . '".' );
41
+ }
42
+
43
+ // Define the class.
44
+ if ( empty( $class ) ) {
45
+ $this->$namespace = new $class_path();
46
+ } else {
47
+ $this->$class = new $class_path();
48
+ }
49
+ }
50
+ }
core/Helper/Helper.php ADDED
@@ -0,0 +1,205 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SiteGround_Migrator\Helper;
4
+
5
+ /**
6
+ * The helper class.
7
+ *
8
+ * Provide information on how to troubleshoot migration issue
9
+ */
10
+ class Helper {
11
+
12
+ /**
13
+ * Help articles.
14
+ *
15
+ * @var array
16
+ */
17
+ private $articles = array(
18
+ 'https://www.siteground.com/kb/wordpress-migrator-allowed-memory-size-exhausted',
19
+ 'https://www.siteground.com/kb/wordpress-migrator-uncaught-pharexception-unable-open-new-phar',
20
+ 'https://www.siteground.com/kb/wordpress-migrator-long-tar-file-format',
21
+ 'https://www.siteground.com/kb/wordpress-migrator-curl-error-failed-connect-connection-refused',
22
+ 'https://www.siteground.com/kb/wordpress-migrator-curl-error-connection-timed-out',
23
+ 'https://www.siteground.com/kb/wordpress-migrator-can-not-download-manifest-file',
24
+ 'https://www.siteground.com/kb/wordpress-migrator-php-warning-getmypid-disabled',
25
+ 'https://www.siteground.com/kb/wordpress-migrator-can-not-connect-wp-migrator-plugin',
26
+ 'https://www.siteground.com/kb/wordpress-migrator-following-path-invalid-doesnt-exist',
27
+ 'https://www.siteground.com/kb/wordpress-migrator-memory-tried-allocate-bytes/',
28
+ 'https://www.siteground.com/kb/wordpress-migrator-maximum-execution-time-seconds-exceeded',
29
+ );
30
+
31
+ /**
32
+ * The error strings we wil ltry to match.
33
+ *
34
+ * @var array
35
+ */
36
+ private $error_strings = array(
37
+ 'allowed memory size of',
38
+ 'unable to open new phar',
39
+ 'tar-based phar',
40
+ 'failed to connect to wp-transfer-api.sgvps.net',
41
+ 'connection timed out after',
42
+ 'can not download manifest file',
43
+ 'getmypid() has been disabled',
44
+ 'can not connect to siteground wp-migrator',
45
+ 'the following path is invalid or doesn\'t exist',
46
+ 'out of memory',
47
+ 'maximum execution time of',
48
+ );
49
+
50
+ /**
51
+ * Get the error message
52
+ *
53
+ * @since 1.0.26
54
+ *
55
+ * @param array $error Array containing error information.
56
+ *
57
+ * @return string Custom error message.
58
+ */
59
+ public function get_error_message( $error ) {
60
+ // Return the old message if the error message is empty.
61
+ if ( empty( $error['message'] ) ) {
62
+ return esc_html__( 'We’ve encountered a critical error in your current hosting environment that prevents our plugin to complete the transfer.', 'siteground-migrator' );
63
+ }
64
+
65
+ // Build the error message.
66
+ $message = $error['message'];
67
+
68
+ if ( ! empty( $error['file'] ) ) {
69
+ $message .= ' in ' . $error['file'];
70
+ }
71
+
72
+ if ( ! empty( $error['line'] ) ) {
73
+ $message .= ' on line ' . $error['line'];
74
+ }
75
+
76
+ $article = $this->get_article( $error['message'] );
77
+
78
+ if ( false === $article ) {
79
+ return $message;
80
+ }
81
+
82
+ return $message . '<br><br> For more information on how to solve this problem, please read <a href="' . $article . '" target="_blank">this article</a>';
83
+ }
84
+
85
+ /**
86
+ * Get the help article by checking the error message.
87
+ *
88
+ * @since 1.0.26
89
+ *
90
+ * @param array $error Array containing error information.
91
+ *
92
+ * @return int|bool The article id or false otherwise.
93
+ */
94
+ public function get_article( $error ) {
95
+ foreach ( $this->error_strings as $index => $error_string ) {
96
+ if ( false === stripos( $error, $error_string ) ) {
97
+ continue;
98
+ }
99
+
100
+ return $this->articles[ $index ];
101
+ }
102
+
103
+ return false;
104
+ }
105
+
106
+ /**
107
+ * Prepare the messages before the transfer start.
108
+ *
109
+ * @since 1.0.27
110
+ *
111
+ * @param string $response The API response message.
112
+ *
113
+ * @return string The message we want to show.
114
+ */
115
+ public function before_transfer_messages( $response ) {
116
+ // Set the error messages.
117
+ $messages = array(
118
+ // Default message if the response message is not in the list or the error is 500.
119
+ 'default' => __( 'Please check your current hosting permissions and error logs and initiate new transfer.', 'siteground-migrator' ),
120
+ // Wrong transfer id or wrong token.
121
+ 'Unknown' => __( 'Please, make sure the transfer token is valid and has not expired.', 'siteground-migrator' ),
122
+ // Incorrect Hosting permissions or the request cannot be made due to a block due to API block.
123
+ 'Can not' => __( 'An error occured while initiating the transfer. Please, check your current files and folders permissions and initiate a new transfer.', 'siteground-migrator' ),
124
+ // Invalid authentication(invalid/expired token) or use of a blocked domain or src.
125
+ 'Invalid' => __( 'Please, verify the token used! If you still get this error after you initiate a new transfer, check if it’s not expired. You can try generating new token and start the transfer anew.', 'siteground-migrator' ),
126
+ );
127
+
128
+ // Return the proper response message if we have a match.
129
+ if ( array_key_exists( substr( $response, 0, 7 ), $messages ) ) {
130
+ return $messages[ substr( $response, 0, 7 ) ];
131
+ }
132
+
133
+ // Return the default message.
134
+ return $messages['default'];
135
+ }
136
+
137
+ /**
138
+ * Checks if the plugin run on the new SiteGround interface.
139
+ *
140
+ * @since 1.1.0
141
+ *
142
+ * @return boolean True/False.
143
+ */
144
+ public static function is_siteground() {
145
+ return (int) ( file_exists( '/etc/yum.repos.d/baseos.repo' ) && file_exists( '/Z' ) );
146
+ }
147
+
148
+ /**
149
+ * Get the sitespeed of an url for a device.
150
+ *
151
+ * @since 1.1.0
152
+ *
153
+ * @param string $url The URL used for the sitespeed.
154
+ * @param string $device The device that is to be used for the sitespeed tests.
155
+ * @param integer $counter Counter of how many tries have been ran.
156
+ * @return array SiteSpeed results, false on error.
157
+ */
158
+ public static function get_sitespeed( $url, $device = 'desktop', $counter = 0 ) {
159
+ // Hit the url, so it can be cached, when Google Api make the request.
160
+ if ( 0 === $counter ) {
161
+ wp_remote_get( $url );
162
+ }
163
+
164
+ if ( 3 === $counter ) {
165
+ return false;
166
+ }
167
+
168
+ // Make the request.
169
+ $response = wp_remote_get(
170
+ 'https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=' . $url . '&locale=' . get_locale() . '&strategy=' . $device,
171
+ array(
172
+ 'timeout' => 15,
173
+ )
174
+ );
175
+
176
+ // Make another request if the previous fail.
177
+ if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) {
178
+
179
+ $counter++;
180
+ return self::get_sitespeed( $url, $device, $counter );
181
+ }
182
+
183
+ // Bail if response is missing.
184
+ if ( empty( $response ) || empty( $response['body'] ) ) {
185
+ return false;
186
+ }
187
+
188
+ // Decode the response.
189
+ $response = json_decode( $response['body'], true );
190
+
191
+ // Check if tree is compatible with the expected result.
192
+ if (
193
+ empty( $response['lighthouseResult'] ) ||
194
+ empty( $response['lighthouseResult']['audits'] ) ||
195
+ empty( $response['lighthouseResult']['audits']['metrics'] ) ||
196
+ empty( $response['lighthouseResult']['audits']['metrics']['details'] ) ||
197
+ empty( $response['lighthouseResult']['audits']['metrics']['details']['items'] ) ||
198
+ empty( $response['lighthouseResult']['audits']['metrics']['details']['items'][0] )
199
+ ) {
200
+ return false;
201
+ }
202
+ // Return the analysis.
203
+ return $response['lighthouseResult']['audits']['metrics']['details']['items'][0]['speedIndex'];
204
+ }
205
+ }
core/Helper/Log_Service_Trait.php ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SiteGround_Migrator\Helper;
4
+
5
+ /**
6
+ * The file that defines the class that log running processes in custom log file.
7
+ *
8
+ * @link https://www.siteground.com
9
+ * @since 1.0.0
10
+ *
11
+ * @package SiteGround_Migrator
12
+ * @subpackage SiteGround_Migrator/includes
13
+ */
14
+
15
+ /**
16
+ * The log service class.
17
+ *
18
+ * @since 1.0.0
19
+ * @package SiteGround_Migrator
20
+ * @subpackage SiteGround_Migrator/includes
21
+ * @author SiteGround <hristo.p@siteground.com>
22
+ */
23
+ trait Log_Service_Trait {
24
+
25
+ /**
26
+ * Log a message.
27
+ *
28
+ * @since 1.0.0
29
+ *
30
+ * @param string $level The log level.
31
+ * @param string $message The message to log.
32
+ */
33
+ public function log( $level, $message ) {
34
+ // Finally log the message.
35
+ error_log(
36
+ sprintf(
37
+ "[%s] %s: %s \n",
38
+ date( 'd-M-Y H:i:s e' ),
39
+ $level,
40
+ is_array( $message ) ? implode( ', ', $message ) : $message
41
+ ),
42
+ 3,
43
+ WP_CONTENT_DIR . '/siteground-migrator.log'
44
+ );
45
+ }
46
+
47
+ /**
48
+ * Logs an error message to custom log file.
49
+ *
50
+ * @since 1.0.0
51
+ *
52
+ * @param string|array $message Error message/messages.
53
+ */
54
+ public function log_error( $message ) {
55
+ $this->log( 'ERROR', $message );
56
+ }
57
+
58
+ /**
59
+ * Logs an info message to custom log file.
60
+ *
61
+ * @since 1.0.0
62
+ *
63
+ * @param string|array $message Error message/messages.
64
+ */
65
+ public function log_info( $message ) {
66
+ $this->log( 'INFO', $message );
67
+ }
68
+
69
+ /**
70
+ * Write to custom log and prevent execution of other code.
71
+ *
72
+ * @since 1.0.0
73
+ *
74
+ * @param string|array $message Error message/messages.
75
+ */
76
+ public function log_die( $message ) {
77
+ $this->log( 'ERROR', $message );
78
+
79
+ // translators: `$message` the error message that will be displayed.
80
+ wp_die( $message, '', array( 'response' => 400 ) ); // phpcs:ignore WordPress.XSS.EscapeOutput
81
+ }
82
+
83
+ }
core/Loader/Loader.php ADDED
@@ -0,0 +1,245 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SiteGround_Migrator\Loader;
4
+
5
+ use SiteGround_Migrator;
6
+
7
+ use SiteGround_Migrator\Background_Process\WP_Async_Request;
8
+ use SiteGround_Migrator\Background_Process\Siteground_WP_Background_Process;
9
+ use SiteGround_Migrator\Helper\Factory_Trait;
10
+ use SiteGround_Migrator\Helper\Helper;
11
+ use SiteGround_i18n\i18n_Service;
12
+
13
+ /**
14
+ * Loader functions and main initialization class.
15
+ */
16
+ class Loader {
17
+
18
+ use Factory_Trait;
19
+ /**
20
+ * Dependencies.
21
+ *
22
+ * @var array
23
+ */
24
+ public $dependencies = array(
25
+ 'admin',
26
+ 'api_service',
27
+ 'cli',
28
+ 'files_service',
29
+ 'transfer_service',
30
+ 'rest',
31
+ );
32
+
33
+ /**
34
+ * External dependencies.
35
+ *
36
+ * @var array
37
+ */
38
+ public $external_dependencies = array(
39
+ 'i18n_Service' => array(
40
+ 'namespace' => 'i18n',
41
+ 'hook' => 'i18n',
42
+ 'args' => 'sg-cachepress',
43
+ ),
44
+ );
45
+
46
+ /**
47
+ * Create a new helper.
48
+ */
49
+ public function __construct() {
50
+ $this->load_external_dependencies();
51
+ $this->load_dependencies();
52
+ $this->add_hooks();
53
+
54
+ // Add custom shutdown function to handle fatal errors.
55
+ register_shutdown_function( array( $this, 'siteground_migrator_shutdown_handler' ) );
56
+ }
57
+
58
+ /**
59
+ * Load the main plugin dependencies.
60
+ *
61
+ * @since 1.1.0
62
+ */
63
+ public function load_dependencies() {
64
+ foreach ( $this->dependencies as $dependency ) {
65
+ $this->factory( $dependency );
66
+ }
67
+ }
68
+
69
+ /**
70
+ * Load all of our external dependencies.
71
+ *
72
+ * @since 1.1.0
73
+ */
74
+ public function load_external_dependencies() {
75
+ // Loop trough all deps.
76
+ foreach ( $this->external_dependencies as $library => $props ) {
77
+
78
+ // Build the class.
79
+ $class = 'SiteGround_' . $props['namespace'] . '\\' . $library;
80
+
81
+ // Check if class exists.
82
+ if ( ! class_exists( $class ) ) {
83
+ throw new \Exception( 'Unknown library type "' . $library . '".' );
84
+ }
85
+
86
+ // Lowercase the classsname we are going to use in the object context.
87
+ $classname = strtolower( $library );
88
+
89
+ // Check if we need to add any arguments when calling the class.
90
+ $this->$classname = true === array_key_exists( 'args', $props ) ? new $class( $props['args'] ) : new $class();
91
+
92
+ // Check if we need to add hooks for the specific dependency.
93
+ if ( array_key_exists( 'hook', $props ) ) {
94
+ call_user_func( array( $this, 'add_' . $props['hook'] . '_hooks' ) );
95
+ }
96
+ }
97
+ }
98
+
99
+ /**
100
+ * Add the hooks that the plugin will use to do the magic.
101
+ *
102
+ * @since 1.1.0
103
+ */
104
+ public function add_hooks() {
105
+ foreach ( $this->dependencies as $type ) {
106
+ call_user_func( array( $this, 'add_' . $type . '_hooks' ) );
107
+ }
108
+ }
109
+
110
+ /**
111
+ * Add the admin hooks.
112
+ *
113
+ * @since 1.1.0
114
+ */
115
+ public function add_admin_hooks() {
116
+ if ( is_network_admin() ) {
117
+ // Register the top level page into the WordPress admin menu.
118
+ add_action( 'network_admin_menu', array( $this->admin, 'add_menu_page' ) );
119
+ }
120
+
121
+ // Register the stylesheets for the admin area.
122
+ add_action( 'admin_enqueue_scripts', array( $this->admin, 'enqueue_styles' ) );
123
+ // Register the JavaScript for the admin area.
124
+ add_action( 'admin_enqueue_scripts', array( $this->admin, 'enqueue_scripts' ) );
125
+ // Add styles to WordPress admin head.
126
+ add_action( 'admin_print_styles', array( $this->admin, 'admin_print_styles' ) );
127
+
128
+ // Register the top level page into the WordPress admin menu.
129
+ add_action( 'admin_menu', array( $this->admin, 'add_menu_page' ) );
130
+
131
+ if ( is_network_admin() ) {
132
+ // Register the top level page into the WordPress admin menu.
133
+ add_action( 'network_admin_menu', array( $this->admin, 'add_menu_page' ) );
134
+ }
135
+ add_action( 'admin_init', array( $this->admin, 'register_settings' ) );
136
+ }
137
+
138
+ /**
139
+ * Add the API Service hooks.
140
+ *
141
+ * @since 1.1.0
142
+ */
143
+ public function add_api_service_hooks() {
144
+ // Fired when the transfer is completed and the site is migrated to SiteGround server.
145
+ add_action( 'wp_ajax_nopriv_siteground_migrator_is_plugin_installed', array( $this->api_service, 'is_plugin_installed' ) );
146
+ }
147
+
148
+ /**
149
+ * Add WP-CLI hooks.
150
+ *
151
+ * @since 1.1.0
152
+ */
153
+ public function add_cli_hooks() {
154
+ // If we're in `WP_CLI` load the related files.
155
+ if ( class_exists( 'WP_CLI' ) ) {
156
+ add_action( 'init', array( $this->cli, 'register_commands' ) );
157
+ }
158
+ }
159
+
160
+ /**
161
+ * Add Files Service hooks.
162
+ *
163
+ * @since 1.0.0
164
+ */
165
+ public function add_files_service_hooks() {
166
+ add_action( 'wp_ajax_nopriv_siteground_migrator_download_file', array( $this->files_service, 'download_file_from_uploads' ) );
167
+ }
168
+
169
+ /**
170
+ * Add Transfer service hooks.
171
+ *
172
+ * @since 1.0.0
173
+ */
174
+ public function add_transfer_service_hooks() {
175
+ // Handle options update.
176
+ add_action( 'wp_ajax_update_option_siteground_migrator_transfer_token', array( $this->transfer_service, 'update_transfer_token' ) );
177
+ add_action( 'wp_ajax_nopriv_update_option_siteground_migrator_transfer_token', array( $this->transfer_service, 'update_transfer_token' ) );
178
+ // Get the transfer current status.
179
+ add_action( 'wp_ajax_siteground_migrator_get_transfer_status', array( $this->transfer_service, 'get_transfer_status' ) );
180
+ // Cancel the transfer.
181
+ add_action( 'wp_ajax_siteground_migrator_transfer_cancelled', array( $this->transfer_service, 'transfer_cancelled' ) );
182
+ // Continue the transfer.
183
+ add_action( 'wp_ajax_siteground_migrator_transfer_continue', array( $this->transfer_service, 'transfer_continue' ) );
184
+ // Restart the transfer.
185
+ add_action( 'wp_ajax_siteground_migrator_transfer_restart', array( $this->transfer_service, 'transfer_restart' ) );
186
+ // Handle all status updates from the remote api.
187
+ add_action( 'wp_ajax_nopriv_siteground_migrator_update_transfer_status', array( $this->transfer_service, 'update_transfer_status_endpoint' ) );
188
+ // Hide all annoying notices from our page.
189
+ add_action( 'admin_init', array( $this->transfer_service, 'hide_errors_and_notices' ) );
190
+ }
191
+
192
+ /**
193
+ * Handle all functions shutdown and check for fatal errors in plugin.
194
+ *
195
+ * @since 1.0.5
196
+ */
197
+ public function siteground_migrator_shutdown_handler() {
198
+ // Get the last error.
199
+ $error = error_get_last();
200
+
201
+ // Bail if there is no error.
202
+ if ( empty( $error ) ) {
203
+ return;
204
+ }
205
+
206
+ // Update the status of transfer if the fatal error occured.
207
+ if (
208
+ strpos( $error['file'], plugin_dir_path( dirname( __FILE__ ) ) ) !== false &&
209
+ E_ERROR === $error['type']
210
+ ) {
211
+ $helper = new Helper();
212
+ // Update the status.
213
+ $this->transfer_service->update_status(
214
+ esc_html__( 'Critical Transfer Error', 'siteground-migrator' ),
215
+ 0,
216
+ $helper->get_error_message( $error )
217
+ );
218
+
219
+ // Log the fatal error in our custom log.
220
+ $this->transfer_service->log_error( print_r( $error, true ) );
221
+
222
+ }
223
+ }
224
+ /**
225
+ * Add i18n Hooks.
226
+ *
227
+ * @return void
228
+ */
229
+ public function add_i18n_hooks() {
230
+ // Load the plugin textdomain.
231
+ add_action( 'after_setup_theme', array( $this->i18n_service, 'load_textdomain' ), 9999 );
232
+ // Generate JSON translations.
233
+ add_action( 'upgrader_process_complete', array( $this->i18n_service, 'update_json_translations' ), 10, 2 );
234
+ }
235
+
236
+ /**
237
+ * Add Rest Hooks.
238
+ *
239
+ * @since 1.1.0
240
+ */
241
+ public function add_rest_hooks() {
242
+ // Register rest routes.
243
+ add_action( 'rest_api_init', array( $this->rest, 'register_rest_routes' ) );
244
+ }
245
+ }
core/Rest/Rest.php ADDED
@@ -0,0 +1,152 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace SiteGround_Migrator\Rest;
3
+
4
+ use Siteground_Migrator\Helper\Factory_Trait;
5
+ /**
6
+ * Main Rest class.
7
+ */
8
+ class Rest {
9
+ use Factory_Trait;
10
+
11
+ const REST_NAMESPACE = 'siteground-migrator/v1';
12
+
13
+ /**
14
+ * Dependencies.
15
+ *
16
+ * @since 1.1.0
17
+ *
18
+ * @var array
19
+ */
20
+ public $dependencies = array(
21
+ 'transfer_service' => 'rest_helper_transfer_service',
22
+ );
23
+
24
+ /**
25
+ * The constructor.
26
+ */
27
+ public function __construct() {
28
+ $this->load_dependencies();
29
+ }
30
+
31
+ /**
32
+ * Load the main plugin dependencies.
33
+ *
34
+ * @since 1.1.0
35
+ */
36
+ public function load_dependencies() {
37
+ foreach ( $this->dependencies as $dependency => $classes ) {
38
+ $this->factory( 'rest', $classes );
39
+ }
40
+ }
41
+
42
+ /**
43
+ * Check if a given request has admin access.
44
+ *
45
+ * @since 1.1.0
46
+ *
47
+ * @param WP_REST_Request $request Full data about the request.
48
+ * @return WP_Error|bool
49
+ */
50
+ public function check_permissions( $request ) {
51
+ return current_user_can( 'manage_options' );
52
+ }
53
+
54
+ /**
55
+ * Register REST routes.
56
+ *
57
+ * @since 1.1.0
58
+ */
59
+ public function register_rest_routes() {
60
+ foreach ( $this->dependencies as $dependency => $classes ) {
61
+ call_user_func( array( $this, 'register_' . $dependency . '_rest_routes' ) );
62
+ }
63
+
64
+ }
65
+
66
+ /**
67
+ * Register Transfer Status REST Routes.
68
+ *
69
+ * @since 1.1.0
70
+ */
71
+ public function register_transfer_service_rest_routes() {
72
+ register_rest_route(
73
+ self::REST_NAMESPACE,
74
+ '/transfer-status/',
75
+ array(
76
+ 'methods' => \WP_REST_Server::EDITABLE,
77
+ 'callback' => array( $this->rest_helper_transfer_service, 'update_transfer_status' ),
78
+ 'permission_callback' => array( $this, 'check_permissions' ),
79
+ )
80
+ );
81
+
82
+ register_rest_route(
83
+ self::REST_NAMESPACE,
84
+ '/transfer-status/',
85
+ array(
86
+ 'methods' => \WP_REST_Server::READABLE,
87
+ 'callback' => array( $this->rest_helper_transfer_service, 'get_transfer_status' ),
88
+ 'permission_callback' => array( $this, 'check_permissions' ),
89
+ )
90
+ );
91
+
92
+ register_rest_route(
93
+ self::REST_NAMESPACE,
94
+ '/transfer-continue/',
95
+ array(
96
+ 'methods' => \WP_REST_Server::EDITABLE,
97
+ 'callback' => array( $this->rest_helper_transfer_service, 'transfer_continue' ),
98
+ 'permission_callback' => array( $this, 'check_permissions' ),
99
+ )
100
+ );
101
+
102
+ register_rest_route(
103
+ self::REST_NAMESPACE,
104
+ '/transfer-cancelled/',
105
+ array(
106
+ 'methods' => \WP_REST_Server::EDITABLE,
107
+ 'callback' => array( $this->rest_helper_transfer_service, 'transfer_cancelled' ),
108
+ 'permission_callback' => array( $this, 'check_permissions' ),
109
+ )
110
+ );
111
+
112
+ register_rest_route(
113
+ self::REST_NAMESPACE,
114
+ '/initiate-new-transfer/',
115
+ array(
116
+ 'methods' => \WP_REST_Server::EDITABLE,
117
+ 'callback' => array( $this->rest_helper_transfer_service, 'initiate_new_transfer' ),
118
+ 'permission_callback' => array( $this, 'check_permissions' ),
119
+ )
120
+ );
121
+
122
+ register_rest_route(
123
+ self::REST_NAMESPACE,
124
+ '/transfer-token/',
125
+ array(
126
+ 'methods' => \WP_REST_Server::EDITABLE,
127
+ 'callback' => array( $this->rest_helper_transfer_service, 'update_transfer_token' ),
128
+ 'permission_callback' => array( $this, 'check_permissions' ),
129
+ )
130
+ );
131
+
132
+ register_rest_route(
133
+ self::REST_NAMESPACE,
134
+ '/transfer-token/',
135
+ array(
136
+ 'methods' => \WP_REST_Server::READABLE,
137
+ 'callback' => array( $this->rest_helper_transfer_service, 'get_transfer_token' ),
138
+ 'permission_callback' => array( $this, 'check_permissions' ),
139
+ )
140
+ );
141
+
142
+ register_rest_route(
143
+ self::REST_NAMESPACE,
144
+ '/transfer-success/',
145
+ array(
146
+ 'methods' => \WP_REST_Server::READABLE,
147
+ 'callback' => array( $this->rest_helper_transfer_service, 'transfer_success' ),
148
+ 'permission_callback' => array( $this, 'check_permissions' ),
149
+ )
150
+ );
151
+ }
152
+ }
core/Rest/Rest_Helper.php ADDED
@@ -0,0 +1,129 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace SiteGround_Migrator\Rest;
3
+
4
+ /**
5
+ * Rest Helper class that process all rest requests and provide json output for react app.
6
+ */
7
+ abstract class Rest_Helper {
8
+
9
+ /**
10
+ * Checks if the `option_key` paramether exists in rest data.
11
+ *
12
+ * @since 1.1.0
13
+ *
14
+ * @param object $request Request data.
15
+ * @param string $key The option key.
16
+ * @param bool $bail Whether to send json error or to return a response.
17
+ *
18
+ * @return string The option value.
19
+ */
20
+ public function validate_and_get_option_value( $request, $key, $bail = true ) {
21
+ $data = json_decode( $request->get_body(), true );
22
+
23
+ // Bail if the option key is not set.
24
+ if ( ! isset( $data[ $key ] ) ) {
25
+ return true === $bail ? self::send_json_error( __( 'Incorrect params used.', 'siteground-migrator' ) ) : false;
26
+ }
27
+
28
+ return $data[ $key ];
29
+ }
30
+
31
+ /**
32
+ * Response result check and return the respective json method.
33
+ *
34
+ * @since 1.1.0
35
+ *
36
+ * @param bool $result True for success, false for failure.
37
+ * @param string $message The response message.
38
+ * @param array $data Additional data to be send.
39
+ */
40
+ public function send_json_response( $result, $message = '', $data = array() ) {
41
+ // Return json 400 error response on false.
42
+ if ( false === boolval( $result ) ) {
43
+ self::send_json_error( $message, $data );
44
+ return;
45
+ }
46
+
47
+ // Return json 200 response on true.
48
+ self::send_json_success( $message, $data );
49
+ }
50
+
51
+ /**
52
+ * Json 400 error response.
53
+ *
54
+ * @since 1.1.0
55
+ *
56
+ * @param string $message The response message.
57
+ * @param array $data Additional data to be send.
58
+ */
59
+ public function send_json_error( $message = '', $data = array() ) {
60
+ self::send_json( 400, $message, $data );
61
+ }
62
+
63
+ /**
64
+ * Json 200 success response.
65
+ *
66
+ * @since 1.1.0
67
+ *
68
+ * @param string $message The response message.
69
+ * @param array $data Additional data to be send.
70
+ */
71
+ public static function send_json_success( $message = '', $data = array() ) {
72
+ self::send_json( 200, $message, $data );
73
+ }
74
+
75
+ /**
76
+ * Custom json response.
77
+ *
78
+ * @since 1.1.0
79
+ *
80
+ * @param int $status_code The status code.
81
+ * @param string $message The response message.
82
+ * @param array $data Additional data to be send.
83
+ */
84
+ public static function send_json( $status_code, $message = '', $data = array() ) {
85
+ if ( ! headers_sent() ) {
86
+ header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
87
+
88
+ if ( null !== $status_code ) {
89
+ status_header( $status_code );
90
+ }
91
+ }
92
+
93
+ // Return status code.
94
+ $response = array(
95
+ 'status' => $status_code,
96
+ 'data' => $data,
97
+ );
98
+
99
+ // Return message only if it is not empty.
100
+ if ( ! empty( $message ) ) {
101
+ $response['message'] = $message;
102
+ }
103
+
104
+ echo wp_json_encode( $response );
105
+ exit;
106
+ }
107
+
108
+ /**
109
+ * Validate rest request and prepare data.
110
+ *
111
+ * @since 1.1.0
112
+ *
113
+ * @param object $request Request data.
114
+ * @param array $additional_arg Additional arguments.
115
+ *
116
+ * @return array The prepared data.
117
+ */
118
+ public function validate_rest_request( $request, $additional_arg = array() ) {
119
+ $body = json_decode( $request->get_body(), true );
120
+
121
+ $key = key( $body );
122
+
123
+ return array(
124
+ 'key' => $key,
125
+ 'value' => intval( $body[ $key ] ),
126
+ 'option' => 'siteground_migrator_' . $key,
127
+ );
128
+ }
129
+ }
core/Rest/Rest_Helper_Transfer_Service.php ADDED
@@ -0,0 +1,311 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace SiteGround_Migrator\Rest;
3
+
4
+ use SiteGround_Migrator\Transfer_Service\Transfer_Service;
5
+ use SiteGround_Migrator\Rest\Rest_Helper;
6
+ use SiteGround_Migrator\Helper\Helper;
7
+
8
+ /**
9
+ * Rest Helper class that manages Transfer Service options.
10
+ */
11
+ class Rest_Helper_Transfer_Service extends Rest_Helper {
12
+
13
+ /**
14
+ * The constructor.
15
+ */
16
+ public function __construct() {
17
+ $this->transfer_service = new Transfer_Service();
18
+ }
19
+
20
+ /**
21
+ * Get the transfer status.
22
+ *
23
+ * @since 1.1.0
24
+ */
25
+ public function get_transfer_status() {
26
+ // Send the response.
27
+ self::send_json_success(
28
+ '',
29
+ array(
30
+ 'transfer_status' => get_option( 'siteground_migrator_transfer_status', array() ),
31
+ 'transfer_progress' => get_option( 'siteground_migrator_progress', 0 ),
32
+ )
33
+ );
34
+ }
35
+
36
+ /**
37
+ * Handle transfer status updates from remote API.
38
+ *
39
+ * @param object $request The request sent by the client.
40
+ *
41
+ * @since 1.1.0
42
+ */
43
+ public function update_transfer_status( $request ) {
44
+
45
+ // Convert the data to array.
46
+ $body = json_decode( sanitize_text_field( wp_unslash( $request->get_body() ) ), true );
47
+
48
+ $data = $body['data'];
49
+
50
+ $step = 5;
51
+
52
+ $current_step = get_option( 'siteground_migrator_current_step', 0 );
53
+
54
+ // Translate the message from out api.
55
+ // See http://keithdevon.com/using-variables-wordpress-translation-functions/.
56
+ $data['message'] = __( $data['message'], 'siteground-migrator' );
57
+
58
+ if ( ! empty( $data['description'] ) ) {
59
+ $data['description'] = __( $data['description'], 'siteground-migrator' );
60
+ }
61
+
62
+ // Very ugly way to prevent unwanted messages to be displayed.
63
+ if (
64
+ empty( $data['tot_files'] ) ||
65
+ (
66
+ isset( $data['tot_files'] ) &&
67
+ $data['n_file'] > $current_step
68
+ )
69
+ ) {
70
+ // Update the current step only if the `n_file` param exists.
71
+ if ( isset( $data['n_file'] ) ) {
72
+ update_option( 'siteground_migrator_current_step', $data['n_file'] );
73
+ }
74
+
75
+ // Update the progress bar.
76
+ if ( isset( $data['tot_files'] ) ) {
77
+ // Calculate the step to update the progress bar.
78
+ $step = 30 / ( $data['tot_files'] / 20 );
79
+ $data['message'] = sprintf( __( 'Downloaded %d out of %d files...', 'siteground-migrator' ), $data['n_file'], $data['tot_files'] );
80
+ }
81
+
82
+ // Update the status of transfer.
83
+ update_option( 'siteground_migrator_transfer_status', $data );
84
+
85
+ // Update the progress bar as well.
86
+ $this->transfer_service->update_transfer_progress( intval( $step ) );
87
+ }
88
+
89
+ // Send notification to site admin when the transfer is completed or failed.
90
+ $this->transfer_service->email_service->prepare_and_send_notification( $data );
91
+
92
+ $data['success'] = 1;
93
+
94
+ // Send the response.
95
+ self::send_json_success( '', $data );
96
+ }
97
+
98
+ /**
99
+ * Resume the transfer.
100
+ *
101
+ * @since 1.1.0
102
+ */
103
+ public function transfer_continue() {
104
+ // Update the status, that transfer has started.
105
+ $this->transfer_service::update_status( esc_html__( 'Transfer started. Creating archives of files...', 'siteground-migrator' ) );
106
+
107
+ $this->transfer_service->run_background_processes();
108
+
109
+ // Send a message to the front-end.
110
+ self::send_json_success( esc_html__( 'Transfer started. Creating archives of files...', 'siteground-migrator' ) );
111
+ }
112
+
113
+ /**
114
+ * Cancel the transfer.
115
+ *
116
+ * @param object $request Body of the request.
117
+ *
118
+ * @since 1.1.0
119
+ */
120
+ public function transfer_cancelled( $request ) {
121
+ // Invalidate the token.
122
+ $body = json_decode( sanitize_text_field( wp_unslash( $request->get_body() ) ), true );
123
+
124
+ $this->transfer_service->cancel_and_reset();
125
+
126
+ // Send the response.
127
+ self::send_json_success(
128
+ esc_html__( 'Transfer cancelled.', 'siteground-migrator' ),
129
+ array(
130
+ 'success' => 'true',
131
+ )
132
+ );
133
+ }
134
+
135
+ /**
136
+ * Initiate new transfer.
137
+ *
138
+ * @since 2.0.0
139
+ *
140
+ * @param object $request The request.
141
+ */
142
+ public function initiate_new_transfer( $request ) {
143
+ // Invalidate the token.
144
+ $body = json_decode( sanitize_text_field( wp_unslash( $request->get_body() ) ), true );
145
+
146
+ $this->transfer_service->cancel_and_reset();
147
+
148
+ // Send the response.
149
+ self::send_json_success(
150
+ '',
151
+ array(
152
+ 'success' => 'true',
153
+ )
154
+ );
155
+ }
156
+
157
+ /**
158
+ * Get the transfer token.
159
+ *
160
+ * @since 1.1.0
161
+ */
162
+ public function get_transfer_token() {
163
+ // Get the transfer status.
164
+ $transfer_token = get_option( 'siteground_migrator_transfer_token', '' );
165
+
166
+ // Send the response.
167
+ self::send_json_success(
168
+ '',
169
+ array(
170
+ 'success' => 'true',
171
+ 'data' => array(
172
+ 'transfer_token' => $transfer_token,
173
+ ),
174
+ )
175
+ );
176
+ }
177
+
178
+ /**
179
+ * Update the transfer token.
180
+ *
181
+ * @param object $request The request sent by the client.
182
+ *
183
+ * @since 1.1.0
184
+ */
185
+ public function update_transfer_token( $request ) {
186
+ $data = json_decode( sanitize_text_field( wp_unslash( $request->get_body() ) ), true );
187
+
188
+ // Bail if the transfer token is empty.
189
+ if ( empty( $data ) || empty( $data['transfer_token'] ) ) {
190
+ self::send_json_error(
191
+ __( 'Transfer Token Missing.', 'siteground-migrator' )
192
+ );
193
+ }
194
+
195
+ // Update the token.
196
+ update_option(
197
+ 'siteground_migrator_transfer_token',
198
+ sanitize_text_field( wp_unslash( $data['transfer_token'] ) )
199
+ );
200
+
201
+ // Set user preferences for email notification.
202
+ update_option(
203
+ 'siteground_migrator_send_email_notification',
204
+ true === $data['send_email_notification'] ? 'yes' : 'no'
205
+ );
206
+
207
+ // Update the token.
208
+ update_option(
209
+ 'siteground_migrator_email_recipient',
210
+ sanitize_text_field( wp_unslash( $data['email_recepient'] ) )
211
+ );
212
+
213
+ // Start the transfer.
214
+ $this->transfer_service->transfer_start();
215
+
216
+ // Send the response.
217
+ self::send_json_success(
218
+ __( 'Transfer Started.', 'siteground-migrator' ),
219
+ array(
220
+ 'success' => 'true',
221
+ 'data' => array(
222
+ 'transfer_token' => $data['transfer_token'],
223
+ 'send_email_notification' => $data['send_email_notification'],
224
+ 'email_recipient' => $data['email_recepient'],
225
+ ),
226
+ )
227
+ );
228
+ }
229
+
230
+ /**
231
+ * Get the setup info when transfer is succesful.
232
+ *
233
+ * @since 1.1.0
234
+ *
235
+ * @return void
236
+ */
237
+ public function transfer_success() {
238
+ // Get current status.
239
+ $status = get_option( 'siteground_migrator_transfer_status' );
240
+ // Get new URL.
241
+ $temp_url = ! empty( $status['temp_url'] ) ? $status['temp_url'] : '';
242
+ // Get the new nameservers.
243
+ $new_nameservers = ! empty( $status['dns_servers'] ) ? $status['dns_servers'] : array();
244
+ // Check if previous hosting is SiteGround.
245
+ $is_siteground = get_option( 'siteground_migrator_is_siteground_env', false );
246
+
247
+ // Set initial data.
248
+ $data = array(
249
+ 'success' => 1,
250
+ 'data' => array(
251
+ 'new_nameservers' => $new_nameservers,
252
+ 'temp_url' => $temp_url,
253
+ ),
254
+ );
255
+
256
+ if ( $is_siteground ) {
257
+ // Send the response.
258
+ self::send_json_success(
259
+ __( 'Transfer Completed Successfully!', 'siteground-migrator' ),
260
+ $data
261
+ );
262
+ }
263
+
264
+ $new_sitespeed = array(
265
+ 'mobile' => Helper::get_sitespeed( $temp_url, 'mobile' ),
266
+ 'desktop' => Helper::get_sitespeed( $temp_url, 'desktop' ),
267
+ );
268
+ $old_sitespeed = array(
269
+ 'mobile' => Helper::get_sitespeed( get_home_url( '/' ), 'mobile' ),
270
+ 'desktop' => Helper::get_sitespeed( get_home_url( '/' ), 'desktop' ),
271
+ );
272
+
273
+ // Check all SiteSpeed tests, bail before adding the results, if any are missing.
274
+ if (
275
+ false === $new_sitespeed['mobile'] ||
276
+ false === $new_sitespeed['desktop'] ||
277
+ false === $old_sitespeed['mobile'] ||
278
+ false === $old_sitespeed['desktop']
279
+ ) {
280
+ // Send the response.
281
+ self::send_json_success(
282
+ __( 'Transfer Completed Successfully!', 'siteground-migrator' ),
283
+ $data
284
+ );
285
+ }
286
+
287
+ if ( ( ! empty( $new_sitespeed ) && ! empty( $old_sitespeed ) ) &&
288
+ ( $new_sitespeed['desktop'] > $old_sitespeed['desktop'] + 1000 ||
289
+ $new_sitespeed['desktop'] > 2000 )
290
+ ) {
291
+
292
+ // Send the response.
293
+ self::send_json_success(
294
+ __( 'Transfer Completed Successfully!', 'siteground-migrator' ),
295
+ $data
296
+ );
297
+ }
298
+
299
+ $data['data']['sitespeed'] = array(
300
+ 'new' => $new_sitespeed,
301
+ 'old' => $old_sitespeed,
302
+ );
303
+
304
+ // Send the response.
305
+ self::send_json_success(
306
+ __( 'Transfer Completed Successfully!', 'siteground-migrator' ),
307
+ $data
308
+ );
309
+ }
310
+
311
+ }
core/Transfer_Service/Transfer_Service.php ADDED
@@ -0,0 +1,595 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SiteGround_Migrator\Transfer_Service;
4
+
5
+ use SiteGround_Migrator\Helper\Log_Service_Trait;
6
+ use SiteGround_Migrator\Helper\Helper;
7
+ use SiteGround_Migrator\Api_Service\Api_Service;
8
+ use SiteGround_Migrator\Files_Service\Files_Service;
9
+ use SiteGround_Migrator\Database_Service\Database_Service;
10
+ use SiteGround_Migrator\Background_Process\Background_Process;
11
+ use SiteGround_Migrator\Directory_Service\Directory_Service;
12
+ use SiteGround_Migrator\Email_Service\Email_Service;
13
+
14
+ /**
15
+ * The transfer service class.
16
+ */
17
+ class Transfer_Service {
18
+ use Log_Service_Trait;
19
+
20
+ /**
21
+ * A Siteground_Migrator_Api_Service instance.
22
+ *
23
+ * @var Siteground_Migrator_Api_Service object
24
+ *
25
+ * @since 1.0.0
26
+ */
27
+ public $api_service;
28
+
29
+ /**
30
+ * A Siteground_Migrator_Files_Service instance.
31
+ *
32
+ * @var Siteground_Migrator_Files_Service object
33
+ *
34
+ * @since 1.0.0
35
+ */
36
+ private $file_service;
37
+
38
+ /**
39
+ * A Siteground_Migrator_Database_Service instance.
40
+ *
41
+ * @var Siteground_Migrator_Database_Service object
42
+ *
43
+ * @since 1.0.0
44
+ */
45
+ private $database_service;
46
+
47
+ /**
48
+ * A Siteground_Migrator_Background_Process instance.
49
+ *
50
+ * @var Siteground_Migrator_Background_Process object
51
+ *
52
+ * @since 1.0.0
53
+ */
54
+ public $background_process;
55
+
56
+ /**
57
+ * A Siteground_Migrator_Directory_Service instance.
58
+ *
59
+ * @var Siteground_Migrator_Directory_Service object
60
+ *
61
+ * @since 1.0.0
62
+ */
63
+ public $directory_service;
64
+
65
+ /**
66
+ * A Siteground_Migrator_Email_Service instance.
67
+ *
68
+ * @var Siteground_Migrator_Email_Service object
69
+ *
70
+ * @since 1.0.0
71
+ */
72
+ private $email_service;
73
+
74
+ /**
75
+ * {@link Siteground_Migrator_Transfer_Service} singleton instance.
76
+ *
77
+ * @since 1.0.0
78
+ * @access private
79
+ * @var \Siteground_Migrator_Transfer_Service $instance {@link Siteground_Migrator_Transfer_Service} singleton instance.
80
+ */
81
+ private static $instance;
82
+
83
+
84
+ /**
85
+ * The constructor.
86
+ *
87
+ * @since 1.0.0
88
+ */
89
+ public function __construct() {
90
+ // Set the api service.
91
+ $this->api_service = new Api_Service();
92
+ $this->file_service = new Files_Service();
93
+ $this->database_service = new Database_Service();
94
+ $this->background_process = new Background_Process();
95
+ $this->directory_service = new Directory_Service();
96
+ $this->email_service = new Email_Service();
97
+
98
+ $this->helper = new Helper();
99
+
100
+ self::$instance = $this;
101
+ }
102
+
103
+ /**
104
+ * Get {@link Siteground_Migrator_Transfer_Service} singleton instance.
105
+ *
106
+ * @since 1.0.0
107
+ *
108
+ * @return Siteground_Migrator_Transfer_Service {@link Siteground_Migrator_Transfer_Service} singleton instance.
109
+ */
110
+ public static function get_instance() {
111
+ return self::$instance;
112
+ }
113
+
114
+ /**
115
+ * Hide all errors and notices on our custom dashboard.
116
+ *
117
+ * @since 1.0.6
118
+ */
119
+ public function hide_errors_and_notices() {
120
+ // Hide all error on our dashboard.
121
+ if (
122
+ isset( $_GET['page'] ) &&
123
+ 'siteground-migrator' === $_GET['page']
124
+ ) {
125
+ remove_all_actions( 'network_admin_notices' );
126
+ remove_all_actions( 'user_admin_notices' );
127
+ remove_all_actions( 'admin_notices' );
128
+ remove_all_actions( 'all_admin_notices' );
129
+ }
130
+ }
131
+
132
+ /**
133
+ * Check the current hosting enviroment before starting the transfer.
134
+ *
135
+ * @since 1.0.26
136
+ *
137
+ * @return bool True if the enviromenment has issues, false otherwise.
138
+ */
139
+ public function check_environment_before_transfer() {
140
+ if ( is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
141
+ $plugins = get_plugins();
142
+
143
+ if (
144
+ version_compare( $plugins['woocommerce/woocommerce.php']['Version'], '4.0.0', '>=' ) &&
145
+ version_compare( $plugins['woocommerce/woocommerce.php']['Version'], '4.3.0', '<' )
146
+ ) {
147
+ self::update_status(
148
+ esc_html__( 'Your WooCommerce Needs Update!', 'siteground-migrator' ),
149
+ 0,
150
+ __( 'You are using a version of WooCommerce that has a known issue preventing our plugin from migrating your content successfully. Please, update WooCommerce to version 4.2.1 or newer and start the migration anew! <br><br> For more information on how to solve this problem, please read <a href="https://www.siteground.com/kb/wordpress-migrator-woocommerce-needs-update" target="_blank">this article</a>', 'siteground-migrator' )
151
+ );
152
+
153
+ return true;
154
+ }
155
+ }
156
+
157
+ // Bail if temp dirs didn't exist.
158
+ if ( false === $this->directory_service->check_if_temp_dirs_extist() ) {
159
+ // Update the status.
160
+ self::update_status(
161
+ esc_html__( 'Transfer cannot be initiated due to permissions error.', 'siteground-migrator' ),
162
+ 0,
163
+ __( 'For the purposes of this transfer we need to create temporary files on your current hosting account. Please fix your files permissions at your current host and make sure your wp-content folder is writable. Files should be set to 644 and folders to 755. <br><br> For more information on how to solve this problem, please read <a href="https://www.siteground.com/kb/wordpress-migrator-permissions-error" target="_blank">this article</a>', 'siteground-migrator' )
164
+ );
165
+
166
+ return true;
167
+ }
168
+
169
+ return false;
170
+ }
171
+
172
+ /**
173
+ * Update plugin settings and trigger the migration.
174
+ *
175
+ * @since 1.0.0
176
+ */
177
+ public function update_transfer_token() {
178
+
179
+ if ( true === $this->check_environment_before_transfer() ) {
180
+ return;
181
+ }
182
+
183
+ // Bail if the nonce field is not set.
184
+ if ( empty( $_POST['siteground_migrator_update_options'] ) ) {
185
+ return;
186
+ }
187
+
188
+ // Verify that the nonce is correct and unexpired.
189
+ if ( ! wp_verify_nonce( sanitize_key( $_POST['siteground_migrator_update_options'] ), 'siteground_migrator_options' ) ) {
190
+ return;
191
+ }
192
+
193
+ // Bail if the transfer token is empty.
194
+ if ( empty( $_POST['siteground_migrator_transfer_token'] ) ) {
195
+ return;
196
+ }
197
+
198
+ // Update the token.
199
+ update_option(
200
+ 'siteground_migrator_transfer_token',
201
+ sanitize_text_field( wp_unslash( $_POST['siteground_migrator_transfer_token'] ) )
202
+ );
203
+
204
+ // Set user preferences for email notification.
205
+ update_option(
206
+ 'siteground_migrator_send_email_notification',
207
+ isset( $_POST['siteground_migrator_send_email_notification'] ) ? 'yes' : 'no'
208
+ );
209
+
210
+ // Update the token.
211
+ update_option(
212
+ 'siteground_migrator_email_recipient',
213
+ sanitize_text_field( wp_unslash( $_POST['siteground_migrator_email_recipient'] ) )
214
+ );
215
+
216
+ // Start the transfer.
217
+ $this->transfer_start();
218
+ }
219
+
220
+ /**
221
+ * Retrieve information from api to check if the domain is the same
222
+ * and if there is enough free space for migration.
223
+ *
224
+ * @since 1.0.0
225
+ *
226
+ * @return bool True if everything is ok
227
+ */
228
+ private function before_start_transfer() {
229
+
230
+ // Bail if transfer token in not parsed or invalid.
231
+ if ( false === $this->api_service->parse_transfer_token() ) {
232
+ return false;
233
+ }
234
+
235
+ $data = $this->api_service->get_installation_info();
236
+
237
+ $response = $this->api_service->do_request( '/transfer/init/', $data );
238
+
239
+ // Bail if the transfer init has failed.
240
+ if (
241
+ 0 !== $response['status_code'] &&
242
+ 200 !== $response['status_code']
243
+ ) {
244
+
245
+ self::update_status(
246
+ $response['message'],
247
+ 0,
248
+ $this->helper->before_transfer_messages( $response['message'] )
249
+ );
250
+
251
+ return false;
252
+ }
253
+
254
+ // Bail if there is not enough space on new server.
255
+ if ( false === $this->check_size( $response['transfer_info'], $data['wp_size'] ) ) {
256
+ return false;
257
+ }
258
+
259
+ // Bail if the new domain is different from current one.
260
+ if ( false === $this->validate_domain( $response['transfer_info'] ) ) {
261
+ return false;
262
+ }
263
+
264
+ return true;
265
+ }
266
+
267
+ /**
268
+ * Check if the current domain match the domain where the site will be migrated.
269
+ *
270
+ * @since 1.0.0
271
+ *
272
+ * @param object $transfer_info Transfer info provided by the remote server.
273
+ *
274
+ * @return Bool True if the domain matches, false otherwise.
275
+ */
276
+ private function validate_domain( $transfer_info ) {
277
+ $src_url = $transfer_info->src_domain . $transfer_info->src_path;
278
+ $dst_url = $transfer_info->dst_domain . $transfer_info->dst_path;
279
+
280
+ if ( untrailingslashit( $src_url ) !== untrailingslashit( $dst_url ) ) {
281
+ self::update_status(
282
+ sprintf(
283
+ esc_html__(
284
+ 'Site domain to be changed to %s',
285
+ 'siteground-migrator'
286
+ ),
287
+ $dst_url
288
+ ),
289
+ 5,
290
+ esc_html__( 'While generating the transfer token, you have chosen to use a different domain than the one currently used with your WordPress. To accommodate this change we will transfer a copy of your current database settings and replace the domain information in the migrated database. Your live website will not be affected.', 'siteground-migrator' )
291
+ );
292
+
293
+ return false;
294
+ }
295
+
296
+ return true;
297
+ }
298
+
299
+ /**
300
+ * Check if the remote server has enough space to host the current installation.
301
+ *
302
+ * @since 1.0.0
303
+ *
304
+ * @param object $transfer_info Transfer info provided by the remote server.
305
+ * @param int $wp_size Size of current WordPress installation.
306
+ *
307
+ * @return bool True if the space is ok, false otherwise.
308
+ */
309
+ private function check_size( $transfer_info, $wp_size ) {
310
+ if ( empty( $transfer_info->free_space ) ) {
311
+ return false;
312
+ }
313
+
314
+ if ( $wp_size > $transfer_info->free_space ) {
315
+ self::update_status(
316
+ esc_html__( 'There is no enough free space on your new server.', 'siteground-migrator' ),
317
+ 0,
318
+ esc_html__( 'Please either free some space at your receiving SiteGround hosting account, or upgrade it to a higher plan that will provide you enough space for the website you want to transfer.', 'siteground-migrator' )
319
+ );
320
+
321
+ return false;
322
+ }
323
+
324
+ return true;
325
+ }
326
+
327
+ /**
328
+ * Send request to SG api to start the transfer.
329
+ *
330
+ * @since 1.0.0
331
+ */
332
+ public function run_background_processes() {
333
+ // Prepare the background process actions.
334
+ $processes = array(
335
+ array(
336
+ 'class' => $this->file_service,
337
+ 'method' => 'prepare_archives_for_download',
338
+ 'attempts' => 3,
339
+ ),
340
+ array(
341
+ 'class' => $this->database_service,
342
+ 'method' => 'export_database',
343
+ 'attempts' => 3,
344
+ ),
345
+ array(
346
+ 'class' => $this->file_service,
347
+ 'method' => 'create_transfer_manifest',
348
+ 'attempts' => 3,
349
+ ),
350
+ array(
351
+ 'class' => $this,
352
+ 'method' => 'transfer_prepared',
353
+ 'attempts' => 3,
354
+ ),
355
+ );
356
+
357
+ // Loop through all processes and add them to the queue.
358
+ foreach ( $processes as $process ) {
359
+ $this->background_process->push_to_queue( $process );
360
+ }
361
+
362
+ // Dispatch.
363
+ $this->background_process->save()->dispatch();
364
+ }
365
+
366
+ /**
367
+ * Start the transfer.
368
+ *
369
+ * @since 1.0.0
370
+ */
371
+ public function transfer_start() {
372
+ // Update the status, that transfer has started.
373
+ self::update_status( esc_html__( 'Transfer started. Creating archives of files...', 'siteground-migrator' ) );
374
+
375
+ // Reset the current step.
376
+ update_option( 'siteground_migrator_current_step', 0 );
377
+
378
+ // Bail if transfer cannot be initated.
379
+ if ( false === $this->before_start_transfer() ) {
380
+ return;
381
+ }
382
+
383
+ // Start the transfer.
384
+ $this->run_background_processes();
385
+
386
+ }
387
+
388
+ /**
389
+ * Resume the transfer.
390
+ *
391
+ * @since 1.0.0
392
+ */
393
+ public function transfer_continue() {
394
+ // Update the status, that transfer has started.
395
+ self::update_status( esc_html__( 'Transfer started. Creating archives of files...', 'siteground-migrator' ) );
396
+
397
+ $this->run_background_processes();
398
+ }
399
+
400
+ /**
401
+ * Notify the remote server that transfer is prepared.
402
+ *
403
+ * @since 1.0.0
404
+ */
405
+ public function transfer_prepared() {
406
+ // Make the request.
407
+ $server_response = $this->api_service->do_request( '/transfer/prepared/' );
408
+
409
+ switch ( $server_response['status_code'] ) {
410
+ case 0:
411
+ case 200:
412
+ $response = array(
413
+ 'status' => 2,
414
+ 'title' => esc_html__( 'Transfer request has been sent to SiteGround server.', 'siteground-migrator' ),
415
+ );
416
+ break;
417
+ case 500:
418
+ $response = array(
419
+ 'status' => 0,
420
+ 'title' => esc_html__( 'Network connection problem', 'siteground-migrator' ),
421
+ 'description' => esc_html__( 'The transfer was interrupted due to connectivity issues. Please restart transfer.', 'siteground-migrator' ),
422
+ );
423
+ break;
424
+ default:
425
+ $response = array(
426
+ 'status' => 0,
427
+ 'title' => $server_response['message'],
428
+ 'skip_retrying' => true,
429
+ );
430
+ }
431
+
432
+ return $response;
433
+ }
434
+
435
+ /**
436
+ * Cancel the transfer.
437
+ *
438
+ * @param mixed $hard_reset Whetherto delete the transfer status ot not.
439
+ *
440
+ * @since 1.0.0
441
+ */
442
+ public function transfer_cancelled( $hard_reset = true ) {
443
+ // Invalidate the token.
444
+ $this->cancel_and_reset( $hard_reset );
445
+
446
+ wp_send_json_success();
447
+ }
448
+
449
+ /**
450
+ * Cancel the transfer and remove the data if necesary.
451
+ *
452
+ * @since 2.0.0
453
+ *
454
+ * @param boolean $hard_reset Do we have to reset the database options.
455
+ *
456
+ * @return bool
457
+ */
458
+ public function cancel_and_reset( $hard_reset = true ) {
459
+ // Invalidate the token.
460
+ $this->api_service->do_request( '/transfer/cancel/' );
461
+
462
+ if ( false !== $hard_reset ) {
463
+ delete_option( 'siteground_migrator_transfer_status' );
464
+ delete_option( 'siteground_migrator_transfer_token' );
465
+ }
466
+
467
+ // Remove temp directory.
468
+ $this->directory_service->remove_temp_dir_content();
469
+
470
+ // Cancel the process.
471
+ $this->background_process->cancel_all();
472
+
473
+ return true;
474
+ }
475
+
476
+ /**
477
+ * Update the status of transfer in database.
478
+ *
479
+ * @since 1.0.0
480
+ *
481
+ * @param string $message The response message.
482
+ * @param string $status Current status of migration.
483
+ * There are several types:
484
+ * - 0 - transfer has failed.
485
+ * - 1 - transfer is in progress.
486
+ * - 2 - waiting for remote server to complete the migration.
487
+ * - 3 - transfer completed.
488
+ * - 4 - completed with errors.
489
+ * @param string $description The description of the status.
490
+ */
491
+ public static function update_status( $message, $status = 1, $description = '' ) {
492
+ // Build the data array.
493
+ $data = array(
494
+ 'message' => $message,
495
+ 'status' => $status,
496
+ 'description' => $description,
497
+ );
498
+
499
+ // Write the result to the log.
500
+ self::get_instance()->log_info( $message );
501
+
502
+ // Update the current status of the transfer.
503
+ update_option( 'siteground_migrator_transfer_status', $data );
504
+ }
505
+
506
+ /**
507
+ * Get transfer status.
508
+ *
509
+ * @since 1.0.0
510
+ */
511
+ public function get_transfer_status() {
512
+ $progress = get_option( 'siteground_migrator_progress' );
513
+ $status = get_option( 'siteground_migrator_transfer_status' );
514
+ $status['progress'] = $progress;
515
+
516
+ wp_send_json_success( $status );
517
+ exit;
518
+ }
519
+
520
+ /**
521
+ * Update the progress bar of currently running transfer.
522
+ *
523
+ * @since 1.0.0
524
+ *
525
+ * @param int $step The step to update the progress.
526
+ */
527
+ public static function update_transfer_progress( $step ) {
528
+ // Get the current % of progress bar.
529
+ $progress = get_option( 'siteground_migrator_progress', 0 );
530
+ // Update the progress.
531
+ update_option( 'siteground_migrator_progress', $progress + $step );
532
+ }
533
+
534
+ /**
535
+ * Handle transfer status updates from remote api.
536
+ *
537
+ * @since 1.0.0
538
+ */
539
+ public function update_transfer_status_endpoint() {
540
+ // Bail if the data parameter is not set.
541
+ if ( empty( $_POST['data'] ) ) {
542
+ $this->log_die( '`data` parameter is required.' );
543
+ }
544
+
545
+ // Authenitcate the request.
546
+ $this->api_service->authenticate( stripcslashes( $_POST['data'] ) );
547
+ // Convert the data to array.
548
+ $data = json_decode( sanitize_text_field( wp_unslash( $_POST['data'] ) ), true );
549
+
550
+ $step = 5;
551
+
552
+ $current_step = get_option( 'siteground_migrator_current_step', 0 );
553
+
554
+ // Translate the message from out api.
555
+ // See http://keithdevon.com/using-variables-wordpress-translation-functions/.
556
+ $data['message'] = __( $data['message'], 'siteground-migrator' );
557
+
558
+ if ( ! empty( $data['description'] ) ) {
559
+ $data['description'] = __( $data['description'], 'siteground-migrator' );
560
+ }
561
+
562
+ // Very ugly way to prevent unwanted messages to be displayed.
563
+ if (
564
+ empty( $data['tot_files'] ) ||
565
+ (
566
+ isset( $data['tot_files'] ) &&
567
+ $data['n_file'] > $current_step
568
+ )
569
+ ) {
570
+ // Update the current step only if the `n_file` param exists.
571
+ if ( isset( $data['n_file'] ) ) {
572
+ update_option( 'siteground_migrator_current_step', $data['n_file'] );
573
+ }
574
+
575
+ // Update the progress bar.
576
+ if ( isset( $data['tot_files'] ) ) {
577
+ // Calculate the step to update the progress bar.
578
+ $step = 30 / ( $data['tot_files'] / 20 );
579
+ $data['message'] = sprintf( __( 'Downloaded %d out of %d files...', 'siteground-migrator' ), $data['n_file'], $data['tot_files'] );
580
+ }
581
+
582
+ // Update the status of transfer.
583
+ update_option( 'siteground_migrator_transfer_status', $data );
584
+ // Update the progress bar as well.
585
+ $this->update_transfer_progress( $step );
586
+ }
587
+
588
+ // Send notification to site admin when the transfer is completed or failed.
589
+ $this->email_service->prepare_and_send_notification( $data );
590
+
591
+ $data['success'] = 1;
592
+
593
+ wp_send_json( $data, 1 );
594
+ }
595
+ }
index.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php // Silence is golden
languages/siteground-migrator-es_ES.mo ADDED
Binary file
languages/siteground-migrator-es_ES.po ADDED
@@ -0,0 +1,489 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: SiteGround Migrator\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2019-09-20 06:22+0000\n"
6
+ "PO-Revision-Date: 2019-09-20 10:06+0000\n"
7
+ "Last-Translator: admin <nobody@exmaple.com>\n"
8
+ "Language-Team: Spanish (Spain)\n"
9
+ "Language: es_ES\n"
10
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
11
+ "MIME-Version: 1.0\n"
12
+ "Content-Type: text/plain; charset=UTF-8\n"
13
+ "Content-Transfer-Encoding: 8bit\n"
14
+ "X-Generator: Loco https://localise.biz/\n"
15
+ "X-Loco-Version: 2.3.0; wp-5.3-alpha-20190919.110826"
16
+
17
+ #: siteground-migrator.php:74
18
+ #, php-format
19
+ msgid ""
20
+ "<div class=\"error\"><p>“%1$s” requires PHP %2$s (or newer) to function "
21
+ "properly. Your site is using PHP %3$s. Please upgrade. The plugin has been "
22
+ "automatically deactivated.</p></div>"
23
+ msgstr ""
24
+ "<div class=\"error\"><p>\"%1$s\" requiere PHP %2$s (o posterior) para su "
25
+ "correcto funcionamiento. Tu sitio esta usando PHP %3$s. Por favor, "
26
+ "actualízalo. El plugin ha sido automáticamente desactivado.</p></div>\n"
27
+
28
+ #: siteground-migrator.php:92
29
+ msgid ""
30
+ "<div class=\"error\"><p>This plugin does not support full Multise Network "
31
+ "migrations.</p></div>"
32
+ msgstr ""
33
+ "<div class=\"error\"><p>Este plugin no soporta migraciones completas de "
34
+ "redes Multisitio.</p></div>"
35
+
36
+ #. See http://keithdevon.com/using-variables-wordpress-translation-functions
37
+ #: manual-translations.php:5
38
+ msgid "File download completed, starting site migration..."
39
+ msgstr "Descarga de archivos completada, comenzando la migración web..."
40
+
41
+ #: includes/class-siteground-migrator-transfer-service.php:201
42
+ #: includes/class-siteground-migrator-files-service.php:159
43
+ msgid "Transfer cannot be initiated due to permissions error."
44
+ msgstr ""
45
+ "La transferencia no puede ser iniciada debido a un error en los permisos."
46
+
47
+ #: includes/class-siteground-migrator-transfer-service.php:203
48
+ #: includes/class-siteground-migrator-files-service.php:160
49
+ msgid ""
50
+ "For the purposes of this transfer we need to create temporary files on your "
51
+ "current hosting account. Please fix your files permissions at your current "
52
+ "host and make sure your wp-content folder is writable. Files should be set "
53
+ "to 644 and folders to 755."
54
+ msgstr ""
55
+ "Para el propósito de esta transferencia, necesitamos crear un archivo "
56
+ "temporal de tu cuenta de alojamiento actual. Por favor, cambia los permisos "
57
+ "de los archivos en tu alojamiento actual para asegurarte de que el contenido "
58
+ "de la carpeta wp-content se puede sobre escribir. Los archivos deben estar "
59
+ "configurados con permisos 644 y las carpetas 755 "
60
+
61
+ #: includes/class-siteground-migrator-transfer-service.php:235
62
+ msgid ""
63
+ "Please, generate another Migration Token from your SiteGround control panel."
64
+ msgstr ""
65
+ "Por favor, genera otro Token de migración desde el panel de control de "
66
+ "SiteGround."
67
+
68
+ #: includes/class-siteground-migrator-transfer-service.php:270
69
+ #, php-format
70
+ msgid "Site domain to be changed to %s"
71
+ msgstr "El dominio de la página cambiará a %s"
72
+
73
+ #: includes/class-siteground-migrator-transfer-service.php:277
74
+ msgid ""
75
+ "While generating the transfer token, you have chosen to use a different "
76
+ "domain than the one currently used with your WordPress. To accommodate this "
77
+ "change we will automatically update your database while transferring it to "
78
+ "the SiteGround servers and replace the domain information on the needed "
79
+ "places."
80
+ msgstr ""
81
+ "Mientras generamos el token de la transferecnia, has elegido un dominio "
82
+ "diferente al que usas actualmente en tu WordPress. Para ajustar este cambio "
83
+ "nosotros actualizaremos automáticamente tu base de datos mientras lo "
84
+ "transferimos a los servidores de SiteGround y reemplazamos la información "
85
+ "del dominio donde haga falta."
86
+
87
+ #: includes/class-siteground-migrator-transfer-service.php:303
88
+ msgid "There is no enough free space on your new server."
89
+ msgstr "No hay suficiente espacio libre en tu nuevo servidor."
90
+
91
+ #: includes/class-siteground-migrator-transfer-service.php:305
92
+ msgid ""
93
+ "Please either free some space at your receiving SiteGround hosting account, "
94
+ "or upgrade it to a higher plan that will provide you enough space for the "
95
+ "website you want to transfer."
96
+ msgstr ""
97
+ "Por favor, libera espacio en tu cuenta de alojamiento de SiteGround o amplia "
98
+ "tu cuenta a un plan superior con suficiente espacio para la pagina web que "
99
+ "quieres transferir."
100
+
101
+ #: includes/class-siteground-migrator-transfer-service.php:360
102
+ #: includes/class-siteground-migrator-transfer-service.php:379
103
+ #: includes/class-siteground-migrator-cli.php:66
104
+ #: admin/class-siteground-migrator-admin.php:121
105
+ msgid "Transfer started. Creating archives of files..."
106
+ msgstr "Transferencia iniciada. Creando archivos de documentos..."
107
+
108
+ #: includes/class-siteground-migrator-transfer-service.php:397
109
+ msgid "Transfer request has been sent to SiteGround server."
110
+ msgstr "La petición de transferencia ha sido enviada al servidor de SiteGround"
111
+
112
+ #: includes/class-siteground-migrator-transfer-service.php:403
113
+ msgid "Network connection problem"
114
+ msgstr "Problema de conexión a la red"
115
+
116
+ #: includes/class-siteground-migrator-transfer-service.php:404
117
+ msgid ""
118
+ "The transfer was interrupted due to connectivity issues. Please restart "
119
+ "transfer."
120
+ msgstr ""
121
+ "La transferencia ha sido interrumpida por problemas de conexión. Por favor, "
122
+ "reinicia la transferencia."
123
+
124
+ #: includes/class-siteground-migrator-transfer-service.php:542
125
+ #, php-format
126
+ msgid "Downloaded %d out of %d files..."
127
+ msgstr "Descargados %d de %d archivos"
128
+
129
+ #: includes/class-siteground-migrator.php:180
130
+ msgid "Critical Environment Error"
131
+ msgstr "Error crítico de entorno"
132
+
133
+ #: includes/class-siteground-migrator.php:182
134
+ msgid ""
135
+ "We’ve encountered a critical error in your current hosting environment that "
136
+ "prevents our plugin to complete the transfer."
137
+ msgstr ""
138
+ "Hemos encontrado un error crítico en tu entorno de alojamiento web actual "
139
+ "que evita que nuestro plugin complete la migración."
140
+
141
+ #: includes/class-siteground-migrator-files-service.php:141
142
+ msgid "Files archived, compressing the database.."
143
+ msgstr "Archivos almacenados, comprimiendo la base de datos..."
144
+
145
+ #: includes/class-siteground-migrator-files-service.php:228
146
+ msgid "Failed to create transfer manifest."
147
+ msgstr "Fallo al crear el manifiesto de transferencia."
148
+
149
+ #: includes/class-siteground-migrator-files-service.php:232
150
+ msgid ""
151
+ "Transfer manifest has been created. Sending request to SiteGround API ..."
152
+ msgstr ""
153
+ "El manifiesto de transferencia ha sido creado. Enviando petición a la "
154
+ "SiteGround API ..."
155
+
156
+ #: includes/class-siteground-migrator-cli.php:45
157
+ #: includes/class-siteground-migrator-cli.php:55
158
+ msgid "Can not initiate the transfer."
159
+ msgstr "No es posible iniciar la migración."
160
+
161
+ #: includes/class-siteground-migrator-email-service.php:71
162
+ msgid "Migration to SiteGround Failed"
163
+ msgstr "la migración hacia SiteGround ha fallado"
164
+
165
+ #: includes/class-siteground-migrator-email-service.php:76
166
+ msgid "Migration to SiteGround Completed"
167
+ msgstr "la migración a SiteGround se ha completado"
168
+
169
+ #: includes/class-siteground-migrator-email-service.php:81
170
+ msgid "Migration to SiteGround completed, some files could not be transferred"
171
+ msgstr ""
172
+ "la migración hacia SiteGround está completada, algunos de lo archivos no han "
173
+ "podido ser transferidos"
174
+
175
+ #: includes/class-siteground-migrator-database-service.php:87
176
+ msgid "Database successfully compressed. Creating transfer manifest..."
177
+ msgstr ""
178
+ "La base de datos ha sido comprimida con éxito. Creando el manifiesto de "
179
+ "transferencia..."
180
+
181
+ #: includes/class-siteground-migrator-database-service.php:106
182
+ msgid "Transfer Failed Due To Database Error!"
183
+ msgstr "La transferencia ha fallado por un error en la base de datos"
184
+
185
+ #: includes/class-siteground-migrator-database-service.php:107
186
+ msgid ""
187
+ "The most common reason for such failure is if you have a large table or "
188
+ "database that cannot be dumped for the purposes of this migration. If that "
189
+ "is the case you may not be able to use the auto-migrator. If you believe the "
190
+ "problem is elsewhere, such as temporary MySQL connectivity issue, you may <a "
191
+ "href=\"#\" class=\"link\">restart the transfer</a>."
192
+ msgstr ""
193
+ "La razón más común para este tipo de fallo es una tabla muy grande o una "
194
+ "base de datos que no puede ser descargada para esta migración. Si este es el "
195
+ "motivo, no podrás usar el auto migrador. Si crees que el problema es otro, "
196
+ "como un problema temporal de conectividad MySQL, puedes intentar <a "
197
+ "href=\"#\" class=\"link\">reiniciar la transferencia</a>."
198
+
199
+ #. Name of the plugin
200
+ #: admin/class-siteground-migrator-admin-settings.php:49
201
+ msgid "SiteGround Migrator"
202
+ msgstr "SiteGround Migrator"
203
+
204
+ #: admin/class-siteground-migrator-admin-settings.php:70
205
+ msgid "Website Migration Settings"
206
+ msgstr "Configuración de la migración web"
207
+
208
+ #: admin/email-templates/sg_migrator_successful_errors.php:87
209
+ #: admin/email-templates/sg_migrator_successful.php:87
210
+ #: admin/email-templates/sg_migrator_failed.php:87
211
+ msgid "Hello,"
212
+ msgstr "Hola"
213
+
214
+ #: admin/email-templates/sg_migrator_successful_errors.php:95
215
+ #, php-format
216
+ msgid ""
217
+ "A copy of <a href=\"%1$s\" target=\"_blank\" rel=\"noreferrer\" "
218
+ "style=\"color: #22b8d1; outline: none; text-decoration: none;\">%1$s</a> has "
219
+ "been migrated to SiteGround, as you requested. The database and most of the "
220
+ "WordPress files of your website were transferred to the new server. However,"
221
+ " <b>the files listed below could not be transferred due to restrictions of "
222
+ "the current hosting environment</b>:"
223
+ msgstr ""
224
+ "Una copia de<a href=\"%1$s\" target=\"_blank\" rel=\"noreferrer\" "
225
+ "style=\"color: #22b8d1; outline: none; text-decoration: none;\">%1$s</a> ha "
226
+ "sido migrada a SiteGround, tras tu petición. La base de datos y la mayoría "
227
+ "de los archivos de WordPress de tu web han sido transferidos a tu nuevo "
228
+ "servidor. Aún así, <b>los siguientes archivos listados a continuación no "
229
+ "pudieron ser transferidos debido a restricciones en el entorno hosting "
230
+ "actual</b>:"
231
+
232
+ #: admin/email-templates/sg_migrator_successful_errors.php:120
233
+ msgid ""
234
+ "Please preview your migrated website on the link below to see if it looks "
235
+ "and functions as expected:"
236
+ msgstr ""
237
+ "Por favor, revisa la migración de tu página web en el link de abajo para ver "
238
+ "si es y funciona como esperabas:"
239
+
240
+ #: admin/email-templates/sg_migrator_successful_errors.php:134
241
+ #, php-format
242
+ msgid ""
243
+ "If there are any errors, either try to migrate the files from the list above "
244
+ "manually using FTP or sFTP, or contact our SiteGround support team through "
245
+ "your Help Desk under <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\" "
246
+ "style=\"color: #22b8d1; outline: none; text-decoration: none;\">Other "
247
+ "Technical Issues</a> category. "
248
+ msgstr ""
249
+ "Si hay muchos errores, puedes intentar transferir los archivos de la "
250
+ "siguiente lista manualmente por FTP o sFTP, o contactar con nuestro equipo "
251
+ "de soporte técnico en SiteGround a través de la sección soporte de tu área "
252
+ "de usuario seleccionando la categoría <a href=\"%s\" target=\"_blank\" "
253
+ "rel=\"noreferrer\" style=\"color: #22b8d1; outline: none; text-decoration: "
254
+ "none;\">Informar sobre otros problemas técnicos</a>. "
255
+
256
+ #: admin/email-templates/sg_migrator_successful_errors.php:138
257
+ msgid "https://ua.siteground.com/login_office.htm"
258
+ msgstr "https://ua.siteground.com/login_office.htm"
259
+
260
+ #: admin/email-templates/sg_migrator_successful_errors.php:146
261
+ msgid ""
262
+ "If your site looks as expected on the new location and you wish to complete "
263
+ "the transfer, just point your domain name to SiteGround. To do this, please "
264
+ "change your name servers to the following:"
265
+ msgstr ""
266
+ "Si tu sitio web está como esperabas en la nueva ubicación y quieres "
267
+ "completar la transferencia, apunta tu dominio a SiteGround. Para ello, por "
268
+ "favor cambia los nombres de servidor de la siguiente manera: "
269
+
270
+ #: admin/email-templates/sg_migrator_successful_errors.php:175
271
+ #: admin/email-templates/sg_migrator_successful.php:148
272
+ msgid ""
273
+ "<b>Important:</b> It can take up to 48 hours for the nameserver changes to "
274
+ "propagate. It’s very important to make no changes to your website during the "
275
+ "transfer period to avoid data loss or data discrepancy."
276
+ msgstr ""
277
+ "<b>Importante:</b> los cambios en los nombres de servidor pueden tardar "
278
+ "hasta 48 horas en tomar efecto. Es muy importante que no realices cambios en "
279
+ "tu página web durante el período de la transferencia para evitar que se "
280
+ "pierdan datos o haya errores."
281
+
282
+ #: admin/email-templates/sg_migrator_successful_errors.php:181
283
+ #: admin/email-templates/sg_migrator_successful.php:154
284
+ #: admin/email-templates/sg_migrator_failed.php:122
285
+ msgid "Best Regards, <br>The SiteGround Team"
286
+ msgstr "Un saludo, <br>El equipo de SiteGround"
287
+
288
+ #: admin/email-templates/sg_migrator_successful.php:95
289
+ #, php-format
290
+ msgid ""
291
+ "A copy of <a href=\"%1$s\" target=\"_blank\" rel=\"noreferrer\" "
292
+ "style=\"color: #22b8d1; outline: none; text-decoration: none;\">%1$s</a> has "
293
+ "been successfully migrated to SiteGround, as you requested."
294
+ msgstr ""
295
+ "Una copia de<a href=\"%1$s\" target=\"_blank\" rel=\"noreferrer\" "
296
+ "style=\"color: #22b8d1; outline: none; text-decoration: none;\">%1$s</a> ha "
297
+ "sido transferida de forma correcta a SiteGround, tras tu petición."
298
+
299
+ #: admin/email-templates/sg_migrator_successful.php:107
300
+ msgid "You can preview the migrated website here:"
301
+ msgstr "Puedes previsualizar la migración de tu página web aquí:"
302
+
303
+ #: admin/email-templates/sg_migrator_successful.php:119
304
+ msgid ""
305
+ "If your site looks as expected on the new location and you wish to complete "
306
+ "the transfer, just point your domain name to SiteGround. To do this, please "
307
+ "change your name servers to the following: "
308
+ msgstr ""
309
+ "Si tu sitio web está como esperabas en la nueva ubicación y quieres "
310
+ "completar la transferencia, apunta tu dominio a SiteGround. Para ello, por "
311
+ "favor cambia los nombres de servidor de la siguiente manera: "
312
+
313
+ #: admin/email-templates/sg_migrator_failed.php:95
314
+ #, php-format
315
+ msgid ""
316
+ "As you requested, we’ve tried to move a copy of <a href=\"%1$s\" "
317
+ "target=\"_blank\" rel=\"noreferrer\" style=\"color: #22b8d1; outline: none; "
318
+ "text-decoration: none;\">%1$s</a> to SiteGround. Unfortunately, the transfer "
319
+ "failed due to restriction in the current hosting environment."
320
+ msgstr ""
321
+ "Tras tu petición, hemos intentado mover una copia de <a href=\"%1$s\" "
322
+ "target=\"_blank\" rel=\"noreferrer\" style=\"color: #22b8d1; outline: none; "
323
+ "text-decoration: none;\">%1$s</a> a SiteGround. Desafortunadamente, la "
324
+ "transferencia falló debido a restricciones en el entorno de hosting actual."
325
+
326
+ #: admin/email-templates/sg_migrator_failed.php:109
327
+ #, php-format
328
+ msgid ""
329
+ "Please review <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\" "
330
+ "style=\"color: #22b8d1; outline: none; text-decoration: none;\">our "
331
+ "tutorial</a> for manual transfer or request a professional transfer from our "
332
+ "Support Team by posting a ticket in your Help Desk under <a href=\"%s\" "
333
+ "target=\"_blank\" rel=\"noreferrer\" style=\"color: #22b8d1; outline: none; "
334
+ "text-decoration: none;\">Website Transfer</a> category."
335
+ msgstr ""
336
+ "Por favor, revisa <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\" "
337
+ "style=\"color: #22b8d1; outline: none; text-decoration: none;\">nuestro "
338
+ "tutorial</a> para la transfernecia manual o realiza una petición de "
339
+ "migración profesional por parte de nuestro equipo de soporte a través de un "
340
+ "ticket en la sección soporte en el área de usuario en la categoría <a "
341
+ "href=\"%s\" target=\"_blank\" rel=\"noreferrer\" style=\"color: #22b8d1; "
342
+ "outline: none; text-decoration: none;\">Migrar sitios web</a>."
343
+
344
+ #: admin/email-templates/sg_migrator_failed.php:113
345
+ msgid "https://www.siteground.com/tutorials/wordpress/move-copy/"
346
+ msgstr "https://www.siteground.es/tutoriales/wordpress/como-transferir/"
347
+
348
+ #: admin/email-templates/sg_migrator_failed.php:114
349
+ msgid "https://ua.siteground.com/support/website_transfer.htm"
350
+ msgstr "https://ua.siteground.es/support/website_transfer.htm"
351
+
352
+ #: admin/partials/new-site-setup-info.php:13
353
+ msgid "Check Site"
354
+ msgstr "Revisar la web"
355
+
356
+ #: admin/partials/new-site-setup-info.php:17
357
+ msgid ""
358
+ "We’ve provided a temporary URL for you to check your site before pointing "
359
+ "your nameservers to SiteGround. Мake sure everything is working fine before "
360
+ "pointing your domain."
361
+ msgstr ""
362
+ "Hemos proporcionado una URL temporal para que puedas comprobar tu página web "
363
+ "antes de apuntar los nombres de servidor a SiteGround. Asegúrate de que todo "
364
+ "está funcionando correctamente antes de apuntar tu dominio."
365
+
366
+ #: admin/partials/new-site-setup-info.php:20
367
+ msgid "Go to Site"
368
+ msgstr "Vaya al sitо"
369
+
370
+ #: admin/partials/new-site-setup-info.php:30
371
+ msgid "Update Your DNS"
372
+ msgstr "Actualiza tus DNS"
373
+
374
+ #: admin/partials/new-site-setup-info.php:31
375
+ msgid ""
376
+ "Please change your domain’s NS. Note that those changes require up to 48 "
377
+ "hours of propagation time. Don’t modify your site during that period to "
378
+ "avoid data loss."
379
+ msgstr ""
380
+ "Por favor cambia las NS de tu dominio. Ten en cuenta que estos cambios "
381
+ "pueden tomar hasta 48 horas en propagarse. No modifiques tu web durante este "
382
+ "tiempo para evitar pérdida de información."
383
+
384
+ #: admin/partials/new-site-setup-info.php:51
385
+ msgid "That went smoothly, right?"
386
+ msgstr "Fue fácil, ¿verdad?"
387
+
388
+ #: admin/partials/new-site-setup-info.php:53
389
+ msgid "Help us help other people by rating this plugin on WP.org!"
390
+ msgstr ""
391
+ "¡Ayúdanos a ayudar a más gente dejando tu valoración para este plugin en WP."
392
+ "org!"
393
+
394
+ #: admin/partials/transfer-settings.php:16
395
+ msgid "Website Migration in Progress"
396
+ msgstr "Migración de la página web en proceso"
397
+
398
+ #: admin/partials/transfer-settings.php:26
399
+ #: admin/partials/cancel-transfer-confirmation.php:21
400
+ #: admin/partials/transfer-success-warnings.php:30
401
+ msgid "Cancel Transfer"
402
+ msgstr "Cancelar la transferencia"
403
+
404
+ #: admin/partials/transfer-settings.php:33
405
+ #, php-format
406
+ msgid ""
407
+ "To initiate the transfer you will need to provide your transfer token. It "
408
+ "can be generated through the <strong>WordPress Migrator</strong> tool in "
409
+ "your SiteGround control panel. You can check out this <a href=\"%s\" "
410
+ "target=\"_blank\">tutorial</a> if you need more detailed instructions."
411
+ msgstr ""
412
+ "Para iniciar la transferencia será necesario proporcionar el token de "
413
+ "migración. Puedes generarlo desde la herramienta <strong>WordPress "
414
+ "Migrator</strong> en el panel de control de SiteGround. Para más información "
415
+ "e instrucciones, puedes revisar este <a href=\"%s\" target=\"_blank\">"
416
+ "tutorial</a>"
417
+
418
+ #: admin/partials/transfer-settings.php:42
419
+ msgid "Migration Token"
420
+ msgstr "Token de migración"
421
+
422
+ #: admin/partials/transfer-settings.php:49
423
+ #: admin/partials/transfer-settings.php:69
424
+ msgid "This field is required"
425
+ msgstr "Este campo es requerido"
426
+
427
+ #: admin/partials/transfer-settings.php:53
428
+ msgid "Token doesn't match requested format."
429
+ msgstr "El token no coincide con el formato requerido."
430
+
431
+ #: admin/partials/transfer-settings.php:65
432
+ msgid "Send notification email when migration is over to "
433
+ msgstr ""
434
+ "Enviar notificación por correo electrónico cuando la migración haya "
435
+ "terminado a"
436
+
437
+ #: admin/partials/transfer-settings.php:73
438
+ msgid "Email doesn't match requested format."
439
+ msgstr "El correo electrónico no coincide con el formato requerido."
440
+
441
+ #: admin/partials/transfer-settings.php:82
442
+ msgid "Initiate Transfer"
443
+ msgstr "Iniciar transferencia"
444
+
445
+ #: admin/partials/cancel-transfer-confirmation.php:12
446
+ msgid "Are you sure you want to cancel the transfer?"
447
+ msgstr "¿Estás seguro de que deseas cancelar la migración?"
448
+
449
+ #: admin/partials/cancel-transfer-confirmation.php:18
450
+ #: admin/partials/transfer-success-warnings.php:36
451
+ msgid "Continue"
452
+ msgstr "Continuar"
453
+
454
+ #: admin/partials/transfer-fail.php:22
455
+ #: admin/partials/transfer-success-warnings.php:93
456
+ #: admin/partials/transfer-success.php:22
457
+ msgid "Initiate New Transfer"
458
+ msgstr "Iniciar nueva transferencia"
459
+
460
+ #: admin/partials/transfer-success.php:13
461
+ msgid "Transfer Completed Successfully!"
462
+ msgstr "¡La transferencia se ha completado con éxito!"
463
+
464
+ #: admin/partials/transfer-success.php:16
465
+ msgid ""
466
+ "Your WordPress has been migrated. We’ve created a temporary URL that will be "
467
+ "valid for 48 hours to check your site on the new location. If everything "
468
+ "looks good, you can point your domain to our servers."
469
+ msgstr ""
470
+ "Tu WordPress ha sido migrado. Hemos creado una URL temporal que será válida "
471
+ "durante 48 horas para que puedas revisar tu página en la nueva localización. "
472
+ "Si todo está bien, puedes apuntar tu dominio a nuestros servidores"
473
+
474
+ #. Description of the plugin
475
+ msgid "This plugin is designed to migrate your WordPress site to SiteGround"
476
+ msgstr ""
477
+ "Este plugin esta diseñado para migrar tu sitio WordPress hacia SiteGround."
478
+
479
+ #. URI of the plugin
480
+ msgid "http://siteground.com"
481
+ msgstr "https://www.siteground.es/"
482
+
483
+ #. Author of the plugin
484
+ msgid "SiteGround"
485
+ msgstr "SiteGround"
486
+
487
+ #. Author URI of the plugin
488
+ msgid "https://www.siteground.com"
489
+ msgstr "https://www.siteground.es/"
languages/siteground-migrator-it_IT.mo ADDED
Binary file
languages/siteground-migrator-it_IT.po ADDED
@@ -0,0 +1,482 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: SiteGround Migrator\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2019-09-20 06:23+0000\n"
6
+ "PO-Revision-Date: 2019-09-20 06:44+0000\n"
7
+ "Last-Translator: admin <nobody@exmaple.com>\n"
8
+ "Language-Team: Italian\n"
9
+ "Language: it_IT\n"
10
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
11
+ "MIME-Version: 1.0\n"
12
+ "Content-Type: text/plain; charset=UTF-8\n"
13
+ "Content-Transfer-Encoding: 8bit\n"
14
+ "X-Generator: Loco https://localise.biz/\n"
15
+ "X-Loco-Version: 2.3.0; wp-5.3-alpha-20190919.110826"
16
+
17
+ #: siteground-migrator.php:74
18
+ #, php-format
19
+ msgid ""
20
+ "<div class=\"error\"><p>“%1$s” requires PHP %2$s (or newer) to function "
21
+ "properly. Your site is using PHP %3$s. Please upgrade. The plugin has been "
22
+ "automatically deactivated.</p></div>"
23
+ msgstr ""
24
+ "<div class=\"error\"><p>\"%1$s\" richiede PHP %2$s (o più recente) per "
25
+ "funzionare correttamente. Il tuo sito sta utilizzando PHP %3$s. Per favore, "
26
+ "fai un upgrade. Il plugin è stato disattivato in automatico.</p></div>"
27
+
28
+ #: siteground-migrator.php:92
29
+ msgid ""
30
+ "<div class=\"error\"><p>This plugin does not support full Multise Network "
31
+ "migrations.</p></div>"
32
+ msgstr ""
33
+ "<div class=\"error\"><p>Questo plugin non supporta migrazioni di network "
34
+ "Multisite.</p></div>"
35
+
36
+ #. See http://keithdevon.com/using-variables-wordpress-translation-functions
37
+ #: manual-translations.php:5
38
+ msgid "File download completed, starting site migration..."
39
+ msgstr "Download dei file completato, inzio la migrazione del sito..."
40
+
41
+ #: includes/class-siteground-migrator-transfer-service.php:201
42
+ #: includes/class-siteground-migrator-files-service.php:159
43
+ msgid "Transfer cannot be initiated due to permissions error."
44
+ msgstr "Il trasferimento non può iniziare a causa di un errore nei permessi."
45
+
46
+ #: includes/class-siteground-migrator-transfer-service.php:203
47
+ #: includes/class-siteground-migrator-files-service.php:160
48
+ msgid ""
49
+ "For the purposes of this transfer we need to create temporary files on your "
50
+ "current hosting account. Please fix your files permissions at your current "
51
+ "host and make sure your wp-content folder is writable. Files should be set "
52
+ "to 644 and folders to 755."
53
+ msgstr ""
54
+ "Per effettuare il trasferimento, dobbiamo creare file temporanei sul tuo "
55
+ "attuale account di hosting. Per favore sistema i permessi dei file sul tuo "
56
+ "attuale provider e assicurati che la tua cartella wp-content sia scrivibile. "
57
+ "I file dovrebbero essere impostati su 644 e le cartelle su 755."
58
+
59
+ #: includes/class-siteground-migrator-transfer-service.php:235
60
+ msgid ""
61
+ "Please, generate another Migration Token from your SiteGround control panel."
62
+ msgstr ""
63
+ "Per favore, genera un nuovo token di trasferimento dal tuo pannello di "
64
+ "controllo SiteGround"
65
+
66
+ #: includes/class-siteground-migrator-transfer-service.php:270
67
+ #, php-format
68
+ msgid "Site domain to be changed to %s"
69
+ msgstr "Il dominio del sito deve essere cambiato in %s."
70
+
71
+ #: includes/class-siteground-migrator-transfer-service.php:277
72
+ msgid ""
73
+ "While generating the transfer token, you have chosen to use a different "
74
+ "domain than the one currently used with your WordPress. To accommodate this "
75
+ "change we will automatically update your database while transferring it to "
76
+ "the SiteGround servers and replace the domain information on the needed "
77
+ "places."
78
+ msgstr ""
79
+ "Durante la generazione del token di trasferimento, hai scelto di utilizzare "
80
+ "un dominio diverso da quello attualmente utilizzato con il tuo WordPress. "
81
+ "Per soddisfare questa richiesta, aggiorneremo automaticamente il tuo "
82
+ "database durante il trasferimento ai server SiteGround e sostituiremo le "
83
+ "informazioni sul dominio ove necessario."
84
+
85
+ #: includes/class-siteground-migrator-transfer-service.php:303
86
+ msgid "There is no enough free space on your new server."
87
+ msgstr "Non c’è sufficiente spazio sul tuo nuovo server."
88
+
89
+ #: includes/class-siteground-migrator-transfer-service.php:305
90
+ msgid ""
91
+ "Please either free some space at your receiving SiteGround hosting account, "
92
+ "or upgrade it to a higher plan that will provide you enough space for the "
93
+ "website you want to transfer."
94
+ msgstr ""
95
+ "Ti chiediamo di liberare un po' di spazio sul tuo account di hosting "
96
+ "SiteGround, oppure di fare un upgrade a un piano superiore in modo da "
97
+ "fornire spazio sufficiente al sito che si desidera trasferire."
98
+
99
+ #: includes/class-siteground-migrator-transfer-service.php:360
100
+ #: includes/class-siteground-migrator-transfer-service.php:379
101
+ #: includes/class-siteground-migrator-cli.php:66
102
+ #: admin/class-siteground-migrator-admin.php:121
103
+ msgid "Transfer started. Creating archives of files..."
104
+ msgstr "Trasferimento iniziato. Creo file di archivio..."
105
+
106
+ #: includes/class-siteground-migrator-transfer-service.php:397
107
+ msgid "Transfer request has been sent to SiteGround server."
108
+ msgstr "La richiesta di trasferimento è stata inviata al server SiteGround."
109
+
110
+ #: includes/class-siteground-migrator-transfer-service.php:403
111
+ msgid "Network connection problem"
112
+ msgstr "Problema di connessione alla rete."
113
+
114
+ #: includes/class-siteground-migrator-transfer-service.php:404
115
+ msgid ""
116
+ "The transfer was interrupted due to connectivity issues. Please restart "
117
+ "transfer."
118
+ msgstr ""
119
+ "Il trasferimento è stato interrotto a causa di un problema di connessione. "
120
+ "Per favore, riavvia il trasferimento."
121
+
122
+ #: includes/class-siteground-migrator-transfer-service.php:542
123
+ #, php-format
124
+ msgid "Downloaded %d out of %d files..."
125
+ msgstr "Scaricati %d su %d file..."
126
+
127
+ #: includes/class-siteground-migrator.php:180
128
+ msgid "Critical Environment Error"
129
+ msgstr "Errore dell’ambiente critico"
130
+
131
+ #: includes/class-siteground-migrator.php:182
132
+ msgid ""
133
+ "We’ve encountered a critical error in your current hosting environment that "
134
+ "prevents our plugin to complete the transfer."
135
+ msgstr ""
136
+ "Abbiamo riscontrato un errore critico nel tuo attuale ambiente di hosting "
137
+ "che non permette al nostro plugin di trasferire il tuo sito."
138
+
139
+ #: includes/class-siteground-migrator-files-service.php:141
140
+ msgid "Files archived, compressing the database.."
141
+ msgstr "File archiviati. Comprimo il database..."
142
+
143
+ #: includes/class-siteground-migrator-files-service.php:228
144
+ msgid "Failed to create transfer manifest."
145
+ msgstr "Errore nel creare il transfer manifest."
146
+
147
+ #: includes/class-siteground-migrator-files-service.php:232
148
+ msgid ""
149
+ "Transfer manifest has been created. Sending request to SiteGround API ..."
150
+ msgstr ""
151
+ "Il manifest di trasferimento è stato creato. Stiamo mandando la richiesta "
152
+ "all’API SiteGround..."
153
+
154
+ #: includes/class-siteground-migrator-cli.php:45
155
+ #: includes/class-siteground-migrator-cli.php:55
156
+ msgid "Can not initiate the transfer."
157
+ msgstr "Non è possibile iniziare il trasferimento."
158
+
159
+ #: includes/class-siteground-migrator-email-service.php:71
160
+ msgid "Migration to SiteGround Failed"
161
+ msgstr "Migrazione a SiteGround non riuscita"
162
+
163
+ #: includes/class-siteground-migrator-email-service.php:76
164
+ msgid "Migration to SiteGround Completed"
165
+ msgstr "Migrazione a SiteGround completata"
166
+
167
+ #: includes/class-siteground-migrator-email-service.php:81
168
+ msgid "Migration to SiteGround completed, some files could not be transferred"
169
+ msgstr ""
170
+ "Completata migrazione a SiteGround, alcuni file non possono essere trasferiti"
171
+
172
+ #: includes/class-siteground-migrator-database-service.php:87
173
+ msgid "Database successfully compressed. Creating transfer manifest..."
174
+ msgstr "Database compresso con successo. Creo il transfer manifest..."
175
+
176
+ #: includes/class-siteground-migrator-database-service.php:106
177
+ msgid "Transfer Failed Due To Database Error!"
178
+ msgstr "Il trasferimento è fallito a causa di un errore del database!"
179
+
180
+ #: includes/class-siteground-migrator-database-service.php:107
181
+ msgid ""
182
+ "The most common reason for such failure is if you have a large table or "
183
+ "database that cannot be dumped for the purposes of this migration. If that "
184
+ "is the case you may not be able to use the auto-migrator. If you believe the "
185
+ "problem is elsewhere, such as temporary MySQL connectivity issue, you may <a "
186
+ "href=\"#\" class=\"link\">restart the transfer</a>."
187
+ msgstr ""
188
+ "Di solito questo errore avviene se si dispone di una tabella o di un "
189
+ "database di grandi dimensioni di cui non si può fare il DUMP a scopo di "
190
+ "migrazione. In questo caso potresti non essere in grado di utilizzare l’auto-"
191
+ "migrazione. Se ritieni che il problema sia altrove, ad esempio un problema "
192
+ "di connettività MySQL temporaneo, puoi <a href=\"#\" class=\"link\">"
193
+ "riavviare il trasferimento</a>"
194
+
195
+ #. Name of the plugin
196
+ #: admin/class-siteground-migrator-admin-settings.php:49
197
+ msgid "SiteGround Migrator"
198
+ msgstr "SiteGround Migrator"
199
+
200
+ #: admin/class-siteground-migrator-admin-settings.php:70
201
+ msgid "Website Migration Settings"
202
+ msgstr "Impostazioni migrazione sito."
203
+
204
+ #: admin/email-templates/sg_migrator_successful_errors.php:87
205
+ #: admin/email-templates/sg_migrator_successful.php:87
206
+ #: admin/email-templates/sg_migrator_failed.php:87
207
+ msgid "Hello,"
208
+ msgstr "Ciao,"
209
+
210
+ #: admin/email-templates/sg_migrator_successful_errors.php:95
211
+ #, php-format
212
+ msgid ""
213
+ "A copy of <a href=\"%1$s\" target=\"_blank\" rel=\"noreferrer\" "
214
+ "style=\"color: #22b8d1; outline: none; text-decoration: none;\">%1$s</a> has "
215
+ "been migrated to SiteGround, as you requested. The database and most of the "
216
+ "WordPress files of your website were transferred to the new server. However,"
217
+ " <b>the files listed below could not be transferred due to restrictions of "
218
+ "the current hosting environment</b>:"
219
+ msgstr ""
220
+ "Una copia di <a href=\"%1$s\" target=\"_blank\" rel=\"noreferrer\" "
221
+ "style=\"color: #22b8d1; outline: none; text-decoration: none;\">%1$s</a> è "
222
+ "stata migrata su SiteGround come richiesto. Il database e la maggior parte "
223
+ "dei file WordPress del tuo sito, sono stati trasferiti sul nuovo server. "
224
+ "Tuttavia, <b>non è stato possibile trasferire i file elencati di seguito a "
225
+ "causa delle restrizioni dell'ambiente di hosting corrente</b>:"
226
+
227
+ #: admin/email-templates/sg_migrator_successful_errors.php:120
228
+ msgid ""
229
+ "Please preview your migrated website on the link below to see if it looks "
230
+ "and functions as expected:"
231
+ msgstr ""
232
+ "Si prega di visualizzare in anteprima il sito trasferito attraverso il link "
233
+ "sottostante, per vedere se funziona come previsto:"
234
+
235
+ #: admin/email-templates/sg_migrator_successful_errors.php:134
236
+ #, php-format
237
+ msgid ""
238
+ "If there are any errors, either try to migrate the files from the list above "
239
+ "manually using FTP or sFTP, or contact our SiteGround support team through "
240
+ "your Help Desk under <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\" "
241
+ "style=\"color: #22b8d1; outline: none; text-decoration: none;\">Other "
242
+ "Technical Issues</a> category. "
243
+ msgstr ""
244
+ "In caso di errori, prova a migrare manualmente i file dell'elenco sopra "
245
+ "indicato utilizzando FTP o sFTP, oppure contatta il team di supporto "
246
+ "SiteGround tramite l'Help Desk nella categoria <a href=\"%s\" "
247
+ "target=\"_blank\" rel=\"noreferrer\" style=\"color: #22b8d1; outline: none; "
248
+ "text-decoration: none;\">Riporta altri problemi tecnici</a>."
249
+
250
+ #: admin/email-templates/sg_migrator_successful_errors.php:138
251
+ msgid "https://ua.siteground.com/login_office.htm"
252
+ msgstr "https://ua.siteground.com/login_office.htm"
253
+
254
+ #: admin/email-templates/sg_migrator_successful_errors.php:146
255
+ msgid ""
256
+ "If your site looks as expected on the new location and you wish to complete "
257
+ "the transfer, just point your domain name to SiteGround. To do this, please "
258
+ "change your name servers to the following:"
259
+ msgstr ""
260
+ "Se il tuo sito viene visualizzato correttamente nella nuova posizione e "
261
+ "desideri completare il trasferimento, basta puntare il nome del dominio su "
262
+ "SiteGround. Per fare questo, ti chiediamo di cambiare i name server come "
263
+ "segue:"
264
+
265
+ #: admin/email-templates/sg_migrator_successful_errors.php:175
266
+ #: admin/email-templates/sg_migrator_successful.php:148
267
+ msgid ""
268
+ "<b>Important:</b> It can take up to 48 hours for the nameserver changes to "
269
+ "propagate. It’s very important to make no changes to your website during the "
270
+ "transfer period to avoid data loss or data discrepancy."
271
+ msgstr ""
272
+ "<b>Importante:</b> possono essere necessarie fino a 48 ore perché le "
273
+ "modifiche del name server siano effettive. È molto importante non apportare "
274
+ "modifiche al sito web durante il periodo di trasferimento per evitare "
275
+ "perdite di dati o discrepanze nei dati."
276
+
277
+ #: admin/email-templates/sg_migrator_successful_errors.php:181
278
+ #: admin/email-templates/sg_migrator_successful.php:154
279
+ #: admin/email-templates/sg_migrator_failed.php:122
280
+ msgid "Best Regards, <br>The SiteGround Team"
281
+ msgstr "Cordialmente, <br>Il Team di SiteGround"
282
+
283
+ #: admin/email-templates/sg_migrator_successful.php:95
284
+ #, php-format
285
+ msgid ""
286
+ "A copy of <a href=\"%1$s\" target=\"_blank\" rel=\"noreferrer\" "
287
+ "style=\"color: #22b8d1; outline: none; text-decoration: none;\">%1$s</a> has "
288
+ "been successfully migrated to SiteGround, as you requested."
289
+ msgstr ""
290
+ "Una copia di <a href=\"%1$s\" target=\"_blank\" rel=\"noreferrer\" "
291
+ "style=\"color: #22b8d1; outline: none; text-decoration: none;\">%1$s</a> è "
292
+ "stata migrata correttamente su SiteGround come richiesto."
293
+
294
+ #: admin/email-templates/sg_migrator_successful.php:107
295
+ msgid "You can preview the migrated website here:"
296
+ msgstr "Puoi vedere in anteprima il sito trasferito qui:"
297
+
298
+ #: admin/email-templates/sg_migrator_successful.php:119
299
+ msgid ""
300
+ "If your site looks as expected on the new location and you wish to complete "
301
+ "the transfer, just point your domain name to SiteGround. To do this, please "
302
+ "change your name servers to the following: "
303
+ msgstr ""
304
+ "Se il tuo sito viene visualizzato correttamente nella nuova posizione e "
305
+ "desideri completare il trasferimento, basta puntare il nome del dominio su "
306
+ "SiteGround. Per fare questo, ti chiediamo di cambiare i name server come "
307
+ "segue:"
308
+
309
+ #: admin/email-templates/sg_migrator_failed.php:95
310
+ #, php-format
311
+ msgid ""
312
+ "As you requested, we’ve tried to move a copy of <a href=\"%1$s\" "
313
+ "target=\"_blank\" rel=\"noreferrer\" style=\"color: #22b8d1; outline: none; "
314
+ "text-decoration: none;\">%1$s</a> to SiteGround. Unfortunately, the transfer "
315
+ "failed due to restriction in the current hosting environment."
316
+ msgstr ""
317
+ "Come da te richiesto, abbiamo provato a spostare una copia di <a "
318
+ "href=\"%1$s\" target=\"_blank\" rel=\"noreferrer\" style=\"color: #22b8d1; "
319
+ "outline: none; text-decoration: none;\">%1$s</a> su SiteGround. "
320
+ "Sfortunatamente, il trasferimento non è riuscito a causa delle restrizioni "
321
+ "dell'attuale ambiente di hosting."
322
+
323
+ #: admin/email-templates/sg_migrator_failed.php:109
324
+ #, php-format
325
+ msgid ""
326
+ "Please review <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\" "
327
+ "style=\"color: #22b8d1; outline: none; text-decoration: none;\">our "
328
+ "tutorial</a> for manual transfer or request a professional transfer from our "
329
+ "Support Team by posting a ticket in your Help Desk under <a href=\"%s\" "
330
+ "target=\"_blank\" rel=\"noreferrer\" style=\"color: #22b8d1; outline: none; "
331
+ "text-decoration: none;\">Website Transfer</a> category."
332
+ msgstr ""
333
+ "Si prega guardare <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\" "
334
+ "style=\"color: #22b8d1; outline: none; text-decoration: none;\">il nostro "
335
+ "tutorial</a> sul trasferimento manuale o richiedere un trasferimento "
336
+ "professionale al nostro team di supporto pubblicando un ticket nell'Help "
337
+ "Desk nella sezione <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\" "
338
+ "style=\"color: #22b8d1; outline: none; text-decoration: none;\">"
339
+ "Trasferimento del sito</a>."
340
+
341
+ #: admin/email-templates/sg_migrator_failed.php:113
342
+ msgid "https://www.siteground.com/tutorials/wordpress/move-copy/"
343
+ msgstr "https://it.siteground.com/tutorial/wordpress/trasferimento/"
344
+
345
+ #: admin/email-templates/sg_migrator_failed.php:114
346
+ msgid "https://ua.siteground.com/support/website_transfer.htm"
347
+ msgstr "https://ua.siteground.com/support/website_transfer.htm"
348
+
349
+ #: admin/partials/new-site-setup-info.php:13
350
+ msgid "Check Site"
351
+ msgstr "Controlla il sito."
352
+
353
+ #: admin/partials/new-site-setup-info.php:17
354
+ msgid ""
355
+ "We’ve provided a temporary URL for you to check your site before pointing "
356
+ "your nameservers to SiteGround. Мake sure everything is working fine before "
357
+ "pointing your domain."
358
+ msgstr ""
359
+ "Abbiamo fornito un URL temporaneo per controllare il tuo sito prima di "
360
+ "puntare il nameserver a SiteGround. Assicurati che tutto funzioni "
361
+ "correttamente prima di puntare il tuo dominio."
362
+
363
+ #: admin/partials/new-site-setup-info.php:20
364
+ msgid "Go to Site"
365
+ msgstr "Vai al sito"
366
+
367
+ #: admin/partials/new-site-setup-info.php:30
368
+ msgid "Update Your DNS"
369
+ msgstr "Aggiorna il tuo DNS"
370
+
371
+ #: admin/partials/new-site-setup-info.php:31
372
+ msgid ""
373
+ "Please change your domain’s NS. Note that those changes require up to 48 "
374
+ "hours of propagation time. Don’t modify your site during that period to "
375
+ "avoid data loss."
376
+ msgstr ""
377
+ "Per favore cambia il nameserver del tuo dominio. Si noti che queste "
378
+ "modifiche richiedono fino a 48 ore di tempo per essere attive. Non "
379
+ "modificare il tuo sito durante questo periodo per evitare la perdita di dati."
380
+
381
+ #: admin/partials/new-site-setup-info.php:51
382
+ msgid "That went smoothly, right?"
383
+ msgstr "È stato facile vero?"
384
+
385
+ #: admin/partials/new-site-setup-info.php:53
386
+ msgid "Help us help other people by rating this plugin on WP.org!"
387
+ msgstr "Aiutaci ad aiutare le altre persone, lascia una recensione su WP.org!"
388
+
389
+ #: admin/partials/transfer-settings.php:16
390
+ msgid "Website Migration in Progress"
391
+ msgstr "Trasferimento del sito in corso."
392
+
393
+ #: admin/partials/transfer-settings.php:26
394
+ #: admin/partials/cancel-transfer-confirmation.php:21
395
+ #: admin/partials/transfer-success-warnings.php:30
396
+ msgid "Cancel Transfer"
397
+ msgstr "Annulla trasferimento"
398
+
399
+ #: admin/partials/transfer-settings.php:33
400
+ #, php-format
401
+ msgid ""
402
+ "To initiate the transfer you will need to provide your transfer token. It "
403
+ "can be generated through the <strong>WordPress Migrator</strong> tool in "
404
+ "your SiteGround control panel. You can check out this <a href=\"%s\" "
405
+ "target=\"_blank\">tutorial</a> if you need more detailed instructions."
406
+ msgstr ""
407
+ "Per iniziare il trasferimento devi fornire il tuo token di trasferimento. "
408
+ "Può essere generato tramite lo strumento <strong>WordPress Migrator</strong> "
409
+ "presente nel tuo panello di controllo SiteGround. Se desideri istruzioni più "
410
+ "dettagliate, puoi guardare questo <a href=\"%s\" target=\"_blank\">"
411
+ "tutorial</a>"
412
+
413
+ #: admin/partials/transfer-settings.php:42
414
+ msgid "Migration Token"
415
+ msgstr "Token di trasferimento."
416
+
417
+ #: admin/partials/transfer-settings.php:49
418
+ #: admin/partials/transfer-settings.php:69
419
+ msgid "This field is required"
420
+ msgstr "Questo campo è obbligatorio."
421
+
422
+ #: admin/partials/transfer-settings.php:53
423
+ msgid "Token doesn't match requested format."
424
+ msgstr "Il token non coincide con il formato richiesto."
425
+
426
+ #: admin/partials/transfer-settings.php:65
427
+ msgid "Send notification email when migration is over to "
428
+ msgstr "Quando la migrazione è completa, invia una notifica email a"
429
+
430
+ #: admin/partials/transfer-settings.php:73
431
+ msgid "Email doesn't match requested format."
432
+ msgstr "L’email non rispetta il formato richiesto."
433
+
434
+ #: admin/partials/transfer-settings.php:82
435
+ msgid "Initiate Transfer"
436
+ msgstr "Inizia il trasferimento"
437
+
438
+ #: admin/partials/cancel-transfer-confirmation.php:12
439
+ msgid "Are you sure you want to cancel the transfer?"
440
+ msgstr "Sei sicuro di voler annullare il trasferimento?"
441
+
442
+ #: admin/partials/cancel-transfer-confirmation.php:18
443
+ #: admin/partials/transfer-success-warnings.php:36
444
+ msgid "Continue"
445
+ msgstr "Continua"
446
+
447
+ #: admin/partials/transfer-fail.php:22
448
+ #: admin/partials/transfer-success-warnings.php:93
449
+ #: admin/partials/transfer-success.php:22
450
+ msgid "Initiate New Transfer"
451
+ msgstr "Inizia un nuovo trasferimento"
452
+
453
+ #: admin/partials/transfer-success.php:13
454
+ msgid "Transfer Completed Successfully!"
455
+ msgstr "Trasferimento completato con successo!"
456
+
457
+ #: admin/partials/transfer-success.php:16
458
+ msgid ""
459
+ "Your WordPress has been migrated. We’ve created a temporary URL that will be "
460
+ "valid for 48 hours to check your site on the new location. If everything "
461
+ "looks good, you can point your domain to our servers."
462
+ msgstr ""
463
+ "Il tuo WordPress è stato trasferito. Abbiamo creato un URL temporaneo che "
464
+ "sarà valido per 48 ore, in modo da controllare il tuo sito nella nuova "
465
+ "posizione. Se tutto sembra a posto, puoi puntare il tuo dominio ai nostri "
466
+ "server."
467
+
468
+ #. Description of the plugin
469
+ msgid "This plugin is designed to migrate your WordPress site to SiteGround"
470
+ msgstr "Questo plugin è stato creato per trasferire il tuo sito su SiteGround"
471
+
472
+ #. URI of the plugin
473
+ msgid "http://siteground.com"
474
+ msgstr "https://it.siteground.com/"
475
+
476
+ #. Author of the plugin
477
+ msgid "SiteGround"
478
+ msgstr "SiteGround"
479
+
480
+ #. Author URI of the plugin
481
+ msgid "https://www.siteground.com"
482
+ msgstr "https://it.siteground.com/"
manual-translations.php ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ <?php
2
+ // File created to manage some dynamic translation used in the code
3
+ // See http://keithdevon.com/using-variables-wordpress-translation-functions/
4
+
5
+ __( 'File download completed, starting site migration...', 'siteground-migrator' );
react-strings.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /* THIS IS A GENERATED FILE. DO NOT EDIT DIRECTLY. */
3
+ $migrator_i18n_strings = array(
4
+ __( "Rate the SiteGround Migrator" ), // src/components/rating-box/rating-box.jsx:9
5
+ __( "That went smoothly, right?" ), // src/components/rating-box/rating-box.jsx:13
6
+ __( "Faster Loading Speed" ), // src/components/site-speed/site-speed.jsx:16
7
+ __( "Your site’s even faster now!" ), // src/components/site-speed/site-speed.jsx:21
8
+ __( "Your new hosting plan comes with some amazing features included - NGINX Direct Delivery; Speed Optimized MySQL; The SiteGround Optimizer plugin and more. Thanks to a superfast Google-powered platform set up with speed in mind, as well as continuous speed optimizations, your site’s loading speed has decreased on your new hosting." ), // src/components/site-speed/site-speed.jsx:25
9
+ __( "SiteGround Loading Speed" ), // src/components/site-speed/site-speed.jsx:32
10
+ __( "Mobile" ), // src/components/site-speed/site-speed.jsx:35
11
+ __( "Desktop" ), // src/components/site-speed/site-speed.jsx:38
12
+ __( "Previous Host Loading Speed" ), // src/components/site-speed/site-speed.jsx:48
13
+ __( "Mobile" ), // src/components/site-speed/site-speed.jsx:52
14
+ __( "Desktop" ), // src/components/site-speed/site-speed.jsx:55
15
+ __( "Error" ), // src/pages/app/app.jsx:65
16
+ __( "Success" ), // src/pages/app/app.jsx:66
17
+ __( "Cancel Transfer" ), // src/pages/confirmation/confirmation.jsx:43
18
+ __( "Continue" ), // src/pages/confirmation/confirmation.jsx:63
19
+ __( "We have set up a {{a}}temporary URL{{/a}} (valid for 48 hours) where you can check whether your website looks and performs as expected. Once you confirm everything’s ok, don’t forget to {{b}}point your domain to the new server in order to complete the migration{{/b}}, using the name servers below. DNS propagation may take up to 48 hours." ), // src/pages/error/error.jsx:31
20
+ __( "NS1:" ), // src/pages/error/error.jsx:44
21
+ __( "NS2:" ), // src/pages/error/error.jsx:47
22
+ __( "Initiate New Transfer" ), // src/pages/error/error.jsx:89
23
+ __( "Home" ), // src/pages/fail/fail.jsx:45
24
+ __( "Start New Migration" ), // src/pages/home/home.jsx:86
25
+ __( "You can get a migration token from your {{a}}SiteGround Site Tools{{/a}} in WordPress > Migrator. In there you can specify the destination URL, too.Once you have the token, paste it below to start the migration." ), // src/pages/home/home.jsx:92
26
+ __( "Migration Token" ), // src/pages/home/home.jsx:105
27
+ __( "Email for migration updates (optional)" ), // src/pages/home/home.jsx:111
28
+ __( "Enter valid email" ), // src/pages/home/home.jsx:114
29
+ __( "Start Migration" ), // src/pages/home/home.jsx:123
30
+ __( "Loading..." ), // src/pages/status/status.jsx:37
31
+ __( "Cancel" ), // src/pages/status/status.jsx:41
32
+ __( "Cancel ongoing transfer" ), // src/pages/status/status.jsx:52
33
+ __( "No" ), // src/pages/status/status.jsx:60
34
+ __( "Yes" ), // src/pages/status/status.jsx:79
35
+ __( "Are you sure you want this?" ), // src/pages/status/status.jsx:84
36
+ __( "Data Transfer Complete!" ), // src/pages/success/success.jsx:38
37
+ __( "We have set up a {{a}}temporary URL{{/a}} (valid for 48 hours) where you can check whether your website looks and performs as expected. Once you confirm everything’s ok, don’t forget to {{b}}point your domain to the new server in order to complete the migration{{/b}}, using the name servers below. DNS propagation may take up to 48 hours." ), // src/pages/success/success.jsx:39
38
+ __( "NS1:" ), // src/pages/success/success.jsx:52
39
+ __( "NS2:" ), // src/pages/success/success.jsx:55
40
+ __( "Initiate New Transfer" ), // src/pages/success/success.jsx:76
41
+ __( "WHAT" ), // src/sagas/requests-completion.js:25
42
+ __( "Could not connect to the WordPress REST API" ), // src/sagas/requests-completion.js:25
43
+ __( "WHAT" ), // src/sagas/requests-completion.js:32
44
+ __( "Could not connect to the WordPress REST API" ), // src/sagas/requests-completion.js:32
45
+ );
46
+ /* THIS IS THE END OF THE GENERATED FILE */
siteground-migrator.php ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace SiteGround_Migrator;
4
+
5
+ use SiteGround_Migrator\Loader\Loader;
6
+ use SiteGround_Migrator\Activator\Activator;
7
+ use SiteGround_Migrator\Deactivator\Deactivator;
8
+ use ShuttleExport\Exporter;
9
+
10
+
11
+ /**
12
+ * The plugin bootstrap file
13
+ *
14
+ * This file is read by WordPress to generate the plugin information in the plugin
15
+ * admin area. This file also includes all of the dependencies used by the plugin,
16
+ * registers the activation and deactivation functions, and defines a function
17
+ * that starts the plugin.
18
+ *
19
+ * @link https://www.siteground.com
20
+ * @since 1.0.0
21
+ * @package SiteGround_Migrator
22
+ *
23
+ * @wordpress-plugin
24
+ * Plugin Name: SiteGround Migrator
25
+ * Plugin URI: http://siteground.com
26
+ * Description: This plugin is designed to migrate your WordPress site to SiteGround
27
+ * Version: 2.0.0
28
+ * Author: SiteGround
29
+ * Author URI: https://www.siteground.com
30
+ * License: GPL-2.0+
31
+ * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
32
+ * Text Domain: siteground-migrator
33
+ * Domain Path: /languages
34
+ */
35
+
36
+ // If this file is called directly, abort.
37
+ if ( ! defined( 'WPINC' ) ) {
38
+ die;
39
+ }
40
+
41
+ // Define version constant.
42
+ if ( ! defined( __NAMESPACE__ . '\VERSION' ) ) {
43
+ define( __NAMESPACE__ . '\VERSION', '2.0.0' );
44
+ }
45
+
46
+ // Define slug constant.
47
+ if ( ! defined( __NAMESPACE__ . '\PLUGIN_SLUG' ) ) {
48
+ define( __NAMESPACE__ . '\PLUGIN_SLUG', 'siteground-migrator' );
49
+ }
50
+
51
+ // Define root directory.
52
+ if ( ! defined( __NAMESPACE__ . '\DIR' ) ) {
53
+ define( __NAMESPACE__ . '\DIR', __DIR__ );
54
+ }
55
+
56
+ // Define root URL.
57
+ if ( ! defined( __NAMESPACE__ . '\URL' ) ) {
58
+ $root_url = \trailingslashit( DIR );
59
+
60
+ // Sanitize directory separator on Windows.
61
+ $root_url = str_replace( '\\', '/', $root_url );
62
+
63
+ $wp_plugin_dir = str_replace( '\\', '/', WP_PLUGIN_DIR );
64
+ $root_url = str_replace( $wp_plugin_dir, \plugins_url(), $root_url );
65
+
66
+ define( __NAMESPACE__ . '\URL', \untrailingslashit( $root_url ) );
67
+
68
+ unset( $root_url );
69
+ }
70
+ require_once( \SiteGround_Migrator\DIR . '/vendor/autoload.php' );
71
+
72
+ register_activation_hook( __FILE__, array( new Activator(), 'activate' ) );
73
+ register_deactivation_hook( __FILE__, array( new Deactivator(), 'deactivate' ) );
74
+
75
+ // Initialize helper.
76
+ global $sg_migrator_loader;
77
+
78
+ if ( ! isset( $sg_migrator_loader ) ) {
79
+ $sg_migrator_loader = new Loader();
80
+ }
templates/email-templates/sg_migrator_failed.php ADDED
@@ -0,0 +1,135 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
5
+ <title>Migration to SiteGround Failed</title>
6
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"/>
7
+ <link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600|Roboto:400,500" rel="stylesheet">
8
+ <style type="text/css">
9
+ body {
10
+ margin: 0;
11
+ padding: 0;
12
+ width: 100% !important;
13
+ -webkit-text-size-adjust: 100%;
14
+ -ms-text-size-adjust: 100%;
15
+ }
16
+
17
+ img {
18
+ max-width: 100%;
19
+ outline: none;
20
+ text-decoration: none;
21
+ -ms-interpolation-mode: bicubic;
22
+ display: block !important;
23
+ border: none;
24
+ }
25
+ #backgroundTable {
26
+ margin: 0;
27
+ padding: 10px 10px 10px 10px;
28
+ width: 100% !important;
29
+ line-height: 100%;
30
+ }
31
+
32
+ @media screen and (max-width: 480px), screen and (max-device-width: 480px) {
33
+ .flex, [class=flex] {
34
+ width: 94% !important;
35
+ }
36
+ #backgroundTable {
37
+ padding: 10px 0 10px 0px;
38
+ }
39
+ }
40
+ </style>
41
+ <!--Fallback For Outlook -->
42
+ <!--[if mso]>
43
+ <style type=”text/css”>
44
+ .body-text {
45
+ font-family: Arial, sans-serif !important;
46
+ }
47
+ </style>
48
+ <![endif]-->
49
+ </head>
50
+
51
+ <body style="margin: 0; padding: 0;">
52
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" id="backgroundTable" style="background: #ffffff;">
53
+ <tr>
54
+ <td>
55
+ <!-- Main Container -->
56
+ <table class="flex" align="center" border="0" cellpadding="0" cellspacing="0" width="600"
57
+ style="border-collapse: collapse; font-family: 'Open Sans', Arial, Helvetica, sans-serif;">
58
+ <tr>
59
+ <td>
60
+ <!-- Header -->
61
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
62
+ <tr>
63
+ <td height="30"
64
+ style="padding: 20px 0 30px 0;">
65
+ <a style="border: none"
66
+ href="https://www.siteground.com/?utm_source=newsletter&utm_medium=email&utm_campaign=logo"
67
+ target="_blank" rel="noreferrer"><img
68
+ src="https://www.siteground.com/static/en/img/emails/logo_b.png"
69
+ width="170" alt="Your Website at SiteGround"></a>
70
+ </td>
71
+
72
+ </tr>
73
+ </table>
74
+ <!-- End Header -->
75
+ </td>
76
+ </tr>
77
+ <tr>
78
+ <td style="padding: 0 0 30px 0">
79
+ <img src="https://www.siteground.com/static/en/img/emails/generic/sg_migration_failed_header.png"
80
+ width="600" alt="Migration to SiteGround Failed"
81
+ style="max-height: 250px;"/>
82
+ </td>
83
+ </tr>
84
+ <tr>
85
+ <td class="body-text"
86
+ style="color: #363636; font-weight: 500; font-family: 'Roboto', Arial, Helvetica, sans-serif; font-size: 26px; line-height: 38px; padding: 0 0 25px 0">
87
+ <?php _e( 'Hello,', 'siteground-migrator' ); ?>
88
+ </td>
89
+ </tr>
90
+ <tr>
91
+ <td class="body-text"
92
+ style="color: #444444; font-weight: 400; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 16px; line-height: 26px; padding: 0px 0 25px 0">
93
+ <?php
94
+ printf(
95
+ __(
96
+ 'As you requested, we’ve tried to move a copy of <a href="%1$s" target="_blank" rel="noreferrer" style="color: #22b8d1; outline: none; text-decoration: none;">%1$s</a> to SiteGround. Unfortunately, the transfer failed due to restriction in the current hosting environment.',
97
+ 'siteground-migrator'
98
+ ),
99
+ get_home_url( '/' )
100
+ );
101
+ ?>
102
+ </td>
103
+ </tr>
104
+ <tr>
105
+ <td class="body-text"
106
+ style="color: #444444; font-weight: 400; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 16px; line-height: 26px; padding: 0px 0 40px 0">
107
+ <?php
108
+ printf(
109
+ __(
110
+ 'Please review <a href="%s" target="_blank" rel="noreferrer" style="color: #22b8d1; outline: none; text-decoration: none;">our tutorial</a> for manual transfer or request a professional transfer from our Support Team by posting a ticket in your Help Desk under <a href="%s" target="_blank" rel="noreferrer" style="color: #22b8d1; outline: none; text-decoration: none;">Website Transfer</a> category.',
111
+ 'siteground-migrator'
112
+ ),
113
+ __( 'https://www.siteground.com/tutorials/wordpress/move-copy/', 'siteground-migrator' ),
114
+ __( 'https://ua.siteground.com/support/website_transfer.htm', 'siteground-migrator' )
115
+ );
116
+ ?>
117
+ </td>
118
+ </tr>
119
+ <tr>
120
+ <td class="body-text"
121
+ style="color: #444444; font-weight: 400; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 16px; line-height: 26px; padding: 0px 0 25px 0">
122
+ <?php _e( 'Best Regards, <br>The SiteGround Team', 'siteground-migrator' ) ?>
123
+ </td>
124
+ </tr>
125
+
126
+ </table>
127
+
128
+ <!-- End Main Container -->
129
+ </td>
130
+ </tr>
131
+ </table>
132
+
133
+ </body>
134
+ </html>
135
+
templates/email-templates/sg_migrator_successful.php ADDED
@@ -0,0 +1,166 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
5
+ <title>Migration to SiteGround Completed</title>
6
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"/>
7
+ <link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600|Roboto:400,500" rel="stylesheet">
8
+ <style type="text/css">
9
+ body {
10
+ margin: 0;
11
+ padding: 0;
12
+ width: 100% !important;
13
+ -webkit-text-size-adjust: 100%;
14
+ -ms-text-size-adjust: 100%;
15
+ }
16
+
17
+ img {
18
+ max-width: 100%;
19
+ outline: none;
20
+ text-decoration: none;
21
+ display: block !important;
22
+ border: none;
23
+ }
24
+ #backgroundTable {
25
+ margin: 0;
26
+ padding: 10px 10px 10px 10px;
27
+ width: 100% !important;
28
+ line-height: 100%;
29
+ }
30
+
31
+ @media screen and (max-width: 480px), screen and (max-device-width: 480px) {
32
+ .flex, [class=flex] {
33
+ width: 94% !important;
34
+ }
35
+ #backgroundTable {
36
+ padding: 10px 0 10px 0px;
37
+ }
38
+ }
39
+ </style>
40
+ <!--Fallback For Outlook -->
41
+ <!--[if mso]>
42
+ <style type=”text/css”>
43
+ .body-text {
44
+ font-family: Arial, sans-serif !important;
45
+ }
46
+ </style>
47
+ <![endif]-->
48
+ </head>
49
+
50
+ <body style="margin: 0; padding: 0;">
51
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" id="backgroundTable" style="background: #ffffff;">
52
+ <tr>
53
+ <td>
54
+ <!-- Main Container -->
55
+ <table class="flex" align="center" border="0" cellpadding="0" cellspacing="0" width="600"
56
+ style="border-collapse: collapse; font-family: 'Open Sans', Arial, Helvetica, sans-serif;">
57
+ <tr>
58
+ <td>
59
+ <!-- Header -->
60
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
61
+ <tr>
62
+ <td height="30"
63
+ style="padding: 20px 0 30px 0;">
64
+ <a style="border: none"
65
+ href="https://www.siteground.com/?utm_source=newsletter&utm_medium=email&utm_campaign=logo"
66
+ target="_blank" rel="noreferrer"><img
67
+ src="https://www.siteground.com/static/en/img/emails/logo_b.png"
68
+ width="170" alt="Your Website at SiteGround"></a>
69
+ </td>
70
+
71
+ </tr>
72
+ </table>
73
+ <!-- End Header -->
74
+ </td>
75
+ </tr>
76
+ <tr>
77
+ <td style="padding: 0 0 30px 0">
78
+ <img src="https://www.siteground.com/static/en/img/emails/generic/sg_migration_successful_header.png"
79
+ width="600" alt="Migration to SiteGround Completed"
80
+ style="max-height: 250px;"/>
81
+ </td>
82
+ </tr>
83
+ <tr>
84
+ <td class="body-text"
85
+ style="color: #363636; font-weight: 500; font-family: 'Roboto', Arial, Helvetica, sans-serif; font-size: 26px; line-height: 38px; padding: 0 0 25px 0">
86
+ <?php _e( 'Hello,', 'siteground-migrator' ); ?>
87
+ </td>
88
+ </tr>
89
+ <tr>
90
+ <td class="body-text"
91
+ style="color: #444444; font-weight: 400; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 16px; line-height: 26px; padding: 0px 0 25px 0">
92
+ <?php
93
+ printf(
94
+ __(
95
+ 'A copy of <a href="%1$s" target="_blank" rel="noreferrer" style="color: #22b8d1; outline: none; text-decoration: none;">%1$s</a> has been successfully migrated to SiteGround, as you requested.',
96
+ 'siteground-migrator'
97
+ ),
98
+ get_home_url( '/' )
99
+ )
100
+ ?>
101
+ </td>
102
+ </tr>
103
+ <tr>
104
+ <td class="body-text"
105
+ style="color: #444444; font-weight: 400; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 16px; line-height: 26px; padding: 0px 0 25px 0">
106
+ <?php _e( 'You can preview the migrated website here:', 'siteground-migrator' ); ?>
107
+ </td>
108
+ </tr>
109
+ <tr>
110
+ <td class="body-text"
111
+ style="color: #444444; font-weight: 400; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 16px; line-height: 26px; padding: 0px 0 25px 0">
112
+ <a href="<?php echo $data['temp_url'] ?>" target="_blank" rel="noreferrer" style="color: #22b8d1; outline: none; text-decoration: none;"><b><?php echo $data['temp_url'] ?></b></a>
113
+ </td>
114
+ </tr>
115
+ <tr>
116
+ <td class="body-text"
117
+ style="color: #444444; font-weight: 400; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 16px; line-height: 26px; padding: 0px 0 25px 0">
118
+ <?php _e( 'If your site looks as expected on the new location and you wish to complete the transfer, just point your domain name to SiteGround. To do this, please change your name servers to the following: ', 'siteground-migrator' ) ?>
119
+ </td>
120
+ </tr>
121
+ <tr>
122
+ <td style="padding: 0 0 25px 0;">
123
+ <table border="0" cellpadding="0" cellspacing="0" width="100%"
124
+ bgcolor="#e6f6ea">
125
+ <tr>
126
+ <td class="body-text"
127
+ style="color: #444444; font-weight: 400; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 16px; line-height: 26px; padding: 20px 25px 20px 25px;">
128
+ <?php
129
+ foreach ( $data['dns_servers'] as $counter => $server ) :
130
+ // Bail if the dns server is empty.
131
+ if ( empty( $server ) ) {
132
+ continue;
133
+ }
134
+ ?>
135
+
136
+ <strong>NS<?php echo $counter + 1; ?>: <?php echo esc_html( $server ); ?></strong>
137
+ <br>
138
+ <?php endforeach ?>
139
+ </td>
140
+ </tr>
141
+ </table>
142
+ </td>
143
+ </tr>
144
+ <tr>
145
+ <td class="body-text"
146
+ style="color: #444444; font-weight: 400; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 16px; line-height: 26px; padding: 0px 0 40px 0">
147
+ <?php _e( '<b>Important:</b> It can take up to 48 hours for the nameserver changes to propagate. It’s very important to make no changes to your website during the transfer period to avoid data loss or data discrepancy.', 'siteground-migrator' ) ?>
148
+ </td>
149
+ </tr>
150
+ <tr>
151
+ <td class="body-text"
152
+ style="color: #444444; font-weight: 400; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 16px; line-height: 26px; padding: 0px 0 25px 0">
153
+ <?php _e( 'Best Regards, <br>The SiteGround Team', 'siteground-migrator' ) ?>
154
+ </td>
155
+ </tr>
156
+
157
+ </table>
158
+
159
+ <!-- End Main Container -->
160
+ </td>
161
+ </tr>
162
+ </table>
163
+
164
+ </body>
165
+ </html>
166
+
templates/email-templates/sg_migrator_successful_errors.php ADDED
@@ -0,0 +1,194 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
5
+ <title>Migration to SiteGround completed, some files could not be transferred</title>
6
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"/>
7
+ <link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600|Roboto:400,500" rel="stylesheet">
8
+ <style type="text/css">
9
+ body {
10
+ margin: 0;
11
+ padding: 0;
12
+ width: 100% !important;
13
+ -webkit-text-size-adjust: 100%;
14
+ -ms-text-size-adjust: 100%;
15
+ }
16
+
17
+ img {
18
+ max-width: 100%;
19
+ outline: none;
20
+ text-decoration: none;
21
+ -ms-interpolation-mode: bicubic;
22
+ display: block !important;
23
+ border: none;
24
+ }
25
+ #backgroundTable {
26
+ margin: 0;
27
+ padding: 10px 10px 10px 10px;
28
+ width: 100% !important;
29
+ line-height: 100%;
30
+ }
31
+
32
+ @media screen and (max-width: 480px), screen and (max-device-width: 480px) {
33
+ .flex, [class=flex] {
34
+ width: 94% !important;
35
+ }
36
+ #backgroundTable {
37
+ padding: 10px 0 10px 0px;
38
+ }
39
+ }
40
+ </style>
41
+ <!--Fallback For Outlook -->
42
+ <!--[if mso]>
43
+ <style type=”text/css”>
44
+ .body-text {
45
+ font-family: Arial, sans-serif !important;
46
+ }
47
+ </style>
48
+ <![endif]-->
49
+ </head>
50
+
51
+ <body style="margin: 0; padding: 0;">
52
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" id="backgroundTable" style="background: #ffffff;">
53
+ <tr>
54
+ <td>
55
+ <!-- Main Container -->
56
+ <table class="flex" align="center" border="0" cellpadding="0" cellspacing="0" width="600"
57
+ style="border-collapse: collapse; font-family: 'Open Sans', Arial, Helvetica, sans-serif;">
58
+ <tr>
59
+ <td>
60
+ <!-- Header -->
61
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
62
+ <tr>
63
+ <td height="30"
64
+ style="padding: 20px 0 30px 0;">
65
+ <a style="border: none"
66
+ href="https://www.siteground.com/?utm_source=newsletter&utm_medium=email&utm_campaign=logo"
67
+ target="_blank" rel="noreferrer"><img
68
+ src="https://www.siteground.com/static/en/img/emails/logo_b.png"
69
+ width="170" alt="Your Website at SiteGround"></a>
70
+ </td>
71
+
72
+ </tr>
73
+ </table>
74
+ <!-- End Header -->
75
+ </td>
76
+ </tr>
77
+ <tr>
78
+ <td style="padding: 0 0 30px 0">
79
+ <img src="https://www.siteground.com/static/en/img/emails/generic/sg_migration_errors_header.png"
80
+ width="600" alt="Migration to SiteGround completed, some files could not be transferred"
81
+ style="max-height: 250px;"/>
82
+ </td>
83
+ </tr>
84
+ <tr>
85
+ <td class="body-text"
86
+ style="color: #363636; font-weight: 500; font-family: 'Roboto', Arial, Helvetica, sans-serif; font-size: 26px; line-height: 38px; padding: 0 0 25px 0">
87
+ <?php _e( 'Hello,', 'siteground-migrator' ); ?>
88
+ </td>
89
+ </tr>
90
+ <tr>
91
+ <td class="body-text"
92
+ style="color: #444444; font-weight: 400; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 16px; line-height: 26px; padding: 0px 0 25px 0">
93
+ <?php
94
+ printf(
95
+ __(
96
+ 'A copy of <a href="%1$s" target="_blank" rel="noreferrer" style="color: #22b8d1; outline: none; text-decoration: none;">%1$s</a> has been migrated to SiteGround, as you requested. The database and most of the WordPress files of your website were transferred to the new server. However, <b>the files listed below could not be transferred due to restrictions of the current hosting environment</b>:',
97
+ 'siteground-migrator'
98
+ ),
99
+ get_home_url( '/' )
100
+ )
101
+ ?>
102
+ </td>
103
+ </tr>
104
+
105
+ <?php if ( ! empty( $data['errors'] ) ): ?>
106
+ <tr>
107
+ <td style="padding: 0px 0px 15px 0px; font-size: 14px; color: #0d0d0d; line-height: 150%;">
108
+ <?php
109
+ foreach ( $data['errors'] as $error ) {
110
+ echo $error['f'] . '<br>';
111
+ }
112
+ ?>
113
+ </td>
114
+ </tr>
115
+ <?php endif ?>
116
+
117
+ <tr>
118
+ <td class="body-text"
119
+ style="color: #444444; font-weight: 400; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 16px; line-height: 26px; padding: 0px 0 25px 0">
120
+ <?php _e( 'Please preview your migrated website on the link below to see if it looks and functions as expected:', 'siteground-migrator' ) ?>
121
+ </td>
122
+ </tr>
123
+ <tr>
124
+ <td class="body-text"
125
+ style="color: #444444; font-weight: 400; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 16px; line-height: 26px; padding: 0px 0 25px 0">
126
+ <a href="<?php echo $data['temp_url'] ?>" target="_blank" rel="noreferrer" style="color: #22b8d1; outline: none; text-decoration: none;"><b><?php echo $data['temp_url'] ?></b></a>
127
+ </td>
128
+ </tr>
129
+ <tr>
130
+ <td class="body-text"
131
+ style="color: #444444; font-weight: 400; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 16px; line-height: 26px; padding: 0px 0 25px 0">
132
+ <?php
133
+ printf(
134
+ __(
135
+ 'If there are any errors, either try to migrate the files from the list above manually using FTP or sFTP, or contact our SiteGround support team through your Help Desk under <a href="%s" target="_blank" rel="noreferrer" style="color: #22b8d1; outline: none; text-decoration: none;">Other Technical Issues</a> category. ',
136
+ 'siteground-migrator'
137
+ ),
138
+ __( 'https://ua.siteground.com/login_office.htm', 'siteground-migrator' )
139
+ );
140
+ ?>
141
+ </td>
142
+ </tr>
143
+ <tr>
144
+ <td class="body-text"
145
+ style="color: #444444; font-weight: 400; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 16px; line-height: 26px; padding: 0px 0 25px 0">
146
+ <?php __( 'If your site looks as expected on the new location and you wish to complete the transfer, just point your domain name to SiteGround. To do this, please change your name servers to the following:', 'siteground-migrator' ); ?>
147
+ </td>
148
+ </tr>
149
+ <tr>
150
+ <td style="padding: 0 0 25px 0;">
151
+ <table border="0" cellpadding="0" cellspacing="0" width="100%"
152
+ bgcolor="#e6f6ea">
153
+ <tr>
154
+ <td class="body-text"
155
+ style="color: #444444; font-weight: 400; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 16px; line-height: 26px; padding: 20px 25px 20px 25px;">
156
+ <?php
157
+ foreach ( $data['dns_servers'] as $counter => $server ) :
158
+ // Bail if the dns server is empty.
159
+ if ( empty( $server ) ) {
160
+ continue;
161
+ }
162
+ ?>
163
+
164
+ <strong>NS<?php echo $counter + 1; ?>: <?php echo esc_html( $server ); ?></strong>
165
+ <br>
166
+ <?php endforeach ?>
167
+ </td>
168
+ </tr>
169
+ </table>
170
+ </td>
171
+ </tr>
172
+ <tr>
173
+ <td class="body-text"
174
+ style="color: #444444; font-weight: 400; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 16px; line-height: 26px; padding: 0px 0 40px 0">
175
+ <?php _e( '<b>Important:</b> It can take up to 48 hours for the nameserver changes to propagate. It’s very important to make no changes to your website during the transfer period to avoid data loss or data discrepancy.', 'siteground-migrator' ); ?>
176
+ </td>
177
+ </tr>
178
+ <tr>
179
+ <td class="body-text"
180
+ style="color: #444444; font-weight: 400; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 16px; line-height: 26px; padding: 0px 0 25px 0">
181
+ <?php _e( 'Best Regards, <br>The SiteGround Team', 'siteground-migrator' ); ?>
182
+ </td>
183
+ </tr>
184
+
185
+ </table>
186
+
187
+ <!-- End Main Container -->
188
+ </td>
189
+ </tr>
190
+ </table>
191
+
192
+ </body>
193
+ </html>
194
+
templates/partials/cancel-transfer-confirmation.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="dialog-wrapper">
2
+ <div class="dialog dialog--align-center dialog--size-medium dialog--density-medium dialog--state-inactive">
3
+ <div class="dialog__header">
4
+ <div class="dialog__icon hide-on-mobile">
5
+ <span class="icon icon--use-current-color icon--presized with-color" style="width: 25px; height: 25px;">
6
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15.56 15.56">
7
+ <rect x="-2.21" y="6.79" width="20" height="2" fill= "#fff" transform="translate(7.78 -3.24) rotate(45)"/>
8
+ <rect x="-2.21" y="6.79" width="20" height="2" fill= "#fff" transform="translate(18.79 7.78) rotate(135)"/>
9
+ </svg>
10
+ </span>
11
+ </div>
12
+ <h3 class="title title--density-airy title--level-3 typography typography--align-center typography--weight-regular with-color with-color--color-darkest dialog__title"><?php _e( 'Are you sure you want to cancel the transfer?', 'siteground-migrator' ) ?></h3>
13
+ </div>
14
+ <div class="dialog__content"></div>
15
+ <div class="toolbar toolbar--background-light toolbar--density-comfortable toolbar--align-baseline dialog__toolbar">
16
+ <div>
17
+ <button class="btn btn--primary btn--medium btn__resume" type="submit" data-e2e="dialog-submit">
18
+ <?php _e( 'Continue', 'siteground-migrator' ) ?>
19
+ </button>
20
+ <button class="btn btn--neutral btn--medium btn__cancel" type="submit">
21
+ <?php _e( 'Cancel Transfer', 'siteground-migrator' ) ?>
22
+ </button>
23
+ </div>
24
+ </div>
25
+ </div>
26
+ </div>
templates/partials/field-text.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <input
2
+ name="<?php echo esc_attr( $this->get_id() ); ?>"
3
+ id="<?php echo esc_attr( $this->get_id() ); ?>"
4
+ type="text"
5
+ value="<?php echo esc_attr( $this->get_value() ); ?>"
6
+ class="<?php echo esc_attr( $this->get_class_names() ) ?>"
7
+ <?php echo $this->add_pattern() ?>
8
+ <?php echo $this->is_required() ?>
9
+ />
templates/partials/new-site-setup-info.php ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $temp_url = ! empty( $status['temp_url'] ) ? $status['temp_url'] : '';
3
+ $dns_servers = ! empty( $status['dns_servers'] ) ? $status['dns_servers'] : array();
4
+ ?>
5
+ <div class="flex flex--gutter-medium flex--margin-medium new-site-info hidden">
6
+ <div class="box box--direction-row box--sm-6 box--flex box--temp-url ua-margin-top-medium <?php echo empty( $temp_url ) ? 'hidden' : ''; ?>">
7
+ <div class="border-box ua-flex-grow">
8
+ <span class="icon icon--presized with-color border-box__icon" style="width: 72px; height: 72px;">
9
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96"><rect width="96" height="95.956" fill="#fff" opacity="0"/><rect x="40.325" y="37.507" width="37.07" height="19.61" fill="#e3f4f9"/><rect x="2.833" y="30.211" width="29.327" height="50.131" fill="#e3f4f9"/><rect x="2.803" y="14.998" width="90.306" height="15.212" fill="#e3f4f9"/><path d="M93.109,14H2.8a1,1,0,0,0-1,1V80.341a1,1,0,0,0,1,1H93.109a1,1,0,0,0,1-1V15A1,1,0,0,0,93.109,14Zm-1,2V29.21H3.8V16ZM3.8,31.21H31.16V79.341H3.8ZM33.16,79.341V31.21H92.109V79.341Z" fill="#256e7a"/><path d="M77.4,58.117H40.325a1,1,0,0,1-1-1V37.507a1,1,0,0,1,1-1H77.4a1,1,0,0,1,1,1v19.61A1,1,0,0,1,77.4,58.117Zm-36.071-2H76.4V38.507H41.325Z" fill="#256e7a"/><path d="M77.4,65.966H40.325a1,1,0,0,1,0-2H77.4a1,1,0,1,1,0,2Z" fill="#256e7a"/></svg>
10
+ </span>
11
+ <div class="ua-margin-bottom-medium">
12
+ <h3 class="title title--density-none title--level-4 typography typography--align-center typography--weight-bold with-color with-color--color-darker">
13
+ <?php esc_html_e( 'Check Site', 'siteground-migrator' ); ?>
14
+ </h3>
15
+
16
+ <p class="text text--size-medium typography typography--weight-regular with-color with-color--color-dark">
17
+ <?php esc_html_e( 'We’ve provided a temporary URL for you to check your site before pointing your nameservers to SiteGround. Мake sure everything is working fine before pointing your domain.', 'siteground-migrator' ); ?>
18
+ </p>
19
+ </div>
20
+ <a href="<?php echo $temp_url; ?>" class="btn btn--temp-url btn--secondary btn--large btn--outlined ua-margin-top-auto" target="_blank"><span class="btn__content"><span class="btn__text"><?php esc_html_e( 'Go to Site', 'siteground-migrator' ) ?></span></span></a>
21
+ </div>
22
+ </div>
23
+
24
+ <div class="box box--direction-row box--dns-servers box--sm-6 box--flex ua-margin-top-medium <?php echo empty( $dns_servers ) ? 'hidden' : ''; ?>">
25
+ <div class="border-box ua-flex-grow">
26
+ <span class="icon icon--presized with-color border-box__icon" style="width: 72px; height: 72px;">
27
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96"><rect width="96" height="96" fill="#fff" opacity="0"/><polygon points="74.246 8.766 67.531 15.427 8 15.399 8.083 87.234 80.083 87.234 80 30.381 88 22.399 74.246 8.766" fill="#ecf3da"/><path d="M89,22.4a1,1,0,0,0-.3-.708L74.95,8.056a1,1,0,0,0-1.41,0l-5.6,5.585-.81.784L8,14.4a1,1,0,0,0-1,1l.082,71.834a1,1,0,0,0,1,1h72a1,1,0,0,0,1-1L81,30.813l7.706-7.706A1,1,0,0,0,89,22.4Zm-9.653,7.24a1,1,0,0,0-.092.092L55.442,53.54,41,55.6l.065-.476c0-.007,0-.012,0-.019v0L42.8,42.509a.969.969,0,0,0,.1-.42,1.012,1.012,0,0,0-.024-.122l.084-.611L68.933,15.473,81.283,27.7Zm-.266,56.6h-70L9,16.4l56.142.026L41.31,40.177a1,1,0,0,0-.285.572l-.046.34H19.142a1,1,0,1,0,0,2H40.7L39.189,54.108H19.142a1,1,0,0,0,0,2H38.914l-.074.537a1,1,0,0,0,.99,1.136.978.978,0,0,0,.142-.01l16.084-2.3a1,1,0,0,0,.565-.283L79,32.809ZM82.7,26.288,70.349,14.061l3.9-3.885L86.583,22.4Z" fill="#567635"/><path d="M18.142,67.273a1,1,0,0,0,1,1H69.221a1,1,0,0,0,0-2H19.142A1,1,0,0,0,18.142,67.273Z" fill="#567635"/></svg>
28
+ </span>
29
+ <div class="ua-margin-bottom-medium">
30
+ <h3 class="title title--density-none title--level-4 typography typography--align-center typography--weight-bold with-color with-color--color-darker"><?php esc_html_e( 'Update Your DNS', 'siteground-migrator' ); ?></h3>
31
+ <p class="text text--size-medium typography typography--weight-regular with-color with-color--color-dark"><?php esc_html_e( 'Please change your domain’s NS. Note that those changes require up to 48 hours of propagation time. Don’t modify your site during that period to avoid data loss.', 'siteground-migrator' ); ?></p>
32
+ </div>
33
+
34
+ <div class="dns_servers">
35
+ <?php
36
+ foreach ( $dns_servers as $counter => $server ) :
37
+ // Bail if the dns server is empty.
38
+ if ( empty( $server ) ) {
39
+ continue;
40
+ }
41
+ ?>
42
+ <h4 class="title title--density-compact title--level-5 typography typography--align-center typography--weight-light with-color with-color--color-darker">NS<?php echo $counter + 1; ?>: <a class="link"><?php echo esc_html( $server ); ?></a></h4>
43
+ <?php endforeach ?>
44
+ </div>
45
+ </div>
46
+ </div>
47
+
48
+ <div class="box box--direction-row box--sm-12 box--flex box--temp-url ua-margin-top-medium">
49
+ <div class="border-box ua-flex-grow">
50
+ <div class="ua-margin-bottom-medium">
51
+ <h3 class="title title--density-none title--level-4 typography typography--align-center typography--weight-bold with-color with-color--color-darker"><?php echo esc_html__( 'That went smoothly, right?', 'siteground-migrator' ) ?></h3>
52
+ <p class="text text--size-medium typography typography--weight-regular with-color with-color--color-dark">
53
+ <a href="https://wordpress.org/support/plugin/siteground-migrator/reviews/#new-post" target="_blank" class="link"><?php echo esc_html__( 'Help us help other people by rating this plugin on WP.org!', 'siteground-migrator' ) ?></a>
54
+ </p>
55
+ </div>
56
+ <a href="https://wordpress.org/support/plugin/siteground-migrator/reviews/#new-post" target="_blank" class="link">
57
+ <span class="icon icon--presized with-color border-box__icon icon--rating">
58
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 21">
59
+ <path fill="#25b8d2" d="M11,18l5.2,2.866a1.244,1.244,0,0,0,1.77-1.382L17,13l4.552-3.371a1.243,1.243,0,0,0-.494-2.161L15,6,12.079.626a1.243,1.243,0,0,0-2.158,0L7,6,.942,7.468A1.243,1.243,0,0,0,.448,9.629L5,13l-.969,6.484A1.244,1.244,0,0,0,5.8,20.866Z"></path>
60
+ </svg>
61
+ </span>
62
+ <span class="icon icon--presized with-color border-box__icon icon--rating">
63
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 21">
64
+ <path fill="#25b8d2" d="M11,18l5.2,2.866a1.244,1.244,0,0,0,1.77-1.382L17,13l4.552-3.371a1.243,1.243,0,0,0-.494-2.161L15,6,12.079.626a1.243,1.243,0,0,0-2.158,0L7,6,.942,7.468A1.243,1.243,0,0,0,.448,9.629L5,13l-.969,6.484A1.244,1.244,0,0,0,5.8,20.866Z"></path>
65
+ </svg>
66
+ </span>
67
+ <span class="icon icon--presized with-color border-box__icon icon--rating">
68
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 21">
69
+ <path fill="#25b8d2" d="M11,18l5.2,2.866a1.244,1.244,0,0,0,1.77-1.382L17,13l4.552-3.371a1.243,1.243,0,0,0-.494-2.161L15,6,12.079.626a1.243,1.243,0,0,0-2.158,0L7,6,.942,7.468A1.243,1.243,0,0,0,.448,9.629L5,13l-.969,6.484A1.244,1.244,0,0,0,5.8,20.866Z"></path>
70
+ </svg>
71
+ </span>
72
+ <span class="icon icon--presized with-color border-box__icon icon--rating">
73
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 21">
74
+ <path fill="#25b8d2" d="M11,18l5.2,2.866a1.244,1.244,0,0,0,1.77-1.382L17,13l4.552-3.371a1.243,1.243,0,0,0-.494-2.161L15,6,12.079.626a1.243,1.243,0,0,0-2.158,0L7,6,.942,7.468A1.243,1.243,0,0,0,.448,9.629L5,13l-.969,6.484A1.244,1.244,0,0,0,5.8,20.866Z"></path>
75
+ </svg>
76
+ </span>
77
+ <span class="icon icon--presized with-color border-box__icon icon--rating">
78
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 21">
79
+ <path fill="#25b8d2" d="M11,18l5.2,2.866a1.244,1.244,0,0,0,1.77-1.382L17,13l4.552-3.371a1.243,1.243,0,0,0-.494-2.161L15,6,12.079.626a1.243,1.243,0,0,0-2.158,0L7,6,.942,7.468A1.243,1.243,0,0,0,.448,9.629L5,13l-.969,6.484A1.244,1.244,0,0,0,5.8,20.866Z"></path>
80
+ </svg>
81
+ </span>
82
+ </a>
83
+ </div>
84
+ </div>
85
+
86
+ </div>
templates/partials/siteground-migrator-admin-settings-page.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provide a admin area view for the plugin
4
+ *
5
+ * This file is used to markup the admin-facing aspects of the plugin.
6
+ *
7
+ * @link https://www.siteground.com
8
+ * @since 1.0.0
9
+ *
10
+ * @package SG_WP_Migrator
11
+ * @subpackage SG_WP_Migrator/admin/partials
12
+ */
13
+
14
+ $status = get_option( 'siteground_migrator_transfer_status' );
15
+ ?>
16
+ <div id="section--transfer-status" class="<?php echo esc_attr( ! empty( $status ) ? 'section--status-' . $status['status'] : '' ); ?>">
17
+ <div class="section section--density-cozy section--content-size-default">
18
+ <div class="section__content">
19
+
20
+ <h1 class="title title--density-comfortable title--level-1 typography typography--weight-light with-color with-color--color-darkest">
21
+ <?php echo esc_html( self::get_page_title() ); ?>
22
+ </h1>
23
+
24
+ <?php
25
+ include 'transfer-success-warnings.php';
26
+ include 'transfer-fail.php';
27
+ include 'transfer-success.php';
28
+ include 'transfer-settings.php';
29
+ ?>
30
+ </div>
31
+ </div>
32
+ </div>
33
+
34
+ <?php
35
+ include 'cancel-transfer-confirmation.php';
templates/partials/transfer-fail.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="container container--padding-xx-large container--elevation-1 thank-you thank-you--fail">
2
+ <div class="flex flex--align-center flex--gutter-none flex--direction-column flex--margin-none">
3
+ <div class="thank-you-icon-background">
4
+ <div class="thank-you-icon-wrapper">
5
+ <span class="icon icon--use-current-color icon--presized with-color thank-you-icon" style="width: 32px; height: 32px;">
6
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15.56 15.56">
7
+ <rect x="-2.21" y="6.79" width="20" height="2" fill= "#f54545" transform="translate(7.78 -3.24) rotate(45)"/>
8
+ <rect x="-2.21" y="6.79" width="20" height="2" fill= "#f54545" transform="translate(18.79 7.78) rotate(135)"/>
9
+ </svg>
10
+ </span>
11
+ </div>
12
+ </div>
13
+ <h1 class="title title--status title--density-comfortable title--level-1 typography typography--align-center typography--weight-light with-color with-color--color-darker thank-you-title">
14
+ <?php
15
+ if ( ! empty ( $status['message'] ) ) {
16
+ echo $status['message'];
17
+ }
18
+ ?>
19
+ </h1>
20
+ <p class="text text--description text--size-large typography typography--align-center typography--weight-regular with-color with-color--color-dark thank-you-description">
21
+ <?php
22
+ if ( ! empty( $status['description'] ) ) {
23
+ echo $status['description'];
24
+ }
25
+ ?>
26
+ </p>
27
+
28
+ <button class="btn btn--primary btn--large btn__cancel" type="submit" data-e2e="dialog-submit">
29
+ <?php _e( 'Initiate New Transfer', 'siteground-migrator' ) ?>
30
+ </button>
31
+
32
+ <p></p>
33
+
34
+ </div>
35
+ </div>
templates/partials/transfer-settings.php ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ use SiteGround_Migrator\Admin\Admin;
3
+
4
+ $progress = get_option( 'siteground_migrator_progress', 100 );
5
+
6
+ ?>
7
+
8
+ <div class="container container--padding-none container--elevation-1 create-box container--progress">
9
+ <div class="flex flex--gutter-xx-large flex--margin-medium">
10
+ <div class="loader">
11
+
12
+ <div class="icon-x">
13
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15.56 15.56">
14
+ <rect x="-2.21" y="6.79" width="20" height="2" fill= "#fff" transform="translate(7.78 -3.24) rotate(45)"/>
15
+ <rect x="-2.21" y="6.79" width="20" height="2" fill= "#fff" transform="translate(18.79 7.78) rotate(135)"/>
16
+ </svg>
17
+ </div>
18
+
19
+ <div class="loader-spinner"></div>
20
+
21
+ <h2 class="title-migration title title--density-comfortable title--level-3 typography typography--weight-regular with-color with-color--color-darkest title--density-none"><?php esc_html_e( 'Website Migration in Progress', 'siteground-migrator' ); ?></h2>
22
+
23
+ <p class="title--status text text--size-medium typography typography--weight-regular with-color with-color--color-darkest"><?php echo ! empty( $status['message'] ) ? $status['message'] : 'Transfer started'; ?></p>
24
+
25
+ <div class="progress">
26
+ <div class="progress__indicator progress__indicator--color-blue" style="transform: translateX(-<?php echo $progress; ?>%);"></div>
27
+ </div>
28
+
29
+ <button class="btn btn--dark btn--x-large btn__cancel__confirmation" type="button" data-e2e="create-box-submit" data-restart="false">
30
+ <span class="btn__content btn__loader">
31
+ <span class="btn__text"><?php esc_html_e( 'Cancel Transfer', 'siteground-migrator' ); ?></span>
32
+ </span>
33
+ </button>
34
+ </div>
35
+
36
+ <div class="settings">
37
+ <p class="text text--size-medium typography typography--weight-regular with-color with-color--color-darkest">
38
+ <?php __( 'Please check your current hosting account file permissions and error logs and restart the transfer with the same token.', 'siteground-migrator' ); ?>
39
+ </p>
40
+
41
+ <form class="sg-wp-migrator-options-form form">
42
+ <?php wp_nonce_field( 'siteground_migrator_options', 'siteground_migrator_update_options' ); ?>
43
+
44
+ <input type="hidden" name="action" value="update_option_siteground_migrator_transfer_token">
45
+
46
+ <label id="field-label">
47
+ <?php esc_html_e( 'Migration Token', 'siteground-migrator' ); ?>
48
+
49
+ <span class="field-wrapper field-wrapper--large field-wrapper--has-label">
50
+ <?php do_settings_fields( Admin::PAGE_SLUG, Admin::PAGE_SLUG ); ?>
51
+ </span>
52
+
53
+ <span class="validation validation--error validation--required">
54
+ <?php esc_html_e( 'This field is required', 'siteground-migrator' ); ?>
55
+ </span>
56
+
57
+ <span class="validation validation--error validation--pattern">
58
+ <?php esc_html_e( 'Token doesn\'t match requested format.', 'siteground-migrator' ); ?>
59
+ </span>
60
+ </label>
61
+
62
+ <label class="checkbox checkbox--medium checkbox--align-center field-label">
63
+ <input type="checkbox" class="checkbox__input hidden" name="siteground_migrator_send_email_notification" checked>
64
+ <span class="icon icon--use-current-color with-color checkbox__icon">
65
+ <svg viewBox="0 0 32 32">
66
+ <polygon class="st0" points="27,3.7 12.4,18 5,10.5 0,15.5 10,25.8 12.4,28.3 32,8.7 "></polygon>
67
+ </svg>
68
+ </span>
69
+ <span id="checkbox__label_email">
70
+ <span class="checkbox-label-text"><?php _e( 'Send notification email when migration is over to ', 'siteground-migrator' ); ?></span>
71
+ <span class="field-wrapper field-wrapper--small">
72
+ <input type="text" class="field" name="siteground_migrator_email_recipient" required pattern="^[\w._%+-]+@[\w.-]+\.[\w]{2,12}$" value="<?php echo get_option( 'admin_email' ) ?>"/>
73
+ <span class="validation validation--error validation--required">
74
+ <?php esc_html_e( 'This field is required', 'siteground-migrator' ); ?>
75
+ </span>
76
+
77
+ <span class="validation validation--error validation--pattern">
78
+ <?php esc_html_e( 'Email doesn\'t match requested format.', 'siteground-migrator' ); ?>
79
+ </span>
80
+ </span>
81
+ </span>
82
+ </label>
83
+
84
+ <button class="btn btn--primary btn--x-large" type="submit" data-e2e="create-box-submit">
85
+ <span class="btn__content">
86
+ <span class="btn__text">
87
+ <?php esc_html_e( 'Initiate Transfer', 'siteground-migrator' ); ?>
88
+ </span>
89
+ </span>
90
+ </button>
91
+ </form>
92
+ </div>
93
+
94
+ </div>
95
+ </div>
templates/partials/transfer-success-warnings.php ADDED
@@ -0,0 +1,99 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php $errors = ! empty( $status['errors'] ) ? $status['errors'] : array(); ?>
2
+ <div class="container container--padding-xx-large container--elevation-1 thank-you thank-you--warning">
3
+ <div class="flex flex--align-center flex--gutter-none flex--direction-column flex--margin-none">
4
+ <div class="thank-you-icon-background">
5
+ <div class="thank-you-icon-wrapper">
6
+ <span class="icon icon--use-current-color icon--presized with-color thank-you-icon" style="width: 45px; height: 45px;">
7
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 34 31">
8
+ <path d="M26,52a1,1,0,0,1-.78-.373s-.252-.313-.632-.879a1,1,0,1,1,1.66-1.115c.312.465.52.728.533.745A1,1,0,0,1,26,52Z" transform="translate(-21 -23)"/>
9
+ <path d="M55,40A17.019,17.019,0,0,0,38,23c-7.117,0-12.927,3.589-15.541,9.6v.008c-.14.318-.269.643-.39.976a1,1,0,0,0,1.881.682q.16-.443.344-.867v0C26.581,28.139,31.705,25,38,25A14.978,14.978,0,0,1,48,51.149V46H46v8h8V52H50.041A16.908,16.908,0,0,0,55,40Z" transform="translate(-21 -23)"/>
10
+ <path d="M23,40c0-.615.029-1.229.087-1.823a1,1,0,0,0-1.99-.194c-.065.66-.1,1.337-.1,2.017l0,.226,2-.031Z" transform="translate(-21 -23)"/>
11
+ <path d="M23.632,44.13a1,1,0, 1,0-1.918.566,20.674,20.674,0,0,0,.754,2.113,1,1,0,0,0,.923.613,1.014,1.014,0,0,0,.386-.077,1,1,0,0,0,.536-1.31A18.468,18.468,0,0,1,23.632,44.13Z" transform="translate(-21 -23)"/>
12
+ <path d="M38.9,46.269a1.851,1.851,0,0,1,.517,1.35A1.933,1.933,0,0,1,38.9,49.01a1.734,1.734,0,0,1-1.311.543A1.678,1.678,0,0,1,36.309,49a1.942,1.942,0,0,1-.517-1.377,1.851,1.851,0,0,1,.517-1.35,1.716,1.716,0,0,1,1.284-.531A1.75,1.75,0,0,1,38.9,46.269ZM35.951,30.957h3.311v4.609l-.582,7.708H36.533l-.582-7.708Z" transform="translate(-21 -23)"/>
13
+ </svg>
14
+ </span>
15
+ </div>
16
+ </div>
17
+ <h1 class="title title--status title--density-comfortable title--level-1 typography typography--align-center typography--weight-light with-color with-color--color-darker thank-you-title">
18
+ <?php if ( ! empty( $status['message'] ) ) {
19
+ echo esc_html( $status['message'] );
20
+ }
21
+ ?>
22
+ </h1>
23
+
24
+ <p class="text text--description text--size-large typography typography--align-center typography--weight-regular with-color with-color--color-dark thank-you-description">
25
+ <?php
26
+ if ( ! empty( $status['description'] ) ) {
27
+ echo esc_html( $status['description'] );
28
+ }
29
+ ?>
30
+ </p>
31
+
32
+ <div class="box--actions">
33
+ <button class="btn btn--x-large btn__cancel btn--primary btn--dark" type="button" data-e2e="create-box-submit" data-restart="true">
34
+ <span class="btn__content btn__loader">
35
+ <span class="btn__text"><?php esc_html_e( 'Cancel Transfer', 'siteground-migrator' ); ?></span>
36
+ </span>
37
+ </button>
38
+
39
+ <button class="btn btn--x-large btn__resume btn--primary" type="button" data-e2e="create-box-submit" data-restart="true">
40
+ <span class="btn__content btn__loader">
41
+ <span class="btn__text"><?php esc_html_e( 'Continue', 'siteground-migrator' ); ?></span>
42
+ </span>
43
+ </button>
44
+
45
+ </div>
46
+ </div>
47
+ <div style="width:100%" class="box--errors <?php echo empty( $errors ) ? 'hidden' : '' ?>">
48
+ <div class="table-wrapper border-box table-wrapper--density-medium table-wrapper--mobile">
49
+ <table class="table table--no-footer">
50
+ <thead class="table__head table__head--background-default">
51
+ <tr>
52
+ <th class="table__cell" data-cell-index="0">File</th>
53
+ <th class="table__cell" data-cell-index="1">Status</th>
54
+ </tr>
55
+ </thead>
56
+ <tbody class="table__body table__body_errros">
57
+ <?php
58
+ foreach ( $errors as $error ) :
59
+ if ( empty( $error['f'] ) ) {
60
+ continue;
61
+ }
62
+ ?>
63
+ <tr class="table__row" style="touch-action: pan-y; user-select: none; -webkit-user-drag: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
64
+ <td class="table__cell" data-label="For Email" data-cell-index="0" data-row-index="5">
65
+ <div class="table__cell-text">
66
+ <?php echo esc_html( $error['f'] ); ?>
67
+ </div>
68
+ </td>
69
+ <?php if ( ! empty( $error['e'] ) ) : ?>
70
+ <td class="table__cell" data-label="Status" data-cell-index="2" data-row-index="5">
71
+ <span class="label label--type-inactive-link label--size-medium">
72
+ <?php echo $error['e']; ?>
73
+ </span>
74
+ </td>
75
+ <?php endif ?>
76
+ </tr>
77
+ <?php endforeach ?>
78
+
79
+ <tr class="table__row table__row-template" style="touch-action: pan-y; user-select: none; -webkit-user-drag: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
80
+ <td class="table__cell" data-label="For Email" data-cell-index="0" data-row-index="5">
81
+ <div class="table__cell-text">
82
+ {$f}
83
+ </div>
84
+ </td>
85
+ <td class="table__cell" data-label="Status" data-cell-index="2" data-row-index="5">
86
+ <span class="label label--type-inactive-link label--size-medium">
87
+ {$e}
88
+ </span>
89
+ </td>
90
+ </tr>
91
+ </tbody>
92
+ </table>
93
+ </div>
94
+ </div>
95
+
96
+ <?php include 'new-site-setup-info.php'; ?>
97
+
98
+ <p class="typography typography--align-center"><a href="#" class="btn__cancel btn__new_transfer"><?php echo __( 'Initiate New Transfer', 'siteground-migrator' ) ?></a></p>
99
+ </div>
templates/partials/transfer-success.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="container container--padding-xx-large container--elevation-1 thank-you thank-you--success">
2
+ <div class="flex flex--align-center flex--gutter-none flex--direction-column flex--margin-none">
3
+ <div class="thank-you-icon-background">
4
+ <div class="thank-you-icon-wrapper">
5
+ <span class="icon icon--use-current-color icon--presized with-color thank-you-icon" style="width: 40px; height: 40px;">
6
+ <svg viewBox="0 0 32 32" width="40" height="40">
7
+ <polygon points="27,3.7 12.4,18 5,10.5 0,15.5 10,25.8 12.4,28.3 32,8.7 "></polygon>
8
+ </svg>
9
+ </span>
10
+ </div>
11
+ </div>
12
+ <h1 class="title title--density-comfortable title--level-1 typography typography--align-center typography--weight-light with-color with-color--color-darker thank-you-title">
13
+ <?php esc_html_e( 'Transfer Completed Successfully!', 'siteground-migrator' ); ?>
14
+ </h1>
15
+ <p class="text text--size-large typography typography--align-center typography--weight-regular with-color with-color--color-dark thank-you-description">
16
+ <?php esc_html_e( 'Your WordPress has been migrated. We’ve created a temporary URL that will be valid for 48 hours to check your site on the new location. If everything looks good, you can point your domain to our servers.', 'siteground-migrator' ); ?>
17
+ </p>
18
+ </div>
19
+
20
+ <?php include 'new-site-setup-info.php'; ?>
21
+
22
+ <p class="typography typography--align-center"><a href="#" class="btn__cancel btn__new_transfer"><?php echo __( 'Initiate New Transfer', 'siteground-migrator' ) ?></a></p>
23
+ </div>
uninstall.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Fired when the plugin is uninstalled.
5
+ *
6
+ * When populating this file, consider the following flow
7
+ * of control:
8
+ *
9
+ * - This method should be static
10
+ * - Check if the $_REQUEST content actually is the plugin name
11
+ * - Run an admin referrer check to make sure it goes through authentication
12
+ * - Verify the output of $_GET makes sense
13
+ * - Repeat with other user roles. Best directly by using the links/query string parameters.
14
+ * - Repeat things for multisite. Once for a single site in the network, once sitewide.
15
+ *
16
+ * This file may be updated more in future version of the Boilerplate; however, this is the
17
+ * general skeleton and outline for how the file should work.
18
+ *
19
+ * For more information, see the following discussion:
20
+ * https://github.com/tommcfarlin/WordPress-Plugin-Boilerplate/pull/123#issuecomment-28541913
21
+ *
22
+ * @link https://www.siteground.com
23
+ * @since 1.0.0
24
+ *
25
+ * @package Siteground_Migrator
26
+ */
27
+
28
+ // If uninstall not called from WordPress, then exit.
29
+ if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
30
+ exit;
31
+ }
vendor/2createStudio/ShuttleExport/.gitignore ADDED
@@ -0,0 +1,2 @@
 
 
1
+ vendor/
2
+ composer.lock
vendor/2createStudio/ShuttleExport/LICENSE ADDED
@@ -0,0 +1,340 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ GNU GENERAL PUBLIC LICENSE
2
+ Version 2, June 1991
3
+
4
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/>
5
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6
+ Everyone is permitted to copy and distribute verbatim copies
7
+ of this license document, but changing it is not allowed.
8
+
9
+ Preamble
10
+
11
+ The licenses for most software are designed to take away your
12
+ freedom to share and change it. By contrast, the GNU General Public
13
+ License is intended to guarantee your freedom to share and change free
14
+ software--to make sure the software is free for all its users. This
15
+ General Public License applies to most of the Free Software
16
+ Foundation's software and to any other program whose authors commit to
17
+ using it. (Some other Free Software Foundation software is covered by
18
+ the GNU Lesser General Public License instead.) You can apply it to
19
+ your programs, too.
20
+
21
+ When we speak of free software, we are referring to freedom, not
22
+ price. Our General Public Licenses are designed to make sure that you
23
+ have the freedom to distribute copies of free software (and charge for
24
+ this service if you wish), that you receive source code or can get it
25
+ if you want it, that you can change the software or use pieces of it
26
+ in new free programs; and that you know you can do these things.
27
+
28
+ To protect your rights, we need to make restrictions that forbid
29
+ anyone to deny you these rights or to ask you to surrender the rights.
30
+ These restrictions translate to certain responsibilities for you if you
31
+ distribute copies of the software, or if you modify it.
32
+
33
+ For example, if you distribute copies of such a program, whether
34
+ gratis or for a fee, you must give the recipients all the rights that
35
+ you have. You must make sure that they, too, receive or can get the
36
+ source code. And you must show them these terms so they know their
37
+ rights.
38
+
39
+ We protect your rights with two steps: (1) copyright the software, and
40
+ (2) offer you this license which gives you legal permission to copy,
41
+ distribute and/or modify the software.
42
+
43
+ Also, for each author's protection and ours, we want to make certain
44
+ that everyone understands that there is no warranty for this free
45
+ software. If the software is modified by someone else and passed on, we
46
+ want its recipients to know that what they have is not the original, so
47
+ that any problems introduced by others will not reflect on the original
48
+ authors' reputations.
49
+
50
+ Finally, any free program is threatened constantly by software
51
+ patents. We wish to avoid the danger that redistributors of a free
52
+ program will individually obtain patent licenses, in effect making the
53
+ program proprietary. To prevent this, we have made it clear that any
54
+ patent must be licensed for everyone's free use or not licensed at all.
55
+
56
+ The precise terms and conditions for copying, distribution and
57
+ modification follow.
58
+
59
+ GNU GENERAL PUBLIC LICENSE
60
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
+
62
+ 0. This License applies to any program or other work which contains
63
+ a notice placed by the copyright holder saying it may be distributed
64
+ under the terms of this General Public License. The "Program", below,
65
+ refers to any such program or work, and a "work based on the Program"
66
+ means either the Program or any derivative work under copyright law:
67
+ that is to say, a work containing the Program or a portion of it,
68
+ either verbatim or with modifications and/or translated into another
69
+ language. (Hereinafter, translation is included without limitation in
70
+ the term "modification".) Each licensee is addressed as "you".
71
+
72
+ Activities other than copying, distribution and modification are not
73
+ covered by this License; they are outside its scope. The act of
74
+ running the Program is not restricted, and the output from the Program
75
+ is covered only if its contents constitute a work based on the
76
+ Program (independent of having been made by running the Program).
77
+ Whether that is true depends on what the Program does.
78
+
79
+ 1. You may copy and distribute verbatim copies of the Program's
80
+ source code as you receive it, in any medium, provided that you
81
+ conspicuously and appropriately publish on each copy an appropriate
82
+ copyright notice and disclaimer of warranty; keep intact all the
83
+ notices that refer to this License and to the absence of any warranty;
84
+ and give any other recipients of the Program a copy of this License
85
+ along with the Program.
86
+
87
+ You may charge a fee for the physical act of transferring a copy, and
88
+ you may at your option offer warranty protection in exchange for a fee.
89
+
90
+ 2. You may modify your copy or copies of the Program or any portion
91
+ of it, thus forming a work based on the Program, and copy and
92
+ distribute such modifications or work under the terms of Section 1
93
+ above, provided that you also meet all of these conditions:
94
+
95
+ a) You must cause the modified files to carry prominent notices
96
+ stating that you changed the files and the date of any change.
97
+
98
+ b) You must cause any work that you distribute or publish, that in
99
+ whole or in part contains or is derived from the Program or any
100
+ part thereof, to be licensed as a whole at no charge to all third
101
+ parties under the terms of this License.
102
+
103
+ c) If the modified program normally reads commands interactively
104
+ when run, you must cause it, when started running for such
105
+ interactive use in the most ordinary way, to print or display an
106
+ announcement including an appropriate copyright notice and a
107
+ notice that there is no warranty (or else, saying that you provide
108
+ a warranty) and that users may redistribute the program under
109
+ these conditions, and telling the user how to view a copy of this
110
+ License. (Exception: if the Program itself is interactive but
111
+ does not normally print such an announcement, your work based on
112
+ the Program is not required to print an announcement.)
113
+
114
+ These requirements apply to the modified work as a whole. If
115
+ identifiable sections of that work are not derived from the Program,
116
+ and can be reasonably considered independent and separate works in
117
+ themselves, then this License, and its terms, do not apply to those
118
+ sections when you distribute them as separate works. But when you
119
+ distribute the same sections as part of a whole which is a work based
120
+ on the Program, the distribution of the whole must be on the terms of
121
+ this License, whose permissions for other licensees extend to the
122
+ entire whole, and thus to each and every part regardless of who wrote it.
123
+
124
+ Thus, it is not the intent of this section to claim rights or contest
125
+ your rights to work written entirely by you; rather, the intent is to
126
+ exercise the right to control the distribution of derivative or
127
+ collective works based on the Program.
128
+
129
+ In addition, mere aggregation of another work not based on the Program
130
+ with the Program (or with a work based on the Program) on a volume of
131
+ a storage or distribution medium does not bring the other work under
132
+ the scope of this License.
133
+
134
+ 3. You may copy and distribute the Program (or a work based on it,
135
+ under Section 2) in object code or executable form under the terms of
136
+ Sections 1 and 2 above provided that you also do one of the following:
137
+
138
+ a) Accompany it with the complete corresponding machine-readable
139
+ source code, which must be distributed under the terms of Sections
140
+ 1 and 2 above on a medium customarily used for software interchange; or,
141
+
142
+ b) Accompany it with a written offer, valid for at least three
143
+ years, to give any third party, for a charge no more than your
144
+ cost of physically performing source distribution, a complete
145
+ machine-readable copy of the corresponding source code, to be
146
+ distributed under the terms of Sections 1 and 2 above on a medium
147
+ customarily used for software interchange; or,
148
+
149
+ c) Accompany it with the information you received as to the offer
150
+ to distribute corresponding source code. (This alternative is
151
+ allowed only for noncommercial distribution and only if you
152
+ received the program in object code or executable form with such
153
+ an offer, in accord with Subsection b above.)
154
+
155
+ The source code for a work means the preferred form of the work for
156
+ making modifications to it. For an executable work, complete source
157
+ code means all the source code for all modules it contains, plus any
158
+ associated interface definition files, plus the scripts used to
159
+ control compilation and installation of the executable. However, as a
160
+ special exception, the source code distributed need not include
161
+ anything that is normally distributed (in either source or binary
162
+ form) with the major components (compiler, kernel, and so on) of the
163
+ operating system on which the executable runs, unless that component
164
+ itself accompanies the executable.
165
+
166
+ If distribution of executable or object code is made by offering
167
+ access to copy from a designated place, then offering equivalent
168
+ access to copy the source code from the same place counts as
169
+ distribution of the source code, even though third parties are not
170
+ compelled to copy the source along with the object code.
171
+
172
+ 4. You may not copy, modify, sublicense, or distribute the Program
173
+ except as expressly provided under this License. Any attempt
174
+ otherwise to copy, modify, sublicense or distribute the Program is
175
+ void, and will automatically terminate your rights under this License.
176
+ However, parties who have received copies, or rights, from you under
177
+ this License will not have their licenses terminated so long as such
178
+ parties remain in full compliance.
179
+
180
+ 5. You are not required to accept this License, since you have not
181
+ signed it. However, nothing else grants you permission to modify or
182
+ distribute the Program or its derivative works. These actions are
183
+ prohibited by law if you do not accept this License. Therefore, by
184
+ modifying or distributing the Program (or any work based on the
185
+ Program), you indicate your acceptance of this License to do so, and
186
+ all its terms and conditions for copying, distributing or modifying
187
+ the Program or works based on it.
188
+
189
+ 6. Each time you redistribute the Program (or any work based on the
190
+ Program), the recipient automatically receives a license from the
191
+ original licensor to copy, distribute or modify the Program subject to
192
+ these terms and conditions. You may not impose any further
193
+ restrictions on the recipients' exercise of the rights granted herein.
194
+ You are not responsible for enforcing compliance by third parties to
195
+ this License.
196
+
197
+ 7. If, as a consequence of a court judgment or allegation of patent
198
+ infringement or for any other reason (not limited to patent issues),
199
+ conditions are imposed on you (whether by court order, agreement or
200
+ otherwise) that contradict the conditions of this License, they do not
201
+ excuse you from the conditions of this License. If you cannot
202
+ distribute so as to satisfy simultaneously your obligations under this
203
+ License and any other pertinent obligations, then as a consequence you
204
+ may not distribute the Program at all. For example, if a patent
205
+ license would not permit royalty-free redistribution of the Program by
206
+ all those who receive copies directly or indirectly through you, then
207
+ the only way you could satisfy both it and this License would be to
208
+ refrain entirely from distribution of the Program.
209
+
210
+ If any portion of this section is held invalid or unenforceable under
211
+ any particular circumstance, the balance of the section is intended to
212
+ apply and the section as a whole is intended to apply in other
213
+ circumstances.
214
+
215
+ It is not the purpose of this section to induce you to infringe any
216
+ patents or other property right claims or to contest validity of any
217
+ such claims; this section has the sole purpose of protecting the
218
+ integrity of the free software distribution system, which is
219
+ implemented by public license practices. Many people have made
220
+ generous contributions to the wide range of software distributed
221
+ through that system in reliance on consistent application of that
222
+ system; it is up to the author/donor to decide if he or she is willing
223
+ to distribute software through any other system and a licensee cannot
224
+ impose that choice.
225
+
226
+ This section is intended to make thoroughly clear what is believed to
227
+ be a consequence of the rest of this License.
228
+
229
+ 8. If the distribution and/or use of the Program is restricted in
230
+ certain countries either by patents or by copyrighted interfaces, the
231
+ original copyright holder who places the Program under this License
232
+ may add an explicit geographical distribution limitation excluding
233
+ those countries, so that distribution is permitted only in or among
234
+ countries not thus excluded. In such case, this License incorporates
235
+ the limitation as if written in the body of this License.
236
+
237
+ 9. The Free Software Foundation may publish revised and/or new versions
238
+ of the General Public License from time to time. Such new versions will
239
+ be similar in spirit to the present version, but may differ in detail to
240
+ address new problems or concerns.
241
+
242
+ Each version is given a distinguishing version number. If the Program
243
+ specifies a version number of this License which applies to it and "any
244
+ later version", you have the option of following the terms and conditions
245
+ either of that version or of any later version published by the Free
246
+ Software Foundation. If the Program does not specify a version number of
247
+ this License, you may choose any version ever published by the Free Software
248
+ Foundation.
249
+
250
+ 10. If you wish to incorporate parts of the Program into other free
251
+ programs whose distribution conditions are different, write to the author
252
+ to ask for permission. For software which is copyrighted by the Free
253
+ Software Foundation, write to the Free Software Foundation; we sometimes
254
+ make exceptions for this. Our decision will be guided by the two goals
255
+ of preserving the free status of all derivatives of our free software and
256
+ of promoting the sharing and reuse of software generally.
257
+
258
+ NO WARRANTY
259
+
260
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263
+ PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264
+ OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266
+ TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267
+ PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268
+ REPAIR OR CORRECTION.
269
+
270
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272
+ REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273
+ INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274
+ OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275
+ TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276
+ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277
+ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
+ POSSIBILITY OF SUCH DAMAGES.
279
+
280
+ END OF TERMS AND CONDITIONS
281
+
282
+ How to Apply These Terms to Your New Programs
283
+
284
+ If you develop a new program, and you want it to be of the greatest
285
+ possible use to the public, the best way to achieve this is to make it
286
+ free software which everyone can redistribute and change under these terms.
287
+
288
+ To do so, attach the following notices to the program. It is safest
289
+ to attach them to the start of each source file to most effectively
290
+ convey the exclusion of warranty; and each file should have at least
291
+ the "copyright" line and a pointer to where the full notice is found.
292
+
293
+ {description}
294
+ Copyright (C) {year} {fullname}
295
+
296
+ This program is free software; you can redistribute it and/or modify
297
+ it under the terms of the GNU General Public License as published by
298
+ the Free Software Foundation; either version 2 of the License, or
299
+ (at your option) any later version.
300
+
301
+ This program is distributed in the hope that it will be useful,
302
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
303
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304
+ GNU General Public License for more details.
305
+
306
+ You should have received a copy of the GNU General Public License along
307
+ with this program; if not, write to the Free Software Foundation, Inc.,
308
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
309
+
310
+ Also add information on how to contact you by electronic and paper mail.
311
+
312
+ If the program is interactive, make it output a short notice like this
313
+ when it starts in an interactive mode:
314
+
315
+ Gnomovision version 69, Copyright (C) year name of author
316
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317
+ This is free software, and you are welcome to redistribute it
318
+ under certain conditions; type `show c' for details.
319
+
320
+ The hypothetical commands `show w' and `show c' should show the appropriate
321
+ parts of the General Public License. Of course, the commands you use may
322
+ be called something other than `show w' and `show c'; they could even be
323
+ mouse-clicks or menu items--whatever suits your program.
324
+
325
+ You should also get your employer (if you work as a programmer) or your
326
+ school, if any, to sign a "copyright disclaimer" for the program, if
327
+ necessary. Here is a sample; alter the names:
328
+
329
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
331
+
332
+ {signature of Ty Coon}, 1 April 1989
333
+ Ty Coon, President of Vice
334
+
335
+ This General Public License does not permit incorporating your program into
336
+ proprietary programs. If your program is a subroutine library, you may
337
+ consider it more useful to permit linking proprietary applications with the
338
+ library. If this is what you want to do, use the GNU Lesser General
339
+ Public License instead of this License.
340
+
vendor/2createStudio/ShuttleExport/README.md ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ PHP based MySQL dump library
2
+ =========
3
+
4
+ The library provides easy way to create MySQL dumps files. It will try to create dump through:
5
+
6
+ 0. `mysqldump` shell utility
7
+ 1. native PHP code
8
+
9
+ For native dumps(on hosts without shell access), it works with `mysqli` php extension by default, and fallbacks to old-fashioned `mysql` whenever `mysqli` isn't available.
10
+
11
+ The aim of the library is to work on as many web-hosts as possible: it requires PHP 5.2 and requires just one `mysql` or `mysqli` libraries to be available.
12
+
13
+ Features:
14
+
15
+ * support for plain text and gzip output(whenever the dump file has .gz extension, a gzip archive will be produced)
16
+ * support for including just particular tables from the database, excluding tables, and dumping just tables with particular prefix
17
+
18
+ ToDo:
19
+
20
+ * add support for views and triggers
21
+ * try how things work with databases with foreign keys constraints
22
+
23
+ ## Examples
24
+
25
+ Dump all tables in `world` database:
26
+
27
+ $world_dumper = Shuttle_Dumper::create(array(
28
+ 'host' => '',
29
+ 'username' => 'root',
30
+ 'password' => '',
31
+ 'db_name' => 'world',
32
+ ));
33
+ // dump the database to plain text file
34
+ $world_dumper->dump('world.sql');
35
+
36
+ // send the output to gziped file:
37
+ $world_dumper->dump('world.sql.gz');
38
+
39
+ Dump only the tables with `wp_` prefix:
40
+
41
+ $wp_dumper = Shuttle_Dumper::create(array(
42
+ 'host' => '',
43
+ 'username' => 'root',
44
+ 'password' => '',
45
+ 'db_name' => 'wordpress',
46
+ ));
47
+ $wp_dumper->dump('wordpress.sql', 'wp_');
48
+
49
+ Dump only `country` and `city` tables:
50
+
51
+ $countries_dumper = Shuttle_Dumper::create(array(
52
+ 'host' => '',
53
+ 'username' => 'root',
54
+ 'password' => '',
55
+ 'db_name' => 'world',
56
+ 'include_tables' => array('country', 'city'),
57
+ ));
58
+ $countries_dumper->dump('world.sql.gz');
59
+
60
+ Dump all tables except for `city`:
61
+
62
+ $world_dumper = Shuttle_Dumper::create(array(
63
+ 'host' => '',
64
+ 'username' => 'root',
65
+ 'password' => '',
66
+ 'db_name' => 'world',
67
+ 'exclude_tables' => array('city'),
68
+ ));
69
+ $world_dumper->dump('world-no-cities.sql.gz');
70
+
vendor/2createStudio/ShuttleExport/Vagrantfile ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- mode: ruby -*-
2
+ # vi: set ft=ruby :
3
+
4
+ # All Vagrant configuration is done below. The "2" in Vagrant.configure
5
+ # configures the configuration version (we support older styles for
6
+ # backwards compatibility). Please don't change it unless you know what
7
+ # you're doing.
8
+ Vagrant.configure(2) do |config|
9
+ # The most common configuration options are documented and commented below.
10
+ # For a complete reference, please see the online documentation at
11
+ # https://docs.vagrantup.com.
12
+
13
+ # Every Vagrant development environment requires a box. You can search for
14
+ # boxes at https://atlas.hashicorp.com/search.
15
+ config.vm.box = "ubuntu/xenial64"
16
+
17
+ # Disable automatic box update checking. If you disable this, then
18
+ # boxes will only be checked for updates when the user runs
19
+ # `vagrant box outdated`. This is not recommended.
20
+ # config.vm.box_check_update = false
21
+
22
+ # Create a forwarded port mapping which allows access to a specific port
23
+ # within the machine from a port on the host machine. In the example below,
24
+ # accessing "localhost:8080" will access port 80 on the guest machine.
25
+ # config.vm.network "forwarded_port", guest: 80, host: 8080
26
+
27
+ # Create a private network, which allows host-only access to the machine
28
+ # using a specific IP.
29
+ # config.vm.network "private_network", ip: "192.168.33.10"
30
+
31
+ # Create a public network, which generally matched to bridged network.
32
+ # Bridged networks make the machine appear as another physical device on
33
+ # your network.
34
+ # config.vm.network "public_network"
35
+
36
+ # Share an additional folder to the guest VM. The first argument is
37
+ # the path on the host to the actual folder. The second argument is
38
+ # the path on the guest to mount the folder. And the optional third
39
+ # argument is a set of non-required options.
40
+ # config.vm.synced_folder "../data", "/vagrant_data"
41
+
42
+ # Provider-specific configuration so you can fine-tune various
43
+ # backing providers for Vagrant. These expose provider-specific options.
44
+ # Example for VirtualBox:
45
+ #
46
+ # config.vm.provider "virtualbox" do |vb|
47
+ # # Display the VirtualBox GUI when booting the machine
48
+ # vb.gui = true
49
+ #
50
+ # # Customize the amount of memory on the VM:
51
+ # vb.memory = "1024"
52
+ # end
53
+ #
54
+ # View the documentation for the provider you are using for more
55
+ # information on available options.
56
+
57
+ # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
58
+ # such as FTP and Heroku are also available. See the documentation at
59
+ # https://docs.vagrantup.com/v2/push/atlas.html for more information.
60
+ # config.push.define "atlas" do |push|
61
+ # push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
62
+ # end
63
+
64
+ # Enable provisioning with a shell script. Additional provisioners such as
65
+ # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
66
+ # documentation for more information about their specific syntax and use.
67
+ # config.vm.provision "shell", inline: <<-SHELL
68
+ # sudo apt-get update
69
+ # sudo apt-get install -y apache2
70
+ # SHELL
71
+ end
vendor/2createStudio/ShuttleExport/composer.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "2createstudio/shuttleexport",
3
+ "type": "library",
4
+ "description": "MySQL export library",
5
+ "keywords": [],
6
+ "homepage": "https://github.com/2createStudio/shuttle-export",
7
+ "license": "GPLv2",
8
+ "authors": [
9
+ {
10
+ "name": "Emil Mohamed",
11
+ "email": "emil@2c-studio.com"
12
+ }
13
+ ],
14
+
15
+ "autoload": {
16
+ "psr-4": {"ShuttleExport\\": "src/"}
17
+ },
18
+
19
+ "require": {
20
+ "php": ">=5.3.2",
21
+ "symfony/process": "v2.0.25"
22
+ },
23
+ "require-dev": {
24
+ "mockery/mockery": "dev-master"
25
+ }
26
+ }
vendor/2createStudio/ShuttleExport/demo.php ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ include (__DIR__ . '/vendor/autoload.php');
3
+
4
+ use ShuttleExport\Exporter;
5
+ use ShuttleExport\Exception as ShuttleException;
6
+
7
+ try {
8
+ Exporter::export(array(
9
+ 'db_host' => '',
10
+ 'db_user' => 'root',
11
+ 'db_password' => 'kuku',
12
+ 'db_name' => 'bourgaswp',
13
+ 'db_port' => 3306,
14
+ 'prefix' => 'wp_',
15
+ 'only_tables' => ['wp_posts', 'wp_postmeta'],
16
+ 'exclude_tables' => ['wp_posts', 'wp_postmeta'],
17
+ 'charset' => 'utf8mb4',
18
+ 'export_file' => __DIR__ . '/dumps/' . date('Y_m_d_H_i_s') . '.sql.gz',
19
+ ));
20
+
21
+ #$wp_dumper = Shuttle_Dumper::create(array(
22
+ #'host' => '',
23
+ #'username' => 'root',
24
+ #'password' => '',
25
+ #'db_name' => 'wordpress',
26
+ #));
27
+ #
28
+ #// Dump only the tables with wp_ prefix
29
+ #$wp_dumper->dump('wordpress.sql', 'wp_');
30
+ #
31
+ #$countries_dumper = Shuttle_Dumper::create(array(
32
+ #'host' => '',
33
+ #'username' => 'root',
34
+ #'password' => '',
35
+ #'db_name' => 'world',
36
+ #'include_tables' => array('country', 'city'), // only include those tables
37
+ #));
38
+ #$countries_dumper->dump('world.sql.gz');
39
+ #
40
+ #$world_dumper = Shuttle_Dumper::create(array(
41
+ #'host' => '',
42
+ #'username' => 'root',
43
+ #'password' => '',
44
+ #'db_name' => 'world',
45
+ #'exclude_tables' => array('city'),
46
+ #));
47
+ #$world_dumper->dump('world-no-cities.sql.gz');
48
+ } catch(ShuttleException $e) {
49
+ echo "Couldn't dump database: " . $e->getMessage();
50
+ }
vendor/2createStudio/ShuttleExport/phpunit.xml ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <phpunit
2
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3
+ xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.5/phpunit.xsd"
4
+ bootstrap="tests/bootstrap.php"
5
+ colors="true"
6
+ >
7
+ <testsuites>
8
+ <testsuite name="ShuttleExport">
9
+ <directory>tests</directory>
10
+ </testsuite>
11
+ </testsuites>
12
+ </phpunit>
vendor/2createStudio/ShuttleExport/src/DBConn/DBConn.php ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ShuttleExport\DBConn;
3
+ use ShuttleExport\Exception;
4
+
5
+ abstract class DBConn {
6
+ public $host;
7
+ public $username;
8
+ public $password;
9
+ public $name;
10
+ public $port;
11
+ public $prefix;
12
+
13
+ public $charset;
14
+
15
+ protected $connection;
16
+
17
+ function __construct($options) {
18
+ preg_match("~([A-Za-z0-9\-\.]+):?([0-9]+)?~", $options['db_host'], $parsed_host );
19
+
20
+ $this->host = ! empty( $parsed_host[1] ) ? $parsed_host[1] : 'localhost';
21
+ $this->port = ! empty( $parsed_host[2] ) ? $parsed_host[2] : 3306;
22
+
23
+ //$this->host = $options['db_host'];
24
+ //$this->port = $options['db_port'];
25
+ $this->username = $options['db_user'];
26
+ $this->password = $options['db_password'];
27
+ $this->name = $options['db_name'];
28
+ $this->charset = 'utf8';
29
+ $this->prefix = $options['prefix'];
30
+ }
31
+
32
+ static function create($options) {
33
+ if (class_exists('\mysqli')) {
34
+ $class_name = "ShuttleExport\\DBConn\\Mysqli";
35
+ } else if (function_exists('mysql_connect')) {
36
+ $class_name = "ShuttleExport\\DDBConn\\Mysql";
37
+ } else {
38
+ throw new Exception("The PHP installation doesn't have neither mysqli nor mysql extensions. ");
39
+ }
40
+
41
+ return new $class_name($options);
42
+ }
43
+
44
+ abstract function connect();
45
+ abstract function query($query);
46
+ abstract function fetch_numeric($query);
47
+ abstract function fetch($query, $result_type='');
48
+ abstract function escape($value);
49
+ abstract function get_var($sql);
50
+ abstract function fetch_row($data);
51
+ abstract function server_version();
52
+
53
+ public function escape_like($search) {
54
+ return str_replace(
55
+ array('_', '%'),
56
+ array('\\_', '\\%'),
57
+ $search
58
+ );
59
+ }
60
+ }
vendor/2createStudio/ShuttleExport/src/DBConn/Mysql.php ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace ShuttleExport\DBConn;
4
+ use ShuttleExport\Exception;
5
+
6
+ class Mysql extends DBConn {
7
+ function connect() {
8
+ $this->connection = @mysql_connect($this->host . ':' . $this->port, $this->username, $this->password);
9
+ if (!$this->connection) {
10
+ throw new Exception("Couldn't connect to the database: " . mysql_error());
11
+ }
12
+
13
+ $select_db_res = mysql_select_db($this->name, $this->connection);
14
+ if (!$select_db_res) {
15
+ throw new Exception("Couldn't select database: " . mysql_error($this->connection));
16
+ }
17
+
18
+ $res = mysql_set_charset($this->charset, $this->connection);
19
+ if (!$res) {
20
+ throw new Exception("Couldn't set charset: " . mysql_error($this->connection));
21
+ }
22
+
23
+ return true;
24
+ }
25
+
26
+ function query($q) {
27
+ if (!$this->connection) {
28
+ $this->connect();
29
+ }
30
+ $res = mysql_query($q);
31
+ if (!$res) {
32
+ throw new Exception("SQL error: " . mysql_error($this->connection));
33
+ }
34
+ return $res;
35
+ }
36
+
37
+ function fetch_numeric($query) {
38
+ return $this->fetch($query, MYSQL_NUM);
39
+ }
40
+
41
+ function fetch($query, $result_type=MYSQL_ASSOC) {
42
+ $result = $this->query($query, $this->connection);
43
+ $return = array();
44
+ while ( $row = mysql_fetch_array($result, $result_type) ) {
45
+ $return[] = $row;
46
+ }
47
+ return $return;
48
+ }
49
+
50
+ function escape($value) {
51
+ if (is_null($value)) {
52
+ return "NULL";
53
+ }
54
+ return "'" . mysql_real_escape_string($value) . "'";
55
+ }
56
+
57
+
58
+ function get_var($sql) {
59
+ $result = $this->query($sql);
60
+ $row = mysql_fetch_array($result);
61
+ return $row[0];
62
+ }
63
+
64
+ function fetch_row($data) {
65
+ return mysql_fetch_assoc($data);
66
+ }
67
+
68
+ function server_version() {
69
+ return mysql_get_server_info($this->connection);
70
+ }
71
+
72
+ }
vendor/2createStudio/ShuttleExport/src/DBConn/Mysqli.php ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ShuttleExport\DBConn;
3
+ use ShuttleExport\Exception;
4
+
5
+ class Mysqli extends DBConn {
6
+ function connect() {
7
+ $this->connection = @new \MySQLi($this->host, $this->username, $this->password, $this->name, $this->port);
8
+
9
+ if ($this->connection->connect_error) {
10
+ throw new Exception("Couldn't connect to the database: " . $this->connection->connect_error);
11
+ }
12
+
13
+ $res = $this->connection->set_charset($this->charset);
14
+ if (!$res) {
15
+ throw new Exception("Couldn't set charset: " . $this->connection->error);
16
+ }
17
+
18
+ return true;
19
+ }
20
+
21
+ function query($q) {
22
+ if (!$this->connection) {
23
+ $this->connect();
24
+ }
25
+ $res = $this->connection->query($q);
26
+
27
+ if (!$res) {
28
+ throw new Exception("SQL error: " . $this->connection->error);
29
+ }
30
+
31
+ return $res;
32
+ }
33
+
34
+ function fetch_numeric($query) {
35
+ return $this->fetch($query, MYSQLI_NUM);
36
+ }
37
+
38
+ function fetch($query, $result_type=MYSQLI_ASSOC) {
39
+ $result = $this->query($query, $this->connection);
40
+ $return = array();
41
+ while ( $row = $result->fetch_array($result_type) ) {
42
+ $return[] = $row;
43
+ }
44
+ return $return;
45
+ }
46
+
47
+ function escape($value) {
48
+ if (is_null($value)) {
49
+ return "NULL";
50
+ }
51
+ return "'" . $this->connection->real_escape_string($value) . "'";
52
+ }
53
+
54
+ function get_var($sql) {
55
+ $result = $this->query($sql);
56
+ $row = $result->fetch_array($result, MYSQLI_NUM);
57
+ return $row[0];
58
+ }
59
+
60
+ function fetch_row($data) {
61
+ return $data->fetch_array(MYSQLI_ASSOC);
62
+ }
63
+
64
+
65
+ function server_version() {
66
+ return $this->connection->server_info;
67
+ }
68
+
69
+ }
vendor/2createStudio/ShuttleExport/src/Dump_File/Dump_File.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ShuttleExport\Dump_File;
3
+
4
+ use ShuttleExport\Exception;
5
+
6
+ /**
7
+ * Abstract dump file: provides common interface for writing
8
+ * data to dump files.
9
+ */
10
+ abstract class Dump_File {
11
+ /**
12
+ * File Handle
13
+ */
14
+ protected $fh;
15
+
16
+ /**
17
+ * Location of the dump file on the disk
18
+ */
19
+ protected $file_location;
20
+
21
+ abstract function write($string);
22
+ abstract function end();
23
+
24
+ static function create($filename) {
25
+ if (self::is_gzip($filename)) {
26
+ return new Gzip($filename);
27
+ }
28
+ return new Plaintext($filename);
29
+ }
30
+ function __construct($file) {
31
+ $this->file_location = $file;
32
+ $this->fh = $this->open();
33
+
34
+ if (!$this->fh) {
35
+ throw new Exception("Couldn't create a dump file");
36
+ }
37
+ }
38
+
39
+ public static function is_gzip($filename) {
40
+ return (bool) preg_match('~\.gz$~i', $filename);
41
+ }
42
+ }
43
+
vendor/2createStudio/ShuttleExport/src/Dump_File/Gzip.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ShuttleExport\Dump_File;
3
+
4
+ /**
5
+ * Gzip implementation. Uses gz* functions.
6
+ */
7
+ class Gzip extends Dump_File {
8
+ function open() {
9
+ return gzopen($this->file_location, 'wb9');
10
+ }
11
+ function write($string) {
12
+ return gzwrite($this->fh, $string);
13
+ }
14
+ function end() {
15
+ return gzclose($this->fh);
16
+ }
17
+ }
18
+
vendor/2createStudio/ShuttleExport/src/Dump_File/Plaintext.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ShuttleExport\Dump_File;
3
+
4
+ /**
5
+ * Plain text implementation. Uses standard file functions in PHP.
6
+ */
7
+ class Plaintext extends Dump_File {
8
+ function open() {
9
+ return fopen($this->file_location, 'w');
10
+ }
11
+ function write($string) {
12
+ return fwrite($this->fh, $string);
13
+ }
14
+ function end() {
15
+ return fclose($this->fh);
16
+ }
17
+ }
18
+
vendor/2createStudio/ShuttleExport/src/Dumper/Dumper.php ADDED
@@ -0,0 +1,117 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ShuttleExport\Dumper;
3
+ use ShuttleExport\DBConn\DBConn;
4
+ use ShuttleExport\Exception;
5
+
6
+ abstract class Dumper {
7
+ /**
8
+ * @var \ShuttleExport\DBConn
9
+ */
10
+ public $db;
11
+
12
+ /**
13
+ * @var \ShuttleExport\Dump_File\Dump_File
14
+ */
15
+ public $dump_file;
16
+
17
+ /**
18
+ * Specificed tables to include
19
+ */
20
+ public $only_tables;
21
+
22
+ /**
23
+ * Specified tables to exclude
24
+ */
25
+ public $exclude_tables = array();
26
+
27
+ function __construct($db_options) {
28
+ $db_options = $this->validate_options($db_options);
29
+
30
+ $this->db = DBConn::create($db_options);
31
+
32
+ $this->export_file = $db_options['export_file'];
33
+ $this->only_tables = $db_options['only_tables'];
34
+ $this->exclude_tables = $db_options['exclude_tables'];
35
+
36
+ $this->init();
37
+ }
38
+
39
+ /**
40
+ * This function could be implemented in extended classes
41
+ */
42
+ function init() {
43
+ // pass
44
+ }
45
+
46
+ private function validate_options($db_options) {
47
+ $options = [
48
+ 'db_host' => [ 'required' => false, 'default' => 'localhost' ],
49
+ 'db_port' => [ 'required' => false, 'default' => 3306 ],
50
+ 'db_user' => [ 'required' => false, 'default' => 'root' ],
51
+ 'db_password' => [ 'required' => false, 'default' => '' ],
52
+ 'db_name' => [ 'required' => true ],
53
+ 'export_file' => [ 'required' => true ],
54
+ 'prefix' => [ 'required' => false, 'default' => null ],
55
+ 'only_tables' => [ 'required' => false, 'default' => null ],
56
+ 'exclude_tables' => [ 'required' => false, 'default' => [] ],
57
+ 'charset' => [ 'required' => false, 'default' => 'utf8' ],
58
+ ];
59
+
60
+ $errors = [];
61
+ foreach ($options as $option_name => $option_props) {
62
+ $is_required = $option_props['required'];
63
+ $is_present = !empty($db_options[$option_name]);
64
+
65
+ // Make sure that required options are present
66
+ if ($is_required && !$is_present) {
67
+ throw new Exception("Missing required option: $option_name");
68
+ }
69
+
70
+ // Add default values for non-present options
71
+ if (!$is_present) {
72
+ $db_options[$option_name] = $option_props['default'];
73
+ }
74
+ }
75
+
76
+ $unknown_options = array_diff_key($db_options, $options);
77
+ if (!empty($unknown_options)) {
78
+ throw new Exception( "Unknown options: " . implode(', ', $unknown_options));
79
+ }
80
+
81
+ $dir = dirname($db_options['export_file']);
82
+
83
+ return $db_options;
84
+ }
85
+
86
+ /**
87
+ * Create an export file from the tables with that prefix.
88
+ * @param string $export_file_location the file to put the dump to.
89
+ * Note that whenever the file has .gz extension the dump will be comporessed with gzip
90
+ * @param string $table_prefix Allow to export only tables with particular prefix
91
+ * @return void
92
+ */
93
+ abstract public function dump();
94
+
95
+ public function get_tables() {
96
+ if (!empty($this->only_tables)) {
97
+ return $this->only_tables;
98
+ }
99
+ // $tables will only include the tables and not views.
100
+ // TODO - Handle views also, edits to be made in function 'get_create_table_sql' line 336
101
+ $escaped_prefix = $this->db->escape_like($this->db->prefix);
102
+ $tables = $this->db->fetch_numeric('
103
+ SHOW FULL TABLES
104
+ WHERE Table_Type = "BASE TABLE"
105
+ AND Tables_in_' . $this->db->name . ' LIKE "' . $escaped_prefix . '%"
106
+ ');
107
+
108
+ $tables_list = array();
109
+ foreach ($tables as $table_row) {
110
+ $table_name = $table_row[0];
111
+ if (!in_array($table_name, $this->exclude_tables)) {
112
+ $tables_list[] = $table_name;
113
+ }
114
+ }
115
+ return $tables_list;
116
+ }
117
+ }
vendor/2createStudio/ShuttleExport/src/Dumper/Factory.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ShuttleExport\Dumper;
3
+ use ShuttleExport\Shell;
4
+
5
+ class Factory {
6
+ function __construct() {
7
+ $this->shell = new Shell();
8
+ }
9
+
10
+ function make($db_options) {
11
+ if ($this->shell->is_enabled() &&
12
+ $this->shell->has_command('mysqldump') &&
13
+ $this->shell->has_command('gzip')
14
+ ) {
15
+ $class_name = 'ShuttleExport\\Dumper\\MysqldumpShellCommand';
16
+ } else {
17
+ $class_name = 'ShuttleExport\\Dumper\\Php';
18
+ }
19
+ return new $class_name($db_options);
20
+ }
21
+ }
vendor/2createStudio/ShuttleExport/src/Dumper/MysqldumpShellCommand.php ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ShuttleExport\Dumper;
3
+ use ShuttleExport\Dump_File\Dump_File;
4
+ use Symfony\Component\Process\Process;
5
+ use ShuttleExport\Exception;
6
+
7
+ class MysqldumpShellCommand extends Dumper {
8
+
9
+ public $process;
10
+
11
+ function init() {
12
+ // Save a reference to the Process object so it can be mocked in tests
13
+ $this->process = new Process('');
14
+ parent::init();
15
+ }
16
+ function dump() {
17
+ $command = 'mysqldump -h ' . escapeshellarg($this->db->host) .
18
+ ' --port=' . escapeshellarg($this->db->port) .
19
+ ' -u ' . escapeshellarg($this->db->username) .
20
+ ' --password=' . escapeshellarg($this->db->password) .
21
+ ' --set-charset=' . escapeshellarg($this->db->charset) .
22
+ ' ' . escapeshellarg($this->db->name);
23
+
24
+ $include_all_tables = empty($this->db->prefix) &&
25
+ empty($this->only_tables) &&
26
+ empty($this->exclude_tables);
27
+
28
+ if (!$include_all_tables) {
29
+ $tables = $this->get_tables($this->db->prefix);
30
+ $command .= ' ' . implode(' ', array_map('escapeshellarg', $tables));
31
+ }
32
+
33
+ if (Dump_File::is_gzip($this->export_file)) {
34
+ $command .= ' | gzip';
35
+ }
36
+
37
+ $command .= ' > ' . escapeshellarg($this->export_file);
38
+ $this->process->setCommandLine($command);
39
+
40
+ // Translate the exception to \ShuttleExport\Exception
41
+ try {
42
+ $this->process->run();
43
+ } catch(\RuntimeException $e) {
44
+ throw new Exception($e->getMessage());
45
+ }
46
+
47
+ if (!$this->process->isSuccessful()) {
48
+ throw new Exception($this->process->getErrorOutput());
49
+ }
50
+
51
+ return true;
52
+ }
53
+
54
+ }
vendor/2createStudio/ShuttleExport/src/Dumper/Php.php ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ShuttleExport\Dumper;
3
+
4
+ use ShuttleExport\Dump_File\Dump_File;
5
+ use ShuttleExport\Insert_Statement;
6
+
7
+ class Php extends Dumper {
8
+ /**
9
+ * End of line style used in the dump
10
+ */
11
+ public $eol = "\r\n";
12
+
13
+ public function dump() {
14
+ $this->db->connect();
15
+
16
+ $eol = $this->eol;
17
+
18
+ $this->dump_file = Dump_File::create($this->export_file);
19
+
20
+ $this->dump_file->write("-- Generation time: " . date('r') . $eol);
21
+ $this->dump_file->write("-- Host: " . $this->db->host . $eol);
22
+ $this->dump_file->write("-- DB name: " . $this->db->name . $eol);
23
+
24
+ $this->dump_file->write("/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;$eol");
25
+ $this->dump_file->write("/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;$eol");
26
+ $this->dump_file->write("/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;$eol");
27
+ $this->dump_file->write("/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;$eol");
28
+ $this->dump_file->write("/*!40103 SET TIME_ZONE='+00:00' */;$eol");
29
+ $this->dump_file->write("/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;$eol");
30
+ $this->dump_file->write("/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;$eol");
31
+ $this->dump_file->write("/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;$eol");
32
+ $this->dump_file->write("/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;$eol$eol");
33
+
34
+ $this->dump_file->write("/*!40030 SET NAMES " . $this->db->charset . " */;$eol");
35
+
36
+ $tables = $this->get_tables();
37
+ foreach ($tables as $table) {
38
+ $this->dump_table($table);
39
+ }
40
+
41
+ $this->dump_file->write("$eol$eol");
42
+ $this->dump_file->write("/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;$eol");
43
+ $this->dump_file->write("/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;$eol");
44
+ $this->dump_file->write("/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;$eol");
45
+ $this->dump_file->write("/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;$eol");
46
+ $this->dump_file->write("/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;$eol");
47
+ $this->dump_file->write("/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;$eol");
48
+ $this->dump_file->write("/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;$eol$eol");
49
+
50
+ unset($this->dump_file);
51
+ }
52
+
53
+ protected function dump_table($table) {
54
+ $eol = $this->eol;
55
+
56
+ $this->dump_file->write("DROP TABLE IF EXISTS `$table`;$eol");
57
+
58
+ $create_table_sql = $this->get_create_table_sql($table);
59
+ $this->dump_file->write($create_table_sql . $eol . $eol);
60
+
61
+ $data = $this->db->query("SELECT * FROM `$table`");
62
+
63
+ $insert = new Insert_Statement($table);
64
+
65
+ while ($row = $this->db->fetch_row($data)) {
66
+ $row_values = array();
67
+ foreach ($row as $value) {
68
+ $row_values[] = $this->db->escape($value);
69
+ }
70
+ $insert->add_row( $row_values );
71
+
72
+ if ($insert->get_length() > Insert_Statement::LENGTH_THRESHOLD) {
73
+ // The insert got too big: write the SQL and create
74
+ // new insert statement
75
+ $this->dump_file->write($insert->get_sql() . $eol);
76
+ $insert->reset();
77
+ }
78
+ }
79
+
80
+ $sql = $insert->get_sql();
81
+ if ($sql) {
82
+ $this->dump_file->write($insert->get_sql() . $eol);
83
+ }
84
+ $this->dump_file->write($eol . $eol);
85
+ }
86
+
87
+ public function get_create_table_sql($table) {
88
+ $create_table_sql = $this->db->fetch('SHOW CREATE TABLE `' . $table . '`');
89
+ return $create_table_sql[0]['Create Table'] . ';';
90
+ }
91
+ }
vendor/2createStudio/ShuttleExport/src/Exception.php ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ <?php
2
+ namespace ShuttleExport;
3
+
4
+ class Exception extends \Exception {};
vendor/2createStudio/ShuttleExport/src/Exporter.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ShuttleExport;
3
+ use ShuttleExport\Dumper\Factory;
4
+
5
+ /**
6
+ * A facade that hides the Dumper Factory and keeps the
7
+ * public interface cleaner.
8
+ */
9
+ class Exporter {
10
+ static function export($settings) {
11
+ $factory = new Factory();
12
+ $dumper = $factory->make($settings);
13
+ return $dumper->dump();
14
+ }
15
+ }
vendor/2createStudio/ShuttleExport/src/Insert_Statement.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ShuttleExport;
3
+
4
+ /**
5
+ * MySQL insert statement builder.
6
+ */
7
+ class Insert_Statement {
8
+ /**
9
+ * Maximum length of single insert statement. This "magic" number
10
+ * has been taken from phpMiniAdmin:
11
+ * https://github.com/osalabs/phpminiadmin/blob/2b394346961c6545080a07151f97e858ac432c1a/phpminiadmin.php#L861
12
+ * Not sure how it was chosen, but it works.
13
+ */
14
+ const LENGTH_THRESHOLD = 838860;
15
+
16
+ private $rows = array();
17
+ private $length = 0;
18
+ private $table;
19
+
20
+ function __construct($table) {
21
+ $this->table = $table;
22
+ }
23
+
24
+ function reset() {
25
+ $this->rows = array();
26
+ $this->length = 0;
27
+ }
28
+
29
+ function add_row($row) {
30
+ $row = '(' . implode(",", $row) . ')';
31
+ $this->rows[] = $row;
32
+ $this->length += strlen($row);
33
+ }
34
+
35
+ function get_sql() {
36
+ if (empty($this->rows)) {
37
+ return false;
38
+ }
39
+
40
+ return 'INSERT INTO `' . $this->table . '` VALUES ' .
41
+ implode(",\n", $this->rows) . '; ';
42
+ }
43
+
44
+ function get_length() {
45
+ return $this->length;
46
+ }
47
+ }
vendor/2createStudio/ShuttleExport/src/Shell.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace ShuttleExport;
3
+ use Symfony\Component\Process\Process;
4
+ use Symfony\Component\Process\ExecutableFinder;
5
+
6
+ /**
7
+ * Shell abstraction; It's just a handy proxy for Symfony Process component.
8
+ */
9
+ class Shell {
10
+ function __construct() {
11
+ $this->executable_finder = new ExecutableFinder();
12
+ }
13
+
14
+ function is_enabled() {
15
+ if (!function_exists('proc_open')) {
16
+ return false;
17
+ }
18
+
19
+ return stripos(ini_get('disable_functions'), 'proc_open') === false;
20
+ }
21
+
22
+ function has_command($command) {
23
+ return $this->executable_finder->find($command) !== null;
24
+ }
25
+ }
26
+
vendor/2createStudio/ShuttleExport/tests/DumperTest.php ADDED
@@ -0,0 +1,249 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ use PHPUnit\Framework\TestCase;
3
+ use Mockery as m;
4
+ use ShuttleExport\Dumper\Factory as DumperFactory;
5
+ use ShuttleExport\Dumper\Php as PhpDumper;
6
+ use ShuttleExport\Dumper\MysqldumpShellCommand as MysqldumpDumper;
7
+ use ShuttleExport\DBConn\Mysqli as MysqliDbConn;
8
+ use ShuttleExport\Dump_File\Dump_File as Dump_File;
9
+
10
+ use ShuttleExport\Exception as ShuttleException;
11
+ use Symfony\Component\Process\Process;
12
+
13
+ class DumperTest extends TestCase {
14
+ function tearDown() {
15
+ m::close();
16
+ }
17
+
18
+ function get_factory_for_shell_props($shell_props) {
19
+ $factory = new DumperFactory();
20
+
21
+ $shell = m::mock('\ShuttleExport\Shell');
22
+ $shell->shouldReceive($shell_props);
23
+
24
+ $factory->shell = $shell;
25
+ return $factory;
26
+ }
27
+ public function get_dumpers_for_shell() {
28
+ return [
29
+ [
30
+ 'shell_props' => [
31
+ 'is_enabled' => true,
32
+ 'has_command' => true,
33
+ ],
34
+ 'expect' => MysqldumpDumper::class,
35
+ 'message' => "It doesn't use shell dumper if it's available"
36
+ ],
37
+
38
+ [
39
+ 'shell_props' => [
40
+ 'is_enabled' => false,
41
+ ],
42
+ 'expect' => PhpDumper::class,
43
+ 'message' => "It doesn't fallback to native dumper when shell is not avialble"
44
+ ],
45
+
46
+ [
47
+ 'shell_props' => [
48
+ 'is_enabled' => true,
49
+ 'has_command' => false
50
+ ],
51
+ 'expect' => PhpDumper::class,
52
+ 'message' => "It doesn't fallback to native dumper when required shell commands are unavialble"
53
+ ],
54
+ ];
55
+
56
+ }
57
+
58
+ /**
59
+ * @test
60
+ * @dataProvider get_dumpers_for_shell
61
+ */
62
+ function assert_dumper_for_shell($shell_props, $expected_dumper, $message) {
63
+ $factory = $this->get_factory_for_shell_props($shell_props);
64
+ $dumper = $factory->make([
65
+ 'db_name' => 'test',
66
+ 'export_file' => '/dev/null',
67
+ ]);
68
+ $this->assertInstanceOf($expected_dumper, $dumper, $message);
69
+ }
70
+
71
+ /**
72
+ * @test
73
+ * @expectedException \ShuttleExport\Exception
74
+ * @expectedExceptionMessage Missing required option
75
+ */
76
+ function it_requires_db_name_and_export_file_location() {
77
+ $factory = new DumperFactory();
78
+ $dumper = $factory->make([]);
79
+ }
80
+
81
+ /**
82
+ * @test
83
+ * @expectedException \ShuttleExport\Exception
84
+ */
85
+ function it_throws_exception_when_unnecessary_options_are_provided() {
86
+ $factory = new DumperFactory();
87
+ $dumper = $factory->make([
88
+ 'db_name' => 'test',
89
+ 'export_file' => '/dev/null',
90
+ 'something' => 'unneeded',
91
+ ]);
92
+ }
93
+
94
+ /**
95
+ * @test
96
+ */
97
+ function it_fetches_tables_with_prefix() {
98
+ $factory = new DumperFactory();
99
+ $dumper = $factory->make([
100
+ 'db_name' => 'test',
101
+ 'export_file' => '/dev/null',
102
+ ]);
103
+
104
+ $db = m::mock(MysqliDbConn::class)->makePartial();
105
+ $db->prefix = '_some_prefix';
106
+ $db
107
+ ->shouldReceive('fetch_numeric')
108
+ ->with(\Mockery::pattern('~\\\\_some\\\\_prefix%~'))
109
+ ->andReturn([ ['_some_prefix_table_1'], ['_some_prefix_table_2']]);
110
+ $dumper->db = $db;
111
+
112
+ // See http://stackoverflow.com/a/28189403/514458 for
113
+ // info on $canonicalize = true
114
+ $this->assertEquals(
115
+ ['_some_prefix_table_1', '_some_prefix_table_2'],
116
+ $dumper->get_tables(),
117
+ "\$canonicalize = true"
118
+ );
119
+ }
120
+
121
+
122
+ /**
123
+ * @test
124
+ */
125
+ function it_excludes_tables() {
126
+ $factory = new DumperFactory();
127
+ $dumper = $factory->make([
128
+ 'db_name' => 'test',
129
+ 'export_file' => '/dev/null',
130
+ 'exclude_tables' => ['table2']
131
+ ]);
132
+
133
+ $db = m::mock(MysqliDbConn::class)->makePartial();
134
+ $db
135
+ ->shouldReceive([
136
+ 'fetch_numeric' => [ ['table1'], ['table2'], ['table3'] ]
137
+ ]);
138
+ $dumper->db = $db;
139
+
140
+ $this->assertEquals(
141
+ ['table1', 'table3'],
142
+ $dumper->get_tables(),
143
+ "\$canonicalize = true"
144
+ );
145
+ }
146
+
147
+
148
+ /**
149
+ * @test
150
+ */
151
+ function it_respects_only_tables_option() {
152
+ $factory = new DumperFactory();
153
+ $dumper = $factory->make([
154
+ 'db_name' => 'test',
155
+ 'export_file' => '/dev/null',
156
+ 'only_tables' => ['table1', 'table2']
157
+ ]);
158
+
159
+ $this->assertEquals(
160
+ ['table1', 'table2'],
161
+ $dumper->get_tables(),
162
+ "\$canonicalize = true"
163
+ );
164
+ }
165
+
166
+ /**
167
+ * @test
168
+ */
169
+ function it_uses_gzip_when_necessary() {
170
+ $this->assertTrue(Dump_File::is_gzip('/tmp/dump.sql.gz'));
171
+ $this->assertTrue(Dump_File::is_gzip('/tmp/dump.SQL.GZ'));
172
+ $this->assertFalse(Dump_File::is_gzip('/tmp/dump.sql'));
173
+
174
+ $this->assertFalse(Dump_File::is_gzip('/tmp/dump.sql.gz/whatever/dump.sql'));
175
+ }
176
+
177
+ /**
178
+ * @test
179
+ */
180
+ function it_passes_correct_args_to_mysqldump() {
181
+ $factory = new DumperFactory();
182
+ $dumper = $factory->make([
183
+ 'db_name' => 'test',
184
+ 'only_tables' => ['table_1'],
185
+ 'export_file' => '/tmp/test.sql.gz',
186
+ 'charset' => 'utf8mb4',
187
+ ]);
188
+
189
+ $shell = m::mock('\ShuttleExport\Shell');
190
+ $shell->shouldReceive([
191
+ 'is_enabled' => true,
192
+ 'has_command' => true,
193
+ ]);
194
+ $process = m::mock(Process::class)->makePartial();
195
+
196
+ $process
197
+ ->shouldReceive('setCommandLine')
198
+ ->with(\Mockery::on(function ($cmd) {
199
+ if (!preg_match('~--set-charset=.utf8mb4.~', $cmd)) {
200
+ return false;
201
+ }
202
+ if (!preg_match('~\|\s*gzip\s*[>|]~', $cmd)) {
203
+ return false;
204
+ }
205
+
206
+ if (!preg_match('~table_1~', $cmd)) {
207
+ return false;
208
+ }
209
+
210
+ return true;
211
+ }));
212
+
213
+ $dumper->shell = $shell;
214
+ $dumper->process = $process;
215
+ $dumper->dump();
216
+
217
+ $this->assertTrue(true);
218
+
219
+ }
220
+ /**
221
+ * @test
222
+ * @expectedException \ShuttleExport\Exception
223
+ */
224
+ function it_throws_own_exception_on_process_error() {
225
+ $factory = new DumperFactory();
226
+ $dumper = $factory->make([
227
+ 'db_name' => 'test',
228
+ 'export_file' => '/tmp/test.sql.gz',
229
+ ]);
230
+
231
+ $shell = m::mock('\ShuttleExport\Shell');
232
+ $shell->shouldReceive([
233
+ 'is_enabled' => true,
234
+ 'has_command' => true,
235
+ ]);
236
+ $process = m::mock(Process::class)->makePartial();
237
+
238
+ $process
239
+ ->shouldReceive('run')
240
+ ->andThrow(\RuntimeException::class, 'Unable to launch a new process.');
241
+
242
+ $dumper->shell = $shell;
243
+ $dumper->process = $process;
244
+ $dumper->dump();
245
+
246
+ $this->assertTrue(true);
247
+
248
+ }
249
+ }
vendor/2createStudio/ShuttleExport/tests/bootstrap.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php
2
+ include (__DIR__ . '/../vendor/autoload.php');
vendor/autoload.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload.php @generated by Composer
4
+
5
+ if (PHP_VERSION_ID < 50600) {
6
+ echo 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
7
+ exit(1);
8
+ }
9
+
10
+ require_once __DIR__ . '/composer/autoload_real.php';
11
+
12
+ return ComposerAutoloaderInita0e776ff85041e88fac3a5e5c679d8ee::getLoader();
vendor/composer/ClassLoader.php ADDED
@@ -0,0 +1,572 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of Composer.
5
+ *
6
+ * (c) Nils Adermann <naderman@naderman.de>
7
+ * Jordi Boggiano <j.boggiano@seld.be>
8
+ *
9
+ * For the full copyright and license information, please view the LICENSE
10
+ * file that was distributed with this source code.
11
+ */
12
+
13
+ namespace Composer\Autoload;
14
+
15
+ /**
16
+ * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
17
+ *
18
+ * $loader = new \Composer\Autoload\ClassLoader();
19
+ *
20
+ * // register classes with namespaces
21
+ * $loader->add('Symfony\Component', __DIR__.'/component');
22
+ * $loader->add('Symfony', __DIR__.'/framework');
23
+ *
24
+ * // activate the autoloader
25
+ * $loader->register();
26
+ *
27
+ * // to enable searching the include path (eg. for PEAR packages)
28
+ * $loader->setUseIncludePath(true);
29
+ *
30
+ * In this example, if you try to use a class in the Symfony\Component
31
+ * namespace or one of its children (Symfony\Component\Console for instance),
32
+ * the autoloader will first look for the class under the component/
33
+ * directory, and it will then fallback to the framework/ directory if not
34
+ * found before giving up.
35
+ *
36
+ * This class is loosely based on the Symfony UniversalClassLoader.
37
+ *
38
+ * @author Fabien Potencier <fabien@symfony.com>
39
+ * @author Jordi Boggiano <j.boggiano@seld.be>
40
+ * @see https://www.php-fig.org/psr/psr-0/
41
+ * @see https://www.php-fig.org/psr/psr-4/
42
+ */
43
+ class ClassLoader
44
+ {
45
+ /** @var ?string */
46
+ private $vendorDir;
47
+
48
+ // PSR-4
49
+ /**
50
+ * @var array[]
51
+ * @psalm-var array<string, array<string, int>>
52
+ */
53
+ private $prefixLengthsPsr4 = array();
54
+ /**
55
+ * @var array[]
56
+ * @psalm-var array<string, array<int, string>>
57
+ */
58
+ private $prefixDirsPsr4 = array();
59
+ /**
60
+ * @var array[]
61
+ * @psalm-var array<string, string>
62
+ */
63
+ private $fallbackDirsPsr4 = array();
64
+
65
+ // PSR-0
66
+ /**
67
+ * @var array[]
68
+ * @psalm-var array<string, array<string, string[]>>
69
+ */
70
+ private $prefixesPsr0 = array();
71
+ /**
72
+ * @var array[]
73
+ * @psalm-var array<string, string>
74
+ */
75
+ private $fallbackDirsPsr0 = array();
76
+
77
+ /** @var bool */
78
+ private $useIncludePath = false;
79
+
80
+ /**
81
+ * @var string[]
82
+ * @psalm-var array<string, string>
83
+ */
84
+ private $classMap = array();
85
+
86
+ /** @var bool */
87
+ private $classMapAuthoritative = false;
88
+
89
+ /**
90
+ * @var bool[]
91
+ * @psalm-var array<string, bool>
92
+ */
93
+ private $missingClasses = array();
94
+
95
+ /** @var ?string */
96
+ private $apcuPrefix;
97
+
98
+ /**
99
+ * @var self[]
100
+ */
101
+ private static $registeredLoaders = array();
102
+
103
+ /**
104
+ * @param ?string $vendorDir
105
+ */
106
+ public function __construct($vendorDir = null)
107
+ {
108
+ $this->vendorDir = $vendorDir;
109
+ }
110
+
111
+ /**
112
+ * @return string[]
113
+ */
114
+ public function getPrefixes()
115
+ {
116
+ if (!empty($this->prefixesPsr0)) {
117
+ return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
118
+ }
119
+
120
+ return array();
121
+ }
122
+
123
+ /**
124
+ * @return array[]
125
+ * @psalm-return array<string, array<int, string>>
126
+ */
127
+ public function getPrefixesPsr4()
128
+ {
129
+ return $this->prefixDirsPsr4;
130
+ }
131
+
132
+ /**
133
+ * @return array[]
134
+ * @psalm-return array<string, string>
135
+ */
136
+ public function getFallbackDirs()
137
+ {
138
+ return $this->fallbackDirsPsr0;
139
+ }
140
+
141
+ /**
142
+ * @return array[]
143
+ * @psalm-return array<string, string>
144
+ */
145
+ public function getFallbackDirsPsr4()
146
+ {
147
+ return $this->fallbackDirsPsr4;
148
+ }
149
+
150
+ /**
151
+ * @return string[] Array of classname => path
152
+ * @psalm-return array<string, string>
153
+ */
154
+ public function getClassMap()
155
+ {
156
+ return $this->classMap;
157
+ }
158
+
159
+ /**
160
+ * @param string[] $classMap Class to filename map
161
+ * @psalm-param array<string, string> $classMap
162
+ *
163
+ * @return void
164
+ */
165
+ public function addClassMap(array $classMap)
166
+ {
167
+ if ($this->classMap) {
168
+ $this->classMap = array_merge($this->classMap, $classMap);
169
+ } else {
170
+ $this->classMap = $classMap;
171
+ }
172
+ }
173
+
174
+ /**
175
+ * Registers a set of PSR-0 directories for a given prefix, either
176
+ * appending or prepending to the ones previously set for this prefix.
177
+ *
178
+ * @param string $prefix The prefix
179
+ * @param string[]|string $paths The PSR-0 root directories
180
+ * @param bool $prepend Whether to prepend the directories
181
+ *
182
+ * @return void
183
+ */
184
+ public function add($prefix, $paths, $prepend = false)
185
+ {
186
+ if (!$prefix) {
187
+ if ($prepend) {
188
+ $this->fallbackDirsPsr0 = array_merge(
189
+ (array) $paths,
190
+ $this->fallbackDirsPsr0
191
+ );
192
+ } else {
193
+ $this->fallbackDirsPsr0 = array_merge(
194
+ $this->fallbackDirsPsr0,
195
+ (array) $paths
196
+ );
197
+ }
198
+
199
+ return;
200
+ }
201
+
202
+ $first = $prefix[0];
203
+ if (!isset($this->prefixesPsr0[$first][$prefix])) {
204
+ $this->prefixesPsr0[$first][$prefix] = (array) $paths;
205
+
206
+ return;
207
+ }
208
+ if ($prepend) {
209
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
210
+ (array) $paths,
211
+ $this->prefixesPsr0[$first][$prefix]
212
+ );
213
+ } else {
214
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
215
+ $this->prefixesPsr0[$first][$prefix],
216
+ (array) $paths
217
+ );
218
+ }
219
+ }
220
+
221
+ /**
222
+ * Registers a set of PSR-4 directories for a given namespace, either
223
+ * appending or prepending to the ones previously set for this namespace.
224
+ *
225
+ * @param string $prefix The prefix/namespace, with trailing '\\'
226
+ * @param string[]|string $paths The PSR-4 base directories
227
+ * @param bool $prepend Whether to prepend the directories
228
+ *
229
+ * @throws \InvalidArgumentException
230
+ *
231
+ * @return void
232
+ */
233
+ public function addPsr4($prefix, $paths, $prepend = false)
234
+ {
235
+ if (!$prefix) {
236
+ // Register directories for the root namespace.
237
+ if ($prepend) {
238
+ $this->fallbackDirsPsr4 = array_merge(
239
+ (array) $paths,
240
+ $this->fallbackDirsPsr4
241
+ );
242
+ } else {
243
+ $this->fallbackDirsPsr4 = array_merge(
244
+ $this->fallbackDirsPsr4,
245
+ (array) $paths
246
+ );
247
+ }
248
+ } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
249
+ // Register directories for a new namespace.
250
+ $length = strlen($prefix);
251
+ if ('\\' !== $prefix[$length - 1]) {
252
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
253
+ }
254
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
255
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
256
+ } elseif ($prepend) {
257
+ // Prepend directories for an already registered namespace.
258
+ $this->prefixDirsPsr4[$prefix] = array_merge(
259
+ (array) $paths,
260
+ $this->prefixDirsPsr4[$prefix]
261
+ );
262
+ } else {
263
+ // Append directories for an already registered namespace.
264
+ $this->prefixDirsPsr4[$prefix] = array_merge(
265
+ $this->prefixDirsPsr4[$prefix],
266
+ (array) $paths
267
+ );
268
+ }
269
+ }
270
+
271
+ /**
272
+ * Registers a set of PSR-0 directories for a given prefix,
273
+ * replacing any others previously set for this prefix.
274
+ *
275
+ * @param string $prefix The prefix
276
+ * @param string[]|string $paths The PSR-0 base directories
277
+ *
278
+ * @return void
279
+ */
280
+ public function set($prefix, $paths)
281
+ {
282
+ if (!$prefix) {
283
+ $this->fallbackDirsPsr0 = (array) $paths;
284
+ } else {
285
+ $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
286
+ }
287
+ }
288
+
289
+ /**
290
+ * Registers a set of PSR-4 directories for a given namespace,
291
+ * replacing any others previously set for this namespace.
292
+ *
293
+ * @param string $prefix The prefix/namespace, with trailing '\\'
294
+ * @param string[]|string $paths The PSR-4 base directories
295
+ *
296
+ * @throws \InvalidArgumentException
297
+ *
298
+ * @return void
299
+ */
300
+ public function setPsr4($prefix, $paths)
301
+ {
302
+ if (!$prefix) {
303
+ $this->fallbackDirsPsr4 = (array) $paths;
304
+ } else {
305
+ $length = strlen($prefix);
306
+ if ('\\' !== $prefix[$length - 1]) {
307
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
308
+ }
309
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
310
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
311
+ }
312
+ }
313
+
314
+ /**
315
+ * Turns on searching the include path for class files.
316
+ *
317
+ * @param bool $useIncludePath
318
+ *
319
+ * @return void
320
+ */
321
+ public function setUseIncludePath($useIncludePath)
322
+ {
323
+ $this->useIncludePath = $useIncludePath;
324
+ }
325
+
326
+ /**
327
+ * Can be used to check if the autoloader uses the include path to check
328
+ * for classes.
329
+ *
330
+ * @return bool
331
+ */
332
+ public function getUseIncludePath()
333
+ {
334
+ return $this->useIncludePath;
335
+ }
336
+
337
+ /**
338
+ * Turns off searching the prefix and fallback directories for classes
339
+ * that have not been registered with the class map.
340
+ *
341
+ * @param bool $classMapAuthoritative
342
+ *
343
+ * @return void
344
+ */
345
+ public function setClassMapAuthoritative($classMapAuthoritative)
346
+ {
347
+ $this->classMapAuthoritative = $classMapAuthoritative;
348
+ }
349
+
350
+ /**
351
+ * Should class lookup fail if not found in the current class map?
352
+ *
353
+ * @return bool
354
+ */
355
+ public function isClassMapAuthoritative()
356
+ {
357
+ return $this->classMapAuthoritative;
358
+ }
359
+
360
+ /**
361
+ * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
362
+ *
363
+ * @param string|null $apcuPrefix
364
+ *
365
+ * @return void
366
+ */
367
+ public function setApcuPrefix($apcuPrefix)
368
+ {
369
+ $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
370
+ }
371
+
372
+ /**
373
+ * The APCu prefix in use, or null if APCu caching is not enabled.
374
+ *
375
+ * @return string|null
376
+ */
377
+ public function getApcuPrefix()
378
+ {
379
+ return $this->apcuPrefix;
380
+ }
381
+
382
+ /**
383
+ * Registers this instance as an autoloader.
384
+ *
385
+ * @param bool $prepend Whether to prepend the autoloader or not
386
+ *
387
+ * @return void
388
+ */
389
+ public function register($prepend = false)
390
+ {
391
+ spl_autoload_register(array($this, 'loadClass'), true, $prepend);
392
+
393
+ if (null === $this->vendorDir) {
394
+ return;
395
+ }
396
+
397
+ if ($prepend) {
398
+ self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
399
+ } else {
400
+ unset(self::$registeredLoaders[$this->vendorDir]);
401
+ self::$registeredLoaders[$this->vendorDir] = $this;
402
+ }
403
+ }
404
+
405
+ /**
406
+ * Unregisters this instance as an autoloader.
407
+ *
408
+ * @return void
409
+ */
410
+ public function unregister()
411
+ {
412
+ spl_autoload_unregister(array($this, 'loadClass'));
413
+
414
+ if (null !== $this->vendorDir) {
415
+ unset(self::$registeredLoaders[$this->vendorDir]);
416
+ }
417
+ }
418
+
419
+ /**
420
+ * Loads the given class or interface.
421
+ *
422
+ * @param string $class The name of the class
423
+ * @return true|null True if loaded, null otherwise
424
+ */
425
+ public function loadClass($class)
426
+ {
427
+ if ($file = $this->findFile($class)) {
428
+ includeFile($file);
429
+
430
+ return true;
431
+ }
432
+
433
+ return null;
434
+ }
435
+
436
+ /**
437
+ * Finds the path to the file where the class is defined.
438
+ *
439
+ * @param string $class The name of the class
440
+ *
441
+ * @return string|false The path if found, false otherwise
442
+ */
443
+ public function findFile($class)
444
+ {
445
+ // class map lookup
446
+ if (isset($this->classMap[$class])) {
447
+ return $this->classMap[$class];
448
+ }
449
+ if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
450
+ return false;
451
+ }
452
+ if (null !== $this->apcuPrefix) {
453
+ $file = apcu_fetch($this->apcuPrefix.$class, $hit);
454
+ if ($hit) {
455
+ return $file;
456
+ }
457
+ }
458
+
459
+ $file = $this->findFileWithExtension($class, '.php');
460
+
461
+ // Search for Hack files if we are running on HHVM
462
+ if (false === $file && defined('HHVM_VERSION')) {
463
+ $file = $this->findFileWithExtension($class, '.hh');
464
+ }
465
+
466
+ if (null !== $this->apcuPrefix) {
467
+ apcu_add($this->apcuPrefix.$class, $file);
468
+ }
469
+
470
+ if (false === $file) {
471
+ // Remember that this class does not exist.
472
+ $this->missingClasses[$class] = true;
473
+ }
474
+
475
+ return $file;
476
+ }
477
+
478
+ /**
479
+ * Returns the currently registered loaders indexed by their corresponding vendor directories.
480
+ *
481
+ * @return self[]
482
+ */
483
+ public static function getRegisteredLoaders()
484
+ {
485
+ return self::$registeredLoaders;
486
+ }
487
+
488
+ /**
489
+ * @param string $class
490
+ * @param string $ext
491
+ * @return string|false
492
+ */
493
+ private function findFileWithExtension($class, $ext)
494
+ {
495
+ // PSR-4 lookup
496
+ $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
497
+
498
+ $first = $class[0];
499
+ if (isset($this->prefixLengthsPsr4[$first])) {
500
+ $subPath = $class;
501
+ while (false !== $lastPos = strrpos($subPath, '\\')) {
502
+ $subPath = substr($subPath, 0, $lastPos);
503
+ $search = $subPath . '\\';
504
+ if (isset($this->prefixDirsPsr4[$search])) {
505
+ $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
506
+ foreach ($this->prefixDirsPsr4[$search] as $dir) {
507
+ if (file_exists($file = $dir . $pathEnd)) {
508
+ return $file;
509
+ }
510
+ }
511
+ }
512
+ }
513
+ }
514
+
515
+ // PSR-4 fallback dirs
516
+ foreach ($this->fallbackDirsPsr4 as $dir) {
517
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
518
+ return $file;
519
+ }
520
+ }
521
+
522
+ // PSR-0 lookup
523
+ if (false !== $pos = strrpos($class, '\\')) {
524
+ // namespaced class name
525
+ $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
526
+ . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
527
+ } else {
528
+ // PEAR-like class name
529
+ $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
530
+ }
531
+
532
+ if (isset($this->prefixesPsr0[$first])) {
533
+ foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
534
+ if (0 === strpos($class, $prefix)) {
535
+ foreach ($dirs as $dir) {
536
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
537
+ return $file;
538
+ }
539
+ }
540
+ }
541
+ }
542
+ }
543
+
544
+ // PSR-0 fallback dirs
545
+ foreach ($this->fallbackDirsPsr0 as $dir) {
546
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
547
+ return $file;
548
+ }
549
+ }
550
+
551
+ // PSR-0 include paths.
552
+ if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
553
+ return $file;
554
+ }
555
+
556
+ return false;
557
+ }
558
+ }
559
+
560
+ /**
561
+ * Scope isolated include.
562
+ *
563
+ * Prevents access to $this/self from included files.
564
+ *
565
+ * @param string $file
566
+ * @return void
567
+ * @private
568
+ */
569
+ function includeFile($file)
570
+ {
571
+ include $file;
572
+ }
vendor/composer/InstalledVersions.php ADDED
@@ -0,0 +1,352 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of Composer.
5
+ *
6
+ * (c) Nils Adermann <naderman@naderman.de>
7
+ * Jordi Boggiano <j.boggiano@seld.be>
8
+ *
9
+ * For the full copyright and license information, please view the LICENSE
10
+ * file that was distributed with this source code.
11
+ */
12
+
13
+ namespace Composer;
14
+
15
+ use Composer\Autoload\ClassLoader;
16
+ use Composer\Semver\VersionParser;
17
+
18
+ /**
19
+ * This class is copied in every Composer installed project and available to all
20
+ *
21
+ * See also https://getcomposer.org/doc/07-runtime.md#installed-versions
22
+ *
23
+ * To require its presence, you can require `composer-runtime-api ^2.0`
24
+ *
25
+ * @final
26
+ */
27
+ class InstalledVersions
28
+ {
29
+ /**
30
+ * @var mixed[]|null
31
+ * @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}|array{}|null
32
+ */
33
+ private static $installed;
34
+
35
+ /**
36
+ * @var bool|null
37
+ */
38
+ private static $canGetVendors;
39
+
40
+ /**
41
+ * @var array[]
42
+ * @psalm-var array<string, array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
43
+ */
44
+ private static $installedByVendor = array();
45
+
46
+ /**
47
+ * Returns a list of all package names which are present, either by being installed, replaced or provided
48
+ *
49
+ * @return string[]
50
+ * @psalm-return list<string>
51
+ */
52
+ public static function getInstalledPackages()
53
+ {
54
+ $packages = array();
55
+ foreach (self::getInstalled() as $installed) {
56
+ $packages[] = array_keys($installed['versions']);
57
+ }
58
+
59
+ if (1 === \count($packages)) {
60
+ return $packages[0];
61
+ }
62
+
63
+ return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
64
+ }
65
+
66
+ /**
67
+ * Returns a list of all package names with a specific type e.g. 'library'
68
+ *
69
+ * @param string $type
70
+ * @return string[]
71
+ * @psalm-return list<string>
72
+ */
73
+ public static function getInstalledPackagesByType($type)
74
+ {
75
+ $packagesByType = array();
76
+
77
+ foreach (self::getInstalled() as $installed) {
78
+ foreach ($installed['versions'] as $name => $package) {
79
+ if (isset($package['type']) && $package['type'] === $type) {
80
+ $packagesByType[] = $name;
81
+ }
82
+ }
83
+ }
84
+
85
+ return $packagesByType;
86
+ }
87
+
88
+ /**
89
+ * Checks whether the given package is installed
90
+ *
91
+ * This also returns true if the package name is provided or replaced by another package
92
+ *
93
+ * @param string $packageName
94
+ * @param bool $includeDevRequirements
95
+ * @return bool
96
+ */
97
+ public static function isInstalled($packageName, $includeDevRequirements = true)
98
+ {
99
+ foreach (self::getInstalled() as $installed) {
100
+ if (isset($installed['versions'][$packageName])) {
101
+ return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
102
+ }
103
+ }
104
+
105
+ return false;
106
+ }
107
+
108
+ /**
109
+ * Checks whether the given package satisfies a version constraint
110
+ *
111
+ * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
112
+ *
113
+ * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
114
+ *
115
+ * @param VersionParser $parser Install composer/semver to have access to this class and functionality
116
+ * @param string $packageName
117
+ * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
118
+ * @return bool
119
+ */
120
+ public static function satisfies(VersionParser $parser, $packageName, $constraint)
121
+ {
122
+ $constraint = $parser->parseConstraints($constraint);
123
+ $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
124
+
125
+ return $provided->matches($constraint);
126
+ }
127
+
128
+ /**
129
+ * Returns a version constraint representing all the range(s) which are installed for a given package
130
+ *
131
+ * It is easier to use this via isInstalled() with the $constraint argument if you need to check
132
+ * whether a given version of a package is installed, and not just whether it exists
133
+ *
134
+ * @param string $packageName
135
+ * @return string Version constraint usable with composer/semver
136
+ */
137
+ public static function getVersionRanges($packageName)
138
+ {
139
+ foreach (self::getInstalled() as $installed) {
140
+ if (!isset($installed['versions'][$packageName])) {
141
+ continue;
142
+ }
143
+
144
+ $ranges = array();
145
+ if (isset($installed['versions'][$packageName]['pretty_version'])) {
146
+ $ranges[] = $installed['versions'][$packageName]['pretty_version'];
147
+ }
148
+ if (array_key_exists('aliases', $installed['versions'][$packageName])) {
149
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
150
+ }
151
+ if (array_key_exists('replaced', $installed['versions'][$packageName])) {
152
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
153
+ }
154
+ if (array_key_exists('provided', $installed['versions'][$packageName])) {
155
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
156
+ }
157
+
158
+ return implode(' || ', $ranges);
159
+ }
160
+
161
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
162
+ }
163
+
164
+ /**
165
+ * @param string $packageName
166
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
167
+ */
168
+ public static function getVersion($packageName)
169
+ {
170
+ foreach (self::getInstalled() as $installed) {
171
+ if (!isset($installed['versions'][$packageName])) {
172
+ continue;
173
+ }
174
+
175
+ if (!isset($installed['versions'][$packageName]['version'])) {
176
+ return null;
177
+ }
178
+
179
+ return $installed['versions'][$packageName]['version'];
180
+ }
181
+
182
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
183
+ }
184
+
185
+ /**
186
+ * @param string $packageName
187
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
188
+ */
189
+ public static function getPrettyVersion($packageName)
190
+ {
191
+ foreach (self::getInstalled() as $installed) {
192
+ if (!isset($installed['versions'][$packageName])) {
193
+ continue;
194
+ }
195
+
196
+ if (!isset($installed['versions'][$packageName]['pretty_version'])) {
197
+ return null;
198
+ }
199
+
200
+ return $installed['versions'][$packageName]['pretty_version'];
201
+ }
202
+
203
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
204
+ }
205
+
206
+ /**
207
+ * @param string $packageName
208
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
209
+ */
210
+ public static function getReference($packageName)
211
+ {
212
+ foreach (self::getInstalled() as $installed) {
213
+ if (!isset($installed['versions'][$packageName])) {
214
+ continue;
215
+ }
216
+
217
+ if (!isset($installed['versions'][$packageName]['reference'])) {
218
+ return null;
219
+ }
220
+
221
+ return $installed['versions'][$packageName]['reference'];
222
+ }
223
+
224
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
225
+ }
226
+
227
+ /**
228
+ * @param string $packageName
229
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
230
+ */
231
+ public static function getInstallPath($packageName)
232
+ {
233
+ foreach (self::getInstalled() as $installed) {
234
+ if (!isset($installed['versions'][$packageName])) {
235
+ continue;
236
+ }
237
+
238
+ return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
239
+ }
240
+
241
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
242
+ }
243
+
244
+ /**
245
+ * @return array
246
+ * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}
247
+ */
248
+ public static function getRootPackage()
249
+ {
250
+ $installed = self::getInstalled();
251
+
252
+ return $installed[0]['root'];
253
+ }
254
+
255
+ /**
256
+ * Returns the raw installed.php data for custom implementations
257
+ *
258
+ * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
259
+ * @return array[]
260
+ * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}
261
+ */
262
+ public static function getRawData()
263
+ {
264
+ @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
265
+
266
+ if (null === self::$installed) {
267
+ // only require the installed.php file if this file is loaded from its dumped location,
268
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
269
+ if (substr(__DIR__, -8, 1) !== 'C') {
270
+ self::$installed = include __DIR__ . '/installed.php';
271
+ } else {
272
+ self::$installed = array();
273
+ }
274
+ }
275
+
276
+ return self::$installed;
277
+ }
278
+
279
+ /**
280
+ * Returns the raw data of all installed.php which are currently loaded for custom implementations
281
+ *
282
+ * @return array[]
283
+ * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
284
+ */
285
+ public static function getAllRawData()
286
+ {
287
+ return self::getInstalled();
288
+ }
289
+
290
+ /**
291
+ * Lets you reload the static array from another file
292
+ *
293
+ * This is only useful for complex integrations in which a project needs to use
294
+ * this class but then also needs to execute another project's autoloader in process,
295
+ * and wants to ensure both projects have access to their version of installed.php.
296
+ *
297
+ * A typical case would be PHPUnit, where it would need to make sure it reads all
298
+ * the data it needs from this class, then call reload() with
299
+ * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
300
+ * the project in which it runs can then also use this class safely, without
301
+ * interference between PHPUnit's dependencies and the project's dependencies.
302
+ *
303
+ * @param array[] $data A vendor/composer/installed.php data set
304
+ * @return void
305
+ *
306
+ * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>} $data
307
+ */
308
+ public static function reload($data)
309
+ {
310
+ self::$installed = $data;
311
+ self::$installedByVendor = array();
312
+ }
313
+
314
+ /**
315
+ * @return array[]
316
+ * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
317
+ */
318
+ private static function getInstalled()
319
+ {
320
+ if (null === self::$canGetVendors) {
321
+ self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
322
+ }
323
+
324
+ $installed = array();
325
+
326
+ if (self::$canGetVendors) {
327
+ foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
328
+ if (isset(self::$installedByVendor[$vendorDir])) {
329
+ $installed[] = self::$installedByVendor[$vendorDir];
330
+ } elseif (is_file($vendorDir.'/composer/installed.php')) {
331
+ $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
332
+ if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
333
+ self::$installed = $installed[count($installed) - 1];
334
+ }
335
+ }
336
+ }
337
+ }
338
+
339
+ if (null === self::$installed) {
340
+ // only require the installed.php file if this file is loaded from its dumped location,
341
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
342
+ if (substr(__DIR__, -8, 1) !== 'C') {
343
+ self::$installed = require __DIR__ . '/installed.php';
344
+ } else {
345
+ self::$installed = array();
346
+ }
347
+ }
348
+ $installed[] = self::$installed;
349
+
350
+ return $installed;
351
+ }
352
+ }
vendor/composer/LICENSE ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ Copyright (c) Nils Adermann, Jordi Boggiano
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ of this software and associated documentation files (the "Software"), to deal
6
+ in the Software without restriction, including without limitation the rights
7
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the Software is furnished
9
+ to do so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all
12
+ copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
+ THE SOFTWARE.
21
+
vendor/composer/autoload_classmap.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload_classmap.php @generated by Composer
4
+
5
+ $vendorDir = dirname(__DIR__);
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
10
+ );
vendor/composer/autoload_namespaces.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload_namespaces.php @generated by Composer
4
+
5
+ $vendorDir = dirname(__DIR__);
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ 'Symfony\\Component\\Process' => array($vendorDir . '/symfony/process'),
10
+ );
vendor/composer/autoload_psr4.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload_psr4.php @generated by Composer
4
+
5
+ $vendorDir = dirname(__DIR__);
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ 'SiteGround_i18n\\' => array($vendorDir . '/siteground/siteground-i18n/src'),
10
+ 'SiteGround_Migrator\\' => array($baseDir . '/core'),
11
+ 'SiteGround_Helper\\' => array($vendorDir . '/siteground/siteground-helper/src'),
12
+ 'ShuttleExport\\' => array($vendorDir . '/2createStudio/ShuttleExport/src'),
13
+ );
vendor/composer/autoload_real.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload_real.php @generated by Composer
4
+
5
+ class ComposerAutoloaderInita0e776ff85041e88fac3a5e5c679d8ee
6
+ {
7
+ private static $loader;
8
+
9
+ public static function loadClassLoader($class)
10
+ {
11
+ if ('Composer\Autoload\ClassLoader' === $class) {
12
+ require __DIR__ . '/ClassLoader.php';
13
+ }
14
+ }
15
+
16
+ /**
17
+ * @return \Composer\Autoload\ClassLoader
18
+ */
19
+ public static function getLoader()
20
+ {
21
+ if (null !== self::$loader) {
22
+ return self::$loader;
23
+ }
24
+
25
+ require __DIR__ . '/platform_check.php';
26
+
27
+ spl_autoload_register(array('ComposerAutoloaderInita0e776ff85041e88fac3a5e5c679d8ee', 'loadClassLoader'), true, true);
28
+ self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
29
+ spl_autoload_unregister(array('ComposerAutoloaderInita0e776ff85041e88fac3a5e5c679d8ee', 'loadClassLoader'));
30
+
31
+ require __DIR__ . '/autoload_static.php';
32
+ call_user_func(\Composer\Autoload\ComposerStaticInita0e776ff85041e88fac3a5e5c679d8ee::getInitializer($loader));
33
+
34
+ $loader->register(true);
35
+
36
+ return $loader;
37
+ }
38
+ }
vendor/composer/autoload_static.php ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload_static.php @generated by Composer
4
+
5
+ namespace Composer\Autoload;
6
+
7
+ class ComposerStaticInita0e776ff85041e88fac3a5e5c679d8ee
8
+ {
9
+ public static $prefixLengthsPsr4 = array (
10
+ 'S' =>
11
+ array (
12
+ 'SiteGround_i18n\\' => 16,
13
+ 'SiteGround_Migrator\\' => 20,
14
+ 'SiteGround_Helper\\' => 18,
15
+ 'ShuttleExport\\' => 14,
16
+ ),
17
+ );
18
+
19
+ public static $prefixDirsPsr4 = array (
20
+ 'SiteGround_i18n\\' =>
21
+ array (
22
+ 0 => __DIR__ . '/..' . '/siteground/siteground-i18n/src',
23
+ ),
24
+ 'SiteGround_Migrator\\' =>
25
+ array (
26
+ 0 => __DIR__ . '/../..' . '/core',
27
+ ),
28
+ 'SiteGround_Helper\\' =>
29
+ array (
30
+ 0 => __DIR__ . '/..' . '/siteground/siteground-helper/src',
31
+ ),
32
+ 'ShuttleExport\\' =>
33
+ array (
34
+ 0 => __DIR__ . '/..' . '/2createStudio/ShuttleExport/src',
35
+ ),
36
+ );
37
+
38
+ public static $prefixesPsr0 = array (
39
+ 'S' =>
40
+ array (
41
+ 'Symfony\\Component\\Process' =>
42
+ array (
43
+ 0 => __DIR__ . '/..' . '/symfony/process',
44
+ ),
45
+ ),
46
+ );
47
+
48
+ public static $classMap = array (
49
+ 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
50
+ );
51
+
52
+ public static function getInitializer(ClassLoader $loader)
53
+ {
54
+ return \Closure::bind(function () use ($loader) {
55
+ $loader->prefixLengthsPsr4 = ComposerStaticInita0e776ff85041e88fac3a5e5c679d8ee::$prefixLengthsPsr4;
56
+ $loader->prefixDirsPsr4 = ComposerStaticInita0e776ff85041e88fac3a5e5c679d8ee::$prefixDirsPsr4;
57
+ $loader->prefixesPsr0 = ComposerStaticInita0e776ff85041e88fac3a5e5c679d8ee::$prefixesPsr0;
58
+ $loader->classMap = ComposerStaticInita0e776ff85041e88fac3a5e5c679d8ee::$classMap;
59
+
60
+ }, null, ClassLoader::class);
61
+ }
62
+ }
vendor/composer/installed.json ADDED
@@ -0,0 +1,141 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "packages": [
3
+ {
4
+ "name": "2createStudio/ShuttleExport",
5
+ "version": "dev-namespaced",
6
+ "version_normalized": "dev-namespaced",
7
+ "source": {
8
+ "type": "git",
9
+ "url": "https://github.com/stoyan0v/shuttle-export.git",
10
+ "reference": "ecd4087b20ad034d410b1dda0416b1467fd1cebe"
11
+ },
12
+ "dist": {
13
+ "type": "zip",
14
+ "url": "https://api.github.com/repos/stoyan0v/shuttle-export/zipball/ecd4087b20ad034d410b1dda0416b1467fd1cebe",
15
+ "reference": "ecd4087b20ad034d410b1dda0416b1467fd1cebe",
16
+ "shasum": ""
17
+ },
18
+ "require": {
19
+ "php": ">=5.3.2",
20
+ "symfony/process": "v2.0.25"
21
+ },
22
+ "require-dev": {
23
+ "mockery/mockery": "dev-master",
24
+ "phpunit/phpunit": "^6.1"
25
+ },
26
+ "time": "2017-05-14T09:57:00+00:00",
27
+ "type": "library",
28
+ "installation-source": "dist",
29
+ "autoload": {
30
+ "psr-4": {
31
+ "ShuttleExport\\": "src/"
32
+ }
33
+ },
34
+ "license": [
35
+ "GPLv2"
36
+ ],
37
+ "authors": [
38
+ {
39
+ "name": "Emil Mohamed",
40
+ "email": "emil@2c-studio.com"
41
+ }
42
+ ],
43
+ "description": "MySQL export library",
44
+ "homepage": "https://github.com/2createStudio/shuttle-export",
45
+ "support": {
46
+ "source": "https://github.com/stoyan0v/shuttle-export/tree/namespaced"
47
+ },
48
+ "install-path": "../2createStudio/ShuttleExport"
49
+ },
50
+ {
51
+ "name": "siteground/siteground-helper",
52
+ "version": "dev-master",
53
+ "version_normalized": "dev-master",
54
+ "source": {
55
+ "type": "git",
56
+ "url": "https://gitlab.siteground.com/wordpress/siteground-helper.git",
57
+ "reference": "b735bf5df36006a0e8435a6ba79b5b5cfa0e66dc"
58
+ },
59
+ "time": "2022-02-10T07:23:42+00:00",
60
+ "default-branch": true,
61
+ "type": "library",
62
+ "installation-source": "source",
63
+ "autoload": {
64
+ "psr-4": {
65
+ "SiteGround_Helper\\": "src/"
66
+ }
67
+ },
68
+ "install-path": "../siteground/siteground-helper"
69
+ },
70
+ {
71
+ "name": "siteground/siteground-i18n",
72
+ "version": "dev-master",
73
+ "version_normalized": "dev-master",
74
+ "source": {
75
+ "type": "git",
76
+ "url": "https://gitlab.siteground.com/wordpress/siteground-i18n.git",
77
+ "reference": "b242d643714a172f4d000e3b6a05a6069c8dd30b"
78
+ },
79
+ "time": "2022-01-31T13:14:49+00:00",
80
+ "default-branch": true,
81
+ "type": "library",
82
+ "installation-source": "source",
83
+ "autoload": {
84
+ "psr-4": {
85
+ "SiteGround_i18n\\": "src/"
86
+ }
87
+ },
88
+ "install-path": "../siteground/siteground-i18n"
89
+ },
90
+ {
91
+ "name": "symfony/process",
92
+ "version": "v2.0.25",
93
+ "version_normalized": "2.0.25.0",
94
+ "target-dir": "Symfony/Component/Process",
95
+ "source": {
96
+ "type": "git",
97
+ "url": "https://github.com/symfony/process.git",
98
+ "reference": "7d92786475f2b7d4a4f4be4f0076732ace155df2"
99
+ },
100
+ "dist": {
101
+ "type": "zip",
102
+ "url": "https://api.github.com/repos/symfony/process/zipball/7d92786475f2b7d4a4f4be4f0076732ace155df2",
103
+ "reference": "7d92786475f2b7d4a4f4be4f0076732ace155df2",
104
+ "shasum": ""
105
+ },
106
+ "require": {
107
+ "php": ">=5.3.2"
108
+ },
109
+ "time": "2013-02-17T19:36:49+00:00",
110
+ "type": "library",
111
+ "installation-source": "dist",
112
+ "autoload": {
113
+ "psr-0": {
114
+ "Symfony\\Component\\Process": ""
115
+ }
116
+ },
117
+ "notification-url": "https://packagist.org/downloads/",
118
+ "license": [
119
+ "MIT"
120
+ ],
121
+ "authors": [
122
+ {
123
+ "name": "Symfony Community",
124
+ "homepage": "http://symfony.com/contributors"
125
+ },
126
+ {
127
+ "name": "Fabien Potencier",
128
+ "email": "fabien@symfony.com"
129
+ }
130
+ ],
131
+ "description": "Symfony Process Component",
132
+ "homepage": "http://symfony.com",
133
+ "support": {
134
+ "source": "https://github.com/symfony/process/tree/v2.0.25"
135
+ },
136
+ "install-path": "../symfony/process/Symfony/Component/Process"
137
+ }
138
+ ],
139
+ "dev": true,
140
+ "dev-package-names": []
141
+ }
vendor/composer/installed.php ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php return array(
2
+ 'root' => array(
3
+ 'pretty_version' => 'dev-master',
4
+ 'version' => 'dev-master',
5
+ 'type' => 'library',
6
+ 'install_path' => __DIR__ . '/../../',
7
+ 'aliases' => array(),
8
+ 'reference' => 'dd41a07addc4b79907dcdfe93e5d08ea16d529fd',
9
+ 'name' => 'siteground/siteground-migrator',
10
+ 'dev' => true,
11
+ ),
12
+ 'versions' => array(
13
+ '2createstudio/shuttleexport' => array(
14
+ 'pretty_version' => 'dev-namespaced',
15
+ 'version' => 'dev-namespaced',
16
+ 'type' => 'library',
17
+ 'install_path' => __DIR__ . '/../2createStudio/ShuttleExport',
18
+ 'aliases' => array(),
19
+ 'reference' => 'ecd4087b20ad034d410b1dda0416b1467fd1cebe',
20
+ 'dev_requirement' => false,
21
+ ),
22
+ 'siteground/siteground-helper' => array(
23
+ 'pretty_version' => 'dev-master',
24
+ 'version' => 'dev-master',
25
+ 'type' => 'library',
26
+ 'install_path' => __DIR__ . '/../siteground/siteground-helper',
27
+ 'aliases' => array(
28
+ 0 => '9999999-dev',
29
+ ),
30
+ 'reference' => 'b735bf5df36006a0e8435a6ba79b5b5cfa0e66dc',
31
+ 'dev_requirement' => false,
32
+ ),
33
+ 'siteground/siteground-i18n' => array(
34
+ 'pretty_version' => 'dev-master',
35
+ 'version' => 'dev-master',
36
+ 'type' => 'library',
37
+ 'install_path' => __DIR__ . '/../siteground/siteground-i18n',
38
+ 'aliases' => array(
39
+ 0 => '9999999-dev',
40
+ ),
41
+ 'reference' => 'b242d643714a172f4d000e3b6a05a6069c8dd30b',
42
+ 'dev_requirement' => false,
43
+ ),
44
+ 'siteground/siteground-mi