From 635a1f7b5832214fb362cf1d4f7434e814d374bf Mon Sep 17 00:00:00 2001 From: akhil Date: Wed, 1 Dec 2021 20:09:30 +0530 Subject: [PATCH 1/3] Added rainloop community version 1.16.0 --- app/data/EMPTY | 2 +- app/data/VERSION | 2 +- app/index.php | 2 +- .../v/1.15.0/app/localization/moment/af.js | 72 - .../v/1.15.0/app/localization/moment/ar-dz.js | 58 - .../v/1.15.0/app/localization/moment/ar-kw.js | 58 - .../v/1.15.0/app/localization/moment/ar-ly.js | 121 - .../v/1.15.0/app/localization/moment/ar-ma.js | 58 - .../v/1.15.0/app/localization/moment/ar-sa.js | 103 - .../v/1.15.0/app/localization/moment/ar.js | 134 - .../v/1.15.0/app/localization/moment/az.js | 104 - .../v/1.15.0/app/localization/moment/bg.js | 89 - .../v/1.15.0/app/localization/moment/bm.js | 57 - .../v/1.15.0/app/localization/moment/bn.js | 118 - .../v/1.15.0/app/localization/moment/bo.js | 118 - .../v/1.15.0/app/localization/moment/br.js | 107 - .../v/1.15.0/app/localization/moment/ca.js | 87 - .../v/1.15.0/app/localization/moment/cv.js | 62 - .../v/1.15.0/app/localization/moment/da.js | 59 - .../v/1.15.0/app/localization/moment/de-at.js | 75 - .../v/1.15.0/app/localization/moment/de-ch.js | 75 - .../v/1.15.0/app/localization/moment/de.js | 75 - .../v/1.15.0/app/localization/moment/dv.js | 98 - .../v/1.15.0/app/localization/moment/el.js | 99 - .../v/1.15.0/app/localization/moment/en-SG.js | 66 - .../v/1.15.0/app/localization/moment/en-au.js | 66 - .../v/1.15.0/app/localization/moment/en-ca.js | 62 - .../v/1.15.0/app/localization/moment/en-gb.js | 66 - .../v/1.15.0/app/localization/moment/en-ie.js | 66 - .../v/1.15.0/app/localization/moment/en-il.js | 61 - .../v/1.15.0/app/localization/moment/en-nz.js | 66 - .../v/1.15.0/app/localization/moment/eo.js | 70 - .../v/1.15.0/app/localization/moment/es-do.js | 91 - .../v/1.15.0/app/localization/moment/es-us.js | 91 - .../v/1.15.0/app/localization/moment/es.js | 91 - .../v/1.15.0/app/localization/moment/et.js | 79 - .../v/1.15.0/app/localization/moment/eu.js | 65 - .../v/1.15.0/app/localization/moment/fa.js | 105 - .../v/1.15.0/app/localization/moment/fi.js | 108 - .../v/1.15.0/app/localization/moment/fo.js | 59 - .../v/1.15.0/app/localization/moment/fr-ca.js | 73 - .../v/1.15.0/app/localization/moment/fr-ch.js | 77 - .../v/1.15.0/app/localization/moment/fr.js | 82 - .../v/1.15.0/app/localization/moment/fy.js | 74 - .../v/1.15.0/app/localization/moment/gd.js | 75 - .../v/1.15.0/app/localization/moment/gl.js | 76 - .../app/localization/moment/gom-latn.js | 122 - .../v/1.15.0/app/localization/moment/he.js | 96 - .../v/1.15.0/app/localization/moment/hi.js | 123 - .../v/1.15.0/app/localization/moment/hu.js | 109 - .../v/1.15.0/app/localization/moment/id.js | 81 - .../v/1.15.0/app/localization/moment/it-ch.js | 68 - .../v/1.15.0/app/localization/moment/it.js | 68 - .../v/1.15.0/app/localization/moment/ja.js | 91 - .../v/1.15.0/app/localization/moment/jv.js | 81 - .../v/1.15.0/app/localization/moment/ka.js | 88 - .../v/1.15.0/app/localization/moment/kk.js | 86 - .../v/1.15.0/app/localization/moment/kn.js | 125 - .../v/1.15.0/app/localization/moment/ko.js | 80 - .../v/1.15.0/app/localization/moment/ku.js | 118 - .../v/1.15.0/app/localization/moment/ky.js | 86 - .../v/1.15.0/app/localization/moment/lo.js | 69 - .../v/1.15.0/app/localization/moment/lt.js | 117 - .../v/1.15.0/app/localization/moment/lv.js | 96 - .../v/1.15.0/app/localization/moment/mk.js | 89 - .../v/1.15.0/app/localization/moment/ml.js | 80 - .../v/1.15.0/app/localization/moment/mn.js | 103 - .../v/1.15.0/app/localization/moment/mr.js | 159 - .../v/1.15.0/app/localization/moment/ms-my.js | 81 - .../v/1.15.0/app/localization/moment/ms.js | 81 - .../v/1.15.0/app/localization/moment/mt.js | 59 - .../v/1.15.0/app/localization/moment/nb.js | 61 - .../v/1.15.0/app/localization/moment/ne.js | 122 - .../v/1.15.0/app/localization/moment/nl-be.js | 86 - .../v/1.15.0/app/localization/moment/nl.js | 86 - .../v/1.15.0/app/localization/moment/nn.js | 59 - .../v/1.15.0/app/localization/moment/pa-in.js | 123 - .../v/1.15.0/app/localization/moment/pt-br.js | 60 - .../v/1.15.0/app/localization/moment/pt.js | 64 - .../v/1.15.0/app/localization/moment/ro.js | 74 - .../v/1.15.0/app/localization/moment/sd.js | 97 - .../v/1.15.0/app/localization/moment/se.js | 59 - .../v/1.15.0/app/localization/moment/si.js | 70 - .../v/1.15.0/app/localization/moment/sq.js | 67 - .../v/1.15.0/app/localization/moment/ss.js | 87 - .../v/1.15.0/app/localization/moment/sv.js | 68 - .../v/1.15.0/app/localization/moment/sw.js | 58 - .../v/1.15.0/app/localization/moment/ta.js | 128 - .../v/1.15.0/app/localization/moment/te.js | 88 - .../v/1.15.0/app/localization/moment/tet.js | 66 - .../v/1.15.0/app/localization/moment/tg.js | 115 - .../v/1.15.0/app/localization/moment/th.js | 66 - .../v/1.15.0/app/localization/moment/tl-ph.js | 61 - .../v/1.15.0/app/localization/moment/tlh.js | 121 - .../v/1.15.0/app/localization/moment/tr.js | 93 - .../v/1.15.0/app/localization/moment/tzl.js | 90 - .../app/localization/moment/tzm-latn.js | 57 - .../v/1.15.0/app/localization/moment/tzm.js | 57 - .../v/1.15.0/app/localization/moment/uk.js | 153 - .../v/1.15.0/app/localization/moment/ur.js | 97 - .../1.15.0/app/localization/moment/uz-latn.js | 57 - .../v/1.15.0/app/localization/moment/uz.js | 57 - .../v/1.15.0/app/localization/moment/vi.js | 78 - .../app/localization/moment/x-pseudo.js | 67 - .../v/1.15.0/app/localization/moment/yo.js | 59 - .../v/1.15.0/app/localization/moment/zh-cn.js | 109 - .../v/1.15.0/app/localization/moment/zh-hk.js | 102 - .../v/1.15.0/app/localization/moment/zh-tw.js | 102 - app/rainloop/v/1.15.0/static/css/app.min.css | 7 - app/rainloop/v/1.15.0/static/js/admin.js | 22618 --------------- app/rainloop/v/1.15.0/static/js/boot.js | 8421 ------ .../v/1.15.0/static/js/min/admin.min.js | 1 - .../v/1.15.0/static/js/min/app.min.js | 1 - .../v/1.15.0/static/js/min/boot.min.js | 1 - .../v/1.15.0/static/js/min/libs.min.js | 1 - .../v/1.15.0/static/js/min/polyfills.min.js | 1 - app/rainloop/v/1.15.0/static/js/polyfills.js | 4469 --- .../app/domains/default.ini.dist | 0 .../v/{1.15.0 => 1.16.0}/app/domains/disabled | 0 .../app/domains/gmail.com.ini | 0 .../app/domains/outlook.com.ini | 0 .../{1.15.0 => 1.16.0}/app/domains/qq.com.ini | 0 .../app/domains/yahoo.com.ini | 0 .../v/{1.15.0 => 1.16.0}/app/handle.php | 0 .../Facebook/Authentication/AccessToken.php | 0 .../Authentication/AccessTokenMetadata.php | 0 .../Facebook/Authentication/OAuth2Client.php | 0 .../FacebookAuthenticationException.php | 0 .../FacebookAuthorizationException.php | 0 .../Exceptions/FacebookClientException.php | 0 .../Exceptions/FacebookOtherException.php | 0 .../Exceptions/FacebookResponseException.php | 0 .../Exceptions/FacebookSDKException.php | 0 .../Exceptions/FacebookServerException.php | 0 .../Exceptions/FacebookThrottleException.php | 0 .../app/libraries/Facebook/Facebook.php | 0 .../app/libraries/Facebook/FacebookApp.php | 0 .../Facebook/FacebookBatchRequest.php | 0 .../Facebook/FacebookBatchResponse.php | 0 .../app/libraries/Facebook/FacebookClient.php | 0 .../libraries/Facebook/FacebookRequest.php | 0 .../libraries/Facebook/FacebookResponse.php | 0 .../Facebook/FileUpload/FacebookFile.php | 0 .../Facebook/FileUpload/FacebookVideo.php | 0 .../Facebook/FileUpload/Mimetypes.php | 0 .../Facebook/GraphNodes/Collection.php | 0 .../Facebook/GraphNodes/GraphAchievement.php | 0 .../Facebook/GraphNodes/GraphAlbum.php | 0 .../Facebook/GraphNodes/GraphApplication.php | 0 .../Facebook/GraphNodes/GraphCoverPhoto.php | 0 .../Facebook/GraphNodes/GraphEdge.php | 0 .../Facebook/GraphNodes/GraphEvent.php | 0 .../Facebook/GraphNodes/GraphGroup.php | 0 .../Facebook/GraphNodes/GraphList.php | 0 .../Facebook/GraphNodes/GraphLocation.php | 0 .../Facebook/GraphNodes/GraphNode.php | 0 .../Facebook/GraphNodes/GraphNodeFactory.php | 0 .../Facebook/GraphNodes/GraphObject.php | 0 .../GraphNodes/GraphObjectFactory.php | 0 .../Facebook/GraphNodes/GraphPage.php | 0 .../Facebook/GraphNodes/GraphPicture.php | 0 .../Facebook/GraphNodes/GraphSessionInfo.php | 0 .../Facebook/GraphNodes/GraphUser.php | 0 .../Facebook/Helpers/FacebookCanvasHelper.php | 0 .../Helpers/FacebookJavaScriptHelper.php | 0 .../Helpers/FacebookPageTabHelper.php | 0 .../Helpers/FacebookRedirectLoginHelper.php | 0 .../FacebookSignedRequestFromInputHelper.php | 0 .../Facebook/Http/GraphRawResponse.php | 0 .../Facebook/Http/RequestBodyInterface.php | 0 .../Facebook/Http/RequestBodyMultipart.php | 0 .../Facebook/Http/RequestBodyUrlEncoded.php | 0 .../Facebook/HttpClients/FacebookCurl.php | 0 .../HttpClients/FacebookCurlHttpClient.php | 0 .../HttpClients/FacebookGuzzleHttpClient.php | 0 .../FacebookHttpClientInterface.php | 0 .../Facebook/HttpClients/FacebookStream.php | 0 .../HttpClients/FacebookStreamHttpClient.php | 0 .../certs/DigiCertHighAssuranceEVRootCA.pem | 0 .../FacebookMemoryPersistentDataHandler.php | 0 .../FacebookSessionPersistentDataHandler.php | 0 .../PersistentDataInterface.php | 0 .../McryptPseudoRandomStringGenerator.php | 0 .../OpenSslPseudoRandomStringGenerator.php | 0 .../PseudoRandomStringGeneratorInterface.php | 0 .../PseudoRandomStringGeneratorTrait.php | 0 .../UrandomPseudoRandomStringGenerator.php | 0 .../app/libraries/Facebook/SignedRequest.php | 0 .../Url/FacebookUrlDetectionHandler.php | 0 .../Facebook/Url/FacebookUrlManipulator.php | 0 .../Facebook/Url/UrlDetectionInterface.php | 0 .../app/libraries/Facebook/autoload.php | 0 .../Imagine/Draw/DrawerInterface.php | 0 .../Imagine/Effects/EffectsInterface.php | 0 .../libraries/Imagine/Exception/Exception.php | 0 .../Exception/InvalidArgumentException.php | 0 .../Exception/NotSupportedException.php | 0 .../Exception/OutOfBoundsException.php | 0 .../Imagine/Exception/RuntimeException.php | 0 .../Imagine/Filter/Advanced/Border.php | 0 .../Imagine/Filter/Advanced/Canvas.php | 0 .../Imagine/Filter/Advanced/Grayscale.php | 0 .../Imagine/Filter/Advanced/OnPixelBased.php | 0 .../Filter/Advanced/RelativeResize.php | 0 .../Imagine/Filter/Basic/ApplyMask.php | 0 .../Imagine/Filter/Basic/Autorotate.php | 0 .../libraries/Imagine/Filter/Basic/Copy.php | 0 .../libraries/Imagine/Filter/Basic/Crop.php | 0 .../libraries/Imagine/Filter/Basic/Fill.php | 0 .../Imagine/Filter/Basic/FlipHorizontally.php | 0 .../Imagine/Filter/Basic/FlipVertically.php | 0 .../libraries/Imagine/Filter/Basic/Paste.php | 0 .../libraries/Imagine/Filter/Basic/Resize.php | 0 .../libraries/Imagine/Filter/Basic/Rotate.php | 0 .../libraries/Imagine/Filter/Basic/Save.php | 0 .../libraries/Imagine/Filter/Basic/Show.php | 0 .../libraries/Imagine/Filter/Basic/Strip.php | 0 .../Imagine/Filter/Basic/Thumbnail.php | 0 .../Imagine/Filter/Basic/WebOptimization.php | 0 .../Imagine/Filter/FilterInterface.php | 0 .../libraries/Imagine/Filter/ImagineAware.php | 0 .../Imagine/Filter/Transformation.php | 0 .../app/libraries/Imagine/Gd/Drawer.php | 0 .../app/libraries/Imagine/Gd/Effects.php | 0 .../app/libraries/Imagine/Gd/Font.php | 0 .../app/libraries/Imagine/Gd/Image.php | 0 .../app/libraries/Imagine/Gd/Imagine.php | 0 .../app/libraries/Imagine/Gd/Layers.php | 0 .../app/libraries/Imagine/Gmagick/Drawer.php | 0 .../app/libraries/Imagine/Gmagick/Effects.php | 0 .../app/libraries/Imagine/Gmagick/Font.php | 0 .../app/libraries/Imagine/Gmagick/Image.php | 0 .../app/libraries/Imagine/Gmagick/Imagine.php | 0 .../app/libraries/Imagine/Gmagick/Layers.php | 0 .../libraries/Imagine/Image/AbstractFont.php | 0 .../libraries/Imagine/Image/AbstractImage.php | 0 .../Imagine/Image/AbstractImagine.php | 0 .../Imagine/Image/AbstractLayers.php | 0 .../app/libraries/Imagine/Image/Box.php | 0 .../libraries/Imagine/Image/BoxInterface.php | 0 .../Imagine/Image/Fill/FillInterface.php | 0 .../Image/Fill/Gradient/Horizontal.php | 0 .../Imagine/Image/Fill/Gradient/Linear.php | 0 .../Imagine/Image/Fill/Gradient/Vertical.php | 0 .../libraries/Imagine/Image/FontInterface.php | 0 .../Imagine/Image/Histogram/Bucket.php | 0 .../Imagine/Image/Histogram/Range.php | 0 .../Imagine/Image/ImageInterface.php | 0 .../Imagine/Image/ImagineInterface.php | 0 .../Imagine/Image/LayersInterface.php | 0 .../Imagine/Image/ManipulatorInterface.php | 0 .../Image/Metadata/AbstractMetadataReader.php | 0 .../Image/Metadata/DefaultMetadataReader.php | 0 .../Image/Metadata/ExifMetadataReader.php | 0 .../Imagine/Image/Metadata/MetadataBag.php | 0 .../Metadata/MetadataReaderInterface.php | 0 .../libraries/Imagine/Image/Palette/CMYK.php | 0 .../Imagine/Image/Palette/Color/CMYK.php | 0 .../Image/Palette/Color/ColorInterface.php | 0 .../Imagine/Image/Palette/Color/Gray.php | 0 .../Imagine/Image/Palette/Color/RGB.php | 0 .../Imagine/Image/Palette/ColorParser.php | 0 .../Imagine/Image/Palette/Grayscale.php | 0 .../Image/Palette/PaletteInterface.php | 0 .../libraries/Imagine/Image/Palette/RGB.php | 0 .../app/libraries/Imagine/Image/Point.php | 0 .../libraries/Imagine/Image/Point/Center.php | 0 .../Imagine/Image/PointInterface.php | 0 .../app/libraries/Imagine/Image/Profile.php | 0 .../Imagine/Image/ProfileInterface.php | 0 .../app/libraries/Imagine/Imagick/Drawer.php | 0 .../app/libraries/Imagine/Imagick/Effects.php | 0 .../app/libraries/Imagine/Imagick/Font.php | 0 .../app/libraries/Imagine/Imagick/Image.php | 0 .../app/libraries/Imagine/Imagick/Imagine.php | 0 .../app/libraries/Imagine/Imagick/Layers.php | 0 .../app/libraries/MailSo/Base/Collection.php | 0 .../app/libraries/MailSo/Base/Crypt.php | 0 .../libraries/MailSo/Base/DateTimeHelper.php | 0 .../MailSo/Base/Enumerations/Charset.php | 0 .../MailSo/Base/Enumerations/Encoding.php | 0 .../MailSo/Base/Exceptions/Exception.php | 0 .../Exceptions/InvalidArgumentException.php | 0 .../app/libraries/MailSo/Base/HtmlUtils.php | 0 .../app/libraries/MailSo/Base/Http.php | 0 .../app/libraries/MailSo/Base/LinkFinder.php | 0 .../app/libraries/MailSo/Base/Loader.php | 0 .../MailSo/Base/ResourceRegistry.php | 0 .../MailSo/Base/StreamWrappers/Binary.php | 0 .../MailSo/Base/StreamWrappers/Literal.php | 0 .../MailSo/Base/StreamWrappers/SubStreams.php | 2 +- .../MailSo/Base/StreamWrappers/TempFile.php | 0 .../MailSo/Base/StreamWrappers/Test.php | 0 .../app/libraries/MailSo/Base/Utils.php | 0 .../app/libraries/MailSo/Base/Validator.php | 0 .../libraries/MailSo/Cache/CacheClient.php | 0 .../MailSo/Cache/DriverInterface.php | 0 .../libraries/MailSo/Cache/Drivers/APC.php | 0 .../libraries/MailSo/Cache/Drivers/File.php | 0 .../MailSo/Cache/Drivers/Memcache.php | 0 .../libraries/MailSo/Cache/Drivers/Redis.php | 0 .../app/libraries/MailSo/Config.php | 0 .../app/libraries/MailSo/Hooks.php | 0 .../libraries/MailSo/Imap/BodyStructure.php | 0 .../MailSo/Imap/Enumerations/FetchType.php | 0 .../Enumerations/FolderResponseStatus.php | 0 .../MailSo/Imap/Enumerations/FolderStatus.php | 0 .../MailSo/Imap/Enumerations/FolderType.php | 0 .../MailSo/Imap/Enumerations/MessageFlag.php | 0 .../Imap/Enumerations/ResponseStatus.php | 0 .../MailSo/Imap/Enumerations/ResponseType.php | 0 .../MailSo/Imap/Enumerations/StoreAction.php | 0 .../MailSo/Imap/Exceptions/Exception.php | 0 .../Exceptions/InvalidResponseException.php | 0 .../LoginBadCredentialsException.php | 0 .../Exceptions/LoginBadMethodException.php | 0 .../MailSo/Imap/Exceptions/LoginException.php | 0 .../Exceptions/NegativeResponseException.php | 0 .../Imap/Exceptions/ResponseException.php | 0 .../Exceptions/ResponseNotFoundException.php | 0 .../Imap/Exceptions/RuntimeException.php | 0 .../libraries/MailSo/Imap/FetchResponse.php | 0 .../app/libraries/MailSo/Imap/Folder.php | 0 .../MailSo/Imap/FolderInformation.php | 0 .../app/libraries/MailSo/Imap/ImapClient.php | 126 +- .../libraries/MailSo/Imap/NamespaceResult.php | 0 .../app/libraries/MailSo/Imap/Response.php | 0 .../app/libraries/MailSo/LICENSE | 0 .../app/libraries/MailSo/Log/Driver.php | 0 .../libraries/MailSo/Log/Drivers/Callback.php | 0 .../app/libraries/MailSo/Log/Drivers/File.php | 0 .../libraries/MailSo/Log/Drivers/Inline.php | 0 .../libraries/MailSo/Log/Drivers/Syslog.php | 0 .../MailSo/Log/Enumerations/Type.php | 0 .../app/libraries/MailSo/Log/Logger.php | 0 .../app/libraries/MailSo/Mail/Attachment.php | 0 .../MailSo/Mail/AttachmentCollection.php | 0 .../MailSo/Mail/Exceptions/Exception.php | 0 .../MailSo/Mail/Exceptions/NonEmptyFolder.php | 0 .../Mail/Exceptions/RuntimeException.php | 0 .../app/libraries/MailSo/Mail/Folder.php | 0 .../MailSo/Mail/FolderCollection.php | 0 .../app/libraries/MailSo/Mail/MailClient.php | 0 .../app/libraries/MailSo/Mail/Message.php | 0 .../MailSo/Mail/MessageCollection.php | 0 .../app/libraries/MailSo/MailSo.php | 0 .../app/libraries/MailSo/Mime/Attachment.php | 0 .../MailSo/Mime/AttachmentCollection.php | 0 .../app/libraries/MailSo/Mime/Email.php | 0 .../libraries/MailSo/Mime/EmailCollection.php | 0 .../app/libraries/MailSo/Mime/EmailDep.php | 0 .../MailSo/Mime/Enumerations/Constants.php | 0 .../MailSo/Mime/Enumerations/DkimStatus.php | 0 .../MailSo/Mime/Enumerations/Header.php | 0 .../Mime/Enumerations/MessagePriority.php | 0 .../MailSo/Mime/Enumerations/MimeType.php | 0 .../MailSo/Mime/Enumerations/Parameter.php | 0 .../MailSo/Mime/Enumerations/Sensitivity.php | 0 .../app/libraries/MailSo/Mime/Header.php | 0 .../MailSo/Mime/HeaderCollection.php | 0 .../app/libraries/MailSo/Mime/Message.php | 0 .../app/libraries/MailSo/Mime/Parameter.php | 0 .../MailSo/Mime/ParameterCollection.php | 0 .../MailSo/Mime/Parser/ParserEmpty.php | 0 .../MailSo/Mime/Parser/ParserInterface.php | 0 .../MailSo/Mime/Parser/ParserMemory.php | 0 .../app/libraries/MailSo/Mime/Part.php | 0 .../libraries/MailSo/Mime/PartCollection.php | 0 .../Enumerations/ConnectionSecurityType.php | 0 .../Net/Exceptions/ConnectionException.php | 0 .../MailSo/Net/Exceptions/Exception.php | 0 .../Exceptions/InvalidArgumentException.php | 0 .../SocketAlreadyConnectedException.php | 0 .../SocketCanNotConnectToHostException.php | 0 ...ketConnectionDoesNotAvailableException.php | 0 .../Net/Exceptions/SocketReadException.php | 0 .../Exceptions/SocketReadTimeoutException.php | 0 .../SocketUnreadBufferException.php | 0 ...etUnsuppoterdSecureConnectionException.php | 0 .../Net/Exceptions/SocketWriteException.php | 0 .../app/libraries/MailSo/Net/NetClient.php | 0 .../MailSo/Pop3/Exceptions/Exception.php | 0 .../LoginBadCredentialsException.php | 0 .../Exceptions/NegativeResponseException.php | 0 .../Pop3/Exceptions/ResponseException.php | 0 .../Pop3/Exceptions/RuntimeException.php | 0 .../app/libraries/MailSo/Pop3/Pop3Client.php | 2 +- .../MailSo/Poppassd/Exceptions/Exception.php | 0 .../LoginBadCredentialsException.php | 0 .../Exceptions/NegativeResponseException.php | 0 .../Poppassd/Exceptions/ResponseException.php | 0 .../Poppassd/Exceptions/RuntimeException.php | 0 .../MailSo/Poppassd/PoppassdClient.php | 0 .../MailSo/Sieve/Exceptions/Exception.php | 0 .../LoginBadCredentialsException.php | 0 .../Exceptions/LoginBadMethodException.php | 0 .../Sieve/Exceptions/LoginException.php | 0 .../Exceptions/NegativeResponseException.php | 0 .../Sieve/Exceptions/ResponseException.php | 0 .../Sieve/Exceptions/RuntimeException.php | 0 .../MailSo/Sieve/ManageSieveClient.php | 2 +- .../MailSo/Smtp/Exceptions/Exception.php | 0 .../LoginBadCredentialsException.php | 0 .../Exceptions/LoginBadMethodException.php | 0 .../MailSo/Smtp/Exceptions/LoginException.php | 0 .../Exceptions/NegativeResponseException.php | 0 .../Smtp/Exceptions/ResponseException.php | 0 .../Smtp/Exceptions/RuntimeException.php | 0 .../app/libraries/MailSo/Smtp/SmtpClient.php | 0 .../libraries/MailSo/Vendors/Net/IDNA2.php | 0 .../Vendors/Net/IDNA2CustomExceptions.php | 0 .../app/libraries/MailSo/Version.php | 0 .../app/libraries/Mobile_Detect/LICENSE.txt | 0 .../Mobile_Detect/Mobile_Detect.json | 0 .../libraries/Mobile_Detect/Mobile_Detect.php | 0 .../app/libraries/Mobile_Detect/README.md | 0 .../app/libraries/Mobile_Detect/composer.json | 0 .../namespaced/Detection/MobileDetect.php | 0 .../app/libraries/Mobile_Detect/ruleset.xml | 0 .../app/libraries/PHP-OAuth2/Client.php | 0 .../GrantType/AuthorizationCode.php | 0 .../GrantType/ClientCredentials.php | 0 .../PHP-OAuth2/GrantType/IGrantType.php | 0 .../PHP-OAuth2/GrantType/Password.php | 0 .../PHP-OAuth2/GrantType/RefreshToken.php | 0 .../app/libraries/PHP-OAuth2/README | 0 .../PHPGangsta/GoogleAuthenticator.php | 0 .../app/libraries/PHPThumb/GD.php | 0 .../app/libraries/PHPThumb/PHPThumb.php | 0 .../libraries/PHPThumb/PluginInterface.php | 0 .../libraries/PHPThumb/Plugins/Reflection.php | 0 .../app/libraries/Predis/Autoloader.php | 0 .../app/libraries/Predis/Client.php | 0 .../Predis/ClientContextInterface.php | 0 .../app/libraries/Predis/ClientException.php | 0 .../app/libraries/Predis/ClientInterface.php | 0 .../Predis/Cluster/ClusterStrategy.php | 0 .../Distributor/DistributorInterface.php | 0 .../Distributor/EmptyRingException.php | 0 .../Predis/Cluster/Distributor/HashRing.php | 0 .../Predis/Cluster/Distributor/KetamaRing.php | 0 .../libraries/Predis/Cluster/Hash/CRC16.php | 0 .../Cluster/Hash/HashGeneratorInterface.php | 0 .../Predis/Cluster/PredisStrategy.php | 0 .../Predis/Cluster/RedisStrategy.php | 0 .../Predis/Cluster/StrategyInterface.php | 0 .../Iterator/CursorBasedIterator.php | 0 .../Predis/Collection/Iterator/HashKey.php | 0 .../Predis/Collection/Iterator/Keyspace.php | 0 .../Predis/Collection/Iterator/ListKey.php | 0 .../Predis/Collection/Iterator/SetKey.php | 0 .../Collection/Iterator/SortedSetKey.php | 0 .../app/libraries/Predis/Command/Command.php | 0 .../Predis/Command/CommandInterface.php | 0 .../Predis/Command/ConnectionAuth.php | 0 .../Predis/Command/ConnectionEcho.php | 0 .../Predis/Command/ConnectionPing.php | 0 .../Predis/Command/ConnectionQuit.php | 0 .../Predis/Command/ConnectionSelect.php | 0 .../libraries/Predis/Command/HashDelete.php | 0 .../libraries/Predis/Command/HashExists.php | 0 .../app/libraries/Predis/Command/HashGet.php | 0 .../libraries/Predis/Command/HashGetAll.php | 0 .../Predis/Command/HashGetMultiple.php | 0 .../Predis/Command/HashIncrementBy.php | 0 .../Predis/Command/HashIncrementByFloat.php | 0 .../app/libraries/Predis/Command/HashKeys.php | 0 .../libraries/Predis/Command/HashLength.php | 0 .../app/libraries/Predis/Command/HashScan.php | 0 .../app/libraries/Predis/Command/HashSet.php | 0 .../Predis/Command/HashSetMultiple.php | 0 .../Predis/Command/HashSetPreserve.php | 0 .../Predis/Command/HashStringLength.php | 0 .../libraries/Predis/Command/HashValues.php | 0 .../Predis/Command/HyperLogLogAdd.php | 0 .../Predis/Command/HyperLogLogCount.php | 0 .../Predis/Command/HyperLogLogMerge.php | 0 .../libraries/Predis/Command/KeyDelete.php | 0 .../app/libraries/Predis/Command/KeyDump.php | 0 .../libraries/Predis/Command/KeyExists.php | 0 .../libraries/Predis/Command/KeyExpire.php | 0 .../libraries/Predis/Command/KeyExpireAt.php | 0 .../app/libraries/Predis/Command/KeyKeys.php | 0 .../libraries/Predis/Command/KeyMigrate.php | 0 .../app/libraries/Predis/Command/KeyMove.php | 0 .../libraries/Predis/Command/KeyPersist.php | 0 .../Predis/Command/KeyPreciseExpire.php | 0 .../Predis/Command/KeyPreciseExpireAt.php | 0 .../Predis/Command/KeyPreciseTimeToLive.php | 0 .../libraries/Predis/Command/KeyRandom.php | 0 .../libraries/Predis/Command/KeyRename.php | 0 .../Predis/Command/KeyRenamePreserve.php | 0 .../libraries/Predis/Command/KeyRestore.php | 0 .../app/libraries/Predis/Command/KeyScan.php | 0 .../app/libraries/Predis/Command/KeySort.php | 0 .../Predis/Command/KeyTimeToLive.php | 0 .../app/libraries/Predis/Command/KeyType.php | 0 .../libraries/Predis/Command/ListIndex.php | 0 .../libraries/Predis/Command/ListInsert.php | 0 .../libraries/Predis/Command/ListLength.php | 0 .../libraries/Predis/Command/ListPopFirst.php | 0 .../Predis/Command/ListPopFirstBlocking.php | 0 .../libraries/Predis/Command/ListPopLast.php | 0 .../Predis/Command/ListPopLastBlocking.php | 0 .../Predis/Command/ListPopLastPushHead.php | 0 .../Command/ListPopLastPushHeadBlocking.php | 0 .../libraries/Predis/Command/ListPushHead.php | 0 .../Predis/Command/ListPushHeadX.php | 0 .../libraries/Predis/Command/ListPushTail.php | 0 .../Predis/Command/ListPushTailX.php | 0 .../libraries/Predis/Command/ListRange.php | 0 .../libraries/Predis/Command/ListRemove.php | 0 .../app/libraries/Predis/Command/ListSet.php | 0 .../app/libraries/Predis/Command/ListTrim.php | 0 .../Command/PrefixableCommandInterface.php | 0 .../Command/Processor/KeyPrefixProcessor.php | 0 .../Command/Processor/ProcessorChain.php | 0 .../Command/Processor/ProcessorInterface.php | 0 .../Predis/Command/PubSubPublish.php | 0 .../libraries/Predis/Command/PubSubPubsub.php | 0 .../Predis/Command/PubSubSubscribe.php | 0 .../Command/PubSubSubscribeByPattern.php | 0 .../Predis/Command/PubSubUnsubscribe.php | 0 .../Command/PubSubUnsubscribeByPattern.php | 0 .../libraries/Predis/Command/RawCommand.php | 0 .../Predis/Command/ScriptCommand.php | 0 .../Command/ServerBackgroundRewriteAOF.php | 0 .../Predis/Command/ServerBackgroundSave.php | 0 .../libraries/Predis/Command/ServerClient.php | 0 .../Predis/Command/ServerCommand.php | 0 .../libraries/Predis/Command/ServerConfig.php | 0 .../Predis/Command/ServerDatabaseSize.php | 0 .../libraries/Predis/Command/ServerEval.php | 0 .../Predis/Command/ServerEvalSHA.php | 0 .../Predis/Command/ServerFlushAll.php | 0 .../Predis/Command/ServerFlushDatabase.php | 0 .../libraries/Predis/Command/ServerInfo.php | 0 .../Predis/Command/ServerInfoV26x.php | 0 .../Predis/Command/ServerLastSave.php | 0 .../Predis/Command/ServerMonitor.php | 0 .../libraries/Predis/Command/ServerObject.php | 0 .../libraries/Predis/Command/ServerSave.php | 0 .../libraries/Predis/Command/ServerScript.php | 0 .../Predis/Command/ServerSentinel.php | 0 .../Predis/Command/ServerShutdown.php | 0 .../Predis/Command/ServerSlaveOf.php | 0 .../Predis/Command/ServerSlowlog.php | 0 .../libraries/Predis/Command/ServerTime.php | 0 .../app/libraries/Predis/Command/SetAdd.php | 0 .../Predis/Command/SetCardinality.php | 0 .../Predis/Command/SetDifference.php | 0 .../Predis/Command/SetDifferenceStore.php | 0 .../Predis/Command/SetIntersection.php | 0 .../Predis/Command/SetIntersectionStore.php | 0 .../libraries/Predis/Command/SetIsMember.php | 0 .../libraries/Predis/Command/SetMembers.php | 0 .../app/libraries/Predis/Command/SetMove.php | 0 .../app/libraries/Predis/Command/SetPop.php | 0 .../Predis/Command/SetRandomMember.php | 0 .../libraries/Predis/Command/SetRemove.php | 0 .../app/libraries/Predis/Command/SetScan.php | 0 .../app/libraries/Predis/Command/SetUnion.php | 0 .../Predis/Command/SetUnionStore.php | 0 .../libraries/Predis/Command/StringAppend.php | 0 .../Predis/Command/StringBitCount.php | 0 .../libraries/Predis/Command/StringBitOp.php | 0 .../libraries/Predis/Command/StringBitPos.php | 0 .../Predis/Command/StringDecrement.php | 0 .../Predis/Command/StringDecrementBy.php | 0 .../libraries/Predis/Command/StringGet.php | 0 .../libraries/Predis/Command/StringGetBit.php | 0 .../Predis/Command/StringGetMultiple.php | 0 .../Predis/Command/StringGetRange.php | 0 .../libraries/Predis/Command/StringGetSet.php | 0 .../Predis/Command/StringIncrement.php | 0 .../Predis/Command/StringIncrementBy.php | 0 .../Predis/Command/StringIncrementByFloat.php | 0 .../Predis/Command/StringPreciseSetExpire.php | 0 .../libraries/Predis/Command/StringSet.php | 0 .../libraries/Predis/Command/StringSetBit.php | 0 .../Predis/Command/StringSetExpire.php | 0 .../Predis/Command/StringSetMultiple.php | 0 .../Command/StringSetMultiplePreserve.php | 0 .../Predis/Command/StringSetPreserve.php | 0 .../Predis/Command/StringSetRange.php | 0 .../libraries/Predis/Command/StringStrlen.php | 0 .../libraries/Predis/Command/StringSubstr.php | 0 .../Predis/Command/TransactionDiscard.php | 0 .../Predis/Command/TransactionExec.php | 0 .../Predis/Command/TransactionMulti.php | 0 .../Predis/Command/TransactionUnwatch.php | 0 .../Predis/Command/TransactionWatch.php | 0 .../app/libraries/Predis/Command/ZSetAdd.php | 0 .../Predis/Command/ZSetCardinality.php | 0 .../libraries/Predis/Command/ZSetCount.php | 0 .../Predis/Command/ZSetIncrementBy.php | 0 .../Predis/Command/ZSetIntersectionStore.php | 0 .../libraries/Predis/Command/ZSetLexCount.php | 0 .../libraries/Predis/Command/ZSetRange.php | 0 .../Predis/Command/ZSetRangeByLex.php | 0 .../Predis/Command/ZSetRangeByScore.php | 0 .../app/libraries/Predis/Command/ZSetRank.php | 0 .../libraries/Predis/Command/ZSetRemove.php | 0 .../Predis/Command/ZSetRemoveRangeByLex.php | 0 .../Predis/Command/ZSetRemoveRangeByRank.php | 0 .../Predis/Command/ZSetRemoveRangeByScore.php | 0 .../Predis/Command/ZSetReverseRange.php | 0 .../Predis/Command/ZSetReverseRangeByLex.php | 0 .../Command/ZSetReverseRangeByScore.php | 0 .../Predis/Command/ZSetReverseRank.php | 0 .../app/libraries/Predis/Command/ZSetScan.php | 0 .../libraries/Predis/Command/ZSetScore.php | 0 .../Predis/Command/ZSetUnionStore.php | 0 .../Predis/CommunicationException.php | 0 .../Predis/Configuration/ClusterOption.php | 0 .../Configuration/ConnectionFactoryOption.php | 0 .../Predis/Configuration/ExceptionsOption.php | 0 .../Predis/Configuration/OptionInterface.php | 0 .../Predis/Configuration/Options.php | 0 .../Predis/Configuration/OptionsInterface.php | 0 .../Predis/Configuration/PrefixOption.php | 0 .../Predis/Configuration/ProfileOption.php | 0 .../Configuration/ReplicationOption.php | 0 .../Predis/Connection/AbstractConnection.php | 0 .../Connection/Aggregate/ClusterInterface.php | 0 .../Aggregate/MasterSlaveReplication.php | 0 .../Connection/Aggregate/PredisCluster.php | 0 .../Connection/Aggregate/RedisCluster.php | 0 .../Aggregate/ReplicationInterface.php | 0 .../AggregateConnectionInterface.php | 0 .../CompositeConnectionInterface.php | 0 .../Connection/CompositeStreamConnection.php | 0 .../Predis/Connection/ConnectionException.php | 0 .../Predis/Connection/ConnectionInterface.php | 0 .../libraries/Predis/Connection/Factory.php | 0 .../Predis/Connection/FactoryInterface.php | 0 .../Connection/NodeConnectionInterface.php | 0 .../Predis/Connection/Parameters.php | 0 .../Predis/Connection/ParametersInterface.php | 0 .../Connection/PhpiredisSocketConnection.php | 0 .../Connection/PhpiredisStreamConnection.php | 0 .../Predis/Connection/StreamConnection.php | 0 .../Predis/Connection/WebdisConnection.php | 0 .../app/libraries/Predis/Monitor/Consumer.php | 0 .../Predis/NotSupportedException.php | 0 .../app/libraries/Predis/Pipeline/Atomic.php | 0 .../Predis/Pipeline/ConnectionErrorProof.php | 0 .../Predis/Pipeline/FireAndForget.php | 0 .../libraries/Predis/Pipeline/Pipeline.php | 0 .../app/libraries/Predis/PredisException.php | 0 .../app/libraries/Predis/Profile/Factory.php | 0 .../Predis/Profile/ProfileInterface.php | 0 .../libraries/Predis/Profile/RedisProfile.php | 0 .../Predis/Profile/RedisUnstable.php | 0 .../Predis/Profile/RedisVersion200.php | 0 .../Predis/Profile/RedisVersion220.php | 0 .../Predis/Profile/RedisVersion240.php | 0 .../Predis/Profile/RedisVersion260.php | 0 .../Predis/Profile/RedisVersion280.php | 0 .../Predis/Profile/RedisVersion300.php | 0 .../Predis/Protocol/ProtocolException.php | 0 .../Protocol/ProtocolProcessorInterface.php | 0 .../Protocol/RequestSerializerInterface.php | 0 .../Protocol/ResponseReaderInterface.php | 0 .../Text/CompositeProtocolProcessor.php | 0 .../Protocol/Text/Handler/BulkResponse.php | 0 .../Protocol/Text/Handler/ErrorResponse.php | 0 .../Protocol/Text/Handler/IntegerResponse.php | 0 .../Text/Handler/MultiBulkResponse.php | 0 .../Text/Handler/ResponseHandlerInterface.php | 0 .../Protocol/Text/Handler/StatusResponse.php | 0 .../Handler/StreamableMultiBulkResponse.php | 0 .../Protocol/Text/ProtocolProcessor.php | 0 .../Protocol/Text/RequestSerializer.php | 0 .../Predis/Protocol/Text/ResponseReader.php | 0 .../Predis/PubSub/AbstractConsumer.php | 0 .../app/libraries/Predis/PubSub/Consumer.php | 0 .../Predis/PubSub/DispatcherLoop.php | 0 .../Replication/ReplicationStrategy.php | 0 .../app/libraries/Predis/Response/Error.php | 0 .../Predis/Response/ErrorInterface.php | 0 .../Predis/Response/Iterator/MultiBulk.php | 0 .../Response/Iterator/MultiBulkIterator.php | 0 .../Response/Iterator/MultiBulkTuple.php | 0 .../Predis/Response/ResponseInterface.php | 0 .../Predis/Response/ServerException.php | 0 .../app/libraries/Predis/Response/Status.php | 0 .../app/libraries/Predis/Session/Handler.php | 0 .../Transaction/AbortedMultiExecException.php | 0 .../Predis/Transaction/MultiExec.php | 0 .../Predis/Transaction/MultiExecState.php | 0 .../app/libraries/RainLoop/Actions.php | 104 +- .../app/libraries/RainLoop/Api.php | 2 +- .../Common/BackwardCapability/Account.php | 0 .../FacebookRainLoopPersistentDataHandler.php | 0 .../libraries/RainLoop/Common/MbStringFix.php | 0 .../libraries/RainLoop/Common/PdoAbstract.php | 4 +- .../RainLoopFacebookRedirectLoginHelper.php | 0 .../RainLoop/Config/AbstractConfig.php | 2 +- .../libraries/RainLoop/Config/Application.php | 0 .../app/libraries/RainLoop/Config/Plugin.php | 0 .../libraries/RainLoop/Enumerations/Capa.php | 0 .../RainLoop/Enumerations/Layout.php | 0 .../Enumerations/PluginPropertyType.php | 0 .../RainLoop/Enumerations/SignMeType.php | 0 .../RainLoop/Enumerations/TimeFormat.php | 0 .../Enumerations/UploadClientError.php | 0 .../RainLoop/Enumerations/UploadError.php | 0 .../RainLoop/Exceptions/ClientException.php | 0 .../RainLoop/Exceptions/Exception.php | 0 .../Exceptions/InvalidArgumentException.php | 0 .../RainLoop/Exceptions/RuntimeException.php | 0 .../app/libraries/RainLoop/KeyPathHelper.php | 0 .../app/libraries/RainLoop/Model/Account.php | 0 .../app/libraries/RainLoop/Model/Domain.php | 0 .../app/libraries/RainLoop/Model/Identity.php | 0 .../app/libraries/RainLoop/Model/Template.php | 0 .../app/libraries/RainLoop/Notifications.php | 0 .../RainLoop/Plugins/AbstractPlugin.php | 0 .../app/libraries/RainLoop/Plugins/Helper.php | 0 .../libraries/RainLoop/Plugins/Manager.php | 0 .../libraries/RainLoop/Plugins/Property.php | 0 .../RainLoop/Providers/AbstractProvider.php | 0 .../RainLoop/Providers/AddressBook.php | 0 .../AddressBook/AddressBookInterface.php | 0 .../Providers/AddressBook/Classes/Contact.php | 0 .../AddressBook/Classes/Property.php | 0 .../Providers/AddressBook/Classes/Tag.php | 0 .../AddressBook/Enumerations/PropertyType.php | 0 .../Providers/AddressBook/PdoAddressBook.php | 7 +- .../RainLoop/Providers/ChangePassword.php | 0 .../ChangePasswordInterface.php | 0 .../libraries/RainLoop/Providers/Domain.php | 0 .../Providers/Domain/DefaultDomain.php | 0 .../Providers/Domain/DomainAdminInterface.php | 0 .../Providers/Domain/DomainInterface.php | 0 .../libraries/RainLoop/Providers/Files.php | 0 .../RainLoop/Providers/Files/FileStorage.php | 0 .../RainLoop/Providers/Files/IFiles.php | 0 .../libraries/RainLoop/Providers/Filters.php | 0 .../Providers/Filters/Classes/Filter.php | 0 .../Filters/Classes/FilterCondition.php | 0 .../Filters/Enumerations/ActionType.php | 0 .../Filters/Enumerations/ConditionField.php | 0 .../Filters/Enumerations/ConditionType.php | 0 .../Filters/Enumerations/ConditionsType.php | 0 .../Providers/Filters/FiltersInterface.php | 0 .../Providers/Filters/SieveStorage.php | 0 .../libraries/RainLoop/Providers/Settings.php | 0 .../Providers/Settings/DefaultSettings.php | 0 .../RainLoop/Providers/Settings/ISettings.php | 0 .../libraries/RainLoop/Providers/Storage.php | 0 .../Storage/Enumerations/StorageType.php | 0 .../Providers/Storage/FileStorage.php | 0 .../RainLoop/Providers/Storage/IStorage.php | 0 .../Providers/Storage/TemproryApcStorage.php | 0 .../RainLoop/Providers/Suggestions.php | 0 .../Providers/Suggestions/ISuggestions.php | 0 .../Suggestions/OwnCloudSuggestions.php | 0 .../Providers/Suggestions/TestSuggestions.php | 0 .../RainLoop/Providers/TwoFactorAuth.php | 0 .../TwoFactorAuth/AbstractTwoFactorAuth.php | 0 .../TwoFactorAuth/GoogleTwoFactorAuth.php | 0 .../TwoFactorAuth/TwoFactorAuthInterface.php | 0 .../app/libraries/RainLoop/Service.php | 1 + .../app/libraries/RainLoop/ServiceActions.php | 2 +- .../app/libraries/RainLoop/Settings.php | 0 .../app/libraries/RainLoop/Social.php | 0 .../app/libraries/RainLoop/Utils.php | 2 +- .../CalDAV/Backend/AbstractBackend.php | 0 .../CalDAV/Backend/BackendInterface.php | 0 .../CalDAV/Backend/NotificationSupport.php | 0 .../SabreForRainLoop/CalDAV/Backend/PDO.php | 0 .../CalDAV/Backend/SharingSupport.php | 0 .../SabreForRainLoop/CalDAV/Calendar.php | 0 .../CalDAV/CalendarObject.php | 0 .../CalDAV/CalendarQueryParser.php | 0 .../CalDAV/CalendarQueryValidator.php | 0 .../CalDAV/CalendarRootNode.php | 0 .../CalDAV/Exception/InvalidComponentType.php | 0 .../CalDAV/ICSExportPlugin.php | 0 .../SabreForRainLoop/CalDAV/ICalendar.php | 0 .../CalDAV/ICalendarObject.php | 0 .../CalDAV/IShareableCalendar.php | 0 .../CalDAV/ISharedCalendar.php | 0 .../CalDAV/Notifications/Collection.php | 0 .../CalDAV/Notifications/ICollection.php | 0 .../CalDAV/Notifications/INode.php | 0 .../Notifications/INotificationType.php | 0 .../CalDAV/Notifications/Node.php | 0 .../Notifications/Notification/Invite.php | 0 .../Notification/InviteReply.php | 0 .../Notification/SystemStatus.php | 0 .../SabreForRainLoop/CalDAV/Plugin.php | 0 .../CalDAV/Principal/Collection.php | 0 .../CalDAV/Principal/IProxyRead.php | 0 .../CalDAV/Principal/IProxyWrite.php | 0 .../CalDAV/Principal/ProxyRead.php | 0 .../CalDAV/Principal/ProxyWrite.php | 0 .../CalDAV/Principal/User.php | 0 .../CalDAV/Property/AllowedSharingModes.php | 0 .../CalDAV/Property/Invite.php | 0 .../Property/ScheduleCalendarTransp.php | 0 .../SupportedCalendarComponentSet.php | 0 .../CalDAV/Property/SupportedCalendarData.php | 0 .../CalDAV/Property/SupportedCollationSet.php | 0 .../SabreForRainLoop/CalDAV/Schedule/IMip.php | 0 .../CalDAV/Schedule/IOutbox.php | 0 .../CalDAV/Schedule/Outbox.php | 0 .../CalDAV/ShareableCalendar.php | 0 .../CalDAV/SharedCalendar.php | 0 .../SabreForRainLoop/CalDAV/SharingPlugin.php | 0 .../SabreForRainLoop/CalDAV/UserCalendars.php | 0 .../SabreForRainLoop/CalDAV/Version.php | 0 .../SabreForRainLoop/CardDAV/AddressBook.php | 0 .../CardDAV/AddressBookQueryParser.php | 0 .../CardDAV/AddressBookRoot.php | 0 .../CardDAV/Backend/AbstractBackend.php | 0 .../CardDAV/Backend/BackendInterface.php | 0 .../SabreForRainLoop/CardDAV/Backend/PDO.php | 0 .../SabreForRainLoop/CardDAV/Card.php | 0 .../SabreForRainLoop/CardDAV/IAddressBook.php | 0 .../SabreForRainLoop/CardDAV/ICard.php | 0 .../SabreForRainLoop/CardDAV/IDirectory.php | 0 .../SabreForRainLoop/CardDAV/Plugin.php | 0 .../CardDAV/Property/SupportedAddressData.php | 0 .../CardDAV/UserAddressBooks.php | 0 .../CardDAV/VCFExportPlugin.php | 0 .../SabreForRainLoop/CardDAV/Version.php | 0 .../DAV/Auth/Backend/AbstractBasic.php | 0 .../DAV/Auth/Backend/AbstractDigest.php | 0 .../DAV/Auth/Backend/Apache.php | 0 .../DAV/Auth/Backend/BackendInterface.php | 0 .../DAV/Auth/Backend/File.php | 0 .../SabreForRainLoop/DAV/Auth/Backend/PDO.php | 0 .../SabreForRainLoop/DAV/Auth/Plugin.php | 0 .../DAV/Browser/GuessContentType.php | 0 .../DAV/Browser/MapGetToPropFind.php | 0 .../SabreForRainLoop/DAV/Browser/Plugin.php | 0 .../DAV/Browser/assets/favicon.ico | Bin .../DAV/Browser/assets/icons/addressbook.png | Bin .../DAV/Browser/assets/icons/calendar.png | Bin .../DAV/Browser/assets/icons/card.png | Bin .../DAV/Browser/assets/icons/collection.png | Bin .../DAV/Browser/assets/icons/file.png | Bin .../DAV/Browser/assets/icons/parent.png | Bin .../DAV/Browser/assets/icons/principal.png | Bin .../libraries/SabreForRainLoop/DAV/Client.php | 0 .../SabreForRainLoop/DAV/Collection.php | 0 .../SabreForRainLoop/DAV/Exception.php | 0 .../DAV/Exception/BadRequest.php | 0 .../DAV/Exception/Conflict.php | 0 .../DAV/Exception/ConflictingLock.php | 0 .../DAV/Exception/FileNotFound.php | 0 .../DAV/Exception/Forbidden.php | 0 .../DAV/Exception/InsufficientStorage.php | 0 .../DAV/Exception/InvalidResourceType.php | 0 .../Exception/LockTokenMatchesRequestUri.php | 0 .../SabreForRainLoop/DAV/Exception/Locked.php | 0 .../DAV/Exception/MethodNotAllowed.php | 0 .../DAV/Exception/NotAuthenticated.php | 0 .../DAV/Exception/NotFound.php | 0 .../DAV/Exception/NotImplemented.php | 0 .../DAV/Exception/PaymentRequired.php | 0 .../DAV/Exception/PreconditionFailed.php | 0 .../DAV/Exception/ReportNotSupported.php | 0 .../RequestedRangeNotSatisfiable.php | 0 .../DAV/Exception/ServiceUnavailable.php | 0 .../DAV/Exception/UnsupportedMediaType.php | 0 .../SabreForRainLoop/DAV/FS/Directory.php | 0 .../SabreForRainLoop/DAV/FS/File.php | 0 .../SabreForRainLoop/DAV/FS/Node.php | 0 .../SabreForRainLoop/DAV/FSExt/Directory.php | 0 .../SabreForRainLoop/DAV/FSExt/File.php | 0 .../SabreForRainLoop/DAV/FSExt/Node.php | 0 .../libraries/SabreForRainLoop/DAV/File.php | 0 .../SabreForRainLoop/DAV/ICollection.php | 0 .../DAV/IExtendedCollection.php | 0 .../libraries/SabreForRainLoop/DAV/IFile.php | 0 .../libraries/SabreForRainLoop/DAV/INode.php | 0 .../SabreForRainLoop/DAV/IProperties.php | 0 .../libraries/SabreForRainLoop/DAV/IQuota.php | 0 .../DAV/Locks/Backend/AbstractBackend.php | 0 .../DAV/Locks/Backend/BackendInterface.php | 0 .../SabreForRainLoop/DAV/Locks/Backend/FS.php | 0 .../DAV/Locks/Backend/File.php | 0 .../DAV/Locks/Backend/PDO.php | 0 .../SabreForRainLoop/DAV/Locks/LockInfo.php | 0 .../SabreForRainLoop/DAV/Locks/Plugin.php | 0 .../SabreForRainLoop/DAV/Mount/Plugin.php | 0 .../libraries/SabreForRainLoop/DAV/Node.php | 0 .../SabreForRainLoop/DAV/ObjectTree.php | 0 .../DAV/PartialUpdate/IFile.php | 0 .../DAV/PartialUpdate/Plugin.php | 0 .../SabreForRainLoop/DAV/Property.php | 0 .../DAV/Property/GetLastModified.php | 0 .../SabreForRainLoop/DAV/Property/Href.php | 0 .../DAV/Property/HrefList.php | 0 .../SabreForRainLoop/DAV/Property/IHref.php | 0 .../DAV/Property/LockDiscovery.php | 0 .../DAV/Property/ResourceType.php | 0 .../DAV/Property/Response.php | 0 .../DAV/Property/ResponseList.php | 0 .../DAV/Property/SupportedLock.php | 0 .../DAV/Property/SupportedReportSet.php | 0 .../DAV/PropertyInterface.php | 0 .../libraries/SabreForRainLoop/DAV/Server.php | 0 .../SabreForRainLoop/DAV/ServerPlugin.php | 0 .../SabreForRainLoop/DAV/SimpleCollection.php | 0 .../SabreForRainLoop/DAV/SimpleFile.php | 0 .../SabreForRainLoop/DAV/StringUtil.php | 0 .../DAV/TemporaryFileFilterPlugin.php | 0 .../libraries/SabreForRainLoop/DAV/Tree.php | 0 .../SabreForRainLoop/DAV/Tree/Filesystem.php | 0 .../SabreForRainLoop/DAV/URLUtil.php | 0 .../SabreForRainLoop/DAV/UUIDUtil.php | 0 .../SabreForRainLoop/DAV/Version.php | 0 .../SabreForRainLoop/DAV/XMLUtil.php | 0 .../DAVACL/AbstractPrincipalCollection.php | 0 .../DAVACL/Exception/AceConflict.php | 0 .../DAVACL/Exception/NeedPrivileges.php | 0 .../DAVACL/Exception/NoAbstract.php | 0 .../Exception/NotRecognizedPrincipal.php | 0 .../Exception/NotSupportedPrivilege.php | 0 .../SabreForRainLoop/DAVACL/IACL.php | 0 .../SabreForRainLoop/DAVACL/IPrincipal.php | 0 .../DAVACL/IPrincipalCollection.php | 0 .../SabreForRainLoop/DAVACL/Plugin.php | 0 .../SabreForRainLoop/DAVACL/Principal.php | 0 .../PrincipalBackend/AbstractBackend.php | 0 .../PrincipalBackend/BackendInterface.php | 0 .../DAVACL/PrincipalBackend/PDO.php | 0 .../DAVACL/PrincipalCollection.php | 0 .../SabreForRainLoop/DAVACL/Property/Acl.php | 0 .../DAVACL/Property/AclRestrictions.php | 0 .../Property/CurrentUserPrivilegeSet.php | 0 .../DAVACL/Property/Principal.php | 0 .../DAVACL/Property/SupportedPrivilegeSet.php | 0 .../SabreForRainLoop/DAVACL/Version.php | 0 .../SabreForRainLoop/HTTP/AWSAuth.php | 0 .../SabreForRainLoop/HTTP/AbstractAuth.php | 0 .../SabreForRainLoop/HTTP/BasicAuth.php | 0 .../SabreForRainLoop/HTTP/DigestAuth.php | 0 .../SabreForRainLoop/HTTP/Request.php | 0 .../SabreForRainLoop/HTTP/Response.php | 0 .../libraries/SabreForRainLoop/HTTP/Util.php | 0 .../SabreForRainLoop/HTTP/Version.php | 0 .../SabreForRainLoop/VObject/Cli.php | 0 .../SabreForRainLoop/VObject/Component.php | 0 .../VObject/Component/VAlarm.php | 0 .../VObject/Component/VCalendar.php | 0 .../VObject/Component/VCard.php | 0 .../VObject/Component/VEvent.php | 0 .../VObject/Component/VFreeBusy.php | 0 .../VObject/Component/VJournal.php | 0 .../VObject/Component/VTodo.php | 0 .../VObject/DateTimeParser.php | 0 .../SabreForRainLoop/VObject/Document.php | 0 .../SabreForRainLoop/VObject/ElementList.php | 0 .../SabreForRainLoop/VObject/EofException.php | 0 .../VObject/FreeBusyGenerator.php | 0 .../SabreForRainLoop/VObject/Node.php | 0 .../SabreForRainLoop/VObject/Parameter.php | 0 .../VObject/ParseException.php | 0 .../SabreForRainLoop/VObject/Parser/Json.php | 0 .../VObject/Parser/MimeDir.php | 0 .../VObject/Parser/Parser.php | 0 .../SabreForRainLoop/VObject/Property.php | 0 .../VObject/Property/Binary.php | 0 .../VObject/Property/Boolean.php | 0 .../VObject/Property/FlatText.php | 0 .../VObject/Property/Float.php | 0 .../VObject/Property/ICalendar/CalAddress.php | 0 .../VObject/Property/ICalendar/Date.php | 0 .../VObject/Property/ICalendar/DateTime.php | 0 .../VObject/Property/ICalendar/Duration.php | 0 .../VObject/Property/ICalendar/Period.php | 0 .../VObject/Property/ICalendar/Recur.php | 0 .../VObject/Property/Integer.php | 0 .../VObject/Property/Text.php | 0 .../VObject/Property/Time.php | 0 .../VObject/Property/Unknown.php | 0 .../SabreForRainLoop/VObject/Property/Uri.php | 0 .../VObject/Property/UtcOffset.php | 0 .../VObject/Property/VCard/Date.php | 0 .../VObject/Property/VCard/DateAndOrTime.php | 0 .../VObject/Property/VCard/DateTime.php | 0 .../VObject/Property/VCard/LanguageTag.php | 0 .../VObject/Property/VCard/TimeStamp.php | 0 .../SabreForRainLoop/VObject/Reader.php | 0 .../VObject/RecurrenceIterator.php | 0 .../VObject/Splitter/ICalendar.php | 0 .../VObject/Splitter/SplitterInterface.php | 0 .../VObject/Splitter/VCard.php | 0 .../SabreForRainLoop/VObject/StringUtil.php | 0 .../SabreForRainLoop/VObject/TimeZoneUtil.php | 0 .../VObject/VCardConverter.php | 0 .../SabreForRainLoop/VObject/Version.php | 0 .../SabreForRainLoop/VObject/includes.php | 0 .../app/libraries/lessphp/LICENSE | 0 .../app/libraries/lessphp/README.md | 0 .../app/libraries/lessphp/ctype.php | 0 .../app/libraries/lessphp/lessc.inc.php | 0 .../app/libraries/pclzip/_pclzip.lib.php | 0 .../app/libraries/pclzip/gnu-lgpl.txt | 0 .../app/libraries/pclzip/pclzip.lib.php | 0 .../app/libraries/pclzip/readme.txt | 0 .../app/libraries/spyc/COPYING | 0 .../app/libraries/spyc/README.md | 0 .../app/libraries/spyc/Spyc.php | 0 .../app/libraries/spyc/composer.json | 0 .../app/libraries/tmhOAuth/LICENSE | 0 .../app/libraries/tmhOAuth/README.md | 0 .../app/libraries/tmhOAuth/cacert.pem | 0 .../app/libraries/tmhOAuth/tmhOAuth.php | 0 .../app/libraries/tmhOAuth/tmhUtilities.php | 0 .../app/localization/README | 0 .../app/localization/admin/README | 0 .../app/localization/admin/_source.en.yml | 0 .../v/1.16.0/app/localization/admin/ca.yml | 327 + .../v/1.16.0/app/localization/admin/ca_ES.yml | 327 + .../app/localization/admin/cs_CZ.yml | 0 .../app/localization/admin/da_DK.yml | 0 .../app/localization/admin/de_DE.yml | 1 + .../app/localization/admin/en_US.yml | 0 .../app/localization/admin/es_ES.yml | 0 .../v/1.16.0/app/localization/admin/eu.yml | 324 + .../app/localization/admin/fa_IR.yml | 0 .../app/localization/admin/fi_FI.yml | 0 .../app/localization/admin/fr_FR.yml | 0 .../app/localization/admin/hu_HU.yml | 0 .../app/localization/admin/id_ID.yml | 0 .../app/localization/admin/it_IT.yml | 0 .../app/localization/admin/ja_JP.yml | 0 .../app/localization/admin/lt_LT.yml | 0 .../app/localization/admin/nb_NO.yml | 0 .../app/localization/admin/nl_NL.yml | 1 + .../app/localization/admin/pl_PL.yml | 14 +- .../app/localization/admin/pt_BR.yml | 8 +- .../app/localization/admin/ru_RU.yml | 0 .../app/localization/admin/sk_SK.yml | 0 .../app/localization/admin/sl_SI.yml | 0 .../app/localization/admin/sv_SE.yml | 0 .../app/localization/admin/zh_CN.yml | 2 + .../app/localization/langs.yml | 6 + .../v/1.16.0/app/localization/moment/af.js | 82 + .../v/1.16.0/app/localization/moment/ar-dz.js | 167 + .../v/1.16.0/app/localization/moment/ar-kw.js | 65 + .../v/1.16.0/app/localization/moment/ar-ly.js | 182 + .../v/1.16.0/app/localization/moment/ar-ma.js | 66 + .../v/1.16.0/app/localization/moment/ar-sa.js | 115 + .../app/localization/moment/ar-tn.js | 25 +- .../v/1.16.0/app/localization/moment/ar.js | 200 + .../v/1.16.0/app/localization/moment/az.js | 112 + .../app/localization/moment/be.js | 123 +- .../v/1.16.0/app/localization/moment/bg.js | 98 + .../v/1.16.0/app/localization/moment/bm.js | 62 + .../v/1.16.0/app/localization/moment/bn-bd.js | 139 + .../v/1.16.0/app/localization/moment/bn.js | 129 + .../v/1.16.0/app/localization/moment/bo.js | 133 + .../v/1.16.0/app/localization/moment/br.js | 176 + .../app/localization/moment/bs.js | 90 +- .../v/1.16.0/app/localization/moment/ca.js | 108 + .../app/localization/moment/cs.js | 147 +- .../v/1.16.0/app/localization/moment/cv.js | 73 + .../app/localization/moment/cy.js | 57 +- .../v/1.16.0/app/localization/moment/da.js | 64 + .../v/1.16.0/app/localization/moment/de-at.js | 90 + .../v/1.16.0/app/localization/moment/de-ch.js | 87 + .../v/1.16.0/app/localization/moment/de.js | 89 + .../v/1.16.0/app/localization/moment/dv.js | 101 + .../v/1.16.0/app/localization/moment/el.js | 115 + .../v/1.16.0/app/localization/moment/en-au.js | 79 + .../v/1.16.0/app/localization/moment/en-ca.js | 75 + .../v/1.16.0/app/localization/moment/en-gb.js | 79 + .../v/1.16.0/app/localization/moment/en-ie.js | 79 + .../v/1.16.0/app/localization/moment/en-il.js | 75 + .../v/1.16.0/app/localization/moment/en-in.js | 79 + .../v/1.16.0/app/localization/moment/en-nz.js | 79 + .../v/1.16.0/app/localization/moment/en-sg.js | 79 + .../v/1.16.0/app/localization/moment/eo.js | 79 + .../v/1.16.0/app/localization/moment/es-do.js | 115 + .../v/1.16.0/app/localization/moment/es-mx.js | 117 + .../v/1.16.0/app/localization/moment/es-us.js | 117 + .../v/1.16.0/app/localization/moment/es.js | 117 + .../v/1.16.0/app/localization/moment/et.js | 89 + .../v/1.16.0/app/localization/moment/eu.js | 74 + .../v/1.16.0/app/localization/moment/fa.js | 121 + .../v/1.16.0/app/localization/moment/fi.js | 132 + .../v/1.16.0/app/localization/moment/fil.js | 69 + .../v/1.16.0/app/localization/moment/fo.js | 67 + .../v/1.16.0/app/localization/moment/fr-ca.js | 80 + .../v/1.16.0/app/localization/moment/fr-ch.js | 84 + .../v/1.16.0/app/localization/moment/fr.js | 115 + .../v/1.16.0/app/localization/moment/fy.js | 88 + .../app/localization/moment/ga.js | 66 +- .../v/1.16.0/app/localization/moment/gd.js | 106 + .../v/1.16.0/app/localization/moment/gl.js | 85 + .../app/localization/moment/gom-deva.js | 135 + .../app/localization/moment/gom-latn.js | 135 + .../app/localization/moment/gu.js | 49 +- .../v/1.16.0/app/localization/moment/he.js | 105 + .../v/1.16.0/app/localization/moment/hi.js | 175 + .../app/localization/moment/hr.js | 98 +- .../v/1.16.0/app/localization/moment/hu.js | 129 + .../app/localization/moment/hy-am.js | 81 +- .../v/1.16.0/app/localization/moment/id.js | 87 + .../app/localization/moment/is.js | 105 +- .../v/1.16.0/app/localization/moment/it-ch.js | 75 + .../v/1.16.0/app/localization/moment/it.js | 117 + .../v/1.16.0/app/localization/moment/ja.js | 159 + .../v/1.16.0/app/localization/moment/jv.js | 87 + .../v/1.16.0/app/localization/moment/ka.js | 103 + .../v/1.16.0/app/localization/moment/kk.js | 93 + .../app/localization/moment/km.js | 62 +- .../v/1.16.0/app/localization/moment/kn.js | 134 + .../v/1.16.0/app/localization/moment/ko.js | 86 + .../v/1.16.0/app/localization/moment/ku.js | 129 + .../v/1.16.0/app/localization/moment/ky.js | 95 + .../app/localization/moment/lb.js | 71 +- .../v/1.16.0/app/localization/moment/lo.js | 76 + .../v/1.16.0/app/localization/moment/lt.js | 134 + .../v/1.16.0/app/localization/moment/lv.js | 104 + .../app/localization/moment/me.js | 90 +- .../app/localization/moment/mi.js | 25 +- .../v/1.16.0/app/localization/moment/mk.js | 97 + .../v/1.16.0/app/localization/moment/ml.js | 91 + .../v/1.16.0/app/localization/moment/mn.js | 110 + .../v/1.16.0/app/localization/moment/mr.js | 213 + .../v/1.16.0/app/localization/moment/ms-my.js | 87 + .../v/1.16.0/app/localization/moment/ms.js | 86 + .../v/1.16.0/app/localization/moment/mt.js | 66 + .../app/localization/moment/my.js | 70 +- .../v/1.16.0/app/localization/moment/nb.js | 72 + .../v/1.16.0/app/localization/moment/ne.js | 131 + .../v/1.16.0/app/localization/moment/nl-be.js | 113 + .../v/1.16.0/app/localization/moment/nl.js | 115 + .../v/1.16.0/app/localization/moment/nn.js | 71 + .../1.16.0/app/localization/moment/oc-lnc.js | 94 + .../v/1.16.0/app/localization/moment/pa-in.js | 132 + .../app/localization/moment/pl.js | 111 +- .../v/1.16.0/app/localization/moment/pt-br.js | 68 + .../v/1.16.0/app/localization/moment/pt.js | 73 + .../v/1.16.0/app/localization/moment/ro.js | 86 + .../app/localization/moment/ru.js | 150 +- .../v/1.16.0/app/localization/moment/sd.js | 92 + .../v/1.16.0/app/localization/moment/se.js | 68 + .../v/1.16.0/app/localization/moment/si.js | 79 + .../app/localization/moment/sk.js | 106 +- .../app/localization/moment/sl.js | 91 +- .../v/1.16.0/app/localization/moment/sq.js | 76 + .../app/localization/moment/sr-cyrl.js | 91 +- .../app/localization/moment/sr.js | 95 +- .../v/1.16.0/app/localization/moment/ss.js | 94 + .../v/1.16.0/app/localization/moment/sv.js | 79 + .../v/1.16.0/app/localization/moment/sw.js | 65 + .../v/1.16.0/app/localization/moment/ta.js | 140 + .../v/1.16.0/app/localization/moment/te.js | 97 + .../v/1.16.0/app/localization/moment/tet.js | 79 + .../v/1.16.0/app/localization/moment/tg.js | 127 + .../v/1.16.0/app/localization/moment/th.js | 75 + .../v/1.16.0/app/localization/moment/tk.js | 102 + .../v/1.16.0/app/localization/moment/tl-ph.js | 68 + .../v/1.16.0/app/localization/moment/tlh.js | 136 + .../v/1.16.0/app/localization/moment/tr.js | 117 + .../v/1.16.0/app/localization/moment/tzl.js | 100 + .../app/localization/moment/tzm-latn.js | 64 + .../v/1.16.0/app/localization/moment/tzm.js | 64 + .../app/localization/moment/ug-cn.js | 15 +- .../v/1.16.0/app/localization/moment/uk.js | 174 + .../v/1.16.0/app/localization/moment/ur.js | 93 + .../1.16.0/app/localization/moment/uz-latn.js | 64 + .../v/1.16.0/app/localization/moment/uz.js | 62 + .../v/1.16.0/app/localization/moment/vi.js | 90 + .../app/localization/moment/x-pseudo.js | 82 + .../v/1.16.0/app/localization/moment/yo.js | 64 + .../v/1.16.0/app/localization/moment/zh-cn.js | 131 + .../v/1.16.0/app/localization/moment/zh-hk.js | 112 + .../v/1.16.0/app/localization/moment/zh-mo.js | 111 + .../v/1.16.0/app/localization/moment/zh-tw.js | 110 + .../app/localization/webmail/README | 0 .../app/localization/webmail/_source.en.yml | 0 .../app/localization/webmail/ar_SA.yml | 0 .../app/localization/webmail/bg_BG.yml | 0 .../v/1.16.0/app/localization/webmail/ca.yml | 718 + .../1.16.0/app/localization/webmail/ca_ES.yml | 718 + .../app/localization/webmail/cs_CZ.yml | 0 .../app/localization/webmail/da_DK.yml | 3 +- .../app/localization/webmail/de_DE.yml | 2 + .../app/localization/webmail/el_GR.yml | 0 .../app/localization/webmail/en_GB.yml | 0 .../app/localization/webmail/en_US.yml | 0 .../app/localization/webmail/es_ES.yml | 0 .../app/localization/webmail/et_EE.yml | 0 .../v/1.16.0/app/localization/webmail/eu.yml | 713 + .../app/localization/webmail/fa_IR.yml | 0 .../app/localization/webmail/fi_FI.yml | 0 .../app/localization/webmail/fr_FR.yml | 0 .../app/localization/webmail/hu_HU.yml | 0 .../app/localization/webmail/id_ID.yml | 0 .../app/localization/webmail/is_IS.yml | 0 .../app/localization/webmail/it_IT.yml | 0 .../app/localization/webmail/ja_JP.yml | 0 .../app/localization/webmail/ko_KR.yml | 0 .../app/localization/webmail/lt_LT.yml | 0 .../app/localization/webmail/lv_LV.yml | 0 .../app/localization/webmail/nb_NO.yml | 0 .../app/localization/webmail/nl_NL.yml | 2 + .../app/localization/webmail/pl_PL.yml | 8 +- .../app/localization/webmail/pt_BR.yml | 8 +- .../app/localization/webmail/pt_PT.yml | 7 +- .../app/localization/webmail/ro_RO.yml | 0 .../app/localization/webmail/ru_RU.yml | 0 .../app/localization/webmail/sk_SK.yml | 0 .../app/localization/webmail/sl_SI.yml | 0 .../app/localization/webmail/sv_SE.yml | 0 .../app/localization/webmail/tr_TR.yml | 0 .../app/localization/webmail/uk_UA.yml | 0 .../app/localization/webmail/zh_CN.yml | 3 + .../app/localization/webmail/zh_TW.yml | 0 .../app/resources/RainLoop.asc | 0 .../app/resources/images/empty-contact.png | Bin .../resources/images/services/amazon.com.png | Bin .../resources/images/services/apple.com.png | Bin .../resources/images/services/asana.com.png | Bin .../resources/images/services/battle.net.png | Bin .../images/services/blizzard.com.png | Bin .../images/services/cnet.online.com.png | Bin .../images/services/connect.asana.com.png | Bin .../images/services/e.paypal.com.png | Bin .../app/resources/images/services/ea.com.png | Bin .../resources/images/services/ebay.com.png | Bin .../resources/images/services/em.ea.com.png | Bin .../images/services/email.blizzard.com.png | Bin .../images/services/email.microsoft.com.png | Bin .../images/services/email.skype.com.png | Bin .../images/services/facebook.com.png | Bin .../images/services/facebookmail.com.png | Bin .../resources/images/services/github.com.png | Bin .../resources/images/services/google.com.png | Bin .../images/services/id.apple.com.png | Bin .../images/services/intl.paypal.com.png | Bin .../images/services/microsoft.com.png | Bin .../images/services/microsoftonline.com.png | Bin .../resources/images/services/myspace.com.png | Bin .../images/services/news.myspace.com.png | Bin .../images/services/news.onlive.com.png | Bin .../resources/images/services/onlive.com.png | Bin .../resources/images/services/paypal.com.png | Bin .../images/services/plus.google.com.png | Bin .../services/postmaster.twitter.com.png | Bin .../images/services/reply.ebay.com.png | Bin .../images/services/reply1.ebay.com.png | Bin .../images/services/reply2.ebay.com.png | Bin .../images/services/reply3.ebay.com.png | Bin .../resources/images/services/skype.com.png | Bin .../images/services/steampowered.com.png | Bin .../app/resources/images/services/ted.com.png | Bin .../resources/images/services/twitter.com.png | Bin .../resources/images/services/youtube.com.png | Bin .../app/templates/BadBrowser.html | 0 .../app/templates/Error.html | 0 .../app/templates/Index.html | 0 .../app/templates/Social.html | 0 .../app/templates/Themes/template.less | 0 .../app/templates/Themes/values.less | 0 .../app/templates/Views/Admin/AdminLogin.html | 0 .../app/templates/Views/Admin/AdminMenu.html | 0 .../app/templates/Views/Admin/AdminPane.html | 0 .../Views/Admin/AdminSettingsAbout.html | 0 .../Views/Admin/AdminSettingsBranding.html | 0 .../Views/Admin/AdminSettingsContacts.html | 0 .../Admin/AdminSettingsDomainListItem.html | 0 .../Views/Admin/AdminSettingsDomains.html | 0 .../Views/Admin/AdminSettingsGeneral.html | 0 .../Views/Admin/AdminSettingsLicensing.html | 0 .../Views/Admin/AdminSettingsLogin.html | 0 .../Views/Admin/AdminSettingsPackages.html | 0 .../Admin/AdminSettingsPackagesListItem.html | 0 .../Admin/AdminSettingsPackagesTable.html | 0 .../Admin/AdminSettingsPluginListItem.html | 0 .../Admin/AdminSettingsPluginProperty.html | 0 .../Views/Admin/AdminSettingsPlugins.html | 0 .../Views/Admin/AdminSettingsSecurity.html | 0 .../Views/Admin/AdminSettingsSocial.html | 0 .../templates/Views/Admin/PopupsActivate.html | 0 .../templates/Views/Admin/PopupsDomain.html | 0 .../Views/Admin/PopupsDomainAlias.html | 0 .../templates/Views/Admin/PopupsPlugin.html | 0 .../app/templates/Views/Common/Cmd.html | 0 .../app/templates/Views/Common/Pagenator.html | 0 .../app/templates/Views/Common/PopupsAsk.html | 0 .../Common/PopupsKeyboardShortcutsHelp.html | 0 .../Views/Common/PopupsLanguages.html | 0 .../Views/Common/PopupsWelcomePage.html | 0 .../templates/Views/Components/Checkbox.html | 0 .../Views/Components/CheckboxClassic.html | 0 .../Components/CheckboxMaterialDesign.html | 0 .../app/templates/Views/Components/Date.html | 0 .../app/templates/Views/Components/Input.html | 0 .../app/templates/Views/Components/Radio.html | 0 .../Views/Components/SaveTrigger.html | 0 .../templates/Views/Components/Select.html | 0 .../templates/Views/Components/TextArea.html | 0 .../app/templates/Views/User/About.html | 0 .../Views/User/ComposeAttachment.html | 0 .../app/templates/Views/User/Login.html | 0 .../templates/Views/User/LoginWelcome.html | 0 .../templates/Views/User/MailFolderList.html | 0 .../Views/User/MailFolderListItem.html | 0 .../Views/User/MailFolderListSystemItem.html | 0 .../templates/Views/User/MailMessageList.html | 0 .../Views/User/MailMessageListItem.html | 0 .../MailMessageListItemNoPreviewPane.html | 0 .../templates/Views/User/MailMessageView.html | 0 .../app/templates/Views/User/PhotoSwipe.html | 0 .../templates/Views/User/PopupsAccount.html | 0 .../Views/User/PopupsAddOpenPgpKey.html | 0 .../Views/User/PopupsAdvancedSearch.html | 0 .../templates/Views/User/PopupsCompose.html | 0 .../Views/User/PopupsComposeOpenPgp.html | 0 .../templates/Views/User/PopupsContacts.html | 0 .../templates/Views/User/PopupsFilter.html | 0 .../Views/User/PopupsFolderClear.html | 0 .../Views/User/PopupsFolderCreate.html | 0 .../Views/User/PopupsFolderSystem.html | 0 .../templates/Views/User/PopupsIdentity.html | 0 .../Views/User/PopupsMessageOpenPgp.html | 0 .../Views/User/PopupsNewOpenPgpKey.html | 0 .../templates/Views/User/PopupsTemplate.html | 0 .../User/PopupsTwoFactorConfiguration.html | 0 .../Views/User/PopupsTwoFactorTest.html | 0 .../Views/User/PopupsViewOpenPgpKey.html | 0 .../Views/User/PopupsWindowSimpleMessage.html | 0 .../Views/User/SettingsAccounts.html | 0 .../Views/User/SettingsChangePassword.html | 0 .../Views/User/SettingsContacts.html | 0 .../templates/Views/User/SettingsCustom.html | 0 .../templates/Views/User/SettingsFilters.html | 0 .../User/SettingsFiltersActionDiscard.html | 0 .../User/SettingsFiltersActionForward.html | 0 .../SettingsFiltersActionMoveToFolder.html | 0 .../Views/User/SettingsFiltersActionNone.html | 0 .../User/SettingsFiltersActionReject.html | 0 .../User/SettingsFiltersActionVacation.html | 0 .../User/SettingsFiltersConditionDefault.html | 0 .../User/SettingsFiltersConditionMore.html | 0 .../User/SettingsFiltersConditionSize.html | 0 .../Views/User/SettingsFolderItem.html | 0 .../templates/Views/User/SettingsFolders.html | 0 .../templates/Views/User/SettingsGeneral.html | 0 .../templates/Views/User/SettingsMenu.html | 0 .../templates/Views/User/SettingsOpenPGP.html | 0 .../templates/Views/User/SettingsPane.html | 0 .../Views/User/SettingsSecurity.html | 0 .../templates/Views/User/SettingsSocial.html | 0 .../Views/User/SettingsTemplates.html | 0 .../templates/Views/User/SettingsThemes.html | 0 .../templates/Views/User/SystemDropDown.html | 9 +- app/rainloop/v/{1.15.0 => 1.16.0}/check.php | 0 app/rainloop/v/{1.15.0 => 1.16.0}/include.php | 0 app/rainloop/v/{1.15.0 => 1.16.0}/index.php | 0 .../v/{1.15.0 => 1.16.0}/index.php.root | 2 +- .../static/android-icon.png | Bin .../static/apple-touch-icon.png | Bin .../static/browsers/chrome.gif | Bin .../static/browsers/firefox.gif | Bin .../static/browsers/opera.gif | Bin .../static/browsers/safari.gif | Bin .../static/ckeditor/FIXES.txt | 0 .../static/ckeditor/build-config.js | 0 .../static/ckeditor/ckeditor.js | 0 .../static/ckeditor/ckeditor.orig.js | 0 .../static/ckeditor/config.js | 0 .../static/ckeditor/contents.css | 0 .../static/ckeditor/lang/af.js | 0 .../static/ckeditor/lang/ar.js | 0 .../static/ckeditor/lang/az.js | 0 .../static/ckeditor/lang/bg.js | 0 .../static/ckeditor/lang/bn.js | 0 .../static/ckeditor/lang/bs.js | 0 .../static/ckeditor/lang/ca.js | 0 .../static/ckeditor/lang/cs.js | 0 .../static/ckeditor/lang/cy.js | 0 .../static/ckeditor/lang/da.js | 0 .../static/ckeditor/lang/de-ch.js | 0 .../static/ckeditor/lang/de.js | 0 .../static/ckeditor/lang/el.js | 0 .../static/ckeditor/lang/en-au.js | 0 .../static/ckeditor/lang/en-ca.js | 0 .../static/ckeditor/lang/en-gb.js | 0 .../static/ckeditor/lang/en.js | 0 .../static/ckeditor/lang/eo.js | 0 .../static/ckeditor/lang/es.js | 0 .../static/ckeditor/lang/et.js | 0 .../static/ckeditor/lang/eu.js | 0 .../static/ckeditor/lang/fa.js | 0 .../static/ckeditor/lang/fi.js | 0 .../static/ckeditor/lang/fo.js | 0 .../static/ckeditor/lang/fr-ca.js | 0 .../static/ckeditor/lang/fr.js | 0 .../static/ckeditor/lang/gl.js | 0 .../static/ckeditor/lang/gu.js | 0 .../static/ckeditor/lang/he.js | 0 .../static/ckeditor/lang/hi.js | 0 .../static/ckeditor/lang/hr.js | 0 .../static/ckeditor/lang/hu.js | 0 .../static/ckeditor/lang/id.js | 0 .../static/ckeditor/lang/is.js | 0 .../static/ckeditor/lang/it.js | 0 .../static/ckeditor/lang/ja.js | 0 .../static/ckeditor/lang/ka.js | 0 .../static/ckeditor/lang/km.js | 0 .../static/ckeditor/lang/ko.js | 0 .../static/ckeditor/lang/ku.js | 0 .../static/ckeditor/lang/lt.js | 0 .../static/ckeditor/lang/lv.js | 0 .../static/ckeditor/lang/mk.js | 0 .../static/ckeditor/lang/mn.js | 0 .../static/ckeditor/lang/ms.js | 0 .../static/ckeditor/lang/nb.js | 0 .../static/ckeditor/lang/nl.js | 0 .../static/ckeditor/lang/no.js | 0 .../static/ckeditor/lang/oc.js | 0 .../static/ckeditor/lang/pl.js | 0 .../static/ckeditor/lang/pt-br.js | 0 .../static/ckeditor/lang/pt.js | 0 .../static/ckeditor/lang/ro.js | 0 .../static/ckeditor/lang/ru.js | 0 .../static/ckeditor/lang/si.js | 0 .../static/ckeditor/lang/sk.js | 0 .../static/ckeditor/lang/sl.js | 0 .../static/ckeditor/lang/sq.js | 0 .../static/ckeditor/lang/sr-latn.js | 0 .../static/ckeditor/lang/sr.js | 0 .../static/ckeditor/lang/sv.js | 0 .../static/ckeditor/lang/th.js | 0 .../static/ckeditor/lang/tr.js | 0 .../static/ckeditor/lang/tt.js | 0 .../static/ckeditor/lang/ug.js | 0 .../static/ckeditor/lang/uk.js | 0 .../static/ckeditor/lang/vi.js | 0 .../static/ckeditor/lang/zh-cn.js | 0 .../static/ckeditor/lang/zh.js | 0 .../ckeditor/plugins/about/dialogs/about.js | 0 .../about/dialogs/hidpi/logo_ckeditor.png | Bin .../plugins/about/dialogs/logo_ckeditor.png | Bin .../ckeditor/plugins/base64image/LICENSE.md | 0 .../ckeditor/plugins/base64image/README.md | 0 .../base64image/dialogs/base64image.js | 0 .../plugins/clipboard/dialogs/paste.js | 0 .../colordialog/dialogs/colordialog.css | 0 .../colordialog/dialogs/colordialog.js | 0 .../plugins/dialog/dialogDefinition.js | 0 .../static/ckeditor/plugins/icons.png | Bin .../static/ckeditor/plugins/icons_hidpi.png | Bin .../ckeditor/plugins/image/dialogs/image.js | 0 .../ckeditor/plugins/image/images/noimage.png | Bin .../ckeditor/plugins/image2/dialogs/image2.js | 0 .../ckeditor/plugins/link/dialogs/anchor.js | 0 .../ckeditor/plugins/link/dialogs/link.js | 0 .../ckeditor/plugins/link/images/anchor.png | Bin .../plugins/link/images/hidpi/anchor.png | Bin .../plugins/plain/icons/hidpi/plain-rtl.png | Bin .../plugins/plain/icons/hidpi/plain.png | Bin .../plugins/plain/icons/plain-rtl.png | Bin .../ckeditor/plugins/plain/icons/plain.png | Bin .../static/ckeditor/plugins/plain/plugin.js | 0 .../ckeditor/plugins/quicktable/CHANGELOG.md | 0 .../ckeditor/plugins/quicktable/Gruntfile.js | 0 .../ckeditor/plugins/quicktable/LICENSE | 0 .../ckeditor/plugins/quicktable/README.md | 0 .../ckeditor/plugins/quicktable/package.json | 0 .../ckeditor/plugins/quicktable/template.jst | 0 .../ckeditor/plugins/signature/plugin.js | 0 .../ckeditor/plugins/table/dialogs/table.js | 0 .../ckeditor/plugins/widget/images/handle.png | Bin .../ckeditor/skins/moono-lisa/dialog.css | 0 .../ckeditor/skins/moono-lisa/dialog_ie.css | 0 .../ckeditor/skins/moono-lisa/dialog_ie8.css | 0 .../skins/moono-lisa/dialog_iequirks.css | 0 .../ckeditor/skins/moono-lisa/editor.css | 0 .../skins/moono-lisa/editor_gecko.css | 0 .../ckeditor/skins/moono-lisa/editor_ie.css | 0 .../ckeditor/skins/moono-lisa/editor_ie8.css | 0 .../skins/moono-lisa/editor_iequirks.css | 0 .../ckeditor/skins/moono-lisa/icons.png | Bin .../ckeditor/skins/moono-lisa/icons_hidpi.png | Bin .../skins/moono-lisa/images/arrow.png | Bin .../skins/moono-lisa/images/close.png | Bin .../skins/moono-lisa/images/hidpi/close.png | Bin .../moono-lisa/images/hidpi/lock-open.png | Bin .../skins/moono-lisa/images/hidpi/lock.png | Bin .../skins/moono-lisa/images/hidpi/refresh.png | Bin .../skins/moono-lisa/images/lock-open.png | Bin .../ckeditor/skins/moono-lisa/images/lock.png | Bin .../skins/moono-lisa/images/refresh.png | Bin .../skins/moono-lisa/images/spinner.gif | Bin .../ckeditor/skins/moono-lisa/readme.md | 0 .../static/ckeditor/styles.js | 0 .../v/{1.15.0 => 1.16.0}/static/css/app.css | 13 +- app/rainloop/v/1.16.0/static/css/app.min.css | 7 + .../static/css/default-skin.png | Bin .../static/css/default-skin.svg | 0 .../v/{1.15.0 => 1.16.0}/static/css/flags.png | Bin .../static/css/fonts/lg.eot | Bin .../static/css/fonts/lg.svg | 0 .../static/css/fonts/lg.ttf | Bin .../static/css/fonts/lg.woff | Bin .../static/css/fonts/rainloop.eot | Bin .../static/css/fonts/rainloop.svg | 0 .../static/css/fonts/rainloop.ttf | Bin .../static/css/fonts/rainloop.woff | Bin .../static/css/images/editor.png | Bin .../static/css/images/empty-contact.png | Bin .../static/css/images/grey.png | Bin .../css/images/icom-message-notification.png | Bin .../static/css/images/loading.gif | Bin .../static/css/images/rainloop-logo.png | Bin .../static/css/images/sync.gif | Bin .../static/css/images/sync.png | Bin .../static/css/images/white.png | Bin .../static/css/img/loading.gif | Bin .../{1.15.0 => 1.16.0}/static/css/loading.gif | Bin .../static/css/preloader.gif | Bin .../{1.15.0 => 1.16.0}/static/css/social.css | 0 .../static/css/social.min.css | 0 .../static/favicon-light.ico | Bin .../static/favicon-light.png | Bin .../v/{1.15.0 => 1.16.0}/static/favicon.ico | Bin .../v/{1.15.0 => 1.16.0}/static/favicon.png | Bin app/rainloop/v/1.16.0/static/js/admin.js | 22823 ++++++++++++++++ .../v/{1.15.0 => 1.16.0}/static/js/app.js | 21391 +++++++-------- app/rainloop/v/1.16.0/static/js/boot.js | 10869 ++++++++ .../v/{1.15.0 => 1.16.0}/static/js/libs.js | 38 +- .../v/1.16.0/static/js/min/admin.min.js | 1 + .../v/1.16.0/static/js/min/app.min.js | 1 + .../v/1.16.0/static/js/min/boot.min.js | 1 + .../v/1.16.0/static/js/min/libs.min.js | 1 + .../static/js/min/openpgp.min.js | 0 .../static/js/min/openpgp.worker.min.js | 0 .../v/1.16.0/static/js/min/polyfills.min.js | 1 + app/rainloop/v/1.16.0/static/js/polyfills.js | 4585 ++++ .../v/{1.15.0 => 1.16.0}/static/manifest.json | 0 .../static/sounds/new-mail.mp3 | Bin .../static/sounds/new-mail.ogg | Bin .../themes/A/images/background.jpg | Bin .../themes/A/images/preview.png | Bin .../v/{1.15.0 => 1.16.0}/themes/A/styles.less | 0 .../themes/Blurred/images/background.jpg | Bin .../themes/Blurred/images/preview.png | Bin .../themes/Blurred/styles.less | 0 .../themes/Clear/images/preview.png | Bin .../themes/Clear/styles.less | 0 .../themes/DarkShine/images/background.jpg | Bin .../themes/DarkShine/images/preview.png | Bin .../themes/DarkShine/styles.less | 0 .../themes/Default/images/background.jpg | Bin .../themes/Default/images/background.png | Bin .../themes/Default/images/preview.png | Bin .../themes/Default/styles.less | 0 .../themes/Linen/images/background.jpg | Bin .../themes/Linen/images/background.png | Bin .../themes/Linen/images/preview.png | Bin .../themes/Linen/styles.less | 0 .../themes/Love/images/background.jpg | Bin .../themes/Love/images/preview.png | Bin .../themes/Love/styles.less | 0 .../{1.15.0 => 1.16.0}/themes/Mobile/ext.less | 0 .../themes/Mobile/images/preview.png | Bin .../themes/Mobile/styles.less | 0 .../themes/Snow/images/background.jpg | Bin .../themes/Snow/images/preview.png | Bin .../themes/Snow/styles.less | 0 .../themes/Squares/images/background.jpg | Bin .../themes/Squares/images/background.png | Bin .../themes/Squares/images/preview.png | Bin .../themes/Squares/styles.less | 0 .../themes/SquaresDark/images/background.jpg | Bin .../themes/SquaresDark/images/background.png | Bin .../themes/SquaresDark/images/preview.png | Bin .../themes/SquaresDark/styles.less | 0 .../themes/Stripes/images/background.jpg | Bin .../themes/Stripes/images/preview.png | Bin .../themes/Stripes/styles.less | 0 .../themes/Wood/images/background.jpg | Bin .../themes/Wood/images/background.png | Bin .../themes/Wood/images/preview.png | Bin .../themes/Wood/styles.less | 0 .../themes/Xv/images/background.jpg | Bin .../themes/Xv/images/background.png | Bin .../themes/Xv/images/preview.png | Bin .../{1.15.0 => 1.16.0}/themes/Xv/styles.less | 0 appinfo/info.xml | 2 +- l10n/bg.js | 2 +- l10n/bg.json | 2 +- l10n/ca.js | 2 +- l10n/ca.json | 2 +- l10n/cs.js | 2 +- l10n/cs.json | 2 +- l10n/da.js | 2 +- l10n/da.json | 2 +- l10n/de.js | 2 +- l10n/de.json | 2 +- l10n/de_DE.js | 2 +- l10n/de_DE.json | 2 +- l10n/el.js | 2 +- l10n/el.json | 2 +- l10n/es.js | 2 +- l10n/es.json | 2 +- l10n/eu.js | 2 +- l10n/eu.json | 2 +- l10n/fr.js | 2 +- l10n/fr.json | 2 +- l10n/gl.js | 2 +- l10n/gl.json | 2 +- l10n/hr.js | 2 +- l10n/hr.json | 2 +- l10n/hu.js | 2 +- l10n/hu.json | 2 +- l10n/it.js | 2 +- l10n/it.json | 2 +- l10n/ja.js | 2 +- l10n/ja.json | 2 +- l10n/nl.js | 2 +- l10n/nl.json | 2 +- l10n/pl.js | 2 +- l10n/pl.json | 2 +- l10n/pt_BR.js | 2 +- l10n/pt_BR.json | 2 +- l10n/ru.js | 2 +- l10n/ru.json | 2 +- l10n/sc.js | 2 +- l10n/sc.json | 2 +- l10n/sk.js | 2 +- l10n/sk.json | 2 +- l10n/sl.js | 2 +- l10n/sl.json | 2 +- l10n/tr.js | 2 +- l10n/tr.json | 2 +- l10n/zh_HK.js | 2 +- l10n/zh_HK.json | 2 +- l10n/zh_TW.js | 2 +- l10n/zh_TW.json | 2 +- 1644 files changed, 64888 insertions(+), 56074 deletions(-) delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/af.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/ar-dz.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/ar-kw.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/ar-ly.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/ar-ma.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/ar-sa.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/ar.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/az.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/bg.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/bm.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/bn.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/bo.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/br.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/ca.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/cv.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/da.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/de-at.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/de-ch.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/de.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/dv.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/el.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/en-SG.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/en-au.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/en-ca.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/en-gb.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/en-ie.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/en-il.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/en-nz.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/eo.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/es-do.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/es-us.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/es.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/et.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/eu.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/fa.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/fi.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/fo.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/fr-ca.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/fr-ch.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/fr.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/fy.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/gd.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/gl.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/gom-latn.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/he.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/hi.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/hu.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/id.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/it-ch.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/it.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/ja.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/jv.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/ka.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/kk.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/kn.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/ko.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/ku.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/ky.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/lo.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/lt.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/lv.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/mk.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/ml.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/mn.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/mr.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/ms-my.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/ms.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/mt.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/nb.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/ne.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/nl-be.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/nl.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/nn.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/pa-in.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/pt-br.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/pt.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/ro.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/sd.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/se.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/si.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/sq.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/ss.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/sv.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/sw.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/ta.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/te.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/tet.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/tg.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/th.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/tl-ph.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/tlh.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/tr.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/tzl.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/tzm-latn.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/tzm.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/uk.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/ur.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/uz-latn.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/uz.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/vi.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/x-pseudo.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/yo.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/zh-cn.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/zh-hk.js delete mode 100644 app/rainloop/v/1.15.0/app/localization/moment/zh-tw.js delete mode 100644 app/rainloop/v/1.15.0/static/css/app.min.css delete mode 100644 app/rainloop/v/1.15.0/static/js/admin.js delete mode 100644 app/rainloop/v/1.15.0/static/js/boot.js delete mode 100644 app/rainloop/v/1.15.0/static/js/min/admin.min.js delete mode 100644 app/rainloop/v/1.15.0/static/js/min/app.min.js delete mode 100644 app/rainloop/v/1.15.0/static/js/min/boot.min.js delete mode 100644 app/rainloop/v/1.15.0/static/js/min/libs.min.js delete mode 100644 app/rainloop/v/1.15.0/static/js/min/polyfills.min.js delete mode 100644 app/rainloop/v/1.15.0/static/js/polyfills.js rename app/rainloop/v/{1.15.0 => 1.16.0}/app/domains/default.ini.dist (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/domains/disabled (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/domains/gmail.com.ini (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/domains/outlook.com.ini (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/domains/qq.com.ini (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/domains/yahoo.com.ini (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/handle.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Authentication/AccessToken.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Authentication/AccessTokenMetadata.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Authentication/OAuth2Client.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Exceptions/FacebookAuthenticationException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Exceptions/FacebookAuthorizationException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Exceptions/FacebookClientException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Exceptions/FacebookOtherException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Exceptions/FacebookResponseException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Exceptions/FacebookSDKException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Exceptions/FacebookServerException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Exceptions/FacebookThrottleException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Facebook.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/FacebookApp.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/FacebookBatchRequest.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/FacebookBatchResponse.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/FacebookClient.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/FacebookRequest.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/FacebookResponse.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/FileUpload/FacebookFile.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/FileUpload/FacebookVideo.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/FileUpload/Mimetypes.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/GraphNodes/Collection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/GraphNodes/GraphAchievement.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/GraphNodes/GraphAlbum.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/GraphNodes/GraphApplication.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/GraphNodes/GraphCoverPhoto.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/GraphNodes/GraphEdge.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/GraphNodes/GraphEvent.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/GraphNodes/GraphGroup.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/GraphNodes/GraphList.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/GraphNodes/GraphLocation.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/GraphNodes/GraphNode.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/GraphNodes/GraphNodeFactory.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/GraphNodes/GraphObject.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/GraphNodes/GraphObjectFactory.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/GraphNodes/GraphPage.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/GraphNodes/GraphPicture.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/GraphNodes/GraphSessionInfo.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/GraphNodes/GraphUser.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Helpers/FacebookCanvasHelper.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Helpers/FacebookJavaScriptHelper.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Helpers/FacebookPageTabHelper.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Helpers/FacebookRedirectLoginHelper.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Helpers/FacebookSignedRequestFromInputHelper.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Http/GraphRawResponse.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Http/RequestBodyInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Http/RequestBodyMultipart.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Http/RequestBodyUrlEncoded.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/HttpClients/FacebookCurl.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/HttpClients/FacebookCurlHttpClient.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/HttpClients/FacebookGuzzleHttpClient.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/HttpClients/FacebookHttpClientInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/HttpClients/FacebookStream.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/HttpClients/FacebookStreamHttpClient.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/HttpClients/certs/DigiCertHighAssuranceEVRootCA.pem (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/PersistentData/FacebookMemoryPersistentDataHandler.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/PersistentData/FacebookSessionPersistentDataHandler.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/PersistentData/PersistentDataInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/PseudoRandomString/McryptPseudoRandomStringGenerator.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/PseudoRandomString/OpenSslPseudoRandomStringGenerator.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/PseudoRandomString/PseudoRandomStringGeneratorInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/PseudoRandomString/PseudoRandomStringGeneratorTrait.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/PseudoRandomString/UrandomPseudoRandomStringGenerator.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/SignedRequest.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Url/FacebookUrlDetectionHandler.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Url/FacebookUrlManipulator.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/Url/UrlDetectionInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Facebook/autoload.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Draw/DrawerInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Effects/EffectsInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Exception/Exception.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Exception/InvalidArgumentException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Exception/NotSupportedException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Exception/OutOfBoundsException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Exception/RuntimeException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Filter/Advanced/Border.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Filter/Advanced/Canvas.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Filter/Advanced/Grayscale.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Filter/Advanced/OnPixelBased.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Filter/Advanced/RelativeResize.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Filter/Basic/ApplyMask.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Filter/Basic/Autorotate.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Filter/Basic/Copy.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Filter/Basic/Crop.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Filter/Basic/Fill.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Filter/Basic/FlipHorizontally.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Filter/Basic/FlipVertically.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Filter/Basic/Paste.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Filter/Basic/Resize.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Filter/Basic/Rotate.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Filter/Basic/Save.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Filter/Basic/Show.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Filter/Basic/Strip.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Filter/Basic/Thumbnail.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Filter/Basic/WebOptimization.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Filter/FilterInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Filter/ImagineAware.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Filter/Transformation.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Gd/Drawer.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Gd/Effects.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Gd/Font.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Gd/Image.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Gd/Imagine.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Gd/Layers.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Gmagick/Drawer.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Gmagick/Effects.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Gmagick/Font.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Gmagick/Image.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Gmagick/Imagine.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Gmagick/Layers.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/AbstractFont.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/AbstractImage.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/AbstractImagine.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/AbstractLayers.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Box.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/BoxInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Fill/FillInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Fill/Gradient/Horizontal.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Fill/Gradient/Linear.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Fill/Gradient/Vertical.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/FontInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Histogram/Bucket.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Histogram/Range.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/ImageInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/ImagineInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/LayersInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/ManipulatorInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Metadata/AbstractMetadataReader.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Metadata/DefaultMetadataReader.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Metadata/ExifMetadataReader.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Metadata/MetadataBag.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Metadata/MetadataReaderInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Palette/CMYK.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Palette/Color/CMYK.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Palette/Color/ColorInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Palette/Color/Gray.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Palette/Color/RGB.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Palette/ColorParser.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Palette/Grayscale.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Palette/PaletteInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Palette/RGB.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Point.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Point/Center.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/PointInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/Profile.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Image/ProfileInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Imagick/Drawer.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Imagick/Effects.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Imagick/Font.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Imagick/Image.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Imagick/Imagine.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Imagine/Imagick/Layers.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Base/Collection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Base/Crypt.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Base/DateTimeHelper.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Base/Enumerations/Charset.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Base/Enumerations/Encoding.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Base/Exceptions/Exception.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Base/Exceptions/InvalidArgumentException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Base/HtmlUtils.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Base/Http.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Base/LinkFinder.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Base/Loader.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Base/ResourceRegistry.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Base/StreamWrappers/Binary.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Base/StreamWrappers/Literal.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Base/StreamWrappers/SubStreams.php (98%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Base/StreamWrappers/TempFile.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Base/StreamWrappers/Test.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Base/Utils.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Base/Validator.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Cache/CacheClient.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Cache/DriverInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Cache/Drivers/APC.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Cache/Drivers/File.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Cache/Drivers/Memcache.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Cache/Drivers/Redis.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Config.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Hooks.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/BodyStructure.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/Enumerations/FetchType.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/Enumerations/FolderResponseStatus.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/Enumerations/FolderStatus.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/Enumerations/FolderType.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/Enumerations/MessageFlag.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/Enumerations/ResponseStatus.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/Enumerations/ResponseType.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/Enumerations/StoreAction.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/Exceptions/Exception.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/Exceptions/InvalidResponseException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/Exceptions/LoginBadCredentialsException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/Exceptions/LoginBadMethodException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/Exceptions/LoginException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/Exceptions/NegativeResponseException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/Exceptions/ResponseException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/Exceptions/ResponseNotFoundException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/Exceptions/RuntimeException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/FetchResponse.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/Folder.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/FolderInformation.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/ImapClient.php (92%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/NamespaceResult.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Imap/Response.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/LICENSE (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Log/Driver.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Log/Drivers/Callback.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Log/Drivers/File.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Log/Drivers/Inline.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Log/Drivers/Syslog.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Log/Enumerations/Type.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Log/Logger.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mail/Attachment.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mail/AttachmentCollection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mail/Exceptions/Exception.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mail/Exceptions/NonEmptyFolder.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mail/Exceptions/RuntimeException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mail/Folder.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mail/FolderCollection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mail/MailClient.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mail/Message.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mail/MessageCollection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/MailSo.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mime/Attachment.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mime/AttachmentCollection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mime/Email.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mime/EmailCollection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mime/EmailDep.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mime/Enumerations/Constants.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mime/Enumerations/DkimStatus.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mime/Enumerations/Header.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mime/Enumerations/MessagePriority.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mime/Enumerations/MimeType.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mime/Enumerations/Parameter.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mime/Enumerations/Sensitivity.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mime/Header.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mime/HeaderCollection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mime/Message.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mime/Parameter.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mime/ParameterCollection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mime/Parser/ParserEmpty.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mime/Parser/ParserInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mime/Parser/ParserMemory.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mime/Part.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Mime/PartCollection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Net/Enumerations/ConnectionSecurityType.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Net/Exceptions/ConnectionException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Net/Exceptions/Exception.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Net/Exceptions/InvalidArgumentException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Net/Exceptions/SocketAlreadyConnectedException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Net/Exceptions/SocketCanNotConnectToHostException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Net/Exceptions/SocketConnectionDoesNotAvailableException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Net/Exceptions/SocketReadException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Net/Exceptions/SocketReadTimeoutException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Net/Exceptions/SocketUnreadBufferException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Net/Exceptions/SocketUnsuppoterdSecureConnectionException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Net/Exceptions/SocketWriteException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Net/NetClient.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Pop3/Exceptions/Exception.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Pop3/Exceptions/LoginBadCredentialsException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Pop3/Exceptions/NegativeResponseException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Pop3/Exceptions/ResponseException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Pop3/Exceptions/RuntimeException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Pop3/Pop3Client.php (99%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Poppassd/Exceptions/Exception.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Poppassd/Exceptions/LoginBadCredentialsException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Poppassd/Exceptions/NegativeResponseException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Poppassd/Exceptions/ResponseException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Poppassd/Exceptions/RuntimeException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Poppassd/PoppassdClient.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Sieve/Exceptions/Exception.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Sieve/Exceptions/LoginBadCredentialsException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Sieve/Exceptions/LoginBadMethodException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Sieve/Exceptions/LoginException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Sieve/Exceptions/NegativeResponseException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Sieve/Exceptions/ResponseException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Sieve/Exceptions/RuntimeException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Sieve/ManageSieveClient.php (95%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Smtp/Exceptions/Exception.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Smtp/Exceptions/LoginBadCredentialsException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Smtp/Exceptions/LoginBadMethodException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Smtp/Exceptions/LoginException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Smtp/Exceptions/NegativeResponseException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Smtp/Exceptions/ResponseException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Smtp/Exceptions/RuntimeException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Smtp/SmtpClient.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Vendors/Net/IDNA2.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Vendors/Net/IDNA2CustomExceptions.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/MailSo/Version.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Mobile_Detect/LICENSE.txt (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Mobile_Detect/Mobile_Detect.json (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Mobile_Detect/Mobile_Detect.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Mobile_Detect/README.md (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Mobile_Detect/composer.json (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Mobile_Detect/namespaced/Detection/MobileDetect.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Mobile_Detect/ruleset.xml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/PHP-OAuth2/Client.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/PHP-OAuth2/GrantType/AuthorizationCode.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/PHP-OAuth2/GrantType/ClientCredentials.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/PHP-OAuth2/GrantType/IGrantType.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/PHP-OAuth2/GrantType/Password.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/PHP-OAuth2/GrantType/RefreshToken.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/PHP-OAuth2/README (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/PHPGangsta/GoogleAuthenticator.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/PHPThumb/GD.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/PHPThumb/PHPThumb.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/PHPThumb/PluginInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/PHPThumb/Plugins/Reflection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Autoloader.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Client.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/ClientContextInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/ClientException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/ClientInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Cluster/ClusterStrategy.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Cluster/Distributor/DistributorInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Cluster/Distributor/EmptyRingException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Cluster/Distributor/HashRing.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Cluster/Distributor/KetamaRing.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Cluster/Hash/CRC16.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Cluster/Hash/HashGeneratorInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Cluster/PredisStrategy.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Cluster/RedisStrategy.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Cluster/StrategyInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Collection/Iterator/CursorBasedIterator.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Collection/Iterator/HashKey.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Collection/Iterator/Keyspace.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Collection/Iterator/ListKey.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Collection/Iterator/SetKey.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Collection/Iterator/SortedSetKey.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/Command.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/CommandInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ConnectionAuth.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ConnectionEcho.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ConnectionPing.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ConnectionQuit.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ConnectionSelect.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/HashDelete.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/HashExists.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/HashGet.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/HashGetAll.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/HashGetMultiple.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/HashIncrementBy.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/HashIncrementByFloat.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/HashKeys.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/HashLength.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/HashScan.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/HashSet.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/HashSetMultiple.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/HashSetPreserve.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/HashStringLength.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/HashValues.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/HyperLogLogAdd.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/HyperLogLogCount.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/HyperLogLogMerge.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/KeyDelete.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/KeyDump.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/KeyExists.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/KeyExpire.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/KeyExpireAt.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/KeyKeys.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/KeyMigrate.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/KeyMove.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/KeyPersist.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/KeyPreciseExpire.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/KeyPreciseExpireAt.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/KeyPreciseTimeToLive.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/KeyRandom.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/KeyRename.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/KeyRenamePreserve.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/KeyRestore.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/KeyScan.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/KeySort.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/KeyTimeToLive.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/KeyType.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ListIndex.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ListInsert.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ListLength.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ListPopFirst.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ListPopFirstBlocking.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ListPopLast.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ListPopLastBlocking.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ListPopLastPushHead.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ListPopLastPushHeadBlocking.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ListPushHead.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ListPushHeadX.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ListPushTail.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ListPushTailX.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ListRange.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ListRemove.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ListSet.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ListTrim.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/PrefixableCommandInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/Processor/KeyPrefixProcessor.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/Processor/ProcessorChain.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/Processor/ProcessorInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/PubSubPublish.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/PubSubPubsub.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/PubSubSubscribe.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/PubSubSubscribeByPattern.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/PubSubUnsubscribe.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/PubSubUnsubscribeByPattern.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/RawCommand.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ScriptCommand.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ServerBackgroundRewriteAOF.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ServerBackgroundSave.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ServerClient.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ServerCommand.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ServerConfig.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ServerDatabaseSize.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ServerEval.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ServerEvalSHA.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ServerFlushAll.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ServerFlushDatabase.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ServerInfo.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ServerInfoV26x.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ServerLastSave.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ServerMonitor.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ServerObject.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ServerSave.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ServerScript.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ServerSentinel.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ServerShutdown.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ServerSlaveOf.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ServerSlowlog.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ServerTime.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/SetAdd.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/SetCardinality.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/SetDifference.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/SetDifferenceStore.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/SetIntersection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/SetIntersectionStore.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/SetIsMember.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/SetMembers.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/SetMove.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/SetPop.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/SetRandomMember.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/SetRemove.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/SetScan.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/SetUnion.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/SetUnionStore.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringAppend.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringBitCount.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringBitOp.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringBitPos.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringDecrement.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringDecrementBy.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringGet.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringGetBit.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringGetMultiple.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringGetRange.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringGetSet.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringIncrement.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringIncrementBy.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringIncrementByFloat.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringPreciseSetExpire.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringSet.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringSetBit.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringSetExpire.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringSetMultiple.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringSetMultiplePreserve.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringSetPreserve.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringSetRange.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringStrlen.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/StringSubstr.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/TransactionDiscard.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/TransactionExec.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/TransactionMulti.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/TransactionUnwatch.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/TransactionWatch.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ZSetAdd.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ZSetCardinality.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ZSetCount.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ZSetIncrementBy.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ZSetIntersectionStore.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ZSetLexCount.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ZSetRange.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ZSetRangeByLex.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ZSetRangeByScore.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ZSetRank.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ZSetRemove.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ZSetRemoveRangeByLex.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ZSetRemoveRangeByRank.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ZSetRemoveRangeByScore.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ZSetReverseRange.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ZSetReverseRangeByLex.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ZSetReverseRangeByScore.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ZSetReverseRank.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ZSetScan.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ZSetScore.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Command/ZSetUnionStore.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/CommunicationException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Configuration/ClusterOption.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Configuration/ConnectionFactoryOption.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Configuration/ExceptionsOption.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Configuration/OptionInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Configuration/Options.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Configuration/OptionsInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Configuration/PrefixOption.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Configuration/ProfileOption.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Configuration/ReplicationOption.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Connection/AbstractConnection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Connection/Aggregate/ClusterInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Connection/Aggregate/MasterSlaveReplication.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Connection/Aggregate/PredisCluster.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Connection/Aggregate/RedisCluster.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Connection/Aggregate/ReplicationInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Connection/AggregateConnectionInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Connection/CompositeConnectionInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Connection/CompositeStreamConnection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Connection/ConnectionException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Connection/ConnectionInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Connection/Factory.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Connection/FactoryInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Connection/NodeConnectionInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Connection/Parameters.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Connection/ParametersInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Connection/PhpiredisSocketConnection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Connection/PhpiredisStreamConnection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Connection/StreamConnection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Connection/WebdisConnection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Monitor/Consumer.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/NotSupportedException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Pipeline/Atomic.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Pipeline/ConnectionErrorProof.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Pipeline/FireAndForget.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Pipeline/Pipeline.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/PredisException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Profile/Factory.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Profile/ProfileInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Profile/RedisProfile.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Profile/RedisUnstable.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Profile/RedisVersion200.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Profile/RedisVersion220.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Profile/RedisVersion240.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Profile/RedisVersion260.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Profile/RedisVersion280.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Profile/RedisVersion300.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Protocol/ProtocolException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Protocol/ProtocolProcessorInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Protocol/RequestSerializerInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Protocol/ResponseReaderInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Protocol/Text/CompositeProtocolProcessor.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Protocol/Text/Handler/BulkResponse.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Protocol/Text/Handler/ErrorResponse.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Protocol/Text/Handler/IntegerResponse.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Protocol/Text/Handler/MultiBulkResponse.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Protocol/Text/Handler/ResponseHandlerInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Protocol/Text/Handler/StatusResponse.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Protocol/Text/Handler/StreamableMultiBulkResponse.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Protocol/Text/ProtocolProcessor.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Protocol/Text/RequestSerializer.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Protocol/Text/ResponseReader.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/PubSub/AbstractConsumer.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/PubSub/Consumer.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/PubSub/DispatcherLoop.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Replication/ReplicationStrategy.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Response/Error.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Response/ErrorInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Response/Iterator/MultiBulk.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Response/Iterator/MultiBulkIterator.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Response/Iterator/MultiBulkTuple.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Response/ResponseInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Response/ServerException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Response/Status.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Session/Handler.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Transaction/AbortedMultiExecException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Transaction/MultiExec.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/Predis/Transaction/MultiExecState.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Actions.php (99%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Api.php (95%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Common/BackwardCapability/Account.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Common/FacebookRainLoopPersistentDataHandler.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Common/MbStringFix.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Common/PdoAbstract.php (99%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Common/RainLoopFacebookRedirectLoginHelper.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Config/AbstractConfig.php (94%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Config/Application.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Config/Plugin.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Enumerations/Capa.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Enumerations/Layout.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Enumerations/PluginPropertyType.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Enumerations/SignMeType.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Enumerations/TimeFormat.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Enumerations/UploadClientError.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Enumerations/UploadError.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Exceptions/ClientException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Exceptions/Exception.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Exceptions/InvalidArgumentException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Exceptions/RuntimeException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/KeyPathHelper.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Model/Account.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Model/Domain.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Model/Identity.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Model/Template.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Notifications.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Plugins/AbstractPlugin.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Plugins/Helper.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Plugins/Manager.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Plugins/Property.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/AbstractProvider.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/AddressBook.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/AddressBook/AddressBookInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/AddressBook/Classes/Contact.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/AddressBook/Classes/Property.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/AddressBook/Classes/Tag.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/AddressBook/Enumerations/PropertyType.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/AddressBook/PdoAddressBook.php (99%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/ChangePassword.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/ChangePassword/ChangePasswordInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Domain.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Domain/DefaultDomain.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Domain/DomainAdminInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Domain/DomainInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Files.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Files/FileStorage.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Files/IFiles.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Filters.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Filters/Classes/Filter.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Filters/Classes/FilterCondition.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Filters/Enumerations/ActionType.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Filters/Enumerations/ConditionField.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Filters/Enumerations/ConditionType.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Filters/Enumerations/ConditionsType.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Filters/FiltersInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Filters/SieveStorage.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Settings.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Settings/DefaultSettings.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Settings/ISettings.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Storage.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Storage/Enumerations/StorageType.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Storage/FileStorage.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Storage/IStorage.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Storage/TemproryApcStorage.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Suggestions.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Suggestions/ISuggestions.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Suggestions/OwnCloudSuggestions.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/Suggestions/TestSuggestions.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/TwoFactorAuth.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/TwoFactorAuth/AbstractTwoFactorAuth.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/TwoFactorAuth/GoogleTwoFactorAuth.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Providers/TwoFactorAuth/TwoFactorAuthInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Service.php (96%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/ServiceActions.php (95%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Settings.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Social.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/RainLoop/Utils.php (99%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Backend/AbstractBackend.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Backend/BackendInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Backend/NotificationSupport.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Backend/PDO.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Backend/SharingSupport.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Calendar.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/CalendarObject.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/CalendarQueryParser.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/CalendarQueryValidator.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/CalendarRootNode.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Exception/InvalidComponentType.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/ICSExportPlugin.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/ICalendar.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/ICalendarObject.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/IShareableCalendar.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/ISharedCalendar.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Notifications/Collection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Notifications/ICollection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Notifications/INode.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Notifications/INotificationType.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Notifications/Node.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Notifications/Notification/Invite.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Notifications/Notification/InviteReply.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Notifications/Notification/SystemStatus.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Plugin.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Principal/Collection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Principal/IProxyRead.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Principal/IProxyWrite.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Principal/ProxyRead.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Principal/ProxyWrite.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Principal/User.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Property/AllowedSharingModes.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Property/Invite.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Property/ScheduleCalendarTransp.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Property/SupportedCalendarComponentSet.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Property/SupportedCalendarData.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Property/SupportedCollationSet.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Schedule/IMip.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Schedule/IOutbox.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Schedule/Outbox.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/ShareableCalendar.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/SharedCalendar.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/SharingPlugin.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/UserCalendars.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CalDAV/Version.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CardDAV/AddressBook.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CardDAV/AddressBookQueryParser.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CardDAV/AddressBookRoot.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CardDAV/Backend/AbstractBackend.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CardDAV/Backend/BackendInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CardDAV/Backend/PDO.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CardDAV/Card.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CardDAV/IAddressBook.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CardDAV/ICard.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CardDAV/IDirectory.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CardDAV/Plugin.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CardDAV/Property/SupportedAddressData.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CardDAV/UserAddressBooks.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CardDAV/VCFExportPlugin.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/CardDAV/Version.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Auth/Backend/AbstractBasic.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Auth/Backend/AbstractDigest.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Auth/Backend/Apache.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Auth/Backend/BackendInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Auth/Backend/File.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Auth/Backend/PDO.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Auth/Plugin.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Browser/GuessContentType.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Browser/MapGetToPropFind.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Browser/Plugin.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Browser/assets/favicon.ico (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Browser/assets/icons/addressbook.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Browser/assets/icons/calendar.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Browser/assets/icons/card.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Browser/assets/icons/collection.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Browser/assets/icons/file.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Browser/assets/icons/parent.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Browser/assets/icons/principal.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Client.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Collection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Exception.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Exception/BadRequest.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Exception/Conflict.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Exception/ConflictingLock.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Exception/FileNotFound.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Exception/Forbidden.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Exception/InsufficientStorage.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Exception/InvalidResourceType.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Exception/LockTokenMatchesRequestUri.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Exception/Locked.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Exception/MethodNotAllowed.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Exception/NotAuthenticated.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Exception/NotFound.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Exception/NotImplemented.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Exception/PaymentRequired.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Exception/PreconditionFailed.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Exception/ReportNotSupported.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Exception/RequestedRangeNotSatisfiable.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Exception/ServiceUnavailable.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Exception/UnsupportedMediaType.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/FS/Directory.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/FS/File.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/FS/Node.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/FSExt/Directory.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/FSExt/File.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/FSExt/Node.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/File.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/ICollection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/IExtendedCollection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/IFile.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/INode.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/IProperties.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/IQuota.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Locks/Backend/AbstractBackend.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Locks/Backend/BackendInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Locks/Backend/FS.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Locks/Backend/File.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Locks/Backend/PDO.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Locks/LockInfo.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Locks/Plugin.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Mount/Plugin.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Node.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/ObjectTree.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/PartialUpdate/IFile.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/PartialUpdate/Plugin.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Property.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Property/GetLastModified.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Property/Href.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Property/HrefList.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Property/IHref.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Property/LockDiscovery.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Property/ResourceType.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Property/Response.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Property/ResponseList.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Property/SupportedLock.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Property/SupportedReportSet.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/PropertyInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Server.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/ServerPlugin.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/SimpleCollection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/SimpleFile.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/StringUtil.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/TemporaryFileFilterPlugin.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Tree.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Tree/Filesystem.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/URLUtil.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/UUIDUtil.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/Version.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAV/XMLUtil.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAVACL/AbstractPrincipalCollection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAVACL/Exception/AceConflict.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAVACL/Exception/NeedPrivileges.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAVACL/Exception/NoAbstract.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAVACL/Exception/NotRecognizedPrincipal.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAVACL/Exception/NotSupportedPrivilege.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAVACL/IACL.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAVACL/IPrincipal.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAVACL/IPrincipalCollection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAVACL/Plugin.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAVACL/Principal.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAVACL/PrincipalBackend/AbstractBackend.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAVACL/PrincipalBackend/BackendInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAVACL/PrincipalBackend/PDO.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAVACL/PrincipalCollection.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAVACL/Property/Acl.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAVACL/Property/AclRestrictions.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAVACL/Property/CurrentUserPrivilegeSet.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAVACL/Property/Principal.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAVACL/Property/SupportedPrivilegeSet.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/DAVACL/Version.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/HTTP/AWSAuth.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/HTTP/AbstractAuth.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/HTTP/BasicAuth.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/HTTP/DigestAuth.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/HTTP/Request.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/HTTP/Response.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/HTTP/Util.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/HTTP/Version.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Cli.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Component.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Component/VAlarm.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Component/VCalendar.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Component/VCard.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Component/VEvent.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Component/VFreeBusy.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Component/VJournal.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Component/VTodo.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/DateTimeParser.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Document.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/ElementList.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/EofException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/FreeBusyGenerator.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Node.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Parameter.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/ParseException.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Parser/Json.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Parser/MimeDir.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Parser/Parser.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Property.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Property/Binary.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Property/Boolean.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Property/FlatText.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Property/Float.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Property/ICalendar/CalAddress.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Property/ICalendar/Date.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Property/ICalendar/DateTime.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Property/ICalendar/Duration.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Property/ICalendar/Period.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Property/ICalendar/Recur.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Property/Integer.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Property/Text.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Property/Time.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Property/Unknown.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Property/Uri.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Property/UtcOffset.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Property/VCard/Date.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Property/VCard/DateAndOrTime.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Property/VCard/DateTime.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Property/VCard/LanguageTag.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Property/VCard/TimeStamp.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Reader.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/RecurrenceIterator.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Splitter/ICalendar.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Splitter/SplitterInterface.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Splitter/VCard.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/StringUtil.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/TimeZoneUtil.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/VCardConverter.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/Version.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/SabreForRainLoop/VObject/includes.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/lessphp/LICENSE (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/lessphp/README.md (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/lessphp/ctype.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/lessphp/lessc.inc.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/pclzip/_pclzip.lib.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/pclzip/gnu-lgpl.txt (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/pclzip/pclzip.lib.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/pclzip/readme.txt (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/spyc/COPYING (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/spyc/README.md (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/spyc/Spyc.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/spyc/composer.json (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/tmhOAuth/LICENSE (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/tmhOAuth/README.md (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/tmhOAuth/cacert.pem (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/tmhOAuth/tmhOAuth.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/libraries/tmhOAuth/tmhUtilities.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/README (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/README (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/_source.en.yml (100%) create mode 100644 app/rainloop/v/1.16.0/app/localization/admin/ca.yml create mode 100644 app/rainloop/v/1.16.0/app/localization/admin/ca_ES.yml rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/cs_CZ.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/da_DK.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/de_DE.yml (98%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/en_US.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/es_ES.yml (100%) create mode 100644 app/rainloop/v/1.16.0/app/localization/admin/eu.yml rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/fa_IR.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/fi_FI.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/fr_FR.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/hu_HU.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/id_ID.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/it_IT.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/ja_JP.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/lt_LT.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/nb_NO.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/nl_NL.yml (99%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/pl_PL.yml (96%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/pt_BR.yml (98%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/ru_RU.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/sk_SK.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/sl_SI.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/sv_SE.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/admin/zh_CN.yml (98%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/langs.yml (94%) create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/af.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/ar-dz.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/ar-kw.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/ar-ly.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/ar-ma.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/ar-sa.js rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/moment/ar-tn.js (79%) create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/ar.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/az.js rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/moment/be.js (53%) create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/bg.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/bm.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/bn-bd.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/bn.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/bo.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/br.js rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/moment/bs.js (67%) create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/ca.js rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/moment/cs.js (54%) create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/cv.js rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/moment/cy.js (63%) create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/da.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/de-at.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/de-ch.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/de.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/dv.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/el.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/en-au.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/en-ca.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/en-gb.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/en-ie.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/en-il.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/en-in.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/en-nz.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/en-sg.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/eo.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/es-do.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/es-mx.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/es-us.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/es.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/et.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/eu.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/fa.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/fi.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/fil.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/fo.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/fr-ca.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/fr-ch.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/fr.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/fy.js rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/moment/ga.js (56%) create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/gd.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/gl.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/gom-deva.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/gom-latn.js rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/moment/gu.js (85%) create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/he.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/hi.js rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/moment/hr.js (68%) create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/hu.js rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/moment/hy-am.js (56%) create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/id.js rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/moment/is.js (54%) create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/it-ch.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/it.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/ja.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/jv.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/ka.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/kk.js rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/moment/km.js (77%) create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/kn.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/ko.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/ku.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/ky.js rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/moment/lb.js (73%) create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/lo.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/lt.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/lv.js rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/moment/me.js (60%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/moment/mi.js (78%) create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/mk.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/ml.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/mn.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/mr.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/ms-my.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/ms.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/mt.js rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/moment/my.js (71%) create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/nb.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/ne.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/nl-be.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/nl.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/nn.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/oc-lnc.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/pa-in.js rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/moment/pl.js (57%) create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/pt-br.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/pt.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/ro.js rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/moment/ru.js (65%) create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/sd.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/se.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/si.js rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/moment/sk.js (63%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/moment/sl.js (72%) create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/sq.js rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/moment/sr-cyrl.js (61%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/moment/sr.js (57%) create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/ss.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/sv.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/sw.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/ta.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/te.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/tet.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/tg.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/th.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/tk.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/tl-ph.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/tlh.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/tr.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/tzl.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/tzm-latn.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/tzm.js rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/moment/ug-cn.js (93%) create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/uk.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/ur.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/uz-latn.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/uz.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/vi.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/x-pseudo.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/yo.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/zh-cn.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/zh-hk.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/zh-mo.js create mode 100644 app/rainloop/v/1.16.0/app/localization/moment/zh-tw.js rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/README (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/_source.en.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/ar_SA.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/bg_BG.yml (100%) create mode 100644 app/rainloop/v/1.16.0/app/localization/webmail/ca.yml create mode 100644 app/rainloop/v/1.16.0/app/localization/webmail/ca_ES.yml rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/cs_CZ.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/da_DK.yml (99%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/de_DE.yml (99%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/el_GR.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/en_GB.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/en_US.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/es_ES.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/et_EE.yml (100%) create mode 100644 app/rainloop/v/1.16.0/app/localization/webmail/eu.yml rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/fa_IR.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/fi_FI.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/fr_FR.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/hu_HU.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/id_ID.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/is_IS.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/it_IT.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/ja_JP.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/ko_KR.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/lt_LT.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/lv_LV.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/nb_NO.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/nl_NL.yml (99%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/pl_PL.yml (99%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/pt_BR.yml (99%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/pt_PT.yml (99%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/ro_RO.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/ru_RU.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/sk_SK.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/sl_SI.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/sv_SE.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/tr_TR.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/uk_UA.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/zh_CN.yml (99%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/localization/webmail/zh_TW.yml (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/RainLoop.asc (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/empty-contact.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/amazon.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/apple.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/asana.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/battle.net.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/blizzard.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/cnet.online.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/connect.asana.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/e.paypal.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/ea.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/ebay.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/em.ea.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/email.blizzard.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/email.microsoft.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/email.skype.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/facebook.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/facebookmail.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/github.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/google.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/id.apple.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/intl.paypal.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/microsoft.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/microsoftonline.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/myspace.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/news.myspace.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/news.onlive.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/onlive.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/paypal.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/plus.google.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/postmaster.twitter.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/reply.ebay.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/reply1.ebay.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/reply2.ebay.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/reply3.ebay.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/skype.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/steampowered.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/ted.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/twitter.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/resources/images/services/youtube.com.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/BadBrowser.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Error.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Index.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Social.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Themes/template.less (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Themes/values.less (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Admin/AdminLogin.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Admin/AdminMenu.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Admin/AdminPane.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Admin/AdminSettingsAbout.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Admin/AdminSettingsBranding.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Admin/AdminSettingsContacts.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Admin/AdminSettingsDomainListItem.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Admin/AdminSettingsDomains.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Admin/AdminSettingsGeneral.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Admin/AdminSettingsLicensing.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Admin/AdminSettingsLogin.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Admin/AdminSettingsPackages.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Admin/AdminSettingsPackagesListItem.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Admin/AdminSettingsPackagesTable.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Admin/AdminSettingsPluginListItem.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Admin/AdminSettingsPluginProperty.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Admin/AdminSettingsPlugins.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Admin/AdminSettingsSecurity.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Admin/AdminSettingsSocial.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Admin/PopupsActivate.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Admin/PopupsDomain.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Admin/PopupsDomainAlias.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Admin/PopupsPlugin.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Common/Cmd.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Common/Pagenator.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Common/PopupsAsk.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Common/PopupsKeyboardShortcutsHelp.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Common/PopupsLanguages.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Common/PopupsWelcomePage.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Components/Checkbox.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Components/CheckboxClassic.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Components/CheckboxMaterialDesign.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Components/Date.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Components/Input.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Components/Radio.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Components/SaveTrigger.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Components/Select.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/Components/TextArea.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/About.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/ComposeAttachment.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/Login.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/LoginWelcome.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/MailFolderList.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/MailFolderListItem.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/MailFolderListSystemItem.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/MailMessageList.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/MailMessageListItem.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/MailMessageListItemNoPreviewPane.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/MailMessageView.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/PhotoSwipe.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/PopupsAccount.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/PopupsAddOpenPgpKey.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/PopupsAdvancedSearch.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/PopupsCompose.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/PopupsComposeOpenPgp.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/PopupsContacts.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/PopupsFilter.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/PopupsFolderClear.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/PopupsFolderCreate.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/PopupsFolderSystem.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/PopupsIdentity.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/PopupsMessageOpenPgp.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/PopupsNewOpenPgpKey.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/PopupsTemplate.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/PopupsTwoFactorConfiguration.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/PopupsTwoFactorTest.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/PopupsViewOpenPgpKey.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/PopupsWindowSimpleMessage.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsAccounts.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsChangePassword.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsContacts.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsCustom.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsFilters.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsFiltersActionDiscard.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsFiltersActionForward.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsFiltersActionMoveToFolder.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsFiltersActionNone.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsFiltersActionReject.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsFiltersActionVacation.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsFiltersConditionDefault.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsFiltersConditionMore.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsFiltersConditionSize.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsFolderItem.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsFolders.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsGeneral.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsMenu.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsOpenPGP.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsPane.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsSecurity.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsSocial.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsTemplates.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SettingsThemes.html (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/app/templates/Views/User/SystemDropDown.html (93%) rename app/rainloop/v/{1.15.0 => 1.16.0}/check.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/include.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/index.php (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/index.php.root (89%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/android-icon.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/apple-touch-icon.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/browsers/chrome.gif (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/browsers/firefox.gif (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/browsers/opera.gif (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/browsers/safari.gif (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/FIXES.txt (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/build-config.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/ckeditor.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/ckeditor.orig.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/config.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/contents.css (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/af.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/ar.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/az.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/bg.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/bn.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/bs.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/ca.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/cs.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/cy.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/da.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/de-ch.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/de.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/el.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/en-au.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/en-ca.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/en-gb.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/en.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/eo.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/es.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/et.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/eu.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/fa.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/fi.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/fo.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/fr-ca.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/fr.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/gl.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/gu.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/he.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/hi.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/hr.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/hu.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/id.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/is.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/it.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/ja.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/ka.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/km.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/ko.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/ku.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/lt.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/lv.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/mk.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/mn.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/ms.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/nb.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/nl.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/no.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/oc.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/pl.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/pt-br.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/pt.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/ro.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/ru.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/si.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/sk.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/sl.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/sq.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/sr-latn.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/sr.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/sv.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/th.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/tr.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/tt.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/ug.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/uk.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/vi.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/zh-cn.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/lang/zh.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/about/dialogs/about.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/about/dialogs/logo_ckeditor.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/base64image/LICENSE.md (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/base64image/README.md (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/base64image/dialogs/base64image.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/clipboard/dialogs/paste.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/colordialog/dialogs/colordialog.css (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/colordialog/dialogs/colordialog.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/dialog/dialogDefinition.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/icons.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/icons_hidpi.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/image/dialogs/image.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/image/images/noimage.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/image2/dialogs/image2.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/link/dialogs/anchor.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/link/dialogs/link.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/link/images/anchor.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/link/images/hidpi/anchor.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/plain/icons/hidpi/plain-rtl.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/plain/icons/hidpi/plain.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/plain/icons/plain-rtl.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/plain/icons/plain.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/plain/plugin.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/quicktable/CHANGELOG.md (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/quicktable/Gruntfile.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/quicktable/LICENSE (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/quicktable/README.md (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/quicktable/package.json (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/quicktable/template.jst (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/signature/plugin.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/table/dialogs/table.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/plugins/widget/images/handle.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/skins/moono-lisa/dialog.css (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/skins/moono-lisa/dialog_ie.css (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/skins/moono-lisa/dialog_ie8.css (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/skins/moono-lisa/dialog_iequirks.css (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/skins/moono-lisa/editor.css (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/skins/moono-lisa/editor_gecko.css (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/skins/moono-lisa/editor_ie.css (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/skins/moono-lisa/editor_ie8.css (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/skins/moono-lisa/editor_iequirks.css (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/skins/moono-lisa/icons.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/skins/moono-lisa/icons_hidpi.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/skins/moono-lisa/images/arrow.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/skins/moono-lisa/images/close.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/skins/moono-lisa/images/hidpi/close.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/skins/moono-lisa/images/hidpi/lock-open.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/skins/moono-lisa/images/hidpi/lock.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/skins/moono-lisa/images/hidpi/refresh.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/skins/moono-lisa/images/lock-open.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/skins/moono-lisa/images/lock.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/skins/moono-lisa/images/refresh.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/skins/moono-lisa/images/spinner.gif (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/skins/moono-lisa/readme.md (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/ckeditor/styles.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/app.css (99%) create mode 100644 app/rainloop/v/1.16.0/static/css/app.min.css rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/default-skin.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/default-skin.svg (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/flags.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/fonts/lg.eot (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/fonts/lg.svg (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/fonts/lg.ttf (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/fonts/lg.woff (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/fonts/rainloop.eot (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/fonts/rainloop.svg (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/fonts/rainloop.ttf (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/fonts/rainloop.woff (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/images/editor.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/images/empty-contact.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/images/grey.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/images/icom-message-notification.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/images/loading.gif (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/images/rainloop-logo.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/images/sync.gif (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/images/sync.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/images/white.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/img/loading.gif (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/loading.gif (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/preloader.gif (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/social.css (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/css/social.min.css (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/favicon-light.ico (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/favicon-light.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/favicon.ico (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/favicon.png (100%) create mode 100644 app/rainloop/v/1.16.0/static/js/admin.js rename app/rainloop/v/{1.15.0 => 1.16.0}/static/js/app.js (51%) create mode 100644 app/rainloop/v/1.16.0/static/js/boot.js rename app/rainloop/v/{1.15.0 => 1.16.0}/static/js/libs.js (67%) create mode 100644 app/rainloop/v/1.16.0/static/js/min/admin.min.js create mode 100644 app/rainloop/v/1.16.0/static/js/min/app.min.js create mode 100644 app/rainloop/v/1.16.0/static/js/min/boot.min.js create mode 100644 app/rainloop/v/1.16.0/static/js/min/libs.min.js rename app/rainloop/v/{1.15.0 => 1.16.0}/static/js/min/openpgp.min.js (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/js/min/openpgp.worker.min.js (100%) create mode 100644 app/rainloop/v/1.16.0/static/js/min/polyfills.min.js create mode 100644 app/rainloop/v/1.16.0/static/js/polyfills.js rename app/rainloop/v/{1.15.0 => 1.16.0}/static/manifest.json (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/sounds/new-mail.mp3 (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/static/sounds/new-mail.ogg (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/A/images/background.jpg (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/A/images/preview.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/A/styles.less (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Blurred/images/background.jpg (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Blurred/images/preview.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Blurred/styles.less (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Clear/images/preview.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Clear/styles.less (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/DarkShine/images/background.jpg (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/DarkShine/images/preview.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/DarkShine/styles.less (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Default/images/background.jpg (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Default/images/background.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Default/images/preview.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Default/styles.less (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Linen/images/background.jpg (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Linen/images/background.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Linen/images/preview.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Linen/styles.less (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Love/images/background.jpg (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Love/images/preview.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Love/styles.less (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Mobile/ext.less (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Mobile/images/preview.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Mobile/styles.less (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Snow/images/background.jpg (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Snow/images/preview.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Snow/styles.less (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Squares/images/background.jpg (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Squares/images/background.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Squares/images/preview.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Squares/styles.less (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/SquaresDark/images/background.jpg (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/SquaresDark/images/background.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/SquaresDark/images/preview.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/SquaresDark/styles.less (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Stripes/images/background.jpg (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Stripes/images/preview.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Stripes/styles.less (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Wood/images/background.jpg (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Wood/images/background.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Wood/images/preview.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Wood/styles.less (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Xv/images/background.jpg (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Xv/images/background.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Xv/images/preview.png (100%) rename app/rainloop/v/{1.15.0 => 1.16.0}/themes/Xv/styles.less (100%) diff --git a/app/data/EMPTY b/app/data/EMPTY index d19d089..71bd5d9 100644 --- a/app/data/EMPTY +++ b/app/data/EMPTY @@ -1 +1 @@ -1.15.0 \ No newline at end of file +1.16.0 \ No newline at end of file diff --git a/app/data/VERSION b/app/data/VERSION index d19d089..71bd5d9 100644 --- a/app/data/VERSION +++ b/app/data/VERSION @@ -1 +1 @@ -1.15.0 \ No newline at end of file +1.16.0 \ No newline at end of file diff --git a/app/index.php b/app/index.php index 381fc09..289ea3a 100644 --- a/app/index.php +++ b/app/index.php @@ -12,7 +12,7 @@ if (!@function_exists('__get_custom_data_full_path')) if (!defined('APP_VERSION')) { - define('APP_VERSION', '1.15.0'); + define('APP_VERSION', '1.16.0'); define('APP_VERSION_TYPE', 'community'); define('APP_INDEX_ROOT_FILE', __FILE__); define('APP_INDEX_ROOT_PATH', str_replace('\\', '/', rtrim(dirname(__FILE__), '\\/').'/')); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/af.js b/app/rainloop/v/1.15.0/app/localization/moment/af.js deleted file mode 100644 index 0b2bb26..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/af.js +++ /dev/null @@ -1,72 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var af = moment.defineLocale('af', { - months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'), - monthsShort : 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), - weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'), - weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), - weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), - meridiemParse: /vm|nm/i, - isPM : function (input) { - return /^nm$/i.test(input); - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 12) { - return isLower ? 'vm' : 'VM'; - } else { - return isLower ? 'nm' : 'NM'; - } - }, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[Vandag om] LT', - nextDay : '[Môre om] LT', - nextWeek : 'dddd [om] LT', - lastDay : '[Gister om] LT', - lastWeek : '[Laas] dddd [om] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'oor %s', - past : '%s gelede', - s : '\'n paar sekondes', - ss : '%d sekondes', - m : '\'n minuut', - mm : '%d minute', - h : '\'n uur', - hh : '%d ure', - d : '\'n dag', - dd : '%d dae', - M : '\'n maand', - MM : '%d maande', - y : '\'n jaar', - yy : '%d jaar' - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal : function (number) { - return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter - }, - week : { - dow : 1, // Maandag is die eerste dag van die week. - doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar. - } - }); - - return af; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/ar-dz.js b/app/rainloop/v/1.15.0/app/localization/moment/ar-dz.js deleted file mode 100644 index e6efd0a..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/ar-dz.js +++ /dev/null @@ -1,58 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var arDz = moment.defineLocale('ar-dz', { - months : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - monthsShort : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'أح_إث_ثلا_أر_خم_جم_سب'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[اليوم على الساعة] LT', - nextDay: '[غدا على الساعة] LT', - nextWeek: 'dddd [على الساعة] LT', - lastDay: '[أمس على الساعة] LT', - lastWeek: 'dddd [على الساعة] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'في %s', - past : 'منذ %s', - s : 'ثوان', - ss : '%d ثانية', - m : 'دقيقة', - mm : '%d دقائق', - h : 'ساعة', - hh : '%d ساعات', - d : 'يوم', - dd : '%d أيام', - M : 'شهر', - MM : '%d أشهر', - y : 'سنة', - yy : '%d سنوات' - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return arDz; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/ar-kw.js b/app/rainloop/v/1.15.0/app/localization/moment/ar-kw.js deleted file mode 100644 index 6a72e9b..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/ar-kw.js +++ /dev/null @@ -1,58 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var arKw = moment.defineLocale('ar-kw', { - months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), - monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), - weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[اليوم على الساعة] LT', - nextDay: '[غدا على الساعة] LT', - nextWeek: 'dddd [على الساعة] LT', - lastDay: '[أمس على الساعة] LT', - lastWeek: 'dddd [على الساعة] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'في %s', - past : 'منذ %s', - s : 'ثوان', - ss : '%d ثانية', - m : 'دقيقة', - mm : '%d دقائق', - h : 'ساعة', - hh : '%d ساعات', - d : 'يوم', - dd : '%d أيام', - M : 'شهر', - MM : '%d أشهر', - y : 'سنة', - yy : '%d سنوات' - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 12 // The week that contains Jan 12th is the first week of the year. - } - }); - - return arKw; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/ar-ly.js b/app/rainloop/v/1.15.0/app/localization/moment/ar-ly.js deleted file mode 100644 index 0df68c8..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/ar-ly.js +++ /dev/null @@ -1,121 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var symbolMap = { - '1': '1', - '2': '2', - '3': '3', - '4': '4', - '5': '5', - '6': '6', - '7': '7', - '8': '8', - '9': '9', - '0': '0' - }, pluralForm = function (n) { - return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5; - }, plurals = { - s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'], - m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'], - h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'], - d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'], - M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'], - y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام'] - }, pluralize = function (u) { - return function (number, withoutSuffix, string, isFuture) { - var f = pluralForm(number), - str = plurals[u][pluralForm(number)]; - if (f === 2) { - str = str[withoutSuffix ? 0 : 1]; - } - return str.replace(/%d/i, number); - }; - }, months = [ - 'يناير', - 'فبراير', - 'مارس', - 'أبريل', - 'مايو', - 'يونيو', - 'يوليو', - 'أغسطس', - 'سبتمبر', - 'أكتوبر', - 'نوفمبر', - 'ديسمبر' - ]; - - var arLy = moment.defineLocale('ar-ly', { - months : months, - monthsShort : months, - weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'D/\u200FM/\u200FYYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - meridiemParse: /ص|م/, - isPM : function (input) { - return 'م' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - calendar : { - sameDay: '[اليوم عند الساعة] LT', - nextDay: '[غدًا عند الساعة] LT', - nextWeek: 'dddd [عند الساعة] LT', - lastDay: '[أمس عند الساعة] LT', - lastWeek: 'dddd [عند الساعة] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'بعد %s', - past : 'منذ %s', - s : pluralize('s'), - ss : pluralize('s'), - m : pluralize('m'), - mm : pluralize('m'), - h : pluralize('h'), - hh : pluralize('h'), - d : pluralize('d'), - dd : pluralize('d'), - M : pluralize('M'), - MM : pluralize('M'), - y : pluralize('y'), - yy : pluralize('y') - }, - preparse: function (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }).replace(/,/g, '،'); - }, - week : { - dow : 6, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 12th is the first week of the year. - } - }); - - return arLy; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/ar-ma.js b/app/rainloop/v/1.15.0/app/localization/moment/ar-ma.js deleted file mode 100644 index 42db49a..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/ar-ma.js +++ /dev/null @@ -1,58 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var arMa = moment.defineLocale('ar-ma', { - months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), - monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), - weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[اليوم على الساعة] LT', - nextDay: '[غدا على الساعة] LT', - nextWeek: 'dddd [على الساعة] LT', - lastDay: '[أمس على الساعة] LT', - lastWeek: 'dddd [على الساعة] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'في %s', - past : 'منذ %s', - s : 'ثوان', - ss : '%d ثانية', - m : 'دقيقة', - mm : '%d دقائق', - h : 'ساعة', - hh : '%d ساعات', - d : 'يوم', - dd : '%d أيام', - M : 'شهر', - MM : '%d أشهر', - y : 'سنة', - yy : '%d سنوات' - }, - week : { - dow : 6, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 12th is the first week of the year. - } - }); - - return arMa; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/ar-sa.js b/app/rainloop/v/1.15.0/app/localization/moment/ar-sa.js deleted file mode 100644 index 1c6d46d..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/ar-sa.js +++ /dev/null @@ -1,103 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var symbolMap = { - '1': '١', - '2': '٢', - '3': '٣', - '4': '٤', - '5': '٥', - '6': '٦', - '7': '٧', - '8': '٨', - '9': '٩', - '0': '٠' - }, numberMap = { - '١': '1', - '٢': '2', - '٣': '3', - '٤': '4', - '٥': '5', - '٦': '6', - '٧': '7', - '٨': '8', - '٩': '9', - '٠': '0' - }; - - var arSa = moment.defineLocale('ar-sa', { - months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), - weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - meridiemParse: /ص|م/, - isPM : function (input) { - return 'م' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - calendar : { - sameDay: '[اليوم على الساعة] LT', - nextDay: '[غدا على الساعة] LT', - nextWeek: 'dddd [على الساعة] LT', - lastDay: '[أمس على الساعة] LT', - lastWeek: 'dddd [على الساعة] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'في %s', - past : 'منذ %s', - s : 'ثوان', - ss : '%d ثانية', - m : 'دقيقة', - mm : '%d دقائق', - h : 'ساعة', - hh : '%d ساعات', - d : 'يوم', - dd : '%d أيام', - M : 'شهر', - MM : '%d أشهر', - y : 'سنة', - yy : '%d سنوات' - }, - preparse: function (string) { - return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { - return numberMap[match]; - }).replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }).replace(/,/g, '،'); - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 6th is the first week of the year. - } - }); - - return arSa; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/ar.js b/app/rainloop/v/1.15.0/app/localization/moment/ar.js deleted file mode 100644 index 1549cc1..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/ar.js +++ /dev/null @@ -1,134 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var symbolMap = { - '1': '١', - '2': '٢', - '3': '٣', - '4': '٤', - '5': '٥', - '6': '٦', - '7': '٧', - '8': '٨', - '9': '٩', - '0': '٠' - }, numberMap = { - '١': '1', - '٢': '2', - '٣': '3', - '٤': '4', - '٥': '5', - '٦': '6', - '٧': '7', - '٨': '8', - '٩': '9', - '٠': '0' - }, pluralForm = function (n) { - return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5; - }, plurals = { - s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'], - m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'], - h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'], - d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'], - M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'], - y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام'] - }, pluralize = function (u) { - return function (number, withoutSuffix, string, isFuture) { - var f = pluralForm(number), - str = plurals[u][pluralForm(number)]; - if (f === 2) { - str = str[withoutSuffix ? 0 : 1]; - } - return str.replace(/%d/i, number); - }; - }, months = [ - 'يناير', - 'فبراير', - 'مارس', - 'أبريل', - 'مايو', - 'يونيو', - 'يوليو', - 'أغسطس', - 'سبتمبر', - 'أكتوبر', - 'نوفمبر', - 'ديسمبر' - ]; - - var ar = moment.defineLocale('ar', { - months : months, - monthsShort : months, - weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), - weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), - weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'D/\u200FM/\u200FYYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - meridiemParse: /ص|م/, - isPM : function (input) { - return 'م' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ص'; - } else { - return 'م'; - } - }, - calendar : { - sameDay: '[اليوم عند الساعة] LT', - nextDay: '[غدًا عند الساعة] LT', - nextWeek: 'dddd [عند الساعة] LT', - lastDay: '[أمس عند الساعة] LT', - lastWeek: 'dddd [عند الساعة] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'بعد %s', - past : 'منذ %s', - s : pluralize('s'), - ss : pluralize('s'), - m : pluralize('m'), - mm : pluralize('m'), - h : pluralize('h'), - hh : pluralize('h'), - d : pluralize('d'), - dd : pluralize('d'), - M : pluralize('M'), - MM : pluralize('M'), - y : pluralize('y'), - yy : pluralize('y') - }, - preparse: function (string) { - return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { - return numberMap[match]; - }).replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }).replace(/,/g, '،'); - }, - week : { - dow : 6, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 12th is the first week of the year. - } - }); - - return ar; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/az.js b/app/rainloop/v/1.15.0/app/localization/moment/az.js deleted file mode 100644 index 348ddff..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/az.js +++ /dev/null @@ -1,104 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var suffixes = { - 1: '-inci', - 5: '-inci', - 8: '-inci', - 70: '-inci', - 80: '-inci', - 2: '-nci', - 7: '-nci', - 20: '-nci', - 50: '-nci', - 3: '-üncü', - 4: '-üncü', - 100: '-üncü', - 6: '-ncı', - 9: '-uncu', - 10: '-uncu', - 30: '-uncu', - 60: '-ıncı', - 90: '-ıncı' - }; - - var az = moment.defineLocale('az', { - months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'), - monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), - weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'), - weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'), - weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[bugün saat] LT', - nextDay : '[sabah saat] LT', - nextWeek : '[gələn həftə] dddd [saat] LT', - lastDay : '[dünən] LT', - lastWeek : '[keçən həftə] dddd [saat] LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s sonra', - past : '%s əvvəl', - s : 'birneçə saniyə', - ss : '%d saniyə', - m : 'bir dəqiqə', - mm : '%d dəqiqə', - h : 'bir saat', - hh : '%d saat', - d : 'bir gün', - dd : '%d gün', - M : 'bir ay', - MM : '%d ay', - y : 'bir il', - yy : '%d il' - }, - meridiemParse: /gecə|səhər|gündüz|axşam/, - isPM : function (input) { - return /^(gündüz|axşam)$/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'gecə'; - } else if (hour < 12) { - return 'səhər'; - } else if (hour < 17) { - return 'gündüz'; - } else { - return 'axşam'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, - ordinal : function (number) { - if (number === 0) { // special case for zero - return number + '-ıncı'; - } - var a = number % 10, - b = number % 100 - a, - c = number >= 100 ? 100 : null; - return number + (suffixes[a] || suffixes[b] || suffixes[c]); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 7th is the first week of the year. - } - }); - - return az; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/bg.js b/app/rainloop/v/1.15.0/app/localization/moment/bg.js deleted file mode 100644 index c70ba30..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/bg.js +++ /dev/null @@ -1,89 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var bg = moment.defineLocale('bg', { - months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'), - monthsShort : 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'), - weekdays : 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'), - weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'), - weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'D.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY H:mm', - LLLL : 'dddd, D MMMM YYYY H:mm' - }, - calendar : { - sameDay : '[Днес в] LT', - nextDay : '[Утре в] LT', - nextWeek : 'dddd [в] LT', - lastDay : '[Вчера в] LT', - lastWeek : function () { - switch (this.day()) { - case 0: - case 3: - case 6: - return '[В изминалата] dddd [в] LT'; - case 1: - case 2: - case 4: - case 5: - return '[В изминалия] dddd [в] LT'; - } - }, - sameElse : 'L' - }, - relativeTime : { - future : 'след %s', - past : 'преди %s', - s : 'няколко секунди', - ss : '%d секунди', - m : 'минута', - mm : '%d минути', - h : 'час', - hh : '%d часа', - d : 'ден', - dd : '%d дни', - M : 'месец', - MM : '%d месеца', - y : 'година', - yy : '%d години' - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, - ordinal : function (number) { - var lastDigit = number % 10, - last2Digits = number % 100; - if (number === 0) { - return number + '-ев'; - } else if (last2Digits === 0) { - return number + '-ен'; - } else if (last2Digits > 10 && last2Digits < 20) { - return number + '-ти'; - } else if (lastDigit === 1) { - return number + '-ви'; - } else if (lastDigit === 2) { - return number + '-ри'; - } else if (lastDigit === 7 || lastDigit === 8) { - return number + '-ми'; - } else { - return number + '-ти'; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 7th is the first week of the year. - } - }); - - return bg; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/bm.js b/app/rainloop/v/1.15.0/app/localization/moment/bm.js deleted file mode 100644 index 2bb50f5..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/bm.js +++ /dev/null @@ -1,57 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var bm = moment.defineLocale('bm', { - months : 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split('_'), - monthsShort : 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'), - weekdays : 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), - weekdaysShort : 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'), - weekdaysMin : 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'MMMM [tile] D [san] YYYY', - LLL : 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm', - LLLL : 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm' - }, - calendar : { - sameDay : '[Bi lɛrɛ] LT', - nextDay : '[Sini lɛrɛ] LT', - nextWeek : 'dddd [don lɛrɛ] LT', - lastDay : '[Kunu lɛrɛ] LT', - lastWeek : 'dddd [tɛmɛnen lɛrɛ] LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s kɔnɔ', - past : 'a bɛ %s bɔ', - s : 'sanga dama dama', - ss : 'sekondi %d', - m : 'miniti kelen', - mm : 'miniti %d', - h : 'lɛrɛ kelen', - hh : 'lɛrɛ %d', - d : 'tile kelen', - dd : 'tile %d', - M : 'kalo kelen', - MM : 'kalo %d', - y : 'san kelen', - yy : 'san %d' - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return bm; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/bn.js b/app/rainloop/v/1.15.0/app/localization/moment/bn.js deleted file mode 100644 index 8fe7158..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/bn.js +++ /dev/null @@ -1,118 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var symbolMap = { - '1': '১', - '2': '২', - '3': '৩', - '4': '৪', - '5': '৫', - '6': '৬', - '7': '৭', - '8': '৮', - '9': '৯', - '0': '০' - }, - numberMap = { - '১': '1', - '২': '2', - '৩': '3', - '৪': '4', - '৫': '5', - '৬': '6', - '৭': '7', - '৮': '8', - '৯': '9', - '০': '0' - }; - - var bn = moment.defineLocale('bn', { - months : 'জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'), - monthsShort : 'জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'), - weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'), - weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'), - weekdaysMin : 'রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি'.split('_'), - longDateFormat : { - LT : 'A h:mm সময়', - LTS : 'A h:mm:ss সময়', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm সময়', - LLLL : 'dddd, D MMMM YYYY, A h:mm সময়' - }, - calendar : { - sameDay : '[আজ] LT', - nextDay : '[আগামীকাল] LT', - nextWeek : 'dddd, LT', - lastDay : '[গতকাল] LT', - lastWeek : '[গত] dddd, LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s পরে', - past : '%s আগে', - s : 'কয়েক সেকেন্ড', - ss : '%d সেকেন্ড', - m : 'এক মিনিট', - mm : '%d মিনিট', - h : 'এক ঘন্টা', - hh : '%d ঘন্টা', - d : 'এক দিন', - dd : '%d দিন', - M : 'এক মাস', - MM : '%d মাস', - y : 'এক বছর', - yy : '%d বছর' - }, - preparse: function (string) { - return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ((meridiem === 'রাত' && hour >= 4) || - (meridiem === 'দুপুর' && hour < 5) || - meridiem === 'বিকাল') { - return hour + 12; - } else { - return hour; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'রাত'; - } else if (hour < 10) { - return 'সকাল'; - } else if (hour < 17) { - return 'দুপুর'; - } else if (hour < 20) { - return 'বিকাল'; - } else { - return 'রাত'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 6th is the first week of the year. - } - }); - - return bn; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/bo.js b/app/rainloop/v/1.15.0/app/localization/moment/bo.js deleted file mode 100644 index 6a98016..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/bo.js +++ /dev/null @@ -1,118 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var symbolMap = { - '1': '༡', - '2': '༢', - '3': '༣', - '4': '༤', - '5': '༥', - '6': '༦', - '7': '༧', - '8': '༨', - '9': '༩', - '0': '༠' - }, - numberMap = { - '༡': '1', - '༢': '2', - '༣': '3', - '༤': '4', - '༥': '5', - '༦': '6', - '༧': '7', - '༨': '8', - '༩': '9', - '༠': '0' - }; - - var bo = moment.defineLocale('bo', { - months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'), - monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'), - weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'), - weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'), - weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'), - longDateFormat : { - LT : 'A h:mm', - LTS : 'A h:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm', - LLLL : 'dddd, D MMMM YYYY, A h:mm' - }, - calendar : { - sameDay : '[དི་རིང] LT', - nextDay : '[སང་ཉིན] LT', - nextWeek : '[བདུན་ཕྲག་རྗེས་མ], LT', - lastDay : '[ཁ་སང] LT', - lastWeek : '[བདུན་ཕྲག་མཐའ་མ] dddd, LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s ལ་', - past : '%s སྔན་ལ', - s : 'ལམ་སང', - ss : '%d སྐར་ཆ།', - m : 'སྐར་མ་གཅིག', - mm : '%d སྐར་མ', - h : 'ཆུ་ཚོད་གཅིག', - hh : '%d ཆུ་ཚོད', - d : 'ཉིན་གཅིག', - dd : '%d ཉིན་', - M : 'ཟླ་བ་གཅིག', - MM : '%d ཟླ་བ', - y : 'ལོ་གཅིག', - yy : '%d ལོ' - }, - preparse: function (string) { - return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ((meridiem === 'མཚན་མོ' && hour >= 4) || - (meridiem === 'ཉིན་གུང' && hour < 5) || - meridiem === 'དགོང་དག') { - return hour + 12; - } else { - return hour; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'མཚན་མོ'; - } else if (hour < 10) { - return 'ཞོགས་ཀས'; - } else if (hour < 17) { - return 'ཉིན་གུང'; - } else if (hour < 20) { - return 'དགོང་དག'; - } else { - return 'མཚན་མོ'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 6th is the first week of the year. - } - }); - - return bo; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/br.js b/app/rainloop/v/1.15.0/app/localization/moment/br.js deleted file mode 100644 index 42994ca..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/br.js +++ /dev/null @@ -1,107 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - function relativeTimeWithMutation(number, withoutSuffix, key) { - var format = { - 'mm': 'munutenn', - 'MM': 'miz', - 'dd': 'devezh' - }; - return number + ' ' + mutation(format[key], number); - } - function specialMutationForYears(number) { - switch (lastNumber(number)) { - case 1: - case 3: - case 4: - case 5: - case 9: - return number + ' bloaz'; - default: - return number + ' vloaz'; - } - } - function lastNumber(number) { - if (number > 9) { - return lastNumber(number % 10); - } - return number; - } - function mutation(text, number) { - if (number === 2) { - return softMutation(text); - } - return text; - } - function softMutation(text) { - var mutationTable = { - 'm': 'v', - 'b': 'v', - 'd': 'z' - }; - if (mutationTable[text.charAt(0)] === undefined) { - return text; - } - return mutationTable[text.charAt(0)] + text.substring(1); - } - - var br = moment.defineLocale('br', { - months : 'Genver_C\'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'), - monthsShort : 'Gen_C\'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), - weekdays : 'Sul_Lun_Meurzh_Merc\'her_Yaou_Gwener_Sadorn'.split('_'), - weekdaysShort : 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), - weekdaysMin : 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'h[e]mm A', - LTS : 'h[e]mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D [a viz] MMMM YYYY', - LLL : 'D [a viz] MMMM YYYY h[e]mm A', - LLLL : 'dddd, D [a viz] MMMM YYYY h[e]mm A' - }, - calendar : { - sameDay : '[Hiziv da] LT', - nextDay : '[Warc\'hoazh da] LT', - nextWeek : 'dddd [da] LT', - lastDay : '[Dec\'h da] LT', - lastWeek : 'dddd [paset da] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'a-benn %s', - past : '%s \'zo', - s : 'un nebeud segondennoù', - ss : '%d eilenn', - m : 'ur vunutenn', - mm : relativeTimeWithMutation, - h : 'un eur', - hh : '%d eur', - d : 'un devezh', - dd : relativeTimeWithMutation, - M : 'ur miz', - MM : relativeTimeWithMutation, - y : 'ur bloaz', - yy : specialMutationForYears - }, - dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/, - ordinal : function (number) { - var output = (number === 1) ? 'añ' : 'vet'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return br; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/ca.js b/app/rainloop/v/1.15.0/app/localization/moment/ca.js deleted file mode 100644 index 9a823b9..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/ca.js +++ /dev/null @@ -1,87 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var ca = moment.defineLocale('ca', { - months : { - standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'), - format: 'de gener_de febrer_de març_d\'abril_de maig_de juny_de juliol_d\'agost_de setembre_d\'octubre_de novembre_de desembre'.split('_'), - isFormat: /D[oD]?(\s)+MMMM/ - }, - monthsShort : 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'), - monthsParseExact : true, - weekdays : 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'), - weekdaysShort : 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), - weekdaysMin : 'dg_dl_dt_dc_dj_dv_ds'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM [de] YYYY', - ll : 'D MMM YYYY', - LLL : 'D MMMM [de] YYYY [a les] H:mm', - lll : 'D MMM YYYY, H:mm', - LLLL : 'dddd D MMMM [de] YYYY [a les] H:mm', - llll : 'ddd D MMM YYYY, H:mm' - }, - calendar : { - sameDay : function () { - return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - nextDay : function () { - return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - nextWeek : function () { - return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - lastDay : function () { - return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - lastWeek : function () { - return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; - }, - sameElse : 'L' - }, - relativeTime : { - future : 'd\'aquí %s', - past : 'fa %s', - s : 'uns segons', - ss : '%d segons', - m : 'un minut', - mm : '%d minuts', - h : 'una hora', - hh : '%d hores', - d : 'un dia', - dd : '%d dies', - M : 'un mes', - MM : '%d mesos', - y : 'un any', - yy : '%d anys' - }, - dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, - ordinal : function (number, period) { - var output = (number === 1) ? 'r' : - (number === 2) ? 'n' : - (number === 3) ? 'r' : - (number === 4) ? 't' : 'è'; - if (period === 'w' || period === 'W') { - output = 'a'; - } - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return ca; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/cv.js b/app/rainloop/v/1.15.0/app/localization/moment/cv.js deleted file mode 100644 index 1db1488..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/cv.js +++ /dev/null @@ -1,62 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var cv = moment.defineLocale('cv', { - months : 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'), - monthsShort : 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'), - weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'), - weekdaysShort : 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'), - weekdaysMin : 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD-MM-YYYY', - LL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]', - LLL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', - LLLL : 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm' - }, - calendar : { - sameDay: '[Паян] LT [сехетре]', - nextDay: '[Ыран] LT [сехетре]', - lastDay: '[Ӗнер] LT [сехетре]', - nextWeek: '[Ҫитес] dddd LT [сехетре]', - lastWeek: '[Иртнӗ] dddd LT [сехетре]', - sameElse: 'L' - }, - relativeTime : { - future : function (output) { - var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран'; - return output + affix; - }, - past : '%s каялла', - s : 'пӗр-ик ҫеккунт', - ss : '%d ҫеккунт', - m : 'пӗр минут', - mm : '%d минут', - h : 'пӗр сехет', - hh : '%d сехет', - d : 'пӗр кун', - dd : '%d кун', - M : 'пӗр уйӑх', - MM : '%d уйӑх', - y : 'пӗр ҫул', - yy : '%d ҫул' - }, - dayOfMonthOrdinalParse: /\d{1,2}-мӗш/, - ordinal : '%d-мӗш', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 7th is the first week of the year. - } - }); - - return cv; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/da.js b/app/rainloop/v/1.15.0/app/localization/moment/da.js deleted file mode 100644 index 22a1a5b..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/da.js +++ /dev/null @@ -1,59 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var da = moment.defineLocale('da', { - months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'), - monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), - weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), - weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'), - weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY HH:mm', - LLLL : 'dddd [d.] D. MMMM YYYY [kl.] HH:mm' - }, - calendar : { - sameDay : '[i dag kl.] LT', - nextDay : '[i morgen kl.] LT', - nextWeek : 'på dddd [kl.] LT', - lastDay : '[i går kl.] LT', - lastWeek : '[i] dddd[s kl.] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'om %s', - past : '%s siden', - s : 'få sekunder', - ss : '%d sekunder', - m : 'et minut', - mm : '%d minutter', - h : 'en time', - hh : '%d timer', - d : 'en dag', - dd : '%d dage', - M : 'en måned', - MM : '%d måneder', - y : 'et år', - yy : '%d år' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return da; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/de-at.js b/app/rainloop/v/1.15.0/app/localization/moment/de-at.js deleted file mode 100644 index e3ac47b..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/de-at.js +++ /dev/null @@ -1,75 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - 'm': ['eine Minute', 'einer Minute'], - 'h': ['eine Stunde', 'einer Stunde'], - 'd': ['ein Tag', 'einem Tag'], - 'dd': [number + ' Tage', number + ' Tagen'], - 'M': ['ein Monat', 'einem Monat'], - 'MM': [number + ' Monate', number + ' Monaten'], - 'y': ['ein Jahr', 'einem Jahr'], - 'yy': [number + ' Jahre', number + ' Jahren'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; - } - - var deAt = moment.defineLocale('de-at', { - months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), - monthsShort : 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), - monthsParseExact : true, - weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'), - weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), - weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY HH:mm', - LLLL : 'dddd, D. MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]' - }, - relativeTime : { - future : 'in %s', - past : 'vor %s', - s : 'ein paar Sekunden', - ss : '%d Sekunden', - m : processRelativeTime, - mm : '%d Minuten', - h : processRelativeTime, - hh : '%d Stunden', - d : processRelativeTime, - dd : processRelativeTime, - M : processRelativeTime, - MM : processRelativeTime, - y : processRelativeTime, - yy : processRelativeTime - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return deAt; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/de-ch.js b/app/rainloop/v/1.15.0/app/localization/moment/de-ch.js deleted file mode 100644 index 2676afb..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/de-ch.js +++ /dev/null @@ -1,75 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - 'm': ['eine Minute', 'einer Minute'], - 'h': ['eine Stunde', 'einer Stunde'], - 'd': ['ein Tag', 'einem Tag'], - 'dd': [number + ' Tage', number + ' Tagen'], - 'M': ['ein Monat', 'einem Monat'], - 'MM': [number + ' Monate', number + ' Monaten'], - 'y': ['ein Jahr', 'einem Jahr'], - 'yy': [number + ' Jahre', number + ' Jahren'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; - } - - var deCh = moment.defineLocale('de-ch', { - months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), - monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), - monthsParseExact : true, - weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'), - weekdaysShort : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), - weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY HH:mm', - LLLL : 'dddd, D. MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]' - }, - relativeTime : { - future : 'in %s', - past : 'vor %s', - s : 'ein paar Sekunden', - ss : '%d Sekunden', - m : processRelativeTime, - mm : '%d Minuten', - h : processRelativeTime, - hh : '%d Stunden', - d : processRelativeTime, - dd : processRelativeTime, - M : processRelativeTime, - MM : processRelativeTime, - y : processRelativeTime, - yy : processRelativeTime - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return deCh; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/de.js b/app/rainloop/v/1.15.0/app/localization/moment/de.js deleted file mode 100644 index d5c084a..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/de.js +++ /dev/null @@ -1,75 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - 'm': ['eine Minute', 'einer Minute'], - 'h': ['eine Stunde', 'einer Stunde'], - 'd': ['ein Tag', 'einem Tag'], - 'dd': [number + ' Tage', number + ' Tagen'], - 'M': ['ein Monat', 'einem Monat'], - 'MM': [number + ' Monate', number + ' Monaten'], - 'y': ['ein Jahr', 'einem Jahr'], - 'yy': [number + ' Jahre', number + ' Jahren'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; - } - - var de = moment.defineLocale('de', { - months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), - monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), - monthsParseExact : true, - weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'), - weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), - weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT: 'HH:mm', - LTS: 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY HH:mm', - LLLL : 'dddd, D. MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[heute um] LT [Uhr]', - sameElse: 'L', - nextDay: '[morgen um] LT [Uhr]', - nextWeek: 'dddd [um] LT [Uhr]', - lastDay: '[gestern um] LT [Uhr]', - lastWeek: '[letzten] dddd [um] LT [Uhr]' - }, - relativeTime : { - future : 'in %s', - past : 'vor %s', - s : 'ein paar Sekunden', - ss : '%d Sekunden', - m : processRelativeTime, - mm : '%d Minuten', - h : processRelativeTime, - hh : '%d Stunden', - d : processRelativeTime, - dd : processRelativeTime, - M : processRelativeTime, - MM : processRelativeTime, - y : processRelativeTime, - yy : processRelativeTime - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return de; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/dv.js b/app/rainloop/v/1.15.0/app/localization/moment/dv.js deleted file mode 100644 index 8729b02..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/dv.js +++ /dev/null @@ -1,98 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var months = [ - 'ޖެނުއަރީ', - 'ފެބްރުއަރީ', - 'މާރިޗު', - 'އޭޕްރީލު', - 'މޭ', - 'ޖޫން', - 'ޖުލައި', - 'އޯގަސްޓު', - 'ސެޕްޓެމްބަރު', - 'އޮކްޓޯބަރު', - 'ނޮވެމްބަރު', - 'ޑިސެމްބަރު' - ], weekdays = [ - 'އާދިއްތަ', - 'ހޯމަ', - 'އަންގާރަ', - 'ބުދަ', - 'ބުރާސްފަތި', - 'ހުކުރު', - 'ހޮނިހިރު' - ]; - - var dv = moment.defineLocale('dv', { - months : months, - monthsShort : months, - weekdays : weekdays, - weekdaysShort : weekdays, - weekdaysMin : 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'), - longDateFormat : { - - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'D/M/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - meridiemParse: /މކ|މފ/, - isPM : function (input) { - return 'މފ' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'މކ'; - } else { - return 'މފ'; - } - }, - calendar : { - sameDay : '[މިއަދު] LT', - nextDay : '[މާދަމާ] LT', - nextWeek : 'dddd LT', - lastDay : '[އިއްޔެ] LT', - lastWeek : '[ފާއިތުވި] dddd LT', - sameElse : 'L' - }, - relativeTime : { - future : 'ތެރޭގައި %s', - past : 'ކުރިން %s', - s : 'ސިކުންތުކޮޅެއް', - ss : 'd% ސިކުންތު', - m : 'މިނިޓެއް', - mm : 'މިނިޓު %d', - h : 'ގަޑިއިރެއް', - hh : 'ގަޑިއިރު %d', - d : 'ދުވަހެއް', - dd : 'ދުވަސް %d', - M : 'މަހެއް', - MM : 'މަސް %d', - y : 'އަހަރެއް', - yy : 'އަހަރު %d' - }, - preparse: function (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week : { - dow : 7, // Sunday is the first day of the week. - doy : 12 // The week that contains Jan 12th is the first week of the year. - } - }); - - return dv; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/el.js b/app/rainloop/v/1.15.0/app/localization/moment/el.js deleted file mode 100644 index f01fa77..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/el.js +++ /dev/null @@ -1,99 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - function isFunction(input) { - return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; - } - - - var el = moment.defineLocale('el', { - monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'), - monthsGenitiveEl : 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'), - months : function (momentToFormat, format) { - if (!momentToFormat) { - return this._monthsNominativeEl; - } else if (typeof format === 'string' && /D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM' - return this._monthsGenitiveEl[momentToFormat.month()]; - } else { - return this._monthsNominativeEl[momentToFormat.month()]; - } - }, - monthsShort : 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'), - weekdays : 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'), - weekdaysShort : 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'), - weekdaysMin : 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'), - meridiem : function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'μμ' : 'ΜΜ'; - } else { - return isLower ? 'πμ' : 'ΠΜ'; - } - }, - isPM : function (input) { - return ((input + '').toLowerCase()[0] === 'μ'); - }, - meridiemParse : /[ΠΜ]\.?Μ?\.?/i, - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - calendarEl : { - sameDay : '[Σήμερα {}] LT', - nextDay : '[Αύριο {}] LT', - nextWeek : 'dddd [{}] LT', - lastDay : '[Χθες {}] LT', - lastWeek : function () { - switch (this.day()) { - case 6: - return '[το προηγούμενο] dddd [{}] LT'; - default: - return '[την προηγούμενη] dddd [{}] LT'; - } - }, - sameElse : 'L' - }, - calendar : function (key, mom) { - var output = this._calendarEl[key], - hours = mom && mom.hours(); - if (isFunction(output)) { - output = output.apply(mom); - } - return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις')); - }, - relativeTime : { - future : 'σε %s', - past : '%s πριν', - s : 'λίγα δευτερόλεπτα', - ss : '%d δευτερόλεπτα', - m : 'ένα λεπτό', - mm : '%d λεπτά', - h : 'μία ώρα', - hh : '%d ώρες', - d : 'μία μέρα', - dd : '%d μέρες', - M : 'ένας μήνας', - MM : '%d μήνες', - y : 'ένας χρόνος', - yy : '%d χρόνια' - }, - dayOfMonthOrdinalParse: /\d{1,2}η/, - ordinal: '%dη', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4st is the first week of the year. - } - }); - - return el; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/en-SG.js b/app/rainloop/v/1.15.0/app/localization/moment/en-SG.js deleted file mode 100644 index 4c69f11..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/en-SG.js +++ /dev/null @@ -1,66 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var enSG = moment.defineLocale('en-SG', { - months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), - monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), - weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[Today at] LT', - nextDay : '[Tomorrow at] LT', - nextWeek : 'dddd [at] LT', - lastDay : '[Yesterday at] LT', - lastWeek : '[Last] dddd [at] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'in %s', - past : '%s ago', - s : 'a few seconds', - ss : '%d seconds', - m : 'a minute', - mm : '%d minutes', - h : 'an hour', - hh : '%d hours', - d : 'a day', - dd : '%d days', - M : 'a month', - MM : '%d months', - y : 'a year', - yy : '%d years' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return enSG; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/en-au.js b/app/rainloop/v/1.15.0/app/localization/moment/en-au.js deleted file mode 100644 index 3720237..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/en-au.js +++ /dev/null @@ -1,66 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var enAu = moment.defineLocale('en-au', { - months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), - monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), - weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - calendar : { - sameDay : '[Today at] LT', - nextDay : '[Tomorrow at] LT', - nextWeek : 'dddd [at] LT', - lastDay : '[Yesterday at] LT', - lastWeek : '[Last] dddd [at] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'in %s', - past : '%s ago', - s : 'a few seconds', - ss : '%d seconds', - m : 'a minute', - mm : '%d minutes', - h : 'an hour', - hh : '%d hours', - d : 'a day', - dd : '%d days', - M : 'a month', - MM : '%d months', - y : 'a year', - yy : '%d years' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return enAu; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/en-ca.js b/app/rainloop/v/1.15.0/app/localization/moment/en-ca.js deleted file mode 100644 index 5d0dab0..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/en-ca.js +++ /dev/null @@ -1,62 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var enCa = moment.defineLocale('en-ca', { - months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), - monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), - weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'YYYY-MM-DD', - LL : 'MMMM D, YYYY', - LLL : 'MMMM D, YYYY h:mm A', - LLLL : 'dddd, MMMM D, YYYY h:mm A' - }, - calendar : { - sameDay : '[Today at] LT', - nextDay : '[Tomorrow at] LT', - nextWeek : 'dddd [at] LT', - lastDay : '[Yesterday at] LT', - lastWeek : '[Last] dddd [at] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'in %s', - past : '%s ago', - s : 'a few seconds', - ss : '%d seconds', - m : 'a minute', - mm : '%d minutes', - h : 'an hour', - hh : '%d hours', - d : 'a day', - dd : '%d days', - M : 'a month', - MM : '%d months', - y : 'a year', - yy : '%d years' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - } - }); - - return enCa; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/en-gb.js b/app/rainloop/v/1.15.0/app/localization/moment/en-gb.js deleted file mode 100644 index 85302e5..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/en-gb.js +++ /dev/null @@ -1,66 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var enGb = moment.defineLocale('en-gb', { - months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), - monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), - weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[Today at] LT', - nextDay : '[Tomorrow at] LT', - nextWeek : 'dddd [at] LT', - lastDay : '[Yesterday at] LT', - lastWeek : '[Last] dddd [at] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'in %s', - past : '%s ago', - s : 'a few seconds', - ss : '%d seconds', - m : 'a minute', - mm : '%d minutes', - h : 'an hour', - hh : '%d hours', - d : 'a day', - dd : '%d days', - M : 'a month', - MM : '%d months', - y : 'a year', - yy : '%d years' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return enGb; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/en-ie.js b/app/rainloop/v/1.15.0/app/localization/moment/en-ie.js deleted file mode 100644 index de0984c..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/en-ie.js +++ /dev/null @@ -1,66 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var enIe = moment.defineLocale('en-ie', { - months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), - monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), - weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[Today at] LT', - nextDay : '[Tomorrow at] LT', - nextWeek : 'dddd [at] LT', - lastDay : '[Yesterday at] LT', - lastWeek : '[Last] dddd [at] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'in %s', - past : '%s ago', - s : 'a few seconds', - ss : '%d seconds', - m : 'a minute', - mm : '%d minutes', - h : 'an hour', - hh : '%d hours', - d : 'a day', - dd : '%d days', - M : 'a month', - MM : '%d months', - y : 'a year', - yy : '%d years' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return enIe; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/en-il.js b/app/rainloop/v/1.15.0/app/localization/moment/en-il.js deleted file mode 100644 index b18eab8..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/en-il.js +++ /dev/null @@ -1,61 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var enIl = moment.defineLocale('en-il', { - months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), - monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), - weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[Today at] LT', - nextDay : '[Tomorrow at] LT', - nextWeek : 'dddd [at] LT', - lastDay : '[Yesterday at] LT', - lastWeek : '[Last] dddd [at] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'in %s', - past : '%s ago', - s : 'a few seconds', - m : 'a minute', - mm : '%d minutes', - h : 'an hour', - hh : '%d hours', - d : 'a day', - dd : '%d days', - M : 'a month', - MM : '%d months', - y : 'a year', - yy : '%d years' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - } - }); - - return enIl; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/en-nz.js b/app/rainloop/v/1.15.0/app/localization/moment/en-nz.js deleted file mode 100644 index f4325d4..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/en-nz.js +++ /dev/null @@ -1,66 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var enNz = moment.defineLocale('en-nz', { - months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), - monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), - weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - calendar : { - sameDay : '[Today at] LT', - nextDay : '[Tomorrow at] LT', - nextWeek : 'dddd [at] LT', - lastDay : '[Yesterday at] LT', - lastWeek : '[Last] dddd [at] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'in %s', - past : '%s ago', - s : 'a few seconds', - ss : '%d seconds', - m : 'a minute', - mm : '%d minutes', - h : 'an hour', - hh : '%d hours', - d : 'a day', - dd : '%d days', - M : 'a month', - MM : '%d months', - y : 'a year', - yy : '%d years' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return enNz; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/eo.js b/app/rainloop/v/1.15.0/app/localization/moment/eo.js deleted file mode 100644 index 283ebed..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/eo.js +++ /dev/null @@ -1,70 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var eo = moment.defineLocale('eo', { - months : 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'), - monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec'.split('_'), - weekdays : 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'), - weekdaysShort : 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'), - weekdaysMin : 'di_lu_ma_me_ĵa_ve_sa'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'D[-a de] MMMM, YYYY', - LLL : 'D[-a de] MMMM, YYYY HH:mm', - LLLL : 'dddd, [la] D[-a de] MMMM, YYYY HH:mm' - }, - meridiemParse: /[ap]\.t\.m/i, - isPM: function (input) { - return input.charAt(0).toLowerCase() === 'p'; - }, - meridiem : function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'p.t.m.' : 'P.T.M.'; - } else { - return isLower ? 'a.t.m.' : 'A.T.M.'; - } - }, - calendar : { - sameDay : '[Hodiaŭ je] LT', - nextDay : '[Morgaŭ je] LT', - nextWeek : 'dddd [je] LT', - lastDay : '[Hieraŭ je] LT', - lastWeek : '[pasinta] dddd [je] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'post %s', - past : 'antaŭ %s', - s : 'sekundoj', - ss : '%d sekundoj', - m : 'minuto', - mm : '%d minutoj', - h : 'horo', - hh : '%d horoj', - d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo - dd : '%d tagoj', - M : 'monato', - MM : '%d monatoj', - y : 'jaro', - yy : '%d jaroj' - }, - dayOfMonthOrdinalParse: /\d{1,2}a/, - ordinal : '%da', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 7th is the first week of the year. - } - }); - - return eo; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/es-do.js b/app/rainloop/v/1.15.0/app/localization/moment/es-do.js deleted file mode 100644 index 829c2de..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/es-do.js +++ /dev/null @@ -1,91 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'), - monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'); - - var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i]; - var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; - - var esDo = moment.defineLocale('es-do', { - months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortDot; - } else if (/-MMM-/.test(format)) { - return monthsShort[m.month()]; - } else { - return monthsShortDot[m.month()]; - } - }, - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, - monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, - weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), - weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), - weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY h:mm A', - LLLL : 'dddd, D [de] MMMM [de] YYYY h:mm A' - }, - calendar : { - sameDay : function () { - return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - nextDay : function () { - return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - nextWeek : function () { - return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - lastDay : function () { - return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - lastWeek : function () { - return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - sameElse : 'L' - }, - relativeTime : { - future : 'en %s', - past : 'hace %s', - s : 'unos segundos', - ss : '%d segundos', - m : 'un minuto', - mm : '%d minutos', - h : 'una hora', - hh : '%d horas', - d : 'un día', - dd : '%d días', - M : 'un mes', - MM : '%d meses', - y : 'un año', - yy : '%d años' - }, - dayOfMonthOrdinalParse : /\d{1,2}º/, - ordinal : '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return esDo; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/es-us.js b/app/rainloop/v/1.15.0/app/localization/moment/es-us.js deleted file mode 100644 index 8e07d07..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/es-us.js +++ /dev/null @@ -1,91 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'), - monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'); - - var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i]; - var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; - - var esUs = moment.defineLocale('es-us', { - months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortDot; - } else if (/-MMM-/.test(format)) { - return monthsShort[m.month()]; - } else { - return monthsShortDot[m.month()]; - } - }, - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, - monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, - monthsParse: monthsParse, - longMonthsParse: monthsParse, - shortMonthsParse: monthsParse, - weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), - weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), - weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'MM/DD/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY h:mm A', - LLLL : 'dddd, D [de] MMMM [de] YYYY h:mm A' - }, - calendar : { - sameDay : function () { - return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - nextDay : function () { - return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - nextWeek : function () { - return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - lastDay : function () { - return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - lastWeek : function () { - return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - sameElse : 'L' - }, - relativeTime : { - future : 'en %s', - past : 'hace %s', - s : 'unos segundos', - ss : '%d segundos', - m : 'un minuto', - mm : '%d minutos', - h : 'una hora', - hh : '%d horas', - d : 'un día', - dd : '%d días', - M : 'un mes', - MM : '%d meses', - y : 'un año', - yy : '%d años' - }, - dayOfMonthOrdinalParse : /\d{1,2}º/, - ordinal : '%dº', - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 6th is the first week of the year. - } - }); - - return esUs; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/es.js b/app/rainloop/v/1.15.0/app/localization/moment/es.js deleted file mode 100644 index aed6802..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/es.js +++ /dev/null @@ -1,91 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'), - monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'); - - var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i]; - var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; - - var es = moment.defineLocale('es', { - months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortDot; - } else if (/-MMM-/.test(format)) { - return monthsShort[m.month()]; - } else { - return monthsShortDot[m.month()]; - } - }, - monthsRegex : monthsRegex, - monthsShortRegex : monthsRegex, - monthsStrictRegex : /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, - monthsShortStrictRegex : /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, - monthsParse : monthsParse, - longMonthsParse : monthsParse, - shortMonthsParse : monthsParse, - weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'), - weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'), - weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY H:mm', - LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm' - }, - calendar : { - sameDay : function () { - return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - nextDay : function () { - return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - nextWeek : function () { - return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - lastDay : function () { - return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - lastWeek : function () { - return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; - }, - sameElse : 'L' - }, - relativeTime : { - future : 'en %s', - past : 'hace %s', - s : 'unos segundos', - ss : '%d segundos', - m : 'un minuto', - mm : '%d minutos', - h : 'una hora', - hh : '%d horas', - d : 'un día', - dd : '%d días', - M : 'un mes', - MM : '%d meses', - y : 'un año', - yy : '%d años' - }, - dayOfMonthOrdinalParse : /\d{1,2}º/, - ordinal : '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return es; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/et.js b/app/rainloop/v/1.15.0/app/localization/moment/et.js deleted file mode 100644 index 8a81b04..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/et.js +++ /dev/null @@ -1,79 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'], - 'ss': [number + 'sekundi', number + 'sekundit'], - 'm' : ['ühe minuti', 'üks minut'], - 'mm': [number + ' minuti', number + ' minutit'], - 'h' : ['ühe tunni', 'tund aega', 'üks tund'], - 'hh': [number + ' tunni', number + ' tundi'], - 'd' : ['ühe päeva', 'üks päev'], - 'M' : ['kuu aja', 'kuu aega', 'üks kuu'], - 'MM': [number + ' kuu', number + ' kuud'], - 'y' : ['ühe aasta', 'aasta', 'üks aasta'], - 'yy': [number + ' aasta', number + ' aastat'] - }; - if (withoutSuffix) { - return format[key][2] ? format[key][2] : format[key][1]; - } - return isFuture ? format[key][0] : format[key][1]; - } - - var et = moment.defineLocale('et', { - months : 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'), - monthsShort : 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'), - weekdays : 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'), - weekdaysShort : 'P_E_T_K_N_R_L'.split('_'), - weekdaysMin : 'P_E_T_K_N_R_L'.split('_'), - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY H:mm', - LLLL : 'dddd, D. MMMM YYYY H:mm' - }, - calendar : { - sameDay : '[Täna,] LT', - nextDay : '[Homme,] LT', - nextWeek : '[Järgmine] dddd LT', - lastDay : '[Eile,] LT', - lastWeek : '[Eelmine] dddd LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s pärast', - past : '%s tagasi', - s : processRelativeTime, - ss : processRelativeTime, - m : processRelativeTime, - mm : processRelativeTime, - h : processRelativeTime, - hh : processRelativeTime, - d : processRelativeTime, - dd : '%d päeva', - M : processRelativeTime, - MM : processRelativeTime, - y : processRelativeTime, - yy : processRelativeTime - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return et; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/eu.js b/app/rainloop/v/1.15.0/app/localization/moment/eu.js deleted file mode 100644 index 2c7781b..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/eu.js +++ /dev/null @@ -1,65 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var eu = moment.defineLocale('eu', { - months : 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'), - monthsShort : 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'), - monthsParseExact : true, - weekdays : 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'), - weekdaysShort : 'ig._al._ar._az._og._ol._lr.'.split('_'), - weekdaysMin : 'ig_al_ar_az_og_ol_lr'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'YYYY[ko] MMMM[ren] D[a]', - LLL : 'YYYY[ko] MMMM[ren] D[a] HH:mm', - LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', - l : 'YYYY-M-D', - ll : 'YYYY[ko] MMM D[a]', - lll : 'YYYY[ko] MMM D[a] HH:mm', - llll : 'ddd, YYYY[ko] MMM D[a] HH:mm' - }, - calendar : { - sameDay : '[gaur] LT[etan]', - nextDay : '[bihar] LT[etan]', - nextWeek : 'dddd LT[etan]', - lastDay : '[atzo] LT[etan]', - lastWeek : '[aurreko] dddd LT[etan]', - sameElse : 'L' - }, - relativeTime : { - future : '%s barru', - past : 'duela %s', - s : 'segundo batzuk', - ss : '%d segundo', - m : 'minutu bat', - mm : '%d minutu', - h : 'ordu bat', - hh : '%d ordu', - d : 'egun bat', - dd : '%d egun', - M : 'hilabete bat', - MM : '%d hilabete', - y : 'urte bat', - yy : '%d urte' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 7th is the first week of the year. - } - }); - - return eu; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/fa.js b/app/rainloop/v/1.15.0/app/localization/moment/fa.js deleted file mode 100644 index e84f7ca..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/fa.js +++ /dev/null @@ -1,105 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var symbolMap = { - '1': '۱', - '2': '۲', - '3': '۳', - '4': '۴', - '5': '۵', - '6': '۶', - '7': '۷', - '8': '۸', - '9': '۹', - '0': '۰' - }, numberMap = { - '۱': '1', - '۲': '2', - '۳': '3', - '۴': '4', - '۵': '5', - '۶': '6', - '۷': '7', - '۸': '8', - '۹': '9', - '۰': '0' - }; - - var fa = moment.defineLocale('fa', { - months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'), - monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'), - weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'), - weekdaysShort : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'), - weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - meridiemParse: /قبل از ظهر|بعد از ظهر/, - isPM: function (input) { - return /بعد از ظهر/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'قبل از ظهر'; - } else { - return 'بعد از ظهر'; - } - }, - calendar : { - sameDay : '[امروز ساعت] LT', - nextDay : '[فردا ساعت] LT', - nextWeek : 'dddd [ساعت] LT', - lastDay : '[دیروز ساعت] LT', - lastWeek : 'dddd [پیش] [ساعت] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'در %s', - past : '%s پیش', - s : 'چند ثانیه', - ss : 'ثانیه d%', - m : 'یک دقیقه', - mm : '%d دقیقه', - h : 'یک ساعت', - hh : '%d ساعت', - d : 'یک روز', - dd : '%d روز', - M : 'یک ماه', - MM : '%d ماه', - y : 'یک سال', - yy : '%d سال' - }, - preparse: function (string) { - return string.replace(/[۰-۹]/g, function (match) { - return numberMap[match]; - }).replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }).replace(/,/g, '،'); - }, - dayOfMonthOrdinalParse: /\d{1,2}م/, - ordinal : '%dم', - week : { - dow : 6, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 12th is the first week of the year. - } - }); - - return fa; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/fi.js b/app/rainloop/v/1.15.0/app/localization/moment/fi.js deleted file mode 100644 index b011599..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/fi.js +++ /dev/null @@ -1,108 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '), - numbersFuture = [ - 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden', - numbersPast[7], numbersPast[8], numbersPast[9] - ]; - function translate(number, withoutSuffix, key, isFuture) { - var result = ''; - switch (key) { - case 's': - return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; - case 'ss': - return isFuture ? 'sekunnin' : 'sekuntia'; - case 'm': - return isFuture ? 'minuutin' : 'minuutti'; - case 'mm': - result = isFuture ? 'minuutin' : 'minuuttia'; - break; - case 'h': - return isFuture ? 'tunnin' : 'tunti'; - case 'hh': - result = isFuture ? 'tunnin' : 'tuntia'; - break; - case 'd': - return isFuture ? 'päivän' : 'päivä'; - case 'dd': - result = isFuture ? 'päivän' : 'päivää'; - break; - case 'M': - return isFuture ? 'kuukauden' : 'kuukausi'; - case 'MM': - result = isFuture ? 'kuukauden' : 'kuukautta'; - break; - case 'y': - return isFuture ? 'vuoden' : 'vuosi'; - case 'yy': - result = isFuture ? 'vuoden' : 'vuotta'; - break; - } - result = verbalNumber(number, isFuture) + ' ' + result; - return result; - } - function verbalNumber(number, isFuture) { - return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number; - } - - var fi = moment.defineLocale('fi', { - months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'), - monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'), - weekdays : 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'), - weekdaysShort : 'su_ma_ti_ke_to_pe_la'.split('_'), - weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'), - longDateFormat : { - LT : 'HH.mm', - LTS : 'HH.mm.ss', - L : 'DD.MM.YYYY', - LL : 'Do MMMM[ta] YYYY', - LLL : 'Do MMMM[ta] YYYY, [klo] HH.mm', - LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', - l : 'D.M.YYYY', - ll : 'Do MMM YYYY', - lll : 'Do MMM YYYY, [klo] HH.mm', - llll : 'ddd, Do MMM YYYY, [klo] HH.mm' - }, - calendar : { - sameDay : '[tänään] [klo] LT', - nextDay : '[huomenna] [klo] LT', - nextWeek : 'dddd [klo] LT', - lastDay : '[eilen] [klo] LT', - lastWeek : '[viime] dddd[na] [klo] LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s päästä', - past : '%s sitten', - s : translate, - ss : translate, - m : translate, - mm : translate, - h : translate, - hh : translate, - d : translate, - dd : translate, - M : translate, - MM : translate, - y : translate, - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return fi; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/fo.js b/app/rainloop/v/1.15.0/app/localization/moment/fo.js deleted file mode 100644 index 8e81cfe..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/fo.js +++ /dev/null @@ -1,59 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var fo = moment.defineLocale('fo', { - months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'), - monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), - weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'), - weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'), - weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D. MMMM, YYYY HH:mm' - }, - calendar : { - sameDay : '[Í dag kl.] LT', - nextDay : '[Í morgin kl.] LT', - nextWeek : 'dddd [kl.] LT', - lastDay : '[Í gjár kl.] LT', - lastWeek : '[síðstu] dddd [kl] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'um %s', - past : '%s síðani', - s : 'fá sekund', - ss : '%d sekundir', - m : 'ein minuttur', - mm : '%d minuttir', - h : 'ein tími', - hh : '%d tímar', - d : 'ein dagur', - dd : '%d dagar', - M : 'ein mánaður', - MM : '%d mánaðir', - y : 'eitt ár', - yy : '%d ár' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return fo; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/fr-ca.js b/app/rainloop/v/1.15.0/app/localization/moment/fr-ca.js deleted file mode 100644 index ad1f77d..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/fr-ca.js +++ /dev/null @@ -1,73 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var frCa = moment.defineLocale('fr-ca', { - months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'), - monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'), - monthsParseExact : true, - weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), - weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), - weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[Aujourd’hui à] LT', - nextDay : '[Demain à] LT', - nextWeek : 'dddd [à] LT', - lastDay : '[Hier à] LT', - lastWeek : 'dddd [dernier à] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'dans %s', - past : 'il y a %s', - s : 'quelques secondes', - ss : '%d secondes', - m : 'une minute', - mm : '%d minutes', - h : 'une heure', - hh : '%d heures', - d : 'un jour', - dd : '%d jours', - M : 'un mois', - MM : '%d mois', - y : 'un an', - yy : '%d ans' - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, - ordinal : function (number, period) { - switch (period) { - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'D': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } - } - }); - - return frCa; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/fr-ch.js b/app/rainloop/v/1.15.0/app/localization/moment/fr-ch.js deleted file mode 100644 index 54033d1..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/fr-ch.js +++ /dev/null @@ -1,77 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var frCh = moment.defineLocale('fr-ch', { - months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'), - monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'), - monthsParseExact : true, - weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), - weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), - weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[Aujourd’hui à] LT', - nextDay : '[Demain à] LT', - nextWeek : 'dddd [à] LT', - lastDay : '[Hier à] LT', - lastWeek : 'dddd [dernier à] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'dans %s', - past : 'il y a %s', - s : 'quelques secondes', - ss : '%d secondes', - m : 'une minute', - mm : '%d minutes', - h : 'une heure', - hh : '%d heures', - d : 'un jour', - dd : '%d jours', - M : 'un mois', - MM : '%d mois', - y : 'un an', - yy : '%d ans' - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, - ordinal : function (number, period) { - switch (period) { - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'D': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return frCh; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/fr.js b/app/rainloop/v/1.15.0/app/localization/moment/fr.js deleted file mode 100644 index 9286707..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/fr.js +++ /dev/null @@ -1,82 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var fr = moment.defineLocale('fr', { - months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'), - monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'), - monthsParseExact : true, - weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), - weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), - weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[Aujourd’hui à] LT', - nextDay : '[Demain à] LT', - nextWeek : 'dddd [à] LT', - lastDay : '[Hier à] LT', - lastWeek : 'dddd [dernier à] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'dans %s', - past : 'il y a %s', - s : 'quelques secondes', - ss : '%d secondes', - m : 'une minute', - mm : '%d minutes', - h : 'une heure', - hh : '%d heures', - d : 'un jour', - dd : '%d jours', - M : 'un mois', - MM : '%d mois', - y : 'un an', - yy : '%d ans' - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|)/, - ordinal : function (number, period) { - switch (period) { - // TODO: Return 'e' when day of month > 1. Move this case inside - // block for masculine words below. - // See https://github.com/moment/moment/issues/3375 - case 'D': - return number + (number === 1 ? 'er' : ''); - - // Words with masculine grammatical gender: mois, trimestre, jour - default: - case 'M': - case 'Q': - case 'DDD': - case 'd': - return number + (number === 1 ? 'er' : 'e'); - - // Words with feminine grammatical gender: semaine - case 'w': - case 'W': - return number + (number === 1 ? 're' : 'e'); - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return fr; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/fy.js b/app/rainloop/v/1.15.0/app/localization/moment/fy.js deleted file mode 100644 index 9a672bf..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/fy.js +++ /dev/null @@ -1,74 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'), - monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'); - - var fy = moment.defineLocale('fy', { - months : 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortWithDots; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots[m.month()]; - } else { - return monthsShortWithDots[m.month()]; - } - }, - monthsParseExact : true, - weekdays : 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'), - weekdaysShort : 'si._mo._ti._wo._to._fr._so.'.split('_'), - weekdaysMin : 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD-MM-YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[hjoed om] LT', - nextDay: '[moarn om] LT', - nextWeek: 'dddd [om] LT', - lastDay: '[juster om] LT', - lastWeek: '[ôfrûne] dddd [om] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'oer %s', - past : '%s lyn', - s : 'in pear sekonden', - ss : '%d sekonden', - m : 'ien minút', - mm : '%d minuten', - h : 'ien oere', - hh : '%d oeren', - d : 'ien dei', - dd : '%d dagen', - M : 'ien moanne', - MM : '%d moannen', - y : 'ien jier', - yy : '%d jierren' - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal : function (number) { - return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return fy; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/gd.js b/app/rainloop/v/1.15.0/app/localization/moment/gd.js deleted file mode 100644 index 4d0d88a..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/gd.js +++ /dev/null @@ -1,75 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var months = [ - 'Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd' - ]; - - var monthsShort = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh']; - - var weekdays = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne']; - - var weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis']; - - var weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa']; - - var gd = moment.defineLocale('gd', { - months : months, - monthsShort : monthsShort, - monthsParseExact : true, - weekdays : weekdays, - weekdaysShort : weekdaysShort, - weekdaysMin : weekdaysMin, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[An-diugh aig] LT', - nextDay : '[A-màireach aig] LT', - nextWeek : 'dddd [aig] LT', - lastDay : '[An-dè aig] LT', - lastWeek : 'dddd [seo chaidh] [aig] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'ann an %s', - past : 'bho chionn %s', - s : 'beagan diogan', - ss : '%d diogan', - m : 'mionaid', - mm : '%d mionaidean', - h : 'uair', - hh : '%d uairean', - d : 'latha', - dd : '%d latha', - M : 'mìos', - MM : '%d mìosan', - y : 'bliadhna', - yy : '%d bliadhna' - }, - dayOfMonthOrdinalParse : /\d{1,2}(d|na|mh)/, - ordinal : function (number) { - var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return gd; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/gl.js b/app/rainloop/v/1.15.0/app/localization/moment/gl.js deleted file mode 100644 index 1cc4177..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/gl.js +++ /dev/null @@ -1,76 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var gl = moment.defineLocale('gl', { - months : 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'), - monthsShort : 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'), - monthsParseExact: true, - weekdays : 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'), - weekdaysShort : 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'), - weekdaysMin : 'do_lu_ma_mé_xo_ve_sá'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY H:mm', - LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm' - }, - calendar : { - sameDay : function () { - return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT'; - }, - nextDay : function () { - return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT'; - }, - nextWeek : function () { - return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT'; - }, - lastDay : function () { - return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT'; - }, - lastWeek : function () { - return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT'; - }, - sameElse : 'L' - }, - relativeTime : { - future : function (str) { - if (str.indexOf('un') === 0) { - return 'n' + str; - } - return 'en ' + str; - }, - past : 'hai %s', - s : 'uns segundos', - ss : '%d segundos', - m : 'un minuto', - mm : '%d minutos', - h : 'unha hora', - hh : '%d horas', - d : 'un día', - dd : '%d días', - M : 'un mes', - MM : '%d meses', - y : 'un ano', - yy : '%d anos' - }, - dayOfMonthOrdinalParse : /\d{1,2}º/, - ordinal : '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return gl; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/gom-latn.js b/app/rainloop/v/1.15.0/app/localization/moment/gom-latn.js deleted file mode 100644 index bfad12e..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/gom-latn.js +++ /dev/null @@ -1,122 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - 's': ['thodde secondanim', 'thodde second'], - 'ss': [number + ' secondanim', number + ' second'], - 'm': ['eka mintan', 'ek minute'], - 'mm': [number + ' mintanim', number + ' mintam'], - 'h': ['eka voran', 'ek vor'], - 'hh': [number + ' voranim', number + ' voram'], - 'd': ['eka disan', 'ek dis'], - 'dd': [number + ' disanim', number + ' dis'], - 'M': ['eka mhoinean', 'ek mhoino'], - 'MM': [number + ' mhoineanim', number + ' mhoine'], - 'y': ['eka vorsan', 'ek voros'], - 'yy': [number + ' vorsanim', number + ' vorsam'] - }; - return withoutSuffix ? format[key][0] : format[key][1]; - } - - var gomLatn = moment.defineLocale('gom-latn', { - months : 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'), - monthsShort : 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'), - monthsParseExact : true, - weekdays : 'Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son\'var'.split('_'), - weekdaysShort : 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), - weekdaysMin : 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'A h:mm [vazta]', - LTS : 'A h:mm:ss [vazta]', - L : 'DD-MM-YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY A h:mm [vazta]', - LLLL : 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]', - llll: 'ddd, D MMM YYYY, A h:mm [vazta]' - }, - calendar : { - sameDay: '[Aiz] LT', - nextDay: '[Faleam] LT', - nextWeek: '[Ieta to] dddd[,] LT', - lastDay: '[Kal] LT', - lastWeek: '[Fatlo] dddd[,] LT', - sameElse: 'L' - }, - relativeTime : { - future : '%s', - past : '%s adim', - s : processRelativeTime, - ss : processRelativeTime, - m : processRelativeTime, - mm : processRelativeTime, - h : processRelativeTime, - hh : processRelativeTime, - d : processRelativeTime, - dd : processRelativeTime, - M : processRelativeTime, - MM : processRelativeTime, - y : processRelativeTime, - yy : processRelativeTime - }, - dayOfMonthOrdinalParse : /\d{1,2}(er)/, - ordinal : function (number, period) { - switch (period) { - // the ordinal 'er' only applies to day of the month - case 'D': - return number + 'er'; - default: - case 'M': - case 'Q': - case 'DDD': - case 'd': - case 'w': - case 'W': - return number; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - }, - meridiemParse: /rati|sokalli|donparam|sanje/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'rati') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'sokalli') { - return hour; - } else if (meridiem === 'donparam') { - return hour > 12 ? hour : hour + 12; - } else if (meridiem === 'sanje') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'rati'; - } else if (hour < 12) { - return 'sokalli'; - } else if (hour < 16) { - return 'donparam'; - } else if (hour < 20) { - return 'sanje'; - } else { - return 'rati'; - } - } - }); - - return gomLatn; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/he.js b/app/rainloop/v/1.15.0/app/localization/moment/he.js deleted file mode 100644 index 7a22e8d..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/he.js +++ /dev/null @@ -1,96 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var he = moment.defineLocale('he', { - months : 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'), - monthsShort : 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'), - weekdays : 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'), - weekdaysShort : 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'), - weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [ב]MMMM YYYY', - LLL : 'D [ב]MMMM YYYY HH:mm', - LLLL : 'dddd, D [ב]MMMM YYYY HH:mm', - l : 'D/M/YYYY', - ll : 'D MMM YYYY', - lll : 'D MMM YYYY HH:mm', - llll : 'ddd, D MMM YYYY HH:mm' - }, - calendar : { - sameDay : '[היום ב־]LT', - nextDay : '[מחר ב־]LT', - nextWeek : 'dddd [בשעה] LT', - lastDay : '[אתמול ב־]LT', - lastWeek : '[ביום] dddd [האחרון בשעה] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'בעוד %s', - past : 'לפני %s', - s : 'מספר שניות', - ss : '%d שניות', - m : 'דקה', - mm : '%d דקות', - h : 'שעה', - hh : function (number) { - if (number === 2) { - return 'שעתיים'; - } - return number + ' שעות'; - }, - d : 'יום', - dd : function (number) { - if (number === 2) { - return 'יומיים'; - } - return number + ' ימים'; - }, - M : 'חודש', - MM : function (number) { - if (number === 2) { - return 'חודשיים'; - } - return number + ' חודשים'; - }, - y : 'שנה', - yy : function (number) { - if (number === 2) { - return 'שנתיים'; - } else if (number % 10 === 0 && number !== 10) { - return number + ' שנה'; - } - return number + ' שנים'; - } - }, - meridiemParse: /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i, - isPM : function (input) { - return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 5) { - return 'לפנות בוקר'; - } else if (hour < 10) { - return 'בבוקר'; - } else if (hour < 12) { - return isLower ? 'לפנה"צ' : 'לפני הצהריים'; - } else if (hour < 18) { - return isLower ? 'אחה"צ' : 'אחרי הצהריים'; - } else { - return 'בערב'; - } - } - }); - - return he; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/hi.js b/app/rainloop/v/1.15.0/app/localization/moment/hi.js deleted file mode 100644 index a07860a..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/hi.js +++ /dev/null @@ -1,123 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var symbolMap = { - '1': '१', - '2': '२', - '3': '३', - '4': '४', - '5': '५', - '6': '६', - '7': '७', - '8': '८', - '9': '९', - '0': '०' - }, - numberMap = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0' - }; - - var hi = moment.defineLocale('hi', { - months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'), - monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'), - monthsParseExact: true, - weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), - weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'), - weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'), - longDateFormat : { - LT : 'A h:mm बजे', - LTS : 'A h:mm:ss बजे', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm बजे', - LLLL : 'dddd, D MMMM YYYY, A h:mm बजे' - }, - calendar : { - sameDay : '[आज] LT', - nextDay : '[कल] LT', - nextWeek : 'dddd, LT', - lastDay : '[कल] LT', - lastWeek : '[पिछले] dddd, LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s में', - past : '%s पहले', - s : 'कुछ ही क्षण', - ss : '%d सेकंड', - m : 'एक मिनट', - mm : '%d मिनट', - h : 'एक घंटा', - hh : '%d घंटे', - d : 'एक दिन', - dd : '%d दिन', - M : 'एक महीने', - MM : '%d महीने', - y : 'एक वर्ष', - yy : '%d वर्ष' - }, - preparse: function (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - // Hindi notation for meridiems are quite fuzzy in practice. While there exists - // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. - meridiemParse: /रात|सुबह|दोपहर|शाम/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'रात') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'सुबह') { - return hour; - } else if (meridiem === 'दोपहर') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'शाम') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'रात'; - } else if (hour < 10) { - return 'सुबह'; - } else if (hour < 17) { - return 'दोपहर'; - } else if (hour < 20) { - return 'शाम'; - } else { - return 'रात'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 6th is the first week of the year. - } - }); - - return hi; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/hu.js b/app/rainloop/v/1.15.0/app/localization/moment/hu.js deleted file mode 100644 index 53e9bb6..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/hu.js +++ /dev/null @@ -1,109 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' '); - function translate(number, withoutSuffix, key, isFuture) { - var num = number; - switch (key) { - case 's': - return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce'; - case 'ss': - return num + (isFuture || withoutSuffix) ? ' másodperc' : ' másodperce'; - case 'm': - return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); - case 'mm': - return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); - case 'h': - return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); - case 'hh': - return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); - case 'd': - return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); - case 'dd': - return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); - case 'M': - return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); - case 'MM': - return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); - case 'y': - return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); - case 'yy': - return num + (isFuture || withoutSuffix ? ' év' : ' éve'); - } - return ''; - } - function week(isFuture) { - return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]'; - } - - var hu = moment.defineLocale('hu', { - months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'), - monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'), - weekdays : 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'), - weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), - weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'), - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'YYYY.MM.DD.', - LL : 'YYYY. MMMM D.', - LLL : 'YYYY. MMMM D. H:mm', - LLLL : 'YYYY. MMMM D., dddd H:mm' - }, - meridiemParse: /de|du/i, - isPM: function (input) { - return input.charAt(1).toLowerCase() === 'u'; - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 12) { - return isLower === true ? 'de' : 'DE'; - } else { - return isLower === true ? 'du' : 'DU'; - } - }, - calendar : { - sameDay : '[ma] LT[-kor]', - nextDay : '[holnap] LT[-kor]', - nextWeek : function () { - return week.call(this, true); - }, - lastDay : '[tegnap] LT[-kor]', - lastWeek : function () { - return week.call(this, false); - }, - sameElse : 'L' - }, - relativeTime : { - future : '%s múlva', - past : '%s', - s : translate, - ss : translate, - m : translate, - mm : translate, - h : translate, - hh : translate, - d : translate, - dd : translate, - M : translate, - MM : translate, - y : translate, - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return hu; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/id.js b/app/rainloop/v/1.15.0/app/localization/moment/id.js deleted file mode 100644 index c3e8b9e..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/id.js +++ /dev/null @@ -1,81 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var id = moment.defineLocale('id', { - months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'), - monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), - weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), - weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), - weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), - longDateFormat : { - LT : 'HH.mm', - LTS : 'HH.mm.ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [pukul] HH.mm', - LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' - }, - meridiemParse: /pagi|siang|sore|malam/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'siang') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'sore' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'siang'; - } else if (hours < 19) { - return 'sore'; - } else { - return 'malam'; - } - }, - calendar : { - sameDay : '[Hari ini pukul] LT', - nextDay : '[Besok pukul] LT', - nextWeek : 'dddd [pukul] LT', - lastDay : '[Kemarin pukul] LT', - lastWeek : 'dddd [lalu pukul] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'dalam %s', - past : '%s yang lalu', - s : 'beberapa detik', - ss : '%d detik', - m : 'semenit', - mm : '%d menit', - h : 'sejam', - hh : '%d jam', - d : 'sehari', - dd : '%d hari', - M : 'sebulan', - MM : '%d bulan', - y : 'setahun', - yy : '%d tahun' - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 7th is the first week of the year. - } - }); - - return id; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/it-ch.js b/app/rainloop/v/1.15.0/app/localization/moment/it-ch.js deleted file mode 100644 index fcf2d4b..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/it-ch.js +++ /dev/null @@ -1,68 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var itCh = moment.defineLocale('it-ch', { - months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'), - monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), - weekdays : 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'), - weekdaysShort : 'dom_lun_mar_mer_gio_ven_sab'.split('_'), - weekdaysMin : 'do_lu_ma_me_gi_ve_sa'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[Oggi alle] LT', - nextDay: '[Domani alle] LT', - nextWeek: 'dddd [alle] LT', - lastDay: '[Ieri alle] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[la scorsa] dddd [alle] LT'; - default: - return '[lo scorso] dddd [alle] LT'; - } - }, - sameElse: 'L' - }, - relativeTime : { - future : function (s) { - return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s; - }, - past : '%s fa', - s : 'alcuni secondi', - ss : '%d secondi', - m : 'un minuto', - mm : '%d minuti', - h : 'un\'ora', - hh : '%d ore', - d : 'un giorno', - dd : '%d giorni', - M : 'un mese', - MM : '%d mesi', - y : 'un anno', - yy : '%d anni' - }, - dayOfMonthOrdinalParse : /\d{1,2}º/, - ordinal: '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return itCh; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/it.js b/app/rainloop/v/1.15.0/app/localization/moment/it.js deleted file mode 100644 index f42ff8f..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/it.js +++ /dev/null @@ -1,68 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var it = moment.defineLocale('it', { - months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'), - monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), - weekdays : 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'), - weekdaysShort : 'dom_lun_mar_mer_gio_ven_sab'.split('_'), - weekdaysMin : 'do_lu_ma_me_gi_ve_sa'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[Oggi alle] LT', - nextDay: '[Domani alle] LT', - nextWeek: 'dddd [alle] LT', - lastDay: '[Ieri alle] LT', - lastWeek: function () { - switch (this.day()) { - case 0: - return '[la scorsa] dddd [alle] LT'; - default: - return '[lo scorso] dddd [alle] LT'; - } - }, - sameElse: 'L' - }, - relativeTime : { - future : function (s) { - return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s; - }, - past : '%s fa', - s : 'alcuni secondi', - ss : '%d secondi', - m : 'un minuto', - mm : '%d minuti', - h : 'un\'ora', - hh : '%d ore', - d : 'un giorno', - dd : '%d giorni', - M : 'un mese', - MM : '%d mesi', - y : 'un anno', - yy : '%d anni' - }, - dayOfMonthOrdinalParse : /\d{1,2}º/, - ordinal: '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return it; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/ja.js b/app/rainloop/v/1.15.0/app/localization/moment/ja.js deleted file mode 100644 index 4e4efd6..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/ja.js +++ /dev/null @@ -1,91 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var ja = moment.defineLocale('ja', { - months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'), - monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), - weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'), - weekdaysShort : '日_月_火_水_木_金_土'.split('_'), - weekdaysMin : '日_月_火_水_木_金_土'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY/MM/DD', - LL : 'YYYY年M月D日', - LLL : 'YYYY年M月D日 HH:mm', - LLLL : 'YYYY年M月D日 dddd HH:mm', - l : 'YYYY/MM/DD', - ll : 'YYYY年M月D日', - lll : 'YYYY年M月D日 HH:mm', - llll : 'YYYY年M月D日(ddd) HH:mm' - }, - meridiemParse: /午前|午後/i, - isPM : function (input) { - return input === '午後'; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return '午前'; - } else { - return '午後'; - } - }, - calendar : { - sameDay : '[今日] LT', - nextDay : '[明日] LT', - nextWeek : function (now) { - if (now.week() < this.week()) { - return '[来週]dddd LT'; - } else { - return 'dddd LT'; - } - }, - lastDay : '[昨日] LT', - lastWeek : function (now) { - if (this.week() < now.week()) { - return '[先週]dddd LT'; - } else { - return 'dddd LT'; - } - }, - sameElse : 'L' - }, - dayOfMonthOrdinalParse : /\d{1,2}日/, - ordinal : function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - default: - return number; - } - }, - relativeTime : { - future : '%s後', - past : '%s前', - s : '数秒', - ss : '%d秒', - m : '1分', - mm : '%d分', - h : '1時間', - hh : '%d時間', - d : '1日', - dd : '%d日', - M : '1ヶ月', - MM : '%dヶ月', - y : '1年', - yy : '%d年' - } - }); - - return ja; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/jv.js b/app/rainloop/v/1.15.0/app/localization/moment/jv.js deleted file mode 100644 index b2bb4f4..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/jv.js +++ /dev/null @@ -1,81 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var jv = moment.defineLocale('jv', { - months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'), - monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), - weekdays : 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), - weekdaysShort : 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), - weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), - longDateFormat : { - LT : 'HH.mm', - LTS : 'HH.mm.ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [pukul] HH.mm', - LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' - }, - meridiemParse: /enjing|siyang|sonten|ndalu/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'enjing') { - return hour; - } else if (meridiem === 'siyang') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'sonten' || meridiem === 'ndalu') { - return hour + 12; - } - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'enjing'; - } else if (hours < 15) { - return 'siyang'; - } else if (hours < 19) { - return 'sonten'; - } else { - return 'ndalu'; - } - }, - calendar : { - sameDay : '[Dinten puniko pukul] LT', - nextDay : '[Mbenjang pukul] LT', - nextWeek : 'dddd [pukul] LT', - lastDay : '[Kala wingi pukul] LT', - lastWeek : 'dddd [kepengker pukul] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'wonten ing %s', - past : '%s ingkang kepengker', - s : 'sawetawis detik', - ss : '%d detik', - m : 'setunggal menit', - mm : '%d menit', - h : 'setunggal jam', - hh : '%d jam', - d : 'sedinten', - dd : '%d dinten', - M : 'sewulan', - MM : '%d wulan', - y : 'setaun', - yy : '%d taun' - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 7th is the first week of the year. - } - }); - - return jv; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/ka.js b/app/rainloop/v/1.15.0/app/localization/moment/ka.js deleted file mode 100644 index 0ec5eb2..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/ka.js +++ /dev/null @@ -1,88 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var ka = moment.defineLocale('ka', { - months : { - standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'), - format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_') - }, - monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'), - weekdays : { - standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'), - format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'), - isFormat: /(წინა|შემდეგ)/ - }, - weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'), - weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'), - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - calendar : { - sameDay : '[დღეს] LT[-ზე]', - nextDay : '[ხვალ] LT[-ზე]', - lastDay : '[გუშინ] LT[-ზე]', - nextWeek : '[შემდეგ] dddd LT[-ზე]', - lastWeek : '[წინა] dddd LT-ზე', - sameElse : 'L' - }, - relativeTime : { - future : function (s) { - return (/(წამი|წუთი|საათი|წელი)/).test(s) ? - s.replace(/ი$/, 'ში') : - s + 'ში'; - }, - past : function (s) { - if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) { - return s.replace(/(ი|ე)$/, 'ის წინ'); - } - if ((/წელი/).test(s)) { - return s.replace(/წელი$/, 'წლის წინ'); - } - }, - s : 'რამდენიმე წამი', - ss : '%d წამი', - m : 'წუთი', - mm : '%d წუთი', - h : 'საათი', - hh : '%d საათი', - d : 'დღე', - dd : '%d დღე', - M : 'თვე', - MM : '%d თვე', - y : 'წელი', - yy : '%d წელი' - }, - dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/, - ordinal : function (number) { - if (number === 0) { - return number; - } - if (number === 1) { - return number + '-ლი'; - } - if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) { - return 'მე-' + number; - } - return number + '-ე'; - }, - week : { - dow : 1, - doy : 7 - } - }); - - return ka; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/kk.js b/app/rainloop/v/1.15.0/app/localization/moment/kk.js deleted file mode 100644 index c468f67..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/kk.js +++ /dev/null @@ -1,86 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var suffixes = { - 0: '-ші', - 1: '-ші', - 2: '-ші', - 3: '-ші', - 4: '-ші', - 5: '-ші', - 6: '-шы', - 7: '-ші', - 8: '-ші', - 9: '-шы', - 10: '-шы', - 20: '-шы', - 30: '-шы', - 40: '-шы', - 50: '-ші', - 60: '-шы', - 70: '-ші', - 80: '-ші', - 90: '-шы', - 100: '-ші' - }; - - var kk = moment.defineLocale('kk', { - months : 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'), - monthsShort : 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'), - weekdays : 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'), - weekdaysShort : 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'), - weekdaysMin : 'жк_дй_сй_ср_бй_жм_сн'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[Бүгін сағат] LT', - nextDay : '[Ертең сағат] LT', - nextWeek : 'dddd [сағат] LT', - lastDay : '[Кеше сағат] LT', - lastWeek : '[Өткен аптаның] dddd [сағат] LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s ішінде', - past : '%s бұрын', - s : 'бірнеше секунд', - ss : '%d секунд', - m : 'бір минут', - mm : '%d минут', - h : 'бір сағат', - hh : '%d сағат', - d : 'бір күн', - dd : '%d күн', - M : 'бір ай', - MM : '%d ай', - y : 'бір жыл', - yy : '%d жыл' - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/, - ordinal : function (number) { - var a = number % 10, - b = number >= 100 ? 100 : null; - return number + (suffixes[number] || suffixes[a] || suffixes[b]); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 7th is the first week of the year. - } - }); - - return kk; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/kn.js b/app/rainloop/v/1.15.0/app/localization/moment/kn.js deleted file mode 100644 index 8d0ae9d..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/kn.js +++ /dev/null @@ -1,125 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var symbolMap = { - '1': '೧', - '2': '೨', - '3': '೩', - '4': '೪', - '5': '೫', - '6': '೬', - '7': '೭', - '8': '೮', - '9': '೯', - '0': '೦' - }, - numberMap = { - '೧': '1', - '೨': '2', - '೩': '3', - '೪': '4', - '೫': '5', - '೬': '6', - '೭': '7', - '೮': '8', - '೯': '9', - '೦': '0' - }; - - var kn = moment.defineLocale('kn', { - months : 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split('_'), - monthsShort : 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split('_'), - monthsParseExact: true, - weekdays : 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split('_'), - weekdaysShort : 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'), - weekdaysMin : 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'), - longDateFormat : { - LT : 'A h:mm', - LTS : 'A h:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm', - LLLL : 'dddd, D MMMM YYYY, A h:mm' - }, - calendar : { - sameDay : '[ಇಂದು] LT', - nextDay : '[ನಾಳೆ] LT', - nextWeek : 'dddd, LT', - lastDay : '[ನಿನ್ನೆ] LT', - lastWeek : '[ಕೊನೆಯ] dddd, LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s ನಂತರ', - past : '%s ಹಿಂದೆ', - s : 'ಕೆಲವು ಕ್ಷಣಗಳು', - ss : '%d ಸೆಕೆಂಡುಗಳು', - m : 'ಒಂದು ನಿಮಿಷ', - mm : '%d ನಿಮಿಷ', - h : 'ಒಂದು ಗಂಟೆ', - hh : '%d ಗಂಟೆ', - d : 'ಒಂದು ದಿನ', - dd : '%d ದಿನ', - M : 'ಒಂದು ತಿಂಗಳು', - MM : '%d ತಿಂಗಳು', - y : 'ಒಂದು ವರ್ಷ', - yy : '%d ವರ್ಷ' - }, - preparse: function (string) { - return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ರಾತ್ರಿ') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') { - return hour; - } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'ಸಂಜೆ') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'ರಾತ್ರಿ'; - } else if (hour < 10) { - return 'ಬೆಳಿಗ್ಗೆ'; - } else if (hour < 17) { - return 'ಮಧ್ಯಾಹ್ನ'; - } else if (hour < 20) { - return 'ಸಂಜೆ'; - } else { - return 'ರಾತ್ರಿ'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/, - ordinal : function (number) { - return number + 'ನೇ'; - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 6th is the first week of the year. - } - }); - - return kn; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/ko.js b/app/rainloop/v/1.15.0/app/localization/moment/ko.js deleted file mode 100644 index 40f1bb5..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/ko.js +++ /dev/null @@ -1,80 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var ko = moment.defineLocale('ko', { - months : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), - monthsShort : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), - weekdays : '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'), - weekdaysShort : '일_월_화_수_목_금_토'.split('_'), - weekdaysMin : '일_월_화_수_목_금_토'.split('_'), - longDateFormat : { - LT : 'A h:mm', - LTS : 'A h:mm:ss', - L : 'YYYY.MM.DD.', - LL : 'YYYY년 MMMM D일', - LLL : 'YYYY년 MMMM D일 A h:mm', - LLLL : 'YYYY년 MMMM D일 dddd A h:mm', - l : 'YYYY.MM.DD.', - ll : 'YYYY년 MMMM D일', - lll : 'YYYY년 MMMM D일 A h:mm', - llll : 'YYYY년 MMMM D일 dddd A h:mm' - }, - calendar : { - sameDay : '오늘 LT', - nextDay : '내일 LT', - nextWeek : 'dddd LT', - lastDay : '어제 LT', - lastWeek : '지난주 dddd LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s 후', - past : '%s 전', - s : '몇 초', - ss : '%d초', - m : '1분', - mm : '%d분', - h : '한 시간', - hh : '%d시간', - d : '하루', - dd : '%d일', - M : '한 달', - MM : '%d달', - y : '일 년', - yy : '%d년' - }, - dayOfMonthOrdinalParse : /\d{1,2}(일|월|주)/, - ordinal : function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '일'; - case 'M': - return number + '월'; - case 'w': - case 'W': - return number + '주'; - default: - return number; - } - }, - meridiemParse : /오전|오후/, - isPM : function (token) { - return token === '오후'; - }, - meridiem : function (hour, minute, isUpper) { - return hour < 12 ? '오전' : '오후'; - } - }); - - return ko; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/ku.js b/app/rainloop/v/1.15.0/app/localization/moment/ku.js deleted file mode 100644 index 05b9dbe..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/ku.js +++ /dev/null @@ -1,118 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var symbolMap = { - '1': '١', - '2': '٢', - '3': '٣', - '4': '٤', - '5': '٥', - '6': '٦', - '7': '٧', - '8': '٨', - '9': '٩', - '0': '٠' - }, numberMap = { - '١': '1', - '٢': '2', - '٣': '3', - '٤': '4', - '٥': '5', - '٦': '6', - '٧': '7', - '٨': '8', - '٩': '9', - '٠': '0' - }, - months = [ - 'کانونی دووەم', - 'شوبات', - 'ئازار', - 'نیسان', - 'ئایار', - 'حوزەیران', - 'تەمموز', - 'ئاب', - 'ئەیلوول', - 'تشرینی یەكەم', - 'تشرینی دووەم', - 'كانونی یەکەم' - ]; - - - var ku = moment.defineLocale('ku', { - months : months, - monthsShort : months, - weekdays : 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split('_'), - weekdaysShort : 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'), - weekdaysMin : 'ی_د_س_چ_پ_ه_ش'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - meridiemParse: /ئێواره‌|به‌یانی/, - isPM: function (input) { - return /ئێواره‌/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'به‌یانی'; - } else { - return 'ئێواره‌'; - } - }, - calendar : { - sameDay : '[ئه‌مرۆ كاتژمێر] LT', - nextDay : '[به‌یانی كاتژمێر] LT', - nextWeek : 'dddd [كاتژمێر] LT', - lastDay : '[دوێنێ كاتژمێر] LT', - lastWeek : 'dddd [كاتژمێر] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'له‌ %s', - past : '%s', - s : 'چه‌ند چركه‌یه‌ك', - ss : 'چركه‌ %d', - m : 'یه‌ك خوله‌ك', - mm : '%d خوله‌ك', - h : 'یه‌ك كاتژمێر', - hh : '%d كاتژمێر', - d : 'یه‌ك ڕۆژ', - dd : '%d ڕۆژ', - M : 'یه‌ك مانگ', - MM : '%d مانگ', - y : 'یه‌ك ساڵ', - yy : '%d ساڵ' - }, - preparse: function (string) { - return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { - return numberMap[match]; - }).replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }).replace(/,/g, '،'); - }, - week : { - dow : 6, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 12th is the first week of the year. - } - }); - - return ku; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/ky.js b/app/rainloop/v/1.15.0/app/localization/moment/ky.js deleted file mode 100644 index 8bd29a3..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/ky.js +++ /dev/null @@ -1,86 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var suffixes = { - 0: '-чү', - 1: '-чи', - 2: '-чи', - 3: '-чү', - 4: '-чү', - 5: '-чи', - 6: '-чы', - 7: '-чи', - 8: '-чи', - 9: '-чу', - 10: '-чу', - 20: '-чы', - 30: '-чу', - 40: '-чы', - 50: '-чү', - 60: '-чы', - 70: '-чи', - 80: '-чи', - 90: '-чу', - 100: '-чү' - }; - - var ky = moment.defineLocale('ky', { - months : 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'), - monthsShort : 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'), - weekdays : 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'), - weekdaysShort : 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'), - weekdaysMin : 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[Бүгүн саат] LT', - nextDay : '[Эртең саат] LT', - nextWeek : 'dddd [саат] LT', - lastDay : '[Кечээ саат] LT', - lastWeek : '[Өткөн аптанын] dddd [күнү] [саат] LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s ичинде', - past : '%s мурун', - s : 'бирнече секунд', - ss : '%d секунд', - m : 'бир мүнөт', - mm : '%d мүнөт', - h : 'бир саат', - hh : '%d саат', - d : 'бир күн', - dd : '%d күн', - M : 'бир ай', - MM : '%d ай', - y : 'бир жыл', - yy : '%d жыл' - }, - dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/, - ordinal : function (number) { - var a = number % 10, - b = number >= 100 ? 100 : null; - return number + (suffixes[number] || suffixes[a] || suffixes[b]); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 7th is the first week of the year. - } - }); - - return ky; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/lo.js b/app/rainloop/v/1.15.0/app/localization/moment/lo.js deleted file mode 100644 index 7cd6cfc..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/lo.js +++ /dev/null @@ -1,69 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var lo = moment.defineLocale('lo', { - months : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'), - monthsShort : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'), - weekdays : 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), - weekdaysShort : 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'), - weekdaysMin : 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'ວັນdddd D MMMM YYYY HH:mm' - }, - meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/, - isPM: function (input) { - return input === 'ຕອນແລງ'; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ຕອນເຊົ້າ'; - } else { - return 'ຕອນແລງ'; - } - }, - calendar : { - sameDay : '[ມື້ນີ້ເວລາ] LT', - nextDay : '[ມື້ອື່ນເວລາ] LT', - nextWeek : '[ວັນ]dddd[ໜ້າເວລາ] LT', - lastDay : '[ມື້ວານນີ້ເວລາ] LT', - lastWeek : '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'ອີກ %s', - past : '%sຜ່ານມາ', - s : 'ບໍ່ເທົ່າໃດວິນາທີ', - ss : '%d ວິນາທີ' , - m : '1 ນາທີ', - mm : '%d ນາທີ', - h : '1 ຊົ່ວໂມງ', - hh : '%d ຊົ່ວໂມງ', - d : '1 ມື້', - dd : '%d ມື້', - M : '1 ເດືອນ', - MM : '%d ເດືອນ', - y : '1 ປີ', - yy : '%d ປີ' - }, - dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/, - ordinal : function (number) { - return 'ທີ່' + number; - } - }); - - return lo; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/lt.js b/app/rainloop/v/1.15.0/app/localization/moment/lt.js deleted file mode 100644 index bc7d7e7..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/lt.js +++ /dev/null @@ -1,117 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var units = { - 'ss' : 'sekundė_sekundžių_sekundes', - 'm' : 'minutė_minutės_minutę', - 'mm': 'minutės_minučių_minutes', - 'h' : 'valanda_valandos_valandą', - 'hh': 'valandos_valandų_valandas', - 'd' : 'diena_dienos_dieną', - 'dd': 'dienos_dienų_dienas', - 'M' : 'mėnuo_mėnesio_mėnesį', - 'MM': 'mėnesiai_mėnesių_mėnesius', - 'y' : 'metai_metų_metus', - 'yy': 'metai_metų_metus' - }; - function translateSeconds(number, withoutSuffix, key, isFuture) { - if (withoutSuffix) { - return 'kelios sekundės'; - } else { - return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; - } - } - function translateSingular(number, withoutSuffix, key, isFuture) { - return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]); - } - function special(number) { - return number % 10 === 0 || (number > 10 && number < 20); - } - function forms(key) { - return units[key].split('_'); - } - function translate(number, withoutSuffix, key, isFuture) { - var result = number + ' '; - if (number === 1) { - return result + translateSingular(number, withoutSuffix, key[0], isFuture); - } else if (withoutSuffix) { - return result + (special(number) ? forms(key)[1] : forms(key)[0]); - } else { - if (isFuture) { - return result + forms(key)[1]; - } else { - return result + (special(number) ? forms(key)[1] : forms(key)[2]); - } - } - } - var lt = moment.defineLocale('lt', { - months : { - format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'), - standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'), - isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/ - }, - monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), - weekdays : { - format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'), - standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'), - isFormat: /dddd HH:mm/ - }, - weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'), - weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'YYYY [m.] MMMM D [d.]', - LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]', - LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', - l : 'YYYY-MM-DD', - ll : 'YYYY [m.] MMMM D [d.]', - lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]', - llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]' - }, - calendar : { - sameDay : '[Šiandien] LT', - nextDay : '[Rytoj] LT', - nextWeek : 'dddd LT', - lastDay : '[Vakar] LT', - lastWeek : '[Praėjusį] dddd LT', - sameElse : 'L' - }, - relativeTime : { - future : 'po %s', - past : 'prieš %s', - s : translateSeconds, - ss : translate, - m : translateSingular, - mm : translate, - h : translateSingular, - hh : translate, - d : translateSingular, - dd : translate, - M : translateSingular, - MM : translate, - y : translateSingular, - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}-oji/, - ordinal : function (number) { - return number + '-oji'; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return lt; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/lv.js b/app/rainloop/v/1.15.0/app/localization/moment/lv.js deleted file mode 100644 index b5b8ea8..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/lv.js +++ /dev/null @@ -1,96 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var units = { - 'ss': 'sekundes_sekundēm_sekunde_sekundes'.split('_'), - 'm': 'minūtes_minūtēm_minūte_minūtes'.split('_'), - 'mm': 'minūtes_minūtēm_minūte_minūtes'.split('_'), - 'h': 'stundas_stundām_stunda_stundas'.split('_'), - 'hh': 'stundas_stundām_stunda_stundas'.split('_'), - 'd': 'dienas_dienām_diena_dienas'.split('_'), - 'dd': 'dienas_dienām_diena_dienas'.split('_'), - 'M': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), - 'MM': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), - 'y': 'gada_gadiem_gads_gadi'.split('_'), - 'yy': 'gada_gadiem_gads_gadi'.split('_') - }; - /** - * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. - */ - function format(forms, number, withoutSuffix) { - if (withoutSuffix) { - // E.g. "21 minūte", "3 minūtes". - return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; - } else { - // E.g. "21 minūtes" as in "pēc 21 minūtes". - // E.g. "3 minūtēm" as in "pēc 3 minūtēm". - return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; - } - } - function relativeTimeWithPlural(number, withoutSuffix, key) { - return number + ' ' + format(units[key], number, withoutSuffix); - } - function relativeTimeWithSingular(number, withoutSuffix, key) { - return format(units[key], number, withoutSuffix); - } - function relativeSeconds(number, withoutSuffix) { - return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm'; - } - - var lv = moment.defineLocale('lv', { - months : 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'), - monthsShort : 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'), - weekdays : 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'), - weekdaysShort : 'Sv_P_O_T_C_Pk_S'.split('_'), - weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY.', - LL : 'YYYY. [gada] D. MMMM', - LLL : 'YYYY. [gada] D. MMMM, HH:mm', - LLLL : 'YYYY. [gada] D. MMMM, dddd, HH:mm' - }, - calendar : { - sameDay : '[Šodien pulksten] LT', - nextDay : '[Rīt pulksten] LT', - nextWeek : 'dddd [pulksten] LT', - lastDay : '[Vakar pulksten] LT', - lastWeek : '[Pagājušā] dddd [pulksten] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'pēc %s', - past : 'pirms %s', - s : relativeSeconds, - ss : relativeTimeWithPlural, - m : relativeTimeWithSingular, - mm : relativeTimeWithPlural, - h : relativeTimeWithSingular, - hh : relativeTimeWithPlural, - d : relativeTimeWithSingular, - dd : relativeTimeWithPlural, - M : relativeTimeWithSingular, - MM : relativeTimeWithPlural, - y : relativeTimeWithSingular, - yy : relativeTimeWithPlural - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return lv; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/mk.js b/app/rainloop/v/1.15.0/app/localization/moment/mk.js deleted file mode 100644 index 051f683..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/mk.js +++ /dev/null @@ -1,89 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var mk = moment.defineLocale('mk', { - months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'), - monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'), - weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'), - weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'), - weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'), - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'D.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY H:mm', - LLLL : 'dddd, D MMMM YYYY H:mm' - }, - calendar : { - sameDay : '[Денес во] LT', - nextDay : '[Утре во] LT', - nextWeek : '[Во] dddd [во] LT', - lastDay : '[Вчера во] LT', - lastWeek : function () { - switch (this.day()) { - case 0: - case 3: - case 6: - return '[Изминатата] dddd [во] LT'; - case 1: - case 2: - case 4: - case 5: - return '[Изминатиот] dddd [во] LT'; - } - }, - sameElse : 'L' - }, - relativeTime : { - future : 'после %s', - past : 'пред %s', - s : 'неколку секунди', - ss : '%d секунди', - m : 'минута', - mm : '%d минути', - h : 'час', - hh : '%d часа', - d : 'ден', - dd : '%d дена', - M : 'месец', - MM : '%d месеци', - y : 'година', - yy : '%d години' - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, - ordinal : function (number) { - var lastDigit = number % 10, - last2Digits = number % 100; - if (number === 0) { - return number + '-ев'; - } else if (last2Digits === 0) { - return number + '-ен'; - } else if (last2Digits > 10 && last2Digits < 20) { - return number + '-ти'; - } else if (lastDigit === 1) { - return number + '-ви'; - } else if (lastDigit === 2) { - return number + '-ри'; - } else if (lastDigit === 7 || lastDigit === 8) { - return number + '-ми'; - } else { - return number + '-ти'; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 7th is the first week of the year. - } - }); - - return mk; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/ml.js b/app/rainloop/v/1.15.0/app/localization/moment/ml.js deleted file mode 100644 index 806db47..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/ml.js +++ /dev/null @@ -1,80 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var ml = moment.defineLocale('ml', { - months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'), - monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'), - monthsParseExact : true, - weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'), - weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'), - weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'), - longDateFormat : { - LT : 'A h:mm -നു', - LTS : 'A h:mm:ss -നു', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm -നു', - LLLL : 'dddd, D MMMM YYYY, A h:mm -നു' - }, - calendar : { - sameDay : '[ഇന്ന്] LT', - nextDay : '[നാളെ] LT', - nextWeek : 'dddd, LT', - lastDay : '[ഇന്നലെ] LT', - lastWeek : '[കഴിഞ്ഞ] dddd, LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s കഴിഞ്ഞ്', - past : '%s മുൻപ്', - s : 'അൽപ നിമിഷങ്ങൾ', - ss : '%d സെക്കൻഡ്', - m : 'ഒരു മിനിറ്റ്', - mm : '%d മിനിറ്റ്', - h : 'ഒരു മണിക്കൂർ', - hh : '%d മണിക്കൂർ', - d : 'ഒരു ദിവസം', - dd : '%d ദിവസം', - M : 'ഒരു മാസം', - MM : '%d മാസം', - y : 'ഒരു വർഷം', - yy : '%d വർഷം' - }, - meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if ((meridiem === 'രാത്രി' && hour >= 4) || - meridiem === 'ഉച്ച കഴിഞ്ഞ്' || - meridiem === 'വൈകുന്നേരം') { - return hour + 12; - } else { - return hour; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'രാത്രി'; - } else if (hour < 12) { - return 'രാവിലെ'; - } else if (hour < 17) { - return 'ഉച്ച കഴിഞ്ഞ്'; - } else if (hour < 20) { - return 'വൈകുന്നേരം'; - } else { - return 'രാത്രി'; - } - } - }); - - return ml; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/mn.js b/app/rainloop/v/1.15.0/app/localization/moment/mn.js deleted file mode 100644 index f4b95c8..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/mn.js +++ /dev/null @@ -1,103 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - function translate(number, withoutSuffix, key, isFuture) { - switch (key) { - case 's': - return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын'; - case 'ss': - return number + (withoutSuffix ? ' секунд' : ' секундын'); - case 'm': - case 'mm': - return number + (withoutSuffix ? ' минут' : ' минутын'); - case 'h': - case 'hh': - return number + (withoutSuffix ? ' цаг' : ' цагийн'); - case 'd': - case 'dd': - return number + (withoutSuffix ? ' өдөр' : ' өдрийн'); - case 'M': - case 'MM': - return number + (withoutSuffix ? ' сар' : ' сарын'); - case 'y': - case 'yy': - return number + (withoutSuffix ? ' жил' : ' жилийн'); - default: - return number; - } - } - - var mn = moment.defineLocale('mn', { - months : 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split('_'), - monthsShort : '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split('_'), - monthsParseExact : true, - weekdays : 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'), - weekdaysShort : 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'), - weekdaysMin : 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'YYYY оны MMMMын D', - LLL : 'YYYY оны MMMMын D HH:mm', - LLLL : 'dddd, YYYY оны MMMMын D HH:mm' - }, - meridiemParse: /ҮӨ|ҮХ/i, - isPM : function (input) { - return input === 'ҮХ'; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ҮӨ'; - } else { - return 'ҮХ'; - } - }, - calendar : { - sameDay : '[Өнөөдөр] LT', - nextDay : '[Маргааш] LT', - nextWeek : '[Ирэх] dddd LT', - lastDay : '[Өчигдөр] LT', - lastWeek : '[Өнгөрсөн] dddd LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s дараа', - past : '%s өмнө', - s : translate, - ss : translate, - m : translate, - mm : translate, - h : translate, - hh : translate, - d : translate, - dd : translate, - M : translate, - MM : translate, - y : translate, - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2} өдөр/, - ordinal : function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + ' өдөр'; - default: - return number; - } - } - }); - - return mn; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/mr.js b/app/rainloop/v/1.15.0/app/localization/moment/mr.js deleted file mode 100644 index 984559f..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/mr.js +++ /dev/null @@ -1,159 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var symbolMap = { - '1': '१', - '2': '२', - '3': '३', - '4': '४', - '5': '५', - '6': '६', - '7': '७', - '8': '८', - '9': '९', - '0': '०' - }, - numberMap = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0' - }; - - function relativeTimeMr(number, withoutSuffix, string, isFuture) - { - var output = ''; - if (withoutSuffix) { - switch (string) { - case 's': output = 'काही सेकंद'; break; - case 'ss': output = '%d सेकंद'; break; - case 'm': output = 'एक मिनिट'; break; - case 'mm': output = '%d मिनिटे'; break; - case 'h': output = 'एक तास'; break; - case 'hh': output = '%d तास'; break; - case 'd': output = 'एक दिवस'; break; - case 'dd': output = '%d दिवस'; break; - case 'M': output = 'एक महिना'; break; - case 'MM': output = '%d महिने'; break; - case 'y': output = 'एक वर्ष'; break; - case 'yy': output = '%d वर्षे'; break; - } - } - else { - switch (string) { - case 's': output = 'काही सेकंदां'; break; - case 'ss': output = '%d सेकंदां'; break; - case 'm': output = 'एका मिनिटा'; break; - case 'mm': output = '%d मिनिटां'; break; - case 'h': output = 'एका तासा'; break; - case 'hh': output = '%d तासां'; break; - case 'd': output = 'एका दिवसा'; break; - case 'dd': output = '%d दिवसां'; break; - case 'M': output = 'एका महिन्या'; break; - case 'MM': output = '%d महिन्यां'; break; - case 'y': output = 'एका वर्षा'; break; - case 'yy': output = '%d वर्षां'; break; - } - } - return output.replace(/%d/i, number); - } - - var mr = moment.defineLocale('mr', { - months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'), - monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'), - monthsParseExact : true, - weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), - weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'), - weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'), - longDateFormat : { - LT : 'A h:mm वाजता', - LTS : 'A h:mm:ss वाजता', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm वाजता', - LLLL : 'dddd, D MMMM YYYY, A h:mm वाजता' - }, - calendar : { - sameDay : '[आज] LT', - nextDay : '[उद्या] LT', - nextWeek : 'dddd, LT', - lastDay : '[काल] LT', - lastWeek: '[मागील] dddd, LT', - sameElse : 'L' - }, - relativeTime : { - future: '%sमध्ये', - past: '%sपूर्वी', - s: relativeTimeMr, - ss: relativeTimeMr, - m: relativeTimeMr, - mm: relativeTimeMr, - h: relativeTimeMr, - hh: relativeTimeMr, - d: relativeTimeMr, - dd: relativeTimeMr, - M: relativeTimeMr, - MM: relativeTimeMr, - y: relativeTimeMr, - yy: relativeTimeMr - }, - preparse: function (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'रात्री') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'सकाळी') { - return hour; - } else if (meridiem === 'दुपारी') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'सायंकाळी') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'रात्री'; - } else if (hour < 10) { - return 'सकाळी'; - } else if (hour < 17) { - return 'दुपारी'; - } else if (hour < 20) { - return 'सायंकाळी'; - } else { - return 'रात्री'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 6th is the first week of the year. - } - }); - - return mr; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/ms-my.js b/app/rainloop/v/1.15.0/app/localization/moment/ms-my.js deleted file mode 100644 index 92014be..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/ms-my.js +++ /dev/null @@ -1,81 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var msMy = moment.defineLocale('ms-my', { - months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'), - monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), - weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), - weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), - weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), - longDateFormat : { - LT : 'HH.mm', - LTS : 'HH.mm.ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [pukul] HH.mm', - LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' - }, - meridiemParse: /pagi|tengahari|petang|malam/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'tengahari') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'petang' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'tengahari'; - } else if (hours < 19) { - return 'petang'; - } else { - return 'malam'; - } - }, - calendar : { - sameDay : '[Hari ini pukul] LT', - nextDay : '[Esok pukul] LT', - nextWeek : 'dddd [pukul] LT', - lastDay : '[Kelmarin pukul] LT', - lastWeek : 'dddd [lepas pukul] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'dalam %s', - past : '%s yang lepas', - s : 'beberapa saat', - ss : '%d saat', - m : 'seminit', - mm : '%d minit', - h : 'sejam', - hh : '%d jam', - d : 'sehari', - dd : '%d hari', - M : 'sebulan', - MM : '%d bulan', - y : 'setahun', - yy : '%d tahun' - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 7th is the first week of the year. - } - }); - - return msMy; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/ms.js b/app/rainloop/v/1.15.0/app/localization/moment/ms.js deleted file mode 100644 index b499b5c..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/ms.js +++ /dev/null @@ -1,81 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var ms = moment.defineLocale('ms', { - months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'), - monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), - weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), - weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), - weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), - longDateFormat : { - LT : 'HH.mm', - LTS : 'HH.mm.ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [pukul] HH.mm', - LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' - }, - meridiemParse: /pagi|tengahari|petang|malam/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'pagi') { - return hour; - } else if (meridiem === 'tengahari') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'petang' || meridiem === 'malam') { - return hour + 12; - } - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'pagi'; - } else if (hours < 15) { - return 'tengahari'; - } else if (hours < 19) { - return 'petang'; - } else { - return 'malam'; - } - }, - calendar : { - sameDay : '[Hari ini pukul] LT', - nextDay : '[Esok pukul] LT', - nextWeek : 'dddd [pukul] LT', - lastDay : '[Kelmarin pukul] LT', - lastWeek : 'dddd [lepas pukul] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'dalam %s', - past : '%s yang lepas', - s : 'beberapa saat', - ss : '%d saat', - m : 'seminit', - mm : '%d minit', - h : 'sejam', - hh : '%d jam', - d : 'sehari', - dd : '%d hari', - M : 'sebulan', - MM : '%d bulan', - y : 'setahun', - yy : '%d tahun' - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 7th is the first week of the year. - } - }); - - return ms; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/mt.js b/app/rainloop/v/1.15.0/app/localization/moment/mt.js deleted file mode 100644 index 4a34c5d..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/mt.js +++ /dev/null @@ -1,59 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var mt = moment.defineLocale('mt', { - months : 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split('_'), - monthsShort : 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'), - weekdays : 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split('_'), - weekdaysShort : 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'), - weekdaysMin : 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[Illum fil-]LT', - nextDay : '[Għada fil-]LT', - nextWeek : 'dddd [fil-]LT', - lastDay : '[Il-bieraħ fil-]LT', - lastWeek : 'dddd [li għadda] [fil-]LT', - sameElse : 'L' - }, - relativeTime : { - future : 'f’ %s', - past : '%s ilu', - s : 'ftit sekondi', - ss : '%d sekondi', - m : 'minuta', - mm : '%d minuti', - h : 'siegħa', - hh : '%d siegħat', - d : 'ġurnata', - dd : '%d ġranet', - M : 'xahar', - MM : '%d xhur', - y : 'sena', - yy : '%d sni' - }, - dayOfMonthOrdinalParse : /\d{1,2}º/, - ordinal: '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return mt; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/nb.js b/app/rainloop/v/1.15.0/app/localization/moment/nb.js deleted file mode 100644 index f229810..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/nb.js +++ /dev/null @@ -1,61 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var nb = moment.defineLocale('nb', { - months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'), - monthsShort : 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), - monthsParseExact : true, - weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), - weekdaysShort : 'sø._ma._ti._on._to._fr._lø.'.split('_'), - weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY [kl.] HH:mm', - LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm' - }, - calendar : { - sameDay: '[i dag kl.] LT', - nextDay: '[i morgen kl.] LT', - nextWeek: 'dddd [kl.] LT', - lastDay: '[i går kl.] LT', - lastWeek: '[forrige] dddd [kl.] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'om %s', - past : '%s siden', - s : 'noen sekunder', - ss : '%d sekunder', - m : 'ett minutt', - mm : '%d minutter', - h : 'en time', - hh : '%d timer', - d : 'en dag', - dd : '%d dager', - M : 'en måned', - MM : '%d måneder', - y : 'ett år', - yy : '%d år' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return nb; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/ne.js b/app/rainloop/v/1.15.0/app/localization/moment/ne.js deleted file mode 100644 index 21c03a8..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/ne.js +++ /dev/null @@ -1,122 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var symbolMap = { - '1': '१', - '2': '२', - '3': '३', - '4': '४', - '5': '५', - '6': '६', - '7': '७', - '8': '८', - '9': '९', - '0': '०' - }, - numberMap = { - '१': '1', - '२': '2', - '३': '3', - '४': '4', - '५': '5', - '६': '6', - '७': '7', - '८': '8', - '९': '9', - '०': '0' - }; - - var ne = moment.defineLocale('ne', { - months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'), - monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'), - monthsParseExact : true, - weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'), - weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'), - weekdaysMin : 'आ._सो._मं._बु._बि._शु._श.'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'Aको h:mm बजे', - LTS : 'Aको h:mm:ss बजे', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, Aको h:mm बजे', - LLLL : 'dddd, D MMMM YYYY, Aको h:mm बजे' - }, - preparse: function (string) { - return string.replace(/[१२३४५६७८९०]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - meridiemParse: /राति|बिहान|दिउँसो|साँझ/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'राति') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'बिहान') { - return hour; - } else if (meridiem === 'दिउँसो') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'साँझ') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 3) { - return 'राति'; - } else if (hour < 12) { - return 'बिहान'; - } else if (hour < 16) { - return 'दिउँसो'; - } else if (hour < 20) { - return 'साँझ'; - } else { - return 'राति'; - } - }, - calendar : { - sameDay : '[आज] LT', - nextDay : '[भोलि] LT', - nextWeek : '[आउँदो] dddd[,] LT', - lastDay : '[हिजो] LT', - lastWeek : '[गएको] dddd[,] LT', - sameElse : 'L' - }, - relativeTime : { - future : '%sमा', - past : '%s अगाडि', - s : 'केही क्षण', - ss : '%d सेकेण्ड', - m : 'एक मिनेट', - mm : '%d मिनेट', - h : 'एक घण्टा', - hh : '%d घण्टा', - d : 'एक दिन', - dd : '%d दिन', - M : 'एक महिना', - MM : '%d महिना', - y : 'एक बर्ष', - yy : '%d बर्ष' - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 6th is the first week of the year. - } - }); - - return ne; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/nl-be.js b/app/rainloop/v/1.15.0/app/localization/moment/nl-be.js deleted file mode 100644 index 479e291..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/nl-be.js +++ /dev/null @@ -1,86 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), - monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'); - - var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i]; - var monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; - - var nlBe = moment.defineLocale('nl-be', { - months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortWithDots; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots[m.month()]; - } else { - return monthsShortWithDots[m.month()]; - } - }, - - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, - monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, - - monthsParse : monthsParse, - longMonthsParse : monthsParse, - shortMonthsParse : monthsParse, - - weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), - weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'), - weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[vandaag om] LT', - nextDay: '[morgen om] LT', - nextWeek: 'dddd [om] LT', - lastDay: '[gisteren om] LT', - lastWeek: '[afgelopen] dddd [om] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'over %s', - past : '%s geleden', - s : 'een paar seconden', - ss : '%d seconden', - m : 'één minuut', - mm : '%d minuten', - h : 'één uur', - hh : '%d uur', - d : 'één dag', - dd : '%d dagen', - M : 'één maand', - MM : '%d maanden', - y : 'één jaar', - yy : '%d jaar' - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal : function (number) { - return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return nlBe; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/nl.js b/app/rainloop/v/1.15.0/app/localization/moment/nl.js deleted file mode 100644 index 11e78b9..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/nl.js +++ /dev/null @@ -1,86 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), - monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'); - - var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i]; - var monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; - - var nl = moment.defineLocale('nl', { - months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'), - monthsShort : function (m, format) { - if (!m) { - return monthsShortWithDots; - } else if (/-MMM-/.test(format)) { - return monthsShortWithoutDots[m.month()]; - } else { - return monthsShortWithDots[m.month()]; - } - }, - - monthsRegex: monthsRegex, - monthsShortRegex: monthsRegex, - monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, - monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, - - monthsParse : monthsParse, - longMonthsParse : monthsParse, - shortMonthsParse : monthsParse, - - weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), - weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'), - weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD-MM-YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[vandaag om] LT', - nextDay: '[morgen om] LT', - nextWeek: 'dddd [om] LT', - lastDay: '[gisteren om] LT', - lastWeek: '[afgelopen] dddd [om] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'over %s', - past : '%s geleden', - s : 'een paar seconden', - ss : '%d seconden', - m : 'één minuut', - mm : '%d minuten', - h : 'één uur', - hh : '%d uur', - d : 'één dag', - dd : '%d dagen', - M : 'één maand', - MM : '%d maanden', - y : 'één jaar', - yy : '%d jaar' - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal : function (number) { - return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return nl; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/nn.js b/app/rainloop/v/1.15.0/app/localization/moment/nn.js deleted file mode 100644 index 5fa3550..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/nn.js +++ /dev/null @@ -1,59 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var nn = moment.defineLocale('nn', { - months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'), - monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), - weekdays : 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), - weekdaysShort : 'sun_mån_tys_ons_tor_fre_lau'.split('_'), - weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM YYYY', - LLL : 'D. MMMM YYYY [kl.] H:mm', - LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm' - }, - calendar : { - sameDay: '[I dag klokka] LT', - nextDay: '[I morgon klokka] LT', - nextWeek: 'dddd [klokka] LT', - lastDay: '[I går klokka] LT', - lastWeek: '[Føregåande] dddd [klokka] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'om %s', - past : '%s sidan', - s : 'nokre sekund', - ss : '%d sekund', - m : 'eit minutt', - mm : '%d minutt', - h : 'ein time', - hh : '%d timar', - d : 'ein dag', - dd : '%d dagar', - M : 'ein månad', - MM : '%d månader', - y : 'eit år', - yy : '%d år' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return nn; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/pa-in.js b/app/rainloop/v/1.15.0/app/localization/moment/pa-in.js deleted file mode 100644 index 58ae128..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/pa-in.js +++ /dev/null @@ -1,123 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var symbolMap = { - '1': '੧', - '2': '੨', - '3': '੩', - '4': '੪', - '5': '੫', - '6': '੬', - '7': '੭', - '8': '੮', - '9': '੯', - '0': '੦' - }, - numberMap = { - '੧': '1', - '੨': '2', - '੩': '3', - '੪': '4', - '੫': '5', - '੬': '6', - '੭': '7', - '੮': '8', - '੯': '9', - '੦': '0' - }; - - var paIn = moment.defineLocale('pa-in', { - // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi. - months : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'), - monthsShort : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'), - weekdays : 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split('_'), - weekdaysShort : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), - weekdaysMin : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'), - longDateFormat : { - LT : 'A h:mm ਵਜੇ', - LTS : 'A h:mm:ss ਵਜੇ', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm ਵਜੇ', - LLLL : 'dddd, D MMMM YYYY, A h:mm ਵਜੇ' - }, - calendar : { - sameDay : '[ਅਜ] LT', - nextDay : '[ਕਲ] LT', - nextWeek : '[ਅਗਲਾ] dddd, LT', - lastDay : '[ਕਲ] LT', - lastWeek : '[ਪਿਛਲੇ] dddd, LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s ਵਿੱਚ', - past : '%s ਪਿਛਲੇ', - s : 'ਕੁਝ ਸਕਿੰਟ', - ss : '%d ਸਕਿੰਟ', - m : 'ਇਕ ਮਿੰਟ', - mm : '%d ਮਿੰਟ', - h : 'ਇੱਕ ਘੰਟਾ', - hh : '%d ਘੰਟੇ', - d : 'ਇੱਕ ਦਿਨ', - dd : '%d ਦਿਨ', - M : 'ਇੱਕ ਮਹੀਨਾ', - MM : '%d ਮਹੀਨੇ', - y : 'ਇੱਕ ਸਾਲ', - yy : '%d ਸਾਲ' - }, - preparse: function (string) { - return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - // Punjabi notation for meridiems are quite fuzzy in practice. While there exists - // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. - meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ਰਾਤ') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ਸਵੇਰ') { - return hour; - } else if (meridiem === 'ਦੁਪਹਿਰ') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'ਸ਼ਾਮ') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'ਰਾਤ'; - } else if (hour < 10) { - return 'ਸਵੇਰ'; - } else if (hour < 17) { - return 'ਦੁਪਹਿਰ'; - } else if (hour < 20) { - return 'ਸ਼ਾਮ'; - } else { - return 'ਰਾਤ'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 6th is the first week of the year. - } - }); - - return paIn; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/pt-br.js b/app/rainloop/v/1.15.0/app/localization/moment/pt-br.js deleted file mode 100644 index 6cad591..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/pt-br.js +++ /dev/null @@ -1,60 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var ptBr = moment.defineLocale('pt-br', { - months : 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'), - monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), - weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'), - weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'), - weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY [às] HH:mm', - LLLL : 'dddd, D [de] MMMM [de] YYYY [às] HH:mm' - }, - calendar : { - sameDay: '[Hoje às] LT', - nextDay: '[Amanhã às] LT', - nextWeek: 'dddd [às] LT', - lastDay: '[Ontem às] LT', - lastWeek: function () { - return (this.day() === 0 || this.day() === 6) ? - '[Último] dddd [às] LT' : // Saturday + Sunday - '[Última] dddd [às] LT'; // Monday - Friday - }, - sameElse: 'L' - }, - relativeTime : { - future : 'em %s', - past : 'há %s', - s : 'poucos segundos', - ss : '%d segundos', - m : 'um minuto', - mm : '%d minutos', - h : 'uma hora', - hh : '%d horas', - d : 'um dia', - dd : '%d dias', - M : 'um mês', - MM : '%d meses', - y : 'um ano', - yy : '%d anos' - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal : '%dº' - }); - - return ptBr; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/pt.js b/app/rainloop/v/1.15.0/app/localization/moment/pt.js deleted file mode 100644 index 534f1c8..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/pt.js +++ /dev/null @@ -1,64 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var pt = moment.defineLocale('pt', { - months : 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'), - monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), - weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'), - weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'), - weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D [de] MMMM [de] YYYY', - LLL : 'D [de] MMMM [de] YYYY HH:mm', - LLLL : 'dddd, D [de] MMMM [de] YYYY HH:mm' - }, - calendar : { - sameDay: '[Hoje às] LT', - nextDay: '[Amanhã às] LT', - nextWeek: 'dddd [às] LT', - lastDay: '[Ontem às] LT', - lastWeek: function () { - return (this.day() === 0 || this.day() === 6) ? - '[Último] dddd [às] LT' : // Saturday + Sunday - '[Última] dddd [às] LT'; // Monday - Friday - }, - sameElse: 'L' - }, - relativeTime : { - future : 'em %s', - past : 'há %s', - s : 'segundos', - ss : '%d segundos', - m : 'um minuto', - mm : '%d minutos', - h : 'uma hora', - hh : '%d horas', - d : 'um dia', - dd : '%d dias', - M : 'um mês', - MM : '%d meses', - y : 'um ano', - yy : '%d anos' - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal : '%dº', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return pt; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/ro.js b/app/rainloop/v/1.15.0/app/localization/moment/ro.js deleted file mode 100644 index 15bea09..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/ro.js +++ /dev/null @@ -1,74 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - function relativeTimeWithPlural(number, withoutSuffix, key) { - var format = { - 'ss': 'secunde', - 'mm': 'minute', - 'hh': 'ore', - 'dd': 'zile', - 'MM': 'luni', - 'yy': 'ani' - }, - separator = ' '; - if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { - separator = ' de '; - } - return number + separator + format[key]; - } - - var ro = moment.defineLocale('ro', { - months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'), - monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'), - monthsParseExact: true, - weekdays : 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'), - weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'), - weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'), - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY H:mm', - LLLL : 'dddd, D MMMM YYYY H:mm' - }, - calendar : { - sameDay: '[azi la] LT', - nextDay: '[mâine la] LT', - nextWeek: 'dddd [la] LT', - lastDay: '[ieri la] LT', - lastWeek: '[fosta] dddd [la] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'peste %s', - past : '%s în urmă', - s : 'câteva secunde', - ss : relativeTimeWithPlural, - m : 'un minut', - mm : relativeTimeWithPlural, - h : 'o oră', - hh : relativeTimeWithPlural, - d : 'o zi', - dd : relativeTimeWithPlural, - M : 'o lună', - MM : relativeTimeWithPlural, - y : 'un an', - yy : relativeTimeWithPlural - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 7th is the first week of the year. - } - }); - - return ro; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/sd.js b/app/rainloop/v/1.15.0/app/localization/moment/sd.js deleted file mode 100644 index 1299238..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/sd.js +++ /dev/null @@ -1,97 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var months = [ - 'جنوري', - 'فيبروري', - 'مارچ', - 'اپريل', - 'مئي', - 'جون', - 'جولاءِ', - 'آگسٽ', - 'سيپٽمبر', - 'آڪٽوبر', - 'نومبر', - 'ڊسمبر' - ]; - var days = [ - 'آچر', - 'سومر', - 'اڱارو', - 'اربع', - 'خميس', - 'جمع', - 'ڇنڇر' - ]; - - var sd = moment.defineLocale('sd', { - months : months, - monthsShort : months, - weekdays : days, - weekdaysShort : days, - weekdaysMin : days, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd، D MMMM YYYY HH:mm' - }, - meridiemParse: /صبح|شام/, - isPM : function (input) { - return 'شام' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'صبح'; - } - return 'شام'; - }, - calendar : { - sameDay : '[اڄ] LT', - nextDay : '[سڀاڻي] LT', - nextWeek : 'dddd [اڳين هفتي تي] LT', - lastDay : '[ڪالهه] LT', - lastWeek : '[گزريل هفتي] dddd [تي] LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s پوء', - past : '%s اڳ', - s : 'چند سيڪنڊ', - ss : '%d سيڪنڊ', - m : 'هڪ منٽ', - mm : '%d منٽ', - h : 'هڪ ڪلاڪ', - hh : '%d ڪلاڪ', - d : 'هڪ ڏينهن', - dd : '%d ڏينهن', - M : 'هڪ مهينو', - MM : '%d مهينا', - y : 'هڪ سال', - yy : '%d سال' - }, - preparse: function (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return sd; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/se.js b/app/rainloop/v/1.15.0/app/localization/moment/se.js deleted file mode 100644 index 4b04678..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/se.js +++ /dev/null @@ -1,59 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var se = moment.defineLocale('se', { - months : 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'), - monthsShort : 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'), - weekdays : 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'), - weekdaysShort : 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'), - weekdaysMin : 's_v_m_g_d_b_L'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'MMMM D. [b.] YYYY', - LLL : 'MMMM D. [b.] YYYY [ti.] HH:mm', - LLLL : 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm' - }, - calendar : { - sameDay: '[otne ti] LT', - nextDay: '[ihttin ti] LT', - nextWeek: 'dddd [ti] LT', - lastDay: '[ikte ti] LT', - lastWeek: '[ovddit] dddd [ti] LT', - sameElse: 'L' - }, - relativeTime : { - future : '%s geažes', - past : 'maŋit %s', - s : 'moadde sekunddat', - ss: '%d sekunddat', - m : 'okta minuhta', - mm : '%d minuhtat', - h : 'okta diimmu', - hh : '%d diimmut', - d : 'okta beaivi', - dd : '%d beaivvit', - M : 'okta mánnu', - MM : '%d mánut', - y : 'okta jahki', - yy : '%d jagit' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return se; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/si.js b/app/rainloop/v/1.15.0/app/localization/moment/si.js deleted file mode 100644 index 52dc608..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/si.js +++ /dev/null @@ -1,70 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - /*jshint -W100*/ - var si = moment.defineLocale('si', { - months : 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'), - monthsShort : 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'), - weekdays : 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'), - weekdaysShort : 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'), - weekdaysMin : 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'a h:mm', - LTS : 'a h:mm:ss', - L : 'YYYY/MM/DD', - LL : 'YYYY MMMM D', - LLL : 'YYYY MMMM D, a h:mm', - LLLL : 'YYYY MMMM D [වැනි] dddd, a h:mm:ss' - }, - calendar : { - sameDay : '[අද] LT[ට]', - nextDay : '[හෙට] LT[ට]', - nextWeek : 'dddd LT[ට]', - lastDay : '[ඊයේ] LT[ට]', - lastWeek : '[පසුගිය] dddd LT[ට]', - sameElse : 'L' - }, - relativeTime : { - future : '%sකින්', - past : '%sකට පෙර', - s : 'තත්පර කිහිපය', - ss : 'තත්පර %d', - m : 'මිනිත්තුව', - mm : 'මිනිත්තු %d', - h : 'පැය', - hh : 'පැය %d', - d : 'දිනය', - dd : 'දින %d', - M : 'මාසය', - MM : 'මාස %d', - y : 'වසර', - yy : 'වසර %d' - }, - dayOfMonthOrdinalParse: /\d{1,2} වැනි/, - ordinal : function (number) { - return number + ' වැනි'; - }, - meridiemParse : /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./, - isPM : function (input) { - return input === 'ප.ව.' || input === 'පස් වරු'; - }, - meridiem : function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'ප.ව.' : 'පස් වරු'; - } else { - return isLower ? 'පෙ.ව.' : 'පෙර වරු'; - } - } - }); - - return si; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/sq.js b/app/rainloop/v/1.15.0/app/localization/moment/sq.js deleted file mode 100644 index eb081df..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/sq.js +++ /dev/null @@ -1,67 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var sq = moment.defineLocale('sq', { - months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'), - monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'), - weekdays : 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'), - weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'), - weekdaysMin : 'D_H_Ma_Më_E_P_Sh'.split('_'), - weekdaysParseExact : true, - meridiemParse: /PD|MD/, - isPM: function (input) { - return input.charAt(0) === 'M'; - }, - meridiem : function (hours, minutes, isLower) { - return hours < 12 ? 'PD' : 'MD'; - }, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[Sot në] LT', - nextDay : '[Nesër në] LT', - nextWeek : 'dddd [në] LT', - lastDay : '[Dje në] LT', - lastWeek : 'dddd [e kaluar në] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'në %s', - past : '%s më parë', - s : 'disa sekonda', - ss : '%d sekonda', - m : 'një minutë', - mm : '%d minuta', - h : 'një orë', - hh : '%d orë', - d : 'një ditë', - dd : '%d ditë', - M : 'një muaj', - MM : '%d muaj', - y : 'një vit', - yy : '%d vite' - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return sq; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/ss.js b/app/rainloop/v/1.15.0/app/localization/moment/ss.js deleted file mode 100644 index a401149..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/ss.js +++ /dev/null @@ -1,87 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var ss = moment.defineLocale('ss', { - months : "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split('_'), - monthsShort : 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), - weekdays : 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'), - weekdaysShort : 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), - weekdaysMin : 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - calendar : { - sameDay : '[Namuhla nga] LT', - nextDay : '[Kusasa nga] LT', - nextWeek : 'dddd [nga] LT', - lastDay : '[Itolo nga] LT', - lastWeek : 'dddd [leliphelile] [nga] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'nga %s', - past : 'wenteka nga %s', - s : 'emizuzwana lomcane', - ss : '%d mzuzwana', - m : 'umzuzu', - mm : '%d emizuzu', - h : 'lihora', - hh : '%d emahora', - d : 'lilanga', - dd : '%d emalanga', - M : 'inyanga', - MM : '%d tinyanga', - y : 'umnyaka', - yy : '%d iminyaka' - }, - meridiemParse: /ekuseni|emini|entsambama|ebusuku/, - meridiem : function (hours, minutes, isLower) { - if (hours < 11) { - return 'ekuseni'; - } else if (hours < 15) { - return 'emini'; - } else if (hours < 19) { - return 'entsambama'; - } else { - return 'ebusuku'; - } - }, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'ekuseni') { - return hour; - } else if (meridiem === 'emini') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { - if (hour === 0) { - return 0; - } - return hour + 12; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal : '%d', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return ss; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/sv.js b/app/rainloop/v/1.15.0/app/localization/moment/sv.js deleted file mode 100644 index 494fedb..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/sv.js +++ /dev/null @@ -1,68 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var sv = moment.defineLocale('sv', { - months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'), - monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), - weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'), - weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'), - weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY-MM-DD', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY [kl.] HH:mm', - LLLL : 'dddd D MMMM YYYY [kl.] HH:mm', - lll : 'D MMM YYYY HH:mm', - llll : 'ddd D MMM YYYY HH:mm' - }, - calendar : { - sameDay: '[Idag] LT', - nextDay: '[Imorgon] LT', - lastDay: '[Igår] LT', - nextWeek: '[På] dddd LT', - lastWeek: '[I] dddd[s] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'om %s', - past : 'för %s sedan', - s : 'några sekunder', - ss : '%d sekunder', - m : 'en minut', - mm : '%d minuter', - h : 'en timme', - hh : '%d timmar', - d : 'en dag', - dd : '%d dagar', - M : 'en månad', - MM : '%d månader', - y : 'ett år', - yy : '%d år' - }, - dayOfMonthOrdinalParse: /\d{1,2}(e|a)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'e' : - (b === 1) ? 'a' : - (b === 2) ? 'a' : - (b === 3) ? 'e' : 'e'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return sv; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/sw.js b/app/rainloop/v/1.15.0/app/localization/moment/sw.js deleted file mode 100644 index 2c066b6..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/sw.js +++ /dev/null @@ -1,58 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var sw = moment.defineLocale('sw', { - months : 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'), - monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), - weekdays : 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'), - weekdaysShort : 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), - weekdaysMin : 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[leo saa] LT', - nextDay : '[kesho saa] LT', - nextWeek : '[wiki ijayo] dddd [saat] LT', - lastDay : '[jana] LT', - lastWeek : '[wiki iliyopita] dddd [saat] LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s baadaye', - past : 'tokea %s', - s : 'hivi punde', - ss : 'sekunde %d', - m : 'dakika moja', - mm : 'dakika %d', - h : 'saa limoja', - hh : 'masaa %d', - d : 'siku moja', - dd : 'masiku %d', - M : 'mwezi mmoja', - MM : 'miezi %d', - y : 'mwaka mmoja', - yy : 'miaka %d' - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 7th is the first week of the year. - } - }); - - return sw; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/ta.js b/app/rainloop/v/1.15.0/app/localization/moment/ta.js deleted file mode 100644 index f7a87d7..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/ta.js +++ /dev/null @@ -1,128 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var symbolMap = { - '1': '௧', - '2': '௨', - '3': '௩', - '4': '௪', - '5': '௫', - '6': '௬', - '7': '௭', - '8': '௮', - '9': '௯', - '0': '௦' - }, numberMap = { - '௧': '1', - '௨': '2', - '௩': '3', - '௪': '4', - '௫': '5', - '௬': '6', - '௭': '7', - '௮': '8', - '௯': '9', - '௦': '0' - }; - - var ta = moment.defineLocale('ta', { - months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'), - monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'), - weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'), - weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'), - weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, HH:mm', - LLLL : 'dddd, D MMMM YYYY, HH:mm' - }, - calendar : { - sameDay : '[இன்று] LT', - nextDay : '[நாளை] LT', - nextWeek : 'dddd, LT', - lastDay : '[நேற்று] LT', - lastWeek : '[கடந்த வாரம்] dddd, LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s இல்', - past : '%s முன்', - s : 'ஒரு சில விநாடிகள்', - ss : '%d விநாடிகள்', - m : 'ஒரு நிமிடம்', - mm : '%d நிமிடங்கள்', - h : 'ஒரு மணி நேரம்', - hh : '%d மணி நேரம்', - d : 'ஒரு நாள்', - dd : '%d நாட்கள்', - M : 'ஒரு மாதம்', - MM : '%d மாதங்கள்', - y : 'ஒரு வருடம்', - yy : '%d ஆண்டுகள்' - }, - dayOfMonthOrdinalParse: /\d{1,2}வது/, - ordinal : function (number) { - return number + 'வது'; - }, - preparse: function (string) { - return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) { - return numberMap[match]; - }); - }, - postformat: function (string) { - return string.replace(/\d/g, function (match) { - return symbolMap[match]; - }); - }, - // refer http://ta.wikipedia.org/s/1er1 - meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/, - meridiem : function (hour, minute, isLower) { - if (hour < 2) { - return ' யாமம்'; - } else if (hour < 6) { - return ' வைகறை'; // வைகறை - } else if (hour < 10) { - return ' காலை'; // காலை - } else if (hour < 14) { - return ' நண்பகல்'; // நண்பகல் - } else if (hour < 18) { - return ' எற்பாடு'; // எற்பாடு - } else if (hour < 22) { - return ' மாலை'; // மாலை - } else { - return ' யாமம்'; - } - }, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'யாமம்') { - return hour < 2 ? hour : hour + 12; - } else if (meridiem === 'வைகறை' || meridiem === 'காலை') { - return hour; - } else if (meridiem === 'நண்பகல்') { - return hour >= 10 ? hour : hour + 12; - } else { - return hour + 12; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 6th is the first week of the year. - } - }); - - return ta; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/te.js b/app/rainloop/v/1.15.0/app/localization/moment/te.js deleted file mode 100644 index abb40bf..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/te.js +++ /dev/null @@ -1,88 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var te = moment.defineLocale('te', { - months : 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'), - monthsShort : 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'), - monthsParseExact : true, - weekdays : 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'), - weekdaysShort : 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'), - weekdaysMin : 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'), - longDateFormat : { - LT : 'A h:mm', - LTS : 'A h:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY, A h:mm', - LLLL : 'dddd, D MMMM YYYY, A h:mm' - }, - calendar : { - sameDay : '[నేడు] LT', - nextDay : '[రేపు] LT', - nextWeek : 'dddd, LT', - lastDay : '[నిన్న] LT', - lastWeek : '[గత] dddd, LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s లో', - past : '%s క్రితం', - s : 'కొన్ని క్షణాలు', - ss : '%d సెకన్లు', - m : 'ఒక నిమిషం', - mm : '%d నిమిషాలు', - h : 'ఒక గంట', - hh : '%d గంటలు', - d : 'ఒక రోజు', - dd : '%d రోజులు', - M : 'ఒక నెల', - MM : '%d నెలలు', - y : 'ఒక సంవత్సరం', - yy : '%d సంవత్సరాలు' - }, - dayOfMonthOrdinalParse : /\d{1,2}వ/, - ordinal : '%dవ', - meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'రాత్రి') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'ఉదయం') { - return hour; - } else if (meridiem === 'మధ్యాహ్నం') { - return hour >= 10 ? hour : hour + 12; - } else if (meridiem === 'సాయంత్రం') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'రాత్రి'; - } else if (hour < 10) { - return 'ఉదయం'; - } else if (hour < 17) { - return 'మధ్యాహ్నం'; - } else if (hour < 20) { - return 'సాయంత్రం'; - } else { - return 'రాత్రి'; - } - }, - week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 6th is the first week of the year. - } - }); - - return te; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/tet.js b/app/rainloop/v/1.15.0/app/localization/moment/tet.js deleted file mode 100644 index efa53da..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/tet.js +++ /dev/null @@ -1,66 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var tet = moment.defineLocale('tet', { - months : 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split('_'), - monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), - weekdays : 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), - weekdaysShort : 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), - weekdaysMin : 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[Ohin iha] LT', - nextDay: '[Aban iha] LT', - nextWeek: 'dddd [iha] LT', - lastDay: '[Horiseik iha] LT', - lastWeek: 'dddd [semana kotuk] [iha] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'iha %s', - past : '%s liuba', - s : 'minutu balun', - ss : 'minutu %d', - m : 'minutu ida', - mm : 'minutu %d', - h : 'oras ida', - hh : 'oras %d', - d : 'loron ida', - dd : 'loron %d', - M : 'fulan ida', - MM : 'fulan %d', - y : 'tinan ida', - yy : 'tinan %d' - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return tet; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/tg.js b/app/rainloop/v/1.15.0/app/localization/moment/tg.js deleted file mode 100644 index c283368..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/tg.js +++ /dev/null @@ -1,115 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var suffixes = { - 0: '-ум', - 1: '-ум', - 2: '-юм', - 3: '-юм', - 4: '-ум', - 5: '-ум', - 6: '-ум', - 7: '-ум', - 8: '-ум', - 9: '-ум', - 10: '-ум', - 12: '-ум', - 13: '-ум', - 20: '-ум', - 30: '-юм', - 40: '-ум', - 50: '-ум', - 60: '-ум', - 70: '-ум', - 80: '-ум', - 90: '-ум', - 100: '-ум' - }; - - var tg = moment.defineLocale('tg', { - months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'), - monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), - weekdays : 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split('_'), - weekdaysShort : 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'), - weekdaysMin : 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[Имрӯз соати] LT', - nextDay : '[Пагоҳ соати] LT', - lastDay : '[Дирӯз соати] LT', - nextWeek : 'dddd[и] [ҳафтаи оянда соати] LT', - lastWeek : 'dddd[и] [ҳафтаи гузашта соати] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'баъди %s', - past : '%s пеш', - s : 'якчанд сония', - m : 'як дақиқа', - mm : '%d дақиқа', - h : 'як соат', - hh : '%d соат', - d : 'як рӯз', - dd : '%d рӯз', - M : 'як моҳ', - MM : '%d моҳ', - y : 'як сол', - yy : '%d сол' - }, - meridiemParse: /шаб|субҳ|рӯз|бегоҳ/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === 'шаб') { - return hour < 4 ? hour : hour + 12; - } else if (meridiem === 'субҳ') { - return hour; - } else if (meridiem === 'рӯз') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === 'бегоҳ') { - return hour + 12; - } - }, - meridiem: function (hour, minute, isLower) { - if (hour < 4) { - return 'шаб'; - } else if (hour < 11) { - return 'субҳ'; - } else if (hour < 16) { - return 'рӯз'; - } else if (hour < 19) { - return 'бегоҳ'; - } else { - return 'шаб'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/, - ordinal: function (number) { - var a = number % 10, - b = number >= 100 ? 100 : null; - return number + (suffixes[number] || suffixes[a] || suffixes[b]); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 1th is the first week of the year. - } - }); - - return tg; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/th.js b/app/rainloop/v/1.15.0/app/localization/moment/th.js deleted file mode 100644 index 87489a4..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/th.js +++ /dev/null @@ -1,66 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var th = moment.defineLocale('th', { - months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'), - monthsShort : 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'), - monthsParseExact: true, - weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'), - weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference - weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'H:mm', - LTS : 'H:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY เวลา H:mm', - LLLL : 'วันddddที่ D MMMM YYYY เวลา H:mm' - }, - meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/, - isPM: function (input) { - return input === 'หลังเที่ยง'; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'ก่อนเที่ยง'; - } else { - return 'หลังเที่ยง'; - } - }, - calendar : { - sameDay : '[วันนี้ เวลา] LT', - nextDay : '[พรุ่งนี้ เวลา] LT', - nextWeek : 'dddd[หน้า เวลา] LT', - lastDay : '[เมื่อวานนี้ เวลา] LT', - lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'อีก %s', - past : '%sที่แล้ว', - s : 'ไม่กี่วินาที', - ss : '%d วินาที', - m : '1 นาที', - mm : '%d นาที', - h : '1 ชั่วโมง', - hh : '%d ชั่วโมง', - d : '1 วัน', - dd : '%d วัน', - M : '1 เดือน', - MM : '%d เดือน', - y : '1 ปี', - yy : '%d ปี' - } - }); - - return th; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/tl-ph.js b/app/rainloop/v/1.15.0/app/localization/moment/tl-ph.js deleted file mode 100644 index 3f7e45e..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/tl-ph.js +++ /dev/null @@ -1,61 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var tlPh = moment.defineLocale('tl-ph', { - months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'), - monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), - weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'), - weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), - weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'MM/D/YYYY', - LL : 'MMMM D, YYYY', - LLL : 'MMMM D, YYYY HH:mm', - LLLL : 'dddd, MMMM DD, YYYY HH:mm' - }, - calendar : { - sameDay: 'LT [ngayong araw]', - nextDay: '[Bukas ng] LT', - nextWeek: 'LT [sa susunod na] dddd', - lastDay: 'LT [kahapon]', - lastWeek: 'LT [noong nakaraang] dddd', - sameElse: 'L' - }, - relativeTime : { - future : 'sa loob ng %s', - past : '%s ang nakalipas', - s : 'ilang segundo', - ss : '%d segundo', - m : 'isang minuto', - mm : '%d minuto', - h : 'isang oras', - hh : '%d oras', - d : 'isang araw', - dd : '%d araw', - M : 'isang buwan', - MM : '%d buwan', - y : 'isang taon', - yy : '%d taon' - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal : function (number) { - return number; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return tlPh; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/tlh.js b/app/rainloop/v/1.15.0/app/localization/moment/tlh.js deleted file mode 100644 index 7ea953b..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/tlh.js +++ /dev/null @@ -1,121 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); - - function translateFuture(output) { - var time = output; - time = (output.indexOf('jaj') !== -1) ? - time.slice(0, -3) + 'leS' : - (output.indexOf('jar') !== -1) ? - time.slice(0, -3) + 'waQ' : - (output.indexOf('DIS') !== -1) ? - time.slice(0, -3) + 'nem' : - time + ' pIq'; - return time; - } - - function translatePast(output) { - var time = output; - time = (output.indexOf('jaj') !== -1) ? - time.slice(0, -3) + 'Hu’' : - (output.indexOf('jar') !== -1) ? - time.slice(0, -3) + 'wen' : - (output.indexOf('DIS') !== -1) ? - time.slice(0, -3) + 'ben' : - time + ' ret'; - return time; - } - - function translate(number, withoutSuffix, string, isFuture) { - var numberNoun = numberAsNoun(number); - switch (string) { - case 'ss': - return numberNoun + ' lup'; - case 'mm': - return numberNoun + ' tup'; - case 'hh': - return numberNoun + ' rep'; - case 'dd': - return numberNoun + ' jaj'; - case 'MM': - return numberNoun + ' jar'; - case 'yy': - return numberNoun + ' DIS'; - } - } - - function numberAsNoun(number) { - var hundred = Math.floor((number % 1000) / 100), - ten = Math.floor((number % 100) / 10), - one = number % 10, - word = ''; - if (hundred > 0) { - word += numbersNouns[hundred] + 'vatlh'; - } - if (ten > 0) { - word += ((word !== '') ? ' ' : '') + numbersNouns[ten] + 'maH'; - } - if (one > 0) { - word += ((word !== '') ? ' ' : '') + numbersNouns[one]; - } - return (word === '') ? 'pagh' : word; - } - - var tlh = moment.defineLocale('tlh', { - months : 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'), - monthsShort : 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'), - monthsParseExact : true, - weekdays : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), - weekdaysShort : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), - weekdaysMin : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[DaHjaj] LT', - nextDay: '[wa’leS] LT', - nextWeek: 'LLL', - lastDay: '[wa’Hu’] LT', - lastWeek: 'LLL', - sameElse: 'L' - }, - relativeTime : { - future : translateFuture, - past : translatePast, - s : 'puS lup', - ss : translate, - m : 'wa’ tup', - mm : translate, - h : 'wa’ rep', - hh : translate, - d : 'wa’ jaj', - dd : translate, - M : 'wa’ jar', - MM : translate, - y : 'wa’ DIS', - yy : translate - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return tlh; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/tr.js b/app/rainloop/v/1.15.0/app/localization/moment/tr.js deleted file mode 100644 index e3fa275..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/tr.js +++ /dev/null @@ -1,93 +0,0 @@ - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - var suffixes = { - 1: '\'inci', - 5: '\'inci', - 8: '\'inci', - 70: '\'inci', - 80: '\'inci', - 2: '\'nci', - 7: '\'nci', - 20: '\'nci', - 50: '\'nci', - 3: '\'üncü', - 4: '\'üncü', - 100: '\'üncü', - 6: '\'ncı', - 9: '\'uncu', - 10: '\'uncu', - 30: '\'uncu', - 60: '\'ıncı', - 90: '\'ıncı' - }; - - var tr = moment.defineLocale('tr', { - months : 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'), - monthsShort : 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'), - weekdays : 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'), - weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'), - weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[bugün saat] LT', - nextDay : '[yarın saat] LT', - nextWeek : '[gelecek] dddd [saat] LT', - lastDay : '[dün] LT', - lastWeek : '[geçen] dddd [saat] LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s sonra', - past : '%s önce', - s : 'birkaç saniye', - ss : '%d saniye', - m : 'bir dakika', - mm : '%d dakika', - h : 'bir saat', - hh : '%d saat', - d : 'bir gün', - dd : '%d gün', - M : 'bir ay', - MM : '%d ay', - y : 'bir yıl', - yy : '%d yıl' - }, - ordinal: function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'Do': - case 'DD': - return number; - default: - if (number === 0) { // special case for zero - return number + '\'ıncı'; - } - var a = number % 10, - b = number % 100 - a, - c = number >= 100 ? 100 : null; - return number + (suffixes[a] || suffixes[b] || suffixes[c]); - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 7th is the first week of the year. - } - }); - - return tr; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/tzl.js b/app/rainloop/v/1.15.0/app/localization/moment/tzl.js deleted file mode 100644 index d32601b..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/tzl.js +++ /dev/null @@ -1,90 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. - // This is currently too difficult (maybe even impossible) to add. - var tzl = moment.defineLocale('tzl', { - months : 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'), - monthsShort : 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), - weekdays : 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), - weekdaysShort : 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), - weekdaysMin : 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), - longDateFormat : { - LT : 'HH.mm', - LTS : 'HH.mm.ss', - L : 'DD.MM.YYYY', - LL : 'D. MMMM [dallas] YYYY', - LLL : 'D. MMMM [dallas] YYYY HH.mm', - LLLL : 'dddd, [li] D. MMMM [dallas] YYYY HH.mm' - }, - meridiemParse: /d\'o|d\'a/i, - isPM : function (input) { - return 'd\'o' === input.toLowerCase(); - }, - meridiem : function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'd\'o' : 'D\'O'; - } else { - return isLower ? 'd\'a' : 'D\'A'; - } - }, - calendar : { - sameDay : '[oxhi à] LT', - nextDay : '[demà à] LT', - nextWeek : 'dddd [à] LT', - lastDay : '[ieiri à] LT', - lastWeek : '[sür el] dddd [lasteu à] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'osprei %s', - past : 'ja%s', - s : processRelativeTime, - ss : processRelativeTime, - m : processRelativeTime, - mm : processRelativeTime, - h : processRelativeTime, - hh : processRelativeTime, - d : processRelativeTime, - dd : processRelativeTime, - M : processRelativeTime, - MM : processRelativeTime, - y : processRelativeTime, - yy : processRelativeTime - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal : '%d.', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - function processRelativeTime(number, withoutSuffix, key, isFuture) { - var format = { - 's': ['viensas secunds', '\'iensas secunds'], - 'ss': [number + ' secunds', '' + number + ' secunds'], - 'm': ['\'n míut', '\'iens míut'], - 'mm': [number + ' míuts', '' + number + ' míuts'], - 'h': ['\'n þora', '\'iensa þora'], - 'hh': [number + ' þoras', '' + number + ' þoras'], - 'd': ['\'n ziua', '\'iensa ziua'], - 'dd': [number + ' ziuas', '' + number + ' ziuas'], - 'M': ['\'n mes', '\'iens mes'], - 'MM': [number + ' mesen', '' + number + ' mesen'], - 'y': ['\'n ar', '\'iens ar'], - 'yy': [number + ' ars', '' + number + ' ars'] - }; - return isFuture ? format[key][0] : (withoutSuffix ? format[key][0] : format[key][1]); - } - - return tzl; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/tzm-latn.js b/app/rainloop/v/1.15.0/app/localization/moment/tzm-latn.js deleted file mode 100644 index b7a2aed..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/tzm-latn.js +++ /dev/null @@ -1,57 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var tzmLatn = moment.defineLocale('tzm-latn', { - months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'), - monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'), - weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), - weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), - weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[asdkh g] LT', - nextDay: '[aska g] LT', - nextWeek: 'dddd [g] LT', - lastDay: '[assant g] LT', - lastWeek: 'dddd [g] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'dadkh s yan %s', - past : 'yan %s', - s : 'imik', - ss : '%d imik', - m : 'minuḍ', - mm : '%d minuḍ', - h : 'saɛa', - hh : '%d tassaɛin', - d : 'ass', - dd : '%d ossan', - M : 'ayowr', - MM : '%d iyyirn', - y : 'asgas', - yy : '%d isgasn' - }, - week : { - dow : 6, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 12th is the first week of the year. - } - }); - - return tzmLatn; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/tzm.js b/app/rainloop/v/1.15.0/app/localization/moment/tzm.js deleted file mode 100644 index 48d7123..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/tzm.js +++ /dev/null @@ -1,57 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var tzm = moment.defineLocale('tzm', { - months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), - monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), - weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS: 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd D MMMM YYYY HH:mm' - }, - calendar : { - sameDay: '[ⴰⵙⴷⵅ ⴴ] LT', - nextDay: '[ⴰⵙⴽⴰ ⴴ] LT', - nextWeek: 'dddd [ⴴ] LT', - lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT', - lastWeek: 'dddd [ⴴ] LT', - sameElse: 'L' - }, - relativeTime : { - future : 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s', - past : 'ⵢⴰⵏ %s', - s : 'ⵉⵎⵉⴽ', - ss : '%d ⵉⵎⵉⴽ', - m : 'ⵎⵉⵏⵓⴺ', - mm : '%d ⵎⵉⵏⵓⴺ', - h : 'ⵙⴰⵄⴰ', - hh : '%d ⵜⴰⵙⵙⴰⵄⵉⵏ', - d : 'ⴰⵙⵙ', - dd : '%d oⵙⵙⴰⵏ', - M : 'ⴰⵢoⵓⵔ', - MM : '%d ⵉⵢⵢⵉⵔⵏ', - y : 'ⴰⵙⴳⴰⵙ', - yy : '%d ⵉⵙⴳⴰⵙⵏ' - }, - week : { - dow : 6, // Saturday is the first day of the week. - doy : 12 // The week that contains Jan 12th is the first week of the year. - } - }); - - return tzm; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/uk.js b/app/rainloop/v/1.15.0/app/localization/moment/uk.js deleted file mode 100644 index 70761a1..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/uk.js +++ /dev/null @@ -1,153 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - function plural(word, num) { - var forms = word.split('_'); - return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]); - } - function relativeTimeWithPlural(number, withoutSuffix, key) { - var format = { - 'ss': withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд', - 'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин', - 'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин', - 'dd': 'день_дні_днів', - 'MM': 'місяць_місяці_місяців', - 'yy': 'рік_роки_років' - }; - if (key === 'm') { - return withoutSuffix ? 'хвилина' : 'хвилину'; - } - else if (key === 'h') { - return withoutSuffix ? 'година' : 'годину'; - } - else { - return number + ' ' + plural(format[key], +number); - } - } - function weekdaysCaseReplace(m, format) { - var weekdays = { - 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'), - 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'), - 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_') - }; - - if (m === true) { - return weekdays['nominative'].slice(1, 7).concat(weekdays['nominative'].slice(0, 1)); - } - if (!m) { - return weekdays['nominative']; - } - - var nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ? - 'accusative' : - ((/\[?(?:минулої|наступної)? ?\] ?dddd/).test(format) ? - 'genitive' : - 'nominative'); - return weekdays[nounCase][m.day()]; - } - function processHoursFunction(str) { - return function () { - return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; - }; - } - - var uk = moment.defineLocale('uk', { - months : { - 'format': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'), - 'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_') - }, - monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'), - weekdays : weekdaysCaseReplace, - weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD.MM.YYYY', - LL : 'D MMMM YYYY р.', - LLL : 'D MMMM YYYY р., HH:mm', - LLLL : 'dddd, D MMMM YYYY р., HH:mm' - }, - calendar : { - sameDay: processHoursFunction('[Сьогодні '), - nextDay: processHoursFunction('[Завтра '), - lastDay: processHoursFunction('[Вчора '), - nextWeek: processHoursFunction('[У] dddd ['), - lastWeek: function () { - switch (this.day()) { - case 0: - case 3: - case 5: - case 6: - return processHoursFunction('[Минулої] dddd [').call(this); - case 1: - case 2: - case 4: - return processHoursFunction('[Минулого] dddd [').call(this); - } - }, - sameElse: 'L' - }, - relativeTime : { - future : 'за %s', - past : '%s тому', - s : 'декілька секунд', - ss : relativeTimeWithPlural, - m : relativeTimeWithPlural, - mm : relativeTimeWithPlural, - h : 'годину', - hh : relativeTimeWithPlural, - d : 'день', - dd : relativeTimeWithPlural, - M : 'місяць', - MM : relativeTimeWithPlural, - y : 'рік', - yy : relativeTimeWithPlural - }, - // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason - meridiemParse: /ночі|ранку|дня|вечора/, - isPM: function (input) { - return /^(дня|вечора)$/.test(input); - }, - meridiem : function (hour, minute, isLower) { - if (hour < 4) { - return 'ночі'; - } else if (hour < 12) { - return 'ранку'; - } else if (hour < 17) { - return 'дня'; - } else { - return 'вечора'; - } - }, - dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, - ordinal: function (number, period) { - switch (period) { - case 'M': - case 'd': - case 'DDD': - case 'w': - case 'W': - return number + '-й'; - case 'D': - return number + '-го'; - default: - return number; - } - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 7th is the first week of the year. - } - }); - - return uk; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/ur.js b/app/rainloop/v/1.15.0/app/localization/moment/ur.js deleted file mode 100644 index 1609312..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/ur.js +++ /dev/null @@ -1,97 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var months = [ - 'جنوری', - 'فروری', - 'مارچ', - 'اپریل', - 'مئی', - 'جون', - 'جولائی', - 'اگست', - 'ستمبر', - 'اکتوبر', - 'نومبر', - 'دسمبر' - ]; - var days = [ - 'اتوار', - 'پیر', - 'منگل', - 'بدھ', - 'جمعرات', - 'جمعہ', - 'ہفتہ' - ]; - - var ur = moment.defineLocale('ur', { - months : months, - monthsShort : months, - weekdays : days, - weekdaysShort : days, - weekdaysMin : days, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd، D MMMM YYYY HH:mm' - }, - meridiemParse: /صبح|شام/, - isPM : function (input) { - return 'شام' === input; - }, - meridiem : function (hour, minute, isLower) { - if (hour < 12) { - return 'صبح'; - } - return 'شام'; - }, - calendar : { - sameDay : '[آج بوقت] LT', - nextDay : '[کل بوقت] LT', - nextWeek : 'dddd [بوقت] LT', - lastDay : '[گذشتہ روز بوقت] LT', - lastWeek : '[گذشتہ] dddd [بوقت] LT', - sameElse : 'L' - }, - relativeTime : { - future : '%s بعد', - past : '%s قبل', - s : 'چند سیکنڈ', - ss : '%d سیکنڈ', - m : 'ایک منٹ', - mm : '%d منٹ', - h : 'ایک گھنٹہ', - hh : '%d گھنٹے', - d : 'ایک دن', - dd : '%d دن', - M : 'ایک ماہ', - MM : '%d ماہ', - y : 'ایک سال', - yy : '%d سال' - }, - preparse: function (string) { - return string.replace(/،/g, ','); - }, - postformat: function (string) { - return string.replace(/,/g, '،'); - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return ur; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/uz-latn.js b/app/rainloop/v/1.15.0/app/localization/moment/uz-latn.js deleted file mode 100644 index 41a348c..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/uz-latn.js +++ /dev/null @@ -1,57 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var uzLatn = moment.defineLocale('uz-latn', { - months : 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'), - monthsShort : 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), - weekdays : 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'), - weekdaysShort : 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), - weekdaysMin : 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'D MMMM YYYY, dddd HH:mm' - }, - calendar : { - sameDay : '[Bugun soat] LT [da]', - nextDay : '[Ertaga] LT [da]', - nextWeek : 'dddd [kuni soat] LT [da]', - lastDay : '[Kecha soat] LT [da]', - lastWeek : '[O\'tgan] dddd [kuni soat] LT [da]', - sameElse : 'L' - }, - relativeTime : { - future : 'Yaqin %s ichida', - past : 'Bir necha %s oldin', - s : 'soniya', - ss : '%d soniya', - m : 'bir daqiqa', - mm : '%d daqiqa', - h : 'bir soat', - hh : '%d soat', - d : 'bir kun', - dd : '%d kun', - M : 'bir oy', - MM : '%d oy', - y : 'bir yil', - yy : '%d yil' - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 7th is the first week of the year. - } - }); - - return uzLatn; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/uz.js b/app/rainloop/v/1.15.0/app/localization/moment/uz.js deleted file mode 100644 index 0e4ad22..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/uz.js +++ /dev/null @@ -1,57 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var uz = moment.defineLocale('uz', { - months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'), - monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), - weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'), - weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'), - weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'D MMMM YYYY, dddd HH:mm' - }, - calendar : { - sameDay : '[Бугун соат] LT [да]', - nextDay : '[Эртага] LT [да]', - nextWeek : 'dddd [куни соат] LT [да]', - lastDay : '[Кеча соат] LT [да]', - lastWeek : '[Утган] dddd [куни соат] LT [да]', - sameElse : 'L' - }, - relativeTime : { - future : 'Якин %s ичида', - past : 'Бир неча %s олдин', - s : 'фурсат', - ss : '%d фурсат', - m : 'бир дакика', - mm : '%d дакика', - h : 'бир соат', - hh : '%d соат', - d : 'бир кун', - dd : '%d кун', - M : 'бир ой', - MM : '%d ой', - y : 'бир йил', - yy : '%d йил' - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 7 // The week that contains Jan 4th is the first week of the year. - } - }); - - return uz; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/vi.js b/app/rainloop/v/1.15.0/app/localization/moment/vi.js deleted file mode 100644 index 6fcbeaf..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/vi.js +++ /dev/null @@ -1,78 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var vi = moment.defineLocale('vi', { - months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'), - monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'), - monthsParseExact : true, - weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'), - weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'), - weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'), - weekdaysParseExact : true, - meridiemParse: /sa|ch/i, - isPM : function (input) { - return /^ch$/i.test(input); - }, - meridiem : function (hours, minutes, isLower) { - if (hours < 12) { - return isLower ? 'sa' : 'SA'; - } else { - return isLower ? 'ch' : 'CH'; - } - }, - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'DD/MM/YYYY', - LL : 'D MMMM [năm] YYYY', - LLL : 'D MMMM [năm] YYYY HH:mm', - LLLL : 'dddd, D MMMM [năm] YYYY HH:mm', - l : 'DD/M/YYYY', - ll : 'D MMM YYYY', - lll : 'D MMM YYYY HH:mm', - llll : 'ddd, D MMM YYYY HH:mm' - }, - calendar : { - sameDay: '[Hôm nay lúc] LT', - nextDay: '[Ngày mai lúc] LT', - nextWeek: 'dddd [tuần tới lúc] LT', - lastDay: '[Hôm qua lúc] LT', - lastWeek: 'dddd [tuần rồi lúc] LT', - sameElse: 'L' - }, - relativeTime : { - future : '%s tới', - past : '%s trước', - s : 'vài giây', - ss : '%d giây' , - m : 'một phút', - mm : '%d phút', - h : 'một giờ', - hh : '%d giờ', - d : 'một ngày', - dd : '%d ngày', - M : 'một tháng', - MM : '%d tháng', - y : 'một năm', - yy : '%d năm' - }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal : function (number) { - return number; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return vi; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/x-pseudo.js b/app/rainloop/v/1.15.0/app/localization/moment/x-pseudo.js deleted file mode 100644 index 9723c7b..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/x-pseudo.js +++ /dev/null @@ -1,67 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var xPseudo = moment.defineLocale('x-pseudo', { - months : 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'), - monthsShort : 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'), - monthsParseExact : true, - weekdays : 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split('_'), - weekdaysShort : 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'), - weekdaysMin : 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'), - weekdaysParseExact : true, - longDateFormat : { - LT : 'HH:mm', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY HH:mm', - LLLL : 'dddd, D MMMM YYYY HH:mm' - }, - calendar : { - sameDay : '[T~ódá~ý át] LT', - nextDay : '[T~ómó~rró~w át] LT', - nextWeek : 'dddd [át] LT', - lastDay : '[Ý~ést~érdá~ý át] LT', - lastWeek : '[L~ást] dddd [át] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'í~ñ %s', - past : '%s á~gó', - s : 'á ~féw ~sécó~ñds', - ss : '%d s~écóñ~ds', - m : 'á ~míñ~úté', - mm : '%d m~íñú~tés', - h : 'á~ñ hó~úr', - hh : '%d h~óúrs', - d : 'á ~dáý', - dd : '%d d~áýs', - M : 'á ~móñ~th', - MM : '%d m~óñt~hs', - y : 'á ~ýéár', - yy : '%d ý~éárs' - }, - dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, - ordinal : function (number) { - var b = number % 10, - output = (~~(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - }, - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return xPseudo; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/yo.js b/app/rainloop/v/1.15.0/app/localization/moment/yo.js deleted file mode 100644 index 1a356dc..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/yo.js +++ /dev/null @@ -1,59 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var yo = moment.defineLocale('yo', { - months : 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split('_'), - monthsShort : 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'), - weekdays : 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'), - weekdaysShort : 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'), - weekdaysMin : 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'), - longDateFormat : { - LT : 'h:mm A', - LTS : 'h:mm:ss A', - L : 'DD/MM/YYYY', - LL : 'D MMMM YYYY', - LLL : 'D MMMM YYYY h:mm A', - LLLL : 'dddd, D MMMM YYYY h:mm A' - }, - calendar : { - sameDay : '[Ònì ni] LT', - nextDay : '[Ọ̀la ni] LT', - nextWeek : 'dddd [Ọsẹ̀ tón\'bọ] [ni] LT', - lastDay : '[Àna ni] LT', - lastWeek : 'dddd [Ọsẹ̀ tólọ́] [ni] LT', - sameElse : 'L' - }, - relativeTime : { - future : 'ní %s', - past : '%s kọjá', - s : 'ìsẹjú aayá die', - ss :'aayá %d', - m : 'ìsẹjú kan', - mm : 'ìsẹjú %d', - h : 'wákati kan', - hh : 'wákati %d', - d : 'ọjọ́ kan', - dd : 'ọjọ́ %d', - M : 'osù kan', - MM : 'osù %d', - y : 'ọdún kan', - yy : 'ọdún %d' - }, - dayOfMonthOrdinalParse : /ọjọ́\s\d{1,2}/, - ordinal : 'ọjọ́ %d', - week : { - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return yo; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/zh-cn.js b/app/rainloop/v/1.15.0/app/localization/moment/zh-cn.js deleted file mode 100644 index b051f33..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/zh-cn.js +++ /dev/null @@ -1,109 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var zhCn = moment.defineLocale('zh-cn', { - months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'), - monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), - weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'), - weekdaysMin : '日_一_二_三_四_五_六'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY/MM/DD', - LL : 'YYYY年M月D日', - LLL : 'YYYY年M月D日Ah点mm分', - LLLL : 'YYYY年M月D日ddddAh点mm分', - l : 'YYYY/M/D', - ll : 'YYYY年M月D日', - lll : 'YYYY年M月D日 HH:mm', - llll : 'YYYY年M月D日dddd HH:mm' - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || - meridiem === '上午') { - return hour; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } else { - // '中午' - return hour >= 11 ? hour : hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar : { - sameDay : '[今天]LT', - nextDay : '[明天]LT', - nextWeek : '[下]ddddLT', - lastDay : '[昨天]LT', - lastWeek : '[上]ddddLT', - sameElse : 'L' - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/, - ordinal : function (number, period) { - switch (period) { - case 'd': - case 'D': - case 'DDD': - return number + '日'; - case 'M': - return number + '月'; - case 'w': - case 'W': - return number + '周'; - default: - return number; - } - }, - relativeTime : { - future : '%s内', - past : '%s前', - s : '几秒', - ss : '%d 秒', - m : '1 分钟', - mm : '%d 分钟', - h : '1 小时', - hh : '%d 小时', - d : '1 天', - dd : '%d 天', - M : '1 个月', - MM : '%d 个月', - y : '1 年', - yy : '%d 年' - }, - week : { - // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 - dow : 1, // Monday is the first day of the week. - doy : 4 // The week that contains Jan 4th is the first week of the year. - } - }); - - return zhCn; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/zh-hk.js b/app/rainloop/v/1.15.0/app/localization/moment/zh-hk.js deleted file mode 100644 index 0ad0ae3..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/zh-hk.js +++ /dev/null @@ -1,102 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var zhHk = moment.defineLocale('zh-hk', { - months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'), - monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), - weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'), - weekdaysMin : '日_一_二_三_四_五_六'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY/MM/DD', - LL : 'YYYY年M月D日', - LLL : 'YYYY年M月D日 HH:mm', - LLLL : 'YYYY年M月D日dddd HH:mm', - l : 'YYYY/M/D', - ll : 'YYYY年M月D日', - lll : 'YYYY年M月D日 HH:mm', - llll : 'YYYY年M月D日dddd HH:mm' - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '中午') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar : { - sameDay : '[今天]LT', - nextDay : '[明天]LT', - nextWeek : '[下]ddddLT', - lastDay : '[昨天]LT', - lastWeek : '[上]ddddLT', - sameElse : 'L' - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, - ordinal : function (number, period) { - switch (period) { - case 'd' : - case 'D' : - case 'DDD' : - return number + '日'; - case 'M' : - return number + '月'; - case 'w' : - case 'W' : - return number + '週'; - default : - return number; - } - }, - relativeTime : { - future : '%s內', - past : '%s前', - s : '幾秒', - ss : '%d 秒', - m : '1 分鐘', - mm : '%d 分鐘', - h : '1 小時', - hh : '%d 小時', - d : '1 天', - dd : '%d 天', - M : '1 個月', - MM : '%d 個月', - y : '1 年', - yy : '%d 年' - } - }); - - return zhHk; - -}))); diff --git a/app/rainloop/v/1.15.0/app/localization/moment/zh-tw.js b/app/rainloop/v/1.15.0/app/localization/moment/zh-tw.js deleted file mode 100644 index 6875cfe..0000000 --- a/app/rainloop/v/1.15.0/app/localization/moment/zh-tw.js +++ /dev/null @@ -1,102 +0,0 @@ -//! moment.js locale configuration - -;(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - && typeof require === 'function' ? factory(require('../moment')) : - typeof define === 'function' && define.amd ? define(['../moment'], factory) : - factory(global.moment) -}(this, (function (moment) { 'use strict'; - - - var zhTw = moment.defineLocale('zh-tw', { - months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'), - monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), - weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), - weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'), - weekdaysMin : '日_一_二_三_四_五_六'.split('_'), - longDateFormat : { - LT : 'HH:mm', - LTS : 'HH:mm:ss', - L : 'YYYY/MM/DD', - LL : 'YYYY年M月D日', - LLL : 'YYYY年M月D日 HH:mm', - LLLL : 'YYYY年M月D日dddd HH:mm', - l : 'YYYY/M/D', - ll : 'YYYY年M月D日', - lll : 'YYYY年M月D日 HH:mm', - llll : 'YYYY年M月D日dddd HH:mm' - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour : function (hour, meridiem) { - if (hour === 12) { - hour = 0; - } - if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') { - return hour; - } else if (meridiem === '中午') { - return hour >= 11 ? hour : hour + 12; - } else if (meridiem === '下午' || meridiem === '晚上') { - return hour + 12; - } - }, - meridiem : function (hour, minute, isLower) { - var hm = hour * 100 + minute; - if (hm < 600) { - return '凌晨'; - } else if (hm < 900) { - return '早上'; - } else if (hm < 1130) { - return '上午'; - } else if (hm < 1230) { - return '中午'; - } else if (hm < 1800) { - return '下午'; - } else { - return '晚上'; - } - }, - calendar : { - sameDay : '[今天] LT', - nextDay : '[明天] LT', - nextWeek : '[下]dddd LT', - lastDay : '[昨天] LT', - lastWeek : '[上]dddd LT', - sameElse : 'L' - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, - ordinal : function (number, period) { - switch (period) { - case 'd' : - case 'D' : - case 'DDD' : - return number + '日'; - case 'M' : - return number + '月'; - case 'w' : - case 'W' : - return number + '週'; - default : - return number; - } - }, - relativeTime : { - future : '%s內', - past : '%s前', - s : '幾秒', - ss : '%d 秒', - m : '1 分鐘', - mm : '%d 分鐘', - h : '1 小時', - hh : '%d 小時', - d : '1 天', - dd : '%d 天', - M : '1 個月', - MM : '%d 個月', - y : '1 年', - yy : '%d 年' - } - }); - - return zhTw; - -}))); diff --git a/app/rainloop/v/1.15.0/static/css/app.min.css b/app/rainloop/v/1.15.0/static/css/app.min.css deleted file mode 100644 index c4b3619..0000000 --- a/app/rainloop/v/1.15.0/static/css/app.min.css +++ /dev/null @@ -1,7 +0,0 @@ -@charset "UTF-8";/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}/*! jQuery UI - v1.10.3 - 2013-11-25 -* http://jqueryui.com -* Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.autocomplete.css, jquery.ui.menu.css, jquery.ui.theme.css -* Copyright 2013 jQuery Foundation and other contributors; Licensed MIT */.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after,.ui-helper-clearfix:before{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted #000}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:0}.ui-menu .ui-menu{margin-top:-3px;position:absolute}.ui-menu .ui-menu-item{margin:0;padding:0;width:100%;list-style-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;min-height:0;font-weight:400}.ui-menu .ui-menu-item a.ui-state-active,.ui-menu .ui-menu-item a.ui-state-focus{font-weight:400;margin:-1px}.ui-menu .ui-state-disabled{font-weight:400;margin:.4em 0 .2em;line-height:1.5}.ui-menu .ui-state-disabled a{cursor:default}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em}.ui-menu .ui-menu-icon{position:static;float:right}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget button,.ui-widget input,.ui-widget select,.ui-widget textarea{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc;color:#222;font-weight:700}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #ccc;background:#eee;font-weight:400;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-focus,.ui-state-hover,.ui-widget-content .ui-state-focus,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-focus,.ui-widget-header .ui-state-hover{border:1px solid #ccc;background:#eee;font-weight:400;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff;font-weight:400;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:700}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-corner-all,.ui-corner-left,.ui-corner-tl,.ui-corner-top{border-top-left-radius:2px}.ui-corner-all,.ui-corner-right,.ui-corner-top,.ui-corner-tr{border-top-right-radius:2px}.ui-corner-all,.ui-corner-bl,.ui-corner-bottom,.ui-corner-left{border-bottom-left-radius:2px}.ui-corner-all,.ui-corner-bottom,.ui-corner-br,.ui-corner-right{border-bottom-right-radius:2px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}@font-face{font-family:rainloop;src:url(fonts/rainloop.eot);src:url(fonts/rainloop.eot?#iefix) format("embedded-opentype"),url(fonts/rainloop.woff) format("woff"),url(fonts/rainloop.ttf) format("truetype"),url(fonts/rainloop.svg#rainloop) format("svg");font-weight:400;font-style:normal}[data-icon]:before{font-family:rainloop!important;content:attr(data-icon);font-style:normal!important;font-weight:400!important;font-variant:normal!important;text-transform:none!important;speak:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[class*=" icon-"]:before,[class^=icon-]:before{font-family:rainloop!important;font-style:normal!important;font-weight:400!important;font-variant:normal!important;text-transform:none!important;speak:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-arrows-in:before{content:"\e000"}.icon-arrows-out:before{content:"\e001"}.icon-list:before{content:"\e002"}.icon-search:before{content:"\e003"}.icon-user:before{content:"\e004"}.icon-user-add:before{content:"\e005"}.icon-tags:before{content:"\e006"}.icon-paper-plane:before{content:"\e007"}.icon-reply:before{content:"\e008"}.icon-reply-all:before{content:"\e009"}.icon-forward:before{content:"\e00a"}.icon-info:before{content:"\e00b"}.icon-right-dir:before{content:"\e00c"}.icon-down-dir:before{content:"\e00d"}.icon-image:before{content:"\e00e"}.icon-print:before{content:"\e00f"}.icon-calendar:before{content:"\e010"}.icon-cog:before{content:"\e011"}.icon-wrench:before{content:"\e012"}.icon-rocket:before{content:"\e013"}.icon-fire:before{content:"\e014"}.icon-purchase:before{content:"\e015"}.icon-apple:before{content:"\e016"}.icon-dropbox:before{content:"\e017"}.icon-skype:before{content:"\e018"}.icon-creative-commons:before{content:"\e019"}.icon-ellipsis:before{content:"\e01a"}.icon-left:before{content:"\e01b"}.icon-right:before{content:"\e01c"}.icon-down:before{content:"\e01d"}.icon-right-mini:before{content:"\e01e"}.icon-down-mini:before{content:"\e01f"}.icon-up:before{content:"\e020"}.icon-star-empty:before{content:"\e021"}.icon-star:before{content:"\e022"}.icon-at:before{content:"\e023"}.icon-list-add:before{content:"\e024"}.icon-google:before{content:"\e025"}.icon-google-plus:before{content:"\e026"}.icon-twitter:before{content:"\e027"}.icon-youtube:before{content:"\e028"}.icon-warning:before{content:"\e029"}.icon-warning-alt:before{content:"\e02a"}.icon-power:before{content:"\e02b"}.icon-plus:before{content:"\e02c"}.icon-ok:before{content:"\e02d"}.icon-remove:before{content:"\e02e"}.icon-file:before{content:"\e02f"}.icon-file-code:before{content:"\e030"}.icon-file-chart-graph:before{content:"\e031"}.icon-file-zip:before{content:"\e032"}.icon-file-music:before{content:"\e033"}.icon-file-text:before{content:"\e034"}.icon-file-bookmark:before{content:"\e035"}.icon-file-image:before{content:"\e036"}.icon-file-analytics:before{content:"\e037"}.icon-file-certificate:before{content:"\e038"}.icon-attachment:before{content:"\e039"}.icon-file-excel:before{content:"\e03a"}.icon-file-movie:before{content:"\e03b"}.icon-folder-add:before{content:"\e03c"}.icon-folder:before{content:"\e03d"}.icon-floppy:before{content:"\e03e"}.icon-eye:before{content:"\e03f"}.icon-facebook-alt:before{content:"\e040"}.icon-facebook:before{content:"\e041"}.icon-bolt:before{content:"\e042"}.icon-download:before{content:"\e043"}.icon-upload:before{content:"\e044"}.icon-popup:before{content:"\e045"}.icon-github:before{content:"\e046"}.icon-telephone:before{content:"\e047"}.icon-mobile:before{content:"\e048"}.icon-pencil:before{content:"\e049"}.icon-trash:before{content:"\e04a"}.icon-left-middle:before{content:"\e04b"}.icon-right-middle:before{content:"\e04c"}.icon-repeat:before{content:"\e04d"}.icon-key:before{content:"\e04e"}.icon-lock:before{content:"\e04f"}.icon-home:before{content:"\e050"}.icon-address-book:before{content:"\e051"}.icon-share:before{content:"\e052"}.icon-suitcase:before{content:"\e053"}.icon-new-sign:before{content:"\e054"}.icon-users:before{content:"\e055"}.icon-earth:before{content:"\e056"}.icon-mail:before{content:"\e057"}.icon-checkbox-checked:before{content:"\e058"}.icon-checkbox-unchecked:before{content:"\e059"}.icon-checkbox-partial:before{content:"\e05a"}.icon-radio-checked:before{content:"\e05b"}.icon-radio-unchecked:before{content:"\e05c"}.icon-google-drive:before{content:"\e05d"}.icon-spinner:before{content:"\e05e"}.icon-archive:before{content:"\e05f"}.icon-buy-sign:before{content:"\e060"}.icon-filter:before{content:"\e061"}.icon-sync:before{content:"\e062"}.icon-ellipsis-alt:before{content:"\e063"}.icon-cloud-up:before{content:"\e064"}.icon-cloud-down:before{content:"\e065"}.icon-import:before{content:"\e066"}.icon-export:before{content:"\e067"}.icon-copy:before{content:"\e068"}.icon-angry-smiley:before{content:"\e069"}.icon-happy-smiley:before{content:"\e06a"}.icon-help:before{content:"\e06b"}.icon-resize-in:before{content:"\e06c"}.icon-resize-out:before{content:"\e06d"}.icon-world:before{content:"\e06f"}.icon-braille:before{content:"\e06e"}.icon-play:before{content:"\e070"}.icon-pause:before{content:"\e071"}.icon-stop:before{content:"\e072"}.icon-check-mark-circle-two:before{content:"\e073"}.icon-laptop:before{content:"\e075"}.nano{overflow:hidden!important}.nano .content{position:absolute;overflow:scroll;top:0;right:0;bottom:0;left:0;-webkit-overflow-scrolling:touch}.nano .content .content-wrapper{height:100%}.nano .content::-webkit-scrollbar{visibility:hidden}.has-scrollbar .content::-webkit-scrollbar{visibility:hidden}.nano-visibility-hidden::-webkit-scrollbar{visibility:hidden}.nano>.pane{background:0 0;position:absolute;width:5px;right:0;top:1px;bottom:1px;opacity:.01;-webkit-transition:.4s;-o-transition:.4s;transition:.4s;border-radius:5px;z-index:102;margin:2px}.nano>.pane2{background:0 0;position:absolute;height:5px;right:1px;left:1px;bottom:0;opacity:.01;-webkit-transition:.4s;-o-transition:.4s;transition:.4s;border-radius:5px;z-index:10000;margin:2px}.nano>.pane>.slider{background-color:#999;background-color:rgba(0,0,0,.3);position:relative;margin:0;border-radius:3px;width:5px}.nano>.pane2>.slider2{background-color:#999;background-color:rgba(0,0,0,.3);position:relative;margin:0;border-radius:3px;height:5px}.nano:hover>.pane,.nano:hover>.pane2,.pane.active,.pane.activescroll,.pane.flashed,.pane2.active,.pane2.activescroll,.pane2.flashed{opacity:.99}.nano>.pane.active,.nano>.pane:hover{background-color:rgba(0,0,0,.15)}.nano>.pane2.active,.nano>.pane2:hover{background-color:rgba(0,0,0,.15)}.nano>.pane.active>.slider,.nano>.pane:hover>.slider{background-color:rgba(0,0,0,.4)}.nano>.pane2.active>.slider2,.nano>.pane2:hover>.slider2{background-color:rgba(0,0,0,.4)}.letterfx{display:inline-block;margin:0;padding:0;-o-transition:all 1s;transition:all 1s;-ms-transition:all 1s;-webkit-transition:all 1s}.letterfx-spin-before{transform:rotate(3600deg);-ms-transform:rotate(3600deg);-webkit-transform:rotate(3600deg)}.letterfx-spin-after{-webkit-transform:none;-ms-transform:none;transform:none}.letterfx-fade-before{opacity:0}.letterfx-grow-before{transform:scale(0,0);-ms-transform:scale(0,0);-webkit-transform:scale(0,0)}.letterfx-grow-after{-webkit-transform:none;-ms-transform:none;transform:none}.letterfx-smear-before{color:transparent;text-shadow:-1px -1px 25px transparent}.letterfx-smear-after{color:inherit;text-shadow:0 0 #333}.letterfx-fall-before{visibility:hidden;transform:scale(3,3);-ms-transform:scale(3,3);-webkit-transform:scale(3,3)}.letterfx-fall-after{transform:scale(1,1);-ms-transform:scale(1,1);-webkit-transform:scale(1,1);text-shadow:0}.letterfx-swirl-before{visibility:hidden;transform:scale(3,3) rotate(3600deg);-ms-transform:scale(3,3) rotate(3600deg);-webkit-transform:scale(3,3) rotate(3600deg)}.letterfx-swirl-after{-webkit-transform:none;-ms-transform:none;transform:none;text-shadow:0}.letterfx-wave-container .letterfx{position:relative}.letterfx-wave-before{bottom:0}.letterfx-wave-after{bottom:15px}.letterfx-fly-bottom-container .letterfx,.letterfx-fly-left-container .letterfx,.letterfx-fly-right-container .letterfx,.letterfx-fly-top-container .letterfx{position:relative}.letterfx-fly-left-before{left:-50em}.letterfx-fly-left-after{left:0}.letterfx-fly-right-before{right:-50em}.letterfx-fly-right-after{right:0}.letterfx-fly-top-before{top:-20em}.letterfx-fly-top-after{top:0}.letterfx-fly-bottom-before{bottom:-20em}.letterfx-fly-bottom-after{bottom:0}.inputosaurus-container{background-color:#fff;border:1px solid #bcbec0;margin:0 5px 0 0;padding:0 3px;display:inline-block;cursor:text;font-size:14px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}.inputosaurus-container li{display:block;float:left;overflow:hidden;margin:2px 2px 0;padding:2px 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis;-ms-text-overflow:ellipsis;background-color:#e5eff7;border:#a9cae4 solid 1px;border-radius:2px;color:#5b9bcd;-webkit-box-shadow:0 1px 0 rgba(255,255,255,.75) inset;box-shadow:0 1px 0 rgba(255,255,255,.75) inset;line-height:20px;cursor:default}.inputosaurus-container li.inputosaurus-selected{background-color:#bdd6eb}.inputosaurus-container li a{font-size:16px;color:#5b9bcd;padding:1px;text-decoration:none;outline:0}.inputosaurus-container .inputosaurus-input{border:none;-webkit-box-shadow:none;box-shadow:none;background-color:#fff;margin-top:3px}.inputosaurus-container .inputosaurus-input input{border:none;height:23px;font-size:14px;line-height:20px;color:#555;margin:0;outline:0;padding:0 0 1px 1px;width:25px;-webkit-box-shadow:none;box-shadow:none}.inputosaurus-container .inputosaurus-input input:hover{-webkit-box-shadow:none;box-shadow:none}.inputosaurus-input-hidden{display:none}.flag-wrapper{width:24px;height:16px;display:inline-block}.flag{width:16px;height:11px;display:inline-block;background:url(flags.png) no-repeat}.flag.flag-en{background-position:-144px -154px}.flag.flag-en_us{background-position:-144px -154px}.flag.flag-en_gb{background-position:-176px -44px}.flag.flag-en_uk{background-position:-176px -44px}.flag.flag-en_ca{background-position:-48px -22px}.flag.flag-el_gr{background-position:-112px -55px}.flag.flag-uk_ua{background-position:-96px -154px}.flag.flag-ru_ru{background-position:-224px -121px}.flag.flag-pt_br{background-position:-192px -11px}.flag.flag-pl_pl{background-position:-32px -121px}.flag.flag-nl_nl{background-position:-80px -110px}.flag.flag-nb_no{background-position:-96px -110px}.flag.flag-it_it{background-position:-208px -66px}.flag.flag-de_de{background-position:-80px -33px}.flag.flag-ro_ro{background-position:-192px -121px}.flag.flag-fi_fi{background-position:-64px -44px}.flag.flag-fr_fr{background-position:-144px -44px}.flag.flag-fr_ca{background-position:-144px -44px}.flag.flag-pt_pt{background-position:-112px -121px}.flag.flag-pt_br{background-position:-192px -11px}.flag.flag-ar_sa{background-position:0 -132px}.flag.flag-bg_bg{background-position:-80px -11px}.flag.flag-es_es{background-position:-16px -44px}.flag.flag-es_la{background-position:-16px -44px}.flag.flag-et_ee{background-position:-192px -33px}.flag.flag-fa_ir{background-position:-176px -66px}.flag.flag-lt_lt{background-position:-80px -88px}.flag.flag-lv_lv{background-position:-112px -88px}.flag.flag-is_is{background-position:-192px -66px}.flag.flag-hu_hu{background-position:-32px -66px}.flag.flag-ko_kr{background-position:-144px -77px}.flag.flag-ja_jp{background-position:-16px -77px}.flag.flag-sl_si{background-position:-128px -132px}.flag.flag-sk_sk{background-position:-144px -132px}.flag.flag-tr_tr{background-position:-16px -154px}.flag.flag-sv_se{background-position:-80px -132px}.flag.flag-cs_cz{background-position:-64px -33px}.flag.flag-zh_cn{background-position:-208px -22px}.flag.flag-zh_tw{background-position:-64px -154px}.flag.flag-zh_hk{background-position:-208px -22px}.flag.flag-da_dk{background-position:-112px -33px}.flag.flag-id_id{background-position:-64px -66px}.opentip-container,.opentip-container *{-webkit-box-sizing:border-box;box-sizing:border-box}.opentip-container{position:absolute;max-width:300px;z-index:100;-webkit-transition:-webkit-transform 1s ease-in-out;-o-transition:-o-transform 1s ease-in-out;transition:-webkit-transform 1s ease-in-out;-o-transition:transform 1s ease-in-out;transition:transform 1s ease-in-out;transition:transform 1s ease-in-out,-webkit-transform 1s ease-in-out;pointer-events:none;-webkit-transform:translateX(0) translateY(0);-ms-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}.opentip-container.ot-fixed.ot-going-to-show.stem-top.stem-center,.opentip-container.ot-fixed.ot-hidden.stem-top.stem-center,.opentip-container.ot-fixed.ot-hiding.stem-top.stem-center{-webkit-transform:translateY(-5px);-ms-transform:translateY(-5px);transform:translateY(-5px)}.opentip-container.ot-fixed.ot-going-to-show.stem-top.stem-right,.opentip-container.ot-fixed.ot-hidden.stem-top.stem-right,.opentip-container.ot-fixed.ot-hiding.stem-top.stem-right{-webkit-transform:translateY(-5px) translateX(5px);-ms-transform:translateY(-5px) translateX(5px);transform:translateY(-5px) translateX(5px)}.opentip-container.ot-fixed.ot-going-to-show.stem-middle.stem-right,.opentip-container.ot-fixed.ot-hidden.stem-middle.stem-right,.opentip-container.ot-fixed.ot-hiding.stem-middle.stem-right{-webkit-transform:translateX(5px);-ms-transform:translateX(5px);transform:translateX(5px)}.opentip-container.ot-fixed.ot-going-to-show.stem-bottom.stem-right,.opentip-container.ot-fixed.ot-hidden.stem-bottom.stem-right,.opentip-container.ot-fixed.ot-hiding.stem-bottom.stem-right{-webkit-transform:translateY(5px) translateX(5px);-ms-transform:translateY(5px) translateX(5px);transform:translateY(5px) translateX(5px)}.opentip-container.ot-fixed.ot-going-to-show.stem-bottom.stem-center,.opentip-container.ot-fixed.ot-hidden.stem-bottom.stem-center,.opentip-container.ot-fixed.ot-hiding.stem-bottom.stem-center{-webkit-transform:translateY(5px);-ms-transform:translateY(5px);transform:translateY(5px)}.opentip-container.ot-fixed.ot-going-to-show.stem-bottom.stem-left,.opentip-container.ot-fixed.ot-hidden.stem-bottom.stem-left,.opentip-container.ot-fixed.ot-hiding.stem-bottom.stem-left{-webkit-transform:translateY(5px) translateX(-5px);-ms-transform:translateY(5px) translateX(-5px);transform:translateY(5px) translateX(-5px)}.opentip-container.ot-fixed.ot-going-to-show.stem-middle.stem-left,.opentip-container.ot-fixed.ot-hidden.stem-middle.stem-left,.opentip-container.ot-fixed.ot-hiding.stem-middle.stem-left{-webkit-transform:translateX(-5px);-ms-transform:translateX(-5px);transform:translateX(-5px)}.opentip-container.ot-fixed.ot-going-to-show.stem-top.stem-left,.opentip-container.ot-fixed.ot-hidden.stem-top.stem-left,.opentip-container.ot-fixed.ot-hiding.stem-top.stem-left{-webkit-transform:translateY(-5px) translateX(-5px);-ms-transform:translateY(-5px) translateX(-5px);transform:translateY(-5px) translateX(-5px)}.opentip-container.ot-fixed .opentip{pointer-events:auto}.opentip-container.ot-hidden{display:none}.opentip-container .opentip{position:relative;font-size:13px;line-height:120%;padding:9px 14px;color:#4f4b47;text-shadow:-1px -1px 0 rgba(255,255,255,.2)}.opentip-container .opentip .header{margin:0;padding:0}.opentip-container .opentip .ot-close{pointer-events:auto;display:block;position:absolute;top:-12px;left:60px;color:rgba(0,0,0,.5);background:rgba(0,0,0,0);text-decoration:none}.opentip-container .opentip .ot-close span{display:none}.opentip-container .opentip .ot-loading-indicator{display:none}.opentip-container.ot-loading .ot-loading-indicator{width:30px;height:30px;font-size:30px;line-height:30px;font-weight:700;display:block}.opentip-container.ot-loading .ot-loading-indicator span{display:block;-webkit-animation:otloading 2s linear infinite;animation:otloading 2s linear infinite;text-align:center}.opentip-container.style-alert .opentip,.opentip-container.style-dark .opentip{color:#f8f8f8;text-shadow:1px 1px 0 rgba(0,0,0,.2)}.opentip-container.style-glass .opentip{padding:15px 25px;color:#317cc5;text-shadow:1px 1px 8px rgba(0,94,153,.3)}.opentip-container.ot-hide-effect-fade{-webkit-transition:-webkit-transform .5s ease-in-out,opacity 1s ease-in-out;-o-transition:-o-transform .5s ease-in-out,opacity 1s ease-in-out;-webkit-transition:opacity 1s ease-in-out,-webkit-transform .5s ease-in-out;transition:opacity 1s ease-in-out,-webkit-transform .5s ease-in-out;-o-transition:transform .5s ease-in-out,opacity 1s ease-in-out;transition:transform .5s ease-in-out,opacity 1s ease-in-out;transition:transform .5s ease-in-out,opacity 1s ease-in-out,-webkit-transform .5s ease-in-out;opacity:1;-ms-filter:none;-webkit-filter:none;filter:none}.opentip-container.ot-hide-effect-fade.ot-hiding{opacity:0}.opentip-container.ot-show-effect-appear.ot-going-to-show,.opentip-container.ot-show-effect-appear.ot-showing{-webkit-transition:-webkit-transform .5s ease-in-out,opacity 1s ease-in-out;-o-transition:-o-transform .5s ease-in-out,opacity 1s ease-in-out;-webkit-transition:opacity 1s ease-in-out,-webkit-transform .5s ease-in-out;transition:opacity 1s ease-in-out,-webkit-transform .5s ease-in-out;-o-transition:transform .5s ease-in-out,opacity 1s ease-in-out;transition:transform .5s ease-in-out,opacity 1s ease-in-out;transition:transform .5s ease-in-out,opacity 1s ease-in-out,-webkit-transform .5s ease-in-out}.opentip-container.ot-show-effect-appear.ot-going-to-show{opacity:0}.opentip-container.ot-show-effect-appear.ot-showing{opacity:1;-ms-filter:none;-webkit-filter:none;filter:none}.opentip-container.ot-show-effect-appear.ot-visible{opacity:1;-ms-filter:none;-webkit-filter:none;filter:none}@-webkit-keyframes otloading{0%{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes otloading{0%{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg)}}/*! - * Pikaday - * Copyright © 2014 David Bushell | BSD & MIT license | https://dbushell.com/ - */.pika-single{z-index:9999;display:block;position:relative;color:#333;background:#fff;border:1px solid #ccc;border-bottom-color:#bbb;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}.pika-single:after,.pika-single:before{content:" ";display:table}.pika-single:after{clear:both}.pika-single.is-hidden{display:none}.pika-single.is-bound{position:absolute;-webkit-box-shadow:0 5px 15px -5px rgba(0,0,0,.5);box-shadow:0 5px 15px -5px rgba(0,0,0,.5)}.pika-lendar{float:left;width:240px;margin:8px}.pika-title{position:relative;text-align:center}.pika-label{display:inline-block;position:relative;z-index:9999;overflow:hidden;margin:0;padding:5px 3px;font-size:14px;line-height:20px;font-weight:700;background-color:#fff}.pika-title select{cursor:pointer;position:absolute;z-index:9998;margin:0;left:0;top:5px;opacity:0}.pika-next,.pika-prev{display:block;cursor:pointer;position:relative;outline:0;border:0;padding:0;width:20px;height:30px;text-indent:20px;white-space:nowrap;overflow:hidden;background-color:transparent;background-position:center center;background-repeat:no-repeat;background-size:75% 75%;opacity:.5}.pika-next:hover,.pika-prev:hover{opacity:1}.is-rtl .pika-next,.pika-prev{float:left;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAUklEQVR42u3VMQoAIBADQf8Pgj+OD9hG2CtONJB2ymQkKe0HbwAP0xucDiQWARITIDEBEnMgMQ8S8+AqBIl6kKgHiXqQqAeJepBo/z38J/U0uAHlaBkBl9I4GwAAAABJRU5ErkJggg==)}.is-rtl .pika-prev,.pika-next{float:right;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAU0lEQVR42u3VOwoAMAgE0dwfAnNjU26bYkBCFGwfiL9VVWoO+BJ4Gf3gtsEKKoFBNTCoCAYVwaAiGNQGMUHMkjGbgjk2mIONuXo0nC8XnCf1JXgArVIZAQh5TKYAAAAASUVORK5CYII=)}.pika-next.is-disabled,.pika-prev.is-disabled{cursor:default;opacity:.2}.pika-select{display:inline-block}.pika-table{width:100%;border-collapse:collapse;border-spacing:0;border:0}.pika-table td,.pika-table th{width:14.285714285714286%;padding:0}.pika-table th{color:#999;font-size:12px;line-height:25px;font-weight:700;text-align:center}.pika-button{cursor:pointer;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;-moz-box-sizing:border-box;outline:0;border:0;margin:0;width:100%;padding:5px;color:#666;font-size:12px;line-height:15px;text-align:right;background:#f5f5f5}.pika-week{font-size:11px;color:#999}.is-today .pika-button{color:#3af;font-weight:700}.has-event .pika-button,.is-selected .pika-button{color:#fff;font-weight:700;background:#3af;-webkit-box-shadow:inset 0 1px 3px #178fe5;box-shadow:inset 0 1px 3px #178fe5;border-radius:3px}.has-event .pika-button{background:#005da9;-webkit-box-shadow:inset 0 1px 3px #0076c9;box-shadow:inset 0 1px 3px #0076c9}.is-disabled .pika-button,.is-inrange .pika-button{background:#d5e9f7}.is-startrange .pika-button{color:#fff;background:#6cb31d;-webkit-box-shadow:none;box-shadow:none;border-radius:3px}.is-endrange .pika-button{color:#fff;background:#3af;-webkit-box-shadow:none;box-shadow:none;border-radius:3px}.is-disabled .pika-button{pointer-events:none;cursor:default;color:#999;opacity:.3}.is-outside-current-month .pika-button{color:#999;opacity:.3}.is-selection-disabled{pointer-events:none;cursor:default}.pika-button:hover,.pika-row.pick-whole-week:hover .pika-button{color:#fff;background:#ff8000;-webkit-box-shadow:none;box-shadow:none;border-radius:3px}.pika-table abbr{border-bottom:none;cursor:help}.lg-sub-html,.lg-toolbar{background-color:rgba(0,0,0,.45)}#lg-counter,.lg-outer .lg-video-cont{vertical-align:middle;display:inline-block}@font-face{font-family:lg;src:url(fonts/lg.eot?n1z373);src:url(fonts/lg.eot?#iefixn1z373) format("embedded-opentype"),url(fonts/lg.woff?n1z373) format("woff"),url(fonts/lg.ttf?n1z373) format("truetype"),url(fonts/lg.svg?n1z373#lg) format("svg");font-weight:400;font-style:normal}.lg-icon{font-family:lg;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lg-actions .lg-next,.lg-actions .lg-prev{background-color:rgba(0,0,0,.45);border-radius:2px;color:#999;cursor:pointer;display:block;font-size:22px;margin-top:-10px;padding:8px 10px 9px;position:absolute;top:50%;z-index:1080}.lg-actions .lg-next.disabled,.lg-actions .lg-prev.disabled{pointer-events:none;opacity:.5}.lg-actions .lg-next:hover,.lg-actions .lg-prev:hover{color:#fff}.lg-actions .lg-next{right:20px}.lg-actions .lg-next:before{content:"\e095"}.lg-actions .lg-prev{left:20px}.lg-actions .lg-prev:after{content:"\e094"}@-webkit-keyframes lg-right-end{0%,100%{left:0}50%{left:-30px}}@keyframes lg-right-end{0%,100%{left:0}50%{left:-30px}}@-webkit-keyframes lg-left-end{0%,100%{left:0}50%{left:30px}}@keyframes lg-left-end{0%,100%{left:0}50%{left:30px}}.lg-outer.lg-right-end .lg-object{-webkit-animation:lg-right-end .3s;animation:lg-right-end .3s;position:relative}.lg-outer.lg-left-end .lg-object{-webkit-animation:lg-left-end .3s;animation:lg-left-end .3s;position:relative}.lg-toolbar{z-index:1082;left:0;position:absolute;top:0;width:100%}.lg-toolbar .lg-icon{color:#999;cursor:pointer;float:right;font-size:24px;height:47px;line-height:27px;padding:10px 0;text-align:center;width:50px;text-decoration:none!important;outline:0;-webkit-transition:color .2s linear;-o-transition:color .2s linear;transition:color .2s linear}.lg-toolbar .lg-icon:hover{color:#fff}.lg-toolbar .lg-close:after{content:"\e070"}.lg-toolbar .lg-download:after{content:"\e0f2"}.lg-sub-html{bottom:0;color:#eee;font-size:16px;left:0;padding:10px 40px;position:fixed;right:0;text-align:center;z-index:1080}.lg-sub-html h4{margin:0;font-size:13px;font-weight:700}.lg-sub-html p{font-size:12px;margin:5px 0 0}#lg-counter{color:#999;font-size:16px;padding-left:20px;padding-top:12px}.lg-next,.lg-prev,.lg-toolbar{opacity:1;-webkit-transition:-webkit-transform .35s cubic-bezier(0,0,.25,1) 0s,opacity .35s cubic-bezier(0,0,.25,1) 0s,color .2s linear;-o-transition:-o-transform .35s cubic-bezier(0,0,.25,1) 0s,opacity .35s cubic-bezier(0,0,.25,1) 0s,color .2s linear;-webkit-transition:opacity .35s cubic-bezier(0,0,.25,1) 0s,color .2s linear,-webkit-transform .35s cubic-bezier(0,0,.25,1) 0s;transition:opacity .35s cubic-bezier(0,0,.25,1) 0s,color .2s linear,-webkit-transform .35s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform .35s cubic-bezier(0,0,.25,1) 0s,opacity .35s cubic-bezier(0,0,.25,1) 0s,color .2s linear;transition:transform .35s cubic-bezier(0,0,.25,1) 0s,opacity .35s cubic-bezier(0,0,.25,1) 0s,color .2s linear;transition:transform .35s cubic-bezier(0,0,.25,1) 0s,opacity .35s cubic-bezier(0,0,.25,1) 0s,color .2s linear,-webkit-transform .35s cubic-bezier(0,0,.25,1) 0s}.lg-hide-items .lg-prev{opacity:0;-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}.lg-hide-items .lg-next{opacity:0;-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}.lg-hide-items .lg-toolbar{opacity:0;-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-object{-webkit-transform:scale3d(.5,.5,.5);transform:scale3d(.5,.5,.5);opacity:0;-webkit-transition:-webkit-transform 250ms cubic-bezier(0,0,.25,1) 0s,opacity 250ms cubic-bezier(0,0,.25,1)!important;-o-transition:-o-transform 250ms cubic-bezier(0,0,.25,1) 0s,opacity 250ms cubic-bezier(0,0,.25,1)!important;-webkit-transition:opacity 250ms cubic-bezier(0,0,.25,1),-webkit-transform 250ms cubic-bezier(0,0,.25,1) 0s!important;transition:opacity 250ms cubic-bezier(0,0,.25,1),-webkit-transform 250ms cubic-bezier(0,0,.25,1) 0s!important;-o-transition:transform 250ms cubic-bezier(0,0,.25,1) 0s,opacity 250ms cubic-bezier(0,0,.25,1)!important;transition:transform 250ms cubic-bezier(0,0,.25,1) 0s,opacity 250ms cubic-bezier(0,0,.25,1)!important;transition:transform 250ms cubic-bezier(0,0,.25,1) 0s,opacity 250ms cubic-bezier(0,0,.25,1),-webkit-transform 250ms cubic-bezier(0,0,.25,1) 0s!important;-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item.lg-complete .lg-object{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);opacity:1}.lg-outer .lg-thumb-outer{background-color:#0d0a0a;bottom:0;position:absolute;width:100%;z-index:1080;max-height:350px;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1) 0s;-o-transition:-o-transform .25s cubic-bezier(0,0,.25,1) 0s;transition:-webkit-transform .25s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform .25s cubic-bezier(0,0,.25,1) 0s;transition:transform .25s cubic-bezier(0,0,.25,1) 0s;transition:transform .25s cubic-bezier(0,0,.25,1) 0s,-webkit-transform .25s cubic-bezier(0,0,.25,1) 0s}.lg-outer .lg-thumb-outer.lg-grab .lg-thumb-item{cursor:-webkit-grab;cursor:-o-grab;cursor:-ms-grab;cursor:grab}.lg-outer .lg-thumb-outer.lg-grabbing .lg-thumb-item{cursor:move;cursor:-webkit-grabbing;cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing}.lg-outer .lg-thumb-outer.lg-dragging .lg-thumb{-webkit-transition-duration:0s!important;-o-transition-duration:0s!important;transition-duration:0s!important}.lg-outer.lg-thumb-open .lg-thumb-outer{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.lg-outer .lg-thumb{padding:10px 0;height:100%;margin-bottom:-5px}.lg-outer .lg-thumb-item{cursor:pointer;float:left;overflow:hidden;height:100%;border:2px solid #fff;border-radius:4px;margin-bottom:5px}@media (min-width:1025px){.lg-outer .lg-thumb-item{-webkit-transition:border-color .25s ease;-o-transition:border-color .25s ease;transition:border-color .25s ease}}.lg-outer .lg-thumb-item.active,.lg-outer .lg-thumb-item:hover{border-color:#a90707}.lg-outer .lg-thumb-item img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.lg-outer.lg-has-thumb .lg-item{padding-bottom:120px}.lg-outer.lg-can-toggle .lg-item{padding-bottom:0}.lg-outer.lg-pull-caption-up .lg-sub-html{-webkit-transition:bottom .25s ease;-o-transition:bottom .25s ease;transition:bottom .25s ease}.lg-outer.lg-pull-caption-up.lg-thumb-open .lg-sub-html{bottom:100px}.lg-outer .lg-toogle-thumb{background-color:#0d0a0a;border-radius:2px 2px 0 0;color:#999;cursor:pointer;font-size:24px;height:39px;line-height:27px;padding:5px 0;position:absolute;right:20px;text-align:center;top:-39px;width:50px}.lg-outer .lg-toogle-thumb:after{content:"\e1ff"}.lg-outer .lg-toogle-thumb:hover{color:#fff}.lg-outer .lg-video-cont{max-width:1140px;max-height:100%;width:100%;padding:0 5px}.lg-outer .lg-video{width:100%;height:0;padding-bottom:56.25%;overflow:hidden;position:relative}.lg-outer .lg-video .lg-object{display:inline-block;position:absolute;top:0;left:0;width:100%!important;height:100%!important}.lg-outer .lg-video .lg-video-play{width:84px;height:59px;position:absolute;left:50%;top:50%;margin-left:-42px;margin-top:-30px;z-index:1080;cursor:pointer}.lg-outer .lg-has-vimeo .lg-video-play{background:url(img/vimeo-play.png) no-repeat}.lg-outer .lg-has-vimeo:hover .lg-video-play{background:url(img/vimeo-play.png) 0 -58px no-repeat}.lg-outer .lg-has-html5 .lg-video-play{background:url(img/video-play.png) no-repeat;height:64px;margin-left:-32px;margin-top:-32px;width:64px;opacity:.8}.lg-outer .lg-has-html5:hover .lg-video-play{opacity:1}.lg-outer .lg-has-youtube .lg-video-play{background:url(img/youtube-play.png) no-repeat}.lg-outer .lg-has-youtube:hover .lg-video-play{background:url(img/youtube-play.png) 0 -60px no-repeat}.lg-outer .lg-video-object{width:100%!important;height:100%!important;position:absolute;top:0;left:0}.lg-outer .lg-has-video .lg-video-object{visibility:hidden}.lg-outer .lg-has-video.lg-video-playing .lg-object,.lg-outer .lg-has-video.lg-video-playing .lg-video-play{display:none}.lg-outer .lg-has-video.lg-video-playing .lg-video-object{visibility:visible}.lg-progress-bar{background-color:#333;height:5px;left:0;position:absolute;top:0;width:100%;z-index:1083;opacity:0;-webkit-transition:opacity 80ms ease 0s;-o-transition:opacity 80ms ease 0s;transition:opacity 80ms ease 0s}.lg-progress-bar .lg-progress{background-color:#a90707;height:5px;width:0}.lg-progress-bar.lg-start .lg-progress{width:100%}.lg-show-autoplay .lg-progress-bar{opacity:1}.lg-autoplay-button:after{content:"\e01d"}.lg-show-autoplay .lg-autoplay-button:after{content:"\e01a"}.lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-image,.lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-img-wrap{-webkit-transition-duration:0s;-o-transition-duration:0s;transition-duration:0s}.lg-outer .lg-item.lg-complete.lg-zoomable .lg-img-wrap{-webkit-transition:left .3s cubic-bezier(0,0,.25,1) 0s,top .3s cubic-bezier(0,0,.25,1) 0s;-o-transition:left .3s cubic-bezier(0,0,.25,1) 0s,top .3s cubic-bezier(0,0,.25,1) 0s;transition:left .3s cubic-bezier(0,0,.25,1) 0s,top .3s cubic-bezier(0,0,.25,1) 0s;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.lg-outer .lg-item.lg-complete.lg-zoomable .lg-image{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);-webkit-transition:-webkit-transform .3s cubic-bezier(0,0,.25,1) 0s,opacity .15s!important;-o-transition:-o-transform .3s cubic-bezier(0,0,.25,1) 0s,opacity .15s!important;-webkit-transition:opacity .15s,-webkit-transform .3s cubic-bezier(0,0,.25,1) 0s!important;transition:opacity .15s,-webkit-transform .3s cubic-bezier(0,0,.25,1) 0s!important;-o-transition:transform .3s cubic-bezier(0,0,.25,1) 0s,opacity .15s!important;transition:transform .3s cubic-bezier(0,0,.25,1) 0s,opacity .15s!important;transition:transform .3s cubic-bezier(0,0,.25,1) 0s,opacity .15s,-webkit-transform .3s cubic-bezier(0,0,.25,1) 0s!important;-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-backface-visibility:hidden;backface-visibility:hidden}#lg-zoom-in:after{content:"\e311"}#lg-actual-size{font-size:20px}#lg-actual-size:after{content:"\e033"}#lg-zoom-out{opacity:.5;pointer-events:none}#lg-zoom-out:after{content:"\e312"}.lg-zoomed #lg-zoom-out{opacity:1;pointer-events:auto}.lg-outer .lg-pager-outer{bottom:60px;left:0;position:absolute;right:0;text-align:center;z-index:1080;height:10px}.lg-outer .lg-pager-outer.lg-pager-hover .lg-pager-cont{overflow:visible}.lg-outer .lg-pager-cont{cursor:pointer;display:inline-block;overflow:hidden;position:relative;vertical-align:top;margin:0 5px}.lg-outer .lg-pager-cont:hover .lg-pager-thumb-cont{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.lg-outer .lg-pager-cont.lg-pager-active .lg-pager{-webkit-box-shadow:0 0 0 2px #fff inset;box-shadow:0 0 0 2px #fff inset}.lg-outer .lg-pager-thumb-cont{background-color:#fff;color:#fff;bottom:100%;height:83px;left:0;margin-bottom:20px;margin-left:-60px;opacity:0;padding:5px;position:absolute;width:120px;border-radius:3px;-webkit-transition:opacity .15s ease 0s,-webkit-transform .15s ease 0s;-o-transition:opacity .15s ease 0s,-o-transform .15s ease 0s;transition:opacity .15s ease 0s,-webkit-transform .15s ease 0s;-o-transition:opacity .15s ease 0s,transform .15s ease 0s;transition:opacity .15s ease 0s,transform .15s ease 0s;transition:opacity .15s ease 0s,transform .15s ease 0s,-webkit-transform .15s ease 0s;-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}.lg-outer .lg-pager-thumb-cont img{width:100%;height:100%}.lg-outer .lg-pager{background-color:rgba(255,255,255,.5);border-radius:50%;-webkit-box-shadow:0 0 0 8px rgba(255,255,255,.7) inset;box-shadow:0 0 0 8px rgba(255,255,255,.7) inset;display:block;height:12px;-webkit-transition:box-shadow .3s ease 0s;-o-transition:box-shadow .3s ease 0s;-webkit-transition:-webkit-box-shadow .3s ease 0s;transition:-webkit-box-shadow .3s ease 0s;transition:box-shadow .3s ease 0s;transition:box-shadow .3s ease 0s,-webkit-box-shadow .3s ease 0s;width:12px}.lg-outer .lg-pager:focus,.lg-outer .lg-pager:hover{-webkit-box-shadow:0 0 0 8px #fff inset;box-shadow:0 0 0 8px #fff inset}.lg-outer .lg-caret{border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px dashed;bottom:-10px;display:inline-block;height:0;left:50%;margin-left:-5px;position:absolute;vertical-align:middle;width:0}.lg-outer,.lg-outer .lg,.lg-outer .lg-inner{width:100%;height:100%}.lg-fullscreen:after{content:"\e20c"}.lg-fullscreen-on .lg-fullscreen:after{content:"\e20d"}.group:after,.group:before{display:table;content:"";line-height:0}.group:after{clear:both}.lg-outer{position:fixed;top:0;left:0;z-index:1050;opacity:0;-webkit-transition:opacity .15s ease 0s;-o-transition:opacity .15s ease 0s;transition:opacity .15s ease 0s}.lg-outer *{-webkit-box-sizing:border-box;box-sizing:border-box}.lg-outer.lg-visible{opacity:1}.lg-outer.lg-css3 .lg-item.lg-current,.lg-outer.lg-css3 .lg-item.lg-next-slide,.lg-outer.lg-css3 .lg-item.lg-prev-slide{-webkit-transition-duration:inherit!important;-o-transition-duration:inherit!important;transition-duration:inherit!important;-webkit-transition-timing-function:inherit!important;-o-transition-timing-function:inherit!important;transition-timing-function:inherit!important}.lg-outer.lg-css3.lg-dragging .lg-item.lg-current,.lg-outer.lg-css3.lg-dragging .lg-item.lg-next-slide,.lg-outer.lg-css3.lg-dragging .lg-item.lg-prev-slide{-webkit-transition-duration:0s!important;-o-transition-duration:0s!important;transition-duration:0s!important;opacity:1}.lg-outer.lg-grab img.lg-object{cursor:-webkit-grab;cursor:-o-grab;cursor:-ms-grab;cursor:grab}.lg-outer.lg-grabbing img.lg-object{cursor:move;cursor:-webkit-grabbing;cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing}.lg-outer .lg{position:relative;overflow:hidden;margin-left:auto;margin-right:auto;max-width:100%;max-height:100%}.lg-outer .lg-inner{position:absolute;left:0;top:0;white-space:nowrap}.lg-outer .lg-item{background:url(img/loading.gif) center center no-repeat;display:none!important}.lg-outer.lg-css .lg-current,.lg-outer.lg-css3 .lg-current,.lg-outer.lg-css3 .lg-next-slide,.lg-outer.lg-css3 .lg-prev-slide{display:inline-block!important}.lg-outer .lg-img-wrap,.lg-outer .lg-item{display:inline-block;text-align:center;position:absolute;width:100%;height:100%}.lg-outer .lg-img-wrap:before,.lg-outer .lg-item:before{content:"";display:inline-block;height:50%;width:1px;margin-right:-1px}.lg-outer .lg-img-wrap{position:absolute;padding:0 5px;left:0;right:0;top:0;bottom:0}.lg-outer .lg-item.lg-complete{background-image:none}.lg-outer .lg-item.lg-current{z-index:1060}.lg-outer .lg-image{display:inline-block;vertical-align:middle;max-width:100%;max-height:100%;width:auto!important;height:auto!important}.lg-outer.lg-show-after-load .lg-item .lg-object,.lg-outer.lg-show-after-load .lg-item .lg-video-play{opacity:0;-webkit-transition:opacity .15s ease 0s;-o-transition:opacity .15s ease 0s;transition:opacity .15s ease 0s}.lg-outer.lg-show-after-load .lg-item.lg-complete .lg-object,.lg-outer.lg-show-after-load .lg-item.lg-complete .lg-video-play{opacity:1}.lg-outer .lg-empty-html,.lg-outer.lg-hide-download #lg-download{display:none}.lg-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1040;background-color:#000;opacity:0;-webkit-transition:opacity .15s ease 0s;-o-transition:opacity .15s ease 0s;transition:opacity .15s ease 0s}.lg-backdrop.in{opacity:1}.lg-css3.lg-no-trans .lg-current,.lg-css3.lg-no-trans .lg-next-slide,.lg-css3.lg-no-trans .lg-prev-slide{-webkit-transition:none 0s ease 0s!important;-o-transition:none 0s ease 0s!important;transition:none 0s ease 0s!important}.lg-css3.lg-use-css3 .lg-item,.lg-css3.lg-use-left .lg-item{-webkit-backface-visibility:hidden;backface-visibility:hidden}.lg-css3.lg-fade .lg-item{opacity:0}.lg-css3.lg-fade .lg-item.lg-current{opacity:1}.lg-css3.lg-fade .lg-item.lg-current,.lg-css3.lg-fade .lg-item.lg-next-slide,.lg-css3.lg-fade .lg-item.lg-prev-slide{-webkit-transition:opacity .1s ease 0s;-o-transition:opacity .1s ease 0s;transition:opacity .1s ease 0s}.lg-css3.lg-slide.lg-use-css3 .lg-item{opacity:0}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current,.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide,.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-webkit-transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-slide.lg-use-left .lg-item{opacity:0;position:absolute;left:0}.lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide{left:-100%}.lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide{left:100%}.lg-css3.lg-slide.lg-use-left .lg-item.lg-current{left:0;opacity:1}.lg-css3.lg-slide.lg-use-left .lg-item.lg-current,.lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide,.lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide{-webkit-transition:left 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:left 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:left 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-css3.lg-zoom-in .lg-item{opacity:0}.lg-css3.lg-zoom-in .lg-item.lg-next-slide,.lg-css3.lg-zoom-in .lg-item.lg-prev-slide{-webkit-transform:scale3d(1.3,1.3,1.3);transform:scale3d(1.3,1.3,1.3)}.lg-css3.lg-zoom-in .lg-item.lg-current{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);opacity:1}.lg-css3.lg-zoom-in .lg-item.lg-current,.lg-css3.lg-zoom-in .lg-item.lg-next-slide,.lg-css3.lg-zoom-in .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-webkit-transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-zoom-in-big .lg-item{opacity:0}.lg-css3.lg-zoom-in-big .lg-item.lg-next-slide,.lg-css3.lg-zoom-in-big .lg-item.lg-prev-slide{-webkit-transform:scale3d(2,2,2);transform:scale3d(2,2,2)}.lg-css3.lg-zoom-in-big .lg-item.lg-current{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);opacity:1}.lg-css3.lg-zoom-in-big .lg-item.lg-current,.lg-css3.lg-zoom-in-big .lg-item.lg-next-slide,.lg-css3.lg-zoom-in-big .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-webkit-transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-zoom-out .lg-item{opacity:0}.lg-css3.lg-zoom-out .lg-item.lg-next-slide,.lg-css3.lg-zoom-out .lg-item.lg-prev-slide{-webkit-transform:scale3d(.7,.7,.7);transform:scale3d(.7,.7,.7)}.lg-css3.lg-zoom-out .lg-item.lg-current{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);opacity:1}.lg-css3.lg-zoom-out .lg-item.lg-current,.lg-css3.lg-zoom-out .lg-item.lg-next-slide,.lg-css3.lg-zoom-out .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-webkit-transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-zoom-out-big .lg-item{opacity:0}.lg-css3.lg-zoom-out-big .lg-item.lg-next-slide,.lg-css3.lg-zoom-out-big .lg-item.lg-prev-slide{-webkit-transform:scale3d(0,0,0);transform:scale3d(0,0,0)}.lg-css3.lg-zoom-out-big .lg-item.lg-current{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);opacity:1}.lg-css3.lg-zoom-out-big .lg-item.lg-current,.lg-css3.lg-zoom-out-big .lg-item.lg-next-slide,.lg-css3.lg-zoom-out-big .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-webkit-transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-zoom-out-in .lg-item{opacity:0}.lg-css3.lg-zoom-out-in .lg-item.lg-prev-slide{-webkit-transform:scale3d(0,0,0);transform:scale3d(0,0,0)}.lg-css3.lg-zoom-out-in .lg-item.lg-next-slide{-webkit-transform:scale3d(2,2,2);transform:scale3d(2,2,2)}.lg-css3.lg-zoom-out-in .lg-item.lg-current{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);opacity:1}.lg-css3.lg-zoom-out-in .lg-item.lg-current,.lg-css3.lg-zoom-out-in .lg-item.lg-next-slide,.lg-css3.lg-zoom-out-in .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-webkit-transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-zoom-in-out .lg-item{opacity:0}.lg-css3.lg-zoom-in-out .lg-item.lg-prev-slide{-webkit-transform:scale3d(2,2,2);transform:scale3d(2,2,2)}.lg-css3.lg-zoom-in-out .lg-item.lg-next-slide{-webkit-transform:scale3d(0,0,0);transform:scale3d(0,0,0)}.lg-css3.lg-zoom-in-out .lg-item.lg-current{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);opacity:1}.lg-css3.lg-zoom-in-out .lg-item.lg-current,.lg-css3.lg-zoom-in-out .lg-item.lg-next-slide,.lg-css3.lg-zoom-in-out .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-webkit-transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-soft-zoom .lg-item{opacity:0}.lg-css3.lg-soft-zoom .lg-item.lg-prev-slide{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}.lg-css3.lg-soft-zoom .lg-item.lg-next-slide{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}.lg-css3.lg-soft-zoom .lg-item.lg-current{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);opacity:1}.lg-css3.lg-soft-zoom .lg-item.lg-current,.lg-css3.lg-soft-zoom .lg-item.lg-next-slide,.lg-css3.lg-soft-zoom .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-webkit-transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-scale-up .lg-item{opacity:0}.lg-css3.lg-scale-up .lg-item.lg-next-slide,.lg-css3.lg-scale-up .lg-item.lg-prev-slide{-ms-transform:scale3d(.8,.8,.8) translate3d(0,10%,0);-webkit-transform:scale3d(.8,.8,.8) translate3d(0,10%,0);transform:scale3d(.8,.8,.8) translate3d(0,10%,0)}.lg-css3.lg-scale-up .lg-item.lg-current{-ms-transform:scale3d(1,1,1) translate3d(0,0,0);-webkit-transform:scale3d(1,1,1) translate3d(0,0,0);transform:scale3d(1,1,1) translate3d(0,0,0);opacity:1}.lg-css3.lg-scale-up .lg-item.lg-current,.lg-css3.lg-scale-up .lg-item.lg-next-slide,.lg-css3.lg-scale-up .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-webkit-transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-slide-circular .lg-item{opacity:0}.lg-css3.lg-slide-circular .lg-item.lg-prev-slide{-ms-transform:scale3d(0,0,0) translate3d(-100%,0,0);-webkit-transform:scale3d(0,0,0) translate3d(-100%,0,0);transform:scale3d(0,0,0) translate3d(-100%,0,0)}.lg-css3.lg-slide-circular .lg-item.lg-next-slide{-ms-transform:scale3d(0,0,0) translate3d(100%,0,0);-webkit-transform:scale3d(0,0,0) translate3d(100%,0,0);transform:scale3d(0,0,0) translate3d(100%,0,0)}.lg-css3.lg-slide-circular .lg-item.lg-current{-ms-transform:scale3d(1,1,1) translate3d(0,0,0);-webkit-transform:scale3d(1,1,1) translate3d(0,0,0);transform:scale3d(1,1,1) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-circular .lg-item.lg-current,.lg-css3.lg-slide-circular .lg-item.lg-next-slide,.lg-css3.lg-slide-circular .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-webkit-transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-slide-circular-up .lg-item{opacity:0}.lg-css3.lg-slide-circular-up .lg-item.lg-prev-slide{-ms-transform:scale3d(0,0,0) translate3d(-100%,-100%,0);-webkit-transform:scale3d(0,0,0) translate3d(-100%,-100%,0);transform:scale3d(0,0,0) translate3d(-100%,-100%,0)}.lg-css3.lg-slide-circular-up .lg-item.lg-next-slide{-ms-transform:scale3d(0,0,0) translate3d(100%,-100%,0);-webkit-transform:scale3d(0,0,0) translate3d(100%,-100%,0);transform:scale3d(0,0,0) translate3d(100%,-100%,0)}.lg-css3.lg-slide-circular-up .lg-item.lg-current{-ms-transform:scale3d(1,1,1) translate3d(0,0,0);-webkit-transform:scale3d(1,1,1) translate3d(0,0,0);transform:scale3d(1,1,1) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-circular-up .lg-item.lg-current,.lg-css3.lg-slide-circular-up .lg-item.lg-next-slide,.lg-css3.lg-slide-circular-up .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-webkit-transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-slide-circular-down .lg-item{opacity:0}.lg-css3.lg-slide-circular-down .lg-item.lg-prev-slide{-ms-transform:scale3d(0,0,0) translate3d(-100%,100%,0);-webkit-transform:scale3d(0,0,0) translate3d(-100%,100%,0);transform:scale3d(0,0,0) translate3d(-100%,100%,0)}.lg-css3.lg-slide-circular-down .lg-item.lg-next-slide{-ms-transform:scale3d(0,0,0) translate3d(100%,100%,0);-webkit-transform:scale3d(0,0,0) translate3d(100%,100%,0);transform:scale3d(0,0,0) translate3d(100%,100%,0)}.lg-css3.lg-slide-circular-down .lg-item.lg-current{-ms-transform:scale3d(1,1,1) translate3d(0,0,0);-webkit-transform:scale3d(1,1,1) translate3d(0,0,0);transform:scale3d(1,1,1) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-circular-down .lg-item.lg-current,.lg-css3.lg-slide-circular-down .lg-item.lg-next-slide,.lg-css3.lg-slide-circular-down .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-webkit-transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-slide-circular-vertical .lg-item{opacity:0}.lg-css3.lg-slide-circular-vertical .lg-item.lg-prev-slide{-ms-transform:scale3d(0,0,0) translate3d(0,-100%,0);-webkit-transform:scale3d(0,0,0) translate3d(0,-100%,0);transform:scale3d(0,0,0) translate3d(0,-100%,0)}.lg-css3.lg-slide-circular-vertical .lg-item.lg-next-slide{-ms-transform:scale3d(0,0,0) translate3d(0,100%,0);-webkit-transform:scale3d(0,0,0) translate3d(0,100%,0);transform:scale3d(0,0,0) translate3d(0,100%,0)}.lg-css3.lg-slide-circular-vertical .lg-item.lg-current{-ms-transform:scale3d(1,1,1) translate3d(0,0,0);-webkit-transform:scale3d(1,1,1) translate3d(0,0,0);transform:scale3d(1,1,1) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-circular-vertical .lg-item.lg-current,.lg-css3.lg-slide-circular-vertical .lg-item.lg-next-slide,.lg-css3.lg-slide-circular-vertical .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-webkit-transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-slide-circular-vertical-left .lg-item{opacity:0}.lg-css3.lg-slide-circular-vertical-left .lg-item.lg-prev-slide{-ms-transform:scale3d(0,0,0) translate3d(-100%,-100%,0);-webkit-transform:scale3d(0,0,0) translate3d(-100%,-100%,0);transform:scale3d(0,0,0) translate3d(-100%,-100%,0)}.lg-css3.lg-slide-circular-vertical-left .lg-item.lg-next-slide{-ms-transform:scale3d(0,0,0) translate3d(-100%,100%,0);-webkit-transform:scale3d(0,0,0) translate3d(-100%,100%,0);transform:scale3d(0,0,0) translate3d(-100%,100%,0)}.lg-css3.lg-slide-circular-vertical-left .lg-item.lg-current{-ms-transform:scale3d(1,1,1) translate3d(0,0,0);-webkit-transform:scale3d(1,1,1) translate3d(0,0,0);transform:scale3d(1,1,1) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-circular-vertical-left .lg-item.lg-current,.lg-css3.lg-slide-circular-vertical-left .lg-item.lg-next-slide,.lg-css3.lg-slide-circular-vertical-left .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-webkit-transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-slide-circular-vertical-down .lg-item{opacity:0}.lg-css3.lg-slide-circular-vertical-down .lg-item.lg-prev-slide{-ms-transform:scale3d(0,0,0) translate3d(100%,-100%,0);-webkit-transform:scale3d(0,0,0) translate3d(100%,-100%,0);transform:scale3d(0,0,0) translate3d(100%,-100%,0)}.lg-css3.lg-slide-circular-vertical-down .lg-item.lg-next-slide{-ms-transform:scale3d(0,0,0) translate3d(100%,100%,0);-webkit-transform:scale3d(0,0,0) translate3d(100%,100%,0);transform:scale3d(0,0,0) translate3d(100%,100%,0)}.lg-css3.lg-slide-circular-vertical-down .lg-item.lg-current{-ms-transform:scale3d(1,1,1) translate3d(0,0,0);-webkit-transform:scale3d(1,1,1) translate3d(0,0,0);transform:scale3d(1,1,1) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-circular-vertical-down .lg-item.lg-current,.lg-css3.lg-slide-circular-vertical-down .lg-item.lg-next-slide,.lg-css3.lg-slide-circular-vertical-down .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;-webkit-transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity 1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-slide-vertical .lg-item{opacity:0}.lg-css3.lg-slide-vertical .lg-item.lg-prev-slide{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}.lg-css3.lg-slide-vertical .lg-item.lg-next-slide{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.lg-css3.lg-slide-vertical .lg-item.lg-current{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-vertical .lg-item.lg-current,.lg-css3.lg-slide-vertical .lg-item.lg-next-slide,.lg-css3.lg-slide-vertical .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-webkit-transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-slide-vertical-growth .lg-item{opacity:0}.lg-css3.lg-slide-vertical-growth .lg-item.lg-prev-slide{-ms-transform:scale3d(.5,.5,.5) translate3d(0,-150%,0);-webkit-transform:scale3d(.5,.5,.5) translate3d(0,-150%,0);transform:scale3d(.5,.5,.5) translate3d(0,-150%,0)}.lg-css3.lg-slide-vertical-growth .lg-item.lg-next-slide{-ms-transform:scale3d(.5,.5,.5) translate3d(0,150%,0);-webkit-transform:scale3d(.5,.5,.5) translate3d(0,150%,0);transform:scale3d(.5,.5,.5) translate3d(0,150%,0)}.lg-css3.lg-slide-vertical-growth .lg-item.lg-current{-ms-transform:scale3d(1,1,1) translate3d(0,0,0);-webkit-transform:scale3d(1,1,1) translate3d(0,0,0);transform:scale3d(1,1,1) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-vertical-growth .lg-item.lg-current,.lg-css3.lg-slide-vertical-growth .lg-item.lg-next-slide,.lg-css3.lg-slide-vertical-growth .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-webkit-transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-slide-skew-only .lg-item{opacity:0}.lg-css3.lg-slide-skew-only .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-only .lg-item.lg-prev-slide{-ms-transform:skew(10deg,0deg);-webkit-transform:skew(10deg,0deg);transform:skew(10deg,0deg)}.lg-css3.lg-slide-skew-only .lg-item.lg-current{-ms-transform:skew(0deg,0deg);-webkit-transform:skew(0deg,0deg);transform:skew(0deg,0deg);opacity:1}.lg-css3.lg-slide-skew-only .lg-item.lg-current,.lg-css3.lg-slide-skew-only .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-only .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-webkit-transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-slide-skew-only-rev .lg-item{opacity:0}.lg-css3.lg-slide-skew-only-rev .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-only-rev .lg-item.lg-prev-slide{-ms-transform:skew(-10deg,0deg);-webkit-transform:skew(-10deg,0deg);transform:skew(-10deg,0deg)}.lg-css3.lg-slide-skew-only-rev .lg-item.lg-current{-ms-transform:skew(0deg,0deg);-webkit-transform:skew(0deg,0deg);transform:skew(0deg,0deg);opacity:1}.lg-css3.lg-slide-skew-only-rev .lg-item.lg-current,.lg-css3.lg-slide-skew-only-rev .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-only-rev .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-webkit-transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-slide-skew-only-y .lg-item{opacity:0}.lg-css3.lg-slide-skew-only-y .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-only-y .lg-item.lg-prev-slide{-ms-transform:skew(0deg,10deg);-webkit-transform:skew(0deg,10deg);transform:skew(0deg,10deg)}.lg-css3.lg-slide-skew-only-y .lg-item.lg-current{-ms-transform:skew(0deg,0deg);-webkit-transform:skew(0deg,0deg);transform:skew(0deg,0deg);opacity:1}.lg-css3.lg-slide-skew-only-y .lg-item.lg-current,.lg-css3.lg-slide-skew-only-y .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-only-y .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-webkit-transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-slide-skew-only-y-rev .lg-item{opacity:0}.lg-css3.lg-slide-skew-only-y-rev .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-only-y-rev .lg-item.lg-prev-slide{-ms-transform:skew(0deg,-10deg);-webkit-transform:skew(0deg,-10deg);transform:skew(0deg,-10deg)}.lg-css3.lg-slide-skew-only-y-rev .lg-item.lg-current{-ms-transform:skew(0deg,0deg);-webkit-transform:skew(0deg,0deg);transform:skew(0deg,0deg);opacity:1}.lg-css3.lg-slide-skew-only-y-rev .lg-item.lg-current,.lg-css3.lg-slide-skew-only-y-rev .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-only-y-rev .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-webkit-transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-slide-skew .lg-item{opacity:0}.lg-css3.lg-slide-skew .lg-item.lg-prev-slide{-ms-transform:skew(20deg,0deg) translate3d(-100%,0,0);-webkit-transform:skew(20deg,0deg) translate3d(-100%,0,0);transform:skew(20deg,0deg) translate3d(-100%,0,0)}.lg-css3.lg-slide-skew .lg-item.lg-next-slide{-ms-transform:skew(20deg,0deg) translate3d(100%,0,0);-webkit-transform:skew(20deg,0deg) translate3d(100%,0,0);transform:skew(20deg,0deg) translate3d(100%,0,0)}.lg-css3.lg-slide-skew .lg-item.lg-current{-ms-transform:skew(0deg,0deg) translate3d(0,0,0);-webkit-transform:skew(0deg,0deg) translate3d(0,0,0);transform:skew(0deg,0deg) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-skew .lg-item.lg-current,.lg-css3.lg-slide-skew .lg-item.lg-next-slide,.lg-css3.lg-slide-skew .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-webkit-transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-slide-skew-rev .lg-item{opacity:0}.lg-css3.lg-slide-skew-rev .lg-item.lg-prev-slide{-ms-transform:skew(-20deg,0deg) translate3d(-100%,0,0);-webkit-transform:skew(-20deg,0deg) translate3d(-100%,0,0);transform:skew(-20deg,0deg) translate3d(-100%,0,0)}.lg-css3.lg-slide-skew-rev .lg-item.lg-next-slide{-ms-transform:skew(-20deg,0deg) translate3d(100%,0,0);-webkit-transform:skew(-20deg,0deg) translate3d(100%,0,0);transform:skew(-20deg,0deg) translate3d(100%,0,0)}.lg-css3.lg-slide-skew-rev .lg-item.lg-current{-ms-transform:skew(0deg,0deg) translate3d(0,0,0);-webkit-transform:skew(0deg,0deg) translate3d(0,0,0);transform:skew(0deg,0deg) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-skew-rev .lg-item.lg-current,.lg-css3.lg-slide-skew-rev .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-rev .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-webkit-transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-slide-skew-cross .lg-item{opacity:0}.lg-css3.lg-slide-skew-cross .lg-item.lg-prev-slide{-ms-transform:skew(0deg,60deg) translate3d(-100%,0,0);-webkit-transform:skew(0deg,60deg) translate3d(-100%,0,0);transform:skew(0deg,60deg) translate3d(-100%,0,0)}.lg-css3.lg-slide-skew-cross .lg-item.lg-next-slide{-ms-transform:skew(0deg,60deg) translate3d(100%,0,0);-webkit-transform:skew(0deg,60deg) translate3d(100%,0,0);transform:skew(0deg,60deg) translate3d(100%,0,0)}.lg-css3.lg-slide-skew-cross .lg-item.lg-current{-ms-transform:skew(0deg,0deg) translate3d(0,0,0);-webkit-transform:skew(0deg,0deg) translate3d(0,0,0);transform:skew(0deg,0deg) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-skew-cross .lg-item.lg-current,.lg-css3.lg-slide-skew-cross .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-cross .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-webkit-transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-slide-skew-cross-rev .lg-item{opacity:0}.lg-css3.lg-slide-skew-cross-rev .lg-item.lg-prev-slide{-ms-transform:skew(0deg,-60deg) translate3d(-100%,0,0);-webkit-transform:skew(0deg,-60deg) translate3d(-100%,0,0);transform:skew(0deg,-60deg) translate3d(-100%,0,0)}.lg-css3.lg-slide-skew-cross-rev .lg-item.lg-next-slide{-ms-transform:skew(0deg,-60deg) translate3d(100%,0,0);-webkit-transform:skew(0deg,-60deg) translate3d(100%,0,0);transform:skew(0deg,-60deg) translate3d(100%,0,0)}.lg-css3.lg-slide-skew-cross-rev .lg-item.lg-current{-ms-transform:skew(0deg,0deg) translate3d(0,0,0);-webkit-transform:skew(0deg,0deg) translate3d(0,0,0);transform:skew(0deg,0deg) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-skew-cross-rev .lg-item.lg-current,.lg-css3.lg-slide-skew-cross-rev .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-cross-rev .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-webkit-transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-slide-skew-ver .lg-item{opacity:0}.lg-css3.lg-slide-skew-ver .lg-item.lg-prev-slide{-ms-transform:skew(60deg,0deg) translate3d(0,-100%,0);-webkit-transform:skew(60deg,0deg) translate3d(0,-100%,0);transform:skew(60deg,0deg) translate3d(0,-100%,0)}.lg-css3.lg-slide-skew-ver .lg-item.lg-next-slide{-ms-transform:skew(60deg,0deg) translate3d(0,100%,0);-webkit-transform:skew(60deg,0deg) translate3d(0,100%,0);transform:skew(60deg,0deg) translate3d(0,100%,0)}.lg-css3.lg-slide-skew-ver .lg-item.lg-current{-ms-transform:skew(0deg,0deg) translate3d(0,0,0);-webkit-transform:skew(0deg,0deg) translate3d(0,0,0);transform:skew(0deg,0deg) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-skew-ver .lg-item.lg-current,.lg-css3.lg-slide-skew-ver .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-ver .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-webkit-transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-slide-skew-ver-rev .lg-item{opacity:0}.lg-css3.lg-slide-skew-ver-rev .lg-item.lg-prev-slide{-ms-transform:skew(-60deg,0deg) translate3d(0,-100%,0);-webkit-transform:skew(-60deg,0deg) translate3d(0,-100%,0);transform:skew(-60deg,0deg) translate3d(0,-100%,0)}.lg-css3.lg-slide-skew-ver-rev .lg-item.lg-next-slide{-ms-transform:skew(-60deg,0deg) translate3d(0,100%,0);-webkit-transform:skew(-60deg,0deg) translate3d(0,100%,0);transform:skew(-60deg,0deg) translate3d(0,100%,0)}.lg-css3.lg-slide-skew-ver-rev .lg-item.lg-current{-ms-transform:skew(0deg,0deg) translate3d(0,0,0);-webkit-transform:skew(0deg,0deg) translate3d(0,0,0);transform:skew(0deg,0deg) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-skew-ver-rev .lg-item.lg-current,.lg-css3.lg-slide-skew-ver-rev .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-ver-rev .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-webkit-transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-slide-skew-ver-cross .lg-item{opacity:0}.lg-css3.lg-slide-skew-ver-cross .lg-item.lg-prev-slide{-ms-transform:skew(0deg,20deg) translate3d(0,-100%,0);-webkit-transform:skew(0deg,20deg) translate3d(0,-100%,0);transform:skew(0deg,20deg) translate3d(0,-100%,0)}.lg-css3.lg-slide-skew-ver-cross .lg-item.lg-next-slide{-ms-transform:skew(0deg,20deg) translate3d(0,100%,0);-webkit-transform:skew(0deg,20deg) translate3d(0,100%,0);transform:skew(0deg,20deg) translate3d(0,100%,0)}.lg-css3.lg-slide-skew-ver-cross .lg-item.lg-current{-ms-transform:skew(0deg,0deg) translate3d(0,0,0);-webkit-transform:skew(0deg,0deg) translate3d(0,0,0);transform:skew(0deg,0deg) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-skew-ver-cross .lg-item.lg-current,.lg-css3.lg-slide-skew-ver-cross .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-ver-cross .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-webkit-transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-slide-skew-ver-cross-rev .lg-item{opacity:0}.lg-css3.lg-slide-skew-ver-cross-rev .lg-item.lg-prev-slide{-ms-transform:skew(0deg,-20deg) translate3d(0,-100%,0);-webkit-transform:skew(0deg,-20deg) translate3d(0,-100%,0);transform:skew(0deg,-20deg) translate3d(0,-100%,0)}.lg-css3.lg-slide-skew-ver-cross-rev .lg-item.lg-next-slide{-ms-transform:skew(0deg,-20deg) translate3d(0,100%,0);-webkit-transform:skew(0deg,-20deg) translate3d(0,100%,0);transform:skew(0deg,-20deg) translate3d(0,100%,0)}.lg-css3.lg-slide-skew-ver-cross-rev .lg-item.lg-current{-ms-transform:skew(0deg,0deg) translate3d(0,0,0);-webkit-transform:skew(0deg,0deg) translate3d(0,0,0);transform:skew(0deg,0deg) translate3d(0,0,0);opacity:1}.lg-css3.lg-slide-skew-ver-cross-rev .lg-item.lg-current,.lg-css3.lg-slide-skew-ver-cross-rev .lg-item.lg-next-slide,.lg-css3.lg-slide-skew-ver-cross-rev .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-webkit-transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-lollipop .lg-item{opacity:0}.lg-css3.lg-lollipop .lg-item.lg-prev-slide{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.lg-css3.lg-lollipop .lg-item.lg-next-slide{-ms-transform:translate3d(0,0,0) scale(.5);-webkit-transform:translate3d(0,0,0) scale(.5);transform:translate3d(0,0,0) scale(.5)}.lg-css3.lg-lollipop .lg-item.lg-current{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.lg-css3.lg-lollipop .lg-item.lg-current,.lg-css3.lg-lollipop .lg-item.lg-next-slide,.lg-css3.lg-lollipop .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-webkit-transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-lollipop-rev .lg-item{opacity:0}.lg-css3.lg-lollipop-rev .lg-item.lg-prev-slide{-ms-transform:translate3d(0,0,0) scale(.5);-webkit-transform:translate3d(0,0,0) scale(.5);transform:translate3d(0,0,0) scale(.5)}.lg-css3.lg-lollipop-rev .lg-item.lg-next-slide{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.lg-css3.lg-lollipop-rev .lg-item.lg-current{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.lg-css3.lg-lollipop-rev .lg-item.lg-current,.lg-css3.lg-lollipop-rev .lg-item.lg-next-slide,.lg-css3.lg-lollipop-rev .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-webkit-transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-rotate .lg-item{opacity:0}.lg-css3.lg-rotate .lg-item.lg-prev-slide{-ms-transform:rotate(-360deg);-webkit-transform:rotate(-360deg);transform:rotate(-360deg)}.lg-css3.lg-rotate .lg-item.lg-next-slide{-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg)}.lg-css3.lg-rotate .lg-item.lg-current{-ms-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0);opacity:1}.lg-css3.lg-rotate .lg-item.lg-current,.lg-css3.lg-rotate .lg-item.lg-next-slide,.lg-css3.lg-rotate .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-webkit-transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-rotate-rev .lg-item{opacity:0}.lg-css3.lg-rotate-rev .lg-item.lg-prev-slide{-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg)}.lg-css3.lg-rotate-rev .lg-item.lg-next-slide{-ms-transform:rotate(-360deg);-webkit-transform:rotate(-360deg);transform:rotate(-360deg)}.lg-css3.lg-rotate-rev .lg-item.lg-current{-ms-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0);opacity:1}.lg-css3.lg-rotate-rev .lg-item.lg-current,.lg-css3.lg-rotate-rev .lg-item.lg-next-slide,.lg-css3.lg-rotate-rev .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-webkit-transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-tube .lg-item{opacity:0}.lg-css3.lg-tube .lg-item.lg-prev-slide{-ms-transform:scale3d(1,0,1) translate3d(-100%,0,0);-webkit-transform:scale3d(1,0,1) translate3d(-100%,0,0);transform:scale3d(1,0,1) translate3d(-100%,0,0)}.lg-css3.lg-tube .lg-item.lg-next-slide{-ms-transform:scale3d(1,0,1) translate3d(100%,0,0);-webkit-transform:scale3d(1,0,1) translate3d(100%,0,0);transform:scale3d(1,0,1) translate3d(100%,0,0)}.lg-css3.lg-tube .lg-item.lg-current{-ms-transform:scale3d(1,1,1) translate3d(0,0,0);-webkit-transform:scale3d(1,1,1) translate3d(0,0,0);transform:scale3d(1,1,1) translate3d(0,0,0);opacity:1}.lg-css3.lg-tube .lg-item.lg-current,.lg-css3.lg-tube .lg-item.lg-next-slide,.lg-css3.lg-tube .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-webkit-transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s,-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s}.progressjs-inner{width:0}.progressjs-progress{z-index:9999999}.progressjs-theme-blue .progressjs-inner{height:2px;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out;background-color:#3498db}.progressjs-theme-blue.progressjs-end{-webkit-transition:opacity .2s ease-out;-o-transition:opacity .2s ease-out;transition:opacity .2s ease-out;opacity:0}.progressjs-theme-blue .progressjs-percent{display:none}.progressjs-theme-blueOverlay{background-color:#fff;-webkit-transition:all .2s ease-out;-o-transition:all .2s ease-out;transition:all .2s ease-out}.progressjs-theme-blueOverlay .progressjs-inner{height:100%;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out;background-color:#3498db}.progressjs-theme-blueOverlay.progressjs-end{opacity:0!important}.progressjs-theme-blueOverlay .progressjs-percent{display:none}.progressjs-theme-blueOverlay{background-color:#fff;-webkit-transition:all .2s ease-out;-o-transition:all .2s ease-out;transition:all .2s ease-out}.progressjs-theme-blueOverlay .progressjs-inner{height:100%;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out;background-color:#3498db}.progressjs-theme-blueOverlay.progressjs-end{opacity:0!important}.progressjs-theme-blueOverlay .progressjs-percent{display:none}.progressjs-theme-blueOverlayRadius{background-color:#fff;-webkit-transition:all .2s ease-out;-o-transition:all .2s ease-out;transition:all .2s ease-out;border-radius:5px}.progressjs-theme-blueOverlayRadius .progressjs-inner{height:100%;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out;background-color:#3498db;border-radius:5px}.progressjs-theme-blueOverlayRadius.progressjs-end{opacity:0!important}.progressjs-theme-blueOverlayRadius .progressjs-percent{display:none}.progressjs-theme-blueOverlayRadiusHalfOpacity{background-color:#fff;opacity:.5;-webkit-transition:all .2s ease-out;-o-transition:all .2s ease-out;transition:all .2s ease-out;border-radius:5px}.progressjs-theme-blueOverlayRadiusHalfOpacity .progressjs-inner{height:100%;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out;background-color:#3498db;border-radius:5px}.progressjs-theme-blueOverlayRadiusHalfOpacity.progressjs-end{opacity:0!important}.progressjs-theme-blueOverlayRadiusHalfOpacity .progressjs-percent{display:none}.progressjs-theme-blueOverlayRadiusWithPercentBar{background-color:#fff;-webkit-transition:all .2s ease-out;-o-transition:all .2s ease-out;transition:all .2s ease-out;border-radius:5px}.progressjs-theme-blueOverlayRadiusWithPercentBar .progressjs-inner{height:100%;-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out;background-color:#3498db;border-radius:5px}.progressjs-theme-blueOverlayRadiusWithPercentBar.progressjs-end{opacity:0!important}.progressjs-theme-blueOverlayRadiusWithPercentBar .progressjs-percent{width:70px;text-align:center;height:40px;position:absolute;right:50%;margin-right:-35px;top:50%;margin-top:-20px;font-size:30px;opacity:.5}.progressjs-theme-blackRadiusInputs{height:10px;border-radius:10px;overflow:hidden}.progressjs-theme-blackRadiusInputs .progressjs-inner{height:2px;-webkit-transition:all 1s ease-out;-o-transition:all 1s ease-out;transition:all 1s ease-out;background-color:#34495e}.progressjs-theme-blackRadiusInputs.progressjs-end{-webkit-transition:opacity .2s ease-out;-o-transition:opacity .2s ease-out;transition:opacity .2s ease-out;opacity:0}.progressjs-theme-blackRadiusInputs .progressjs-percent{display:none}.progressjs-theme-rainloop{z-index:2000}.progressjs-theme-rainloop .progressjs-inner{background-color:#939595;position:relative;z-index:2000;height:3px;overflow:hidden;-webkit-transition:width .5s;-o-transition:width .5s;transition:width .5s}.progressjs-theme-rainloop .progressjs-percent{position:absolute;top:0;left:0;right:-32px;bottom:0;background-image:-o-linear-gradient(45deg,rgba(255,255,255,.3) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.3) 50%,rgba(255,255,255,.3) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.3) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.3) 50%,rgba(255,255,255,.3) 75%,transparent 75%,transparent);background-size:32px 32px;-webkit-animation:simple-pace-stripe-animation .5s linear infinite;animation:simple-pace-stripe-animation .5s linear infinite}@-webkit-keyframes simple-pace-stripe-animation{0%{-webkit-transform:none;transform:none}100%{-webkit-transform:translate(-32px,0);transform:translate(-32px,0)}}@keyframes simple-pace-stripe-animation{0%{-webkit-transform:none;transform:none;transform:none}100%{-webkit-transform:translate(-32px,0);transform:translate(-32px,0);transform:translate(-32px,0)}}.clearfix:after,.clearfix:before{display:table;content:"";line-height:0}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;box-sizing:border-box}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover{color:#005580;text-decoration:underline}.img-rounded{border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,.1);box-shadow:0 1px 3px rgba(0,0,0,.1)}.img-circle{border-radius:500px}.row{margin-left:-20px}.row:after,.row:before{display:table;content:"";line-height:0}.row:after{clear:both}[class*=span]{float:left;margin-left:20px}.container,.navbar-fixed-bottom .container,.navbar-fixed-top .container,.navbar-static-top .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%}.row-fluid:after,.row-fluid:before{display:table;content:"";line-height:0}.row-fluid:after{clear:both}.row-fluid [class*=span]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.12765957%}.row-fluid [class*=span]:first-child{margin-left:0}.row-fluid .span12{width:100%}.row-fluid .span11{width:91.4893617%}.row-fluid .span10{width:82.9787234%}.row-fluid .span9{width:74.46808511%}.row-fluid .span8{width:65.95744681%}.row-fluid .span7{width:57.44680851%}.row-fluid .span6{width:48.93617021%}.row-fluid .span5{width:40.42553191%}.row-fluid .span4{width:31.91489362%}.row-fluid .span3{width:23.40425532%}.row-fluid .span2{width:14.89361702%}.row-fluid .span1{width:6.38297872%}.row-fluid .offset12{margin-left:104.25531915%}.row-fluid .offset12:first-child{margin-left:102.12765957%}.row-fluid .offset11{margin-left:95.74468085%}.row-fluid .offset11:first-child{margin-left:93.61702128%}.row-fluid .offset10{margin-left:87.23404255%}.row-fluid .offset10:first-child{margin-left:85.10638298%}.row-fluid .offset9{margin-left:78.72340426%}.row-fluid .offset9:first-child{margin-left:76.59574468%}.row-fluid .offset8{margin-left:70.21276596%}.row-fluid .offset8:first-child{margin-left:68.08510638%}.row-fluid .offset7{margin-left:61.70212766%}.row-fluid .offset7:first-child{margin-left:59.57446809%}.row-fluid .offset6{margin-left:53.19148936%}.row-fluid .offset6:first-child{margin-left:51.06382979%}.row-fluid .offset5{margin-left:44.68085106%}.row-fluid .offset5:first-child{margin-left:42.55319149%}.row-fluid .offset4{margin-left:36.17021277%}.row-fluid .offset4:first-child{margin-left:34.04255319%}.row-fluid .offset3{margin-left:27.65957447%}.row-fluid .offset3:first-child{margin-left:25.53191489%}.row-fluid .offset2{margin-left:19.14893617%}.row-fluid .offset2:first-child{margin-left:17.0212766%}.row-fluid .offset1{margin-left:10.63829787%}.row-fluid .offset1:first-child{margin-left:8.5106383%}.row-fluid [class*=span].hide,[class*=span].hide{display:none}.row-fluid [class*=span].pull-right,[class*=span].pull-right{float:right}.container{margin-right:auto;margin-left:auto}.container:after,.container:before{display:table;content:"";line-height:0}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px}.container-fluid:after,.container-fluid:before{display:table;content:"";line-height:0}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:20px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:700}em{font-style:italic}cite{font-style:normal}.muted{color:#999}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:700;line-height:1;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:400;line-height:1;color:#999}h1{font-size:36px;line-height:40px}h2{font-size:30px;line-height:40px}h3{font-size:24px;line-height:40px}h4{font-size:18px;line-height:20px}h5{font-size:14px;line-height:20px}h6{font-size:12px;line-height:20px}h1 small{font-size:24px}h2 small{font-size:18px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ol,ul{padding:0;margin:0 0 10px 25px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}li{line-height:20px}ol.unstyled,ul.unstyled{margin-left:0;list-style:none}dl{margin-bottom:20px}dd,dt{line-height:20px}dt{font-weight:700}dd{margin-left:10px}.dl-horizontal dt{float:left;width:120px;clear:left;text-align:right;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:130px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:25px}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}blockquote:after,blockquote:before,q:after,q:before{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;border-radius:3px}code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}button,input,label,select,textarea{font-size:14px;font-weight:400;line-height:20px}button,input,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}.uneditable-input,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{display:inline-block;height:20px;padding:4px 6px;margin-bottom:9px;font-size:14px;line-height:20px;color:#555;border-radius:3px}input,textarea{width:210px}textarea{height:auto}.uneditable-input,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;-webkit-transition:border linear .2s,-webkit-box-shadow linear .2s;transition:border linear .2s,-webkit-box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s,-webkit-box-shadow linear .2s}.uneditable-input:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,textarea:focus{border-color:rgba(82,168,236,.8);outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6)}input[type=checkbox],input[type=radio]{margin:4px 0 0;line-height:normal;cursor:pointer}input[type=button],input[type=checkbox],input[type=file],input[type=image],input[type=radio],input[type=reset],input[type=submit]{width:auto}input[type=file],select{height:30px;line-height:30px}select{width:220px;border:1px solid #bbb;background-color:#fff}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus,select:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.025);box-shadow:inset 0 1px 2px rgba(0,0,0,.025);cursor:not-allowed}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.checkbox,.radio{min-height:18px;padding-left:18px}.checkbox input[type=checkbox],.radio input[type=radio]{float:left;margin-left:-18px}.controls>.checkbox:first-child,.controls>.radio:first-child{padding-top:5px}.checkbox.inline,.radio.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.checkbox.inline+.checkbox.inline,.radio.inline+.radio.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}.row-fluid .uneditable-input[class*=span],.row-fluid input[class*=span],.row-fluid select[class*=span],.row-fluid textarea[class*=span],.uneditable-input[class*=span],input[class*=span],select[class*=span],textarea[class*=span]{float:none;margin-left:0}.input-append .uneditable-input[class*=span],.input-append input[class*=span],.input-prepend .uneditable-input[class*=span],.input-prepend input[class*=span],.row-fluid .input-append [class*=span],.row-fluid .input-prepend [class*=span],.row-fluid .uneditable-input[class*=span],.row-fluid input[class*=span],.row-fluid select[class*=span],.row-fluid textarea[class*=span]{display:inline-block}.uneditable-input,input,textarea{margin-left:0}.controls-row [class*=span]+[class*=span]{margin-left:20px}.uneditable-input.span12,input.span12,textarea.span12{width:926px}.uneditable-input.span11,input.span11,textarea.span11{width:846px}.uneditable-input.span10,input.span10,textarea.span10{width:766px}.uneditable-input.span9,input.span9,textarea.span9{width:686px}.uneditable-input.span8,input.span8,textarea.span8{width:606px}.uneditable-input.span7,input.span7,textarea.span7{width:526px}.uneditable-input.span6,input.span6,textarea.span6{width:446px}.uneditable-input.span5,input.span5,textarea.span5{width:366px}.uneditable-input.span4,input.span4,textarea.span4{width:286px}.uneditable-input.span3,input.span3,textarea.span3{width:206px}.uneditable-input.span2,input.span2,textarea.span2{width:126px}.uneditable-input.span1,input.span1,textarea.span1{width:46px}.controls-row:after,.controls-row:before{display:table;content:"";line-height:0}.controls-row:after{clear:both}.controls-row [class*=span]{float:left}input[disabled],input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type=checkbox][disabled],input[type=checkbox][readonly],input[type=radio][disabled],input[type=radio][readonly]{background-color:transparent}.control-group.warning .help-block,.control-group.warning .help-inline,.control-group.warning>label{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.warning .checkbox:focus,.control-group.warning .radio:focus,.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #dbc59e}.control-group.warning .input-append .add-on,.control-group.warning .input-prepend .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .help-block,.control-group.error .help-inline,.control-group.error>label{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.error .checkbox:focus,.control-group.error .radio:focus,.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #d59392}.control-group.error .input-append .add-on,.control-group.error .input-prepend .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .help-block,.control-group.success .help-inline,.control-group.success>label{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.control-group.success .checkbox:focus,.control-group.success .radio:focus,.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #7aba7b}.control-group.success .input-append .add-on,.control-group.success .input-prepend .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}input:focus:required:invalid,select:focus:required:invalid,textarea:focus:required:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:required:invalid:focus,select:focus:required:invalid:focus,textarea:focus:required:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5}.form-actions:after,.form-actions:before{display:table;content:"";line-height:0}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;vertical-align:middle;padding-left:5px}.input-append,.input-prepend{margin-bottom:5px;font-size:0;white-space:nowrap}.input-append .uneditable-input,.input-append input,.input-append select,.input-prepend .uneditable-input,.input-prepend input,.input-prepend select{position:relative;margin-bottom:0;font-size:14px;vertical-align:top;border-radius:0 3px 3px 0}.input-append .uneditable-input:focus,.input-append input:focus,.input-append select:focus,.input-prepend .uneditable-input:focus,.input-prepend input:focus,.input-prepend select:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:400;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-append .btn,.input-prepend .add-on,.input-prepend .btn{margin-left:-1px;vertical-align:top;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{border-radius:3px 0 0 3px}.input-append .uneditable-input,.input-append input,.input-append select{border-radius:3px 0 0 3px}.input-append .add-on:last-child,.input-append .btn:last-child{border-radius:0 3px 3px 0}.input-prepend.input-append .uneditable-input,.input-prepend.input-append input,.input-prepend.input-append select{border-radius:0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;border-radius:3px 0 0 3px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;border-radius:0 3px 3px 0}input.search-query{padding-right:14px;padding-left:14px;margin-bottom:0;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{border-radius:0}.form-search .input-append .search-query{border-radius:14px 0 0 14px}.form-search .input-append .btn{border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{border-radius:0 14px 14px 0}.form-search .input-prepend .btn{border-radius:14px 0 0 14px}.form-horizontal .help-inline,.form-horizontal .input-append,.form-horizontal .input-prepend,.form-horizontal .uneditable-input,.form-horizontal input,.form-horizontal select,.form-horizontal textarea,.form-inline .help-inline,.form-inline .input-append,.form-inline .input-prepend,.form-inline .uneditable-input,.form-inline input,.form-inline select,.form-inline textarea,.form-search .help-inline,.form-search .input-append,.form-search .input-prepend,.form-search .uneditable-input,.form-search input,.form-search select,.form-search textarea{display:inline-block;margin-bottom:0;vertical-align:middle}.form-horizontal .hide,.form-inline .hide,.form-search .hide{display:none}.form-inline .btn-group,.form-inline label,.form-search .btn-group,.form-search label{display:inline-block}.form-inline .input-append,.form-inline .input-prepend,.form-search .input-append,.form-search .input-prepend{margin-bottom:0}.form-inline .checkbox,.form-inline .radio,.form-search .checkbox,.form-search .radio{padding-left:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio],.form-search .checkbox input[type=checkbox],.form-search .radio input[type=radio]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px}.form-horizontal .control-group:after,.form-horizontal .control-group:before{display:table;content:"";line-height:0}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:140px;padding-top:5px;text-align:right}.form-horizontal .controls{margin-left:160px}.form-horizontal .help-block{margin-top:10px;margin-bottom:0}.form-horizontal .form-actions{padding-left:160px}.table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table td,.table th{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:700}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child td,.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child td,.table thead:first-child tr:first-child th{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table-condensed td,.table-condensed th{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;border-left:0;border-radius:4px}.table-bordered td,.table-bordered th{border-left:1px solid #ddd}.table-bordered caption+tbody tr:first-child td,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+thead tr:first-child th,.table-bordered tbody:first-child tr:first-child td,.table-bordered tbody:first-child tr:first-child th,.table-bordered thead:first-child tr:first-child th{border-top:0}.table-bordered tbody:first-child tr:first-child td:first-child,.table-bordered thead:first-child tr:first-child th:first-child{border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered tbody:first-child tr:first-child td:last-child,.table-bordered thead:first-child tr:first-child th:last-child{border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered tbody:last-child tr:last-child td:first-child,.table-bordered tfoot:last-child tr:last-child td:first-child,.table-bordered thead:last-child tr:last-child th:first-child{border-radius:0 0 0 4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered tbody:last-child tr:last-child td:last-child,.table-bordered tfoot:last-child tr:last-child td:last-child,.table-bordered thead:last-child tr:last-child th:last-child{border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered caption+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child{border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered caption+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child{border-top-right-radius:4px;-moz-border-right-topleft:4px}.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9}.table-hover tbody tr:hover td,.table-hover tbody tr:hover th{background-color:#f5f5f5}.row-fluid table [class*=span],table [class*=span]{display:table-cell;float:none;margin-left:0}table .span1{float:none;width:44px;margin-left:0}table .span2{float:none;width:124px;margin-left:0}table .span3{float:none;width:204px;margin-left:0}table .span4{float:none;width:284px;margin-left:0}table .span5{float:none;width:364px;margin-left:0}table .span6{float:none;width:444px;margin-left:0}table .span7{float:none;width:524px;margin-left:0}table .span8{float:none;width:604px;margin-left:0}table .span9{float:none;width:684px;margin-left:0}table .span10{float:none;width:764px;margin-left:0}table .span11{float:none;width:844px;margin-left:0}table .span12{float:none;width:924px;margin-left:0}table .span13{float:none;width:1004px;margin-left:0}table .span14{float:none;width:1084px;margin-left:0}table .span15{float:none;width:1164px;margin-left:0}table .span16{float:none;width:1244px;margin-left:0}table .span17{float:none;width:1324px;margin-left:0}table .span18{float:none;width:1404px;margin-left:0}table .span19{float:none;width:1484px;margin-left:0}table .span20{float:none;width:1564px;margin-left:0}table .span21{float:none;width:1644px;margin-left:0}table .span22{float:none;width:1724px;margin-left:0}table .span23{float:none;width:1804px;margin-left:0}table .span24{float:none;width:1884px;margin-left:0}.table tbody tr.success td{background-color:#dff0d8}.table tbody tr.error td{background-color:#f2dede}.table tbody tr.info td{background-color:#d9edf7}.dropdown,.dropup{position:relative}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu li>a:focus,.dropdown-menu li>a:hover,.dropdown-submenu:hover>a{text-decoration:none;color:#fff;background-color:#08c;background-color:#0081c2;background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,left top,left bottom,from(#08c),to(#0077b3));background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x}.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#08c;background-color:#0081c2;background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,left top,left bottom,from(#08c),to(#0077b3));background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x}.dropdown-menu .disabled>a,.dropdown-menu .disabled>a:hover{color:#999}.dropdown-menu .disabled>a:hover{text-decoration:none;background-color:transparent;cursor:default}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:"\2191"}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover .dropdown-menu{display:block}.dropdown-submenu>a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#ccc;margin-top:5px;margin-right:-10px}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown .dropdown-menu .nav-header{padding-left:20px;padding-right:20px}.typeahead{margin-top:2px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-large{padding:24px;border-radius:6px}.well-small{padding:9px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:700;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2}.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.btn{display:inline-block;padding:4px 14px;margin-bottom:0;font-size:14px;line-height:20px;text-align:center;vertical-align:middle;cursor:pointer;color:#333;text-shadow:0 1px 1px rgba(255,255,255,.75);background-color:#f5f5f5;background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e6e6e6));background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);border:1px solid #bbb;border-bottom-color:#a2a2a2;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.btn.active,.btn.disabled,.btn:active,.btn:hover,.btn[disabled]{color:#333;background-color:#e6e6e6}.btn:hover{color:#333;text-decoration:none;background-color:#e6e6e6;background-position:0 -15px;-webkit-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-color:#e6e6e6;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.btn.disabled,.btn[disabled]{cursor:default;background-color:#e6e6e6;background-image:none;opacity:.65;-webkit-box-shadow:none;box-shadow:none}.btn-large{padding:9px 14px;font-size:16px;line-height:normal;border-radius:5px}.btn-large [class^=icon-]{margin-top:2px}.btn-small{padding:3px 9px;font-size:12px;line-height:18px}.btn-small [class^=icon-]{margin-top:0}.btn-mini{padding:2px 6px;font-size:11px;line-height:16px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0;-webkit-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}.btn-danger.active,.btn-info.active,.btn-inverse.active,.btn-primary.active,.btn-success.active,.btn-warning.active{color:rgba(255,255,255,.75)}.btn{border-color:#c5c5c5;border-color:rgba(0,0,0,.15) rgba(0,0,0,.15) rgba(0,0,0,.25)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#006dcc;background-image:-o-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,left top,left bottom,from(#08c),to(#04c));background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25)}.btn-primary.active,.btn-primary.disabled,.btn-primary:active,.btn-primary:hover,.btn-primary[disabled]{color:#fff;background-color:#04c}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#faa732;background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,left top,left bottom,from(#fbb450),to(#f89406));background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25)}.btn-warning.active,.btn-warning.disabled,.btn-warning:active,.btn-warning:hover,.btn-warning[disabled]{color:#fff;background-color:#f89406}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#da4f49;background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,left top,left bottom,from(#ee5f5b),to(#bd362f));background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25)}.btn-danger.active,.btn-danger.disabled,.btn-danger:active,.btn-danger:hover,.btn-danger[disabled]{color:#fff;background-color:#bd362f}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#5bb75b;background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,left top,left bottom,from(#62c462),to(#51a351));background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25)}.btn-success.active,.btn-success.disabled,.btn-success:active,.btn-success:hover,.btn-success[disabled]{color:#fff;background-color:#51a351}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#49afcd;background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2f96b4));background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25)}.btn-info.active,.btn-info.disabled,.btn-info:active,.btn-info:hover,.btn-info[disabled]{color:#fff;background-color:#2f96b4}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#363636;background-image:-o-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,left top,left bottom,from(#444),to(#222));background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25)}.btn-inverse.active,.btn-inverse.disabled,.btn-inverse:active,.btn-inverse:hover,.btn-inverse[disabled]{color:#fff;background-color:#222}button.btn::-moz-focus-inner,input[type=submit].btn::-moz-focus-inner{padding:0;border:0}.btn-link,.btn-link:active{background-color:transparent;background-image:none;-webkit-box-shadow:none;box-shadow:none}.btn-link{border-color:transparent;cursor:pointer;color:#08c;border-radius:0}.btn-link:hover{color:#005580;text-decoration:underline;background-color:transparent}.btn-group{position:relative;font-size:0;white-space:nowrap}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{font-size:0;margin-top:10px;margin-bottom:10px}.btn-toolbar .btn-group{display:inline-block}.btn-toolbar .btn+.btn,.btn-toolbar .btn+.btn-group,.btn-toolbar .btn-group+.btn{margin-left:5px}.btn-group>.btn{position:relative;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu{font-size:14px}.btn-group>.btn-mini{font-size:11px}.btn-group>.btn-small{font-size:12px}.btn-group>.btn-large{font-size:16px}.btn-group>.btn:first-child{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{border-top-right-radius:4px;border-bottom-right-radius:4px}.btn-group>.btn.large:first-child{margin-left:0;border-top-left-radius:6px;border-bottom-left-radius:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{border-top-right-radius:6px;border-bottom-right-radius:6px}.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 1px 0 0 rgba(255,255,255,.125),inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.btn-group>.btn-mini+.dropdown-toggle{padding-left:5px;padding-right:5px}.btn-group>.btn-large+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret,.btn-mini .caret,.btn-small .caret{margin-top:6px}.btn-large .caret{border-left-width:5px;border-right-width:5px;border-top-width:5px}.dropup .btn-large .caret{border-bottom:5px solid #000;border-top:0}.btn-danger .caret,.btn-info .caret,.btn-inverse .caret,.btn-primary .caret,.btn-success .caret,.btn-warning .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block}.btn-group-vertical .btn{display:block;float:none;width:100%;border-radius:0}.btn-group-vertical .btn+.btn{margin-left:0;margin-top:-1px}.btn-group-vertical .btn:first-child{border-radius:4px 4px 0 0}.btn-group-vertical .btn:last-child{border-radius:0 0 4px 4px}.btn-group-vertical .btn-large:first-child{border-radius:6px 6px 0 0}.btn-group-vertical .btn-large:last-child{border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,.5);background-color:#fcf8e3;border:1px solid #fbeed5;border-radius:4px;color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-left:0;margin-bottom:20px;list-style:none}.nav>li>a{display:block}.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:700;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-left:15px;padding-right:15px;margin-bottom:0}.nav-list .nav-header,.nav-list>li>a{margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255,255,255,.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.2);background-color:#08c}.nav-list [class^=icon-]{margin-right:2px}.nav-list .divider{height:1px;margin:9px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-pills:after,.nav-pills:before,.nav-tabs:after,.nav-tabs:before{display:table;content:"";line-height:0}.nav-pills:after,.nav-tabs:after{clear:both}.nav-pills>li,.nav-tabs>li{float:left}.nav-pills>li>a,.nav-tabs>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{border-top-right-radius:4px;border-top-left-radius:4px}.nav-tabs.nav-stacked>li:last-child>a{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.nav-tabs.nav-stacked>li>a:hover{border-color:#ddd;z-index:2}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{border-radius:6px}.nav .dropdown-toggle .caret{border-top-color:#08c;border-bottom-color:#08c;margin-top:6px}.nav .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover{cursor:pointer}.nav-pills .open .dropdown-toggle,.nav-tabs .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open.active .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1}.tabs-stacked .open>a:hover{border-color:#999}.tabbable:after,.tabbable:before{display:table;content:"";line-height:0}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-left>.nav-tabs,.tabs-right>.nav-tabs{border-bottom:0}.pill-content>.pill-pane,.tab-content>.tab-pane{display:none}.pill-content>.active,.tab-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover{border-bottom-color:transparent;border-top-color:#ddd}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover{text-decoration:none;background-color:transparent;cursor:default}.navbar{overflow:visible;margin-bottom:20px;color:#555}.navbar-inner{min-height:40px;padding-left:20px;padding-right:20px;background-color:#fafafa;background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f2f2f2));background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;border-radius:4px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.065);box-shadow:0 1px 4px rgba(0,0,0,.065)}.navbar .container{width:auto}.nav-collapse.collapse{height:auto}.navbar .brand{float:left;display:block;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#555;text-shadow:0 1px 0 #fff}.navbar .brand:hover{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px}.navbar-link{color:#555}.navbar-link:hover{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-left:1px solid #f2f2f2;border-right:1px solid #fff}.navbar .btn,.navbar .btn-group{margin-top:6px}.navbar .btn-group .btn{margin:0}.navbar-form{margin-bottom:0}.navbar-form:after,.navbar-form:before{display:table;content:"";line-height:0}.navbar-form:after{clear:both}.navbar-form .checkbox,.navbar-form .radio,.navbar-form input,.navbar-form select{margin-top:5px}.navbar-form .btn,.navbar-form input,.navbar-form select{display:inline-block;margin-bottom:0}.navbar-form input[type=checkbox],.navbar-form input[type=image],.navbar-form input[type=radio]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:6px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{margin-bottom:0;padding:4px 14px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:400;line-height:1;border-radius:15px}.navbar-static-top{position:static;width:100%;margin-bottom:0}.navbar-static-top .navbar-inner{border-radius:0}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-bottom .navbar-inner,.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border:0}.navbar-fixed-bottom .navbar-inner,.navbar-fixed-top .navbar-inner{padding-left:0;padding-right:0;border-radius:0}.navbar-fixed-bottom .container,.navbar-fixed-top .container,.navbar-static-top .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1),0 1px 10px rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1),0 1px 10px rgba(0,0,0,.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1),0 -1px 10px rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1),0 -1px 10px rgba(0,0,0,.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#555;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{background-color:transparent;color:#333;text-decoration:none}.navbar .nav>.active>a,.navbar .nav>.active>a:focus,.navbar .nav>.active>a:hover{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,.125);box-shadow:inset 0 3px 8px rgba(0,0,0,.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#ededed;background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2f2f2),to(#e5e5e5));background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.075)}.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar:active,.navbar .btn-navbar:hover,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.25);box-shadow:0 1px 0 rgba(0,0,0,.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,.2);position:absolute;top:-7px;left:9px}.navbar .nav>li>.dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;top:-6px;left:10px}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{border-top:7px solid #ccc;border-top-color:rgba(0,0,0,.2);border-bottom:0;bottom:-7px;top:auto}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{border-top:6px solid #fff;border-bottom:0;bottom:-6px;top:auto}.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle,.navbar .nav li.dropdown.open>.dropdown-toggle{background-color:#e5e5e5;color:#555}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .nav>li>.dropdown-menu.pull-right,.navbar .pull-right>li>.dropdown-menu{left:auto;right:0}.navbar .nav>li>.dropdown-menu.pull-right:before,.navbar .pull-right>li>.dropdown-menu:before{left:auto;right:12px}.navbar .nav>li>.dropdown-menu.pull-right:after,.navbar .pull-right>li>.dropdown-menu:after{left:auto;right:13px}.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu,.navbar .pull-right>li>.dropdown-menu .dropdown-menu{left:auto;right:100%;margin-left:0;margin-right:-1px;border-radius:6px 0 6px 6px}.navbar-inverse{color:#999}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-o-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,left top,left bottom,from(#222),to(#111));background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover{color:#fff}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{background-color:transparent;color:#fff}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:focus,.navbar-inverse .nav .active>a:hover{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .divider-vertical{border-left-color:#111;border-right-color:#222}.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open>.dropdown-toggle{background-color:#111;color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1),0 1px 0 rgba(255,255,255,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.1),0 1px 0 rgba(255,255,255,.15);-webkit-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query.focused,.navbar-inverse .navbar-search .search-query:focus{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,.15);box-shadow:0 0 3px rgba(0,0,0,.15);outline:0}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#0e0e0e;background-image:-o-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,left top,left bottom,from(#151515),to(#040404));background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25)}.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb li{display:inline-block;text-shadow:0 1px 0 #fff}.breadcrumb .divider{padding:0 5px;color:#ccc}.breadcrumb .active{color:#999}.modal-open .dropdown-menu{z-index:2050}.modal-open .popover{z-index:2060}.modal-open .tooltip{z-index:2080}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8}.modal{position:fixed;top:50%;left:50%;z-index:1050;overflow:auto;width:560px;margin:-250px 0 0 -280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.3);border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,.3);box-shadow:0 3px 7px rgba(0,0,0,.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{-webkit-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out;top:-25%}.modal.fade.in{top:50%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{overflow-y:auto;max-height:400px;padding:15px}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:after,.modal-footer:before{display:table;content:"";line-height:0}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0}.tooltip.in{opacity:.8}.tooltip.top{margin-top:-3px}.tooltip.right{margin-left:3px}.tooltip.bottom{margin-top:3px}.tooltip.left{margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#eee;text-align:center;text-decoration:none;background-color:#333;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#333}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#333}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#333}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#333}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;width:236px;padding:1px;background-color:#fff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-bottom:10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-right:10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover-content ol,.popover-content p,.popover-content ul{margin-bottom:0}.popover .arrow,.popover .arrow:after{position:absolute;display:inline-block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow:after{content:"";z-index:-1}.popover.top .arrow{bottom:-10px;left:50%;margin-left:-10px;border-width:10px 10px 0;border-top-color:#fff}.popover.top .arrow:after{border-width:11px 11px 0;border-top-color:rgba(0,0,0,.25);bottom:-1px;left:-11px}.popover.right .arrow{top:50%;left:-10px;margin-top:-10px;border-width:10px 10px 10px 0;border-right-color:#fff}.popover.right .arrow:after{border-width:11px 11px 11px 0;border-right-color:rgba(0,0,0,.25);bottom:-11px;left:-1px}.popover.bottom .arrow{top:-10px;left:50%;margin-left:-10px;border-width:0 10px 10px;border-bottom-color:#fff}.popover.bottom .arrow:after{border-width:0 11px 11px;border-bottom-color:rgba(0,0,0,.25);top:-1px;left:-11px}.popover.left .arrow{top:50%;right:-10px;margin-top:-10px;border-width:10px 0 10px 10px;border-left-color:#fff}.popover.left .arrow:after{border-width:11px 0 11px 11px;border-left-color:rgba(0,0,0,.25);bottom:-11px;right:-1px}.badge,.label{font-size:11.844px;font-weight:700;line-height:14px;color:#fff;vertical-align:baseline;white-space:nowrap;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#999}.label{padding:1px 4px 2px;border-radius:3px}.badge{padding:1px 9px 2px;border-radius:9px}a.badge:hover,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.badge-important,.label-important{background-color:#b94a48}.badge-important[href],.label-important[href]{background-color:#953b39}.badge-warning,.label-warning{background-color:#f89406}.badge-warning[href],.label-warning[href]{background-color:#c67605}.badge-success,.label-success{background-color:#468847}.badge-success[href],.label-success[href]{background-color:#356635}.badge-info,.label-info{background-color:#3a87ad}.badge-info[href],.label-info[href]{background-color:#2d6987}.badge-inverse,.label-inverse{background-color:#333}.badge-inverse[href],.label-inverse[href]{background-color:#1a1a1a}.btn .badge,.btn .label{position:relative;top:-1px}.btn-mini .badge,.btn-mini .label{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f7f7f7;background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#f9f9f9));background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);border-radius:4px}.progress .bar{width:0%;height:100%;color:#fff;float:left;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#0e90d2;background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,left top,left bottom,from(#149bdf),to(#0480be));background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,.15),inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 1px 0 0 rgba(0,0,0,.15),inset 0 -1px 0 rgba(0,0,0,.15)}.progress-striped .bar{background-color:#149bdf;background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress .bar-danger,.progress-danger .bar{background-color:#dd514c;background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,left top,left bottom,from(#ee5f5b),to(#c43c35));background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress .bar-success,.progress-success .bar{background-color:#5eb95e;background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,left top,left bottom,from(#62c462),to(#57a957));background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x}.progress-striped .bar-success,.progress-success.progress-striped .bar{background-color:#62c462;background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress .bar-info,.progress-info .bar{background-color:#4bb1cf;background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#339bb9));background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress .bar-warning,.progress-warning .bar{background-color:#faa732;background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,left top,left bottom,from(#fbb450),to(#f89406));background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x}.progress-striped .bar-warning,.progress-warning.progress-striped .bar{background-color:#fbb450;background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}[class*=" icon-"],[class^=icon-]{display:inline-block;width:16px;height:16px;line-height:17px;font-size:16px;vertical-align:text-top}.btn[disabled] [class*=" icon-"],.btn[disabled] [class^=icon-],.disabled [class*=" icon-"],.disabled [class^=icon-]{color:grey}.btn[disabled] [class*=" icon-"].icon-white,.btn[disabled] [class^=icon-].icon-white,.disabled [class*=" icon-"].icon-white,.disabled [class^=icon-].icon-white{color:#fff}.icon-folder,.icon-folder-add,.icon-list{line-height:18px;font-size:18px;margin-top:-1px;margin-left:-1px;width:17px}.iconsize50{line-height:50px;font-size:50px;width:50px;height:50px}.iconsize24{line-height:24px;font-size:24px}.iconsize20{line-height:20px;font-size:20px}.icon-white,.nav>.active>a>[class*=" icon-"],.nav>.active>a>[class^=icon-]{color:#fff}.g-ui-menu .e-item:hover [class*=" icon-"],.g-ui-menu .e-item:hover [class^=icon-]{color:#fff}.icon-none{background-image:none!important}.icon-checkbox-checked,.icon-checkbox-partial,.icon-checkbox-unchecked,.icon-radio-checked,.icon-radio-unchecked{cursor:pointer;color:#555;font-size:1em}.icon-checkbox-checked:active,.icon-checkbox-checked:hover,.icon-checkbox-partial:active,.icon-checkbox-partial:hover,.icon-checkbox-unchecked:active,.icon-checkbox-unchecked:hover,.icon-radio-checked:active,.icon-radio-checked:hover,.icon-radio-unchecked:active,.icon-radio-unchecked:hover{color:#000}.icon-white.icon-checkbox-checked,.icon-white.icon-checkbox-partial,.icon-white.icon-checkbox-unchecked,.icon-white.icon-radio-checked,.icon-white.icon-radio-unchecked{color:#eee}.icon-white.icon-checkbox-checked:active,.icon-white.icon-checkbox-checked:hover,.icon-white.icon-checkbox-partial:active,.icon-white.icon-checkbox-partial:hover,.icon-white.icon-checkbox-unchecked:active,.icon-white.icon-checkbox-unchecked:hover,.icon-white.icon-radio-checked:active,.icon-white.icon-radio-checked:hover,.icon-white.icon-radio-unchecked:active,.icon-white.icon-radio-unchecked:hover{color:#fff}.iconcolor-display-none{display:none}.iconcolor-green{color:green}.iconcolor-red{color:red}.iconcolor-white{color:#fff}.iconcolor-grey{color:#aaa}.denied-by-browser{cursor:default}.denied-by-browser .icon-checkbox-checked,.denied-by-browser icon-checkbox-unchecked{cursor:default}.down-mini,.right-mini{width:16px;line-height:20px}@-webkit-keyframes rotation{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotation{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.icon-spinner{font-family:Arial;height:11px;width:11px;margin-right:-1px;background:0 0;border:3px solid #aaa;border-top-color:#333;border-radius:100%;-webkit-animation:none;animation:none}.icon-spinner:before{content:""}.icon-spinner.animated{border-color:transparent;border-top-color:#999;-webkit-animation:rotation .8s infinite ease-in-out;animation:rotation .8s infinite ease-in-out}.icon-spinner.big{height:13px;width:13px;margin-top:-2px;margin-left:-2px}.icon-spinner.icon-white,.icon-spinner.white{border-color:#fff;border-top-color:#999}.icon-spinner.icon-white.animated,.icon-spinner.white.animated{border-color:transparent;border-top-color:#fff}html.no-cssanimations .icon-spinner{background:0 0;background-image:url(images/sync.png);background-repeat:no-repeat;border:none;-webkit-box-shadow:none;box-shadow:none;height:16px;width:16px;font-family:Arial}html.no-cssanimations .icon-spinner:before{content:""}html.no-cssanimations .icon-spinner.animated{background:0 0;background-image:url(images/sync.gif)}body{background-color:transparent}label{cursor:pointer}label.inline,span.inline{display:inline-block}.close-custom{float:right;font-size:20px;font-weight:700;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2}.close-custom:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4}button.close-custom{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.minimize-custom{border:0 solid #333;border-bottom-width:3px;display:inline-block;float:right;height:20px;width:16px;font-size:20px;font-weight:700;line-height:20px;margin-right:15px;cursor:pointer}.legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}.legend small{font-size:15px;color:#999}.legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.input-append .uneditable-input,.input-append input,.input-append select{border-radius:3px}select{width:223px}.btn .svg-icon{vertical-align:middle}.btn-small.btn-small-small{padding:3px 9px;font-size:11px;line-height:11px}.btn.btn-thin{padding:4px 9px}.btn.btn-thin-2{padding:4px 7px}.btn.btn-nowrap{white-space:nowrap}.btn.btn-ellipsis{-o-text-overflow:ellipsis;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.btn.btn-transparent{background:0 0!important;border-color:transparent!important;text-shadow:none!important;-webkit-box-shadow:none!important;box-shadow:none!important;opacity:.6}.btn.btn-transparent [class^=icon-]{width:19px;height:19px;line-height:20px;font-size:19px}.btn.btn-transparent:hover{opacity:1}.btn-group.open .btn.btn-transparent.dropdown-toggle{color:#bd362f}.btn-group.open .btn.btn-transparent.dropdown-toggle .caret{border-top-color:#bd362f}.btn-group.open .btn.btn-transparent.dropdown-toggle [class^=icon-]:before{color:#bd362f}.btn.btn-narrow{padding-left:12px;padding-right:12px}.btn-group.btn-group-custom-margin>.btn+.btn{margin-left:0}.btn.btn-large{font-size:17px}.dropdown-menu{border-radius:3px}.btn-group+.btn-group{margin-left:3px}.btn{border-radius:3px;background-image:none;padding-left:13px;padding-right:13px;border-color:rgba(0,0,0,.25) rgba(0,0,0,.25) rgba(0,0,0,.25)}.btn.disabled,.btn[disabled]{opacity:.8;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}html.textshadow .btn{text-shadow:0 1px 0 #fff}html.textshadow .btn.btn-danger,html.textshadow .btn.btn-primary,html.textshadow .btn.btn-success,html.textshadow .btn.btn-warning{text-shadow:0 1px 0 rgba(0,0,0,.3)}.btn.btn-dark-disabled-border.disabled,.btn.btn-dark-disabled-border[disabled]{border-color:#aaa}.btn.btn-success{background-color:#84ab04}.btn-toolbar{margin-top:0;margin-bottom:0}.dropdown-menu{border-radius:0;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.2);box-shadow:0 1px 2px rgba(0,0,0,.2)}.tooltip{font-size:14px;z-index:2000!important;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.tooltip.in{opacity:1}.tooltip .tooltip-inner{max-width:380px;text-shadow:0 0 5px rgba(0,0,0,.2);padding:5px 10px;border-radius:2px;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.tooltip .tooltip-big{font-size:18px;padding:0 10px;white-space:nowrap}.popover{width:auto;min-width:250px;max-width:550px}.popover .popover-content pre{border:none;background:rgba(0,0,0,0);padding:0;word-break:normal}.btn-group>.btn{border-radius:0!important}.btn-group>.btn.single{border-radius:3px!important}.btn-group>.btn.first{border-top-left-radius:3px!important;border-bottom-left-radius:3px!important}.btn-group>.btn.last{border-top-right-radius:3px!important;border-bottom-right-radius:3px!important}.btn-group+.btn-group{margin-left:0}.btn-group{margin-right:3px}.btn-group.btn-group-last{margin-right:0}.dropdown.colored-toggle.open .btn.dropdown-toggle{color:#bd362f}.dropdown.colored-toggle.open .btn.dropdown-toggle .caret{border-top-color:#bd362f}.dropdown.colored-toggle.open .btn.dropdown-toggle [class^=icon-]:before{color:#bd362f}input[type=email],input[type=password],input[type=search],input[type=text],textarea{border:1px solid #ccc}input[type=email]:focus,input[type=password]:focus,input[type=search]:focus,input[type=text]:focus,textarea:focus{background-color:#fff;border:1px solid #999;-webkit-box-shadow:none;box-shadow:none}input[type=email],input[type=password],input[type=search],input[type=text]{height:20px;line-height:20px}select{border:1px solid #ccc}.alert a{text-decoration:underline}.alert.alert-null-left-margin{margin-left:0}.alert a{color:#c09853}.alert.alert-info a{color:#3a87ad}.alert.alert-error a{color:#b94a48}.nav-tabs>li>a{color:#555}.popover{z-index:2000}html.no-rgba .modal{border-width:0!important}.modal-backdrop,.modal-backdrop.fade.in{opacity:.2;-webkit-transform:none;-ms-transform:none;transform:none}.popups{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1100;overflow:auto}.popups .modal{position:static;z-index:1101;margin:5% auto;background-color:transparent;overflow:hidden;-webkit-box-shadow:0 5px 80px rgba(0,0,0,.3);box-shadow:0 5px 80px rgba(0,0,0,.3)}.popups .modal .modal-body{background-color:#fff;max-height:none}.modal.fade{-webkit-transition:none;-o-transition:none;transition:none;top:0}.modal.fade.in{top:0}.modal.loginAdminContent .modal-body,.modal.loginContent .modal-body{background-color:transparent!important}.picker.modal-dialog-bg,.picker.picker-dialog-bg{z-index:2000!important}.picker.modal-dialog,.picker.picker-dialog{z-index:2001!important}.form-horizontal.long-label .control-group .control-label{width:160px}.form-horizontal.long-label .control-group .controls{margin-left:180px}.control-label.remove-padding-top{padding-top:0}html.rl-mobile .popups .modal{width:100%!important;width:calc(100% - 20px)!important}html.rl-mobile .b-settings-content{padding:10px;padding-left:20px}html.rl-mobile .list-table{width:100%;max-width:100%}html.rl-mobile .form-horizontal .control-group .control-label{text-align:left;float:none}html.rl-mobile .form-horizontal .control-group .controls{margin-left:0}.close-input-wrp{display:inline-block;position:relative}.close-input-wrp input{padding-right:15px}.close-input-wrp .close{position:absolute;right:0;top:5px;margin:0 7px;z-index:100;vertical-align:middle;opacity:.4}.close-input-wrp .close:hover{opacity:.6}.inputosaurus-container{width:99%;line-height:20px;padding:2px;border:1px solid #ccc;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;-webkit-transition:border linear .2s,-webkit-box-shadow linear .2s;transition:border linear .2s,-webkit-box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s,-webkit-box-shadow linear .2s}.inputosaurus-container.inputosaurus-focused{background-color:#fff;border:1px solid #999;-webkit-box-shadow:none;box-shadow:none}.inputosaurus-container li{max-width:500px;background-color:#eee;border:1px solid #aaa;line-height:18px;padding:2px 15px 2px 5px;margin:2px 2px 2px;color:#555;z-index:100;position:relative}.inputosaurus-container li.ui-draggable.ui-draggable-dragging{z-index:101}.inputosaurus-container li a{color:#999;font-size:12px;position:absolute;top:1px;right:2px}.inputosaurus-container li a:hover{color:#666}.inputosaurus-container li span{padding-right:3px}.inputosaurus-container li.inputosaurus-required{padding-right:5px}.inputosaurus-container li.inputosaurus-selected{background-color:#ddd}.inputosaurus-container li.pgp{background-color:#e5f3e2}.inputosaurus-container .inputosaurus-input{margin:1px 10px 1px 0;height:22px}.inputosaurus-container .inputosaurus-input input{border:0;height:21px;padding-left:0}.ui-autocomplete{z-index:2000}.inputosaurus-fake-span{position:absolute;top:0;left:-5000px}.cke_chrome{border:1px solid #ccc!important}.cke_toolgroup{padding-right:0!important;background:#fbfbfb!important}.cke_combo_button,.cke_toolgroup{border:1px solid #a6a6a6!important}.cke_top{padding:6px 4px 1px 6px!important;-webkit-box-shadow:none!important;box-shadow:none!important;border-bottom:1px solid #b6b6b6!important;background:#f0f0f0!important}.cke_combo_off a.cke_combo_button:active,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:hover,.cke_combo_on a.cke_combo_button{padding:1px!important;margin-left:0!important}.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after,.cke_toolgroup a.cke_button:last-child:after{border:none!important;height:0!important;width:0!important;margin:0!important;padding:0!important}.cke_button_on{background:#ddd!important}.cke_combo{margin-top:1px!important}.cke_combo__fontsize{margin-left:3px!important}.cke_combo__fontsize .cke_combo_text{width:40px!important}.cke_combo_text{line-height:24px!important;padding-left:8px!important}.cke_combo_button{background:#fbfbfb!important}.cke_source{font-family:Monaco,Menlo,Consolas,'Courier New',monospace!important;padding:10px!important;padding-right:0!important;-webkit-box-shadow:none!important;box-shadow:none!important}.cke_plain{background-color:#fff;outline:0;overflow:auto;z-index:1;margin:0;border:0;padding:10px;padding-right:0;white-space:pre-wrap;font-family:Monaco,Menlo,Consolas,'Courier New',monospace;font-size:13px;line-height:16px;color:#333;resize:none;border-radius:0;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_plain:focus,.cke_source:focus{border:0}.b-compose .cke_chrome{border-right:0;border-left:0;border-bottom:0;-webkit-box-shadow:none;box-shadow:none}.cke_wysiwyg_div{padding:10px!important;font-family:arial,sans-serif;font-size:13px;line-height:16px;color:#333}.cke_wysiwyg_div ul{padding-left:40px}.cke_wysiwyg_div ul li{list-style-type:disc!important}.cke_wysiwyg_div ol{padding-left:40px}.cke_wysiwyg_div ol li{list-style-type:decimal!important}.cke_wysiwyg_div code,.cke_wysiwyg_div pre{margin:0;padding:0;background:#fff;border:none;border-radius:0;font-family:Monaco,Menlo,Consolas,'Courier New',monospace;display:block;word-break:normal;word-wrap:break-word;background-color:#f9f9f9}.cke_wysiwyg_div code{display:inline;padding:2px 5px}.cke_wysiwyg_div pre{padding:5px 10px;border-radius:5px;background-color:#f9f9f9}.cke_wysiwyg_div pre>code{padding:0}.cke_wysiwyg_div blockquote{border:0;border-left:solid 2px #444;margin:5px 0 5px 5px;padding-left:5px}.cke_wysiwyg_div blockquote p{margin:0 0 10px;font-size:14px;line-height:20px}.cke_wysiwyg_div img{vertical-align:bottom}.cke_wysiwyg_div a{color:#00f;text-decoration:underline}.cke_wysiwyg_div a:visited{color:#609}.cke_wysiwyg_div a:active{color:red}.cke_dialog a:hover{text-decoration:none}.cke_dialog .cke_dialog_ui_labeled_content{margin-top:5px;margin-bottom:5px}.cke_dialog .cke_dialog_ui_input_select,.cke_dialog .cke_dialog_ui_input_text,.cke_dialog .cke_dialog_ui_input_textarea{-webkit-box-shadow:none;box-shadow:none;border-radius:2px}.cke_dialog .cke_dialog_ui_input_select:focus,.cke_dialog .cke_dialog_ui_input_text:focus,.cke_dialog .cke_dialog_ui_input_textarea:focus{outline:0;border:1px solid #999}.cke_dialog .cke_dialog_ui_input_select,.cke_dialog .cke_dialog_ui_input_text{height:25px;line-height:25px}.g-ui-user-select-allow{webkit-touch-callout:inherit;-webkit-user-select:inherit;-moz-user-select:inherit;-ms-user-select:inherit;user-select:inherit;standard-user-select:inherit;touch-callout:inherit}.g-ui-clearfix:after,.g-ui-clearfix:before{display:table;content:"";line-height:0}.g-ui-clearfix:after{clear:both}.g-ui-link{color:#369;text-decoration:underline;cursor:pointer;padding:2px}.g-ui-link:focus{outline:1px;outline-style:dotted}.g-ui-min-height-300{min-height:300px}.g-ui-100-proc-height{height:100%}.g-ui-absolute-reset{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0;border:0;z-index:0}.g-ui-menu{max-height:400px;max-width:300px;overflow-y:auto;overflow-x:hidden}.g-ui-menu .e-link{text-decoration:none;cursor:pointer}.g-ui-menu .e-item.selected>.e-link{background-color:#eee!important}.g-ui-menu .e-item>.e-link:focus,.g-ui-menu .e-item>.e-link:hover{background-color:#555;background-image:none;color:#fff}.g-ui-menu .e-item.disabled>.e-link{cursor:not-allowed;background-color:#fff;background-image:none;color:grey}.g-ui-menu .e-item.disabled [class^=icon-]{color:grey}.g-ui-table{display:table;width:100%}.g-ui-table .e-row{display:table-row}.g-ui-table .e-cell{display:table-cell;vertical-align:top;text-align:left}.g-ui-height-100proc{height:100%}.g-ui-resizable-delimiter-highlight{border:none;border-right:6px solid #aaa}.e-pagenator .e-page{display:inline-block;color:#999;text-decoration:none;font-size:22px;padding:3px;cursor:pointer}.e-pagenator .e-page:hover .e-page-number{color:#555}.e-pagenator .e-page.current .e-page-number{font-size:25px;color:#333;border-bottom:2px solid #000}html.rgba .g-ui-resizable-delimiter-highlight{border-right-color:rgba(0,0,0,.2)}.settings-saved-trigger{display:inline-block;line-height:17px;font-size:16px}.settings-saved-trigger .animated{color:green}.settings-saved-trigger .success{color:green;-webkit-transition:opacity .5s linear;-o-transition:opacity .5s linear;transition:opacity .5s linear;opacity:0}.settings-saved-trigger .error{color:red;-webkit-transition:opacity .5s linear;-o-transition:opacity .5s linear;transition:opacity .5s linear;opacity:0}.settings-saved-trigger .visible{opacity:1}.settings-saved-trigger-input.success{border-color:green!important;-webkit-transition:border-color .5s linear;-o-transition:border-color .5s linear;transition:border-color .5s linear}.settings-saved-trigger-input.error{border-color:red!important;-webkit-transition:border-color .5s linear;-o-transition:border-color .5s linear;transition:border-color .5s linear}.display-none{display:none}.e-spinner{display:none}.e-mobile-switcher,.e-powered{margin-top:8px;color:#333}.e-mobile-switcher a,.e-powered a{color:#333;text-decoration:underline}.e-mobile-switcher a:hover,.e-powered a:hover{color:#333}.e-languages{margin-top:8px;color:#333}.e-languages .flag-name{color:#333;border-bottom:1px dashed #333;cursor:pointer;padding:2px 0}.e-languages .flag-name:focus{outline:1px;outline-style:dotted}html.cssanimations .e-spinner{display:block;margin:5px auto 0;width:100px;text-align:center}html.cssanimations .e-spinner .e-bounce{width:15px;height:15px;background-color:#ddd;margin:0 5px;-webkit-box-shadow:0 0 3px rgba(0,0,0,.3);box-shadow:0 0 3px rgba(0,0,0,.3);border-radius:100%;display:inline-block;-webkit-animation:bouncedelay 1.4s infinite ease-in-out;animation:bouncedelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}html.cssanimations .e-spinner .bounce1{-webkit-animation-delay:-.32s;animation-delay:-.32s}html.cssanimations .e-spinner .bounce2{-webkit-animation-delay:-.16s;animation-delay:-.16s}@-webkit-keyframes bouncedelay{0%,100%,80%{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes bouncedelay{0%,100%,80%{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}.command.command-disabled.hide-on-disabled-command{display:none}html{margin:0;padding:0;overflow:hidden;font-family:Arial,Verdana,Geneva,sans-serif;height:100%}body{margin:0;padding:0;overflow:hidden;background-color:#e3e3e3;font-family:Arial,Verdana,Geneva,sans-serif;-webkit-touch-callout:none;position:absolute;top:0;left:0;bottom:0;right:0;height:100%}textarea{resize:none}option:disabled{color:#aaa;cursor:not-allowed}body:before{content:"";position:fixed;top:-10px;left:0;width:100%;height:8px;z-index:100;-webkit-box-shadow:0 0 10px rgba(0,0,0,.6);box-shadow:0 0 10px rgba(0,0,0,.6)}*{outline:0}select:focus{outline:0}html.mobile *,html.rl-mobile *{-webkit-tap-highlight-color:transparent}input[type=search]{-webkit-box-sizing:content-box;box-sizing:content-box}input::-ms-clear,input::-ms-reveal{display:none}#rl-bg{z-index:-1;position:absolute;left:0;right:0;top:0;bottom:0}#rl-content{height:100%;width:100%}#rl-center{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0;border:0;z-index:0;min-width:600px;min-height:400px}html.rl-mobile #rl-center{min-width:250px;min-height:250px}html.rl-mobile.rl-left-panel-enabled #rl-right{right:-150px}html.rl-mobile.rl-left-panel-disabled #rl-right{left:5px!important}#rl-top{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0;border:0;z-index:0;bottom:auto;z-index:2}#rl-bottom{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0;border:0;z-index:0;top:auto;z-index:1}#rl-left{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0;border:0;z-index:0;width:200px;min-width:60px}#rl-right{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0;border:0;z-index:0;z-index:1;left:200px}#rl-sub-left{position:absolute;top:0;bottom:0;left:0;width:500px}#rl-sub-right{position:absolute;top:0;bottom:0;right:0;left:500px}#rl-sub-right .b-message-view-backdrop{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4);z-index:10}#rl-sub-right .b-message-view-backdrop .backdrop-message-wrp{position:absolute;top:calc(50% - 50px);left:0;right:0;text-align:center}#rl-sub-right .b-message-view-backdrop .backdrop-message-wrp .backdrop-message{display:inline-block;color:#fff;font-size:20px;line-height:30px;background:rgba(0,0,0,.6);padding:15px;border-radius:5px;text-shadow:0 1px 1px #000}html.ssm-state-desktop-large #rl-left{width:220px}html.ssm-state-desktop-large #rl-right{left:220px}html.ssm-state-desktop-large #rl-sub-left{width:500px}html.ssm-state-desktop-large #rl-sub-right{left:500px}html.ssm-state-desktop-large .b-compose.modal{width:1000px}html.ssm-state-desktop-large .b-contacts-content.modal{width:900px}html.ssm-state-desktop #rl-left{width:200px}html.ssm-state-desktop #rl-right{left:200px}html.ssm-state-desktop #rl-sub-left{width:400px}html.ssm-state-desktop #rl-sub-right{left:400px}html.ssm-state-desktop .b-compose.modal{width:1000px}html.ssm-state-desktop .b-contacts-content.modal{width:900px}html.ssm-state-mobile #rl-left,html.ssm-state-tablet #rl-left{width:155px}html.ssm-state-mobile #rl-right,html.ssm-state-tablet #rl-right{left:155px}html.ssm-state-mobile #rl-sub-left,html.ssm-state-tablet #rl-sub-left{width:310px}html.ssm-state-mobile #rl-sub-left .messageList .inputSearch,html.ssm-state-tablet #rl-sub-left .messageList .inputSearch{width:200px}html.ssm-state-mobile #rl-sub-right,html.ssm-state-tablet #rl-sub-right{left:310px}html.ssm-state-mobile .b-compose.modal,html.ssm-state-tablet .b-compose.modal{width:720px}html.ssm-state-mobile .b-contacts-content.modal,html.ssm-state-tablet .b-contacts-content.modal{width:700px}html.ssm-state-mobile .b-contacts-content.modal .contactValueInput,html.ssm-state-tablet .b-contacts-content.modal .contactValueInput{width:200px}html.ssm-state-tablet .b-compose.modal{width:720px}html.ssm-state-tablet .b-contacts-content.modal{width:800px}html.ssm-state-tablet .b-contacts-content.modal .contactValueInput{width:250px}.show-on-panel-disabled{display:none}html.rl-left-panel-disabled #rl-left{width:60px!important}html.rl-left-panel-disabled #rl-left .show-on-panel-disabled{display:block}html.rl-left-panel-disabled #rl-left .opacity-on-panel-disabled{opacity:.3}html.rl-left-panel-disabled #rl-left .visibility-hidden-on-panel-disabled{visibility:hidden}html.rl-left-panel-disabled #rl-left .hide-on-panel-disabled{display:none}html.rl-left-panel-disabled #rl-left.ui-state-disabled{opacity:1}html.rl-left-panel-disabled #rl-right{left:60px!important}html.rl-left-panel-short #rl-left{width:60px!important}html.rl-left-panel-short #rl-right{left:60px!important}html.rl-left-panel-none #rl-left{width:10px!important}html.rl-left-panel-none #rl-right{left:10px!important}.ui-resizable-helper-w{border-right:5px solid #777;border-right-color:rgba(255,255,255,.7)}.ui-resizable-helper-h{border-bottom:5px solid #ccc;border-bottom-color:rgba(0,0,0,.3)}.ui-resizable-handle:hover{background:#aaa;background:rgba(255,255,255,.5)}html.rl-no-preview-pane #rl-sub-left{right:5px!important;width:inherit}html.rl-no-preview-pane #rl-sub-left .messageList .inputSearch{width:300px!important}html.rl-no-preview-pane #rl-sub-right{left:0!important}html.rl-no-preview-pane #rl-right .ui-resizable-handle{display:none!important}html.rl-side-preview-pane #rl-right .ui-resizable-handle{display:none!important}html.rl-bottom-preview-pane #rl-sub-left{right:5px!important;width:inherit}html.rl-bottom-preview-pane #rl-sub-left .b-message-list-wrapper{bottom:inherit;height:300px;-webkit-box-shadow:none;box-shadow:none}html.rl-bottom-preview-pane #rl-sub-left .messageList .inputSearch{width:300px!important}html.rl-bottom-preview-pane #rl-sub-right{left:0!important}html.rl-bottom-preview-pane #rl-sub-right .messageView .top-toolbar{display:none}html.rl-bottom-preview-pane #rl-sub-right .b-message-view-wrapper{top:356px;left:0;right:5px;-webkit-box-shadow:none;box-shadow:none}.visible-on-ctrl,.visible-on-ctrl-btn{display:none}.hidden-on-ctrl-btn{display:inline-block}html.rl-ctrl-key-pressed .visible-on-ctrl{display:inline-block}html.rl-ctrl-key-pressed .btn-group.open .visible-on-ctrl-btn{display:inline-block}html.rl-ctrl-key-pressed .hidden-on-ctrl{display:none}html.rl-ctrl-key-pressed .btn-group.open .hidden-on-ctrl-btn{display:none}#rl-loading,#rl-loading-error{position:absolute;font-size:30px;line-height:130%;top:50%;width:100%;height:65px;margin:0;margin-top:-60px;background-color:transparent;text-align:center;color:#000}#rl-loading-error{background-image:none;display:none}#rl-loading-error-additional{margin-top:20px;font-size:20px}#rl-app{display:none}#rl-check{display:none}.rl-content-show{display:block!important}html.rl-mobile .hide-on-mobile{display:none!important}.show-on-mobile{display:none!important}html.rl-mobile .show-on-mobile{display:initial!important}html.rl-mobile .width100-on-mobile{width:100%!important}.nano.scroller-shadow-bottom:after,.nano.scroller-shadow-top:before{content:"";position:absolute;left:0;width:100%;height:10px;z-index:102;-webkit-box-shadow:0 0 20px rgba(0,0,0,.4);box-shadow:0 0 20px rgba(0,0,0,.4)}.nano.scroller-shadow-top:before{top:-10px}.nano.scroller-shadow-bottom:after{bottom:-10px}.nano.fixIndex.scroller-shadow-bottom:after,.nano.fixIndex.scroller-shadow-top:before{z-index:98}.e-component.e-select select:focus{outline:1px;outline-style:dotted}.e-component.e-checkbox{margin-bottom:6px;margin-left:-2px;padding:2px;cursor:pointer}.e-component.e-checkbox:focus{outline:1px;outline-style:dotted}.e-component.e-checkbox .e-checkbox-icon{padding:1px 0 0 1px}.e-component.e-checkbox.disabled{cursor:default;color:#999;outline:0;outline-style:none}.e-component.e-radio{cursor:pointer}.e-component.e-radio.disabled{cursor:default;color:#999}.e-component.material-design.e-checkbox{margin-top:2px;padding:2px 2px 1px 2px}.e-component.material-design.e-checkbox .sub-checkbox-container{display:inline-block;position:relative;-webkit-transform:translateZ(0);transform:translateZ(0);width:18px;height:18px;vertical-align:bottom;margin-bottom:3px}.e-component.material-design.e-checkbox .sub-label{padding-left:12px}.e-component.material-design.e-checkbox .sub-checkbox{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;margin-top:1px;top:0;left:0;width:18px;height:18px;border:solid 2px #999;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}.e-component.material-design.e-checkbox .sub-checkbox.checked{border-top:none;border-left:none;border-color:#0f9d58;top:-1px;left:5px;width:10px;height:18px;border-right-width:2px;border-bottom-width:2px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.e-component.material-design.e-checkbox .sub-checkbox.checked.box{border:solid 2px;-webkit-animation:box-shrink 140ms ease-out forwards;animation:box-shrink 140ms ease-out forwards}.e-component.material-design.e-checkbox .sub-checkbox.checked.checkmark{border-left:none;border-top:none;-webkit-animation:checkmark-expand 140ms ease-out forwards;animation:checkmark-expand 140ms ease-out forwards}.e-component.material-design.e-checkbox .sub-checkbox.unchecked.box{-webkit-animation:box-expand 140ms ease-out forwards;animation:box-expand 140ms ease-out forwards}.e-component.material-design.e-checkbox .sub-checkbox.unchecked.checkmark{border-left:none;border-top:none;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);-webkit-animation:checkmark-shrink 140ms ease-out forwards;animation:checkmark-shrink 140ms ease-out forwards}.e-component.material-design.e-checkbox.disabled .sub-checkbox{border-color:#aaa;cursor:not-allowed;color:#aaa}.e-component.material-design.e-checkbox.disabled .sub-label{cursor:not-allowed;color:#aaa}@-webkit-keyframes box-shrink{0%{top:0;left:0;width:18px;height:18px;border:solid 2px #999;-webkit-transform:rotate(0);transform:rotate(0)}100%{top:13px;left:5px;width:4px;height:4px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}}@keyframes box-shrink{0%{top:0;left:0;width:18px;height:18px;border:solid 2px #999;-webkit-transform:rotate(0);transform:rotate(0)}100%{top:13px;left:5px;width:4px;height:4px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}}@-webkit-keyframes checkmark-expand{0%{top:13px;left:5px;width:4px;height:4px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}100%{top:-1px;left:5px;width:10px;height:18px;border-right-width:2px;border-bottom-width:2px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}}@keyframes checkmark-expand{0%{top:13px;left:5px;width:4px;height:4px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}100%{top:-1px;left:5px;width:10px;height:18px;border-right-width:2px;border-bottom-width:2px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}}@-webkit-keyframes checkmark-shrink{0%{top:-1px;left:5px;width:10px;height:18px;border-right-width:2px;border-bottom-width:2px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}100%{top:13px;left:5px;width:4px;height:4px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}}@keyframes checkmark-shrink{0%{top:-1px;left:5px;width:10px;height:18px;border-right-width:2px;border-bottom-width:2px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}100%{top:13px;left:5px;width:4px;height:4px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}}@-webkit-keyframes box-expand{0%{top:13px;left:5px;width:4px;height:4px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}100%{top:0;left:0;width:18px;height:18px;border:solid 2px #999;-webkit-transform:rotate(0);transform:rotate(0)}}@keyframes box-expand{0%{top:13px;left:5px;width:4px;height:4px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}100%{top:0;left:0;width:18px;height:18px;border:solid 2px #999;-webkit-transform:rotate(0);transform:rotate(0)}}.b-system-drop-down .b-toolbar{position:absolute;top:0;right:0;height:30px;padding:10px 8px;z-index:103}.b-system-drop-down .e-facebook-name{display:inline-block;padding-top:4px}.b-system-drop-down .btn.system-dropdown{padding-left:10px;padding-right:10px}.b-system-drop-down .button-fb-logout{margin:5px}.b-system-drop-down .email-title{display:inline-block;max-width:200px;text-align:left;-o-text-overflow:ellipsis;text-overflow:ellipsis;overflow:hidden;margin-right:28px;vertical-align:middle}.b-system-drop-down .logoPlace{margin:-5px 10px 0 0;font-size:25px;line-height:30px;height:40px}.b-system-drop-down .audioPlace{font-size:25px;line-height:30px;margin-right:10px;width:25px}.b-system-drop-down .audioPlace .playIcon,.b-system-drop-down .audioPlace .stopIcon{cursor:pointer;color:orange;text-shadow:0 1px 0 #555;float:right}.b-system-drop-down .audioPlace .playIcon{margin-top:5px}.b-system-drop-down .audioPlace .stopIcon{font-size:30px;line-height:30px;margin-right:10px}.b-system-drop-down .audioPlace .stopIcon{display:none}.b-system-drop-down .audioPlace:hover .playIcon{display:none}.b-system-drop-down .audioPlace:hover .stopIcon{display:inline-block}.b-system-drop-down .accountPlace{background-color:#000;background-color:rgba(0,0,0,.5);color:#fff;text-shadow:0 1px 0 #000;display:inline-block;height:29px;max-width:250px;font-size:16px;line-height:30px;padding:1px 8px;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;border-radius:4px;font-weight:700;margin-right:5px;white-space:nowrap}.b-system-drop-down .account-item .icon-ok{display:none}.b-system-drop-down .account-item.current .icon-ok{display:inline-block}.b-system-drop-down .account-item.current .icon-user{display:none}.b-system-drop-down .counter{display:inline-block}.b-system-drop-down .g-ui-menu .e-link.account-item{padding-right:5px}html.ssm-state-mobile .accountPlace{max-width:150px!important}@-webkit-keyframes firstBar{0%{height:30%}50%{height:100%}100%{height:30%}}@keyframes firstBar{0%{height:30%}50%{height:100%}100%{height:30%}}@-webkit-keyframes secondBar{0%{height:90%}50%{height:30%}100%{height:100%}}@keyframes secondBar{0%{height:90%}50%{height:30%}100%{height:100%}}@-webkit-keyframes thirdBar{0%{height:20%}40%{height:40%}60%{height:80%}100%{height:40%}}@keyframes thirdBar{0%{height:20%}40%{height:40%}60%{height:80%}100%{height:40%}}.equaliser{width:20px;height:20px;position:relative}.equaliser .bar{float:left;width:5px;height:5px;background:orange;position:absolute;bottom:0}.equaliser .first{left:0;-webkit-animation:none;animation:none}.equaliser .second{left:7px;-webkit-animation:none;animation:none}.equaliser .third{left:14px;-webkit-animation:none;animation:none}.equaliser.animated .first{-webkit-animation:firstBar 1s infinite;animation:firstBar 1s infinite}.equaliser.animated .second{-webkit-animation:secondBar 1s infinite;animation:secondBar 1s infinite}.equaliser.animated .third{-webkit-animation:thirdBar 1s infinite;animation:thirdBar 1s infinite}.b-login-content{height:100%;text-align:center}.b-login-content .loginFormWrapper{display:inline-block;vertical-align:middle;text-align:center;-webkit-perspective:500px;perspective:500px}.b-login-content .loginFormWrapper .descWrapper{margin-bottom:10px}.b-login-content .loginFormWrapper .descWrapper .desc{font-size:18px;padding:2px}.b-login-content .loginFormWrapper .alertError{max-width:450px}.b-login-content .loginFormWrapper .loginForm{background-color:#efefef;text-align:left;color:#333;margin:0;float:none;width:303px}.b-login-content .loginFormWrapper .loginWelcomeForm{display:none}.b-login-content .loginFormWrapper .welcome-on{display:block}.b-login-content .loginFormWrapper .welcome-off{display:none}.b-login-content .loginFormWrapper .control-group,.b-login-content .loginFormWrapper .controls{margin-bottom:25px}.b-login-content .loginFormWrapper .wrapper{padding:40px 40px 20px 40px}.b-login-content .loginFormWrapper #recaptcha_image img{border:1px solid #ccc;border-radius:3px}.b-login-content .loginFormWrapper .controls .inputAdditionalCode,.b-login-content .loginFormWrapper .controls .inputEmail,.b-login-content .loginFormWrapper .controls .inputLogin,.b-login-content .loginFormWrapper .controls .inputLoginForm,.b-login-content .loginFormWrapper .controls .inputPassword{font-size:18px;height:40px;line-height:20px;padding-left:12px;padding-right:12px}.b-login-content .loginFormWrapper .languageLabel{margin-top:5px}.b-login-content .loginFormWrapper .signMeLabel .e-checkbox{margin-top:5px}.b-login-content .loginFormWrapper .languageLabel{margin-right:5px}.b-login-content .loginFormWrapper .input-append .add-on{position:relative;height:30px;background:0 0;margin-left:-35px;z-index:1000;border:0}.b-login-content .loginFormWrapper .input-append .add-on i{font-size:17px;line-height:29px;color:#999}.b-login-content .loginFormWrapper .input-append .add-on i.login-submit-icon{font-size:24px;padding-top:2px;cursor:pointer}.b-login-content .loginFormWrapper .control-group.error .add-on i,.b-login-content .loginFormWrapper .controls.error .add-on i{color:#b94a48}.b-login-content .buttonLogin{margin:0}.b-login-content .alert{margin:0 0 20px 0;text-align:left}.b-login-content .loginAfter{display:inline-block;height:90%;vertical-align:middle;width:0}.b-login-content .flag-selector{margin-bottom:0}.b-login-content .social-buttons{margin-top:5px}.b-login-content .language-button,.b-login-content .social-button{padding:5px;outline:0}@-webkit-keyframes loginRotation{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loginRotation{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.submitting-pane{position:relative}.submitting-pane.submitting:before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:0 0;background:rgba(0,0,0,.3);z-index:1051;border-radius:8px}html.cssanimations .submitting-pane.submitting:after{content:'';position:absolute;width:60px;height:60px;top:50%;left:50%;margin-top:-30px;margin-left:-30px;border:8px solid transparent;border-color:transparent;border-top-color:#fff;-webkit-animation:loginRotation 1s infinite ease-in-out;animation:loginRotation 1s infinite ease-in-out;border-radius:50%;z-index:1052}.btn-submit-icon-wrp{border:none;background:0 0;display:inline-block;margin:0;padding:0;outline:0;cursor:pointer}.popups .b-welcom-page-content .modal-header{background-color:#fff}.popups .b-ask-content .modal-header{background-color:#fff}.popups .b-ask-content .modal-body{text-align:center}.popups .b-ask-content .desc-place{font-size:18px}.popups .b-shortcuts-content.modal{width:700px}.popups .b-shortcuts-content .modal-header{background-color:#fff}.b-folders .move-action-content-wrapper{z-index:-1;position:fixed;top:0;bottom:0;left:0;right:0;opacity:.05;background-color:#fff;background-size:60px 60px;background-image:-o-linear-gradient(315deg,#000 25%,transparent 25%,transparent 50%,#000 50%,#000 75%,transparent 75%,transparent);background-image:linear-gradient(135deg,#000 25%,transparent 25%,transparent 50%,#000 50%,#000 75%,transparent 75%,transparent)}.b-folders .b-folders-user .e-link.print-count.system .badge{display:none!important}.b-folders .b-toolbar{position:absolute;top:0;right:0;left:0;height:30px;padding:10px 0 0 8px;color:#fff;z-index:101}.b-folders .b-footer{position:absolute;bottom:10px;right:0;left:0;height:30px;padding:0 10px 0 5px;z-index:101;overflow:hidden;white-space:nowrap}.b-folders .b-content{position:absolute;top:58px;bottom:45px;left:0;right:0;overflow:hidden;overflow-y:auto;min-width:100px}.b-folders .b-content .content{-webkit-overflow-scrolling:touch}.b-folders .b-list-delimiter{margin:10px;border-top:0 solid #000;border-bottom:1px solid #999}.b-folders .b-content .e-item{overflow:hidden;white-space:nowrap}.b-folders .b-content .e-item .e-link{display:block;position:relative;z-index:1;height:34px;line-height:34px;background-color:transparent;vertical-align:middle;color:grey;cursor:not-allowed;font-size:14px;padding:0;padding-left:10px;padding-right:10px;outline:0;text-decoration:none}.b-folders .b-content .e-item .e-link .focused-poiner{float:left;display:inline-block;background-color:transparent;height:100%;width:3px;position:absolute;top:0;left:0}.b-folders .b-content .e-item .e-link .inbox-star-icon{display:none;margin-left:7px}.b-folders .b-content .e-item .e-link .inbox-star-icon .icon-star{display:none}.b-folders .b-content .e-item .e-link .inbox-star-icon .icon-star-empty{opacity:.5}.b-folders .b-content .e-item .e-link .inbox-star-icon .icon-star-empty:hover{opacity:1}.b-folders .b-content .e-item .e-link.is-inbox .inbox-star-icon{display:inline}.b-folders .b-content .e-item .e-link.selectable{color:#000;cursor:pointer}.b-folders .b-content .e-item .e-link.selectable.droppableHover,.b-folders .b-content .e-item .e-link.selectable.focused,.b-folders .b-content .e-item .e-link.selectable.selected,.b-folders .b-content .e-item .e-link.selectable:hover{background-color:#555;color:#fff}.b-folders .b-content .e-item .e-link.selectable.focused{color:#fff}.b-folders .b-content .e-item .e-link.focused{background-color:#888}.b-folders .b-content .e-item .e-link.focused .focused-poiner{background-color:#fff}.b-folders .b-content .e-item .e-link.system{cursor:default;color:grey}.b-folders .b-content .e-item .e-link .count{position:relative;display:none;margin-top:5px;line-height:19px}.b-folders .b-content .e-item .e-link.print-count{font-weight:700}.b-folders .b-content .e-item .e-link.print-count .count{display:inline}.b-folders .b-content .e-item .e-link.unread-sub{font-weight:700}.b-folders .b-content .e-item .e-link .e-collapsed-sign{cursor:pointer;width:22px;height:30px;line-height:30px;text-align:center;vertical-align:inherit}.b-folders .b-content .e-item .hidden.e-link{display:none}.b-folders .b-content .e-item .b-sub-folders.collapsed{max-height:0;height:0;display:none}.b-folders.inbox-is-starred .icon-star{color:orange;display:inline-block!important}.b-folders.inbox-is-starred .icon-star-empty{display:none}.b-folders .b-folder-system-item{font-weight:700}.b-folders .b-sub-folders .e-item .e-link{padding-left:25px}.b-folders .b-sub-folders .b-sub-folders .e-item .e-link{padding-left:40px}.b-folders .b-sub-folders .b-sub-folders .b-sub-folders .e-item .e-link{padding-left:55px}.b-folders .b-sub-folders .b-sub-folders .b-sub-folders .b-sub-folders .e-item .e-link{padding-left:70px}.b-folders.single-root-inbox .i-am-inbox.e-link{display:none!important}.b-folders.single-root-inbox .i-am-inbox-wrapper>.b-sub-folders{max-height:none!important;height:inherit!important;display:block!important}.b-folders.single-root-inbox .i-am-inbox-wrapper .b-sub-folders .e-item .e-link{padding-left:10px}.b-folders.single-root-inbox .i-am-inbox-wrapper .b-sub-folders .b-sub-folders .e-item .e-link{padding-left:25px}.b-folders.single-root-inbox .i-am-inbox-wrapper .b-sub-folders .b-sub-folders .b-sub-folders .e-item .e-link{padding-left:40px}.b-folders.single-root-inbox .i-am-inbox-wrapper .b-sub-folders .b-sub-folders .b-sub-folders .b-sub-folders .e-item .e-link{padding-left:55px}.btn .btn-text-wrp{padding-left:7px;white-space:normal}.btn.buttonCompose{width:calc(100% - 85px);max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;white-space:nowrap;overflow:hidden;height:19px;display:inline-block;margin-top:1px}html.rl-left-panel-disabled .buttonComposeText,html.rl-left-panel-short .buttonComposeText{display:none}html.rl-left-panel-disabled .btn.buttonCompose,html.rl-left-panel-short .btn.buttonCompose{width:auto}html.rl-left-panel-disabled .btn.buttonContacts,html.rl-left-panel-short .btn.buttonContacts{margin-top:10px!important;margin-left:0!important}html.rl-left-panel-disabled.rl-mobile #rl-left,html.rl-left-panel-short.rl-mobile #rl-left{visibility:hidden}html.rl-mobile .btn.buttonCompose{width:100%}html.rl-mobile .btn.buttonContacts{display:none}.popups .b-folder-clear-content .modal-header{background-color:#fff}.popups .b-folder-create-content .modal-header{background-color:#fff}.popups .b-folder-system-content .modal-header{background-color:#fff}.popups .b-filter-content{width:750px}.popups .b-filter-content .modal-header{background-color:#fff}.popups .b-filter-content .button-delete{cursor:pointer}.popups .b-filter-content .setRecipientsBtn{margin-top:-2px;margin-left:5px}.popups .b-languages-content.modal{width:700px}.popups .b-languages-content.exp{width:701px}.popups .b-languages-content .modal-header{background-color:#fff}.popups .b-languages-content .lang-item{display:inline-block;padding:5px 15px;margin:2px 5px;width:180px;background-color:#fff;text-align:left;border:1px solid transparent;border-radius:2px}.popups .b-languages-content .lang-item.user{background-color:#fffddd;border-color:#fff555}.popups .b-languages-content .lang-item.selected{background-color:#f5f5f5;border-color:#ccc}.popups .b-languages-content .lang-item:hover{background-color:#eee;border-color:#ccc}html.rl-mobile .b-languages-content .lang-item{width:calc(100% - 40px)}.popups .b-account-add-content .modal-header{background-color:#fff}.popups .b-template-add-content.modal{width:750px}.popups .b-template-add-content .modal-header{background-color:#fff}.popups .b-template-add-content .e-template-place{height:300px}.popups .b-compose-open-pgp-content .modal-header,.popups .b-message-open-pgp-content .modal-header,.popups .b-open-pgp-key-add-content .modal-header,.popups .b-open-pgp-key-generate-content .modal-header,.popups .b-open-pgp-key-view-content .modal-header{background-color:#fff}.popups .b-compose-open-pgp-content.modal,.popups .b-message-open-pgp-content.modal,.popups .b-open-pgp-key-add-content.modal,.popups .b-open-pgp-key-generate-content.modal,.popups .b-open-pgp-key-view-content.modal{width:570px}.popups .b-compose-open-pgp-content .inputKey,.popups .b-message-open-pgp-content .inputKey,.popups .b-open-pgp-key-add-content .inputKey,.popups .b-open-pgp-key-generate-content .inputKey,.popups .b-open-pgp-key-view-content .inputKey{font-family:Monaco,Menlo,Consolas,"Courier New",monospace}.popups .b-compose-open-pgp-content .key-viewer,.popups .b-message-open-pgp-content .key-viewer,.popups .b-open-pgp-key-add-content .key-viewer,.popups .b-open-pgp-key-generate-content .key-viewer,.popups .b-open-pgp-key-view-content .key-viewer{max-height:500px;overflow:auto}.popups .b-compose-open-pgp-content.modal{width:800px}.popups .b-compose-open-pgp-content .key-list{background-color:#f9f9f9;border-radius:5px;padding:10px 15px;margin-top:10px;min-height:40px}.popups .b-compose-open-pgp-content .key-list-wrp:hover{overflow:auto}.popups .b-compose-open-pgp-content .key-list-wrp:hover .key-list__item-name{overflow:visible}.popups .b-compose-open-pgp-content .key-list-wrp.empty{text-align:center;padding-top:10px;color:#aaa;font-size:16px}.popups .b-compose-open-pgp-content .key-list__item{color:#333;white-space:nowrap;padding-bottom:4px}.popups .b-compose-open-pgp-content .key-list__item:last-child{padding-bottom:0}.popups .b-compose-open-pgp-content .key-list__item-delete{cursor:pointer}.popups .b-compose-open-pgp-content .key-list__item-delete.disabled{cursor:not-allowed}.popups .b-compose-open-pgp-content .key-list__item-names{color:#333}.popups .b-compose-open-pgp-content .key-list__item-names.empty{color:red}.popups .b-compose-open-pgp-content .key-list__item-name{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.popups .b-compose-open-pgp-content .key-list__item-error{color:red}.popups .b-compose-open-pgp-content .key-list__item-hash{color:#aaa}.popups .b-compose-open-pgp-content .key-actions{margin-top:10px;min-height:40px}.popups .b-compose-open-pgp-content .key-actions select option.even{background-color:#f5f5f5}.popups .b-message-open-pgp-content.modal{width:700px}.popups .b-message-open-pgp-content .key-list{margin-top:5px;overflow:hidden}.popups .b-message-open-pgp-content .key-list__item{color:#555;cursor:pointer;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap}.popups .b-message-open-pgp-content .key-list__item__radio{padding:3px 5px 0 0;vertical-align:top}.popups .b-message-open-pgp-content .key-list__item__name{border-bottom:1px solid transparent}.popups .b-message-open-pgp-content .key-list__item__names{display:inline-block}.popups .b-message-open-pgp-content .key-list__item__names:hover .key-list__item__name{border-bottom:1px dashed #555}.popups .b-open-pgp-key-add-content.modal{width:645px}.popups .b-open-pgp-key-add-content.modal .inputKey{width:600px}.popups .b-two-factor-content{width:750px}.popups .b-two-factor-content .modal-body{min-height:100px}.popups .b-two-factor-content .modal-header{background-color:#fff}.popups .b-two-factor-test-content .modal-header{background-color:#fff}.popups .b-identity-content.modal{width:750px}.popups .b-identity-content .modal-header{background-color:#fff}.popups .b-identity-content .modal-body{overflow:hidden}.popups .b-identity-content .control-label{width:100px}.popups .b-identity-content .controls{margin-left:120px}.popups .b-identity-content .e-signature-place{height:200px}.popups .b-identity-content .textEmail{margin-top:5px;font-weight:700}.popups .b-advanced-search-content.modal{width:750px}.popups .b-advanced-search-content.modal .control-label{width:100px}.popups .b-advanced-search-content.modal .controls{margin-left:110px}.popups .b-advanced-search-content .modal-header{background-color:#fff}.attachmentItem{position:relative;display:inline-block;margin:5px;max-width:200px;min-width:60px;overflow:hidden;list-style:none;line-height:24px;border:0;background-color:#fff;-webkit-box-shadow:0 1px 4px #ccc;box-shadow:0 1px 4px #ccc;-webkit-box-shadow:0 1px 5px rgba(0,0,0,.2);box-shadow:0 1px 5px rgba(0,0,0,.2);-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.1);box-shadow:0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.1);border-radius:3px}.attachmentItem.waiting{opacity:.6}.attachmentItem.checked{-webkit-box-shadow:0 1px 4px #00a;box-shadow:0 1px 4px #00a;-webkit-box-shadow:0 1px 5px rgba(0,0,255,.3);box-shadow:0 1px 5px rgba(0,0,255,.3);-webkit-box-shadow:0 0 0 1px rgba(0,0,255,.1),0 1px 5px rgba(0,0,255,.2);box-shadow:0 0 0 1px rgba(0,0,255,.1),0 1px 5px rgba(0,0,255,.2)}.attachmentItem .checkedParent{position:absolute;top:0;right:0;padding:1px 4px 0 5px;background:#fafafa;border:0 solid #ccc}.attachmentItem .attachmentSize{font-size:12px;color:#999}.attachmentItem.error .attachmentIcon,.attachmentItem.error .attachmentName,.attachmentItem.error .attachmentSize{color:red}.attachmentItem .attachmentIconParent{position:relative;height:56px;width:60px;background:0 0}.attachmentItem .attachmentIconParent .iconBG,.attachmentItem .attachmentIconParent .iconMain,.attachmentItem .attachmentIconParent .iconPreview,.attachmentItem .attachmentIconParent .iconProgress{position:absolute;top:0;left:0;display:inline-block;width:100%;height:100%}.attachmentItem .attachmentIconParent .iconProgress{background:#eee;width:0%}.attachmentItem .attachmentIconParent .iconBG{font-size:18px;text-align:center;color:#999;font-weight:700;line-height:55px;text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 rgba(255,255,255,.8)}.attachmentItem .attachmentIconParent .iconPreview{display:none;background:#555;background-image:none;background:rgba(0,0,0,.5)!important}.attachmentItem .attachmentIconParent .iconPreview .attachmentIcon{color:#fff;text-shadow:0 1px 0 #000}.attachmentItem .attachmentNameParent{position:relative;margin-left:60px;padding:4px 4px 3px 6px;min-width:90px;cursor:pointer;color:#333;background:#fafafa;border-left:1px solid #ddd}.attachmentItem .attachmentIcon{margin:6px 0 0 13px;font-size:36px;width:36px;height:36px;color:#aaa}.attachmentItem .attachmentIcon.icon-none{display:none}.attachmentItem .attachmentIcon.icon-file-certificate{margin-left:15px}.attachmentItem .attachmentIconText{display:inline-block;font-size:28px;width:60px;height:56px;color:#aaa;line-height:56px;text-align:center;font-style:normal}.attachmentItem .attachmentIconParent.hasPreview:hover .iconPreview{display:inline-block}.attachmentItem .attachmentIconParent.hasPreview:hover .iconMain{display:none}.attachmentItem .attachmentIconParent.hasPreplay:hover .iconPreview{display:inline-block}.attachmentItem .attachmentIconParent.hasPreplay:hover .iconMain{display:none}.attachmentItem .showPreplay,.attachmentItem .showPreview{display:none;cursor:pointer}.attachmentItem .attachmentIconParent.hasPreview .showPreview{display:inline}.attachmentItem .attachmentIconParent.hasPreview .hidePreview{display:none}.attachmentItem .attachmentIconParent.hasPreplay .showPreplay{display:inline}.attachmentItem .attachmentIconParent.hasPreplay .hidePreview{display:none}html.rl-no-preview-pane .messageList.message-selected{display:none}.messageList .toolbar{position:absolute;top:0;right:0;left:0;height:30px;padding:10px 1px;z-index:102;white-space:nowrap}.messageList .b-footer{position:absolute;bottom:0;right:0;left:0;height:30px;padding:7px;z-index:101;background-color:#eee;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.messageList .b-footer .e-quota{display:inline-block;margin-top:5px;margin-left:5px;font-size:18px;cursor:help}.messageList .b-footer .e-quota:hover{border-bottom:1px dashed #333}.messageList .inputSearch{width:258px}.messageList .btn.buttonMoreSearch{padding-left:8px;padding-right:8px}.messageList .b-message-list-wrapper{position:absolute;top:50px;right:0;left:0;bottom:5px;border:1px solid #aaa;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.2);box-shadow:0 2px 8px rgba(0,0,0,.2);border-radius:5px;z-index:101}.messageList .second-toolbar{position:absolute;top:0;right:0;left:0;height:29px;padding:10px 8px 10px 11px;z-index:101;white-space:nowrap;background-color:#eee;border-top-right-radius:5px;border-top-left-radius:5px}.messageList .second-toolbar .checkboxCkeckAll{margin:5px 0}.messageList .line-loading{position:absolute;left:0;right:0;z-index:102;height:0;top:50px}.messageList .mainDelimiter{position:absolute;left:0;right:0;height:1px;z-index:101;background-color:#bbb}.messageList .toolbarDelimiter{top:49px}.messageList .footerDelimiter{bottom:44px}.messageList .b-content{position:absolute;top:50px;bottom:45px;left:0;right:0;padding:0;overflow-x:hidden;overflow-y:auto;z-index:101;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#fff}.messageList .b-content .content{-webkit-overflow-scrolling:touch}.messageList .b-content .listClear{color:#333;text-align:center;padding:10px;font-size:14px;line-height:13px}.messageList .b-content .listDragOver,.messageList .b-content .listEmptyList,.messageList .b-content .listEmptyListLoading,.messageList .b-content .listEmptySearchList,.messageList .b-content .listError{color:#999;text-align:center;padding:60px 10px;font-size:24px;line-height:30px}.messageList .b-content .listDragOver .e-icon,.messageList .b-content .listEmptyList .e-icon,.messageList .b-content .listEmptyListLoading .e-icon,.messageList .b-content .listEmptySearchList .e-icon,.messageList .b-content .listError .e-icon{font-size:24px;line-height:30px}.messageList .b-content .listDragOver{max-height:0;overflow:hidden;padding:0 10px}.messageList .b-content .listDragOver.viewAppendArea{max-height:120px;padding:30px 10px}.messageList .b-content .listDragOver.dragOverEnter{background-color:#e0fdda;color:#333}.messageList .b-content .listError{color:#da4f49}.messageList .b-content .listSearchDesc{font-size:18px;padding:15px;border-bottom:1px solid #eee}html.rl-mobile .messageList .b-content .listSearchDesc{font-size:16px;padding:12px}.messageList .b-content .listThreadUidDesc{font-size:16px;padding:7px 20px 6px 20px;background-color:#aaa;border-bottom:1px solid #888;color:#fff;cursor:pointer;text-shadow:0 1px 0 #000;text-align:center}.messageList .b-content .delimiter{display:block;height:1px;background-color:#e5e5e5}.messageList .b-content .messageListItem:last-child{border-bottom:1px solid #e5e5e5}.messageList .b-content .messageListItem:last-child.selected{border-bottom:1px solid #bfd5ef}.messageList .b-content .fullThreadsParent{height:25px;padding:3px 5px;background-color:#f4f4f4;text-align:center}.messageList .b-content .messageListItem{position:relative;height:52px;max-height:60px;font-size:12px;line-height:21px;overflow:hidden;cursor:pointer;margin:0;border:0 solid transparent;z-index:100;background-color:#f9f9f9}.messageList .b-content .messageListItem .delimiter{position:relative;display:block;height:1px;background-color:#999;opacity:.2}.messageList .b-content .messageListItem .wrapper{padding:5px 0}.messageList .b-content .messageListItem .sidebarParent{display:inline-block;width:6px;background-color:#eee;float:left;height:100%}.messageList .b-content .messageListItem.focused{background-color:#f5f5f5}.messageList .b-content .messageListItem.focused .sidebarParent{background-color:#ccc!important}.messageList .b-content .messageListItem .importantMark{display:none;color:red;margin-right:5px}.messageList .b-content .messageListItem.deleted-mark{opacity:.7}.messageList .b-content .messageListItem.deleted-mark .sender,.messageList .b-content .messageListItem.deleted-mark .subject,.messageList .b-content .messageListItem.deleted-mark .subject-prefix,.messageList .b-content .messageListItem.deleted-mark .subject-suffix{text-decoration:line-through}.messageList .b-content .messageListItem.important .importantMark{display:inline}.messageList .b-content .messageListItem.e-single-line{height:35px}.messageList .b-content .messageListItem.e-single-line .wrapper{line-height:25px;padding:5px}.messageList .b-content .messageListItem.new{max-height:0}.messageList .b-content .messageListItem.deleted{max-height:0;border-color:transparent!important}.messageList .b-content .messageListItem .checkedParent{display:inline-block;float:left;margin-top:11px;padding:0 8px 0 6px;font-size:14px}.messageList .b-content .messageListItem.e-single-line .checkedParent{margin-top:1px}.messageList .b-content .messageListItem .flagParent{display:inline-block;float:right;padding:0 10px 0 5px}.messageList .b-content .messageListItem.e-single-line .flagParent{float:left;padding:0 8px 0 2px}.messageList .b-content .messageListItem .dateParent{display:inline-block;float:right;position:relative;margin:0 5px;color:#999;font-size:11px}.messageList .b-content .messageListItem .threadsParent{display:inline-block;float:right;position:relative}.messageList .b-content .messageListItem .attachmentParent{display:inline-block;float:right;position:relative;margin:2px 10px 0 5px}.messageList .b-content .messageListItem.e-single-line .attachmentParent{float:left;margin:0 8px 0 0}.messageList .b-content .messageListItem .senderParent{display:block;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.messageList .b-content .messageListItem .threadsCountParent{display:inline;overflow:hidden;background-color:#eee;padding:1px 5px;margin-right:5px;border:1px solid #ccc;border-radius:5px}.messageList .b-content .messageListItem .threadsCountParent.lastSelected{background-color:#999;border-color:#999;color:#fff}.messageList .b-content .messageListItem .threadsCountParent:hover{border-color:#666}.messageList .b-content .messageListItem.e-single-line .senderParent{display:inline-block;-o-text-overflow:none;text-overflow:none;width:200px;float:left;font-weight:400}.messageList .b-content .messageListItem .subjectParent{display:block;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;color:#000}.messageList .b-content .messageListItem .dateParent,.messageList .b-content .messageListItem .senderParent,.messageList .b-content .messageListItem .subjectParent{white-space:nowrap}.messageList .b-content .messageListItem .subjectParent .emptySubjectText{display:none;font-style:italic;color:#999}.messageList .b-content .messageListItem.emptySubject .subjectParent .subject,.messageList .b-content .messageListItem.emptySubject .subjectParent .subject-prefix,.messageList .b-content .messageListItem.emptySubject .subjectParent .subject-suffix{display:none}.messageList .b-content .messageListItem.emptySubject .subjectParent .emptySubjectText{display:inline}.messageList .b-content .messageListItem .sender,.messageList .b-content .messageListItem .subject,.messageList .b-content .messageListItem .subject-suffix{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.messageList .b-content .messageListItem .threads-len .threads-len-data{background-color:#eee;color:#666;border-radius:6px;padding:2px 0 1px 6px;margin-right:2px;border:1px solid #ccc}.messageList .b-content .messageListItem .threads-len .threads-len-data [class*=" icon-"],.messageList .b-content .messageListItem .threads-len .threads-len-data [class^=icon-]{font-size:14px}.messageList .b-content .messageListItem .threads-len .threads-len-data:hover{background-color:#aaa;border-color:#666;text-shadow:0 1px 0 #999;color:#fff}.messageList .b-content .messageListItem .subject-prefix{color:#888}.messageList .b-content .messageListItem .attachment{display:none}.messageList .b-content .messageListItem .flagOff,.messageList .b-content .messageListItem .flagOn,.messageList .b-content .messageListItem .flagOnHalf{cursor:pointer;display:inline-block}.messageList .b-content .messageListItem .flagOff{opacity:.5}.messageList .b-content .messageListItem .flagOff:hover{opacity:1}.messageList .b-content .messageListItem .flagOn,.messageList .b-content .messageListItem .flagOnHalf{display:none;color:orange}.messageList .b-content .messageListItem .forwardFlag,.messageList .b-content .messageListItem .replyFlag{display:none}.messageList .b-content .messageListItem.answered .replyFlag{display:inline-block}.messageList .b-content .messageListItem.forwarded .forwardFlag{display:inline-block}.messageList .b-content .messageListItem.withAttachments .attachment{display:inline-block;color:#666;text-shadow:0 1px 0 #eee}.messageList .b-content .messageListItem.hasUnseenSubMessage{background-color:#ffffd9}.messageList .b-content .messageListItem.hasUnseenSubMessage .sidebarParent{background-color:#ffdb99}.messageList .b-content .messageListItem.hasUnseenSubMessage.focused .sidebarParent{background-color:#cc8400!important}.messageList .b-content .messageListItem.unseen{background-color:#ffffd9}.messageList .b-content .messageListItem.unseen .sender,.messageList .b-content .messageListItem.unseen .subject,.messageList .b-content .messageListItem.unseen .subject-suffix{font-weight:700}.messageList .b-content .messageListItem.unseen .sidebarParent{background-color:orange}.messageList .b-content .messageListItem.unseen.focused .sidebarParent{background-color:#cc8400!important}.messageList .b-content .messageListItem.checked .sidebarParent{background-color:#69a8f5!important}.messageList .b-content .messageListItem.checked.focused .sidebarParent{background-color:#217ef0!important}.messageList .b-content .messageListItem.selected{background-color:#dfefff;z-index:101}.messageList .b-content .messageListItem.selected .sidebarParent{background-color:#398cf2!important}.messageList .b-content .messageListItem.selected .delimiter{background-color:#398cf2;opacity:.2}.messageList .b-content .messageListItem.selected+.messageListItem .delimiter{background-color:#398cf2;opacity:.3}.messageList .b-content .messageListItem.hasFlaggedSubMessage .flagOff,.messageList .b-content .messageListItem.hasFlaggedSubMessage .flagOn{display:none}.messageList .b-content .messageListItem.hasFlaggedSubMessage .flagOnHalf{display:inline-block}.messageList .b-content .messageListItem.flagged .flagOff,.messageList .b-content .messageListItem.flagged .flagOnHalf{display:none}.messageList .b-content .messageListItem.flagged .flagOn{display:inline-block}.messageList.message-focused .b-message-list-wrapper{background-color:#000}.messageList.message-focused .b-content{opacity:.97}.messageList.hideMessageListCheckbox .checkboxCkeckAll,.messageList.hideMessageListCheckbox .checkedParent{display:none!important}.messageList.hideMessageListCheckbox .sidebarParent{margin-right:10px!important}html.ssm-state-desktop-large .messageList .b-content .messageListItem{font-size:13px}html.ssm-state-desktop-large .messageList .b-content .messageListItem .dateParent{font-size:13px}html.cssanimations .messageList .line-loading{height:5px!important}.draggablePlace{z-index:10003;color:#fff;background-color:#333;background-color:rgba(0,0,0,.5);padding:4px 10px;min-width:30px;height:20px;cursor:pointer;cursor:move}html.rl-mobile #rl-sub-left .messageList .inputSearch{width:160px!important}html.rl-no-preview-pane .messageView{display:none}html.rl-no-preview-pane .messageView.message-selected{display:block}.messageView{z-index:100}.messageView .toolbar{position:absolute;top:0;right:0;left:0;height:30px;padding:10px 0;color:#fff}.messageView .b-content{position:absolute;margin:0;top:58px;bottom:13px;right:8px;left:-2px;border:1px solid #aaa;border-radius:3px;background-color:#fff}.messageView .b-content .b-message-view-checked-helper{text-align:center;font-size:70px;line-height:70px;padding-top:100px;color:#999}.messageView .b-content .b-message-view-checked-helper .icon-mail{font-size:100px;font-size:50px;line-height:90px;padding-left:10px}.messageView .b-content .logoPlace{text-align:center}.messageView .b-content .b-message-view-desc{text-align:center;font-size:24px;line-height:30px;color:#999;padding:120px 10px 0 10px}.messageView .b-content .b-message-view-desc.error{color:#da4f49}.messageView .b-content .b-message-view-iframe-backdrop{display:none;background:0 0;position:absolute;width:100%;height:100%;top:0;left:0;right:0;bottom:0;opacity:.1}.messageView .b-content .content{-webkit-overflow-scrolling:touch}.messageView .b-content .message-fixed-button-toolbar{z-index:100;position:absolute;top:33px;right:10px}.messageView .b-content .infoParent{cursor:pointer;margin:0 2px 0 5px;opacity:.3}.messageView .b-content .infoParent:hover{opacity:.6}.messageView .b-content .flagParent{cursor:pointer;margin:0 20px 0 2px}.messageView .b-content .flagParent .flagOn{color:orange}.messageView .b-content .flagParent .flagOff{opacity:.5}.messageView .b-content .flagParent .flagOff:hover{opacity:1}.messageView .b-content .messageItemHeader{position:absolute;padding:10px;background-color:#f8f8f8;border-top:0;border-bottom:1px solid #ddd;border-top-right-radius:5px;border-top-left-radius:5px;z-index:1;top:0;left:0;right:0}.messageView .b-content .messageItemHeader .fromPic{display:inline-block;width:50px;height:50px;float:left;padding:2px;margin:0 5px 0 0;background:#fff;border:1px solid #ccc;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box}.messageView .b-content .messageItemHeader .subjectParent{font-size:18px;font-weight:700;-o-text-overflow:ellipsis;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;margin-bottom:8px;line-height:100%;height:22px;vertical-align:middle}.messageView .b-content .messageItemHeader .messageButtons{margin-top:5px}.messageView .b-content .messageItemHeader .informationShort{margin:4px 0;margin-left:5px;margin-right:50px}.messageView .b-content .messageItemHeader .informationShort a{color:#369;text-decoration:underline;cursor:pointer;padding:2px}.messageView .b-content .messageItemHeader .informationShort a:focus{outline:1px;outline-style:dotted}html.rl-mobile .messageView .b-content .messageItemHeader .informationShort{-o-text-overflow:ellipsis;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.messageView .b-content .messageItemHeader .informationShortWrp{max-height:100px;overflow-y:auto;min-height:30px;margin-top:4px}.messageView .b-content .messageItemHeader .informationFull{margin-top:10px;border:1px solid #ddd;background-color:#fff;border-radius:5px;padding:8px 0;overflow:hidden}.messageView .b-content .messageItemHeader .informationFull .size{margin-left:4px}.messageView .b-content .messageItemHeader .informationFull table{width:100%}.messageView .b-content .messageItemHeader .informationFull table,.messageView .b-content .messageItemHeader .informationFull td,.messageView .b-content .messageItemHeader .informationFull tr{border-spacing:0}.messageView .b-content .messageItemHeader .informationFull td{padding:0 10px;vertical-align:top;min-width:43px}.messageView .b-content .messageItemHeader .informationFull td:first-child{border-right:1px solid #ddd;text-align:right;width:1%}.messageView .b-content .messageItemHeader .informationFull .uiLabel{white-space:nowrap}.messageView .b-content .messageItemHeader .informationFull .uiLabelValue{word-break:break-all}.messageView .b-content .messageItemHeader .emptySubjectText{display:none;font-style:italic;font-weight:400;color:#999}.messageView .b-content .messageItemHeader.emptySubject .emptySubjectText{display:inline}.messageView .b-content .messageItem{position:absolute;top:0;bottom:0;left:0;right:0;overflow:auto;-webkit-overflow-scrolling:touch;border-radius:3px}.messageView .b-content .messageItem .buttonFull,.messageView .b-content .messageItem .buttonUnFull,.messageView .b-content .messageItem .buttonUp{display:inline-block;position:fixed;right:25px;bottom:25px;height:30px;width:30px;text-align:center;vertical-align:middle;line-height:30px;background-color:transparent;background-color:#fff;border:1px solid #333;color:#333;z-index:2;cursor:pointer;border-radius:5px;opacity:.5}.messageView .b-content .messageItem .buttonFull:hover,.messageView .b-content .messageItem .buttonUnFull:hover,.messageView .b-content .messageItem .buttonUp:hover{opacity:.8;border-color:#666;background-color:#888;color:#fff}.messageView .b-content .messageItem .buttonUp{right:65px;z-index:0}.messageView .b-content .messageItem .buttonUnFull,.messageView .b-content .messageItem .buttonUp{display:none}.messageView .b-content .messageItem .loading{text-align:center;font-size:24px;color:grey;padding-top:50px}.messageView .b-content .messageItem .line-loading{height:0}.messageView .b-content .messageItem .pgpEncrypted,.messageView .b-content .messageItem .pgpSigned,.messageView .b-content .messageItem .readReceipt,.messageView .b-content .messageItem .showImages{cursor:pointer;padding:10px 15px;border-bottom:1px solid #ddd;background-color:#eee}.messageView .b-content .messageItem .pgpInfo{padding:5px 15px;border-bottom:1px solid #ddd;background-color:#fcf8e3}.messageView .b-content .messageItem .pgpInfo.success{background-color:#e9f4ff}.messageView .b-content .messageItem .readReceipt{background-color:#ffffd9}.messageView .b-content .messageItem .attachmentsPlace{padding:10px 10px 6px 10px;background:#eee;border-bottom:1px solid #ddd;position:relative}.messageView .b-content .messageItem .attachmentsPlace .attachmentList{margin:0}.messageView .b-content .messageItem .attachmentsPlace .checkedParent{display:none}.messageView .b-content .messageItem .attachmentsPlace.selection-mode .checkedParent{display:inline-block}.messageView .b-content .messageItem .attachmentsPlace.unselectedAttachmentsError .attachmentItem{-webkit-box-shadow:0 1px 4px red;box-shadow:0 1px 4px red;-webkit-box-shadow:0 1px 5px rgba(255,0,0,.4);box-shadow:0 1px 5px rgba(255,0,0,.4);-webkit-box-shadow:0 0 0 1px rgba(255,0,0,.2),0 1px 5px rgba(255,0,0,.3);box-shadow:0 0 0 1px rgba(255,0,0,.2),0 1px 5px rgba(255,0,0,.3)}.messageView .b-content .messageItem .attachmentsPlace .controls-handle{position:absolute;bottom:5px;right:8px;color:#999;cursor:pointer}.messageView .b-content .messageItem .attachmentsControls{padding:7px 5px 7px 14px;background:#e8e8e8;border-bottom:1px solid #ddd}.messageView .b-content .messageItem .rlBlockquoteSwitcher{background-color:#eee;border:1px solid #999;display:inline-block;width:30px;height:14px;line-height:14px;text-align:center;cursor:pointer;margin:10px 0;opacity:.5}.messageView .b-content .messageItem .rlBlockquoteSwitcher:hover{opacity:1}.messageView .b-content .messageItem .bodySubHeader{z-index:2}.messageView .b-content .messageItem .bodyText{color:#000;font-family:Arial,Verdana,Geneva,sans-serif}.messageView .b-content .messageItem .bodyText .b-text-part{height:100%}.messageView .b-content .messageItem .bodyText .b-text-part div[data-x-div-type=html]{height:100%}.messageView .b-content .messageItem .bodyText .b-text-part div[data-x-div-type=html] div[data-x-div-type=body]{height:100%}.messageView .b-content .messageItem .bodyText .b-text-part a{color:#00f;text-decoration:underline}.messageView .b-content .messageItem .bodyText .b-text-part a:visited{color:#609}.messageView .b-content .messageItem .bodyText .b-text-part a:active{color:red}.messageView .b-content .messageItem .bodyText .b-text-part blockquote{border-left:2px solid #000;padding:0 10px;margin:0}.messageView .b-content .messageItem .bodyText .b-text-part .rl-bq-switcher.hidden-bq{display:none}.messageView .b-content .messageItem .bodyText .b-text-part.html div[data-x-div-type=body]{margin:15px}.messageView .b-content .messageItem .bodyText .b-text-part.html img{max-width:100%}.messageView .b-content .messageItem .bodyText .b-text-part.html code,.messageView .b-content .messageItem .bodyText .b-text-part.html pre{margin:0;padding:0;background:#fff;border:none;border-radius:0;font-family:Monaco,Menlo,Consolas,'Courier New',monospace;display:block;word-break:normal;word-wrap:break-word;background-color:#f9f9f9}.messageView .b-content .messageItem .bodyText .b-text-part.html code{display:inline;padding:2px 5px}.messageView .b-content .messageItem .bodyText .b-text-part.html pre{padding:5px 10px;border-radius:5px;background-color:#f9f9f9}.messageView .b-content .messageItem .bodyText .b-text-part.html pre>code{padding:0}.messageView .b-content .messageItem .bodyText .b-text-part.plain{padding:15px;font-family:Monaco,Menlo,Consolas,'Courier New',monospace}.messageView .b-content .messageItem .bodyText .b-text-part.plain pre{margin:0;padding:0;background:#fff;border:none;font-family:Monaco,Menlo,Consolas,'Courier New',monospace;display:block;word-break:normal}.messageView .b-content .messageItem .bodyText .b-text-part.plain pre.b-plain-openpgp{display:inline-block;padding:6px 10px;border:1px dashed #666;background:#fff;word-break:break-all}.messageView .b-content .messageItem .bodyText .b-text-part.plain pre.b-plain-openpgp.success{border-color:green;background-color:rgba(0,255,0,.03)}.messageView .b-content .messageItem .bodyText .b-text-part.plain pre.b-plain-openpgp.error{border-color:red;background-color:rgba(255,0,0,.03)}.messageView .b-content .messageItem .bodyText .b-text-part.plain blockquote{border-left:2px solid #00f;color:#00f}.messageView .b-content .messageItem .bodyText .b-text-part.plain blockquote blockquote{border-left:2px solid green;color:green}.messageView .b-content .messageItem .bodyText .b-text-part.plain blockquote blockquote blockquote{border-left:2px solid red;color:red}.messageView .b-content .messageItem .bodyText .b-text-part .b-openpgp-control{display:inline-block;cursor:pointer;color:#777}.messageView .b-content .messageItem .bodyText .b-text-part .b-openpgp-control:hover{color:#111}.messageView .b-content .messageItem .bodyText .b-text-part .b-openpgp-control.success{color:green;cursor:help}.messageView .b-content .messageItem .bodyText .b-text-part .b-openpgp-control.error{color:red}.messageView.message-focused .b-content{z-index:101;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.2);box-shadow:0 2px 8px rgba(0,0,0,.2);border-radius:3px;border-color:#9d9d9d}.messageView .thread-controls .dropdown-toggle{padding-left:10px;padding-right:10px}.messageView .thread-controls.open .dropdown-toggle{padding-left:10px;padding-right:10px}.messageView .thread-list .e-link{padding:4px 8px 6px 10px}.messageView .thread-list.hide-more .thread-list-message.more-that{display:none}.messageView .thread-list .thread-date{font-size:13px;color:#999}.messageView .thread-list .more-threads{text-align:center;padding:8px;background-color:#f5f5f5;color:#555;text-decoration:underline;border-top:1px dashed #555}html.rl-resizer .b-message-view-iframe-backdrop{display:block!important}html.rl-no-preview-pane .messageView .toolbar{padding-left:1px}html.rl-no-preview-pane .messageView .b-content{top:50px;left:0;bottom:5px;right:5px;border:1px solid #aaa;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.2);box-shadow:0 2px 8px rgba(0,0,0,.2);border-radius:5px}html.rl-bottom-preview-pane .messageView .b-content{bottom:5px}html.cssanimations .messageItem .line-loading{height:5px!important}html.rl-message-fullscreen #rl-bottom,html.rl-message-fullscreen #rl-left{display:none!important}html.rl-message-fullscreen #rl-right .RL-MailMessageList,html.rl-message-fullscreen #rl-right .RL-MailMessageView .messageView .toolbar,html.rl-message-fullscreen #rl-right .RL-SettingsPane,html.rl-message-fullscreen #rl-right .RL-SystemDropDown{display:none!important}html.rl-message-fullscreen .messageView .b-content{position:fixed!important;margin:5px!important;top:0!important;left:0!important;right:0!important;bottom:0!important;z-index:10000!important;border:1px solid #aaa!important;border-radius:3px!important}html .messageItem .buttonUp{display:none!important}html .messageItem.scroller-shadow-top .buttonUp{display:inline-block!important}html.rl-desktop .messageItem .buttonFull,html.rl-desktop .messageItem .buttonUp{display:none!important}html.rl-desktop .messageItem:hover .buttonFull,html.rl-desktop .messageItem:hover.scroller-shadow-top .buttonUp{display:inline-block!important}html.rl-message-fullscreen .messageItem .buttonUnFull{display:inline-block!important}html.rl-message-fullscreen .messageItem .buttonFull{display:none!important}html.rl-message-fullscreen .messageItem .buttonUp{display:none!important}html.rl-message-fullscreen .messageItem.scroller-shadow-top .buttonUp{display:inline-block!important}.b-contacts-content .control-group .control-label.fix-width{width:50px}.b-contacts-content .control-group .controls.fix-width{margin-left:70px}.b-contacts-content.modal{position:absolute;right:0;top:0;bottom:0;left:0;width:900px;min-height:300px;max-height:700px;margin:auto}.b-contacts-content.modal .modal-body{overflow:auto;height:100%;background-color:#f5f5f5;padding:0}.b-contacts-content.modal .b-header-toolbar{height:40px;background-color:#aaa;color:#fff;background-color:#333;background-color:rgba(0,0,0,.8)!important}.b-contacts-content.modal .b-header-toolbar .close,.b-contacts-content.modal .b-header-toolbar .close-custom{color:#fff;opacity:1}.b-contacts-content.modal .b-header-toolbar .btn{margin-top:4px}.b-contacts-content.modal .b-list-toolbar{padding:0;height:45px;text-align:right;width:220px;-webkit-box-shadow:inset 0 -1px 0 #ccc;box-shadow:inset 0 -1px 0 #ccc}.b-contacts-content.modal .b-list-toolbar .e-search{margin-top:7px;width:200px}.b-contacts-content.modal .b-list-footer-toolbar{position:absolute;left:0;bottom:0;height:105px;width:220px;background-color:#eee;-webkit-box-shadow:inset 0 1px 0 #ccc;box-shadow:inset 0 1px 0 #ccc}.b-contacts-content.modal .b-list-footer-toolbar .footer-pager{padding:8px 10px 0 0}.b-contacts-content.modal .b-list-content{position:absolute;top:45px;bottom:105px;left:0;width:220px;overflow:hidden;overflow-y:auto}.b-contacts-content.modal .b-list-content .content{-webkit-overflow-scrolling:touch}.b-contacts-content.modal .b-list-content .listClear{color:#333;text-align:center;padding:10px;font-size:14px;line-height:13px;background-color:#fff;-webkit-box-shadow:inset 0 -1px 0 #ccc;box-shadow:inset 0 -1px 0 #ccc}.b-contacts-content.modal .b-list-content .listEmptyList,.b-contacts-content.modal .b-list-content .listEmptyListLoading,.b-contacts-content.modal .b-list-content .listEmptySearchList{color:#999;text-align:center;padding:60px 10px;font-size:24px;line-height:30px}.b-contacts-content.modal .b-list-content.hideContactListCheckbox .checkboxCkeckAll,.b-contacts-content.modal .b-list-content.hideContactListCheckbox .checkedParent{display:none!important}.b-contacts-content.modal .b-list-content.hideContactListCheckbox .sidebarParent{margin-right:10px!important}.b-contacts-content.modal .b-list-content .e-contact-item{position:relative;height:45px;max-height:45px;line-height:45px;overflow:hidden;cursor:pointer;margin:0;border:0 solid transparent;z-index:100;border-bottom:1px solid #ddd}.b-contacts-content.modal .b-list-content .e-contact-item .delimiter{position:relative;display:block;height:1px;background-color:#999;opacity:.2}.b-contacts-content.modal .b-list-content .e-contact-item .wrapper{padding:0}.b-contacts-content.modal .b-list-content .e-contact-item .sidebarParent{display:inline-block;width:6px;background-color:#eee;float:left;height:100%}.b-contacts-content.modal .b-list-content .e-contact-item.focused .sidebarParent{background-color:#bbb}.b-contacts-content.modal .b-list-content .e-contact-item.deleted{max-height:0;border-color:transparent!important}.b-contacts-content.modal .b-list-content .e-contact-item .checkedParent{display:inline-block;float:left;padding:0 8px 0 6px}.b-contacts-content.modal .b-list-content .e-contact-item .shareParent{display:none;float:right;position:relative;margin:2px 8px 0 5px}.b-contacts-content.modal .b-list-content .e-contact-item .nameParent{display:block;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;color:#333;font-size:16px}.b-contacts-content.modal .b-list-content .e-contact-item .emailParent,.b-contacts-content.modal .b-list-content .e-contact-item .nameParent{white-space:nowrap}.b-contacts-content.modal .b-list-content .e-contact-item .displayEmail,.b-contacts-content.modal .b-list-content .e-contact-item .displayName{overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.b-contacts-content.modal .b-list-content .e-contact-item .displayImg{display:inline-block;float:right;position:relative;margin:0 5px}.b-contacts-content.modal .b-list-content .e-contact-item.shared .shareParent{display:inline-block}.b-contacts-content.modal .b-list-content .e-contact-item.checked{z-index:101}.b-contacts-content.modal .b-list-content .e-contact-item.checked .sidebarParent{background-color:#69a8f5}.b-contacts-content.modal .b-list-content .e-contact-item.checked.focused .sidebarParent{background-color:#519af3!important}.b-contacts-content.modal .b-list-content .e-contact-item.selected{background-color:#fff;z-index:102}.b-contacts-content.modal .b-list-content .e-contact-item.selected .sidebarParent{background-color:#398cf2}.b-contacts-content.modal .b-list-content .e-contact-item.selected.focused .sidebarParent{background-color:#217ef0!important}.b-contacts-content.modal .b-view-content-toolbar{background-color:#f5f5f5;padding:7px;position:absolute;top:0;right:0;left:220px;height:31px;text-align:center;-webkit-box-shadow:inset 0 -1px 0 #ccc;box-shadow:inset 0 -1px 0 #ccc}.b-contacts-content.modal .b-view-content-toolbar .button-save-contact.no-disabled.dirty{color:#51a351;font-weight:700}.b-contacts-content.modal .b-view-content-toolbar.read-only .button-save-contact{display:none}.b-contacts-content.modal .b-view-content{position:absolute;top:45px;bottom:60px;left:220px;right:0;overflow:hidden;overflow-y:auto;background-color:#fff;border-left:1px solid #ddd}.b-contacts-content.modal .b-view-content .content{-webkit-overflow-scrolling:touch}.b-contacts-content.modal .b-view-content .contactValueLargeStatic,.b-contacts-content.modal .b-view-content .contactValueStatic,.b-contacts-content.modal .b-view-content .contactValueTextAreaStatic{height:20px;line-height:20px;font-size:18px;display:inline-block;padding:5px 7px;color:#555;display:none}.b-contacts-content.modal .b-view-content.read-only .contactValueLargeStatic,.b-contacts-content.modal .b-view-content.read-only .contactValueStatic,.b-contacts-content.modal .b-view-content.read-only .contactValueTextAreaStatic{display:inline-block}.b-contacts-content.modal .b-view-content.read-only .contactValueInput,.b-contacts-content.modal .b-view-content.read-only .contactValueInputLarge,.b-contacts-content.modal .b-view-content.read-only .contactValueTextArea{display:none}.b-contacts-content.modal .b-view-content .b-contact-view-desc{text-align:center;font-size:24px;line-height:30px;padding-top:120px;color:#999}.b-contacts-content.modal .b-view-content .top-part{padding-top:20px}.b-contacts-content.modal .b-view-content .property-line{margin-bottom:5px}.b-contacts-content.modal .b-view-content .top-row{padding:10px 0;height:30px}.b-contacts-content.modal .b-view-content .add-link{margin-left:2px;padding:5px;font-size:12px;color:#aaa}.b-contacts-content.modal .b-view-content .contactValueLargeStatic,.b-contacts-content.modal .b-view-content .contactValueStatic,.b-contacts-content.modal .b-view-content .contactValueTextAreaStatic{font-size:18px;display:none}.b-contacts-content.modal .b-view-content .contactValueInput,.b-contacts-content.modal .b-view-content .contactValueInputLarge,.b-contacts-content.modal .b-view-content .contactValueTextArea{-webkit-box-shadow:none;box-shadow:none;border-color:#fff;font-size:18px;width:300px}.b-contacts-content.modal .b-view-content .contactValueInput:hover,.b-contacts-content.modal .b-view-content .contactValueInputLarge:hover,.b-contacts-content.modal .b-view-content .contactValueTextArea:hover{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);border-color:#ccc}.b-contacts-content.modal .b-view-content .contactValueInput:focus,.b-contacts-content.modal .b-view-content .contactValueInputLarge:focus,.b-contacts-content.modal .b-view-content .contactValueTextArea:focus{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);border-color:#999}.b-contacts-content.modal .b-view-content .contactValueInput::-webkit-input-placeholder,.b-contacts-content.modal .b-view-content .contactValueInputLarge::-webkit-input-placeholder,.b-contacts-content.modal .b-view-content .contactValueTextArea::-webkit-input-placeholder{color:#ddd}.b-contacts-content.modal .b-view-content .contactValueInput::-moz-placeholder,.b-contacts-content.modal .b-view-content .contactValueInputLarge::-moz-placeholder,.b-contacts-content.modal .b-view-content .contactValueTextArea::-moz-placeholder{color:#ddd}.b-contacts-content.modal .b-view-content .contactValueInput:-moz-placeholder,.b-contacts-content.modal .b-view-content .contactValueInputLarge:-moz-placeholder,.b-contacts-content.modal .b-view-content .contactValueTextArea:-moz-placeholder{color:#ddd}.b-contacts-content.modal .b-view-content .contactValueInput:-ms-input-placeholder,.b-contacts-content.modal .b-view-content .contactValueInputLarge:-ms-input-placeholder,.b-contacts-content.modal .b-view-content .contactValueTextArea:-ms-input-placeholder{color:#ddd}.b-contacts-content.modal .b-view-content .contactValueTextArea{width:300px}.b-contacts-content.modal .b-view-content .contactValueInputLarge{width:400px}.b-contacts-content.modal .b-view-content .hasError .contactValueInput{color:#ee5f5b;border-color:#ee5f5b}.b-contacts-content.modal .b-view-content .e-save-trigger{position:absolute;top:25px;left:10px}.b-contacts-content.modal .b-view-content .e-read-only-sign{display:none;position:absolute;top:20px;right:40px}.b-contacts-content.modal .b-view-content .e-share-sign{position:absolute;top:20px;right:20px;cursor:pointer}.b-contacts-content.modal .b-view-content.read-only .e-read-only-sign{display:inline-block}.b-contacts-content.modal .b-view-content.read-only .e-share-sign{display:none}.b-contacts-content .e-contact-item{position:relative;height:55px;max-height:60px;line-height:22px;overflow:hidden;cursor:pointer;margin:0;border:0 solid transparent;z-index:100;border-bottom:1px solid #ddd}html.rl-mobile .b-contacts-content .b-list-content,html.rl-mobile .b-contacts-content .b-list-footer-toolbar,html.rl-mobile .b-contacts-content .b-list-toolbar{width:170px}html.rl-mobile .b-contacts-content .b-list-toolbar .e-search{width:150px}html.rl-mobile .b-contacts-content .b-view-content,html.rl-mobile .b-contacts-content .b-view-content-toolbar{left:170px}.b-compose.modal{width:850px;margin:10px auto}.b-compose.modal .modal-body{overflow:auto;padding:0}.b-compose .attachmentAreaParent,.b-compose .textAreaParent{overflow:hidden;position:relative}.b-compose .attachmentAreaParent{padding:10px 10px 6px 10px;background:#ddd;border-top:1px solid #ccc;overflow-y:auto}.b-compose .attachmentAreaParent .no-attachments-desc{padding:50px 10px;text-align:center;font-size:24px;color:#666;text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 rgba(255,255,255,.5)}.b-compose .attachmentAreaParent .attachmentList{margin:0;padding:10px}.b-compose .b-header-toolbar{height:40px;color:#fff;background-color:#aaa;background-color:#333;background-color:rgba(0,0,0,.8)!important}.b-compose .b-header-toolbar .close,.b-compose .b-header-toolbar .close-custom,.b-compose .b-header-toolbar .minimize-custom{opacity:1;color:#fff;border-color:#eee;font-size:24px;line-height:24px}.b-compose .b-header-toolbar .btn.disabled.button-delete{visibility:hidden}.b-compose .b-header-toolbar .button-delete,.b-compose .b-header-toolbar .button-save,.b-compose .b-header-toolbar .saved-text{margin-left:8px}.b-compose .b-header-toolbar .button-close,.b-compose .b-header-toolbar .button-skip{margin-left:8px}.b-compose .b-header-toolbar .disabled.button-delete{margin-left:0}.b-compose .b-header{padding:10px;background-color:#eee;color:#333}html.rl-mobile .b-compose .b-header{overflow:scroll}.b-compose .b-header .e-identity{color:#333;text-decoration:none;font-weight:700}.b-compose .b-header .e-identity:hover{color:#333;text-decoration:none}.b-compose .b-header .e-identity.multiply{cursor:pointer;border-bottom:1px dashed #555}.b-compose .b-header .e-row{line-height:30px}.b-compose .b-header .e-label{text-align:right;width:1%;min-width:70px;padding:6px 10px}html.rl-mobile .b-compose .b-header .e-label{min-width:50px;padding:6px 10px 6px 0}.b-compose .b-header .e-value{padding:2px 0}.b-compose .b-header .e-value input[type=text],.b-compose .b-header .e-value textarea{width:98%}.b-compose .b-header .e-value textarea{height:40px}.b-compose .b-header .error-desc{color:red}.b-compose .b-header .error-to{color:red;font-weight:700}.b-compose .b-header .b-appachments .b-attacment{line-height:20px;padding-bottom:10px}.b-compose .b-header .b-appachments .b-attacment-in-process{line-height:20px;padding-bottom:10px}.b-compose .b-header .b-appachments .b-attacment-in-process .uploading{display:none;padding-right:5px}.b-compose .b-header .b-appachments .b-attacment-in-process.uploading .uploading{display:inline}.b-compose .b-header .b-appachments .b-attacment-in-process .upload-progress{font-weight:700}.b-compose .b-header .b-appachments .b-attacment-in-process.error .namedStr{color:#888}.b-compose .b-header .b-appachments .b-attacment-in-process .error{color:red}.b-compose .b-header .b-appachments .b-attacment-in-process .close,.b-compose .b-header .b-appachments .b-attacment-in-process .close-custom{float:left;padding-right:13px}.b-compose .cke_chrome{border-left-width:0!important;border-right-width:0!important;border-bottom-width:0!important}.b-compose .b-attachment-button{display:inline-block}.b-compose .b-attachment-place{position:absolute;left:5px;right:5px;top:5px;bottom:5px;border:2px #777 dashed;z-index:300;line-height:119px;text-align:center;background-color:#efefef;font-size:24px;border-radius:10px}.b-compose .b-attachment-place.dragAndDropOver{background-color:#fff}.b-admin-left .b-toolbar{position:absolute;top:0;right:0;left:0;height:34px;padding:8px 0 0 8px}.b-admin-left .b-content{position:absolute;top:68px;bottom:8px;left:0;right:0;overflow:hidden}.b-admin-left .b-content .content{-webkit-overflow-scrolling:touch}.b-admin-menu .e-item{overflow:hidden;text-decoration:none;outline:0}.b-admin-menu .e-link{position:relative;display:block;height:30px;line-height:29px;cursor:pointer;font-size:18px;z-index:1;cursor:default;background-color:transparent;color:#888;padding:4px 10px;outline:0;text-decoration:none}.b-admin-menu .e-item.selectable .e-link{cursor:pointer}.b-admin-menu .e-item.selectable.selected .e-link,.b-admin-menu .e-item.selectable:hover .e-link{background-color:#555;color:#fff}.b-admin-right .b-toolbar{position:absolute;top:0;right:0;left:0;height:34px;padding:8px 8px;color:#fff;text-shadow:0 1px 1px #000}.b-admin-right .b-content{position:absolute;top:58px;bottom:8px;left:0;right:8px;overflow-y:auto;z-index:2;background-color:#fff;border:1px solid #aaa;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.2);box-shadow:0 2px 8px rgba(0,0,0,.2);border-radius:5px}.b-admin-right .b-content .content{-webkit-overflow-scrolling:touch}.b-admin-right .b-settings-content{padding:20px;padding-left:30px}.b-admin-right .b-settings-content .legend{width:670px}.b-admin-right .b-settings-content .nav-tabs{width:670px}html.rl-mobile .b-settings-content .legend{width:auto}.b-admin-general .flag-selector{padding-top:5px}.b-admin-general .flag-name{border-bottom:1px dashed #555;cursor:pointer;padding:2px 0}.b-admin-general .flag-name:focus{outline:1px;outline-style:dotted}.b-admin-branding .disabled-form{opacity:.8}.b-admin-branding .custom-css-wrapper textarea{font-family:Monaco,Menlo,Consolas,'Courier New',monospace}.b-admin-domains .process-place{width:600px;padding:14px 0;text-align:center;visibility:hidden}.b-admin-domains-list-table{width:600px}.b-admin-domains-list-table .e-item .e-action{cursor:pointer}.b-admin-domains-list-table .e-item .domain-name{display:inline-block;word-break:break-all;-webkit-box-sizing:border-box;box-sizing:border-box}.b-admin-domains-list-table .e-item .domain-alias{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;color:#bbb;padding-left:5px}.b-admin-domains-list-table .e-item.disabled .domain-alias,.b-admin-domains-list-table .e-item.disabled .domain-name{color:#bbb}.b-admin-domains-list-table .e-item .button-delete{margin-right:15px;visibility:hidden;opacity:0}.b-admin-domains-list-table .e-item .delete-access.button-delete{visibility:visible;margin-right:0;opacity:1}.b-admin-domains-list-table .e-item .delete-domain,.b-admin-domains-list-table .e-item .disabled-domain{cursor:pointer;opacity:.5}.b-admin-domains-list-table .e-item.disabled .disabled-domain{opacity:.5}.b-admin-domains-list-table .e-item .delete-domain:hover,.b-admin-domains-list-table .e-item .disabled-domain:hover{opacity:1}.b-domain-alias-content.modal{width:330px}.b-domain-alias-content .modal-header{background-color:#fff}.b-domain-alias-content .error-desc{color:red}.b-domain-content.modal{width:810px}.b-domain-content .modal-header{background-color:#fff}.b-domain-content .modal-body{position:relative;overflow:hidden;width:1600px;height:400px;left:0}.b-domain-content.domain-edit .modal-body{height:340px}.b-domain-content.domain-second-page .modal-body{left:-800px}.b-domain-content .domain-desc{color:#666;line-height:20px;background-color:#f9f9f9;padding:8px;border:1px solid #eee;border-radius:3px;margin:-5px 0}.b-domain-content .domain-desc i{font-style:normal;color:red}.b-domain-content .error-desc{color:red}.b-domain-content .testing-done.imap-header,.b-domain-content .testing-done.sieve-header,.b-domain-content .testing-done.smtp-header{color:green;font-weight:700}.b-domain-content .testing-error.imap-header,.b-domain-content .testing-error.sieve-header,.b-domain-content .testing-error.smtp-header{color:red}.b-admin-packages .alert{width:650px}.b-admin-packages .process-place{visibility:hidden}.b-admin-packages-list-table{width:700px}.b-admin-packages-list-table .e-item .package-img{font-size:12px;margin-right:2px}.b-admin-packages-list-table .e-item .package-name.core{font-weight:700}.b-admin-packages-list-table .e-item .package-desc{color:#999;font-size:12px}.b-admin-packages-list-table .e-item .e-action{cursor:pointer}.b-admin-packages-list-table .e-item .package-actions-parent,.b-admin-packages-list-table .e-item .package-release-parent{text-align:center}.b-admin-packages-list-table .e-item .package-actions-parent{vertical-align:middle}.b-admin-plugins .process-place{visibility:hidden}.b-admin-plugins-list-table.disabled{opacity:.5;background-color:#eee}.b-admin-plugins-list-table .e-item .e-action{cursor:pointer}.b-admin-plugins-list-table .e-item .plugin-img{font-size:12px;margin-right:2px}.b-admin-plugins-list-table .e-item.disabled .plugin-img,.b-admin-plugins-list-table .e-item.disabled .plugin-name{color:#bbb}.b-admin-plugins-list-table .e-item.disabled .disabled-plugin{opacity:.5}.b-admin-plugin-property .help-block{margin-bottom:5px}.b-plugin-content.modal{width:660px}.b-plugin-content.modal .modal-body{overflow:auto}.b-plugin-content .modal-header{background-color:#fff}.b-plugin-content .information{display:inline-block;background-color:#ddd;border-radius:10px;cursor:pointer;height:25px;width:30px;text-align:center;padding-top:5px}.b-plugin-content textarea{width:400px;height:70px}.b-admin-about .rl-logo{display:inline-block;width:250px;height:250px;margin-top:-10px;margin-bottom:-10px;background-image:url(images/rainloop-logo.png)}.b-admin-about .rl-desc{margin-top:20px;margin-left:-20px}.popups .b-activate-content{width:700px}.popups .b-activate-content .modal-header{background-color:#fff}.popups .b-activate-content .help-inline{padding-left:0}.b-settins-left .b-toolbar{position:absolute;top:0;right:0;left:0;height:34px;padding:8px 0 0 8px}.b-settins-left .b-footer{position:absolute;bottom:20px;right:0;left:0;height:20px;padding:0 10px 0 5px;z-index:101}.b-settins-left .b-content{position:absolute;top:68px;bottom:8px;left:0;right:0;overflow:hidden}.b-settins-left .b-content .content{-webkit-overflow-scrolling:touch}.b-settings-menu .e-item{overflow:hidden;text-decoration:none;outline:0}.b-settings-menu .e-link{position:relative;display:block;height:30px;line-height:29px;font-size:18px;z-index:1;cursor:default;background-color:transparent;color:#888;padding:4px 10px;outline:0;text-decoration:none}.b-settings-menu .e-item.selectable .e-link{cursor:pointer}.b-settings-menu .e-item.selectable.selected .e-link,.b-settings-menu .e-item.selectable:hover .e-link{background-color:#555;color:#fff}.b-settins-right .b-toolbar{position:absolute;top:0;right:0;left:0;height:34px;padding:8px 5px;color:#fff}.b-settins-right .b-content{position:absolute;top:50px;bottom:8px;left:0;right:8px;overflow-y:auto;z-index:2;background-color:#fff;border:1px solid #aaa;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.2);box-shadow:0 2px 8px rgba(0,0,0,.2);border-radius:5px}.b-settins-right .b-content .content{-webkit-overflow-scrolling:touch}.b-settins-right .b-settings-content{padding:20px;padding-left:30px}.b-settins-right .b-settings-content .legend{width:600px}html.rl-mobile .b-settings-content .legend{width:auto}html.rl-mobile .b-settings-general{margin-right:15px}.b-settings-general .notification-desc-denied{color:#999;display:none}.b-settings-general .denied-by-browser .notification-desc-denied{display:inline}.b-settings-general .denied-by-browser .notification-desc{color:#999}.b-settings-general .flag-selector{padding-top:5px}.b-settings-general .flag-name{border-bottom:1px dashed #555;cursor:pointer;padding:2px 0}.b-settings-general .flag-name:focus{outline:1px;outline-style:dotted}html.rl-mobile .b-settings-accounts{margin-right:15px}.b-settings-accounts .process-place{text-align:center;width:600px;padding:14px 0}.b-settings-accounts .list-table{width:600px}.b-settings-accounts .list-table td{padding:4px 8px;line-height:30px}.b-settings-accounts .list-table .drag-handle{color:#eee}.b-settings-accounts .list-table tr:hover .drag-handle{color:#aaa}.b-settings-accounts .list-table .account-img,.b-settings-accounts .list-table .identity-img{font-size:12px;margin-right:5px}.b-settings-accounts .list-table .account-name{display:inline-block;word-break:break-all;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:22px}.b-settings-accounts .list-table .identity-default{cursor:pointer;color:#ccc}.b-settings-accounts .list-table .identity-name{display:inline-block;word-break:break-all;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:22px;cursor:pointer}.b-settings-accounts .accounts-list-top-padding,.b-settings-accounts .identities-list-top-padding{display:inline-block;height:5px;width:5px}.b-settings-accounts .account-item{white-space:nowrap}.b-settings-accounts .account-item .e-action{cursor:pointer}.b-settings-accounts .account-item .drag-handle{cursor:pointer;cursor:all-scroll}.b-settings-accounts .account-item .button-delete{margin-right:15px;margin-top:5px;visibility:hidden;opacity:0}.b-settings-accounts .account-item .delete-access.button-delete{visibility:visible;margin-right:0;opacity:1}.b-settings-accounts .account-item .delete-account{cursor:pointer;opacity:.5}.b-settings-accounts .account-item.ui-sortable-helper{background:#f5f5f5;border:1px solid #ddd}.b-settings-accounts .account-item.ui-sortable-helper .button-delete,.b-settings-accounts .account-item.ui-sortable-helper .delete-account{display:none}.b-settings-accounts .account-item.ui-sortable-helper td{border-width:0}.b-settings-accounts .identity-item{white-space:nowrap}.b-settings-accounts .identity-item .e-action{cursor:pointer}.b-settings-accounts .identity-item .button-delete{margin-right:15px;margin-top:5px;visibility:hidden;opacity:0}.b-settings-accounts .identity-item .delete-access.button-delete{visibility:visible;margin-right:0;opacity:1}.b-settings-accounts .identity-item .delete-identity{cursor:pointer;opacity:.5}.b-settings-accounts .identity-item.ui-sortable-helper{background:#f5f5f5;border:1px solid #ddd}.b-settings-accounts .identity-item.ui-sortable-helper .button-delete,.b-settings-accounts .identity-item.ui-sortable-helper .delete-identity{display:none}.b-settings-accounts .identity-item.ui-sortable-helper td{border-width:0}html.rl-mobile .b-settings-templates{margin-right:15px}.b-settings-templates .process-place{text-align:center;width:600px;padding:14px 0}.b-settings-templates .list-table{width:600px}.b-settings-templates .list-table td{padding:4px 8px;line-height:30px}.b-settings-templates .list-table .drag-handle{color:#eee}.b-settings-templates .list-table tr:hover .drag-handle{color:#aaa}.b-settings-templates .list-table .template-img{font-size:12px;margin-right:5px}.b-settings-templates .list-table .template-name{display:inline-block;word-break:break-all;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:22px}.b-settings-templates .templates-list-top-padding{display:inline-block;height:5px;width:5px}.b-settings-templates .template-item .e-action{cursor:pointer}.b-settings-templates .template-item .drag-handle{cursor:pointer;cursor:all-scroll}.b-settings-templates .template-item .button-delete{margin-right:15px;margin-top:5px;visibility:hidden;opacity:0}.b-settings-templates .template-item .delete-access.button-delete{visibility:visible;margin-right:0;opacity:1}.b-settings-templates .template-item .delete-template{cursor:pointer;opacity:.5}.b-settings-templates .template-item.ui-sortable-helper{background:#f5f5f5;border:1px solid #ddd}.b-settings-templates .template-item.ui-sortable-helper .button-delete,.b-settings-templates .template-item.ui-sortable-helper .delete-template{display:none}.b-settings-templates .template-item.ui-sortable-helper td{border-width:0}html.rl-mobile .b-settings-open-pgp{margin-right:15px}.b-settings-open-pgp .process-place{text-align:center;width:600px;padding:14px 0}.b-settings-open-pgp .list-table{width:750px}.b-settings-open-pgp .list-table td{padding:4px 8px;line-height:30px}.b-settings-open-pgp .list-table .open-pgp-key-img{margin-right:10px;vertical-align:top}.b-settings-open-pgp .list-table .open-pgp-key-img .svg-icon{width:12px;height:12px}.b-settings-open-pgp .list-table .open-pgp-key-id,.b-settings-open-pgp .list-table .open-pgp-key-user{display:inline-block;word-break:break-all;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:22px;cursor:default}.b-settings-open-pgp .list-table .open-pgp-key-user-address:first-child{line-height:30px;margin-bottom:-4px}.b-settings-open-pgp .open-pgp-key-item .button-delete{margin-right:15px;margin-top:5px;visibility:hidden;opacity:0}.b-settings-open-pgp .open-pgp-key-item .delete-access.button-delete{visibility:visible;margin-right:0;opacity:1}.b-settings-open-pgp .open-pgp-key-item .delete-open-pgp-key,.b-settings-open-pgp .open-pgp-key-item .view-open-pgp-key{cursor:pointer;opacity:.7}.b-settings-open-pgp .open-pgp-key-item .delete-open-pgp-key:hover,.b-settings-open-pgp .open-pgp-key-item .view-open-pgp-key:hover{opacity:.9}html.rl-mobile .b-settings-folders{margin-right:35px}.b-settings-folders.ignore-folder-subscribe .subscribe-folder,.b-settings-folders.ignore-folder-subscribe .unsubscribe-folder{display:none}.b-settings-folders .process-place{text-align:center;width:600px;padding:14px 0}.b-settings-folders .folders-list-error{width:550px;margin:10px 0}.b-settings-folders .list-table{width:600px}.b-settings-folders .list-table .e-action{cursor:pointer}.b-settings-folders .list-table td{padding:4px 8px;line-height:30px}.b-settings-folders .list-table .folder-padding{display:inline-block;width:0}.b-settings-folders .list-table .folder-name{display:inline-block;word-break:break-all;white-space:pre-wrap;-webkit-box-sizing:border-box;box-sizing:border-box;margin-left:7px;line-height:22px;cursor:default}.b-settings-folders .list-table .folder-system-name{display:inline-block;line-height:22px;color:#999;cursor:default}.b-settings-folders .list-table .folder-name.can-be-edited:hover{border-bottom:1px dashed #333;cursor:pointer}.b-settings-folders .list-table .folder-name-input{border-width:1px;margin-bottom:0;margin-left:-4px}.b-settings-folders .folder-item.system .folder-name{font-weight:700}.b-settings-folders .folder-item .button-delete{margin-right:15px;margin-top:5px;visibility:hidden;opacity:0}.b-settings-folders .folder-item .delete-access.button-delete{visibility:visible;margin-right:0;opacity:1}.b-settings-folders .folder-item .check-folder,.b-settings-folders .folder-item .delete-folder,.b-settings-folders .folder-item .subscribe-folder,.b-settings-folders .folder-item .uncheck-folder,.b-settings-folders .folder-item .unsubscribe-folder{cursor:pointer;opacity:.6}.b-settings-folders .folder-item .unsubscribe-folder{opacity:.2}.b-settings-folders .folder-item .uncheck-folder{opacity:.2}.b-settings-folders .folder-padding.deep-1{width:25px}.b-settings-folders .folder-padding.deep-2{width:40px}.b-settings-folders .folder-padding.deep-3{width:55px}.b-settings-folders .folder-padding.deep-4{width:70px}.b-settings-folders .folder-padding.deep-5{width:85px}.b-settings-content .b-settings-themes .legend{width:100%}html.rl-mobile .b-settings-content .b-settings-theme .legend{width:auto}html.rl-mobile .b-themes-list{margin-right:15px}.b-themes-list .e-item{display:inline-block;border:2px solid transparent;cursor:pointer;color:#000;background-color:#fff;padding:16px;margin:5px}.b-themes-list .e-item:hover{border:2px solid grey}.b-themes-list .e-item.selected{background-color:#eee;border:2px solid #000}.b-themes-list .e-item .e-image{width:100px;height:100px;border:1px solid #ddd}html.rl-mobile .b-settings-filters{margin-right:15px}.b-settings-filters .process-place{text-align:center;width:600px;padding:14px 0}.b-settings-filters .list-table{width:600px}.b-settings-filters .list-table td{padding:4px 8px;line-height:30px}.b-settings-filters .list-table td.drag-wrapper{padding:4px 0}.b-settings-filters .list-table .drag-handle{color:#eee}.b-settings-filters .list-table tr:hover .drag-handle{color:#aaa}.b-settings-filters .list-table .filter-img{font-size:12px;margin-right:5px}.b-settings-filters .list-table .filter-name,.b-settings-filters .list-table .filter-sub-name{display:inline-block;word-break:break-all;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:22px;cursor:pointer}.b-settings-filters .list-table .filter-sub-name{color:#aaa}.b-settings-filters .filters-list-top-padding{display:inline-block;height:5px;width:5px}.b-settings-filters .filter-item{white-space:nowrap}.b-settings-filters .filter-item .e-action{cursor:pointer}.b-settings-filters .filter-item .drag-handle{cursor:pointer;cursor:all-scroll}.b-settings-filters .filter-item .button-delete{margin-right:15px;margin-top:5px;visibility:hidden;opacity:0}.b-settings-filters .filter-item .delete-access.button-delete{visibility:visible;margin-right:0;opacity:1}.b-settings-filters .filter-item .delete-filter{cursor:pointer;opacity:.5}.b-settings-filters .filter-item.ui-sortable-helper{background:#f5f5f5;border:1px solid #ddd}.b-settings-filters .filter-item.ui-sortable-helper .button-delete,.b-settings-filters .filter-item.ui-sortable-helper .delete-filter{display:none}.b-settings-filters .filter-item.ui-sortable-helper td{border-width:0}.rl-cmd{position:absolute;bottom:0;left:0;right:0;top:auto;height:0;z-index:10000;background:rgba(0,0,0,.85);border-top:1px solid #000;overflow:hidden;font-family:monospace;-webkit-transition:height .1s ease-out;-o-transition:height .1s ease-out;transition:height .1s ease-out}.rl-cmd.opened{height:250px}.rl-cmd .rl-cmd-clr-error{color:#cd3131}.rl-cmd .rl-cmd-clr-info{color:#bfbf00}.rl-cmd .rl-cmd-clr-success{color:#31ff40}.rl-cmd .rl-cmd-wrp{position:relative;height:100%}.rl-cmd .rl-cmd-input-helper{color:#666}.rl-cmd .rl-cmd-input-prefix{color:#31ff40;display:inline-block}.rl-cmd .rl-cmd-input-wrp{position:absolute;bottom:0;left:10px;right:10px}.rl-cmd .rl-cmd-input{background:0 0;border:none;color:#fff;display:inline-block;width:calc(100% - 30px);font-family:monospace}.rl-cmd .rl-cmd-input:focus{background:0 0;border:none}.rl-cmd .rl-cmd-history{color:#fff;font-family:monospace;position:absolute;top:10px;bottom:60px;left:10px;right:-30px;overflow:hidden;overflow-x:hidden;overflow-y:auto}@-webkit-keyframes highlight-folder-row{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.1);transform:scale(1.1)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes highlight-folder-row{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.1);transform:scale(1.1)}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes bounce-me{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.2);transform:scale(1.2)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes bounce-me{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.2);transform:scale(1.2)}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes textLoadingAnimationKeyFrame{0%{opacity:1}33%{opacity:0}100%{opacity:1}}@keyframes textLoadingAnimationKeyFrame{0%{opacity:1}33%{opacity:0}100%{opacity:1}}@-webkit-keyframes animate-stripes{0%{background-position:0 0}100%{background-position:60px 0}}@keyframes animate-stripes{0%{background-position:0 0}100%{background-position:60px 0}}@-webkit-keyframes login-form-shake{0%{-webkit-transform:translateX(0);transform:translateX(0)}12.5%{-webkit-transform:translateX(-6px) rotateY(-5deg);transform:translateX(-6px) rotateY(-5deg)}37.5%{-webkit-transform:translateX(5px) rotateY(4deg);transform:translateX(5px) rotateY(4deg)}62.5%{-webkit-transform:translateX(-3px) rotateY(-2deg);transform:translateX(-3px) rotateY(-2deg)}87.5%{-webkit-transform:translateX(2px) rotateY(1deg);transform:translateX(2px) rotateY(1deg)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes login-form-shake{0%{-webkit-transform:translateX(0);transform:translateX(0)}12.5%{-webkit-transform:translateX(-6px) rotateY(-5deg);transform:translateX(-6px) rotateY(-5deg)}37.5%{-webkit-transform:translateX(5px) rotateY(4deg);transform:translateX(5px) rotateY(4deg)}62.5%{-webkit-transform:translateX(-3px) rotateY(-2deg);transform:translateX(-3px) rotateY(-2deg)}87.5%{-webkit-transform:translateX(2px) rotateY(1deg);transform:translateX(2px) rotateY(1deg)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}html.csstransitions.rl-started-trigger.no-mobile .b-login-content .loginFormWrapper{-webkit-transform:translateY(-20px);-ms-transform:translateY(-20px);transform:translateY(-20px);opacity:.5}#rl-loading{-webkit-transition:opacity .5s linear;-o-transition:opacity .5s linear;transition:opacity .5s linear}html.csstransitions.rl-started-delay #rl-left{-webkit-transition:width .3s ease-out;-o-transition:width .3s ease-out;transition:width .3s ease-out}html.csstransitions.rl-started-delay #rl-right{-webkit-transition:left .3s ease-out,right .3s ease-out;-o-transition:left .3s ease-out,right .3s ease-out;transition:left .3s ease-out,right .3s ease-out}html.csstransitions.rl-started-delay #rl-sub-left,html.csstransitions.rl-started-delay #rl-sub-left .messageList .inputSearch{-webkit-transition:width .3s ease-out;-o-transition:width .3s ease-out;transition:width .3s ease-out}html.csstransitions.rl-started-delay #rl-sub-right{-webkit-transition:left .3s ease-out;-o-transition:left .3s ease-out;transition:left .3s ease-out}html.rgba.cssanimations.backgroundsize .e-strip-animation{background-size:60px 60px;background-image:-o-linear-gradient(315deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.1) 75%,transparent 75%,transparent);background-image:linear-gradient(135deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.1) 75%,transparent 75%,transparent);-webkit-animation:animate-stripes 2s linear infinite;animation:animate-stripes 2s linear infinite}html.rl-anim .rl-animated-inited{opacity:1;-webkit-transition:opacity .5s linear;-o-transition:opacity .5s linear;transition:opacity .5s linear}html.rl-anim .rl-animated-inited.rl-animated-hidden{opacity:0}html.rl-anim.cssanimations.csstransitions.no-mobile .b-login-content .errorAnimated{-webkit-animation:login-form-shake .4s ease-in-out;animation:login-form-shake .4s ease-in-out}html.rl-anim.no-mobile .b-login-content .errorAnimated .buttonLogin{color:#b94a48;font-weight:700}html.rl-anim.cssanimations.csstransitions.no-mobile .b-login-content .afterLoginHide{opacity:0}html.rl-anim.csstransitions.no-mobile .btn-group.dropdown.colored-toggle.open .animate-this-icon-on-open{-webkit-animation:bounce-me .5s linear;animation:bounce-me .5s linear}html.rl-anim.csstransitions.no-mobile .b-login-content .loginFormWrapper{-webkit-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out}html.rl-anim.csstransitions .button-delete-transitions{-webkit-transition:all .2s linear;-o-transition:all .2s linear;transition:all .2s linear}html.rl-anim.cssanimations .b-folders .e-item .anim-action-class{-webkit-animation:highlight-folder-row .5s linear;animation:highlight-folder-row .5s linear}html.rl-anim.csstransitions .b-folders .btn.buttonContacts{-webkit-transition:margin .3s linear;-o-transition:margin .3s linear;transition:margin .3s linear}html.rl-anim.csstransitions .b-folders .b-content.opacity-on-panel-disabled{-webkit-transition:opacity .3s linear;-o-transition:opacity .3s linear;transition:opacity .3s linear}html.rl-anim.csstransitions .messageList .messageListItem{-webkit-transition:max-height .4s ease;-o-transition:max-height .4s ease;transition:max-height .4s ease}html.rl-anim.csstransitions .messageList .listDragOver{-webkit-transition:all .4s ease;-o-transition:all .4s ease;transition:all .4s ease}html.rl-anim.csstransitions .b-list-content .e-contact-item{-webkit-transition:max-height .4s ease;-o-transition:max-height .4s ease;transition:max-height .4s ease}html.rl-anim.csstransitions .modal.b-domain-content .modal-body{-webkit-transition:left .5s ease;-o-transition:left .5s ease;transition:left .5s ease}html.rl-anim.csstransitions.rl-modal.rl-modal-animation .popups{overflow:hidden}html.rl-anim.csstransitions .modal.fade{-webkit-transition:all .2s ease-out;-o-transition:all .2s ease-out;transition:all .2s ease-out;-webkit-transform:translateY(-20px);-ms-transform:translateY(-20px);transform:translateY(-20px)}html.rl-anim.csstransitions .modal.fade.in{-webkit-transform:none;-ms-transform:none;transform:none}html.rl-anim.cssanimations .b-compose.loading .b-header-toolbar{background-size:60px 60px;background-image:-o-linear-gradient(315deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);background-image:linear-gradient(135deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent);-webkit-animation:animate-stripes 2s linear infinite;animation:animate-stripes 2s linear infinite}.textLoadingAnimationD1,.textLoadingAnimationD2,.textLoadingAnimationD3{-webkit-animation:textLoadingAnimationKeyFrame 1s linear infinite 0s;animation:textLoadingAnimationKeyFrame 1s linear infinite 0s}.textLoadingAnimationD2{-webkit-animation-delay:.3s;animation-delay:.3s}.textLoadingAnimationD3{-webkit-animation-delay:.6s;animation-delay:.6s}.rl-view-model.RL-About,.rl-view-model.RL-AdminLogin,.rl-view-model.RL-Login,.rl-view-model.RL-LoginNew{position:relative;height:100%;z-index:5}.mfp-container .mfp-figure{min-height:300px;min-width:300px}.ui-resizable-e{right:-1px;width:5px}.pswp__error-msg{color:#ccc}.pswp__error-msg a,.pswp__error-msg a:hover{color:#fff}.pswp__img--placeholder{opacity:0}.opentip-container{z-index:2001!important}.opentip-container .ot-content{font-size:13px}.opentip-container.style-rainloopErrorTip .ot-content{color:red}.opentip-container.ot-hide-effect-none,.opentip-container.ot-show-effect-none{-webkit-transition:none!important;-o-transition:none!important;transition:none!important}.opentip-container.ot-show-effect-fade{-webkit-transition:none;-o-transition:none;transition:none}.opentip-container.ot-show-effect-fade.ot-hidden{opacity:0}.opentip-container.ot-show-effect-fade.ot-going-to-show{opacity:0;-webkit-transition:opacity .2s ease-in-out;-o-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.opentip-container.ot-show-effect-fade.ot-showing{opacity:1;-webkit-transition:opacity .2s ease-in-out;-o-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.opentip-container.ot-show-effect-fade.ot-visible{opacity:1;-webkit-transition:none;-o-transition:none;transition:none}svg-icon{display:none}.svg-icon{border:0;outline:0;height:16px;width:16px;display:inline-block;fill:#333}.svg-icon.svg-icon-archive{height:14px;width:14px}.lg-backdrop.in{opacity:.8}.btn .btn-text{padding-left:8px}.active-scale-transition{-webkit-transition:-webkit-transform .2s;transition:-webkit-transform .2s;-o-transition:transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s}.active-scale-transition:active{-webkit-transform:scale(.95);-ms-transform:scale(.95);transform:scale(.95)}html.glass input:-webkit-autofill,html.glass input:-webkit-autofill:active,html.glass input:-webkit-autofill:focus,html.glass input:-webkit-autofill:hover{-webkit-transition-delay:9999s;-webkit-transition:color 9999s ease-out,background-color 9999s ease-out} diff --git a/app/rainloop/v/1.15.0/static/js/admin.js b/app/rainloop/v/1.15.0/static/js/admin.js deleted file mode 100644 index 3d6fa91..0000000 --- a/app/rainloop/v/1.15.0/static/js/admin.js +++ /dev/null @@ -1,22618 +0,0 @@ -/* RainLoop Webmail (c) RainLoop Team | Licensed under AGPL v3 */ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = "rainloop/v/0.0.0/static/js/"; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 540); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/*!*****************************!*\ - !*** ./dev/Common/Enums.js ***! - \*****************************/ -/*! exports provided: FileType, StorageResultType, Focused, State, StateType, Capa, KeyState, FolderType, ServerFolderType, LoginSignMeTypeAsString, LoginSignMeType, ComposeType, UploadErrorCode, SetSystemFoldersNotification, ClientSideKeyName, EventKeyCode, MessageSetAction, MessageSelectAction, DesktopNotification, MessagePriority, EditorDefaultType, ServerSecure, SearchDateType, SaveSettingsStep, Layout, FilterConditionField, FilterConditionType, FiltersAction, FilterRulesType, SignedVerifyStatus, ContactPropertyType, Magics, Ports, Notification */ -/*! all exports used */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FileType", function() { return FileType; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StorageResultType", function() { return StorageResultType; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Focused", function() { return Focused; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "State", function() { return State; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StateType", function() { return StateType; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Capa", function() { return Capa; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeyState", function() { return KeyState; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FolderType", function() { return FolderType; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ServerFolderType", function() { return ServerFolderType; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LoginSignMeTypeAsString", function() { return LoginSignMeTypeAsString; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LoginSignMeType", function() { return LoginSignMeType; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ComposeType", function() { return ComposeType; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UploadErrorCode", function() { return UploadErrorCode; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SetSystemFoldersNotification", function() { return SetSystemFoldersNotification; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ClientSideKeyName", function() { return ClientSideKeyName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EventKeyCode", function() { return EventKeyCode; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MessageSetAction", function() { return MessageSetAction; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MessageSelectAction", function() { return MessageSelectAction; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DesktopNotification", function() { return DesktopNotification; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MessagePriority", function() { return MessagePriority; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EditorDefaultType", function() { return EditorDefaultType; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ServerSecure", function() { return ServerSecure; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SearchDateType", function() { return SearchDateType; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SaveSettingsStep", function() { return SaveSettingsStep; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Layout", function() { return Layout; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterConditionField", function() { return FilterConditionField; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterConditionType", function() { return FilterConditionType; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FiltersAction", function() { return FiltersAction; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterRulesType", function() { return FilterRulesType; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SignedVerifyStatus", function() { return SignedVerifyStatus; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContactPropertyType", function() { return ContactPropertyType; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Magics", function() { return Magics; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Ports", function() { return Ports; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Notification", function() { return Notification; }); -/* eslint quote-props: 0 */ - -/** - * @enum {string} - */ -var FileType = { - 'Unknown': 'unknown', - 'Text': 'text', - 'Html': 'html', - 'Code': 'code', - 'Eml': 'eml', - 'WordText': 'word-text', - 'Pdf': 'pdf', - 'Image': 'image', - 'Audio': 'audio', - 'Video': 'video', - 'Sheet': 'sheet', - 'Presentation': 'presentation', - 'Certificate': 'certificate', - 'CertificateBin': 'certificate-bin', - 'Archive': 'archive' -}; -/** - * @enum {string} - */ - -var StorageResultType = { - 'Success': 'success', - 'Abort': 'abort', - 'Error': 'error', - 'Unload': 'unload' -}; -/** - * @enum {string} - */ - -var Focused = { - 'None': 'none', - 'MessageList': 'message-list', - 'MessageView': 'message-view', - 'FolderList': 'folder-list' -}; -/** - * @enum {number} - */ - -var State = { - 'Empty': 10, - 'Login': 20, - 'Auth': 30 -}; -/** - * @enum {number} - */ - -var StateType = { - 'Webmail': 0, - 'Admin': 1 -}; -/** - * @enum {string} - */ - -var Capa = { - 'TwoFactor': 'TWO_FACTOR', - 'TwoFactorForce': 'TWO_FACTOR_FORCE', - 'OpenPGP': 'OPEN_PGP', - 'Prefetch': 'PREFETCH', - 'Gravatar': 'GRAVATAR', - 'Folders': 'FOLDERS', - 'Composer': 'COMPOSER', - 'Contacts': 'CONTACTS', - 'Reload': 'RELOAD', - 'Search': 'SEARCH', - 'SearchAdv': 'SEARCH_ADV', - 'MessageActions': 'MESSAGE_ACTIONS', - 'MessageListActions': 'MESSAGELIST_ACTIONS', - 'AttachmentsActions': 'ATTACHMENTS_ACTIONS', - 'DangerousActions': 'DANGEROUS_ACTIONS', - 'Settings': 'SETTINGS', - 'Help': 'HELP', - 'Themes': 'THEMES', - 'UserBackground': 'USER_BACKGROUND', - 'Sieve': 'SIEVE', - 'Filters': 'FILTERS', - 'AttachmentThumbnails': 'ATTACHMENT_THUMBNAILS', - 'Templates': 'TEMPLATES', - 'AutoLogout': 'AUTOLOGOUT', - 'AdditionalAccounts': 'ADDITIONAL_ACCOUNTS', - 'Identities': 'IDENTITIES' -}; -/** - * @enum {string} - */ - -var KeyState = { - 'All': 'all', - 'None': 'none', - 'ContactList': 'contact-list', - 'MessageList': 'message-list', - 'FolderList': 'folder-list', - 'MessageView': 'message-view', - 'Compose': 'compose', - 'Settings': 'settings', - 'Menu': 'menu', - 'PopupComposeOpenPGP': 'compose-open-pgp', - 'PopupMessageOpenPGP': 'message-open-pgp', - 'PopupViewOpenPGP': 'view-open-pgp', - 'PopupKeyboardShortcutsHelp': 'popup-keyboard-shortcuts-help', - 'PopupAsk': 'popup-ask' -}; -/** - * @enum {number} - */ - -var FolderType = { - 'Inbox': 10, - 'SentItems': 11, - 'Draft': 12, - 'Trash': 13, - 'Spam': 14, - 'Archive': 15, - 'NotSpam': 80, - 'User': 99 -}; -/** - * @enum {number} - */ - -var ServerFolderType = { - 'USER': 0, - 'INBOX': 1, - 'SENT': 2, - 'DRAFTS': 3, - 'JUNK': 4, - 'TRASH': 5, - 'IMPORTANT': 10, - 'FLAGGED': 11, - 'ALL': 12 -}; -/** - * @enum {string} - */ - -var LoginSignMeTypeAsString = { - 'DefaultOff': 'defaultoff', - 'DefaultOn': 'defaulton', - 'Unused': 'unused' -}; -/** - * @enum {number} - */ - -var LoginSignMeType = { - 'DefaultOff': 0, - 'DefaultOn': 1, - 'Unused': 2 -}; -/** - * @enum {string} - */ - -var ComposeType = { - 'Empty': 'empty', - 'Reply': 'reply', - 'ReplyAll': 'replyall', - 'Forward': 'forward', - 'ForwardAsAttachment': 'forward-as-attachment', - 'Draft': 'draft', - 'EditAsNew': 'editasnew' -}; -/** - * @enum {number} - */ - -var UploadErrorCode = { - 'Normal': 0, - 'FileIsTooBig': 1, - 'FilePartiallyUploaded': 2, - 'FileNoUploaded': 3, - 'MissingTempFolder': 4, - 'FileOnSaveingError': 5, - 'FileType': 98, - 'Unknown': 99 -}; -/** - * @enum {number} - */ - -var SetSystemFoldersNotification = { - 'None': 0, - 'Sent': 1, - 'Draft': 2, - 'Spam': 3, - 'Trash': 4, - 'Archive': 5 -}; -/** - * @enum {number} - */ - -var ClientSideKeyName = { - 'FoldersLashHash': 0, - 'MessagesInboxLastHash': 1, - 'MailBoxListSize': 2, - 'ExpandedFolders': 3, - 'FolderListSize': 4, - 'MessageListSize': 5, - 'LastReplyAction': 6, - 'LastSignMe': 7, - 'ComposeLastIdentityID': 8, - 'MessageHeaderFullInfo': 9, - 'MessageAttachmnetControls': 10 -}; -/** - * @enum {number} - */ - -var EventKeyCode = { - 'Backspace': 8, - 'Tab': 9, - 'Enter': 13, - 'Esc': 27, - 'PageUp': 33, - 'PageDown': 34, - 'Left': 37, - 'Right': 39, - 'Up': 38, - 'Down': 40, - 'End': 35, - 'Home': 36, - 'Space': 32, - 'Insert': 45, - 'Delete': 46, - 'A': 65, - 'S': 83 -}; -/** - * @enum {number} - */ - -var MessageSetAction = { - 'SetSeen': 0, - 'UnsetSeen': 1, - 'SetFlag': 2, - 'UnsetFlag': 3 -}; -/** - * @enum {number} - */ - -var MessageSelectAction = { - 'All': 0, - 'None': 1, - 'Invert': 2, - 'Unseen': 3, - 'Seen': 4, - 'Flagged': 5, - 'Unflagged': 6 -}; -/** - * @enum {number} - */ - -var DesktopNotification = { - 'Allowed': 0, - 'NotAllowed': 1, - 'Denied': 2, - 'NotSupported': 9 -}; -/** - * @enum {number} - */ - -var MessagePriority = { - 'Low': 5, - 'Normal': 3, - 'High': 1 -}; -/** - * @enum {string} - */ - -var EditorDefaultType = { - 'Html': 'Html', - 'Plain': 'Plain', - 'HtmlForced': 'HtmlForced', - 'PlainForced': 'PlainForced' -}; -/** - * @enum {number} - */ - -var ServerSecure = { - 'None': 0, - 'SSL': 1, - 'TLS': 2 -}; -/** - * @enum {number} - */ - -var SearchDateType = { - 'All': -1, - 'Days3': 3, - 'Days7': 7, - 'Month': 30 -}; -/** - * @enum {number} - */ - -var SaveSettingsStep = { - 'Animate': -2, - 'Idle': -1, - 'TrueResult': 1, - 'FalseResult': 0 -}; -/** - * @enum {number} - */ - -var Layout = { - 'NoPreview': 0, - 'SidePreview': 1, - 'BottomPreview': 2 -}; -/** - * @enum {string} - */ - -var FilterConditionField = { - 'From': 'From', - 'Recipient': 'Recipient', - 'Subject': 'Subject', - 'Header': 'Header', - 'Size': 'Size' -}; -/** - * @enum {string} - */ - -var FilterConditionType = { - 'Contains': 'Contains', - 'NotContains': 'NotContains', - 'EqualTo': 'EqualTo', - 'NotEqualTo': 'NotEqualTo', - 'Regex': 'Regex', - 'Over': 'Over', - 'Under': 'Under' -}; -/** - * @enum {string} - */ - -var FiltersAction = { - 'None': 'None', - 'MoveTo': 'MoveTo', - 'Discard': 'Discard', - 'Vacation': 'Vacation', - 'Reject': 'Reject', - 'Forward': 'Forward' -}; -/** - * @enum {string} - */ - -var FilterRulesType = { - 'All': 'All', - 'Any': 'Any' -}; -/** - * @enum {number} - */ - -var SignedVerifyStatus = { - 'UnknownPublicKeys': -4, - 'UnknownPrivateKey': -3, - 'Unverified': -2, - 'Error': -1, - 'None': 0, - 'Success': 1 -}; -/** - * @enum {number} - */ - -var ContactPropertyType = { - 'Unknown': 0, - 'FullName': 10, - 'FirstName': 15, - 'LastName': 16, - 'MiddleName': 16, - 'Nick': 18, - 'NamePrefix': 20, - 'NameSuffix': 21, - 'Email': 30, - 'Phone': 31, - 'Web': 32, - 'Birthday': 40, - 'Facebook': 90, - 'Skype': 91, - 'GitHub': 92, - 'Note': 110, - 'Custom': 250 -}; -/** - * @enum {number} - */ - -var Magics = { - 'EventWhichMouseMiddle': 3, - 'ifvisibleIdle10s': 10, - 'BitLength2048': 2048, - 'BitLength1024': 1024, - 'Size350px': 350, - 'Size50px': 50, - 'Size20px': 20, - 'Size1px': 1, - 'Time30mInMin': 30, - 'Time60m': 60000 * 60, - 'Time30m': 60000 * 30, - 'Time20m': 60000 * 20, - 'Time15m': 60000 * 15, - 'Time10m': 60000 * 10, - 'Time5m': 60000 * 5, - 'Time3m': 60000 * 3, - 'Time2m': 60000 * 2, - 'Time1m': 60000, - 'Time30s': 30000, - 'Time10s': 10000, - 'Time7s': 7000, - 'Time5s': 5000, - 'Time3s': 3000, - 'Time1s': 1000, - 'Time500ms': 500, - 'Time350ms': 350, - 'Time250ms': 250, - 'Time200ms': 200, - 'Time100ms': 100, - 'Time50ms': 50, - 'Time20ms': 20, - 'Time10ms': 10, - 'Time1ms': 1 -}; -/** - * @enum {number} - */ - -var Ports = { - 'Imap': 143, - 'ImapSsl': 993, - 'Smtp': 25, - 'SmtpSsl': 465, - 'SmtpStartTls': 587 -}; -/** - * @enum {number} - */ - -var Notification = { - 'InvalidToken': 101, - 'AuthError': 102, - 'AccessError': 103, - 'ConnectionError': 104, - 'CaptchaError': 105, - 'SocialFacebookLoginAccessDisable': 106, - 'SocialTwitterLoginAccessDisable': 107, - 'SocialGoogleLoginAccessDisable': 108, - 'DomainNotAllowed': 109, - 'AccountNotAllowed': 110, - 'AccountTwoFactorAuthRequired': 120, - 'AccountTwoFactorAuthError': 121, - 'CouldNotSaveNewPassword': 130, - 'CurrentPasswordIncorrect': 131, - 'NewPasswordShort': 132, - 'NewPasswordWeak': 133, - 'NewPasswordForbidden': 134, - 'ContactsSyncError': 140, - 'CantGetMessageList': 201, - 'CantGetMessage': 202, - 'CantDeleteMessage': 203, - 'CantMoveMessage': 204, - 'CantCopyMessage': 205, - 'CantSaveMessage': 301, - 'CantSendMessage': 302, - 'InvalidRecipients': 303, - 'CantSaveFilters': 351, - 'CantGetFilters': 352, - 'FiltersAreNotCorrect': 355, - 'CantCreateFolder': 400, - 'CantRenameFolder': 401, - 'CantDeleteFolder': 402, - 'CantSubscribeFolder': 403, - 'CantUnsubscribeFolder': 404, - 'CantDeleteNonEmptyFolder': 405, - 'CantSaveSettings': 501, - 'CantSavePluginSettings': 502, - 'DomainAlreadyExists': 601, - 'CantInstallPackage': 701, - 'CantDeletePackage': 702, - 'InvalidPluginPackage': 703, - 'UnsupportedPluginPackage': 704, - 'LicensingServerIsUnavailable': 710, - 'LicensingExpired': 711, - 'LicensingBanned': 712, - 'DemoSendMessageError': 750, - 'DemoAccountError': 751, - 'AccountAlreadyExists': 801, - 'AccountDoesNotExist': 802, - 'MailServerError': 901, - 'ClientViewError': 902, - 'InvalidInputArgument': 903, - 'AjaxFalse': 950, - 'AjaxAbort': 951, - 'AjaxParse': 952, - 'AjaxTimeout': 953, - 'UnknownNotification': 999, - 'UnknownError': 999 -}; - -/***/ }), -/* 1 */ -/*!****************************!*\ - !*** ./dev/External/ko.js ***! - \****************************/ -/*! exports provided: default */ -/*! exports used: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.object.to-string */ 63); -/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.regexp.to-string */ 111); -/* harmony import */ var core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var core_js_modules_es_string_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.string.link */ 175); -/* harmony import */ var core_js_modules_es_string_link__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_link__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/web.timers */ 68); -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 18); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/index-of */ 30); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_trim__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/trim */ 139); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_trim__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_trim__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find */ 12); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_9__); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! $ */ 8); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_10__); -/* harmony import */ var Opentip__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Opentip */ 213); -/* harmony import */ var pikaday__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! pikaday */ 214); -/* harmony import */ var pikaday__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(pikaday__WEBPACK_IMPORTED_MODULE_12__); -/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! Common/Enums */ 0); - - - - - - - - - - - - - - - -var ko = window__WEBPACK_IMPORTED_MODULE_8___default.a.ko, - $win = $__WEBPACK_IMPORTED_MODULE_10___default()(window__WEBPACK_IMPORTED_MODULE_8___default.a), - fDisposalTooltipHelper = function fDisposalTooltipHelper(element) { - ko.utils.domNodeDisposal.addDisposeCallback(element, function () { - if (element && element.__opentip) { - element.__opentip.deactivate(); - } - }); -}; - -ko.bindingHandlers.updateWidth = { - init: function init(element, fValueAccessor) { - var $el = $__WEBPACK_IMPORTED_MODULE_10___default()(element), - fValue = fValueAccessor(), - fInit = function fInit() { - fValue($el.width()); - window__WEBPACK_IMPORTED_MODULE_8___default.a.setTimeout(function () { - fValue($el.width()); - }, Common_Enums__WEBPACK_IMPORTED_MODULE_13__["Magics"].Time500ms); - }; - - $win.on('resize', fInit); - fInit(); - ko.utils.domNodeDisposal.addDisposeCallback(element, function () { - $win.off('resize', fInit); - }); - } -}; -ko.bindingHandlers.editor = { - init: function init(element, fValueAccessor) { - var editor = null; - - var fValue = fValueAccessor(), - HtmlEditor = __webpack_require__(/*! Common/HtmlEditor */ 210).default, - fUpdateEditorValue = function fUpdateEditorValue() { - if (fValue && fValue.__editor) { - fValue.__editor.setHtmlOrPlain(fValue()); - } - }, - fUpdateKoValue = function fUpdateKoValue() { - if (fValue && fValue.__editor) { - fValue(fValue.__editor.getDataWithHtmlMark()); - } - }, - fOnReady = function fOnReady() { - fValue.__editor = editor; - fUpdateEditorValue(); - }; - - if (ko.isObservable(fValue) && HtmlEditor) { - editor = new HtmlEditor(element, fUpdateKoValue, fOnReady, fUpdateKoValue); - fValue.__fetchEditorValue = fUpdateKoValue; - fValue.subscribe(fUpdateEditorValue); // ko.utils.domNodeDisposal.addDisposeCallback(element, () => { - // }); - } - } -}; -ko.bindingHandlers.json = { - init: function init(element, fValueAccessor) { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).text(window__WEBPACK_IMPORTED_MODULE_8___default.a.JSON.stringify(ko.unwrap(fValueAccessor()))); - }, - update: function update(element, fValueAccessor) { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).text(window__WEBPACK_IMPORTED_MODULE_8___default.a.JSON.stringify(ko.unwrap(fValueAccessor()))); - } -}; -ko.bindingHandlers.scrollerShadows = { - init: function init(element) { - var limit = 8, - $el = $__WEBPACK_IMPORTED_MODULE_10___default()(element), - cont = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()($el).call($el, '[data-scroller-shadows-content]')[0] || null, - fFunc = ___WEBPACK_IMPORTED_MODULE_9___default.a.throttle(function () { - $el.toggleClass('scroller-shadow-top', limit < cont.scrollTop).toggleClass('scroller-shadow-bottom', cont.scrollTop + limit < cont.scrollHeight - cont.clientHeight); - }, 100); - - if (cont) { - $__WEBPACK_IMPORTED_MODULE_10___default()(cont).on('scroll resize', fFunc); - $win.on('resize', fFunc); - ko.utils.domNodeDisposal.addDisposeCallback(cont, function () { - $__WEBPACK_IMPORTED_MODULE_10___default()(cont).off(); - $win.off('resize', fFunc); - }); - } - } -}; -ko.bindingHandlers.pikaday = { - init: function init(element, fValueAccessor, fAllBindingsAccessor, viewModel, bindingContext) { - ko.bindingHandlers.textInput.init(element, fValueAccessor, fAllBindingsAccessor, viewModel, bindingContext); - - if (pikaday__WEBPACK_IMPORTED_MODULE_12___default.a) { - element.__pikaday = new pikaday__WEBPACK_IMPORTED_MODULE_12___default.a({ - field: element - }); - } - } -}; -ko.bindingHandlers.visibleAnimated = { - init: function init(element, fValueAccessor) { - var $el = $__WEBPACK_IMPORTED_MODULE_10___default()(element); - $el.addClass('rl-animated-inited'); - - if (ko.unwrap(fValueAccessor())) { - $el.show(); - } else { - $el.hide(); - } - }, - update: function update(element, fValueAccessor) { - var $el = $__WEBPACK_IMPORTED_MODULE_10___default()(element); - - if (ko.unwrap(fValueAccessor())) { - $el.addClass('rl-animated-hidden').show(); - - ___WEBPACK_IMPORTED_MODULE_9___default.a.delay(function () { - $el.removeClass('rl-animated-hidden'); - }, 10); - } else { - $el.hide().removeClass('rl-animated-hidden'); - } - } -}; -ko.bindingHandlers.tooltip = { - init: function init(element, fValueAccessor) { - var $el = $__WEBPACK_IMPORTED_MODULE_10___default()(element), - fValue = fValueAccessor(), - isMobile = 'on' === ($el.data('tooltip-mobile') || 'off'), - isI18N = 'on' === ($el.data('tooltip-i18n') || 'on'), - Globals = __webpack_require__(/*! Common/Globals */ 6); - - if (!Globals.bMobileDevice || isMobile) { - var sValue = !ko.isObservable(fValue) && ___WEBPACK_IMPORTED_MODULE_9___default.a.isFunction(fValue) ? fValue() : ko.unwrap(fValue); - element.__opentip = new Opentip__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"](element, { - 'style': 'rainloopTip', - 'element': element, - 'tipJoint': $el.data('tooltip-join') || 'bottom' - }); - Globals.dropdownVisibility.subscribe(function (v) { - if (v) { - element.__opentip.hide(); - } - }); - - if ('' === sValue) { - element.__opentip.hide(); - - element.__opentip.deactivate(); - - element.__opentip.setContent(''); - } else { - element.__opentip.activate(); - } - - if (isI18N) { - var Translator = __webpack_require__(/*! Common/Translator */ 9); - - element.__opentip.setContent(Translator.i18n(sValue)); - - Translator.trigger.subscribe(function () { - element.__opentip.setContent(Translator.i18n(sValue)); - }); - Globals.dropdownVisibility.subscribe(function () { - if (element && element.__opentip) { - element.__opentip.setContent(Translator.i18n(sValue)); - } - }); - } else { - element.__opentip.setContent(sValue); - } - - $win.on('rl.tooltips.diactivate', function () { - element.__opentip.hide(); - - element.__opentip.deactivate(); - }); - $win.on('rl.tooltips.activate', function () { - element.__opentip.activate(); - }); - } - }, - update: function update(element, fValueAccessor) { - var $el = $__WEBPACK_IMPORTED_MODULE_10___default()(element), - fValue = fValueAccessor(), - isMobile = 'on' === ($el.data('tooltip-mobile') || 'off'), - isI18N = 'on' === ($el.data('tooltip-i18n') || 'on'), - Globals = __webpack_require__(/*! Common/Globals */ 6); - - if ((!Globals.bMobileDevice || isMobile) && element.__opentip) { - var sValue = !ko.isObservable(fValue) && ___WEBPACK_IMPORTED_MODULE_9___default.a.isFunction(fValue) ? fValue() : ko.unwrap(fValue); - - if (sValue) { - element.__opentip.setContent(isI18N ? __webpack_require__(/*! Common/Translator */ 9).i18n(sValue) : sValue); - - element.__opentip.activate(); - } else { - element.__opentip.hide(); - - element.__opentip.deactivate(); - - element.__opentip.setContent(''); - } - } - } -}; -ko.bindingHandlers.tooltipErrorTip = { - init: function init(element) { - var $el = $__WEBPACK_IMPORTED_MODULE_10___default()(element); - element.__opentip = new Opentip__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"](element, { - style: 'rainloopErrorTip', - hideOn: 'mouseout click', - element: element, - tipJoint: $el.data('tooltip-join') || 'top' - }); - - element.__opentip.deactivate(); - - $__WEBPACK_IMPORTED_MODULE_10___default()(window__WEBPACK_IMPORTED_MODULE_8___default.a.document).on('click', function () { - if (element && element.__opentip) { - element.__opentip.hide(); - } - }); - fDisposalTooltipHelper(element); - }, - update: function update(element, fValueAccessor) { - var $el = $__WEBPACK_IMPORTED_MODULE_10___default()(element), - fValue = fValueAccessor(), - value = !ko.isObservable(fValue) && ___WEBPACK_IMPORTED_MODULE_9___default.a.isFunction(fValue) ? fValue() : ko.unwrap(fValue), - openTips = element.__opentip; - - if (openTips) { - if ('' === value) { - openTips.hide(); - openTips.deactivate(); - openTips.setContent(''); - } else { - ___WEBPACK_IMPORTED_MODULE_9___default.a.delay(function () { - if ($el.is(':visible')) { - openTips.setContent(value); - openTips.activate(); - openTips.show(); - } else { - openTips.hide(); - openTips.deactivate(); - openTips.setContent(''); - } - }, Common_Enums__WEBPACK_IMPORTED_MODULE_13__["Magics"].Time100ms); - } - } - } -}; -ko.bindingHandlers.registrateBootstrapDropdown = { - init: function init(element) { - var Globals = __webpack_require__(/*! Common/Globals */ 6); - - if (Globals && Globals.data.aBootstrapDropdowns) { - Globals.data.aBootstrapDropdowns.push($__WEBPACK_IMPORTED_MODULE_10___default()(element)); - $__WEBPACK_IMPORTED_MODULE_10___default()(element).click(function () { - __webpack_require__(/*! Common/Utils */ 2).detectDropdownVisibility(); - }); // ko.utils.domNodeDisposal.addDisposeCallback(element, () => { - // }); - } - } -}; -ko.bindingHandlers.openDropdownTrigger = { - update: function update(element, fValueAccessor) { - if (ko.unwrap(fValueAccessor())) { - var $el = $__WEBPACK_IMPORTED_MODULE_10___default()(element); - - if (!$el.hasClass('open')) { - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()($el).call($el, '.dropdown-toggle').dropdown('toggle'); - } - - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()($el).call($el, '.dropdown-toggle').focus(); - - __webpack_require__(/*! Common/Utils */ 2).detectDropdownVisibility(); - - fValueAccessor()(false); - } - } -}; -ko.bindingHandlers.dropdownCloser = { - init: function init(element) { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).closest('.dropdown').on('click', '.e-item', function () { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).dropdown('toggle'); - }); - } -}; -ko.bindingHandlers.popover = { - init: function init(element, fValueAccessor) { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).popover(ko.unwrap(fValueAccessor())); - ko.utils.domNodeDisposal.addDisposeCallback(element, function () { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).popover('destroy'); - }); - } -}; -ko.bindingHandlers.csstext = {}; - -ko.bindingHandlers.csstext.init = ko.bindingHandlers.csstext.update = function (element, fValueAccessor) { - if (element && element.styleSheet && 'undefined' !== typeof element.styleSheet.cssText) { - element.styleSheet.cssText = ko.unwrap(fValueAccessor()); - } else { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).text(ko.unwrap(fValueAccessor())); - } -}; - -ko.bindingHandlers.resizecrop = { - init: function init(element) { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).addClass('resizecrop').resizecrop({ - 'width': '100', - 'height': '100', - 'wrapperCSS': { - 'border-radius': '10px' - } - }); - }, - update: function update(element, fValueAccessor) { - fValueAccessor()(); - $__WEBPACK_IMPORTED_MODULE_10___default()(element).resizecrop({ - 'width': '100', - 'height': '100' - }); - } -}; -ko.bindingHandlers.onKeyDown = { - init: function init(element, fValueAccessor, fAllBindingsAccessor, viewModel) { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).on('keydown.koOnKeyDown', function (event) { - if (event) { - return fValueAccessor().call(viewModel, event); - } - - return true; - }); - ko.utils.domNodeDisposal.addDisposeCallback(element, function () { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).off('keydown.koOnKeyDown'); - }); - } -}; -ko.bindingHandlers.onEnter = { - init: function init(element, fValueAccessor, fAllBindingsAccessor, viewModel) { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).on('keypress.koOnEnter', function (event) { - if (event && 13 === window__WEBPACK_IMPORTED_MODULE_8___default.a.parseInt(event.keyCode, 10)) { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).trigger('change'); - fValueAccessor().call(viewModel); - } - }); - ko.utils.domNodeDisposal.addDisposeCallback(element, function () { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).off('keypress.koOnEnter'); - }); - } -}; -ko.bindingHandlers.onSpace = { - init: function init(element, fValueAccessor, fAllBindingsAccessor, viewModel) { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).on('keyup.koOnSpace', function (event) { - if (event && 32 === window__WEBPACK_IMPORTED_MODULE_8___default.a.parseInt(event.keyCode, 10)) { - fValueAccessor().call(viewModel, event); - } - }); - ko.utils.domNodeDisposal.addDisposeCallback(element, function () { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).off('keyup.koOnSpace'); - }); - } -}; -ko.bindingHandlers.onTab = { - init: function init(element, fValueAccessor, fAllBindingsAccessor, viewModel) { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).on('keydown.koOnTab', function (event) { - if (event && 9 === window__WEBPACK_IMPORTED_MODULE_8___default.a.parseInt(event.keyCode, 10)) { - return fValueAccessor().call(viewModel, !!event.shiftKey); - } - - return true; - }); - ko.utils.domNodeDisposal.addDisposeCallback(element, function () { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).off('keydown.koOnTab'); - }); - } -}; -ko.bindingHandlers.onEsc = { - init: function init(element, fValueAccessor, fAllBindingsAccessor, viewModel) { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).on('keyup.koOnEsc', function (event) { - if (event && 27 === window__WEBPACK_IMPORTED_MODULE_8___default.a.parseInt(event.keyCode, 10)) { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).trigger('change'); - fValueAccessor().call(viewModel); - } - }); - ko.utils.domNodeDisposal.addDisposeCallback(element, function () { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).off('keyup.koOnEsc'); - }); - } -}; -ko.bindingHandlers.clickOnTrue = { - update: function update(element, fValueAccessor) { - if (ko.unwrap(fValueAccessor())) { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).click(); - } - } -}; -ko.bindingHandlers.modal = { - init: function init(element, fValueAccessor) { - var _context; - - var Globals = __webpack_require__(/*! Common/Globals */ 6), - Utils = __webpack_require__(/*! Common/Utils */ 2); - - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()(_context = $__WEBPACK_IMPORTED_MODULE_10___default()(element).toggleClass('fade', !Globals.bMobileDevice).modal({ - 'keyboard': false, - 'show': ko.unwrap(fValueAccessor()) - }).on('shown.koModal', Utils.windowResizeCallback)).call(_context, '.close').on('click.koModal', function () { - fValueAccessor()(false); - }); - - ko.utils.domNodeDisposal.addDisposeCallback(element, function () { - var _context2; - - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()(_context2 = $__WEBPACK_IMPORTED_MODULE_10___default()(element).off('shown.koModal')).call(_context2, '.close').off('click.koModal'); - }); - }, - update: function update(element, fValueAccessor) { - var Globals = __webpack_require__(/*! Common/Globals */ 6); - - $__WEBPACK_IMPORTED_MODULE_10___default()(element).modal(ko.unwrap(fValueAccessor()) ? 'show' : 'hide'); - - if (Globals.$html.hasClass('rl-anim')) { - Globals.$html.addClass('rl-modal-animation'); - - ___WEBPACK_IMPORTED_MODULE_9___default.a.delay(function () { - Globals.$html.removeClass('rl-modal-animation'); - }, Common_Enums__WEBPACK_IMPORTED_MODULE_13__["Magics"].Time500ms); - } - } -}; -ko.bindingHandlers.moment = { - init: function init(element, fValueAccessor) { - __webpack_require__(/*! Common/Momentor */ 60).momentToNode($__WEBPACK_IMPORTED_MODULE_10___default()(element).addClass('moment').data('moment-time', ko.unwrap(fValueAccessor()))); - }, - update: function update(element, fValueAccessor) { - __webpack_require__(/*! Common/Momentor */ 60).momentToNode($__WEBPACK_IMPORTED_MODULE_10___default()(element).data('moment-time', ko.unwrap(fValueAccessor()))); - } -}; -ko.bindingHandlers.i18nInit = { - init: function init(element) { - __webpack_require__(/*! Common/Translator */ 9).i18nToNodes(element); - } -}; -ko.bindingHandlers.translatorInit = { - init: function init(element) { - __webpack_require__(/*! Common/Translator */ 9).i18nToNodes(element); - } -}; -ko.bindingHandlers.i18nUpdate = { - update: function update(element, fValueAccessor) { - ko.unwrap(fValueAccessor()); - - __webpack_require__(/*! Common/Translator */ 9).i18nToNodes(element); - } -}; -ko.bindingHandlers.link = { - update: function update(element, fValueAccessor) { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).attr('href', ko.unwrap(fValueAccessor())); - } -}; -ko.bindingHandlers.title = { - update: function update(element, fValueAccessor) { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).attr('title', ko.unwrap(fValueAccessor())); - } -}; -ko.bindingHandlers.textF = { - init: function init(element, fValueAccessor) { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).text(ko.unwrap(fValueAccessor())); - } -}; -ko.bindingHandlers.initDom = { - init: function init(element, fValueAccessor) { - fValueAccessor()(element); - } -}; -ko.bindingHandlers.initFixedTrigger = { - init: function init(element, fValueAccessor) { - var values = ko.unwrap(fValueAccessor()), - $el = $__WEBPACK_IMPORTED_MODULE_10___default()(element), - top = values[1] || 0; - var $container = $__WEBPACK_IMPORTED_MODULE_10___default()(values[0] || null); - $container = $container[0] ? $container : null; - - if ($container) { - $win.resize(function () { - var offset = $container ? $container.offset() : null; - - if (offset && offset.top) { - $el.css('top', offset.top + top); - } - }); - } - } -}; -ko.bindingHandlers.initResizeTrigger = { - init: function init(element, fValueAccessor) { - var values = ko.unwrap(fValueAccessor()); - $__WEBPACK_IMPORTED_MODULE_10___default()(element).css({ - 'height': values[1], - 'min-height': values[1] - }); - }, - update: function update(oElement, fValueAccessor) { - var Utils = __webpack_require__(/*! Common/Utils */ 2), - Globals = __webpack_require__(/*! Common/Globals */ 6), - values = ko.unwrap(fValueAccessor()); - - var value = Utils.pInt(values[1]), - size = 0, - offset = $__WEBPACK_IMPORTED_MODULE_10___default()(oElement).offset().top; - - if (0 < offset) { - offset += Utils.pInt(values[2]); - size = Globals.$win.height() - offset; - - if (value < size) { - value = size; - } - - $__WEBPACK_IMPORTED_MODULE_10___default()(oElement).css({ - 'height': value, - 'min-height': value - }); - } - } -}; -ko.bindingHandlers.appendDom = { - update: function update(element, fValueAccessor) { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).hide().empty().append(ko.unwrap(fValueAccessor())).show(); - } -}; -ko.bindingHandlers.draggable = { - init: function init(element, fValueAccessor, fAllBindingsAccessor) { - var Globals = __webpack_require__(/*! Common/Globals */ 6), - Utils = __webpack_require__(/*! Common/Utils */ 2); - - if (!Globals.bMobileDevice) { - var triggerZone = 100, - scrollSpeed = 3, - fAllValueFunc = fAllBindingsAccessor(), - droppableSelector = fAllValueFunc && fAllValueFunc.droppableSelector ? fAllValueFunc.droppableSelector : '', - conf = { - distance: 20, - handle: '.dragHandle', - cursorAt: { - top: 22, - left: 3 - }, - refreshPositions: true, - scroll: true, - drag: null, - stop: null, - helper: null - }; - - if (droppableSelector) { - conf.drag = function (event) { - $__WEBPACK_IMPORTED_MODULE_10___default()(droppableSelector).each(function () { - var $this = $__WEBPACK_IMPORTED_MODULE_10___default()(this), - // eslint-disable-line no-invalid-this - offset = $this.offset(), - bottomPos = offset.top + $this.height(); - window__WEBPACK_IMPORTED_MODULE_8___default.a.clearInterval($this.data('timerScroll')); - $this.data('timerScroll', false); - - if (event.pageX >= offset.left && event.pageX <= offset.left + $this.width()) { - if (event.pageY >= bottomPos - triggerZone && event.pageY <= bottomPos) { - var moveUp = function moveUp() { - $this.scrollTop($this.scrollTop() + scrollSpeed); - Utils.windowResize(); - }; - - $this.data('timerScroll', window__WEBPACK_IMPORTED_MODULE_8___default.a.setInterval(moveUp, 10)); - moveUp(); - } - - if (event.pageY >= offset.top && event.pageY <= offset.top + triggerZone) { - var moveDown = function moveDown() { - $this.scrollTop($this.scrollTop() - scrollSpeed); - Utils.windowResize(); - }; - - $this.data('timerScroll', window__WEBPACK_IMPORTED_MODULE_8___default.a.setInterval(moveDown, 10)); - moveDown(); - } - } - }); - }; - - conf.stop = function () { - $__WEBPACK_IMPORTED_MODULE_10___default()(droppableSelector).each(function () { - var $this = $__WEBPACK_IMPORTED_MODULE_10___default()(this); // eslint-disable-line no-invalid-this - - window__WEBPACK_IMPORTED_MODULE_8___default.a.clearInterval($this.data('timerScroll')); - $this.data('timerScroll', false); - }); - }; - } - - conf.helper = function (event) { - return fValueAccessor()(event && event.target ? ko.dataFor(event.target) : null); - }; - - $__WEBPACK_IMPORTED_MODULE_10___default()(element).draggable(conf).on('mousedown.koDraggable', function () { - Utils.removeInFocus(); - }); - ko.utils.domNodeDisposal.addDisposeCallback(element, function () { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).off('mousedown.koDraggable').draggable('destroy'); - }); - } - } -}; -ko.bindingHandlers.droppable = { - init: function init(element, fValueAccessor, fAllBindingsAccessor) { - var Globals = __webpack_require__(/*! Common/Globals */ 6); - - if (!Globals.bMobileDevice) { - var fValueFunc = fValueAccessor(), - fAllValueFunc = fAllBindingsAccessor(), - fOverCallback = fAllValueFunc && fAllValueFunc.droppableOver ? fAllValueFunc.droppableOver : null, - fOutCallback = fAllValueFunc && fAllValueFunc.droppableOut ? fAllValueFunc.droppableOut : null, - conf = { - tolerance: 'pointer', - hoverClass: 'droppableHover', - drop: null, - over: null, - out: null - }; - - if (fValueFunc) { - conf.drop = function (event, ui) { - fValueFunc(event, ui); - }; - - if (fOverCallback) { - conf.over = function (event, ui) { - fOverCallback(event, ui); - }; - } - - if (fOutCallback) { - conf.out = function (event, ui) { - fOutCallback(event, ui); - }; - } - - $__WEBPACK_IMPORTED_MODULE_10___default()(element).droppable(conf); - ko.utils.domNodeDisposal.addDisposeCallback(element, function () { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).droppable('destroy'); - }); - } - } - } -}; -ko.bindingHandlers.nano = { - init: function init(element) { - var Globals = __webpack_require__(/*! Common/Globals */ 6), - Settings = __webpack_require__(/*! Storage/Settings */ 5); - - if (!Globals.bDisableNanoScroll && !Settings.appSettingsGet('useNativeScrollbars')) { - $__WEBPACK_IMPORTED_MODULE_10___default()(element).addClass('nano').nanoScroller({ - iOSNativeScrolling: false, - preventPageScrolling: true - }); - } - } -}; -ko.bindingHandlers.saveTrigger = { - init: function init(element) { - var $el = $__WEBPACK_IMPORTED_MODULE_10___default()(element); - $el.data('save-trigger-type', $el.is('input[type=text],input[type=email],input[type=password],select,textarea') ? 'input' : 'custom'); - - if ('custom' === $el.data('save-trigger-type')) { - $el.append('  ' + '' + '' + '').addClass('settings-saved-trigger'); - } else { - $el.addClass('settings-saved-trigger-input'); - } - }, - update: function update(element, fValueAccessor) { - var _context3, _context4, _context5, _context6; - - var value = ko.unwrap(fValueAccessor()), - $el = $__WEBPACK_IMPORTED_MODULE_10___default()(element); - - if ('custom' === $el.data('save-trigger-type')) { - switch (value.toString()) { - case '1': - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()(_context3 = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()($el).call($el, '.animated,.error').hide().removeClass('visible').end()).call(_context3, '.success').show().addClass('visible'); - - break; - - case '0': - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()(_context4 = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()($el).call($el, '.animated,.success').hide().removeClass('visible').end()).call(_context4, '.error').show().addClass('visible'); - - break; - - case '-2': - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()(_context5 = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()($el).call($el, '.error,.success').hide().removeClass('visible').end()).call(_context5, '.animated').show().addClass('visible'); - - break; - - default: - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()(_context6 = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()($el).call($el, '.animated').hide().end()).call(_context6, '.error,.success').removeClass('visible'); - - break; - } - } else { - switch (value.toString()) { - case '1': - $el.addClass('success').removeClass('error'); - break; - - case '0': - $el.addClass('error').removeClass('success'); - break; - - case '-2': - break; - - default: - $el.removeClass('error success'); - break; - } - } - } -}; -ko.bindingHandlers.emailsTags = { - init: function init(element, fValueAccessor, fAllBindingsAccessor) { - var Utils = __webpack_require__(/*! Common/Utils */ 2), - EmailModel = __webpack_require__(/*! Model/Email */ 82).default, - $el = $__WEBPACK_IMPORTED_MODULE_10___default()(element), - fValue = fValueAccessor(), - fAllBindings = fAllBindingsAccessor(), - fAutoCompleteSource = fAllBindings.autoCompleteSource || null, - inputDelimiters = [',', ';', '\n'], - fFocusCallback = function fFocusCallback(value) { - if (fValue && fValue.focused) { - fValue.focused(!!value); - } - }; - - $el.inputosaurus({ - parseOnBlur: true, - allowDragAndDrop: true, - focusCallback: fFocusCallback, - inputDelimiters: inputDelimiters, - autoCompleteSource: fAutoCompleteSource, - splitHook: function splitHook(value) { - var v = _babel_runtime_corejs3_core_js_stable_instance_trim__WEBPACK_IMPORTED_MODULE_6___default()(Utils).call(Utils, value); - - if (v && -1 < _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_5___default()(inputDelimiters).call(inputDelimiters, v.substr(-1))) { - return EmailModel.splitEmailLine(value); - } - - return null; - }, - parseHook: function parseHook(input) { - return _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4___default()(___WEBPACK_IMPORTED_MODULE_9___default.a).call(___WEBPACK_IMPORTED_MODULE_9___default.a, ___WEBPACK_IMPORTED_MODULE_9___default.a.flatten(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4___default()(___WEBPACK_IMPORTED_MODULE_9___default.a).call(___WEBPACK_IMPORTED_MODULE_9___default.a, input, function (inputValue) { - var values = EmailModel.parseEmailLine(inputValue); - return values.length ? values : inputValue; - })), function (item) { - return ___WEBPACK_IMPORTED_MODULE_9___default.a.isObject(item) ? [item.toLine(false), item] : [item, null]; - }); - }, - change: function change(event) { - $el.data('EmailsTagsValue', event.target.value); - fValue(event.target.value); - } - }); - - if (fValue && fValue.focused && fValue.focused.subscribe) { - fValue.focused.subscribe(function (value) { - $el.inputosaurus(value ? 'focus' : 'blur'); - }); - } - }, - update: function update(element, fValueAccessor) { - var $oEl = $__WEBPACK_IMPORTED_MODULE_10___default()(element), - fValue = fValueAccessor(), - value = ko.unwrap(fValue); - - if ($oEl.data('EmailsTagsValue') !== value) { - $oEl.val(value); - $oEl.data('EmailsTagsValue', value); - $oEl.inputosaurus('refresh'); - } - } -}; -ko.bindingHandlers.command = { - init: function init(element, fValueAccessor, fAllBindingsAccessor, viewModel, bindingContext) { - var jqElement = $__WEBPACK_IMPORTED_MODULE_10___default()(element), - command = fValueAccessor(); - - if (!command || !command.isCommand) { - throw new Error('Value should be a command'); - } - - if (!command.enabled) { - command.enabled = ko.observable(true); - } - - if (!command.canExecute) { - var __realCanExecute = command.__realCanExecute; - - if (___WEBPACK_IMPORTED_MODULE_9___default.a.isFunction(__realCanExecute)) { - command.canExecute = ko.computed(function () { - return command.enabled() && __realCanExecute.call(viewModel, viewModel); - }); - } else { - command.canExecute = ko.computed(function () { - return command.enabled() && !!__realCanExecute; - }); - } - } - - jqElement.addClass('command'); - ko.bindingHandlers[jqElement.is('form') ? 'submit' : 'click'].init(element, fValueAccessor, fAllBindingsAccessor, viewModel, bindingContext); - }, - update: function update(element, fValueAccessor) { - var jqElement = $__WEBPACK_IMPORTED_MODULE_10___default()(element), - command = fValueAccessor(); - var result = command.enabled(); - jqElement.toggleClass('command-not-enabled', !result); - - if (result) { - result = command.canExecute(); - jqElement.toggleClass('command-can-not-be-execute', !result); - } - - jqElement.toggleClass('command-disabled disable disabled', !result).toggleClass('no-disabled', !!result); - - if (jqElement.is('input') || jqElement.is('button')) { - jqElement.prop('disabled', !result); - } - } -}; // extenders - -ko.extenders.trimmer = function (target) { - var Utils = __webpack_require__(/*! Common/Utils */ 2), - result = ko.computed({ - read: target, - write: function write(newValue) { - target(_babel_runtime_corejs3_core_js_stable_instance_trim__WEBPACK_IMPORTED_MODULE_6___default()(Utils).call(Utils, newValue.toString())); - } - }); - - result(target()); - return result; -}; - -ko.extenders.posInterer = function (target, defaultVal) { - var Utils = __webpack_require__(/*! Common/Utils */ 2), - result = ko.computed({ - read: target, - write: function write(newValue) { - var val = Utils.pInt(newValue.toString(), defaultVal); - - if (0 >= val) { - val = defaultVal; - } - - if (val === target() && '' + val !== '' + newValue) { - target(val + 1); - } - - target(val); - } - }); - - result(target()); - return result; -}; - -ko.extenders.limitedList = function (target, limitedList) { - var Utils = __webpack_require__(/*! Common/Utils */ 2), - result = ko.computed({ - read: target, - write: function write(newValue) { - var currentValue = ko.unwrap(target), - list = ko.unwrap(limitedList); - - if (Utils.isNonEmptyArray(list)) { - if (-1 < Utils.inArray(newValue, list)) { - target(newValue); - } else if (-1 < Utils.inArray(currentValue, list)) { - target(currentValue + ' '); - target(currentValue); - } else { - target(list[0] + ' '); - target(list[0]); - } - } else { - target(''); - } - } - }).extend({ - notify: 'always' - }); - - result(target()); - - if (!result.valueHasMutated) { - result.valueHasMutated = function () { - target.valueHasMutated(); - }; - } - - return result; -}; - -ko.extenders.reversible = function (target) { - var value = target(); - - target.commit = function () { - value = target(); - }; - - target.reverse = function () { - target(value); - }; - - target.commitedValue = function () { - return value; - }; - - return target; -}; - -ko.extenders.toggleSubscribe = function (target, options) { - target.subscribe(options[1], options[0], 'beforeChange'); - target.subscribe(options[2], options[0]); - return target; -}; - -ko.extenders.toggleSubscribeProperty = function (target, options) { - var prop = options[1]; - - if (prop) { - target.subscribe(function (prev) { - if (prev && prev[prop]) { - prev[prop](false); - } - }, options[0], 'beforeChange'); - target.subscribe(function (next) { - if (next && next[prop]) { - next[prop](true); - } - }, options[0]); - } - - return target; -}; - -ko.extenders.falseTimeout = function (target, option) { - target.iFalseTimeoutTimeout = 0; - target.subscribe(function (value) { - if (value) { - window__WEBPACK_IMPORTED_MODULE_8___default.a.clearTimeout(target.iFalseTimeoutTimeout); - target.iFalseTimeoutTimeout = window__WEBPACK_IMPORTED_MODULE_8___default.a.setTimeout(function () { - target(false); - target.iFalseTimeoutTimeout = 0; - }, __webpack_require__(/*! Common/Utils */ 2).pInt(option)); - } - }); - return target; -}; - -ko.extenders.specialThrottle = function (target, option) { - target.iSpecialThrottleTimeoutValue = __webpack_require__(/*! Common/Utils */ 2).pInt(option); - - if (0 < target.iSpecialThrottleTimeoutValue) { - target.iSpecialThrottleTimeout = 0; - target.valueForRead = ko.observable(!!target()).extend({ - throttle: 10 - }); - return ko.computed({ - read: target.valueForRead, - write: function write(bValue) { - if (bValue) { - target.valueForRead(bValue); - } else { - if (target.valueForRead()) { - window__WEBPACK_IMPORTED_MODULE_8___default.a.clearTimeout(target.iSpecialThrottleTimeout); - target.iSpecialThrottleTimeout = window__WEBPACK_IMPORTED_MODULE_8___default.a.setTimeout(function () { - target.valueForRead(false); - target.iSpecialThrottleTimeout = 0; - }, target.iSpecialThrottleTimeoutValue); - } else { - target.valueForRead(bValue); - } - } - } - }); - } - - return target; -}; - -ko.extenders.idleTrigger = function (target) { - target.trigger = ko.observable(Common_Enums__WEBPACK_IMPORTED_MODULE_13__["SaveSettingsStep"].Idle); - return target; -}; // functions - - -ko.observable.fn.idleTrigger = function () { - return this.extend({ - 'idleTrigger': true - }); -}; - -ko.observable.fn.validateNone = function () { - this.hasError = ko.observable(false); - return this; -}; - -ko.observable.fn.validateEmail = function () { - var _this = this; - - this.hasError = ko.observable(false); - this.subscribe(function (value) { - _this.hasError('' !== value && !/^[^@\s]+@[^@\s]+$/.test(value)); - }); - this.valueHasMutated(); - return this; -}; - -ko.observable.fn.validateSimpleEmail = function () { - var _this2 = this; - - this.hasError = ko.observable(false); - this.subscribe(function (value) { - _this2.hasError('' !== value && !/^.+@.+$/.test(value)); - }); - this.valueHasMutated(); - return this; -}; - -ko.observable.fn.deleteAccessHelper = function () { - this.extend({ - falseTimeout: 3000 - }).extend({ - toggleSubscribeProperty: [this, 'deleteAccess'] - }); - return this; -}; - -ko.observable.fn.validateFunc = function (fFunc) { - var _this3 = this; - - this.hasFuncError = ko.observable(false); - - if (___WEBPACK_IMPORTED_MODULE_9___default.a.isFunction(fFunc)) { - this.subscribe(function (value) { - _this3.hasFuncError(!fFunc(value)); - }); - this.valueHasMutated(); - } - - return this; -}; - -/* harmony default export */ __webpack_exports__["a"] = (ko); - -/***/ }), -/* 2 */ -/*!*****************************!*\ - !*** ./dev/Common/Utils.js ***! - \*****************************/ -/*! exports provided: trim, inArray, isArray, isObject, isFunc, isUnd, isNull, has, bind, noop, noopTrue, noopFalse, jassl, silentTryCatch, isNormal, isPosNumeric, pInt, pString, pBool, boolToAjax, isNonEmptyArray, encodeURIComponent, decodeURIComponent, decodeURI, encodeURI, simpleQueryParser, fakeMd5, encodeHtml, splitPlainText, timeOutAction, timeOutActionSecond, deModule, inFocus, removeInFocus, removeSelection, replySubjectAdd, roundNumber, friendlySize, log, delegateRun, killCtrlACtrlS, createCommandLegacy, convertThemeName, quoteName, microtime, timestamp, convertLangName, draggablePlace, defautOptionsAfterRender, clearBqSwitcher, previewMessage, settingsSaveHelperFunction, settingsSaveHelperSimpleFunction, settingsSaveHelperSubscribeFunction, findEmailAndLinks, htmlToPlain, plainToHtml, folderListOptionsBuilder, selectElement, detectDropdownVisibility, triggerAutocompleteInputChange, getConfigurationFromScriptTag, disposeOne, disposeObject, delegateRunOnDestroy, appendStyles, changeTheme, computedPagenatorHelper, getFileExtension, mimeContentType, isTransparent, getRealHeight, resizeAndCrop, mailToHelper, domReady, windowResize, windowResizeCallback */ -/*! all exports used */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "trim", function() { return trim; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "inArray", function() { return inArray; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isArray", function() { return isArray; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isObject", function() { return isObject; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFunc", function() { return isFunc; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isUnd", function() { return isUnd; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNull", function() { return isNull; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "has", function() { return has; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bind", function() { return bind; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "noop", function() { return noop; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "noopTrue", function() { return noopTrue; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "noopFalse", function() { return noopFalse; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "silentTryCatch", function() { return silentTryCatch; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNormal", function() { return isNormal; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isPosNumeric", function() { return isPosNumeric; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pInt", function() { return pInt; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pString", function() { return pString; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pBool", function() { return pBool; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "boolToAjax", function() { return boolToAjax; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNonEmptyArray", function() { return isNonEmptyArray; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "encodeURIComponent", function() { return encodeURIComponent; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "decodeURIComponent", function() { return decodeURIComponent; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "decodeURI", function() { return decodeURI; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "encodeURI", function() { return encodeURI; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "simpleQueryParser", function() { return simpleQueryParser; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fakeMd5", function() { return fakeMd5; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "encodeHtml", function() { return encodeHtml; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "splitPlainText", function() { return splitPlainText; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeOutAction", function() { return timeOutAction; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeOutActionSecond", function() { return timeOutActionSecond; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deModule", function() { return deModule; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "inFocus", function() { return inFocus; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeInFocus", function() { return removeInFocus; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeSelection", function() { return removeSelection; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "replySubjectAdd", function() { return replySubjectAdd; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "roundNumber", function() { return roundNumber; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "friendlySize", function() { return friendlySize; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "log", function() { return log; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "delegateRun", function() { return delegateRun; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "killCtrlACtrlS", function() { return killCtrlACtrlS; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createCommandLegacy", function() { return createCommandLegacy; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "convertThemeName", function() { return convertThemeName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "quoteName", function() { return quoteName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "microtime", function() { return microtime; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timestamp", function() { return timestamp; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "convertLangName", function() { return convertLangName; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "draggablePlace", function() { return draggablePlace; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defautOptionsAfterRender", function() { return defautOptionsAfterRender; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clearBqSwitcher", function() { return clearBqSwitcher; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "previewMessage", function() { return previewMessage; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "settingsSaveHelperFunction", function() { return settingsSaveHelperFunction; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "settingsSaveHelperSimpleFunction", function() { return settingsSaveHelperSimpleFunction; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "settingsSaveHelperSubscribeFunction", function() { return settingsSaveHelperSubscribeFunction; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findEmailAndLinks", function() { return findEmailAndLinks; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "htmlToPlain", function() { return htmlToPlain; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "plainToHtml", function() { return plainToHtml; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "folderListOptionsBuilder", function() { return folderListOptionsBuilder; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "selectElement", function() { return selectElement; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "detectDropdownVisibility", function() { return detectDropdownVisibility; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "triggerAutocompleteInputChange", function() { return triggerAutocompleteInputChange; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getConfigurationFromScriptTag", function() { return getConfigurationFromScriptTag; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "disposeOne", function() { return disposeOne; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "disposeObject", function() { return disposeObject; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "delegateRunOnDestroy", function() { return delegateRunOnDestroy; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "appendStyles", function() { return appendStyles; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "changeTheme", function() { return changeTheme; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "computedPagenatorHelper", function() { return computedPagenatorHelper; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFileExtension", function() { return getFileExtension; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mimeContentType", function() { return mimeContentType; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isTransparent", function() { return isTransparent; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRealHeight", function() { return getRealHeight; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resizeAndCrop", function() { return resizeAndCrop; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mailToHelper", function() { return mailToHelper; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "domReady", function() { return domReady; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "windowResize", function() { return windowResize; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "windowResizeCallback", function() { return windowResizeCallback; }); -/* harmony import */ var core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.join */ 75); -/* harmony import */ var core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.function.name */ 51); -/* harmony import */ var core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.object.to-string */ 63); -/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.regexp.exec */ 45); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.regexp.to-string */ 111); -/* harmony import */ var core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.string.match */ 198); -/* harmony import */ var core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.string.replace */ 57); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var core_js_modules_es_string_split__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.string.split */ 174); -/* harmony import */ var core_js_modules_es_string_split__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var core_js_modules_es_string_link__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/es.string.link */ 175); -/* harmony import */ var core_js_modules_es_string_link__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_link__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! core-js/modules/web.timers */ 68); -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_9__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_reduce__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/reduce */ 211); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_reduce__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_reduce__WEBPACK_IMPORTED_MODULE_10__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_values__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/values */ 114); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_values__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_values__WEBPACK_IMPORTED_MODULE_11__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/concat */ 162); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_12__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/index-of */ 30); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_13__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find */ 12); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_14__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_last_index_of__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/last-index-of */ 212); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_last_index_of__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_last_index_of__WEBPACK_IMPORTED_MODULE_15__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/bind */ 26); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_16__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_trim__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/trim */ 139); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_trim__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_trim__WEBPACK_IMPORTED_MODULE_17__); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_18__); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! $ */ 8); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_19__); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_20__); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var Autolinker__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! Autolinker */ 215); -/* harmony import */ var Autolinker__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(Autolinker__WEBPACK_IMPORTED_MODULE_22__); -/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! Common/Globals */ 6); -/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Common_Mime__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! Common/Mime */ 216); -/* harmony import */ var Common_Jassl__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! Common/Jassl */ 113); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "jassl", function() { return Common_Jassl__WEBPACK_IMPORTED_MODULE_26__["a"]; }); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -var trim = _babel_runtime_corejs3_core_js_stable_instance_trim__WEBPACK_IMPORTED_MODULE_17___default()($__WEBPACK_IMPORTED_MODULE_19___default.a); - -var inArray = $__WEBPACK_IMPORTED_MODULE_19___default.a.inArray; -var isArray = ___WEBPACK_IMPORTED_MODULE_20___default.a.isArray; -var isObject = ___WEBPACK_IMPORTED_MODULE_20___default.a.isObject; -var isFunc = ___WEBPACK_IMPORTED_MODULE_20___default.a.isFunction; -var isUnd = ___WEBPACK_IMPORTED_MODULE_20___default.a.isUndefined; -var isNull = ___WEBPACK_IMPORTED_MODULE_20___default.a.isNull; -var has = ___WEBPACK_IMPORTED_MODULE_20___default.a.has; - -var bind = _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_16___default()(___WEBPACK_IMPORTED_MODULE_20___default.a); - -var noop = function noop() {}; // eslint-disable-line no-empty-function - - -var noopTrue = function noopTrue() { - return true; -}; - -var noopFalse = function noopFalse() { - return false; -}; - - -/** - * @param {Function} func - */ - -function silentTryCatch(func) { - try { - func(); - } catch (e) {} // eslint-disable-line no-empty - -} -/** - * @param {*} value - * @returns {boolean} - */ - -function isNormal(value) { - return !isUnd(value) && !isNull(value); -} -/** - * @param {(string|number)} value - * @param {boolean=} includeZero = true - * @returns {boolean} - */ - -function isPosNumeric(value, includeZero) { - if (includeZero === void 0) { - includeZero = true; - } - - return !isNormal(value) ? false : includeZero ? /^[0-9]*$/.test(value.toString()) : /^[1-9]+[0-9]*$/.test(value.toString()); -} -/** - * @param {*} value - * @param {number=} defaultValur = 0 - * @returns {number} - */ - -function pInt(value, defaultValur) { - if (defaultValur === void 0) { - defaultValur = 0; - } - - var result = isNormal(value) && '' !== value ? window__WEBPACK_IMPORTED_MODULE_18___default.a.parseInt(value, 10) : defaultValur; - return window__WEBPACK_IMPORTED_MODULE_18___default.a.isNaN(result) ? defaultValur : result; -} -/** - * @param {*} value - * @returns {string} - */ - -function pString(value) { - return isNormal(value) ? '' + value : ''; -} -/** - * @param {*} value - * @returns {boolean} - */ - -function pBool(value) { - return !!value; -} -/** - * @param {*} value - * @returns {string} - */ - -function boolToAjax(value) { - return value ? '1' : '0'; -} -/** - * @param {*} values - * @returns {boolean} - */ - -function isNonEmptyArray(values) { - return isArray(values) && 0 < values.length; -} -/** - * @param {string} component - * @returns {string} - */ - -function encodeURIComponent(component) { - return window__WEBPACK_IMPORTED_MODULE_18___default.a.encodeURIComponent(component); -} -/** - * @param {string} component - * @returns {string} - */ - -function decodeURIComponent(component) { - return window__WEBPACK_IMPORTED_MODULE_18___default.a.decodeURIComponent(component); -} -/** - * @param {string} url - * @returns {string} - */ - -function decodeURI(url) { - return window__WEBPACK_IMPORTED_MODULE_18___default.a.decodeURI(url); -} -/** - * @param {string} url - * @returns {string} - */ - -function encodeURI(url) { - return window__WEBPACK_IMPORTED_MODULE_18___default.a.encodeURI(url); -} -/** - * @param {string} queryString - * @returns {Object} - */ - -function simpleQueryParser(queryString) { - var index = 0, - len = 0, - temp = null; - var queries = queryString.split('&'), - params = {}; - - for (len = queries.length; index < len; index++) { - temp = queries[index].split('='); - params[decodeURIComponent(temp[0])] = decodeURIComponent(temp[1]); - } - - return params; -} -/** - * @param {number=} len = 32 - * @returns {string} - */ - -function fakeMd5(len) { - if (len === void 0) { - len = 32; - } - - var line = '0123456789abcdefghijklmnopqrstuvwxyz', - lineLen = line.length; - len = pInt(len); - var result = ''; - - while (result.length < len) { - result += line.substr(window__WEBPACK_IMPORTED_MODULE_18___default.a.Math.round(window__WEBPACK_IMPORTED_MODULE_18___default.a.Math.random() * lineLen), 1); - } - - return result; -} -/** - * @param {string} text - * @returns {string} - */ - -function encodeHtml(text) { - return isNormal(text) ? ___WEBPACK_IMPORTED_MODULE_20___default.a.escape(text.toString()) : ''; -} -/** - * @param {string} text - * @param {number=} len = 100 - * @returns {string} - */ - -function splitPlainText(text, len) { - if (len === void 0) { - len = 100; - } - - var prefix = '', - subText = '', - result = text, - spacePos = 0, - newLinePos = 0; - - while (result.length > len) { - subText = result.substring(0, len); - spacePos = _babel_runtime_corejs3_core_js_stable_instance_last_index_of__WEBPACK_IMPORTED_MODULE_15___default()(subText).call(subText, ' '); - newLinePos = _babel_runtime_corejs3_core_js_stable_instance_last_index_of__WEBPACK_IMPORTED_MODULE_15___default()(subText).call(subText, '\n'); - - if (-1 !== newLinePos) { - spacePos = newLinePos; - } - - if (-1 === spacePos) { - spacePos = len; - } - - prefix += subText.substring(0, spacePos) + '\n'; - result = result.substring(spacePos + 1); - } - - return prefix + result; -} - -var timeOutAction = function () { - var timeOuts = {}; - return function (action, fFunction, timeOut) { - timeOuts[action] = isUnd(timeOuts[action]) ? 0 : timeOuts[action]; - window__WEBPACK_IMPORTED_MODULE_18___default.a.clearTimeout(timeOuts[action]); - timeOuts[action] = window__WEBPACK_IMPORTED_MODULE_18___default.a.setTimeout(fFunction, timeOut); - }; -}(); - -var timeOutActionSecond = function () { - var timeOuts = {}; - return function (action, fFunction, timeOut) { - if (!timeOuts[action]) { - timeOuts[action] = window__WEBPACK_IMPORTED_MODULE_18___default.a.setTimeout(function () { - fFunction(); - timeOuts[action] = 0; - }, timeOut); - } - }; -}(); - - -/** - * @param {any} m - * @returns {any} - */ - -function deModule(m) { - return (m && m.default ? m.default : m) || ''; -} -/** - * @returns {boolean} - */ - -function inFocus() { - try { - if (window__WEBPACK_IMPORTED_MODULE_18___default.a.document.activeElement) { - if (isUnd(window__WEBPACK_IMPORTED_MODULE_18___default.a.document.activeElement.__inFocusCache)) { - window__WEBPACK_IMPORTED_MODULE_18___default.a.document.activeElement.__inFocusCache = $__WEBPACK_IMPORTED_MODULE_19___default()(window__WEBPACK_IMPORTED_MODULE_18___default.a.document.activeElement).is('input,textarea,iframe,.cke_editable'); - } - - return !!window__WEBPACK_IMPORTED_MODULE_18___default.a.document.activeElement.__inFocusCache; - } - } catch (e) {} // eslint-disable-line no-empty - - - return false; -} -/** - * @param {boolean} force - * @returns {void} - */ - -function removeInFocus(force) { - if (window__WEBPACK_IMPORTED_MODULE_18___default.a.document && window__WEBPACK_IMPORTED_MODULE_18___default.a.document.activeElement && window__WEBPACK_IMPORTED_MODULE_18___default.a.document.activeElement.blur) { - try { - var activeEl = $__WEBPACK_IMPORTED_MODULE_19___default()(window__WEBPACK_IMPORTED_MODULE_18___default.a.document.activeElement); - - if (activeEl && activeEl.is('input,textarea')) { - window__WEBPACK_IMPORTED_MODULE_18___default.a.document.activeElement.blur(); - } else if (force) { - window__WEBPACK_IMPORTED_MODULE_18___default.a.document.activeElement.blur(); - } - } catch (e) {} // eslint-disable-line no-empty - - } -} -/** - * @returns {void} - */ - -function removeSelection() { - try { - if (window__WEBPACK_IMPORTED_MODULE_18___default.a && window__WEBPACK_IMPORTED_MODULE_18___default.a.getSelection) { - var sel = window__WEBPACK_IMPORTED_MODULE_18___default.a.getSelection(); - - if (sel && sel.removeAllRanges) { - sel.removeAllRanges(); - } - } else if (window__WEBPACK_IMPORTED_MODULE_18___default.a.document && window__WEBPACK_IMPORTED_MODULE_18___default.a.document.selection && window__WEBPACK_IMPORTED_MODULE_18___default.a.document.selection.empty) { - window__WEBPACK_IMPORTED_MODULE_18___default.a.document.selection.empty(); - } - } catch (e) {} // eslint-disable-line no-empty - -} -/** - * @param {string} prefix - * @param {string} subject - * @returns {string} - */ - -function replySubjectAdd(prefix, subject) { - prefix = trim(prefix.toUpperCase()); - subject = trim(subject.replace(/[\s]+/g, ' ')); - var drop = false, - re = 'RE' === prefix, - fwd = 'FWD' === prefix; - var parts = [], - prefixIsRe = !fwd; - - if ('' !== subject) { - ___WEBPACK_IMPORTED_MODULE_20___default.a.each(subject.split(':'), function (part) { - var trimmedPart = trim(part); - - if (!drop && (/^(RE|FWD)$/i.test(trimmedPart) || /^(RE|FWD)[[(][\d]+[\])]$/i.test(trimmedPart))) { - if (!re) { - re = !!/^RE/i.test(trimmedPart); - } - - if (!fwd) { - fwd = !!/^FWD/i.test(trimmedPart); - } - } else { - parts.push(part); - drop = true; - } - }); - } - - if (prefixIsRe) { - re = false; - } else { - fwd = false; - } - - return trim((prefixIsRe ? 'Re: ' : 'Fwd: ') + (re ? 'Re: ' : '') + (fwd ? 'Fwd: ' : '') + trim(parts.join(':'))); -} -/** - * @param {number} num - * @param {number} dec - * @returns {number} - */ - -function roundNumber(num, dec) { - return window__WEBPACK_IMPORTED_MODULE_18___default.a.Math.round(num * window__WEBPACK_IMPORTED_MODULE_18___default.a.Math.pow(10, dec)) / window__WEBPACK_IMPORTED_MODULE_18___default.a.Math.pow(10, dec); -} -/** - * @param {(number|string)} sizeInBytes - * @returns {string} - */ - -function friendlySize(sizeInBytes) { - sizeInBytes = pInt(sizeInBytes); - - switch (true) { - case 1073741824 <= sizeInBytes: - return roundNumber(sizeInBytes / 1073741824, 1) + 'GB'; - - case 1048576 <= sizeInBytes: - return roundNumber(sizeInBytes / 1048576, 1) + 'MB'; - - case 1024 <= sizeInBytes: - return roundNumber(sizeInBytes / 1024, 0) + 'KB'; - // no default - } - - return sizeInBytes + 'B'; -} -/** - * @param {string} desc - */ - -function log(desc) { - if (window__WEBPACK_IMPORTED_MODULE_18___default.a.console && window__WEBPACK_IMPORTED_MODULE_18___default.a.console.log) { - window__WEBPACK_IMPORTED_MODULE_18___default.a.console.log(desc); - } -} -/** - * @param {?} object - * @param {string} methodName - * @param {Array=} params - * @param {number=} delay = 0 - */ - -function delegateRun(object, methodName, params, delay) { - if (delay === void 0) { - delay = 0; - } - - if (object && object[methodName]) { - delay = pInt(delay); - params = isArray(params) ? params : []; - - if (0 >= delay) { - object[methodName].apply(object, params); - } else { - ___WEBPACK_IMPORTED_MODULE_20___default.a.delay(function () { - object[methodName].apply(object, params); - }, delay); - } - } -} -/** - * @param {?} event - */ - -function killCtrlACtrlS(event) { - event = event || window__WEBPACK_IMPORTED_MODULE_18___default.a.event; - - if (event && event.ctrlKey && !event.shiftKey && !event.altKey) { - var key = event.keyCode || event.which; - - if (key === Common_Enums__WEBPACK_IMPORTED_MODULE_24__["EventKeyCode"].S) { - event.preventDefault(); - return; - } else if (key === Common_Enums__WEBPACK_IMPORTED_MODULE_24__["EventKeyCode"].A) { - var sender = event.target || event.srcElement; - - if (sender && ('true' === '' + sender.contentEditable || sender.tagName && sender.tagName.match(/INPUT|TEXTAREA/i))) { - return; - } - - if (window__WEBPACK_IMPORTED_MODULE_18___default.a.getSelection) { - window__WEBPACK_IMPORTED_MODULE_18___default.a.getSelection().removeAllRanges(); - } else if (window__WEBPACK_IMPORTED_MODULE_18___default.a.document.selection && window__WEBPACK_IMPORTED_MODULE_18___default.a.document.selection.clear) { - window__WEBPACK_IMPORTED_MODULE_18___default.a.document.selection.clear(); - } - - event.preventDefault(); - } - } -} -/** - * @param {(Object|null|undefined)} context - * @param {Function} fExecute - * @param {(Function|boolean|null)=} fCanExecute = true - * @returns {Function} - */ - -function createCommandLegacy(context, fExecute, fCanExecute) { - if (fCanExecute === void 0) { - fCanExecute = true; - } - - var fResult = null; - - var fNonEmpty = function fNonEmpty() { - if (fResult && fResult.canExecute && fResult.canExecute()) { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - fExecute.apply(context, args); - } - - return false; - }; - - fResult = fExecute ? fNonEmpty : noop; - fResult.enabled = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(true); - fResult.isCommand = true; - - if (isFunc(fCanExecute)) { - fResult.canExecute = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].computed(function () { - return fResult && fResult.enabled() && fCanExecute.call(context); - }); - } else { - fResult.canExecute = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].computed(function () { - return fResult && fResult.enabled() && !!fCanExecute; - }); - } - - return fResult; -} -/** - * @param {string} theme - * @returns {string} - */ - -var convertThemeName = ___WEBPACK_IMPORTED_MODULE_20___default.a.memoize(function (theme) { - if ('@custom' === theme.substr(-7)) { - theme = trim(theme.substring(0, theme.length - 7)); - } - - return trim(theme.replace(/[^a-zA-Z0-9]+/g, ' ').replace(/([A-Z])/g, ' $1').replace(/[\s]+/g, ' ')); -}); -/** - * @param {string} name - * @returns {string} - */ - -function quoteName(name) { - return name.replace(/["]/g, '\\"'); -} -/** - * @returns {number} - */ - -function microtime() { - return new window__WEBPACK_IMPORTED_MODULE_18___default.a.Date().getTime(); -} -/** - * @returns {number} - */ - -function timestamp() { - return window__WEBPACK_IMPORTED_MODULE_18___default.a.Math.round(microtime() / 1000); -} -/** - * - * @param {string} language - * @param {boolean=} isEng = false - * @returns {string} - */ - -function convertLangName(language, isEng) { - if (isEng === void 0) { - isEng = false; - } - - return __webpack_require__(/*! Common/Translator */ 9).i18n('LANGS_NAMES' + (true === isEng ? '_EN' : '') + '/LANG_' + language.toUpperCase().replace(/[^a-zA-Z0-9]+/g, '_'), null, language); -} -/** - * @returns {object} - */ - -function draggablePlace() { - return $__WEBPACK_IMPORTED_MODULE_19___default()('
' + ' ' + '' + '' + '
').appendTo('#rl-hidden'); -} -/** - * @param {object} domOption - * @param {object} item - * @returns {void} - */ - -function defautOptionsAfterRender(domItem, item) { - if (item && !isUnd(item.disabled) && domItem) { - $__WEBPACK_IMPORTED_MODULE_19___default()(domItem).toggleClass('disabled', item.disabled).prop('disabled', item.disabled); - } -} -/** - * @param {string} title - * @param {Object} body - * @param {boolean} isHtml - * @param {boolean} print - */ - -function clearBqSwitcher(body) { - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_14___default()(body).call(body, 'blockquote.rl-bq-switcher').removeClass('rl-bq-switcher hidden-bq'); - - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_14___default()(body).call(body, '.rlBlockquoteSwitcher').off('.rlBlockquoteSwitcher').remove(); - - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_14___default()(body).call(body, '[data-html-editor-font-wrapper]').removeAttr('data-html-editor-font-wrapper'); -} -/** - * @param {object} messageData - * @param {Object} body - * @param {boolean} isHtml - * @param {boolean} print - * @returns {void} - */ - -function previewMessage(_ref, body, isHtml, print) { - var title = _ref.title, - subject = _ref.subject, - date = _ref.date, - fromCreds = _ref.fromCreds, - toCreds = _ref.toCreds, - toLabel = _ref.toLabel, - ccClass = _ref.ccClass, - ccCreds = _ref.ccCreds, - ccLabel = _ref.ccLabel; - var win = window__WEBPACK_IMPORTED_MODULE_18___default.a.open(''), - doc = win.document, - bodyClone = body.clone(), - bodyClass = isHtml ? 'html' : 'plain'; - clearBqSwitcher(bodyClone); - var html = bodyClone ? bodyClone.html() : ''; - doc.write(deModule(__webpack_require__(/*! Html/PreviewMessage.html */ 361)).replace('{{title}}', encodeHtml(title)).replace('{{subject}}', encodeHtml(subject)).replace('{{date}}', encodeHtml(date)).replace('{{fromCreds}}', encodeHtml(fromCreds)).replace('{{toCreds}}', encodeHtml(toCreds)).replace('{{toLabel}}', encodeHtml(toLabel)).replace('{{ccClass}}', encodeHtml(ccClass)).replace('{{ccCreds}}', encodeHtml(ccCreds)).replace('{{ccLabel}}', encodeHtml(ccLabel)).replace('{{bodyClass}}', bodyClass).replace('{{html}}', html)); - doc.close(); - - if (print) { - window__WEBPACK_IMPORTED_MODULE_18___default.a.setTimeout(function () { - return win.print(); - }, 100); - } -} -/** - * @param {Function} fCallback - * @param {?} koTrigger - * @param {?} context = null - * @param {number=} timer = 1000 - * @returns {Function} - */ - -function settingsSaveHelperFunction(fCallback, koTrigger, context, timer) { - if (context === void 0) { - context = null; - } - - if (timer === void 0) { - timer = 1000; - } - - timer = pInt(timer); - return function (type, data, cached, requestAction, requestParameters) { - koTrigger.call(context, data && data.Result ? Common_Enums__WEBPACK_IMPORTED_MODULE_24__["SaveSettingsStep"].TrueResult : Common_Enums__WEBPACK_IMPORTED_MODULE_24__["SaveSettingsStep"].FalseResult); - - if (fCallback) { - fCallback.call(context, type, data, cached, requestAction, requestParameters); - } - - ___WEBPACK_IMPORTED_MODULE_20___default.a.delay(function () { - koTrigger.call(context, Common_Enums__WEBPACK_IMPORTED_MODULE_24__["SaveSettingsStep"].Idle); - }, timer); - }; -} -/** - * @param {object} koTrigger - * @param {mixed} context - * @returns {mixed} - */ - -function settingsSaveHelperSimpleFunction(koTrigger, context) { - return settingsSaveHelperFunction(null, koTrigger, context, 1000); -} -/** - * @param {object} remote - * @param {string} settingName - * @param {string} type - * @param {function} fTriggerFunction - * @returns {function} - */ - -function settingsSaveHelperSubscribeFunction(remote, settingName, type, fTriggerFunction) { - return function (value) { - if (remote) { - switch (type) { - case 'bool': - case 'boolean': - value = value ? '1' : '0'; - break; - - case 'int': - case 'integer': - case 'number': - value = pInt(value); - break; - - case 'trim': - value = trim(value); - break; - - default: - value = pString(value); - break; - } - - var data = {}; - data[settingName] = value; - - if (remote.saveAdminConfig) { - remote.saveAdminConfig(fTriggerFunction || null, data); - } else if (remote.saveSettings) { - remote.saveSettings(fTriggerFunction || null, data); - } - } - }; -} -/** - * @param {string} html - * @returns {string} - */ - -function findEmailAndLinks(html) { - return Autolinker__WEBPACK_IMPORTED_MODULE_22___default.a ? Autolinker__WEBPACK_IMPORTED_MODULE_22___default.a.link(html, { - newWindow: true, - stripPrefix: false, - urls: true, - email: true, - mention: false, - phone: false, - hashtag: false, - replaceFn: function replaceFn(match) { - var _context; - - return !(match && 'url' === match.getType() && match.matchedText && 0 !== _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_13___default()(_context = match.matchedText).call(_context, 'http')); - } - }) : html; -} -/** - * @param {string} html - * @returns {string} - */ - -function htmlToPlain(html) { - var pos = 0, - limit = 0, - iP1 = 0, - iP2 = 0, - iP3 = 0, - text = ''; - - var convertBlockquote = function convertBlockquote(blockquoteText) { - blockquoteText = '> ' + trim(blockquoteText).replace(/\n/gm, '\n> '); - return blockquoteText.replace(/(^|\n)([> ]+)/gm, function () { - for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } - - return args && 2 < args.length ? args[1] + trim(args[2].replace(/[\s]/g, '')) + ' ' : ''; - }); - }; - - var convertDivs = function convertDivs() { - for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { - args[_key3] = arguments[_key3]; - } - - if (args && 1 < args.length) { - var divText = trim(args[1]); - - if (0 < divText.length) { - divText = divText.replace(/]*>([\s\S\r\n]*)<\/div>/gim, convertDivs); - divText = '\n' + trim(divText) + '\n'; - } - - return divText; - } - - return ''; - }; - - var convertPre = function convertPre() { - for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { - args[_key4] = arguments[_key4]; - } - - return args && 1 < args.length ? args[1].toString().replace(/[\n]/gm, '
').replace(/[\r]/gm, '') : ''; - }, - fixAttibuteValue = function fixAttibuteValue() { - for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { - args[_key5] = arguments[_key5]; - } - - return args && 1 < args.length ? '' + args[1] + ___WEBPACK_IMPORTED_MODULE_20___default.a.escape(args[2]) : ''; - }, - convertLinks = function convertLinks() { - for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) { - args[_key6] = arguments[_key6]; - } - - return args && 1 < args.length ? trim(args[1]) : ''; - }; - - text = html.replace(/]*><\/p>/gi, '').replace(/]*>([\s\S\r\n\t]*)<\/pre>/gim, convertPre).replace(/[\s]+/gm, ' ').replace(/((?:href|data)\s?=\s?)("[^"]+?"|'[^']+?')/gim, fixAttibuteValue).replace(/]*>/gim, '\n').replace(/<\/h[\d]>/gi, '\n').replace(/<\/p>/gi, '\n\n').replace(/]*>/gim, '\n').replace(/<\/ul>/gi, '\n').replace(/]*>/gim, ' * ').replace(/<\/li>/gi, '\n').replace(/<\/td>/gi, '\n').replace(/<\/tr>/gi, '\n').replace(/]*>/gim, '\n_______________________________\n\n').replace(/]*>([\s\S\r\n]*)<\/div>/gim, convertDivs).replace(/]*>/gim, '\n__bq__start__\n').replace(/<\/blockquote>/gim, '\n__bq__end__\n').replace(/]*>([\s\S\r\n]*?)<\/a>/gim, convertLinks).replace(/<\/div>/gi, '\n').replace(/ /gi, ' ').replace(/"/gi, '"').replace(/<[^>]*>/gm, ''); - text = Common_Globals__WEBPACK_IMPORTED_MODULE_23__["$div"].html(text).text(); - text = text.replace(/\n[ \t]+/gm, '\n').replace(/[\n]{3,}/gm, '\n\n').replace(/>/gi, '>').replace(/</gi, '<').replace(/&/gi, '&'); - text = splitPlainText(text); - pos = 0; - limit = 800; - - while (0 < limit) { - limit -= 1; - iP1 = _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_13___default()(text).call(text, '__bq__start__', pos); - - if (-1 < iP1) { - iP2 = _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_13___default()(text).call(text, '__bq__start__', iP1 + 5); - iP3 = _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_13___default()(text).call(text, '__bq__end__', iP1 + 5); - - if ((-1 === iP2 || iP3 < iP2) && iP1 < iP3) { - text = text.substring(0, iP1) + convertBlockquote(text.substring(iP1 + 13, iP3)) + text.substring(iP3 + 11); - pos = 0; - } else if (-1 < iP2 && iP2 < iP3) { - pos = iP2 - 1; - } else { - pos = 0; - } - } else { - break; - } - } - - text = text.replace(/__bq__start__/gm, '').replace(/__bq__end__/gm, ''); - return text; -} -/** - * @param {string} plain - * @param {boolean} findEmailAndLinksInText = false - * @returns {string} - */ - -function plainToHtml(plain, findEmailAndLinksInText) { - if (findEmailAndLinksInText === void 0) { - findEmailAndLinksInText = false; - } - - plain = plain.toString().replace(/\r/g, ''); - plain = plain.replace(/^>[> ]>+/gm, function (_ref2) { - var match = _ref2[0]; - return match ? match.replace(/[ ]+/g, '') : match; - }); - var bIn = false, - bDo = true, - bStart = true, - aNextText = [], - sLine = '', - iIndex = 0, - aText = plain.split('\n'); - - do { - bDo = false; - aNextText = []; - - for (iIndex = 0; iIndex < aText.length; iIndex++) { - sLine = aText[iIndex]; - bStart = '>' === sLine.substr(0, 1); - - if (bStart && !bIn) { - bDo = true; - bIn = true; - aNextText.push('~~~blockquote~~~'); - aNextText.push(sLine.substr(1)); - } else if (!bStart && bIn) { - if ('' !== sLine) { - bIn = false; - aNextText.push('~~~/blockquote~~~'); - aNextText.push(sLine); - } else { - aNextText.push(sLine); - } - } else if (bStart && bIn) { - aNextText.push(sLine.substr(1)); - } else { - aNextText.push(sLine); - } - } - - if (bIn) { - bIn = false; - aNextText.push('~~~/blockquote~~~'); - } - - aText = aNextText; - } while (bDo); - - plain = aText.join('\n'); - plain = plain // .replace(/~~~\/blockquote~~~\n~~~blockquote~~~/g, '\n') - .replace(/&/g, '&').replace(/>/g, '>').replace(/').replace(/[\s]*~~~\/blockquote~~~/g, '').replace(/\n/g, '
'); - return findEmailAndLinksInText ? findEmailAndLinks(plain) : plain; -} -window__WEBPACK_IMPORTED_MODULE_18___default.a['rainloop_Utils_htmlToPlain'] = htmlToPlain; // eslint-disable-line dot-notation - -window__WEBPACK_IMPORTED_MODULE_18___default.a['rainloop_Utils_plainToHtml'] = plainToHtml; // eslint-disable-line dot-notation - -/** - * @param {Array} aSystem - * @param {Array} aList - * @param {Array=} aDisabled - * @param {Array=} aHeaderLines - * @param {?number=} iUnDeep - * @param {Function=} fDisableCallback - * @param {Function=} fVisibleCallback - * @param {Function=} fRenameCallback - * @param {boolean=} bSystem - * @param {boolean=} bBuildUnvisible - * @returns {Array} - */ - -function folderListOptionsBuilder(aSystem, aList, aDisabled, aHeaderLines, iUnDeep, fDisableCallback, fVisibleCallback, fRenameCallback, bSystem, bBuildUnvisible) { - var - /** - * @type {?FolderModel} - */ - oItem = null, - bSep = false, - iIndex = 0, - iLen = 0, - aResult = []; - var sDeepPrefix = "\xA0\xA0\xA0"; - bBuildUnvisible = isUnd(bBuildUnvisible) ? false : !!bBuildUnvisible; - bSystem = !isNormal(bSystem) ? 0 < aSystem.length : bSystem; - iUnDeep = !isNormal(iUnDeep) ? 0 : iUnDeep; - fDisableCallback = isNormal(fDisableCallback) ? fDisableCallback : null; - fVisibleCallback = isNormal(fVisibleCallback) ? fVisibleCallback : null; - fRenameCallback = isNormal(fRenameCallback) ? fRenameCallback : null; - - if (!isArray(aDisabled)) { - aDisabled = []; - } - - if (!isArray(aHeaderLines)) { - aHeaderLines = []; - } - - for (iIndex = 0, iLen = aHeaderLines.length; iIndex < iLen; iIndex++) { - aResult.push({ - id: aHeaderLines[iIndex][0], - name: aHeaderLines[iIndex][1], - system: false, - seporator: false, - disabled: false - }); - } - - bSep = true; - - for (iIndex = 0, iLen = aSystem.length; iIndex < iLen; iIndex++) { - oItem = aSystem[iIndex]; - - if (fVisibleCallback ? fVisibleCallback(oItem) : true) { - if (bSep && 0 < aResult.length) { - aResult.push({ - id: '---', - name: '---', - system: false, - seporator: true, - disabled: true - }); - } - - bSep = false; - aResult.push({ - id: oItem.fullNameRaw, - name: fRenameCallback ? fRenameCallback(oItem) : oItem.name(), - system: true, - seporator: false, - disabled: !oItem.selectable || -1 < inArray(oItem.fullNameRaw, aDisabled) || (fDisableCallback ? fDisableCallback(oItem) : false) - }); - } - } - - bSep = true; - - for (iIndex = 0, iLen = aList.length; iIndex < iLen; iIndex++) { - oItem = aList[iIndex]; // if (oItem.subScribed() || !oItem.existen || bBuildUnvisible) - - if ((oItem.subScribed() || !oItem.existen || bBuildUnvisible) && (oItem.selectable || oItem.hasSubScribedSubfolders())) { - if (fVisibleCallback ? fVisibleCallback(oItem) : true) { - if (Common_Enums__WEBPACK_IMPORTED_MODULE_24__["FolderType"].User === oItem.type() || !bSystem || oItem.hasSubScribedSubfolders()) { - if (bSep && 0 < aResult.length) { - aResult.push({ - id: '---', - name: '---', - system: false, - seporator: true, - disabled: true - }); - } - - bSep = false; - aResult.push({ - id: oItem.fullNameRaw, - name: new window__WEBPACK_IMPORTED_MODULE_18___default.a.Array(oItem.deep + 1 - iUnDeep).join(sDeepPrefix) + (fRenameCallback ? fRenameCallback(oItem) : oItem.name()), - system: false, - seporator: false, - disabled: !oItem.selectable || -1 < inArray(oItem.fullNameRaw, aDisabled) || (fDisableCallback ? fDisableCallback(oItem) : false) - }); - } - } - } - - if (oItem.subScribed() && 0 < oItem.subFolders().length) { - aResult = _babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_12___default()(aResult).call(aResult, folderListOptionsBuilder([], oItem.subFolders(), aDisabled, [], iUnDeep, fDisableCallback, fVisibleCallback, fRenameCallback, bSystem, bBuildUnvisible)); - } - } - - return aResult; -} -/** - * @param {object} element - * @returns {void} - */ - -function selectElement(element) { - var sel = null, - range = null; - - if (window__WEBPACK_IMPORTED_MODULE_18___default.a.getSelection) { - sel = window__WEBPACK_IMPORTED_MODULE_18___default.a.getSelection(); - sel.removeAllRanges(); - range = window__WEBPACK_IMPORTED_MODULE_18___default.a.document.createRange(); - range.selectNodeContents(element); - sel.addRange(range); - } else if (window__WEBPACK_IMPORTED_MODULE_18___default.a.document.selection) { - range = window__WEBPACK_IMPORTED_MODULE_18___default.a.document.body.createTextRange(); - range.moveToElementText(element); - range.select(); - } -} -var detectDropdownVisibility = ___WEBPACK_IMPORTED_MODULE_20___default.a.debounce(function () { - Object(Common_Globals__WEBPACK_IMPORTED_MODULE_23__["dropdownVisibility"])(!!_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_14___default()(___WEBPACK_IMPORTED_MODULE_20___default.a).call(___WEBPACK_IMPORTED_MODULE_20___default.a, Common_Globals__WEBPACK_IMPORTED_MODULE_23__["data"].aBootstrapDropdowns, function (item) { - return item.hasClass('open'); - })); -}, 50); -/** - * @param {boolean=} delay = false - */ - -function triggerAutocompleteInputChange(delay) { - if (delay === void 0) { - delay = false; - } - - var fFunc = function fFunc() { - $__WEBPACK_IMPORTED_MODULE_19___default()('.checkAutocomplete').trigger('change'); - }; - - if (delay) { - ___WEBPACK_IMPORTED_MODULE_20___default.a.delay(fFunc, 100); - } else { - fFunc(); - } -} -var configurationScriptTagCache = {}; -/** - * @param {string} configuration - * @returns {object} - */ - -function getConfigurationFromScriptTag(configuration) { - if (!configurationScriptTagCache[configuration]) { - configurationScriptTagCache[configuration] = $__WEBPACK_IMPORTED_MODULE_19___default()('script[type="application/json"][data-configuration="' + configuration + '"]'); - } - - try { - return JSON.parse(configurationScriptTagCache[configuration].text()); - } catch (e) {} // eslint-disable-line no-empty - - - return {}; -} -/** - * @param {mixed} mPropOrValue - * @param {mixed} value - */ - -function disposeOne(propOrValue, value) { - var disposable = value || propOrValue; - - if (disposable && 'function' === typeof disposable.dispose) { - disposable.dispose(); - } -} -/** - * @param {Object} object - */ - -function disposeObject(object) { - if (object) { - if (isArray(object.disposables)) { - ___WEBPACK_IMPORTED_MODULE_20___default.a.each(object.disposables, disposeOne); - } - - ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].utils.objectForEach(object, disposeOne); - } -} -/** - * @param {Object|Array} objectOrObjects - * @returns {void} - */ - -function delegateRunOnDestroy(objectOrObjects) { - if (objectOrObjects) { - if (isArray(objectOrObjects)) { - ___WEBPACK_IMPORTED_MODULE_20___default.a.each(objectOrObjects, function (item) { - delegateRunOnDestroy(item); - }); - } else if (objectOrObjects && objectOrObjects.onDestroy) { - objectOrObjects.onDestroy(); - } - } -} -/** - * @param {object} $styleTag - * @param {string} css - * @returns {boolean} - */ - -function appendStyles($styleTag, css) { - if ($styleTag && $styleTag[0]) { - if ($styleTag[0].styleSheet && !isUnd($styleTag[0].styleSheet.cssText)) { - $styleTag[0].styleSheet.cssText = css; - } else { - $styleTag.text(css); - } - - return true; - } - - return false; -} -var __themeTimer = 0, - __themeAjax = null; -/** - * @param {string} value - * @param {function=} themeTrigger = noop - * @returns {void} - */ - -function changeTheme(value, themeTrigger) { - if (themeTrigger === void 0) { - themeTrigger = noop; - } - - var themeLink = $__WEBPACK_IMPORTED_MODULE_19___default()('#app-theme-link'), - clearTimer = function clearTimer() { - __themeTimer = window__WEBPACK_IMPORTED_MODULE_18___default.a.setTimeout(function () { - return themeTrigger(Common_Enums__WEBPACK_IMPORTED_MODULE_24__["SaveSettingsStep"].Idle); - }, 1000); - __themeAjax = null; - }; - - var themeStyle = $__WEBPACK_IMPORTED_MODULE_19___default()('#app-theme-style'), - url = themeLink.attr('href'); - - if (!url) { - url = themeStyle.attr('data-href'); - } - - if (url) { - url = url.toString().replace(/\/-\/[^/]+\/-\//, '/-/' + value + '/-/'); - url = url.replace(/\/Css\/[^/]+\/User\//, '/Css/0/User/'); - url = url.replace(/\/Hash\/[^/]+\//, '/Hash/-/'); - - if ('Json/' !== url.substring(url.length - 5, url.length)) { - url += 'Json/'; - } - - window__WEBPACK_IMPORTED_MODULE_18___default.a.clearTimeout(__themeTimer); - themeTrigger(Common_Enums__WEBPACK_IMPORTED_MODULE_24__["SaveSettingsStep"].Animate); - - if (__themeAjax && __themeAjax.abort) { - __themeAjax.abort(); - } - - __themeAjax = $__WEBPACK_IMPORTED_MODULE_19___default.a.ajax({ - url: url, - dataType: 'json' - }).then(function (data) { - if (data && isArray(data) && 2 === data.length) { - if (themeLink && themeLink[0] && (!themeStyle || !themeStyle[0])) { - themeStyle = $__WEBPACK_IMPORTED_MODULE_19___default()(''); - themeLink.after(themeStyle); - themeLink.remove(); - } - - if (themeStyle && themeStyle[0]) { - if (appendStyles(themeStyle, data[1])) { - themeStyle.attr('data-href', url).attr('data-theme', data[0]); - } - } - - themeTrigger(Common_Enums__WEBPACK_IMPORTED_MODULE_24__["SaveSettingsStep"].TrueResult); - } - }).then(clearTimer, clearTimer); - } -} -/** - * @returns {function} - */ - -function computedPagenatorHelper(koCurrentPage, koPageCount) { - return function () { - var currentPage = koCurrentPage(), - pageCount = koPageCount(), - result = [], - fAdd = function fAdd(index, push, customName) { - if (push === void 0) { - push = true; - } - - if (customName === void 0) { - customName = ''; - } - - var data = { - current: index === currentPage, - name: '' === customName ? index.toString() : customName.toString(), - custom: '' !== customName, - title: '' === customName ? '' : index.toString(), - value: index.toString() - }; - - if (push) { - result.push(data); - } else { - result.unshift(data); - } - }; - - var prev = 0, - next = 0, - limit = 2; - - if (1 < pageCount || 0 < pageCount && pageCount < currentPage) { - if (pageCount < currentPage) { - fAdd(pageCount); - prev = pageCount; - next = pageCount; - } else { - if (3 >= currentPage || pageCount - 2 <= currentPage) { - limit += 2; - } - - fAdd(currentPage); - prev = currentPage; - next = currentPage; - } - - while (0 < limit) { - prev -= 1; - next += 1; - - if (0 < prev) { - fAdd(prev, false); - limit -= 1; - } - - if (pageCount >= next) { - fAdd(next, true); - limit -= 1; - } else if (0 >= prev) { - break; - } - } - - if (3 === prev) { - fAdd(2, false); - } else if (3 < prev) { - fAdd(Math.round((prev - 1) / 2), false, '...'); - } - - if (pageCount - 2 === next) { - fAdd(pageCount - 1, true); - } else if (pageCount - 2 > next) { - fAdd(Math.round((pageCount + next) / 2), true, '...'); - } // first and last - - - if (1 < prev) { - fAdd(1, false); - } - - if (pageCount > next) { - fAdd(pageCount, true); - } - } - - return result; - }; -} -/** - * @param {string} fileName - * @returns {string} - */ - -function getFileExtension(fileName) { - fileName = trim(fileName).toLowerCase(); - var result = fileName.split('.').pop(); - return result === fileName ? '' : result; -} -/** - * @param {string} fileName - * @returns {string} - */ - -function mimeContentType(fileName) { - var ext = '', - result = 'application/octet-stream'; - fileName = trim(fileName).toLowerCase(); - - if ('winmail.dat' === fileName) { - return 'application/ms-tnef'; - } - - ext = getFileExtension(fileName); - - if (ext && 0 < ext.length && !isUnd(Common_Mime__WEBPACK_IMPORTED_MODULE_25__[/* Mime */ "a"][ext])) { - result = Common_Mime__WEBPACK_IMPORTED_MODULE_25__[/* Mime */ "a"][ext]; - } - - return result; -} -/** - * @param {string} color - * @returns {boolean} - */ - -function isTransparent(color) { - return 'rgba(0, 0, 0, 0)' === color || 'transparent' === color; -} -/** - * @param {Object} $el - * @returns {number} - */ - -function getRealHeight($el) { - $el.clone().show().appendTo(Common_Globals__WEBPACK_IMPORTED_MODULE_23__["$hcont"]); - var result = Common_Globals__WEBPACK_IMPORTED_MODULE_23__["$hcont"].height(); - Common_Globals__WEBPACK_IMPORTED_MODULE_23__["$hcont"].empty(); - return result; -} -/** - * @param {string} url - * @param {number} value - * @param {Function} fCallback - */ - -function resizeAndCrop(url, value, fCallback) { - var img = new window__WEBPACK_IMPORTED_MODULE_18___default.a.Image(); - - img.onload = function () { - var diff = [0, 0]; - var canvas = window__WEBPACK_IMPORTED_MODULE_18___default.a.document.createElement('canvas'), - ctx = canvas.getContext('2d'); - canvas.width = value; - canvas.height = value; - - if (this.width > this.height) { - diff = [this.width - this.height, 0]; - } else { - diff = [0, this.height - this.width]; - } - - ctx.fillStyle = '#fff'; - ctx.fillRect(0, 0, value, value); - ctx.drawImage(this, diff[0] / 2, diff[1] / 2, this.width - diff[0], this.height - diff[1], 0, 0, value, value); - fCallback(canvas.toDataURL('image/jpeg')); - }; - - img.src = url; -} -/** - * @param {string} mailToUrl - * @param {Function} PopupComposeViewModel - * @returns {boolean} - */ - -function mailToHelper(mailToUrl, PopupComposeViewModel) { - if (mailToUrl && 'mailto:' === mailToUrl.toString().substr(0, 7).toLowerCase()) { - if (!PopupComposeViewModel) { - return true; - } - - mailToUrl = mailToUrl.toString().substr(7); - var to = [], - cc = null, - bcc = null, - params = {}; - - var email = mailToUrl.replace(/\?.+$/, ''), - query = mailToUrl.replace(/^[^?]*\?/, ''), - EmailModel = __webpack_require__(/*! Model/Email */ 82).default; - - params = simpleQueryParser(query); - - if (!isUnd(params.to)) { - to = EmailModel.parseEmailLine(decodeURIComponent(email + ',' + params.to)); - to = _babel_runtime_corejs3_core_js_stable_instance_values__WEBPACK_IMPORTED_MODULE_11___default()(___WEBPACK_IMPORTED_MODULE_20___default.a).call(___WEBPACK_IMPORTED_MODULE_20___default.a, _babel_runtime_corejs3_core_js_stable_instance_reduce__WEBPACK_IMPORTED_MODULE_10___default()(to).call(to, function (result, value) { - if (value) { - if (result[value.email]) { - if (!result[value.email].name) { - result[value.email] = value; - } - } else { - result[value.email] = value; - } - } - - return result; - }, {})); - } else { - to = EmailModel.parseEmailLine(email); - } - - if (!isUnd(params.cc)) { - cc = EmailModel.parseEmailLine(decodeURIComponent(params.cc)); - } - - if (!isUnd(params.bcc)) { - bcc = EmailModel.parseEmailLine(decodeURIComponent(params.bcc)); - } - - __webpack_require__(/*! Knoin/Knoin */ 7).showScreenPopup(PopupComposeViewModel, [Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].Empty, null, to, cc, bcc, isUnd(params.subject) ? null : pString(decodeURIComponent(params.subject)), isUnd(params.body) ? null : plainToHtml(pString(decodeURIComponent(params.body)))]); - - return true; - } - - return false; -} -/** - * @param {Function} fn - * @returns {void} - */ - -function domReady(fn) { - $__WEBPACK_IMPORTED_MODULE_19___default()(function () { - return fn(); - }); // - // if ('loading' !== window.document.readyState) - // { - // fn(); - // } - // else - // { - // window.document.addEventListener('DOMContentLoaded', fn); - // } -} -var windowResize = ___WEBPACK_IMPORTED_MODULE_20___default.a.debounce(function (timeout) { - if (isUnd(timeout) || isNull(timeout)) { - Common_Globals__WEBPACK_IMPORTED_MODULE_23__["$win"].resize(); - } else { - window__WEBPACK_IMPORTED_MODULE_18___default.a.setTimeout(function () { - Common_Globals__WEBPACK_IMPORTED_MODULE_23__["$win"].resize(); - }, timeout); - } -}, 50); -/** - * @returns {void} - */ - -function windowResizeCallback() { - windowResize(); -} -var substr = window__WEBPACK_IMPORTED_MODULE_18___default.a.String.substr; - -if ('b' !== 'ab'.substr(-1)) { - substr = function substr(str, start, length) { - start = 0 > start ? str.length + start : start; - return str.substr(start, length); - }; - - window__WEBPACK_IMPORTED_MODULE_18___default.a.String.substr = substr; -} - -/***/ }), -/* 3 */ -/*!***************************!*\ - !*** external "window._" ***! - \***************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports) { - -module.exports = window._; - -/***/ }), -/* 4 */ -/*!*************************!*\ - !*** external "window" ***! - \*************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports) { - -module.exports = window; - -/***/ }), -/* 5 */ -/*!*********************************!*\ - !*** ./dev/Storage/Settings.js ***! - \*********************************/ -/*! exports provided: settingsGet, settingsSet, appSettingsGet, capa */ -/*! all exports used */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "settingsGet", function() { return settingsGet; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "settingsSet", function() { return settingsSet; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "appSettingsGet", function() { return appSettingsGet; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "capa", function() { return capa; }); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Common/Utils */ 2); - - -var SETTINGS = window__WEBPACK_IMPORTED_MODULE_0___default.a.__rlah_data() || null; -SETTINGS = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_1__["isNormal"])(SETTINGS) ? SETTINGS : {}; -var APP_SETTINGS = SETTINGS.System || null; -APP_SETTINGS = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_1__["isNormal"])(APP_SETTINGS) ? APP_SETTINGS : {}; -/** - * @param {string} name - * @returns {*} - */ - -function settingsGet(name) { - return Object(Common_Utils__WEBPACK_IMPORTED_MODULE_1__["isUnd"])(SETTINGS[name]) ? null : SETTINGS[name]; -} -/** - * @param {string} name - * @param {*} value - */ - -function settingsSet(name, value) { - SETTINGS[name] = value; -} -/** - * @param {string} name - * @returns {*} - */ - -function appSettingsGet(name) { - return Object(Common_Utils__WEBPACK_IMPORTED_MODULE_1__["isUnd"])(APP_SETTINGS[name]) ? null : APP_SETTINGS[name]; -} -/** - * @param {string} name - * @returns {boolean} - */ - -function capa(name) { - var values = settingsGet('Capa'); - return Object(Common_Utils__WEBPACK_IMPORTED_MODULE_1__["isArray"])(values) && Object(Common_Utils__WEBPACK_IMPORTED_MODULE_1__["isNormal"])(name) && -1 < Object(Common_Utils__WEBPACK_IMPORTED_MODULE_1__["inArray"])(name, values); -} - -/***/ }), -/* 6 */ -/*!*******************************!*\ - !*** ./dev/Common/Globals.js ***! - \*******************************/ -/*! exports provided: $win, $doc, $html, $body, $div, $hcont, startMicrotime, community, dropdownVisibility, useKeyboardShortcuts, sUserAgent, bIE, bChrome, bSafari, bMobileDevice, bDisableNanoScroll, bAnimationSupported, bXMLHttpRequestSupported, bIsHttps, htmlEditorDefaultConfig, htmlEditorLangsMap, bAllowPdfPreview, VIEW_MODELS, moveAction, leftPanelDisabled, leftPanelType, leftPanelWidth, popupVisibilityNames, popupVisibility, keyScopeReal, keyScopeFake, keyScope, data */ -/*! all exports used */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "$win", function() { return $win; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "$doc", function() { return $doc; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "$html", function() { return $html; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "$body", function() { return $body; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "$div", function() { return $div; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "$hcont", function() { return $hcont; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "startMicrotime", function() { return startMicrotime; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "community", function() { return community; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dropdownVisibility", function() { return dropdownVisibility; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useKeyboardShortcuts", function() { return useKeyboardShortcuts; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sUserAgent", function() { return sUserAgent; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bIE", function() { return bIE; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bChrome", function() { return bChrome; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bSafari", function() { return bSafari; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bMobileDevice", function() { return bMobileDevice; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bDisableNanoScroll", function() { return bDisableNanoScroll; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bAnimationSupported", function() { return bAnimationSupported; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bXMLHttpRequestSupported", function() { return bXMLHttpRequestSupported; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bIsHttps", function() { return bIsHttps; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "htmlEditorDefaultConfig", function() { return htmlEditorDefaultConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "htmlEditorLangsMap", function() { return htmlEditorLangsMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bAllowPdfPreview", function() { return bAllowPdfPreview; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VIEW_MODELS", function() { return VIEW_MODELS; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "moveAction", function() { return moveAction; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "leftPanelDisabled", function() { return leftPanelDisabled; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "leftPanelType", function() { return leftPanelType; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "leftPanelWidth", function() { return leftPanelWidth; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "popupVisibilityNames", function() { return popupVisibilityNames; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "popupVisibility", function() { return popupVisibility; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyScopeReal", function() { return keyScopeReal; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyScopeFake", function() { return keyScopeFake; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyScope", function() { return keyScope; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "data", function() { return data; }); -/* harmony import */ var core_js_modules_es_array_filter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.filter */ 277); -/* harmony import */ var core_js_modules_es_array_filter__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find */ 12); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/index-of */ 30); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! $ */ 8); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! key */ 21); -/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(key__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Common/Enums */ 0); - - - - - - - - - -var $win = $__WEBPACK_IMPORTED_MODULE_5___default()(window__WEBPACK_IMPORTED_MODULE_3___default.a); -$win.__sizes = [0, 0]; - -var $doc = $__WEBPACK_IMPORTED_MODULE_5___default()(window__WEBPACK_IMPORTED_MODULE_3___default.a.document); -var $html = $__WEBPACK_IMPORTED_MODULE_5___default()('html'); -var $body = $__WEBPACK_IMPORTED_MODULE_5___default()('body'); -var $div = $__WEBPACK_IMPORTED_MODULE_5___default()('
'); -var $hcont = $__WEBPACK_IMPORTED_MODULE_5___default()('
'); -$hcont.attr('area', 'hidden').css({ - position: 'absolute', - left: -5000 -}).appendTo($body); -var startMicrotime = new window__WEBPACK_IMPORTED_MODULE_3___default.a.Date().getTime(); -/** - * @type {boolean} - */ - -var community = true; -/** - * @type {?} - */ - -var dropdownVisibility = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false).extend({ - rateLimit: 0 -}); -/** - * @type {boolean} - */ - -var useKeyboardShortcuts = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(true); -/** - * @type {string} - */ - -var sUserAgent = 'navigator' in window__WEBPACK_IMPORTED_MODULE_3___default.a && 'userAgent' in window__WEBPACK_IMPORTED_MODULE_3___default.a.navigator && window__WEBPACK_IMPORTED_MODULE_3___default.a.navigator.userAgent.toLowerCase() || ''; -/** - * @type {boolean} - */ - -var bIE = -1 < _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_2___default()(sUserAgent).call(sUserAgent, 'msie'); -/** - * @type {boolean} - */ - -var bChrome = -1 < _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_2___default()(sUserAgent).call(sUserAgent, 'chrome'); -/** - * @type {boolean} - */ - -var bSafari = !bChrome && -1 < _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_2___default()(sUserAgent).call(sUserAgent, 'safari'); -/** - * @type {boolean} - */ - -var bMobileDevice = /android/i.test(sUserAgent) || /iphone/i.test(sUserAgent) || /ipod/i.test(sUserAgent) || /ipad/i.test(sUserAgent) || /blackberry/i.test(sUserAgent); -/** - * @type {boolean} - */ - -var bDisableNanoScroll = bMobileDevice; -/** - * @type {boolean} - */ - -var bAnimationSupported = !bMobileDevice && $html.hasClass('csstransitions') && $html.hasClass('cssanimations'); -/** - * @type {boolean} - */ - -var bXMLHttpRequestSupported = !!window__WEBPACK_IMPORTED_MODULE_3___default.a.XMLHttpRequest; -/** - * @type {boolean} - */ - -var bIsHttps = window__WEBPACK_IMPORTED_MODULE_3___default.a.document && window__WEBPACK_IMPORTED_MODULE_3___default.a.document.location ? 'https:' === window__WEBPACK_IMPORTED_MODULE_3___default.a.document.location.protocol : false; -/** - * @type {Object} - */ - -var htmlEditorDefaultConfig = { - 'title': false, - 'stylesSet': false, - 'customConfig': '', - 'contentsCss': '', - 'toolbarGroups': [{ - name: 'spec' - }, { - name: 'styles' - }, { - name: 'basicstyles', - groups: ['basicstyles', 'cleanup', 'bidi'] - }, { - name: 'colors' - }, bMobileDevice ? {} : { - name: 'paragraph', - groups: ['list', 'indent', 'blocks', 'align'] - }, { - name: 'links' - }, { - name: 'insert' - }, { - name: 'document', - groups: ['mode', 'document', 'doctools'] - }, { - name: 'others' - }], - 'removePlugins': 'liststyle', - 'removeButtons': 'Format,Undo,Redo,Cut,Copy,Paste,Anchor,Strike,Subscript,Superscript,Image,SelectAll,Source', - 'removeDialogTabs': 'link:advanced;link:target;image:advanced;images:advanced', - 'extraPlugins': 'plain,signature', - 'allowedContent': true, - 'extraAllowedContent': true, - 'fillEmptyBlocks': false, - 'ignoreEmptyParagraph': true, - 'disableNativeSpellChecker': false, - 'colorButton_enableAutomatic': false, - 'colorButton_enableMore': true, - 'font_defaultLabel': 'Arial', - 'fontSize_defaultLabel': '13', - 'fontSize_sizes': '10/10px;12/12px;13/13px;14/14px;16/16px;18/18px;20/20px;24/24px;28/28px;36/36px;48/48px' -}; -/** - * @type {Object} - */ - -var htmlEditorLangsMap = { - 'ar_sa': 'ar-sa', - 'bg_bg': 'bg', - 'cs_CZ': 'cs', - 'de_de': 'de', - 'el_gr': 'el', - 'es_es': 'es', - 'et_ee': 'et', - 'fr_fr': 'fr', - 'hu_hu': 'hu', - 'is_is': 'is', - 'it_it': 'it', - 'ja_jp': 'ja', - 'ko_kr': 'ko', - 'lt_lt': 'lt', - 'lv_lv': 'lv', - 'fa_ir': 'fa', - 'nb_no': 'nb', - 'nl_nl': 'nl', - 'pl_pl': 'pl', - 'pt_br': 'pt-br', - 'pt_pt': 'pt', - 'ro_ro': 'ro', - 'ru_ru': 'ru', - 'sk_sk': 'sk', - 'sl_si': 'sl', - 'sv_se': 'sv', - 'tr_tr': 'tr', - 'uk_ua': 'uk', - 'zh_cn': 'zh-cn', - 'zh_tw': 'zh' -}; -/** - * @type {boolean} - */ - -var bAllowPdfPreview = !bMobileDevice; - -if (bAllowPdfPreview && window__WEBPACK_IMPORTED_MODULE_3___default.a.navigator && window__WEBPACK_IMPORTED_MODULE_3___default.a.navigator.mimeTypes) { - bAllowPdfPreview = !!_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_4___default.a).call(___WEBPACK_IMPORTED_MODULE_4___default.a, window__WEBPACK_IMPORTED_MODULE_3___default.a.navigator.mimeTypes, function (type) { - return type && 'application/pdf' === type.type; - }); - - if (!bAllowPdfPreview) { - bAllowPdfPreview = 'undefined' !== typeof window__WEBPACK_IMPORTED_MODULE_3___default.a.navigator.mimeTypes['application/pdf']; - } -} - - -var VIEW_MODELS = { - settings: [], - 'settings-removed': [], - 'settings-disabled': [] -}; -var moveAction = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); -var leftPanelDisabled = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); -var leftPanelType = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(''); -var leftPanelWidth = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(0); -leftPanelDisabled.subscribe(function (value) { - if (value && moveAction()) { - moveAction(false); - } -}); -moveAction.subscribe(function (value) { - if (value && leftPanelDisabled()) { - leftPanelDisabled(false); - } -}); // popups - -var popupVisibilityNames = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observableArray([]); -var popupVisibility = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].computed(function () { - return 0 < popupVisibilityNames().length; -}); -popupVisibility.subscribe(function (bValue) { - $html.toggleClass('rl-modal', bValue); -}); // keys - -var keyScopeReal = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_8__["KeyState"].All); -var keyScopeFake = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_8__["KeyState"].All); -var keyScope = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].computed({ - read: function read() { - return keyScopeFake(); - }, - write: function write(value) { - if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["KeyState"].Menu !== value) { - if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["KeyState"].Compose === value) { - // disableKeyFilter - key__WEBPACK_IMPORTED_MODULE_6___default.a.filter = function () { - return useKeyboardShortcuts(); - }; - } else { - // restoreKeyFilter - key__WEBPACK_IMPORTED_MODULE_6___default.a.filter = function (event) { - if (useKeyboardShortcuts()) { - var el = event.target || event.srcElement, - tagName = el ? el.tagName.toUpperCase() : ''; - return !('INPUT' === tagName || 'SELECT' === tagName || 'TEXTAREA' === tagName || el && 'DIV' === tagName && ('editorHtmlArea' === el.className || 'true' === '' + el.contentEditable)); - } - - return false; - }; - } - - keyScopeFake(value); - - if (dropdownVisibility()) { - value = Common_Enums__WEBPACK_IMPORTED_MODULE_8__["KeyState"].Menu; - } - } - - keyScopeReal(value); - } -}); -keyScopeReal.subscribe(function (value) { - // window.console.log('keyScope=' + sValue); // DEBUG - key__WEBPACK_IMPORTED_MODULE_6___default.a.setScope(value); -}); -dropdownVisibility.subscribe(function (value) { - if (value) { - keyScope(Common_Enums__WEBPACK_IMPORTED_MODULE_8__["KeyState"].Menu); - } else if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["KeyState"].Menu === key__WEBPACK_IMPORTED_MODULE_6___default.a.getScope()) { - keyScope(keyScopeFake()); - } -}); -/** - * @type {*} - */ - -var data = { - __APP__: null, - iAjaxErrorCount: 0, - iTokenErrorCount: 0, - aBootstrapDropdowns: [], - iMessageBodyCacheCount: 0, - bUnload: false -}; - -/***/ }), -/* 7 */ -/*!****************************!*\ - !*** ./dev/Knoin/Knoin.js ***! - \****************************/ -/*! exports provided: ViewType, hideLoading, createCommand, addSettingsViewModel, removeSettingsViewModel, disableSettingsViewModel, routeOff, routeOn, screen, getScreenPopup, hideScreenPopup, vmRunHook, buildViewModel, showScreenPopup, warmUpScreenPopup, isPopupVisible, screenOnRoute, startScreens, setHash, commandDecorator, command, viewDecorator, view, viewModel, popupDecorator, popup, settingsMenuKeysHandler */ -/*! all exports used */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ViewType", function() { return ViewType; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hideLoading", function() { return hideLoading; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createCommand", function() { return createCommand; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addSettingsViewModel", function() { return addSettingsViewModel; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeSettingsViewModel", function() { return removeSettingsViewModel; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "disableSettingsViewModel", function() { return disableSettingsViewModel; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "routeOff", function() { return routeOff; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "routeOn", function() { return routeOn; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "screen", function() { return screen; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getScreenPopup", function() { return getScreenPopup; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hideScreenPopup", function() { return hideScreenPopup; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "vmRunHook", function() { return vmRunHook; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buildViewModel", function() { return buildViewModel; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showScreenPopup", function() { return showScreenPopup; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "warmUpScreenPopup", function() { return warmUpScreenPopup; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isPopupVisible", function() { return isPopupVisible; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "screenOnRoute", function() { return screenOnRoute; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "startScreens", function() { return startScreens; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setHash", function() { return setHash; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "commandDecorator", function() { return commandDecorator; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "command", function() { return commandDecorator; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "viewDecorator", function() { return viewDecorator; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "view", function() { return viewDecorator; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "viewModel", function() { return viewDecorator; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "popupDecorator", function() { return popupDecorator; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "popup", function() { return popupDecorator; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "settingsMenuKeysHandler", function() { return settingsMenuKeysHandler; }); -/* harmony import */ var core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.function.name */ 51); -/* harmony import */ var core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.regexp.exec */ 45); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.string.match */ 198); -/* harmony import */ var core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/filter */ 34); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! $ */ 8); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var hasher__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! hasher */ 61); -/* harmony import */ var hasher__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(hasher__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var crossroads__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! crossroads */ 164); -/* harmony import */ var crossroads__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(crossroads__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Common_Plugins__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Common/Plugins */ 39); -/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Common/Globals */ 6); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! Common/Utils */ 2); - - - - - - - - - - - - - -var currentScreen = null, - defaultScreenName = ''; -var SCREENS = {}; -var ViewType = { - Popup: 'Popups', - Left: 'Left', - Right: 'Right', - Center: 'Center' -}; -/** - * @returns {void} - */ - -function hideLoading() { - $__WEBPACK_IMPORTED_MODULE_5___default()('#rl-content').addClass('rl-content-show'); - $__WEBPACK_IMPORTED_MODULE_5___default()('#rl-loading').hide().remove(); -} -/** - * @param {Function} fExecute - * @param {(Function|boolean|null)=} fCanExecute = true - * @returns {Function} - */ - -function createCommand(fExecute, fCanExecute) { - if (fCanExecute === void 0) { - fCanExecute = true; - } - - return Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["createCommandLegacy"])(null, fExecute, fCanExecute); -} -/** - * @param {Function} SettingsViewModelClass - * @param {string} template - * @param {string} labelName - * @param {string} route - * @param {boolean=} isDefault = false - * @returns {void} - */ - -function addSettingsViewModel(SettingsViewModelClass, template, labelName, route, isDefault) { - if (isDefault === void 0) { - isDefault = false; - } - - SettingsViewModelClass.__rlSettingsData = { - Label: labelName, - Template: template, - Route: route, - IsDefault: !!isDefault - }; - Common_Globals__WEBPACK_IMPORTED_MODULE_11__["VIEW_MODELS"].settings.push(SettingsViewModelClass); -} -/** - * @param {Function} SettingsViewModelClass - * @returns {void} - */ - -function removeSettingsViewModel(SettingsViewModelClass) { - Common_Globals__WEBPACK_IMPORTED_MODULE_11__["VIEW_MODELS"]['settings-removed'].push(SettingsViewModelClass); -} -/** - * @param {Function} SettingsViewModelClass - * @returns {void} - */ - -function disableSettingsViewModel(SettingsViewModelClass) { - Common_Globals__WEBPACK_IMPORTED_MODULE_11__["VIEW_MODELS"]['settings-disabled'].push(SettingsViewModelClass); -} -/** - * @returns {void} - */ - -function routeOff() { - hasher__WEBPACK_IMPORTED_MODULE_7___default.a.changed.active = false; -} -/** - * @returns {void} - */ - -function routeOn() { - hasher__WEBPACK_IMPORTED_MODULE_7___default.a.changed.active = true; -} -/** - * @param {string} screenName - * @returns {?Object} - */ - -function screen(screenName) { - return '' !== screenName && !Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["isUnd"])(SCREENS[screenName]) ? SCREENS[screenName] : null; -} -/** - * @param {Function} ViewModelClassToShow - * @returns {Function|null} - */ - -function getScreenPopup(PopuViewModelClass) { - var result = null; - - if (PopuViewModelClass) { - result = PopuViewModelClass; - - if (PopuViewModelClass.default) { - result = PopuViewModelClass.default; - } - } - - return result; -} -/** - * @param {Function} ViewModelClassToHide - * @returns {void} - */ - -function hideScreenPopup(ViewModelClassToHide) { - var ModalView = getScreenPopup(ViewModelClassToHide); - - if (ModalView && ModalView.__vm && ModalView.__dom) { - ModalView.__vm.modalVisibility(false); - } -} -/** - * @param {string} hookName - * @param {Function} ViewModelClass - * @param {mixed=} params = null - */ - -function vmRunHook(hookName, ViewModelClass, params) { - if (params === void 0) { - params = null; - } - - ___WEBPACK_IMPORTED_MODULE_4___default.a.each(ViewModelClass.__names, function (name) { - Object(Common_Plugins__WEBPACK_IMPORTED_MODULE_10__[/* runHook */ "f"])(hookName, [name, ViewModelClass.__vm, params]); - }); -} -/** - * @param {Function} ViewModelClass - * @param {Object=} vmScreen - * @returns {*} - */ - -function buildViewModel(ViewModelClass, vmScreen) { - if (ViewModelClass && !ViewModelClass.__builded) { - var vmDom = null; - var vm = new ViewModelClass(vmScreen), - position = ViewModelClass.__type || '', - vmPlace = position ? $__WEBPACK_IMPORTED_MODULE_5___default()('#rl-content #rl-' + position.toLowerCase()) : null; - ViewModelClass.__builded = true; - ViewModelClass.__vm = vm; - vm.onShowTrigger = ko__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].observable(false); - vm.onHideTrigger = ko__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].observable(false); - vm.viewModelName = ViewModelClass.__name; - vm.viewModelNames = ViewModelClass.__names; - vm.viewModelTemplateID = ViewModelClass.__templateID; - vm.viewModelPosition = ViewModelClass.__type; - - if (vmPlace && 1 === vmPlace.length) { - vmDom = $__WEBPACK_IMPORTED_MODULE_5___default()('
').addClass('rl-view-model').addClass('RL-' + vm.viewModelTemplateID).hide(); - vmDom.appendTo(vmPlace); - vm.viewModelDom = vmDom; - ViewModelClass.__dom = vmDom; - - if (ViewType.Popup === position) { - vm.cancelCommand = vm.closeCommand = createCommand(function () { - hideScreenPopup(ViewModelClass); - }); - vm.modalVisibility.subscribe(function (value) { - if (value) { - vm.viewModelDom.show(); - vm.storeAndSetKeyScope(); - Common_Globals__WEBPACK_IMPORTED_MODULE_11__["popupVisibilityNames"].push(vm.viewModelName); - vm.viewModelDom.css('z-index', 3000 + Object(Common_Globals__WEBPACK_IMPORTED_MODULE_11__["popupVisibilityNames"])().length + 10); - - if (vm.onShowTrigger) { - vm.onShowTrigger(!vm.onShowTrigger()); - } - - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["delegateRun"])(vm, 'onShowWithDelay', [], 500); - } else { - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["delegateRun"])(vm, 'onHide'); - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["delegateRun"])(vm, 'onHideWithDelay', [], 500); - - if (vm.onHideTrigger) { - vm.onHideTrigger(!vm.onHideTrigger()); - } - - vm.restoreKeyScope(); - vmRunHook('view-model-on-hide', ViewModelClass); - Common_Globals__WEBPACK_IMPORTED_MODULE_11__["popupVisibilityNames"].remove(vm.viewModelName); - vm.viewModelDom.css('z-index', 2000); - - ___WEBPACK_IMPORTED_MODULE_4___default.a.delay(function () { - return vm.viewModelDom.hide(); - }, 300); - } - }); - } - - vmRunHook('view-model-pre-build', ViewModelClass, vmDom); - ko__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].applyBindingAccessorsToNode(vmDom[0], { - translatorInit: true, - template: function template() { - return { - name: vm.viewModelTemplateID - }; - } - }, vm); - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["delegateRun"])(vm, 'onBuild', [vmDom]); - - if (vm && ViewType.Popup === position) { - vm.registerPopupKeyDown(); - } - - vmRunHook('view-model-post-build', ViewModelClass, vmDom); - } else { - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["log"])('Cannot find view model position: ' + position); - } - } - - return ViewModelClass ? ViewModelClass.__vm : null; -} -/** - * @param {Function} ViewModelClassToShow - * @param {Array=} params - * @returns {void} - */ - -function showScreenPopup(ViewModelClassToShow, params) { - if (params === void 0) { - params = []; - } - - var ModalView = getScreenPopup(ViewModelClassToShow); - - if (ModalView) { - buildViewModel(ModalView); - - if (ModalView.__vm && ModalView.__dom) { - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["delegateRun"])(ModalView.__vm, 'onBeforeShow', params || []); - - ModalView.__vm.modalVisibility(true); - - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["delegateRun"])(ModalView.__vm, 'onShow', params || []); - vmRunHook('view-model-on-show', ModalView, params || []); - } - } -} -/** - * @param {Function} ViewModelClassToShow - * @returns {void} - */ - -function warmUpScreenPopup(ViewModelClassToShow) { - var ModalView = getScreenPopup(ViewModelClassToShow); - - if (ModalView) { - buildViewModel(ModalView); - - if (ModalView.__vm && ModalView.__dom) { - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["delegateRun"])(ModalView.__vm, 'onWarmUp'); - } - } -} -/** - * @param {Function} ViewModelClassToShow - * @returns {boolean} - */ - -function isPopupVisible(ViewModelClassToShow) { - var ModalView = getScreenPopup(ViewModelClassToShow); - return ModalView && ModalView.__vm ? ModalView.__vm.modalVisibility() : false; -} -/** - * @param {string} screenName - * @param {string} subPart - * @returns {void} - */ - -function screenOnRoute(screenName, subPart) { - var vmScreen = null, - isSameScreen = false, - cross = null; - - if ('' === Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["pString"])(screenName)) { - screenName = defaultScreenName; - } - - if ('' !== screenName) { - vmScreen = screen(screenName); - - if (!vmScreen) { - vmScreen = screen(defaultScreenName); - - if (vmScreen) { - subPart = screenName + '/' + subPart; - screenName = defaultScreenName; - } - } - - if (vmScreen && vmScreen.__started) { - isSameScreen = currentScreen && vmScreen === currentScreen; - - if (!vmScreen.__builded) { - vmScreen.__builded = true; - - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["isNonEmptyArray"])(vmScreen.viewModels())) { - ___WEBPACK_IMPORTED_MODULE_4___default.a.each(vmScreen.viewModels(), function (ViewModelClass) { - buildViewModel(ViewModelClass, vmScreen); - }); - } - - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["delegateRun"])(vmScreen, 'onBuild'); - } - - ___WEBPACK_IMPORTED_MODULE_4___default.a.defer(function () { - // hide screen - if (currentScreen && !isSameScreen) { - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["delegateRun"])(currentScreen, 'onHide'); - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["delegateRun"])(currentScreen, 'onHideWithDelay', [], 500); - - if (currentScreen.onHideTrigger) { - currentScreen.onHideTrigger(!currentScreen.onHideTrigger()); - } - - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["isNonEmptyArray"])(currentScreen.viewModels())) { - ___WEBPACK_IMPORTED_MODULE_4___default.a.each(currentScreen.viewModels(), function (ViewModelClass) { - if (ViewModelClass.__vm && ViewModelClass.__dom && ViewType.Popup !== ViewModelClass.__vm.viewModelPosition) { - ViewModelClass.__dom.hide(); - - ViewModelClass.__vm.viewModelVisibility(false); - - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["delegateRun"])(ViewModelClass.__vm, 'onHide'); - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["delegateRun"])(ViewModelClass.__vm, 'onHideWithDelay', [], 500); - - if (ViewModelClass.__vm.onHideTrigger) { - ViewModelClass.__vm.onHideTrigger(!ViewModelClass.__vm.onHideTrigger()); - } - } - }); - } - } // -- - - - currentScreen = vmScreen; // show screen - - if (currentScreen && !isSameScreen) { - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["delegateRun"])(currentScreen, 'onShow'); - - if (currentScreen.onShowTrigger) { - currentScreen.onShowTrigger(!currentScreen.onShowTrigger()); - } - - Object(Common_Plugins__WEBPACK_IMPORTED_MODULE_10__[/* runHook */ "f"])('screen-on-show', [currentScreen.screenName(), currentScreen]); - - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["isNonEmptyArray"])(currentScreen.viewModels())) { - ___WEBPACK_IMPORTED_MODULE_4___default.a.each(currentScreen.viewModels(), function (ViewModelClass) { - if (ViewModelClass.__vm && ViewModelClass.__dom && ViewType.Popup !== ViewModelClass.__vm.viewModelPosition) { - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["delegateRun"])(ViewModelClass.__vm, 'onBeforeShow'); - - ViewModelClass.__dom.show(); - - ViewModelClass.__vm.viewModelVisibility(true); - - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["delegateRun"])(ViewModelClass.__vm, 'onShow'); - - if (ViewModelClass.__vm.onShowTrigger) { - ViewModelClass.__vm.onShowTrigger(!ViewModelClass.__vm.onShowTrigger()); - } - - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["delegateRun"])(ViewModelClass.__vm, 'onShowWithDelay', [], 200); - vmRunHook('view-model-on-show', ViewModelClass); - } - }); - } - } // -- - - - cross = vmScreen && vmScreen.__cross ? vmScreen.__cross() : null; - - if (cross) { - cross.parse(subPart); - } - }); - } - } -} -/** - * @param {Array} screensClasses - * @returns {void} - */ - -function startScreens(screensClasses) { - ___WEBPACK_IMPORTED_MODULE_4___default.a.each(screensClasses, function (CScreen) { - if (CScreen) { - var vmScreen = new CScreen(), - screenName = vmScreen ? vmScreen.screenName() : ''; - - if (vmScreen && '' !== screenName) { - if ('' === defaultScreenName) { - defaultScreenName = screenName; - } - - SCREENS[screenName] = vmScreen; - } - } - }); - - ___WEBPACK_IMPORTED_MODULE_4___default.a.each(SCREENS, function (vmScreen) { - if (vmScreen && !vmScreen.__started && vmScreen.__start) { - vmScreen.__started = true; - - vmScreen.__start(); - - Object(Common_Plugins__WEBPACK_IMPORTED_MODULE_10__[/* runHook */ "f"])('screen-pre-start', [vmScreen.screenName(), vmScreen]); - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["delegateRun"])(vmScreen, 'onStart'); - Object(Common_Plugins__WEBPACK_IMPORTED_MODULE_10__[/* runHook */ "f"])('screen-post-start', [vmScreen.screenName(), vmScreen]); - } - }); - - var cross = crossroads__WEBPACK_IMPORTED_MODULE_8___default.a.create(); - cross.addRoute(/^([a-zA-Z0-9-]*)\/?(.*)$/, screenOnRoute); - hasher__WEBPACK_IMPORTED_MODULE_7___default.a.initialized.add(cross.parse, cross); - hasher__WEBPACK_IMPORTED_MODULE_7___default.a.changed.add(cross.parse, cross); - hasher__WEBPACK_IMPORTED_MODULE_7___default.a.init(); - - ___WEBPACK_IMPORTED_MODULE_4___default.a.delay(function () { - return Common_Globals__WEBPACK_IMPORTED_MODULE_11__["$html"].removeClass('rl-started-trigger').addClass('rl-started'); - }, 100); - - ___WEBPACK_IMPORTED_MODULE_4___default.a.delay(function () { - return Common_Globals__WEBPACK_IMPORTED_MODULE_11__["$html"].addClass('rl-started-delay'); - }, 200); -} -/** - * @param {string} sHash - * @param {boolean=} silence = false - * @param {boolean=} replace = false - * @returns {void} - */ - -function setHash(hash, silence, replace) { - if (silence === void 0) { - silence = false; - } - - if (replace === void 0) { - replace = false; - } - - hash = '#' === hash.substr(0, 1) ? hash.substr(1) : hash; - hash = '/' === hash.substr(0, 1) ? hash.substr(1) : hash; - var cmd = replace ? 'replaceHash' : 'setHash'; - - if (silence) { - hasher__WEBPACK_IMPORTED_MODULE_7___default.a.changed.active = false; - hasher__WEBPACK_IMPORTED_MODULE_7___default.a[cmd](hash); - hasher__WEBPACK_IMPORTED_MODULE_7___default.a.changed.active = true; - } else { - hasher__WEBPACK_IMPORTED_MODULE_7___default.a.changed.active = true; - hasher__WEBPACK_IMPORTED_MODULE_7___default.a[cmd](hash); - hasher__WEBPACK_IMPORTED_MODULE_7___default.a.setHash(hash); - } -} -/** - * @param {Object} params - * @returns {Function} - */ - -function viewDecorator(_ref) { - var name = _ref.name, - type = _ref.type, - templateID = _ref.templateID; - return function (target) { - if (target) { - if (name) { - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["isArray"])(name)) { - target.__names = name; - } else { - target.__names = [name]; - } - - target.__name = target.__names[0]; - } - - if (type) { - target.__type = type; - } - - if (templateID) { - target.__templateID = templateID; - } - } - }; -} -/** - * @param {Object} params - * @returns {Function} - */ - - -function popupDecorator(_ref2) { - var name = _ref2.name, - templateID = _ref2.templateID; - return viewDecorator({ - name: name, - type: ViewType.Popup, - templateID: templateID - }); -} -/** - * @param {Function} canExecute - * @returns {Function} - */ - - -function commandDecorator(canExecute) { - if (canExecute === void 0) { - canExecute = true; - } - - return function (target, key, descriptor) { - if (!key || !key.match(/Command$/)) { - throw new Error("name \"" + key + "\" should end with Command suffix"); - } - - var value = descriptor.value || descriptor.initializer(), - normCanExecute = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_12__["isFunc"])(canExecute) ? canExecute : function () { - return !!canExecute; - }; - - descriptor.value = function () { - if (normCanExecute.call(this, this)) { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - value.apply(this, args); - } - - return false; - }; - - descriptor.value.__realCanExecute = normCanExecute; - descriptor.value.isCommand = true; - return descriptor; - }; -} -/** - * @param {miced} $items - * @returns {Function} - */ - - -function settingsMenuKeysHandler($items) { - return ___WEBPACK_IMPORTED_MODULE_4___default.a.throttle(function (event, handler) { - var up = handler && 'up' === handler.shortcut; - - if (event && $items.length) { - var index = $items.index(_babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3___default()($items).call($items, '.selected')); - - if (up && 0 < index) { - index -= 1; - } else if (!up && index < $items.length - 1) { - index += 1; - } - - var resultHash = $items.eq(index).attr('href'); - - if (resultHash) { - setHash(resultHash, false, true); - } - } - }, Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Magics"].Time200ms); -} - - - -/***/ }), -/* 8 */ -/*!********************************!*\ - !*** external "window.jQuery" ***! - \********************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports) { - -module.exports = window.jQuery; - -/***/ }), -/* 9 */ -/*!**********************************!*\ - !*** ./dev/Common/Translator.js ***! - \**********************************/ -/*! exports provided: trigger, i18n, i18nToNodes, initNotificationLanguage, initOnStartOrLangChange, getNotification, getNotificationFromResponse, getUploadErrorDescByCode, reload */ -/*! all exports used */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "trigger", function() { return trigger; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i18n", function() { return i18n; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i18nToNodes", function() { return i18nToNodes; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initNotificationLanguage", function() { return initNotificationLanguage; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initOnStartOrLangChange", function() { return initOnStartOrLangChange; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNotification", function() { return getNotification; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNotificationFromResponse", function() { return getNotificationFromResponse; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getUploadErrorDescByCode", function() { return getUploadErrorDescByCode; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reload", function() { return reload; }); -/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.object.to-string */ 63); -/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_promise__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.promise */ 121); -/* harmony import */ var core_js_modules_es_promise__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_promise__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.regexp.exec */ 45); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.string.replace */ 57); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/for-each */ 70); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! $ */ 8); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Common/Globals */ 6); -/* harmony import */ var Common_Momentor__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! Common/Momentor */ 60); -/* harmony import */ var Common_Links__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! Common/Links */ 15); - - - - - - - - - - - - - - -var I18N_DATA = window__WEBPACK_IMPORTED_MODULE_5___default.a.rainloopI18N || {}; -var I18N_NOTIFICATION_DATA = {}; -var I18N_NOTIFICATION_MAP = [[Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].InvalidToken, 'NOTIFICATIONS/INVALID_TOKEN'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].InvalidToken, 'NOTIFICATIONS/INVALID_TOKEN'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].AuthError, 'NOTIFICATIONS/AUTH_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].AccessError, 'NOTIFICATIONS/ACCESS_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].ConnectionError, 'NOTIFICATIONS/CONNECTION_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CaptchaError, 'NOTIFICATIONS/CAPTCHA_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].SocialFacebookLoginAccessDisable, 'NOTIFICATIONS/SOCIAL_FACEBOOK_LOGIN_ACCESS_DISABLE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].SocialTwitterLoginAccessDisable, 'NOTIFICATIONS/SOCIAL_TWITTER_LOGIN_ACCESS_DISABLE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].SocialGoogleLoginAccessDisable, 'NOTIFICATIONS/SOCIAL_GOOGLE_LOGIN_ACCESS_DISABLE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].DomainNotAllowed, 'NOTIFICATIONS/DOMAIN_NOT_ALLOWED'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].AccountNotAllowed, 'NOTIFICATIONS/ACCOUNT_NOT_ALLOWED'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].AccountTwoFactorAuthRequired, 'NOTIFICATIONS/ACCOUNT_TWO_FACTOR_AUTH_REQUIRED'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].AccountTwoFactorAuthError, 'NOTIFICATIONS/ACCOUNT_TWO_FACTOR_AUTH_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CouldNotSaveNewPassword, 'NOTIFICATIONS/COULD_NOT_SAVE_NEW_PASSWORD'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CurrentPasswordIncorrect, 'NOTIFICATIONS/CURRENT_PASSWORD_INCORRECT'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].NewPasswordShort, 'NOTIFICATIONS/NEW_PASSWORD_SHORT'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].NewPasswordWeak, 'NOTIFICATIONS/NEW_PASSWORD_WEAK'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].NewPasswordForbidden, 'NOTIFICATIONS/NEW_PASSWORD_FORBIDDENT'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].ContactsSyncError, 'NOTIFICATIONS/CONTACTS_SYNC_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantGetMessageList, 'NOTIFICATIONS/CANT_GET_MESSAGE_LIST'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantGetMessage, 'NOTIFICATIONS/CANT_GET_MESSAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantDeleteMessage, 'NOTIFICATIONS/CANT_DELETE_MESSAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantMoveMessage, 'NOTIFICATIONS/CANT_MOVE_MESSAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantCopyMessage, 'NOTIFICATIONS/CANT_MOVE_MESSAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantSaveMessage, 'NOTIFICATIONS/CANT_SAVE_MESSAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantSendMessage, 'NOTIFICATIONS/CANT_SEND_MESSAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].InvalidRecipients, 'NOTIFICATIONS/INVALID_RECIPIENTS'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantSaveFilters, 'NOTIFICATIONS/CANT_SAVE_FILTERS'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantGetFilters, 'NOTIFICATIONS/CANT_GET_FILTERS'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].FiltersAreNotCorrect, 'NOTIFICATIONS/FILTERS_ARE_NOT_CORRECT'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantCreateFolder, 'NOTIFICATIONS/CANT_CREATE_FOLDER'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantRenameFolder, 'NOTIFICATIONS/CANT_RENAME_FOLDER'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantDeleteFolder, 'NOTIFICATIONS/CANT_DELETE_FOLDER'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantDeleteNonEmptyFolder, 'NOTIFICATIONS/CANT_DELETE_NON_EMPTY_FOLDER'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantSubscribeFolder, 'NOTIFICATIONS/CANT_SUBSCRIBE_FOLDER'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantUnsubscribeFolder, 'NOTIFICATIONS/CANT_UNSUBSCRIBE_FOLDER'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantSaveSettings, 'NOTIFICATIONS/CANT_SAVE_SETTINGS'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantSavePluginSettings, 'NOTIFICATIONS/CANT_SAVE_PLUGIN_SETTINGS'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].DomainAlreadyExists, 'NOTIFICATIONS/DOMAIN_ALREADY_EXISTS'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantInstallPackage, 'NOTIFICATIONS/CANT_INSTALL_PACKAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantDeletePackage, 'NOTIFICATIONS/CANT_DELETE_PACKAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].InvalidPluginPackage, 'NOTIFICATIONS/INVALID_PLUGIN_PACKAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].UnsupportedPluginPackage, 'NOTIFICATIONS/UNSUPPORTED_PLUGIN_PACKAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].LicensingServerIsUnavailable, 'NOTIFICATIONS/LICENSING_SERVER_IS_UNAVAILABLE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].LicensingExpired, 'NOTIFICATIONS/LICENSING_EXPIRED'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].LicensingBanned, 'NOTIFICATIONS/LICENSING_BANNED'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].DemoSendMessageError, 'NOTIFICATIONS/DEMO_SEND_MESSAGE_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].DemoAccountError, 'NOTIFICATIONS/DEMO_ACCOUNT_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].AccountAlreadyExists, 'NOTIFICATIONS/ACCOUNT_ALREADY_EXISTS'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].AccountDoesNotExist, 'NOTIFICATIONS/ACCOUNT_DOES_NOT_EXIST'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].MailServerError, 'NOTIFICATIONS/MAIL_SERVER_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].InvalidInputArgument, 'NOTIFICATIONS/INVALID_INPUT_ARGUMENT'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].UnknownNotification, 'NOTIFICATIONS/UNKNOWN_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].UnknownError, 'NOTIFICATIONS/UNKNOWN_ERROR']]; -var trigger = ko__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].observable(false); -/** - * @param {string} key - * @param {Object=} valueList - * @param {string=} defaulValue - * @returns {string} - */ - -function i18n(key, valueList, defaulValue) { - var valueName = '', - result = I18N_DATA[key]; - - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["isUnd"])(result)) { - result = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["isUnd"])(defaulValue) ? key : defaulValue; - } - - if (!Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["isUnd"])(valueList) && !Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["isNull"])(valueList)) { - for (valueName in valueList) { - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["has"])(valueList, valueName)) { - result = result.replace('%' + valueName + '%', valueList[valueName]); - } - } - } - - return result; -} - -var i18nToNode = function i18nToNode(element) { - var $el = $__WEBPACK_IMPORTED_MODULE_7___default()(element), - key = $el.data('i18n'); - - if (key) { - if ('[' === key.substr(0, 1)) { - switch (key.substr(0, 6)) { - case '[html]': - $el.html(i18n(key.substr(6))); - break; - - case '[place': - $el.attr('placeholder', i18n(key.substr(13))); - break; - - case '[title': - $el.attr('title', i18n(key.substr(7))); - break; - // no default - } - } else { - $el.text(i18n(key)); - } - } -}; -/** - * @param {Object} elements - * @param {boolean=} animate = false - */ - - -function i18nToNodes(elements, animate) { - if (animate === void 0) { - animate = false; - } - - ___WEBPACK_IMPORTED_MODULE_6___default.a.defer(function () { - $__WEBPACK_IMPORTED_MODULE_7___default()('[data-i18n]', elements).each(function (index, item) { - i18nToNode(item); - }); - - if (animate && Common_Globals__WEBPACK_IMPORTED_MODULE_11__["bAnimationSupported"]) { - $__WEBPACK_IMPORTED_MODULE_7___default()('.i18n-animation[data-i18n]', elements).letterfx({ - 'fx': 'fall fade', - 'backwards': false, - 'timing': 50, - 'fx_duration': '50ms', - 'letter_end': 'restore', - 'element_end': 'restore' - }); - } - }); -} - -var reloadData = function reloadData() { - if (window__WEBPACK_IMPORTED_MODULE_5___default.a.rainloopI18N) { - I18N_DATA = window__WEBPACK_IMPORTED_MODULE_5___default.a.rainloopI18N || {}; - i18nToNodes(window__WEBPACK_IMPORTED_MODULE_5___default.a.document, true); - Object(Common_Momentor__WEBPACK_IMPORTED_MODULE_12__["reload"])(); - trigger(!trigger()); - } - - window__WEBPACK_IMPORTED_MODULE_5___default.a.rainloopI18N = null; -}; -/** - * @returns {void} - */ - - -function initNotificationLanguage() { - _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_4___default()(I18N_NOTIFICATION_MAP).call(I18N_NOTIFICATION_MAP, function (item) { - I18N_NOTIFICATION_DATA[item[0]] = i18n(item[1]); - }); -} -/** - * @param {Function} startCallback - * @param {Function=} langCallback = null - */ - -function initOnStartOrLangChange(startCallback, langCallback) { - if (langCallback === void 0) { - langCallback = null; - } - - if (startCallback) { - startCallback(); - } - - if (langCallback) { - trigger.subscribe(function () { - if (startCallback) { - startCallback(); - } - - if (langCallback) { - langCallback(); - } - }); - } else if (startCallback) { - trigger.subscribe(startCallback); - } -} -/** - * @param {number} code - * @param {*=} message = '' - * @param {*=} defCode = null - * @returns {string} - */ - -function getNotification(code, message, defCode) { - if (message === void 0) { - message = ''; - } - - if (defCode === void 0) { - defCode = null; - } - - code = window__WEBPACK_IMPORTED_MODULE_5___default.a.parseInt(code, 10) || 0; - - if (Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].ClientViewError === code && message) { - return message; - } - - defCode = defCode ? window__WEBPACK_IMPORTED_MODULE_5___default.a.parseInt(defCode, 10) || 0 : 0; - return Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["isUnd"])(I18N_NOTIFICATION_DATA[code]) ? defCode && Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["isUnd"])(I18N_NOTIFICATION_DATA[defCode]) ? I18N_NOTIFICATION_DATA[defCode] : '' : I18N_NOTIFICATION_DATA[code]; -} -/** - * @param {object} response - * @param {number} defCode = Notification.UnknownNotification - * @returns {string} - */ - -function getNotificationFromResponse(response, defCode) { - if (defCode === void 0) { - defCode = Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].UnknownNotification; - } - - return response && response.ErrorCode ? getNotification(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["pInt"])(response.ErrorCode), response.ErrorMessage || '') : getNotification(defCode); -} -/** - * @param {*} code - * @returns {string} - */ - -function getUploadErrorDescByCode(code) { - var result = ''; - - switch (window__WEBPACK_IMPORTED_MODULE_5___default.a.parseInt(code, 10) || 0) { - case Common_Enums__WEBPACK_IMPORTED_MODULE_9__["UploadErrorCode"].FileIsTooBig: - result = i18n('UPLOAD/ERROR_FILE_IS_TOO_BIG'); - break; - - case Common_Enums__WEBPACK_IMPORTED_MODULE_9__["UploadErrorCode"].FilePartiallyUploaded: - result = i18n('UPLOAD/ERROR_FILE_PARTIALLY_UPLOADED'); - break; - - case Common_Enums__WEBPACK_IMPORTED_MODULE_9__["UploadErrorCode"].FileNoUploaded: - result = i18n('UPLOAD/ERROR_NO_FILE_UPLOADED'); - break; - - case Common_Enums__WEBPACK_IMPORTED_MODULE_9__["UploadErrorCode"].MissingTempFolder: - result = i18n('UPLOAD/ERROR_MISSING_TEMP_FOLDER'); - break; - - case Common_Enums__WEBPACK_IMPORTED_MODULE_9__["UploadErrorCode"].FileOnSaveingError: - result = i18n('UPLOAD/ERROR_ON_SAVING_FILE'); - break; - - case Common_Enums__WEBPACK_IMPORTED_MODULE_9__["UploadErrorCode"].FileType: - result = i18n('UPLOAD/ERROR_FILE_TYPE'); - break; - - default: - result = i18n('UPLOAD/ERROR_UNKNOWN'); - break; - } - - return result; -} -/** - * @param {boolean} admin - * @param {string} language - */ - -function reload(admin, language) { - var start = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["microtime"])(); - Common_Globals__WEBPACK_IMPORTED_MODULE_11__["$html"].addClass('rl-changing-language'); - return new window__WEBPACK_IMPORTED_MODULE_5___default.a.Promise(function (resolve, reject) { - $__WEBPACK_IMPORTED_MODULE_7___default.a.ajax({ - url: Object(Common_Links__WEBPACK_IMPORTED_MODULE_13__[/* langLink */ "n"])(language, admin), - dataType: 'script', - cache: true - }).then(function () { - ___WEBPACK_IMPORTED_MODULE_6___default.a.delay(function () { - reloadData(); - var isRtl = -1 < Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["inArray"])((language || '').toLowerCase(), ['ar', 'ar_sa', 'he', 'he_he', 'ur', 'ur_ir']); - Common_Globals__WEBPACK_IMPORTED_MODULE_11__["$html"].removeClass('rl-changing-language').removeClass('rl-rtl rl-ltr') // .attr('dir', isRtl ? 'rtl' : 'ltr') - .addClass(isRtl ? 'rl-rtl' : 'rl-ltr'); - resolve(); - }, 500 < Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["microtime"])() - start ? 1 : 500); - }, function () { - Common_Globals__WEBPACK_IMPORTED_MODULE_11__["$html"].removeClass('rl-changing-language'); - window__WEBPACK_IMPORTED_MODULE_5___default.a.rainloopI18N = null; - reject(); - }); - }); -} // init section - -Common_Globals__WEBPACK_IMPORTED_MODULE_11__["$html"].addClass('rl-' + (Common_Globals__WEBPACK_IMPORTED_MODULE_11__["$html"].attr('dir') || 'ltr')); - -/***/ }), -/* 10 */ -/*!**************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/helpers/esm/inheritsLoose.js ***! - \**************************************************************************/ -/*! exports provided: default */ -/*! exports used: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _inheritsLoose; }); -/* harmony import */ var _core_js_object_create__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core-js/object/create */ 261); -/* harmony import */ var _core_js_object_create__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_core_js_object_create__WEBPACK_IMPORTED_MODULE_0__); - -function _inheritsLoose(subClass, superClass) { - subClass.prototype = _core_js_object_create__WEBPACK_IMPORTED_MODULE_0___default()(superClass.prototype); - subClass.prototype.constructor = subClass; - subClass.__proto__ = superClass; -} - -/***/ }), -/* 11 */, -/* 12 */ -/*!*****************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/find.js ***! - \*****************************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/stable/instance/find */ 325); - -/***/ }), -/* 13 */, -/* 14 */, -/* 15 */ -/*!*****************************!*\ - !*** ./dev/Common/Links.js ***! - \*****************************/ -/*! exports provided: populateAuthSuffix, subQueryPrefix, root, rootAdmin, rootUser, attachmentRaw, attachmentDownload, attachmentPreview, attachmentThumbnailPreview, attachmentPreviewAsPlain, attachmentFramed, serverRequest, upload, uploadContacts, uploadBackground, append, change, ajax, messageViewLink, messageDownloadLink, avatarLink, publicLink, userBackground, phpInfo, langLink, exportContactsVcf, exportContactsCsv, socialGoogle, socialTwitter, socialFacebook, staticPrefix, emptyContactPic, sound, notificationMailIcon, openPgpJs, openPgpWorkerJs, openPgpWorkerPath, themePreviewLink, inbox, settings, about, admin, mailBox */ -/*! exports used: ajax, append, attachmentDownload, attachmentFramed, attachmentPreview, attachmentPreviewAsPlain, attachmentThumbnailPreview, avatarLink, change, emptyContactPic, exportContactsCsv, exportContactsVcf, inbox, langLink, mailBox, messageDownloadLink, messageViewLink, notificationMailIcon, openPgpJs, openPgpWorkerJs, phpInfo, populateAuthSuffix, root, rootAdmin, rootUser, settings, socialFacebook, socialGoogle, socialTwitter, sound, subQueryPrefix, themePreviewLink, upload, uploadBackground, uploadContacts, userBackground */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "v", function() { return populateAuthSuffix; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "E", function() { return subQueryPrefix; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "w", function() { return root; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return rootAdmin; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return rootUser; }); -/* unused harmony export attachmentRaw */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return attachmentDownload; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return attachmentPreview; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return attachmentThumbnailPreview; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return attachmentPreviewAsPlain; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return attachmentFramed; }); -/* unused harmony export serverRequest */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "G", function() { return upload; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "I", function() { return uploadContacts; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "H", function() { return uploadBackground; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return append; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return change; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ajax; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return messageViewLink; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return messageDownloadLink; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return avatarLink; }); -/* unused harmony export publicLink */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "J", function() { return userBackground; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "u", function() { return phpInfo; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return langLink; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return exportContactsVcf; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return exportContactsCsv; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "B", function() { return socialGoogle; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "C", function() { return socialTwitter; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "A", function() { return socialFacebook; }); -/* unused harmony export staticPrefix */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return emptyContactPic; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "D", function() { return sound; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return notificationMailIcon; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return openPgpJs; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return openPgpWorkerJs; }); -/* unused harmony export openPgpWorkerPath */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "F", function() { return themePreviewLink; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return inbox; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "z", function() { return settings; }); -/* unused harmony export about */ -/* unused harmony export admin */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return mailBox; }); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec */ 45); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.replace */ 57); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Storage/Settings */ 5); - - - - - -var ROOT = './', - HASH_PREFIX = '#/', - SERVER_PREFIX = './?', - SUB_QUERY_PREFIX = '&q[]=', - VERSION = Storage_Settings__WEBPACK_IMPORTED_MODULE_4__["appSettingsGet"]('version'), - WEB_PREFIX = Storage_Settings__WEBPACK_IMPORTED_MODULE_4__["appSettingsGet"]('webPath') || '', - VERSION_PREFIX = Storage_Settings__WEBPACK_IMPORTED_MODULE_4__["appSettingsGet"]('webVersionPath') || 'rainloop/v/' + VERSION + '/', - STATIC_PREFIX = VERSION_PREFIX + 'static/', - ADMIN_HOST_USE = !!Storage_Settings__WEBPACK_IMPORTED_MODULE_4__["appSettingsGet"]('adminHostUse'), - ADMIN_PATH = Storage_Settings__WEBPACK_IMPORTED_MODULE_4__["appSettingsGet"]('adminPath') || 'admin'; -var AUTH_PREFIX = Storage_Settings__WEBPACK_IMPORTED_MODULE_4__["settingsGet"]('AuthAccountHash') || '0'; -/** - * @returns {void} - */ - -function populateAuthSuffix() { - AUTH_PREFIX = Storage_Settings__WEBPACK_IMPORTED_MODULE_4__["settingsGet"]('AuthAccountHash') || '0'; -} -/** - * @returns {string} - */ - -function subQueryPrefix() { - return SUB_QUERY_PREFIX; -} -/** - * @param {string=} startupUrl - * @returns {string} - */ - -function root(startupUrl) { - if (startupUrl === void 0) { - startupUrl = ''; - } - - return HASH_PREFIX + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["pString"])(startupUrl); -} -/** - * @returns {string} - */ - -function rootAdmin() { - return ADMIN_HOST_USE ? ROOT : SERVER_PREFIX + ADMIN_PATH; -} -/** - * @returns {string} - */ - -function rootUser() { - return ROOT; -} -/** - * @param {string} type - * @param {string} download - * @param {string=} customSpecSuffix - * @returns {string} - */ - -function attachmentRaw(type, download, customSpecSuffix) { - customSpecSuffix = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["isUnd"])(customSpecSuffix) ? AUTH_PREFIX : customSpecSuffix; - return SERVER_PREFIX + '/Raw/' + SUB_QUERY_PREFIX + '/' + customSpecSuffix + '/' + type + '/' + SUB_QUERY_PREFIX + '/' + download; -} -/** - * @param {string} download - * @param {string=} customSpecSuffix - * @returns {string} - */ - -function attachmentDownload(download, customSpecSuffix) { - return attachmentRaw('Download', download, customSpecSuffix); -} -/** - * @param {string} download - * @param {string=} customSpecSuffix - * @returns {string} - */ - -function attachmentPreview(download, customSpecSuffix) { - return attachmentRaw('View', download, customSpecSuffix); -} -/** - * @param {string} download - * @param {string=} customSpecSuffix - * @returns {string} - */ - -function attachmentThumbnailPreview(download, customSpecSuffix) { - return attachmentRaw('ViewThumbnail', download, customSpecSuffix); -} -/** - * @param {string} download - * @param {string=} customSpecSuffix - * @returns {string} - */ - -function attachmentPreviewAsPlain(download, customSpecSuffix) { - return attachmentRaw('ViewAsPlain', download, customSpecSuffix); -} -/** - * @param {string} download - * @param {string=} customSpecSuffix - * @returns {string} - */ - -function attachmentFramed(download, customSpecSuffix) { - return attachmentRaw('FramedView', download, customSpecSuffix); -} -/** - * @param {string} type - * @returns {string} - */ - -function serverRequest(type) { - return SERVER_PREFIX + '/' + type + '/' + SUB_QUERY_PREFIX + '/' + AUTH_PREFIX + '/'; -} -/** - * @returns {string} - */ - -function upload() { - return serverRequest('Upload'); -} -/** - * @returns {string} - */ - -function uploadContacts() { - return serverRequest('UploadContacts'); -} -/** - * @returns {string} - */ - -function uploadBackground() { - return serverRequest('UploadBackground'); -} -/** - * @returns {string} - */ - -function append() { - return serverRequest('Append'); -} -/** - * @param {string} email - * @returns {string} - */ - -function change(email) { - return serverRequest('Change') + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["encodeURIComponent"])(email) + '/'; -} -/** - * @param {string} add - * @returns {string} - */ - -function ajax(add) { - return serverRequest('Ajax') + add; -} -/** - * @param {string} requestHash - * @returns {string} - */ - -function messageViewLink(requestHash) { - return SERVER_PREFIX + '/Raw/' + SUB_QUERY_PREFIX + '/' + AUTH_PREFIX + '/ViewAsPlain/' + SUB_QUERY_PREFIX + '/' + requestHash; -} -/** - * @param {string} requestHash - * @returns {string} - */ - -function messageDownloadLink(requestHash) { - return SERVER_PREFIX + '/Raw/' + SUB_QUERY_PREFIX + '/' + AUTH_PREFIX + '/Download/' + SUB_QUERY_PREFIX + '/' + requestHash; -} -/** - * @param {string} email - * @returns {string} - */ - -function avatarLink(email) { - return SERVER_PREFIX + '/Raw/0/Avatar/' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["encodeURIComponent"])(email) + '/'; -} -/** - * @param {string} hash - * @returns {string} - */ - -function publicLink(hash) { - return SERVER_PREFIX + '/Raw/0/Public/' + hash + '/'; -} -/** - * @param {string} hash - * @returns {string} - */ - -function userBackground(hash) { - return SERVER_PREFIX + '/Raw/' + SUB_QUERY_PREFIX + '/' + AUTH_PREFIX + '/UserBackground/' + SUB_QUERY_PREFIX + '/' + hash; -} -/** - * @returns {string} - */ - -function phpInfo() { - return SERVER_PREFIX + '/Info'; -} -/** - * @param {string} lang - * @param {boolean} isAdmin - * @returns {string} - */ - -function langLink(lang, isAdmin) { - return SERVER_PREFIX + '/Lang/0/' + (isAdmin ? 'Admin' : 'App') + '/' + window__WEBPACK_IMPORTED_MODULE_2___default.a.encodeURI(lang) + '/' + VERSION + '/'; -} -/** - * @returns {string} - */ - -function exportContactsVcf() { - return SERVER_PREFIX + '/Raw/' + SUB_QUERY_PREFIX + '/' + AUTH_PREFIX + '/ContactsVcf/'; -} -/** - * @returns {string} - */ - -function exportContactsCsv() { - return SERVER_PREFIX + '/Raw/' + SUB_QUERY_PREFIX + '/' + AUTH_PREFIX + '/ContactsCsv/'; -} -/** - * @param {boolean} xauth = false - * @returns {string} - */ - -function socialGoogle(xauth) { - if (xauth === void 0) { - xauth = false; - } - - return SERVER_PREFIX + 'SocialGoogle' + ('' !== AUTH_PREFIX ? '/' + SUB_QUERY_PREFIX + '/' + AUTH_PREFIX + '/' : '') + (xauth ? '&xauth=1' : ''); -} -/** - * @returns {string} - */ - -function socialTwitter() { - return SERVER_PREFIX + 'SocialTwitter' + ('' !== AUTH_PREFIX ? '/' + SUB_QUERY_PREFIX + '/' + AUTH_PREFIX + '/' : ''); -} -/** - * @returns {string} - */ - -function socialFacebook() { - return SERVER_PREFIX + 'SocialFacebook' + ('' !== AUTH_PREFIX ? '/' + SUB_QUERY_PREFIX + '/' + AUTH_PREFIX + '/' : ''); -} -/** - * @param {string} path - * @returns {string} - */ - -function staticPrefix(path) { - return STATIC_PREFIX + path; -} -/** - * @returns {string} - */ - -function emptyContactPic() { - return staticPrefix('css/images/empty-contact.png'); -} -/** - * @param {string} fileName - * @returns {string} - */ - -function sound(fileName) { - return staticPrefix('sounds/' + fileName); -} -/** - * @returns {string} - */ - -function notificationMailIcon() { - return staticPrefix('css/images/icom-message-notification.png'); -} -/** - * @returns {string} - */ - -function openPgpJs() { - return staticPrefix('js/min/openpgp.min.js'); -} -/** - * @returns {string} - */ - -function openPgpWorkerJs() { - return staticPrefix('js/min/openpgp.worker.min.js'); -} -/** - * @returns {string} - */ - -function openPgpWorkerPath() { - return staticPrefix('js/min/'); -} -/** - * @param {string} theme - * @returns {string} - */ - -function themePreviewLink(theme) { - var prefix = VERSION_PREFIX; - - if ('@custom' === theme.substr(-7)) { - theme = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["trim"])(theme.substring(0, theme.length - 7)); - prefix = WEB_PREFIX; - } - - return prefix + 'themes/' + window__WEBPACK_IMPORTED_MODULE_2___default.a.encodeURI(theme) + '/images/preview.png'; -} -/** - * @param {string} inboxFolderName = 'INBOX' - * @returns {string} - */ - -function inbox(inboxFolderName) { - if (inboxFolderName === void 0) { - inboxFolderName = 'INBOX'; - } - - return HASH_PREFIX + 'mailbox/' + inboxFolderName; -} -/** - * @param {string=} screenName = '' - * @returns {string} - */ - -function settings(screenName) { - if (screenName === void 0) { - screenName = ''; - } - - return HASH_PREFIX + 'settings' + (screenName ? '/' + screenName : ''); -} -/** - * @returns {string} - */ - -function about() { - return HASH_PREFIX + 'about'; -} -/** - * @param {string} screenName - * @returns {string} - */ - -function admin(screenName) { - var result = HASH_PREFIX; - - switch (screenName) { - case 'AdminDomains': - result += 'domains'; - break; - - case 'AdminSecurity': - result += 'security'; - break; - - case 'AdminLicensing': - result += 'licensing'; - break; - // no default - } - - return result; -} -/** - * @param {string} folder - * @param {number=} page = 1 - * @param {string=} search = '' - * @param {string=} threadUid = '' - * @returns {string} - */ - -function mailBox(folder, page, search, threadUid) { - if (page === void 0) { - page = 1; - } - - if (search === void 0) { - search = ''; - } - - if (threadUid === void 0) { - threadUid = ''; - } - - page = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["isNormal"])(page) ? Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["pInt"])(page) : 1; - search = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["pString"])(search); - var result = HASH_PREFIX + 'mailbox/'; - - if ('' !== folder) { - var resultThreadUid = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["pInt"])(threadUid); - result += window__WEBPACK_IMPORTED_MODULE_2___default.a.encodeURI(folder) + (0 < resultThreadUid ? '~' + resultThreadUid : ''); - } - - if (1 < page) { - result = result.replace(/[/]+$/, ''); - result += '/p' + page; - } - - if ('' !== search) { - result = result.replace(/[/]+$/, ''); - result += '/' + window__WEBPACK_IMPORTED_MODULE_2___default.a.encodeURI(search); - } - - return result; -} - -/***/ }), -/* 16 */, -/* 17 */ -/*!***************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/helpers/esm/defineProperty.js ***! - \***************************************************************************/ -/*! exports provided: default */ -/*! exports used: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _defineProperty; }); -/* harmony import */ var _core_js_object_define_property__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core-js/object/define-property */ 163); -/* harmony import */ var _core_js_object_define_property__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_core_js_object_define_property__WEBPACK_IMPORTED_MODULE_0__); - -function _defineProperty(obj, key, value) { - if (key in obj) { - _core_js_object_define_property__WEBPACK_IMPORTED_MODULE_0___default()(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; -} - -/***/ }), -/* 18 */ -/*!****************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/map.js ***! - \****************************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/stable/instance/map */ 345); - -/***/ }), -/* 19 */ -/*!**************************************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor.js ***! - \**************************************************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/stable/object/get-own-property-descriptor */ 369); - -/***/ }), -/* 20 */ -/*!*************************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/helpers/esm/applyDecoratedDescriptor.js ***! - \*************************************************************************************/ -/*! exports provided: default */ -/*! exports used: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _applyDecoratedDescriptor; }); -/* harmony import */ var _core_js_object_define_property__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core-js/object/define-property */ 163); -/* harmony import */ var _core_js_object_define_property__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_core_js_object_define_property__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _core_js_instance_slice__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../core-js/instance/slice */ 263); -/* harmony import */ var _core_js_instance_slice__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_core_js_instance_slice__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _core_js_instance_reverse__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../core-js/instance/reverse */ 264); -/* harmony import */ var _core_js_instance_reverse__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_core_js_instance_reverse__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _core_js_instance_reduce__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../core-js/instance/reduce */ 265); -/* harmony import */ var _core_js_instance_reduce__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_core_js_instance_reduce__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _core_js_object_keys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../core-js/object/keys */ 266); -/* harmony import */ var _core_js_object_keys__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_core_js_object_keys__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _core_js_instance_for_each__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../core-js/instance/for-each */ 267); -/* harmony import */ var _core_js_instance_for_each__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_core_js_instance_for_each__WEBPACK_IMPORTED_MODULE_5__); - - - - - - -function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { - var _context, _context2, _context3; - - var desc = {}; - - _core_js_instance_for_each__WEBPACK_IMPORTED_MODULE_5___default()(_context = _core_js_object_keys__WEBPACK_IMPORTED_MODULE_4___default()(descriptor)).call(_context, function (key) { - desc[key] = descriptor[key]; - }); - - desc.enumerable = !!desc.enumerable; - desc.configurable = !!desc.configurable; - - if ('value' in desc || desc.initializer) { - desc.writable = true; - } - - desc = _core_js_instance_reduce__WEBPACK_IMPORTED_MODULE_3___default()(_context2 = _core_js_instance_reverse__WEBPACK_IMPORTED_MODULE_2___default()(_context3 = _core_js_instance_slice__WEBPACK_IMPORTED_MODULE_1___default()(decorators).call(decorators)).call(_context3)).call(_context2, function (desc, decorator) { - return decorator(target, property, desc) || desc; - }, desc); - - if (context && desc.initializer !== void 0) { - desc.value = desc.initializer ? desc.initializer.call(context) : void 0; - desc.initializer = undefined; - } - - if (desc.initializer === void 0) { - _core_js_object_define_property__WEBPACK_IMPORTED_MODULE_0___default()(target, property, desc); - - desc = null; - } - - return desc; -} - -/***/ }), -/* 21 */ -/*!*****************************!*\ - !*** external "window.key" ***! - \*****************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports) { - -module.exports = window.key; - -/***/ }), -/* 22 */, -/* 23 */ -/*!**********************************!*\ - !*** ./dev/Remote/Admin/Ajax.js ***! - \**********************************/ -/*! exports provided: default */ -/*! exports used: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); -/* harmony import */ var Remote_AbstractAjax__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Remote/AbstractAjax */ 268); - - - -var RemoteAdminAjax = /*#__PURE__*/function (_AbstractAjaxRemote) { - Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(RemoteAdminAjax, _AbstractAjaxRemote); - - function RemoteAdminAjax() { - var _this; - - _this = _AbstractAjaxRemote.call(this) || this; - _this.oRequests = {}; - return _this; - } - /** - * @param {?Function} fCallback - * @param {string} sLogin - * @param {string} sPassword - */ - - - var _proto = RemoteAdminAjax.prototype; - - _proto.adminLogin = function adminLogin(fCallback, sLogin, sPassword) { - this.defaultRequest(fCallback, 'AdminLogin', { - 'Login': sLogin, - 'Password': sPassword - }); - } - /** - * @param {?Function} fCallback - */ - ; - - _proto.adminLogout = function adminLogout(fCallback) { - this.defaultRequest(fCallback, 'AdminLogout'); - } - /** - * @param {?Function} fCallback - * @param {?} oData - */ - ; - - _proto.saveAdminConfig = function saveAdminConfig(fCallback, oData) { - this.defaultRequest(fCallback, 'AdminSettingsUpdate', oData); - } - /** - * @param {string} key - * @param {?Function} valueFn - * @param {?Function} fn - */ - ; - - _proto.saveAdminConfigHelper = function saveAdminConfigHelper(key, valueFn, fn) { - var _this2 = this; - - return function (value) { - var data = {}; - data[key] = valueFn ? valueFn(value) : value; - - _this2.saveAdminConfig(fn || null, data); - }; - } - /** - * @param {?Function} fCallback - * @param {boolean=} bIncludeAliases = true - */ - ; - - _proto.domainList = function domainList(fCallback, bIncludeAliases) { - if (bIncludeAliases === void 0) { - bIncludeAliases = true; - } - - this.defaultRequest(fCallback, 'AdminDomainList', { - 'IncludeAliases': bIncludeAliases ? '1' : '0' - }); - } - /** - * @param {?Function} fCallback - */ - ; - - _proto.pluginList = function pluginList(fCallback) { - this.defaultRequest(fCallback, 'AdminPluginList'); - } - /** - * @param {?Function} fCallback - */ - ; - - _proto.packagesList = function packagesList(fCallback) { - this.defaultRequest(fCallback, 'AdminPackagesList'); - } - /** - * @param {?Function} fCallback - */ - ; - - _proto.coreData = function coreData(fCallback) { - this.defaultRequest(fCallback, 'AdminCoreData'); - } - /** - * @param {?Function} fCallback - */ - ; - - _proto.updateCoreData = function updateCoreData(fCallback) { - this.defaultRequest(fCallback, 'AdminUpdateCoreData', {}, 90000); - } - /** - * @param {?Function} fCallback - * @param {Object} oPackage - */ - ; - - _proto.packageInstall = function packageInstall(fCallback, oPackage) { - this.defaultRequest(fCallback, 'AdminPackageInstall', { - 'Id': oPackage.id, - 'Type': oPackage.type, - 'File': oPackage.file - }, 60000); - } - /** - * @param {?Function} fCallback - * @param {Object} oPackage - */ - ; - - _proto.packageDelete = function packageDelete(fCallback, oPackage) { - this.defaultRequest(fCallback, 'AdminPackageDelete', { - 'Id': oPackage.id - }); - } - /** - * @param {?Function} fCallback - * @param {string} sName - */ - ; - - _proto.domain = function domain(fCallback, sName) { - this.defaultRequest(fCallback, 'AdminDomainLoad', { - 'Name': sName - }); - } - /** - * @param {?Function} fCallback - * @param {string} sName - */ - ; - - _proto.plugin = function plugin(fCallback, sName) { - this.defaultRequest(fCallback, 'AdminPluginLoad', { - 'Name': sName - }); - } - /** - * @param {?Function} fCallback - * @param {string} sName - */ - ; - - _proto.domainDelete = function domainDelete(fCallback, sName) { - this.defaultRequest(fCallback, 'AdminDomainDelete', { - 'Name': sName - }); - } - /** - * @param {?Function} fCallback - * @param {string} sName - * @param {boolean} bDisabled - */ - ; - - _proto.domainDisable = function domainDisable(fCallback, sName, bDisabled) { - return this.defaultRequest(fCallback, 'AdminDomainDisable', { - Name: sName, - Disabled: bDisabled ? '1' : '0' - }); - } - /** - * @param {?Function} fCallback - * @param {Object} oConfig - */ - ; - - _proto.pluginSettingsUpdate = function pluginSettingsUpdate(fCallback, oConfig) { - return this.defaultRequest(fCallback, 'AdminPluginSettingsUpdate', oConfig); - } - /** - * @param {?Function} fCallback - * @param {boolean} bForce - */ - ; - - _proto.licensing = function licensing(fCallback, bForce) { - return this.defaultRequest(fCallback, 'AdminLicensing', { - Force: bForce ? '1' : '0' - }); - } - /** - * @param {?Function} fCallback - * @param {string} sDomain - * @param {string} sKey - */ - ; - - _proto.licensingActivate = function licensingActivate(fCallback, sDomain, sKey) { - return this.defaultRequest(fCallback, 'AdminLicensingActivate', { - Domain: sDomain, - Key: sKey - }); - } - /** - * @param {?Function} fCallback - * @param {string} sName - * @param {boolean} bDisabled - */ - ; - - _proto.pluginDisable = function pluginDisable(fCallback, sName, bDisabled) { - return this.defaultRequest(fCallback, 'AdminPluginDisable', { - Name: sName, - Disabled: bDisabled ? '1' : '0' - }); - }; - - _proto.createDomainAlias = function createDomainAlias(fCallback, sName, sAlias) { - this.defaultRequest(fCallback, 'AdminDomainAliasSave', { - Name: sName, - Alias: sAlias - }); - }; - - _proto.createOrUpdateDomain = function createOrUpdateDomain(fCallback, bCreate, sName, sIncHost, iIncPort, sIncSecure, bIncShortLogin, bUseSieve, sSieveAllowRaw, sSieveHost, iSievePort, sSieveSecure, sOutHost, iOutPort, sOutSecure, bOutShortLogin, bOutAuth, bOutPhpMail, sWhiteList) { - this.defaultRequest(fCallback, 'AdminDomainSave', { - 'Create': bCreate ? '1' : '0', - 'Name': sName, - 'IncHost': sIncHost, - 'IncPort': iIncPort, - 'IncSecure': sIncSecure, - 'IncShortLogin': bIncShortLogin ? '1' : '0', - 'UseSieve': bUseSieve ? '1' : '0', - 'SieveAllowRaw': sSieveAllowRaw ? '1' : '0', - 'SieveHost': sSieveHost, - 'SievePort': iSievePort, - 'SieveSecure': sSieveSecure, - 'OutHost': sOutHost, - 'OutPort': iOutPort, - 'OutSecure': sOutSecure, - 'OutShortLogin': bOutShortLogin ? '1' : '0', - 'OutAuth': bOutAuth ? '1' : '0', - 'OutUsePhpMail': bOutPhpMail ? '1' : '0', - 'WhiteList': sWhiteList - }); - }; - - _proto.testConnectionForDomain = function testConnectionForDomain(fCallback, sName, sIncHost, iIncPort, sIncSecure, bUseSieve, sSieveHost, iSievePort, sSieveSecure, sOutHost, iOutPort, sOutSecure, bOutAuth, bOutPhpMail) { - this.defaultRequest(fCallback, 'AdminDomainTest', { - 'Name': sName, - 'IncHost': sIncHost, - 'IncPort': iIncPort, - 'IncSecure': sIncSecure, - 'UseSieve': bUseSieve ? '1' : '0', - 'SieveHost': sSieveHost, - 'SievePort': iSievePort, - 'SieveSecure': sSieveSecure, - 'OutHost': sOutHost, - 'OutPort': iOutPort, - 'OutSecure': sOutSecure, - 'OutAuth': bOutAuth ? '1' : '0', - 'OutUsePhpMail': bOutPhpMail ? '1' : '0' - }); - } - /** - * @param {?Function} fCallback - * @param {?} oData - */ - ; - - _proto.testContacts = function testContacts(fCallback, oData) { - this.defaultRequest(fCallback, 'AdminContactsTest', oData); - } - /** - * @param {?Function} fCallback - * @param {?} oData - */ - ; - - _proto.saveNewAdminPassword = function saveNewAdminPassword(fCallback, oData) { - this.defaultRequest(fCallback, 'AdminPasswordUpdate', oData); - } - /** - * @param {?Function} fCallback - */ - ; - - _proto.adminPing = function adminPing(fCallback) { - this.defaultRequest(fCallback, 'AdminPing'); - }; - - return RemoteAdminAjax; -}(Remote_AbstractAjax__WEBPACK_IMPORTED_MODULE_1__[/* AbstractAjaxRemote */ "a"]); - -/* harmony default export */ __webpack_exports__["a"] = (new RemoteAdminAjax()); - -/***/ }), -/* 24 */ -/*!******************************!*\ - !*** ./dev/Common/Events.js ***! - \******************************/ -/*! exports provided: sub, pub */ -/*! exports used: pub, sub */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return sub; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return pub; }); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Common_Plugins__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Common/Plugins */ 39); - - - -var SUBS = {}; -/** - * @param {string|Object} name - * @param {Function} func - * @param {Object=} context - */ - -function sub(name, func, context) { - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_1__["isObject"])(name)) { - context = func || null; - func = null; - - ___WEBPACK_IMPORTED_MODULE_0___default.a.each(name, function (subFunc, subName) { - sub(subName, subFunc, context); - }); - } else { - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_1__["isUnd"])(SUBS[name])) { - SUBS[name] = []; - } - - SUBS[name].push([func, context]); - } -} -/** - * @param {string} name - * @param {Array=} args - */ - -function pub(name, args) { - Common_Plugins__WEBPACK_IMPORTED_MODULE_2__[/* runHook */ "f"]('rl-pub', [name, args]); - - if (!Object(Common_Utils__WEBPACK_IMPORTED_MODULE_1__["isUnd"])(SUBS[name])) { - ___WEBPACK_IMPORTED_MODULE_0___default.a.each(SUBS[name], function (items) { - if (items[0]) { - items[0].apply(items[1] || null, args || []); - } - }); - } -} - -/***/ }), -/* 25 */ -/*!******************************!*\ - !*** ./dev/Common/Consts.js ***! - \******************************/ -/*! exports provided: MESSAGES_PER_PAGE, MESSAGES_PER_PAGE_VALUES, CONTACTS_PER_PAGE, DEFAULT_AJAX_TIMEOUT, SEARCH_AJAX_TIMEOUT, SEND_MESSAGE_AJAX_TIMEOUT, SAVE_MESSAGE_AJAX_TIMEOUT, CONTACTS_SYNC_AJAX_TIMEOUT, UNUSED_OPTION_VALUE, CLIENT_SIDE_STORAGE_INDEX_NAME, IMAP_DEFAULT_PORT, IMAP_DEFAULT_SECURE_PORT, SMTP_DEFAULT_PORT, SMTP_DEFAULT_SECURE_PORT, SIEVE_DEFAULT_PORT, MESSAGE_BODY_CACHE_LIMIT, AJAX_ERROR_LIMIT, TOKEN_ERROR_LIMIT, RAINLOOP_TRIAL_KEY, DATA_IMAGE_USER_DOT_PIC, DATA_IMAGE_TRANSP_PIC, DATA_IMAGE_LAZY_PLACEHOLDER_PIC */ -/*! exports used: AJAX_ERROR_LIMIT, CLIENT_SIDE_STORAGE_INDEX_NAME, CONTACTS_PER_PAGE, CONTACTS_SYNC_AJAX_TIMEOUT, DATA_IMAGE_LAZY_PLACEHOLDER_PIC, DATA_IMAGE_USER_DOT_PIC, DEFAULT_AJAX_TIMEOUT, IMAP_DEFAULT_PORT, MESSAGES_PER_PAGE, MESSAGES_PER_PAGE_VALUES, MESSAGE_BODY_CACHE_LIMIT, SAVE_MESSAGE_AJAX_TIMEOUT, SEARCH_AJAX_TIMEOUT, SEND_MESSAGE_AJAX_TIMEOUT, SIEVE_DEFAULT_PORT, SMTP_DEFAULT_PORT, TOKEN_ERROR_LIMIT, UNUSED_OPTION_VALUE */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return MESSAGES_PER_PAGE; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return MESSAGES_PER_PAGE_VALUES; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return CONTACTS_PER_PAGE; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return DEFAULT_AJAX_TIMEOUT; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return SEARCH_AJAX_TIMEOUT; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return SEND_MESSAGE_AJAX_TIMEOUT; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return SAVE_MESSAGE_AJAX_TIMEOUT; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return CONTACTS_SYNC_AJAX_TIMEOUT; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return UNUSED_OPTION_VALUE; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return CLIENT_SIDE_STORAGE_INDEX_NAME; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return IMAP_DEFAULT_PORT; }); -/* unused harmony export IMAP_DEFAULT_SECURE_PORT */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return SMTP_DEFAULT_PORT; }); -/* unused harmony export SMTP_DEFAULT_SECURE_PORT */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return SIEVE_DEFAULT_PORT; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return MESSAGE_BODY_CACHE_LIMIT; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AJAX_ERROR_LIMIT; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return TOKEN_ERROR_LIMIT; }); -/* unused harmony export RAINLOOP_TRIAL_KEY */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return DATA_IMAGE_USER_DOT_PIC; }); -/* unused harmony export DATA_IMAGE_TRANSP_PIC */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return DATA_IMAGE_LAZY_PLACEHOLDER_PIC; }); -var MESSAGES_PER_PAGE = 20; -var MESSAGES_PER_PAGE_VALUES = [10, 20, 30, 50, 100]; -var CONTACTS_PER_PAGE = 50; -var DEFAULT_AJAX_TIMEOUT = 30000; -var SEARCH_AJAX_TIMEOUT = 300000; -var SEND_MESSAGE_AJAX_TIMEOUT = 300000; -var SAVE_MESSAGE_AJAX_TIMEOUT = 200000; -var CONTACTS_SYNC_AJAX_TIMEOUT = 200000; -var UNUSED_OPTION_VALUE = '__UNUSE__'; -var CLIENT_SIDE_STORAGE_INDEX_NAME = 'rlcsc'; -var IMAP_DEFAULT_PORT = 143; -var IMAP_DEFAULT_SECURE_PORT = 993; -var SMTP_DEFAULT_PORT = 25; -var SMTP_DEFAULT_SECURE_PORT = 465; -var SIEVE_DEFAULT_PORT = 4190; -var MESSAGE_BODY_CACHE_LIMIT = 15; -var AJAX_ERROR_LIMIT = 7; -var TOKEN_ERROR_LIMIT = 10; -var RAINLOOP_TRIAL_KEY = 'RAINLOOP-TRIAL-KEY'; -/* eslint max-len: 0 */ - -var DATA_IMAGE_USER_DOT_PIC = 'data:image/png;base64,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'; -var DATA_IMAGE_TRANSP_PIC = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQIW2NkAAIAAAoAAggA9GkAAAAASUVORK5CYII='; -var DATA_IMAGE_LAZY_PLACEHOLDER_PIC = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC'; - -/***/ }), -/* 26 */ -/*!*****************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/bind.js ***! - \*****************************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/stable/instance/bind */ 334); - -/***/ }), -/* 27 */ -/*!**************************************************!*\ - !*** ./node_modules/core-js/internals/global.js ***! - \**************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) { - return it && it.Math == Math && it; -}; - -// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 -module.exports = - // eslint-disable-next-line no-undef - check(typeof globalThis == 'object' && globalThis) || - check(typeof window == 'object' && window) || - check(typeof self == 'object' && self) || - check(typeof global == 'object' && global) || - // eslint-disable-next-line no-new-func - Function('return this')(); - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ 124))) - -/***/ }), -/* 28 */ -/*!***************************************!*\ - !*** ./dev/Knoin/AbstractViewNext.js ***! - \***************************************/ -/*! exports provided: AbstractViewNext */ -/*! exports used: AbstractViewNext */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AbstractViewNext; }); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/defineProperty */ 17); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Globals */ 6); - - - - - -var AbstractViewNext = /*#__PURE__*/function () { - function AbstractViewNext() { - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this, "bDisabeCloseOnEsc", false); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this, "sDefaultKeyScope", Common_Enums__WEBPACK_IMPORTED_MODULE_3__["KeyState"].None); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this, "sCurrentKeyScope", Common_Enums__WEBPACK_IMPORTED_MODULE_3__["KeyState"].None); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this, "viewModelVisibility", ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(false)); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this, "modalVisibility", ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(false).extend({ - rateLimit: 0 - })); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this, "viewModelName", ''); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this, "viewModelNames", []); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this, "viewModelDom", null); - } - - var _proto = AbstractViewNext.prototype; - - /** - * @returns {void} - */ - _proto.storeAndSetKeyScope = function storeAndSetKeyScope() { - this.sCurrentKeyScope = Object(Common_Globals__WEBPACK_IMPORTED_MODULE_4__["keyScope"])(); - Object(Common_Globals__WEBPACK_IMPORTED_MODULE_4__["keyScope"])(this.sDefaultKeyScope); - } - /** - * @returns {void} - */ - ; - - _proto.restoreKeyScope = function restoreKeyScope() { - Object(Common_Globals__WEBPACK_IMPORTED_MODULE_4__["keyScope"])(this.sCurrentKeyScope); - } - /** - * @returns {void} - */ - ; - - _proto.registerPopupKeyDown = function registerPopupKeyDown() { - var _this = this; - - Common_Globals__WEBPACK_IMPORTED_MODULE_4__["$win"].on('keydown', function (event) { - if (event && _this.modalVisibility && _this.modalVisibility()) { - if (!_this.bDisabeCloseOnEsc && Common_Enums__WEBPACK_IMPORTED_MODULE_3__["EventKeyCode"].Esc === event.keyCode) { - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_2__["delegateRun"])(_this, 'cancelCommand'); - return false; - } else if (Common_Enums__WEBPACK_IMPORTED_MODULE_3__["EventKeyCode"].Backspace === event.keyCode && !Object(Common_Utils__WEBPACK_IMPORTED_MODULE_2__["inFocus"])()) { - return false; - } - } - - return true; - }); - }; - - _proto.cancelCommand = function cancelCommand() {} // eslint-disable-line no-empty-function - ; - - _proto.closeCommand = function closeCommand() {} // eslint-disable-line no-empty-function - ; - - return AbstractViewNext; -}(); - -/***/ }), -/* 29 */ -/*!******************************!*\ - !*** ./dev/Stores/Social.js ***! - \******************************/ -/*! exports provided: default */ -/*! exports used: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $ */ 8); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Storage/Settings */ 5); - - - - - -var SocialStore = /*#__PURE__*/function () { - function SocialStore() { - var _this = this; - - this.google = {}; - this.twitter = {}; - this.facebook = {}; - this.dropbox = {}; // Google - - this.google.enabled = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(false); - this.google.clientID = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(''); - this.google.clientSecret = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(''); - this.google.apiKey = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(''); - this.google.loading = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(false); - this.google.userName = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(''); - this.google.loggined = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].computed(function () { - return '' !== _this.google.userName(); - }); - this.google.capa = {}; - this.google.capa.auth = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(false); - this.google.capa.authGmail = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(false); - this.google.capa.drive = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(false); - this.google.capa.preview = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(false); - this.google.require = {}; - this.google.require.clientSettings = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].computed(function () { - return _this.google.enabled() && (_this.google.capa.auth() || _this.google.capa.authGmail() || _this.google.capa.drive()); - }); - this.google.require.apiKeySettings = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].computed(function () { - return _this.google.enabled() && _this.google.capa.drive(); - }); // Facebook - - this.facebook.enabled = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(false); - this.facebook.appID = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(''); - this.facebook.appSecret = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(''); - this.facebook.loading = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(false); - this.facebook.userName = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(''); - this.facebook.supported = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(false); - this.facebook.loggined = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].computed(function () { - return '' !== _this.facebook.userName(); - }); // Twitter - - this.twitter.enabled = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(false); - this.twitter.consumerKey = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(''); - this.twitter.consumerSecret = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(''); - this.twitter.loading = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(false); - this.twitter.userName = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(''); - this.twitter.loggined = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].computed(function () { - return '' !== _this.twitter.userName(); - }); // Dropbox - - this.dropbox.enabled = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(false); - this.dropbox.apiKey = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(''); - } - - var _proto = SocialStore.prototype; - - _proto.populate = function populate() { - this.google.enabled(!!Storage_Settings__WEBPACK_IMPORTED_MODULE_3__["settingsGet"]('AllowGoogleSocial')); - this.google.clientID(Storage_Settings__WEBPACK_IMPORTED_MODULE_3__["settingsGet"]('GoogleClientID')); - this.google.clientSecret(Storage_Settings__WEBPACK_IMPORTED_MODULE_3__["settingsGet"]('GoogleClientSecret')); - this.google.apiKey(Storage_Settings__WEBPACK_IMPORTED_MODULE_3__["settingsGet"]('GoogleApiKey')); - this.google.capa.auth(!!Storage_Settings__WEBPACK_IMPORTED_MODULE_3__["settingsGet"]('AllowGoogleSocialAuth')); - this.google.capa.authGmail(!!Storage_Settings__WEBPACK_IMPORTED_MODULE_3__["settingsGet"]('AllowGoogleSocialAuthGmail')); - this.google.capa.drive(!!Storage_Settings__WEBPACK_IMPORTED_MODULE_3__["settingsGet"]('AllowGoogleSocialDrive')); - this.google.capa.preview(!!Storage_Settings__WEBPACK_IMPORTED_MODULE_3__["settingsGet"]('AllowGoogleSocialPreview')); - this.facebook.enabled(!!Storage_Settings__WEBPACK_IMPORTED_MODULE_3__["settingsGet"]('AllowFacebookSocial')); - this.facebook.appID(Storage_Settings__WEBPACK_IMPORTED_MODULE_3__["settingsGet"]('FacebookAppID')); - this.facebook.appSecret(Storage_Settings__WEBPACK_IMPORTED_MODULE_3__["settingsGet"]('FacebookAppSecret')); - this.facebook.supported(!!Storage_Settings__WEBPACK_IMPORTED_MODULE_3__["settingsGet"]('SupportedFacebookSocial')); - this.twitter.enabled = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(!!Storage_Settings__WEBPACK_IMPORTED_MODULE_3__["settingsGet"]('AllowTwitterSocial')); - this.twitter.consumerKey = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Storage_Settings__WEBPACK_IMPORTED_MODULE_3__["settingsGet"]('TwitterConsumerKey')); - this.twitter.consumerSecret = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Storage_Settings__WEBPACK_IMPORTED_MODULE_3__["settingsGet"]('TwitterConsumerSecret')); - this.dropbox.enabled(!!Storage_Settings__WEBPACK_IMPORTED_MODULE_3__["settingsGet"]('AllowDropboxSocial')); - this.dropbox.apiKey(Storage_Settings__WEBPACK_IMPORTED_MODULE_3__["settingsGet"]('DropboxApiKey')); - }; - - _proto.appendDropbox = function appendDropbox() { - if (!window__WEBPACK_IMPORTED_MODULE_0___default.a.Dropbox && this.dropbox.enabled() && this.dropbox.apiKey()) { - if (!window__WEBPACK_IMPORTED_MODULE_0___default.a.document.getElementById('dropboxjs')) { - var script = window__WEBPACK_IMPORTED_MODULE_0___default.a.document.createElement('script'); - script.type = 'text/javascript'; - script.src = 'https://www.dropbox.com/static/api/2/dropins.js'; - $__WEBPACK_IMPORTED_MODULE_2___default()(script).attr('id', 'dropboxjs').attr('data-app-key', this.dropbox.apiKey()); - window__WEBPACK_IMPORTED_MODULE_0___default.a.document.body.appendChild(script); - } - } - }; - - return SocialStore; -}(); - -/* harmony default export */ __webpack_exports__["a"] = (new SocialStore()); - -/***/ }), -/* 30 */ -/*!*********************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/index-of.js ***! - \*********************************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/stable/instance/index-of */ 321); - -/***/ }), -/* 31 */, -/* 32 */ -/*!*************************************************************!*\ - !*** ./node_modules/core-js/internals/well-known-symbol.js ***! - \*************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ../internals/global */ 27); -var shared = __webpack_require__(/*! ../internals/shared */ 128); -var has = __webpack_require__(/*! ../internals/has */ 42); -var uid = __webpack_require__(/*! ../internals/uid */ 129); -var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ 131); -var USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ 185); - -var WellKnownSymbolsStore = shared('wks'); -var Symbol = global.Symbol; -var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid; - -module.exports = function (name) { - if (!has(WellKnownSymbolsStore, name)) { - if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name]; - else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); - } return WellKnownSymbolsStore[name]; -}; - - -/***/ }), -/* 33 */ -/*!**********************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/helpers/esm/assertThisInitialized.js ***! - \**********************************************************************************/ -/*! exports provided: default */ -/*! exports used: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _assertThisInitialized; }); -function _assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return self; -} - -/***/ }), -/* 34 */ -/*!*******************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/filter.js ***! - \*******************************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/stable/instance/filter */ 362); - -/***/ }), -/* 35 */ -/*!***********************************!*\ - !*** ./dev/Component/Abstract.js ***! - \***********************************/ -/*! exports provided: AbstractComponent, componentExportHelper */ -/*! exports used: AbstractComponent, componentExportHelper */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AbstractComponent; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return componentExportHelper; }); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/for-each */ 70); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/defineProperty */ 17); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $ */ 8); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Translator */ 9); - - - - - - - -var AbstractComponent = /*#__PURE__*/function () { - function AbstractComponent() { - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(this, "disposable", []); - } - - var _proto = AbstractComponent.prototype; - - _proto.dispose = function dispose() { - var _context; - - _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_0___default()(_context = this.disposable).call(_context, function (funcToDispose) { - if (funcToDispose && funcToDispose.dispose) { - funcToDispose.dispose(); - } - }); - }; - - return AbstractComponent; -}(); -/** - * @param {*} ClassObject - * @param {string} templateID = '' - * @returns {Object} - */ - - -var componentExportHelper = function componentExportHelper(ClassObject, templateID) { - if (templateID === void 0) { - templateID = ''; - } - - return { - template: templateID ? { - element: templateID - } : '', - viewModel: { - createViewModel: function createViewModel(params, componentInfo) { - params = params || {}; - params.element = null; - - if (componentInfo && componentInfo.element) { - params.component = componentInfo; - params.element = $__WEBPACK_IMPORTED_MODULE_2___default()(componentInfo.element); - Object(Common_Translator__WEBPACK_IMPORTED_MODULE_5__["i18nToNodes"])(params.element); - - if (!Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["isUnd"])(params.inline) && ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].unwrap(params.inline)) { - params.element.css('display', 'inline-block'); - } - } - - return new ClassObject(params); - } - } - }; -}; - - - -/***/ }), -/* 36 */ -/*!*************************************************!*\ - !*** ./node_modules/core-js/internals/fails.js ***! - \*************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = function (exec) { - try { - return !!exec(); - } catch (error) { - return true; - } -}; - - -/***/ }), -/* 37 */ -/*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/an-object.js ***! - \*****************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(/*! ../internals/is-object */ 44); - -module.exports = function (it) { - if (!isObject(it)) { - throw TypeError(String(it) + ' is not an object'); - } return it; -}; - - -/***/ }), -/* 38 */, -/* 39 */ -/*!*******************************!*\ - !*** ./dev/Common/Plugins.js ***! - \*******************************/ -/*! exports provided: addHook, runHook, mainSettingsGet, remoteRequest, addSettingsViewModel, addSettingsViewModelForAdmin, runSettingsViewModelHooks, settingsGet */ -/*! exports used: addHook, addSettingsViewModel, addSettingsViewModelForAdmin, mainSettingsGet, remoteRequest, runHook, runSettingsViewModelHooks, settingsGet */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addHook; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return runHook; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return mainSettingsGet; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return remoteRequest; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return addSettingsViewModel; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return addSettingsViewModelForAdmin; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return runSettingsViewModelHooks; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return settingsGet; }); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Common/Globals */ 6); -/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Storage/Settings */ 5); - - - - -var SIMPLE_HOOKS = {}, - USER_VIEW_MODELS_HOOKS = [], - ADMIN_VIEW_MODELS_HOOKS = []; -/** - * @param {string} name - * @param {Function} callback - */ - -function addHook(name, callback) { - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_1__["isFunc"])(callback)) { - if (!Object(Common_Utils__WEBPACK_IMPORTED_MODULE_1__["isArray"])(SIMPLE_HOOKS[name])) { - SIMPLE_HOOKS[name] = []; - } - - SIMPLE_HOOKS[name].push(callback); - } -} -/** - * @param {string} name - * @param {Array=} args = [] - */ - -function runHook(name, args) { - if (args === void 0) { - args = []; - } - - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_1__["isArray"])(SIMPLE_HOOKS[name])) { - ___WEBPACK_IMPORTED_MODULE_0___default.a.each(SIMPLE_HOOKS[name], function (callback) { - callback.apply(void 0, args); - }); - } -} -/** - * @param {string} name - * @returns {?} - */ - -function mainSettingsGet(name) { - return Storage_Settings__WEBPACK_IMPORTED_MODULE_3__["settingsGet"](name); -} -/** - * @param {Function} callback - * @param {string} action - * @param {Object=} parameters - * @param {?number=} timeout - */ - -function remoteRequest(callback, action, parameters, timeout) { - if (Common_Globals__WEBPACK_IMPORTED_MODULE_2__["data"].__APP__) { - Common_Globals__WEBPACK_IMPORTED_MODULE_2__["data"].__APP__.remote().defaultRequest(callback, 'Plugin' + action, parameters, timeout); - } -} -/** - * @param {Function} SettingsViewModelClass - * @param {string} labelName - * @param {string} template - * @param {string} route - */ - -function addSettingsViewModel(SettingsViewModelClass, template, labelName, route) { - USER_VIEW_MODELS_HOOKS.push([SettingsViewModelClass, template, labelName, route]); -} -/** - * @param {Function} SettingsViewModelClass - * @param {string} labelName - * @param {string} template - * @param {string} route - */ - -function addSettingsViewModelForAdmin(SettingsViewModelClass, template, labelName, route) { - ADMIN_VIEW_MODELS_HOOKS.push([SettingsViewModelClass, template, labelName, route]); -} -/** - * @param {boolean} admin - */ - -function runSettingsViewModelHooks(admin) { - var Knoin = __webpack_require__(/*! Knoin/Knoin */ 7); - - ___WEBPACK_IMPORTED_MODULE_0___default.a.each(admin ? ADMIN_VIEW_MODELS_HOOKS : USER_VIEW_MODELS_HOOKS, function (view) { - Knoin.addSettingsViewModel(view[0], view[1], view[2], view[3]); - }); -} -/** - * @param {string} pluginSection - * @param {string} name - * @returns {?} - */ - -function settingsGet(pluginSection, name) { - var plugins = Storage_Settings__WEBPACK_IMPORTED_MODULE_3__["settingsGet"]('Plugins'); - plugins = plugins && !Object(Common_Utils__WEBPACK_IMPORTED_MODULE_1__["isUnd"])(plugins[pluginSection]) ? plugins[pluginSection] : null; - return plugins ? Object(Common_Utils__WEBPACK_IMPORTED_MODULE_1__["isUnd"])(plugins[name]) ? null : plugins[name] : null; -} - -/***/ }), -/* 40 */ -/*!**********************************!*\ - !*** ./dev/Stores/Admin/Core.js ***! - \**********************************/ -/*! exports provided: default */ -/*! exports used: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ko */ 1); - - -var CoreAdminStore = function CoreAdminStore() { - this.coreReal = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(true); - this.coreChannel = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable('stable'); - this.coreType = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable('stable'); - this.coreUpdatable = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(true); - this.coreAccess = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(true); - this.coreWarning = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(false); - this.coreChecking = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(false).extend({ - throttle: 100 - }); - this.coreUpdating = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(false).extend({ - throttle: 100 - }); - this.coreVersion = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(''); - this.coreRemoteVersion = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(''); - this.coreRemoteRelease = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(''); - this.coreVersionCompare = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(-2); -}; - -/* harmony default export */ __webpack_exports__["a"] = (new CoreAdminStore()); - -/***/ }), -/* 41 */, -/* 42 */ -/*!***********************************************!*\ - !*** ./node_modules/core-js/internals/has.js ***! - \***********************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -var hasOwnProperty = {}.hasOwnProperty; - -module.exports = function (it, key) { - return hasOwnProperty.call(it, key); -}; - - -/***/ }), -/* 43 */ -/*!*******************************************************!*\ - !*** ./node_modules/core-js-pure/internals/export.js ***! - \*******************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var global = __webpack_require__(/*! ../internals/global */ 66); -var getOwnPropertyDescriptor = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ 238).f; -var isForced = __webpack_require__(/*! ../internals/is-forced */ 294); -var path = __webpack_require__(/*! ../internals/path */ 97); -var bind = __webpack_require__(/*! ../internals/function-bind-context */ 241); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 84); -var has = __webpack_require__(/*! ../internals/has */ 78); - -var wrapConstructor = function (NativeConstructor) { - var Wrapper = function (a, b, c) { - if (this instanceof NativeConstructor) { - switch (arguments.length) { - case 0: return new NativeConstructor(); - case 1: return new NativeConstructor(a); - case 2: return new NativeConstructor(a, b); - } return new NativeConstructor(a, b, c); - } return NativeConstructor.apply(this, arguments); - }; - Wrapper.prototype = NativeConstructor.prototype; - return Wrapper; -}; - -/* - options.target - name of the target object - options.global - target is the global object - options.stat - export as static methods of target - options.proto - export as prototype methods of target - options.real - real prototype method for the `pure` version - options.forced - export even if the native feature is available - options.bind - bind methods to the target, required for the `pure` version - options.wrap - wrap constructors to preventing global pollution, required for the `pure` version - options.unsafe - use the simple assignment of property instead of delete + defineProperty - options.sham - add a flag to not completely full polyfills - options.enumerable - export as enumerable property - options.noTargetGet - prevent calling a getter on target -*/ -module.exports = function (options, source) { - var TARGET = options.target; - var GLOBAL = options.global; - var STATIC = options.stat; - var PROTO = options.proto; - - var nativeSource = GLOBAL ? global : STATIC ? global[TARGET] : (global[TARGET] || {}).prototype; - - var target = GLOBAL ? path : path[TARGET] || (path[TARGET] = {}); - var targetPrototype = target.prototype; - - var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE; - var key, sourceProperty, targetProperty, nativeProperty, resultProperty, descriptor; - - for (key in source) { - FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); - // contains in native - USE_NATIVE = !FORCED && nativeSource && has(nativeSource, key); - - targetProperty = target[key]; - - if (USE_NATIVE) if (options.noTargetGet) { - descriptor = getOwnPropertyDescriptor(nativeSource, key); - nativeProperty = descriptor && descriptor.value; - } else nativeProperty = nativeSource[key]; - - // export native or implementation - sourceProperty = (USE_NATIVE && nativeProperty) ? nativeProperty : source[key]; - - if (USE_NATIVE && typeof targetProperty === typeof sourceProperty) continue; - - // bind timers to global for call from export context - if (options.bind && USE_NATIVE) resultProperty = bind(sourceProperty, global); - // wrap global constructors for prevent changs in this version - else if (options.wrap && USE_NATIVE) resultProperty = wrapConstructor(sourceProperty); - // make static versions for prototype methods - else if (PROTO && typeof sourceProperty == 'function') resultProperty = bind(Function.call, sourceProperty); - // default case - else resultProperty = sourceProperty; - - // add a flag to not completely full polyfills - if (options.sham || (sourceProperty && sourceProperty.sham) || (targetProperty && targetProperty.sham)) { - createNonEnumerableProperty(resultProperty, 'sham', true); - } - - target[key] = resultProperty; - - if (PROTO) { - VIRTUAL_PROTOTYPE = TARGET + 'Prototype'; - if (!has(path, VIRTUAL_PROTOTYPE)) { - createNonEnumerableProperty(path, VIRTUAL_PROTOTYPE, {}); - } - // export virtual prototype methods - path[VIRTUAL_PROTOTYPE][key] = sourceProperty; - // export real prototype methods - if (options.real && targetPrototype && !targetPrototype[key]) { - createNonEnumerableProperty(targetPrototype, key, sourceProperty); - } - } - } -}; - - -/***/ }), -/* 44 */ -/*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/is-object.js ***! - \*****************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; -}; - - -/***/ }), -/* 45 */ -/*!********************************************************!*\ - !*** ./node_modules/core-js/modules/es.regexp.exec.js ***! - \********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(/*! ../internals/export */ 50); -var exec = __webpack_require__(/*! ../internals/regexp-exec */ 110); - -$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, { - exec: exec -}); - - -/***/ }), -/* 46 */, -/* 47 */ -/*!*******************************************************!*\ - !*** ./node_modules/core-js/internals/descriptors.js ***! - \*******************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var fails = __webpack_require__(/*! ../internals/fails */ 36); - -// Thank's IE8 for his funny defineProperty -module.exports = !fails(function () { - return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; -}); - - -/***/ }), -/* 48 */ -/*!**************************************************************************!*\ - !*** ./node_modules/core-js/internals/create-non-enumerable-property.js ***! - \**************************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 47); -var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ 52); -var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ 92); - -module.exports = DESCRIPTORS ? function (object, key, value) { - return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - - -/***/ }), -/* 49 */ -/*!*******************************************************!*\ - !*** ./node_modules/core-js/internals/classof-raw.js ***! - \*******************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -var toString = {}.toString; - -module.exports = function (it) { - return toString.call(it).slice(8, -1); -}; - - -/***/ }), -/* 50 */ -/*!**************************************************!*\ - !*** ./node_modules/core-js/internals/export.js ***! - \**************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ../internals/global */ 27); -var getOwnPropertyDescriptor = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ 91).f; -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 48); -var redefine = __webpack_require__(/*! ../internals/redefine */ 53); -var setGlobal = __webpack_require__(/*! ../internals/set-global */ 93); -var copyConstructorProperties = __webpack_require__(/*! ../internals/copy-constructor-properties */ 181); -var isForced = __webpack_require__(/*! ../internals/is-forced */ 130); - -/* - options.target - name of the target object - options.global - target is the global object - options.stat - export as static methods of target - options.proto - export as prototype methods of target - options.real - real prototype method for the `pure` version - options.forced - export even if the native feature is available - options.bind - bind methods to the target, required for the `pure` version - options.wrap - wrap constructors to preventing global pollution, required for the `pure` version - options.unsafe - use the simple assignment of property instead of delete + defineProperty - options.sham - add a flag to not completely full polyfills - options.enumerable - export as enumerable property - options.noTargetGet - prevent calling a getter on target -*/ -module.exports = function (options, source) { - var TARGET = options.target; - var GLOBAL = options.global; - var STATIC = options.stat; - var FORCED, target, key, targetProperty, sourceProperty, descriptor; - if (GLOBAL) { - target = global; - } else if (STATIC) { - target = global[TARGET] || setGlobal(TARGET, {}); - } else { - target = (global[TARGET] || {}).prototype; - } - if (target) for (key in source) { - sourceProperty = source[key]; - if (options.noTargetGet) { - descriptor = getOwnPropertyDescriptor(target, key); - targetProperty = descriptor && descriptor.value; - } else targetProperty = target[key]; - FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); - // contained in target - if (!FORCED && targetProperty !== undefined) { - if (typeof sourceProperty === typeof targetProperty) continue; - copyConstructorProperties(sourceProperty, targetProperty); - } - // add a flag to not completely full polyfills - if (options.sham || (targetProperty && targetProperty.sham)) { - createNonEnumerableProperty(sourceProperty, 'sham', true); - } - // extend global - redefine(target, key, sourceProperty, options); - } -}; - - -/***/ }), -/* 51 */ -/*!**********************************************************!*\ - !*** ./node_modules/core-js/modules/es.function.name.js ***! - \**********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 47); -var defineProperty = __webpack_require__(/*! ../internals/object-define-property */ 52).f; - -var FunctionPrototype = Function.prototype; -var FunctionPrototypeToString = FunctionPrototype.toString; -var nameRE = /^\s*function ([^ (]*)/; -var NAME = 'name'; - -// Function instances `.name` property -// https://tc39.github.io/ecma262/#sec-function-instances-name -if (DESCRIPTORS && !(NAME in FunctionPrototype)) { - defineProperty(FunctionPrototype, NAME, { - configurable: true, - get: function () { - try { - return FunctionPrototypeToString.call(this).match(nameRE)[1]; - } catch (error) { - return ''; - } - } - }); -} - - -/***/ }), -/* 52 */ -/*!******************************************************************!*\ - !*** ./node_modules/core-js/internals/object-define-property.js ***! - \******************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 47); -var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ 126); -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); -var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ 125); - -var nativeDefineProperty = Object.defineProperty; - -// `Object.defineProperty` method -// https://tc39.github.io/ecma262/#sec-object.defineproperty -exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return nativeDefineProperty(O, P, Attributes); - } catch (error) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; - - -/***/ }), -/* 53 */ -/*!****************************************************!*\ - !*** ./node_modules/core-js/internals/redefine.js ***! - \****************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ../internals/global */ 27); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 48); -var has = __webpack_require__(/*! ../internals/has */ 42); -var setGlobal = __webpack_require__(/*! ../internals/set-global */ 93); -var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ 94); -var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ 88); - -var getInternalState = InternalStateModule.get; -var enforceInternalState = InternalStateModule.enforce; -var TEMPLATE = String(String).split('String'); - -(module.exports = function (O, key, value, options) { - var unsafe = options ? !!options.unsafe : false; - var simple = options ? !!options.enumerable : false; - var noTargetGet = options ? !!options.noTargetGet : false; - if (typeof value == 'function') { - if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key); - enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : ''); - } - if (O === global) { - if (simple) O[key] = value; - else setGlobal(key, value); - return; - } else if (!unsafe) { - delete O[key]; - } else if (!noTargetGet && O[key]) { - simple = true; - } - if (simple) O[key] = value; - else createNonEnumerableProperty(O, key, value); -// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative -})(Function.prototype, 'toString', function toString() { - return typeof this == 'function' && getInternalState(this).source || inspectSource(this); -}); - - -/***/ }), -/* 54 */ -/*!**************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/entry-virtual.js ***! - \**************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var path = __webpack_require__(/*! ../internals/path */ 97); - -module.exports = function (CONSTRUCTOR) { - return path[CONSTRUCTOR + 'Prototype']; -}; - - -/***/ }), -/* 55 */ -/*!******************************************************!*\ - !*** ./node_modules/core-js-pure/internals/fails.js ***! - \******************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = function (exec) { - try { - return !!exec(); - } catch (error) { - return true; - } -}; - - -/***/ }), -/* 56 */ -/*!********************************************************************!*\ - !*** ./node_modules/core-js/internals/require-object-coercible.js ***! - \********************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -// `RequireObjectCoercible` abstract operation -// https://tc39.github.io/ecma262/#sec-requireobjectcoercible -module.exports = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; -}; - - -/***/ }), -/* 57 */ -/*!***********************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.replace.js ***! - \***********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var fixRegExpWellKnownSymbolLogic = __webpack_require__(/*! ../internals/fix-regexp-well-known-symbol-logic */ 135); -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); -var toObject = __webpack_require__(/*! ../internals/to-object */ 120); -var toLength = __webpack_require__(/*! ../internals/to-length */ 73); -var toInteger = __webpack_require__(/*! ../internals/to-integer */ 81); -var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ 56); -var advanceStringIndex = __webpack_require__(/*! ../internals/advance-string-index */ 154); -var regExpExec = __webpack_require__(/*! ../internals/regexp-exec-abstract */ 136); - -var max = Math.max; -var min = Math.min; -var floor = Math.floor; -var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d\d?|<[^>]*>)/g; -var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d\d?)/g; - -var maybeToString = function (it) { - return it === undefined ? it : String(it); -}; - -// @@replace logic -fixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) { - var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE; - var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0; - var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0'; - - return [ - // `String.prototype.replace` method - // https://tc39.github.io/ecma262/#sec-string.prototype.replace - function replace(searchValue, replaceValue) { - var O = requireObjectCoercible(this); - var replacer = searchValue == undefined ? undefined : searchValue[REPLACE]; - return replacer !== undefined - ? replacer.call(searchValue, O, replaceValue) - : nativeReplace.call(String(O), searchValue, replaceValue); - }, - // `RegExp.prototype[@@replace]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace - function (regexp, replaceValue) { - if ( - (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) || - (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1) - ) { - var res = maybeCallNative(nativeReplace, regexp, this, replaceValue); - if (res.done) return res.value; - } - - var rx = anObject(regexp); - var S = String(this); - - var functionalReplace = typeof replaceValue === 'function'; - if (!functionalReplace) replaceValue = String(replaceValue); - - var global = rx.global; - if (global) { - var fullUnicode = rx.unicode; - rx.lastIndex = 0; - } - var results = []; - while (true) { - var result = regExpExec(rx, S); - if (result === null) break; - - results.push(result); - if (!global) break; - - var matchStr = String(result[0]); - if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); - } - - var accumulatedResult = ''; - var nextSourcePosition = 0; - for (var i = 0; i < results.length; i++) { - result = results[i]; - - var matched = String(result[0]); - var position = max(min(toInteger(result.index), S.length), 0); - var captures = []; - // NOTE: This is equivalent to - // captures = result.slice(1).map(maybeToString) - // but for some reason `nativeSlice.call(result, 1, result.length)` (called in - // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and - // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. - for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j])); - var namedCaptures = result.groups; - if (functionalReplace) { - var replacerArgs = [matched].concat(captures, position, S); - if (namedCaptures !== undefined) replacerArgs.push(namedCaptures); - var replacement = String(replaceValue.apply(undefined, replacerArgs)); - } else { - replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); - } - if (position >= nextSourcePosition) { - accumulatedResult += S.slice(nextSourcePosition, position) + replacement; - nextSourcePosition = position + matched.length; - } - } - return accumulatedResult + S.slice(nextSourcePosition); - } - ]; - - // https://tc39.github.io/ecma262/#sec-getsubstitution - function getSubstitution(matched, str, position, captures, namedCaptures, replacement) { - var tailPos = position + matched.length; - var m = captures.length; - var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; - if (namedCaptures !== undefined) { - namedCaptures = toObject(namedCaptures); - symbols = SUBSTITUTION_SYMBOLS; - } - return nativeReplace.call(replacement, symbols, function (match, ch) { - var capture; - switch (ch.charAt(0)) { - case '$': return '$'; - case '&': return matched; - case '`': return str.slice(0, position); - case "'": return str.slice(tailPos); - case '<': - capture = namedCaptures[ch.slice(1, -1)]; - break; - default: // \d\d? - var n = +ch; - if (n === 0) return match; - if (n > m) { - var f = floor(n / 10); - if (f === 0) return match; - if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1); - return match; - } - capture = captures[n - 1]; - } - return capture === undefined ? '' : capture; - }); - } -}); - - -/***/ }), -/* 58 */, -/* 59 */ -/*!********************************************************!*\ - !*** ./node_modules/core-js/internals/get-built-in.js ***! - \********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var path = __webpack_require__(/*! ../internals/path */ 150); -var global = __webpack_require__(/*! ../internals/global */ 27); - -var aFunction = function (variable) { - return typeof variable == 'function' ? variable : undefined; -}; - -module.exports = function (namespace, method) { - return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) - : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method]; -}; - - -/***/ }), -/* 60 */ -/*!********************************!*\ - !*** ./dev/Common/Momentor.js ***! - \********************************/ -/*! exports provided: momentNow, momentNowUnix, searchSubtractFormatDateHelper, format, momentToNode, reload */ -/*! all exports used */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "momentNow", function() { return momentNow; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "momentNowUnix", function() { return momentNowUnix; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "searchSubtractFormatDateHelper", function() { return searchSubtractFormatDateHelper; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "format", function() { return format; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "momentToNode", function() { return momentToNode; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reload", function() { return reload; }); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $ */ 8); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! moment */ 98); -/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Translator */ 9); - - - - - -var _moment = null; -var _momentNow = 0; - -var updateMomentNow = ___WEBPACK_IMPORTED_MODULE_1___default.a.debounce(function () { - _moment = moment__WEBPACK_IMPORTED_MODULE_3___default()(); -}, 500, true); - -var updateMomentNowUnix = ___WEBPACK_IMPORTED_MODULE_1___default.a.debounce(function () { - _momentNow = moment__WEBPACK_IMPORTED_MODULE_3___default()().unix(); -}, 500, true); -/** - * @returns {moment} - */ - - -function momentNow() { - updateMomentNow(); - return _moment || moment__WEBPACK_IMPORTED_MODULE_3___default()(); -} -/** - * @returns {number} - */ - -function momentNowUnix() { - updateMomentNowUnix(); - return _momentNow || 0; -} -/** - * @param {number} date - * @returns {string} - */ - -function searchSubtractFormatDateHelper(date) { - return momentNow().clone().subtract(date, 'days').format('YYYY.MM.DD'); -} -/** - * @param {Object} m - * @returns {string} - */ - -function formatCustomShortDate(m) { - var now = momentNow(); - - if (m && now) { - switch (true) { - case 4 >= now.diff(m, 'hours'): - return m.fromNow(); - - case now.format('L') === m.format('L'): - return Object(Common_Translator__WEBPACK_IMPORTED_MODULE_4__["i18n"])('MESSAGE_LIST/TODAY_AT', { - TIME: m.format('LT') - }); - - case now.clone().subtract(1, 'days').format('L') === m.format('L'): - return Object(Common_Translator__WEBPACK_IMPORTED_MODULE_4__["i18n"])('MESSAGE_LIST/YESTERDAY_AT', { - TIME: m.format('LT') - }); - - case now.year() === m.year(): - return m.format('D MMM.'); - // no default - } - } - - return m ? m.format('LL') : ''; -} -/** - * @param {number} timeStampInUTC - * @param {string} formatStr - * @returns {string} - */ - - -function format(timeStampInUTC, formatStr) { - var m = null, - result = ''; - var now = momentNowUnix(); - timeStampInUTC = 0 < timeStampInUTC ? timeStampInUTC : 0 === timeStampInUTC ? now : 0; - timeStampInUTC = now < timeStampInUTC ? now : timeStampInUTC; - m = 0 < timeStampInUTC ? moment__WEBPACK_IMPORTED_MODULE_3___default.a.unix(timeStampInUTC) : null; - - if (m && 1970 === m.year()) { - m = null; - } - - if (m) { - switch (formatStr) { - case 'FROMNOW': - result = m.fromNow(); - break; - - case 'SHORT': - result = formatCustomShortDate(m); - break; - - case 'FULL': - result = m.format('LLL'); - break; - - default: - result = m.format(formatStr); - break; - } - } - - return result; -} -/** - * @param {Object} element - * @returns {void} - */ - -function momentToNode(element) { - var key = '', - time = 0; - var $el = $__WEBPACK_IMPORTED_MODULE_2___default()(element); - time = $el.data('moment-time'); - - if (time) { - key = $el.data('moment-format'); - - if (key) { - $el.text(format(time, key)); - } - - key = $el.data('moment-format-title'); - - if (key) { - $el.attr('title', format(time, key)); - } - } -} -/** - * @returns {void} - */ - -function reload() { - ___WEBPACK_IMPORTED_MODULE_1___default.a.defer(function () { - $__WEBPACK_IMPORTED_MODULE_2___default()('.moment', window__WEBPACK_IMPORTED_MODULE_0___default.a.document).each(function (index, item) { - momentToNode(item); - }); - }); -} - -/***/ }), -/* 61 */ -/*!********************************!*\ - !*** external "window.hasher" ***! - \********************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports) { - -module.exports = window.hasher; - -/***/ }), -/* 62 */, -/* 63 */ -/*!*************************************************************!*\ - !*** ./node_modules/core-js/modules/es.object.to-string.js ***! - \*************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ 95); -var redefine = __webpack_require__(/*! ../internals/redefine */ 53); -var toString = __webpack_require__(/*! ../internals/object-to-string */ 186); - -// `Object.prototype.toString` method -// https://tc39.github.io/ecma262/#sec-object.prototype.tostring -if (!TO_STRING_TAG_SUPPORT) { - redefine(Object.prototype, 'toString', toString, { unsafe: true }); -} - - -/***/ }), -/* 64 */, -/* 65 */ -/*!**********************************!*\ - !*** ./dev/Helper/Apps/Admin.js ***! - \**********************************/ -/*! exports provided: getApp */ -/*! exports used: getApp */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getApp; }); -/** - * @returns {AppAdmin} - */ -function getApp() { - return __webpack_require__(/*! App/Admin */ 396).default; -} - -/***/ }), -/* 66 */ -/*!*******************************************************!*\ - !*** ./node_modules/core-js-pure/internals/global.js ***! - \*******************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) { - return it && it.Math == Math && it; -}; - -// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 -module.exports = - // eslint-disable-next-line no-undef - check(typeof globalThis == 'object' && globalThis) || - check(typeof window == 'object' && window) || - check(typeof self == 'object' && self) || - check(typeof global == 'object' && global) || - // eslint-disable-next-line no-new-func - (function () { return this; })() || Function('return this')(); - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ 124))) - -/***/ }), -/* 67 */ -/*!******************************************************!*\ - !*** ./node_modules/core-js/internals/a-function.js ***! - \******************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = function (it) { - if (typeof it != 'function') { - throw TypeError(String(it) + ' is not a function'); - } return it; -}; - - -/***/ }), -/* 68 */ -/*!****************************************************!*\ - !*** ./node_modules/core-js/modules/web.timers.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var $ = __webpack_require__(/*! ../internals/export */ 50); -var global = __webpack_require__(/*! ../internals/global */ 27); -var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ 105); - -var slice = [].slice; -var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check - -var wrap = function (scheduler) { - return function (handler, timeout /* , ...arguments */) { - var boundArgs = arguments.length > 2; - var args = boundArgs ? slice.call(arguments, 2) : undefined; - return scheduler(boundArgs ? function () { - // eslint-disable-next-line no-new-func - (typeof handler == 'function' ? handler : Function(handler)).apply(this, args); - } : handler, timeout); - }; -}; - -// ie9- setTimeout & setInterval additional parameters fix -// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers -$({ global: true, bind: true, forced: MSIE }, { - // `setTimeout` method - // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout - setTimeout: wrap(global.setTimeout), - // `setInterval` method - // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval - setInterval: wrap(global.setInterval) -}); - - -/***/ }), -/* 69 */ -/*!******************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/well-known-symbol.js ***! - \******************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ../internals/global */ 66); -var shared = __webpack_require__(/*! ../internals/shared */ 244); -var has = __webpack_require__(/*! ../internals/has */ 78); -var uid = __webpack_require__(/*! ../internals/uid */ 245); -var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ 248); -var USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ 306); - -var WellKnownSymbolsStore = shared('wks'); -var Symbol = global.Symbol; -var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid; - -module.exports = function (name) { - if (!has(WellKnownSymbolsStore, name)) { - if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name]; - else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); - } return WellKnownSymbolsStore[name]; -}; - - -/***/ }), -/* 70 */ -/*!*********************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/for-each.js ***! - \*********************************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/stable/instance/for-each */ 258); - -/***/ }), -/* 71 */ -/*!********************************!*\ - !*** ./dev/Stores/Language.js ***! - \********************************/ -/*! exports provided: default */ -/*! exports used: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Storage/Settings */ 5); - - - - -var LanguageStore = /*#__PURE__*/function () { - function LanguageStore() { - this.languages = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observableArray([]); - this.languagesAdmin = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observableArray([]); - this.language = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable('').extend({ - limitedList: this.languages - }).extend({ - reversible: true - }); - this.languageAdmin = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable('').extend({ - limitedList: this.languagesAdmin - }).extend({ - reversible: true - }); - this.userLanguage = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(''); - this.userLanguageAdmin = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(''); - } - - var _proto = LanguageStore.prototype; - - _proto.populate = function populate() { - var aLanguages = Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["appSettingsGet"]('languages'), - aLanguagesAdmin = Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["appSettingsGet"]('languagesAdmin'); - this.languages(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_1__["isArray"])(aLanguages) ? aLanguages : []); - this.languagesAdmin(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_1__["isArray"])(aLanguagesAdmin) ? aLanguagesAdmin : []); - this.language(Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["settingsGet"]('Language')); - this.languageAdmin(Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["settingsGet"]('LanguageAdmin')); - this.userLanguage(Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["settingsGet"]('UserLanguage')); - this.userLanguageAdmin(Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["settingsGet"]('UserLanguageAdmin')); - }; - - return LanguageStore; -}(); - -/* harmony default export */ __webpack_exports__["a"] = (new LanguageStore()); - -/***/ }), -/* 72 */ -/*!*************************************************************!*\ - !*** ./node_modules/core-js/internals/to-indexed-object.js ***! - \*************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -// toObject with fallback for non-array-like ES3 strings -var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ 119); -var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ 56); - -module.exports = function (it) { - return IndexedObject(requireObjectCoercible(it)); -}; - - -/***/ }), -/* 73 */ -/*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/to-length.js ***! - \*****************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(/*! ../internals/to-integer */ 81); - -var min = Math.min; - -// `ToLength` abstract operation -// https://tc39.github.io/ecma262/#sec-tolength -module.exports = function (argument) { - return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 -}; - - -/***/ }), -/* 74 */ -/*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/iterators.js ***! - \*****************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = {}; - - -/***/ }), -/* 75 */ -/*!*******************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.join.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(/*! ../internals/export */ 50); -var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ 119); -var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 72); -var arrayMethodIsStrict = __webpack_require__(/*! ../internals/array-method-is-strict */ 287); - -var nativeJoin = [].join; - -var ES3_STRINGS = IndexedObject != Object; -var STRICT_METHOD = arrayMethodIsStrict('join', ','); - -// `Array.prototype.join` method -// https://tc39.github.io/ecma262/#sec-array.prototype.join -$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, { - join: function join(separator) { - return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator); - } -}); - - -/***/ }), -/* 76 */ -/*!************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/descriptors.js ***! - \************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var fails = __webpack_require__(/*! ../internals/fails */ 55); - -// Detect IE8's incomplete defineProperty implementation -module.exports = !fails(function () { - return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; -}); - - -/***/ }), -/* 77 */ -/*!**********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/is-object.js ***! - \**********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; -}; - - -/***/ }), -/* 78 */ -/*!****************************************************!*\ - !*** ./node_modules/core-js-pure/internals/has.js ***! - \****************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -var hasOwnProperty = {}.hasOwnProperty; - -module.exports = function (it, key) { - return hasOwnProperty.call(it, key); -}; - - -/***/ }), -/* 79 */ -/*!*********************************!*\ - !*** ./dev/Stores/Admin/App.js ***! - \*********************************/ -/*! exports provided: default */ -/*! exports used: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $ */ 8); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Storage/Settings */ 5); -/* harmony import */ var Stores_AbstractApp__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Stores/AbstractApp */ 262); - - - - - - - -var AppAdminStore = /*#__PURE__*/function (_AbstractAppStore) { - Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(AppAdminStore, _AbstractAppStore); - - function AppAdminStore() { - var _this; - - _this = _AbstractAppStore.call(this) || this; - _this.determineUserLanguage = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false); - _this.determineUserDomain = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false); - _this.weakPassword = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false); - _this.useLocalProxyForExternalImages = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false); - _this.dataFolderAccess = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false); - return _this; - } - - var _proto = AppAdminStore.prototype; - - _proto.populate = function populate() { - var _this2 = this; - - _AbstractAppStore.prototype.populate.call(this); - - this.determineUserLanguage(!!Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_4__["settingsGet"])('DetermineUserLanguage')); - this.determineUserDomain(!!Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_4__["settingsGet"])('DetermineUserDomain')); - this.weakPassword(!!Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_4__["settingsGet"])('WeakPassword')); - this.useLocalProxyForExternalImages(!!Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_4__["settingsGet"])('UseLocalProxyForExternalImages')); - - if (Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_4__["settingsGet"])('Auth')) { - $__WEBPACK_IMPORTED_MODULE_2___default.a.get('./data/VERSION?' + window__WEBPACK_IMPORTED_MODULE_1___default.a.Math.random()).then(function () { - return _this2.dataFolderAccess(true); - }); - } - }; - - return AppAdminStore; -}(Stores_AbstractApp__WEBPACK_IMPORTED_MODULE_5__[/* AbstractAppStore */ "a"]); - -/* harmony default export */ __webpack_exports__["a"] = (new AppAdminStore()); - -/***/ }), -/* 80 */ -/*!***************************************************!*\ - !*** ./node_modules/core-js/internals/is-pure.js ***! - \***************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = false; - - -/***/ }), -/* 81 */ -/*!******************************************************!*\ - !*** ./node_modules/core-js/internals/to-integer.js ***! - \******************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -var ceil = Math.ceil; -var floor = Math.floor; - -// `ToInteger` abstract operation -// https://tc39.github.io/ecma262/#sec-tointeger -module.exports = function (argument) { - return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); -}; - - -/***/ }), -/* 82 */ -/*!****************************!*\ - !*** ./dev/Model/Email.js ***! - \****************************/ -/*! exports provided: EmailModel, default */ -/*! all exports used */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EmailModel", function() { return EmailModel; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return EmailModel; }); -/* harmony import */ var core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.function.name */ 51); -/* harmony import */ var core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.regexp.exec */ 45); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.string.replace */ 57); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var core_js_modules_es_string_search__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.string.search */ 278); -/* harmony import */ var core_js_modules_es_string_search__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_search__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 18); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/for-each */ 70); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/index-of */ 30); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/defineProperty */ 17); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var emailjs_addressparser__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! emailjs-addressparser */ 166); -/* harmony import */ var emailjs_addressparser__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(emailjs_addressparser__WEBPACK_IMPORTED_MODULE_9__); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Common/Utils */ 2); - - - - - - - - - - - - -var EmailModel = /*#__PURE__*/function () { - /** - * @param {string=} email = '' - * @param {string=} name = '' - * @param {string=} dkimStatus = 'none' - * @param {string=} dkimValue = '' - */ - function EmailModel(email, name, dkimStatus, dkimValue) { - if (email === void 0) { - email = ''; - } - - if (name === void 0) { - name = ''; - } - - if (dkimStatus === void 0) { - dkimStatus = 'none'; - } - - if (dkimValue === void 0) { - dkimValue = ''; - } - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"])(this, "email", ''); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"])(this, "name", ''); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"])(this, "dkimStatus", ''); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"])(this, "dkimValue", ''); - - this.email = email; - this.name = name; - this.dkimStatus = dkimStatus; - this.dkimValue = dkimValue; - this.clearDuplicateName(); - } - /** - * @static - * @param {AjaxJsonEmail} json - * @returns {?EmailModel} - */ - - - EmailModel.newInstanceFromJson = function newInstanceFromJson(json) { - var email = new EmailModel(); - return email.initByJson(json) ? email : null; - } - /** - * @returns {void} - */ - ; - - var _proto = EmailModel.prototype; - - _proto.clear = function clear() { - this.email = ''; - this.name = ''; - this.dkimStatus = 'none'; - this.dkimValue = ''; - } - /** - * @returns {boolean} - */ - ; - - _proto.validate = function validate() { - return '' !== this.name || '' !== this.email; - } - /** - * @param {boolean} withoutName = false - * @returns {string} - */ - ; - - _proto.hash = function hash(withoutName) { - if (withoutName === void 0) { - withoutName = false; - } - - return '#' + (withoutName ? '' : this.name) + '#' + this.email + '#'; - } - /** - * @returns {void} - */ - ; - - _proto.clearDuplicateName = function clearDuplicateName() { - if (this.name === this.email) { - this.name = ''; - } - } - /** - * @param {string} query - * @returns {boolean} - */ - ; - - _proto.search = function search(query) { - var _context; - - return -1 < _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_6___default()(_context = (this.name + ' ' + this.email).toLowerCase()).call(_context, query.toLowerCase()); - } - /** - * @param {AjaxJsonEmail} oJsonEmail - * @returns {boolean} - */ - ; - - _proto.initByJson = function initByJson(json) { - var result = false; - - if (json && 'Object/Email' === json['@Object']) { - this.name = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["trim"])(json.Name); - this.email = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["trim"])(json.Email); - this.dkimStatus = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["trim"])(json.DkimStatus || ''); - this.dkimValue = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["trim"])(json.DkimValue || ''); - result = '' !== this.email; - this.clearDuplicateName(); - } - - return result; - } - /** - * @param {boolean} friendlyView - * @param {boolean=} wrapWithLink = false - * @param {boolean=} useEncodeHtml = false - * @returns {string} - */ - ; - - _proto.toLine = function toLine(friendlyView, wrapWithLink, useEncodeHtml) { - if (wrapWithLink === void 0) { - wrapWithLink = false; - } - - if (useEncodeHtml === void 0) { - useEncodeHtml = false; - } - - var result = ''; - - if ('' !== this.email) { - if (friendlyView && '' !== this.name) { - result = wrapWithLink ? '
') + '" target="_blank" tabindex="-1">' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["encodeHtml"])(this.name) + '' : useEncodeHtml ? Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["encodeHtml"])(this.name) : this.name; // result = wrapWithLink ? '') + - // '" target="_blank" tabindex="-1">' + encodeHtml(this.name) + '' : (useEncodeHtml ? encodeHtml(this.name) : this.name); - } else { - result = this.email; - - if ('' !== this.name) { - if (wrapWithLink) { - result = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["encodeHtml"])('"' + this.name + '" <') + '') + '" target="_blank" tabindex="-1">' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["encodeHtml"])(result) + '' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["encodeHtml"])('>'); // result = encodeHtml('"' + this.name + '" <') + '') + - // '" target="_blank" tabindex="-1">' + - // encodeHtml(result) + - // '' + - // encodeHtml('>'); - } else { - result = '"' + this.name + '" <' + result + '>'; - - if (useEncodeHtml) { - result = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["encodeHtml"])(result); - } - } - } else if (wrapWithLink) { - result = '' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["encodeHtml"])(this.email) + ''; - } - } - } - - return result; - }; - - EmailModel.splitEmailLine = function splitEmailLine(line) { - var parsedResult = emailjs_addressparser__WEBPACK_IMPORTED_MODULE_9___default()(line); - - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["isNonEmptyArray"])(parsedResult)) { - var result = []; - var exists = false; - - _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_5___default()(parsedResult).call(parsedResult, function (item) { - var address = item.address ? new EmailModel(item.address.replace(/^[<]+(.*)[>]+$/g, '$1'), item.name || '') : null; - - if (address && address.email) { - exists = true; - } - - result.push(address ? address.toLine(false) : item.name); - }); - - return exists ? result : null; - } - - return null; - }; - - EmailModel.parseEmailLine = function parseEmailLine(line) { - var parsedResult = emailjs_addressparser__WEBPACK_IMPORTED_MODULE_9___default()(line); - - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["isNonEmptyArray"])(parsedResult)) { - return ___WEBPACK_IMPORTED_MODULE_8___default.a.compact(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4___default()(___WEBPACK_IMPORTED_MODULE_8___default.a).call(___WEBPACK_IMPORTED_MODULE_8___default.a, parsedResult, function (item) { - return item.address ? new EmailModel(item.address.replace(/^[<]+(.*)[>]+$/g, '$1'), item.name || '') : null; - })); - } - - return []; - } - /** - * @param {string} emailAddress - * @returns {boolean} - */ - ; - - _proto.parse = function parse(emailAddress) { - emailAddress = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["trim"])(emailAddress); - - if ('' === emailAddress) { - return false; - } - - var result = emailjs_addressparser__WEBPACK_IMPORTED_MODULE_9___default()(emailAddress); - - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["isNonEmptyArray"])(result) && result[0]) { - this.name = result[0].name || ''; - this.email = result[0].address || ''; - this.clearDuplicateName(); - return true; - } - - return false; - }; - - return EmailModel; -}(); - - - -/***/ }), -/* 83 */, -/* 84 */ -/*!*******************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/create-non-enumerable-property.js ***! - \*******************************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 76); -var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ 137); -var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ 155); - -module.exports = DESCRIPTORS ? function (object, key, value) { - return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - - -/***/ }), -/* 85 */ -/*!****************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/array-method-uses-to-length.js ***! - \****************************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 76); -var fails = __webpack_require__(/*! ../internals/fails */ 55); -var has = __webpack_require__(/*! ../internals/has */ 78); - -var defineProperty = Object.defineProperty; -var cache = {}; - -var thrower = function (it) { throw it; }; - -module.exports = function (METHOD_NAME, options) { - if (has(cache, METHOD_NAME)) return cache[METHOD_NAME]; - if (!options) options = {}; - var method = [][METHOD_NAME]; - var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false; - var argument0 = has(options, 0) ? options[0] : thrower; - var argument1 = has(options, 1) ? options[1] : undefined; - - return cache[METHOD_NAME] = !!method && !fails(function () { - if (ACCESSORS && !DESCRIPTORS) return true; - var O = { length: -1 }; - - if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower }); - else O[1] = 1; - - method.call(O, argument0, argument1); - }); -}; - - -/***/ }), -/* 86 */ -/*!****************************************!*\ - !*** ./dev/Component/AbstractInput.js ***! - \****************************************/ -/*! exports provided: AbstractInput, default */ -/*! exports used: AbstractInput */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AbstractInput; }); -/* unused harmony export default */ -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find */ 12); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/assertThisInitialized */ 33); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Component_Abstract__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Component/Abstract */ 35); - - - - - - - - -var AbstractInput = /*#__PURE__*/function (_AbstractComponent) { - Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(AbstractInput, _AbstractComponent); - - /** - * @param {Object} params - */ - function AbstractInput(params) { - var _this; - - _this = _AbstractComponent.call(this) || this; - _this.value = params.value || ''; - _this.size = params.size || 0; - _this.label = params.label || ''; - _this.preLabel = params.preLabel || ''; - _this.enable = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["isUnd"])(params.enable) ? true : params.enable; - _this.trigger = params.trigger && params.trigger.subscribe ? params.trigger : null; - _this.placeholder = params.placeholder || ''; - _this.labeled = !Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["isUnd"])(params.label); - _this.preLabeled = !Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["isUnd"])(params.preLabel); - _this.triggered = !Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["isUnd"])(params.trigger) && !!_this.trigger; - _this.classForTrigger = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(''); - _this.className = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].computed(function () { - var size = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].unwrap(_this.size), - suffixValue = _this.trigger ? ' ' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["trim"])('settings-saved-trigger-input ' + _this.classForTrigger()) : ''; - return (0 < size ? 'span' + size : '') + suffixValue; - }); - - if (!Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["isUnd"])(params.width) && params.element) { - var _context; - - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default()(_context = params.element).call(_context, 'input,select,textarea').css('width', params.width); - } - - _this.disposable.push(_this.className); - - if (_this.trigger) { - _this.setTriggerState(_this.trigger()); - - _this.disposable.push(_this.trigger.subscribe(_this.setTriggerState, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_this))); - } - - return _this; - } - - var _proto = AbstractInput.prototype; - - _proto.setTriggerState = function setTriggerState(value) { - switch (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["pInt"])(value)) { - case Common_Enums__WEBPACK_IMPORTED_MODULE_5__["SaveSettingsStep"].TrueResult: - this.classForTrigger('success'); - break; - - case Common_Enums__WEBPACK_IMPORTED_MODULE_5__["SaveSettingsStep"].FalseResult: - this.classForTrigger('error'); - break; - - default: - this.classForTrigger(''); - break; - } - }; - - return AbstractInput; -}(Component_Abstract__WEBPACK_IMPORTED_MODULE_6__[/* AbstractComponent */ "a"]); - - - -/***/ }), -/* 87 */ -/*!**********************************!*\ - !*** ./dev/Stores/Admin/Capa.js ***! - \**********************************/ -/*! exports provided: default */ -/*! exports used: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Storage/Settings */ 5); - - - - -var CapaAdminStore = /*#__PURE__*/function () { - function CapaAdminStore() { - this.additionalAccounts = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(false); - this.identities = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(false); - this.gravatar = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(false); - this.attachmentThumbnails = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(false); - this.sieve = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(false); - this.filters = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(false); - this.themes = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(true); - this.userBackground = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(false); - this.openPGP = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(false); - this.twoFactorAuth = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(false); - this.twoFactorAuthForce = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(false); - this.templates = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(false); - } - - var _proto = CapaAdminStore.prototype; - - _proto.populate = function populate() { - this.additionalAccounts(Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["capa"](Common_Enums__WEBPACK_IMPORTED_MODULE_1__["Capa"].AdditionalAccounts)); - this.identities(Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["capa"](Common_Enums__WEBPACK_IMPORTED_MODULE_1__["Capa"].Identities)); - this.gravatar(Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["capa"](Common_Enums__WEBPACK_IMPORTED_MODULE_1__["Capa"].Gravatar)); - this.attachmentThumbnails(Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["capa"](Common_Enums__WEBPACK_IMPORTED_MODULE_1__["Capa"].AttachmentThumbnails)); - this.sieve(Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["capa"](Common_Enums__WEBPACK_IMPORTED_MODULE_1__["Capa"].Sieve)); - this.filters(Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["capa"](Common_Enums__WEBPACK_IMPORTED_MODULE_1__["Capa"].Filters)); - this.themes(Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["capa"](Common_Enums__WEBPACK_IMPORTED_MODULE_1__["Capa"].Themes)); - this.userBackground(Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["capa"](Common_Enums__WEBPACK_IMPORTED_MODULE_1__["Capa"].UserBackground)); - this.openPGP(Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["capa"](Common_Enums__WEBPACK_IMPORTED_MODULE_1__["Capa"].OpenPGP)); - this.twoFactorAuth(Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["capa"](Common_Enums__WEBPACK_IMPORTED_MODULE_1__["Capa"].TwoFactor)); - this.twoFactorAuthForce(Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["capa"](Common_Enums__WEBPACK_IMPORTED_MODULE_1__["Capa"].TwoFactorForce)); - this.templates(Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["capa"](Common_Enums__WEBPACK_IMPORTED_MODULE_1__["Capa"].Templates)); - }; - - return CapaAdminStore; -}(); - -/* harmony default export */ __webpack_exports__["a"] = (new CapaAdminStore()); - -/***/ }), -/* 88 */ -/*!**********************************************************!*\ - !*** ./node_modules/core-js/internals/internal-state.js ***! - \**********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var NATIVE_WEAK_MAP = __webpack_require__(/*! ../internals/native-weak-map */ 180); -var global = __webpack_require__(/*! ../internals/global */ 27); -var isObject = __webpack_require__(/*! ../internals/is-object */ 44); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 48); -var objectHas = __webpack_require__(/*! ../internals/has */ 42); -var sharedKey = __webpack_require__(/*! ../internals/shared-key */ 107); -var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ 103); - -var WeakMap = global.WeakMap; -var set, get, has; - -var enforce = function (it) { - return has(it) ? get(it) : set(it, {}); -}; - -var getterFor = function (TYPE) { - return function (it) { - var state; - if (!isObject(it) || (state = get(it)).type !== TYPE) { - throw TypeError('Incompatible receiver, ' + TYPE + ' required'); - } return state; - }; -}; - -if (NATIVE_WEAK_MAP) { - var store = new WeakMap(); - var wmget = store.get; - var wmhas = store.has; - var wmset = store.set; - set = function (it, metadata) { - wmset.call(store, it, metadata); - return metadata; - }; - get = function (it) { - return wmget.call(store, it) || {}; - }; - has = function (it) { - return wmhas.call(store, it); - }; -} else { - var STATE = sharedKey('state'); - hiddenKeys[STATE] = true; - set = function (it, metadata) { - createNonEnumerableProperty(it, STATE, metadata); - return metadata; - }; - get = function (it) { - return objectHas(it, STATE) ? it[STATE] : {}; - }; - has = function (it) { - return objectHas(it, STATE); - }; -} - -module.exports = { - set: set, - get: get, - has: has, - enforce: enforce, - getterFor: getterFor -}; - - -/***/ }), -/* 89 */, -/* 90 */ -/*!*************************************!*\ - !*** ./dev/Stores/Admin/Package.js ***! - \*************************************/ -/*! exports provided: default */ -/*! exports used: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ko */ 1); - - -var PackageAdminStore = function PackageAdminStore() { - this.packages = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observableArray([]); - this.packages.loading = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(false).extend({ - throttle: 100 - }); - this.packagesReal = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(true); - this.packagesMainUpdatable = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(true); -}; - -/* harmony default export */ __webpack_exports__["a"] = (new PackageAdminStore()); - -/***/ }), -/* 91 */ -/*!******************************************************************************!*\ - !*** ./node_modules/core-js/internals/object-get-own-property-descriptor.js ***! - \******************************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 47); -var propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ 167); -var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ 92); -var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 72); -var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ 125); -var has = __webpack_require__(/*! ../internals/has */ 42); -var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ 126); - -var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - -// `Object.getOwnPropertyDescriptor` method -// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor -exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { - O = toIndexedObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return nativeGetOwnPropertyDescriptor(O, P); - } catch (error) { /* empty */ } - if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); -}; - - -/***/ }), -/* 92 */ -/*!**********************************************************************!*\ - !*** ./node_modules/core-js/internals/create-property-descriptor.js ***! - \**********************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - - -/***/ }), -/* 93 */ -/*!******************************************************!*\ - !*** ./node_modules/core-js/internals/set-global.js ***! - \******************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ../internals/global */ 27); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 48); - -module.exports = function (key, value) { - try { - createNonEnumerableProperty(global, key, value); - } catch (error) { - global[key] = value; - } return value; -}; - - -/***/ }), -/* 94 */ -/*!**********************************************************!*\ - !*** ./node_modules/core-js/internals/inspect-source.js ***! - \**********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var store = __webpack_require__(/*! ../internals/shared-store */ 127); - -var functionToString = Function.toString; - -// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper -if (typeof store.inspectSource != 'function') { - store.inspectSource = function (it) { - return functionToString.call(it); - }; -} - -module.exports = store.inspectSource; - - -/***/ }), -/* 95 */ -/*!*****************************************************************!*\ - !*** ./node_modules/core-js/internals/to-string-tag-support.js ***! - \*****************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); - -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -var test = {}; - -test[TO_STRING_TAG] = 'z'; - -module.exports = String(test) === '[object z]'; - - -/***/ }), -/* 96 */ -/*!******************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/to-indexed-object.js ***! - \******************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -// toObject with fallback for non-array-like ES3 strings -var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ 199); -var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ 200); - -module.exports = function (it) { - return IndexedObject(requireObjectCoercible(it)); -}; - - -/***/ }), -/* 97 */ -/*!*****************************************************!*\ - !*** ./node_modules/core-js-pure/internals/path.js ***! - \*****************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = {}; - - -/***/ }), -/* 98 */ -/*!********************************!*\ - !*** external "window.moment" ***! - \********************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = window.moment; - -/***/ }), -/* 99 */ -/*!************************************!*\ - !*** external "window.progressJs" ***! - \************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports) { - -module.exports = window.progressJs; - -/***/ }), -/* 100 */, -/* 101 */, -/* 102 */ -/*!*******************************************************************!*\ - !*** ./node_modules/core-js/internals/document-create-element.js ***! - \*******************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ../internals/global */ 27); -var isObject = __webpack_require__(/*! ../internals/is-object */ 44); - -var document = global.document; -// typeof document.createElement is 'object' in old IE -var EXISTS = isObject(document) && isObject(document.createElement); - -module.exports = function (it) { - return EXISTS ? document.createElement(it) : {}; -}; - - -/***/ }), -/* 103 */ -/*!*******************************************************!*\ - !*** ./node_modules/core-js/internals/hidden-keys.js ***! - \*******************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = {}; - - -/***/ }), -/* 104 */ -/*!*****************************************************************!*\ - !*** ./node_modules/core-js/internals/function-bind-context.js ***! - \*****************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var aFunction = __webpack_require__(/*! ../internals/a-function */ 67); - -// optional / simple context binding -module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - switch (length) { - case 0: return function () { - return fn.call(that); - }; - case 1: return function (a) { - return fn.call(that, a); - }; - case 2: return function (a, b) { - return fn.call(that, a, b); - }; - case 3: return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - return function (/* ...args */) { - return fn.apply(that, arguments); - }; -}; - - -/***/ }), -/* 105 */ -/*!*************************************************************!*\ - !*** ./node_modules/core-js/internals/engine-user-agent.js ***! - \*************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ 59); - -module.exports = getBuiltIn('navigator', 'userAgent') || ''; - - -/***/ }), -/* 106 */ -/*!******************************************************************!*\ - !*** ./node_modules/core-js/internals/new-promise-capability.js ***! - \******************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var aFunction = __webpack_require__(/*! ../internals/a-function */ 67); - -var PromiseCapability = function (C) { - var resolve, reject; - this.promise = new C(function ($$resolve, $$reject) { - if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); - resolve = $$resolve; - reject = $$reject; - }); - this.resolve = aFunction(resolve); - this.reject = aFunction(reject); -}; - -// 25.4.1.5 NewPromiseCapability(C) -module.exports.f = function (C) { - return new PromiseCapability(C); -}; - - -/***/ }), -/* 107 */ -/*!******************************************************!*\ - !*** ./node_modules/core-js/internals/shared-key.js ***! - \******************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var shared = __webpack_require__(/*! ../internals/shared */ 128); -var uid = __webpack_require__(/*! ../internals/uid */ 129); - -var keys = shared('keys'); - -module.exports = function (key) { - return keys[key] || (keys[key] = uid(key)); -}; - - -/***/ }), -/* 108 */ -/*!*********************************************************!*\ - !*** ./node_modules/core-js/internals/enum-bug-keys.js ***! - \*********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -// IE8- don't enum bug keys -module.exports = [ - 'constructor', - 'hasOwnProperty', - 'isPrototypeOf', - 'propertyIsEnumerable', - 'toLocaleString', - 'toString', - 'valueOf' -]; - - -/***/ }), -/* 109 */ -/*!*************************************************************!*\ - !*** ./node_modules/core-js/internals/set-to-string-tag.js ***! - \*************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var defineProperty = __webpack_require__(/*! ../internals/object-define-property */ 52).f; -var has = __webpack_require__(/*! ../internals/has */ 42); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); - -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); - -module.exports = function (it, TAG, STATIC) { - if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) { - defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG }); - } -}; - - -/***/ }), -/* 110 */ -/*!*******************************************************!*\ - !*** ./node_modules/core-js/internals/regexp-exec.js ***! - \*******************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var regexpFlags = __webpack_require__(/*! ./regexp-flags */ 173); -var stickyHelpers = __webpack_require__(/*! ./regexp-sticky-helpers */ 236); - -var nativeExec = RegExp.prototype.exec; -// This always refers to the native implementation, because the -// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js, -// which loads this file before patching the method. -var nativeReplace = String.prototype.replace; - -var patchedExec = nativeExec; - -var UPDATES_LAST_INDEX_WRONG = (function () { - var re1 = /a/; - var re2 = /b*/g; - nativeExec.call(re1, 'a'); - nativeExec.call(re2, 'a'); - return re1.lastIndex !== 0 || re2.lastIndex !== 0; -})(); - -var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET; - -// nonparticipating capturing group, copied from es5-shim's String#split patch. -var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; - -var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y; - -if (PATCH) { - patchedExec = function exec(str) { - var re = this; - var lastIndex, reCopy, match, i; - var sticky = UNSUPPORTED_Y && re.sticky; - var flags = regexpFlags.call(re); - var source = re.source; - var charsAdded = 0; - var strCopy = str; - - if (sticky) { - flags = flags.replace('y', ''); - if (flags.indexOf('g') === -1) { - flags += 'g'; - } - - strCopy = String(str).slice(re.lastIndex); - // Support anchored sticky behavior. - if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) { - source = '(?: ' + source + ')'; - strCopy = ' ' + strCopy; - charsAdded++; - } - // ^(? + rx + ) is needed, in combination with some str slicing, to - // simulate the 'y' flag. - reCopy = new RegExp('^(?:' + source + ')', flags); - } - - if (NPCG_INCLUDED) { - reCopy = new RegExp('^' + source + '$(?!\\s)', flags); - } - if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; - - match = nativeExec.call(sticky ? reCopy : re, strCopy); - - if (sticky) { - if (match) { - match.input = match.input.slice(charsAdded); - match[0] = match[0].slice(charsAdded); - match.index = re.lastIndex; - re.lastIndex += match[0].length; - } else re.lastIndex = 0; - } else if (UPDATES_LAST_INDEX_WRONG && match) { - re.lastIndex = re.global ? match.index + match[0].length : lastIndex; - } - if (NPCG_INCLUDED && match && match.length > 1) { - // Fix browsers whose `exec` methods don't consistently return `undefined` - // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/ - nativeReplace.call(match[0], reCopy, function () { - for (i = 1; i < arguments.length - 2; i++) { - if (arguments[i] === undefined) match[i] = undefined; - } - }); - } - - return match; - }; -} - -module.exports = patchedExec; - - -/***/ }), -/* 111 */ -/*!*************************************************************!*\ - !*** ./node_modules/core-js/modules/es.regexp.to-string.js ***! - \*************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var redefine = __webpack_require__(/*! ../internals/redefine */ 53); -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); -var fails = __webpack_require__(/*! ../internals/fails */ 36); -var flags = __webpack_require__(/*! ../internals/regexp-flags */ 173); - -var TO_STRING = 'toString'; -var RegExpPrototype = RegExp.prototype; -var nativeToString = RegExpPrototype[TO_STRING]; - -var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; }); -// FF44- RegExp#toString has a wrong name -var INCORRECT_NAME = nativeToString.name != TO_STRING; - -// `RegExp.prototype.toString` method -// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring -if (NOT_GENERIC || INCORRECT_NAME) { - redefine(RegExp.prototype, TO_STRING, function toString() { - var R = anObject(this); - var p = String(R.source); - var rf = R.flags; - var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf); - return '/' + p + '/' + f; - }, { unsafe: true }); -} - - -/***/ }), -/* 112 */ -/*!**********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/to-length.js ***! - \**********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(/*! ../internals/to-integer */ 202); - -var min = Math.min; - -// `ToLength` abstract operation -// https://tc39.es/ecma262/#sec-tolength -module.exports = function (argument) { - return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 -}; - - -/***/ }), -/* 113 */ -/*!*****************************!*\ - !*** ./dev/Common/Jassl.js ***! - \*****************************/ -/*! exports provided: jassl */ -/*! exports used: jassl */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return jassl; }); -/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.object.to-string */ 63); -/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_promise__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.promise */ 121); -/* harmony import */ var core_js_modules_es_promise__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_promise__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_2__); - - - // let rainloopCaches = window.caches && window.caches.open ? window.caches : null; - -/** - * @param {src} src - * @param {boolean} async = false - * @returns {Promise} - */ - -function jassl(src, async) { - if (async === void 0) { - async = false; - } - - if (!window__WEBPACK_IMPORTED_MODULE_2___default.a.Promise || !window__WEBPACK_IMPORTED_MODULE_2___default.a.Promise.all) { - throw new Error('Promises are not available your environment.'); - } - - if (!src) { - throw new Error('src should not be empty.'); - } - - return new window__WEBPACK_IMPORTED_MODULE_2___default.a.Promise(function (resolve, reject) { - var element = window__WEBPACK_IMPORTED_MODULE_2___default.a.document.createElement('script'); - - element.onload = function () { - resolve(src); - }; - - element.onerror = function () { - reject(new Error(src)); - }; - - element.async = true === async; - element.src = src; - window__WEBPACK_IMPORTED_MODULE_2___default.a.document.body.appendChild(element); - }) - /* .then((s) => { - const found = s && rainloopCaches ? s.match(/rainloop\/v\/([^\/]+)\/static\//) : null; - if (found && found[1]) - { - rainloopCaches.open('rainloop-offline-' + found[1]).then( - (cache) => cache.add(s) - ).catch(() => { - rainloopCaches = null; - }); - } - return s; - })*/ - ; -} - -/***/ }), -/* 114 */ -/*!*******************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/values.js ***! - \*******************************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/stable/instance/values */ 298); - -/***/ }), -/* 115 */ -/*!*****************************!*\ - !*** ./dev/Stores/Theme.js ***! - \*****************************/ -/*! exports provided: default */ -/*! exports used: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Storage/Settings */ 5); - - - - -var ThemeStore = /*#__PURE__*/function () { - function ThemeStore() { - this.themes = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observableArray([]); - this.themeBackgroundName = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(''); - this.themeBackgroundHash = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(''); - this.theme = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable('').extend({ - limitedList: this.themes - }); - } - - var _proto = ThemeStore.prototype; - - _proto.populate = function populate() { - var themes = Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["appSettingsGet"]('themes'); - this.themes(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_1__["isArray"])(themes) ? themes : []); - this.theme(Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["settingsGet"]('Theme')); - this.themeBackgroundName(Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["settingsGet"]('UserBackgroundName')); - this.themeBackgroundHash(Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["settingsGet"]('UserBackgroundHash')); - }; - - return ThemeStore; -}(); - -/* harmony default export */ __webpack_exports__["a"] = (new ThemeStore()); - -/***/ }), -/* 116 */, -/* 117 */ -/*!************************************!*\ - !*** ./dev/Stores/Admin/Plugin.js ***! - \************************************/ -/*! exports provided: default */ -/*! exports used: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ko */ 1); - - -var PluginAdminStore = function PluginAdminStore() { - this.plugins = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observableArray([]); - this.plugins.loading = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(false).extend({ - throttle: 100 - }); - this.plugins.error = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(''); -}; - -/* harmony default export */ __webpack_exports__["a"] = (new PluginAdminStore()); - -/***/ }), -/* 118 */ -/*!*************************************!*\ - !*** ./dev/Stores/Admin/License.js ***! - \*************************************/ -/*! exports provided: default */ -/*! exports used: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ko */ 1); - - -var LicenseAdminStore = function LicenseAdminStore() { - this.licensing = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(false); - this.licensingProcess = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(false); - this.licenseValid = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(false); - this.licenseExpired = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(0); - this.licenseError = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(''); - this.licenseTrigger = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(false); -}; - -/* harmony default export */ __webpack_exports__["a"] = (new LicenseAdminStore()); - -/***/ }), -/* 119 */ -/*!**********************************************************!*\ - !*** ./node_modules/core-js/internals/indexed-object.js ***! - \**********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var fails = __webpack_require__(/*! ../internals/fails */ 36); -var classof = __webpack_require__(/*! ../internals/classof-raw */ 49); - -var split = ''.split; - -// fallback for non-array-like ES3 and non-enumerable old V8 strings -module.exports = fails(function () { - // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 - // eslint-disable-next-line no-prototype-builtins - return !Object('z').propertyIsEnumerable(0); -}) ? function (it) { - return classof(it) == 'String' ? split.call(it, '') : Object(it); -} : Object; - - -/***/ }), -/* 120 */ -/*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/to-object.js ***! - \*****************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ 56); - -// `ToObject` abstract operation -// https://tc39.github.io/ecma262/#sec-toobject -module.exports = function (argument) { - return Object(requireObjectCoercible(argument)); -}; - - -/***/ }), -/* 121 */ -/*!****************************************************!*\ - !*** ./node_modules/core-js/modules/es.promise.js ***! - \****************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(/*! ../internals/export */ 50); -var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ 80); -var global = __webpack_require__(/*! ../internals/global */ 27); -var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ 59); -var NativePromise = __webpack_require__(/*! ../internals/native-promise-constructor */ 171); -var redefine = __webpack_require__(/*! ../internals/redefine */ 53); -var redefineAll = __webpack_require__(/*! ../internals/redefine-all */ 189); -var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ 109); -var setSpecies = __webpack_require__(/*! ../internals/set-species */ 190); -var isObject = __webpack_require__(/*! ../internals/is-object */ 44); -var aFunction = __webpack_require__(/*! ../internals/a-function */ 67); -var anInstance = __webpack_require__(/*! ../internals/an-instance */ 191); -var classof = __webpack_require__(/*! ../internals/classof-raw */ 49); -var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ 94); -var iterate = __webpack_require__(/*! ../internals/iterate */ 143); -var checkCorrectnessOfIteration = __webpack_require__(/*! ../internals/check-correctness-of-iteration */ 195); -var speciesConstructor = __webpack_require__(/*! ../internals/species-constructor */ 144); -var task = __webpack_require__(/*! ../internals/task */ 133).set; -var microtask = __webpack_require__(/*! ../internals/microtask */ 196); -var promiseResolve = __webpack_require__(/*! ../internals/promise-resolve */ 172); -var hostReportErrors = __webpack_require__(/*! ../internals/host-report-errors */ 197); -var newPromiseCapabilityModule = __webpack_require__(/*! ../internals/new-promise-capability */ 106); -var perform = __webpack_require__(/*! ../internals/perform */ 145); -var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ 88); -var isForced = __webpack_require__(/*! ../internals/is-forced */ 130); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); -var V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ 153); - -var SPECIES = wellKnownSymbol('species'); -var PROMISE = 'Promise'; -var getInternalState = InternalStateModule.get; -var setInternalState = InternalStateModule.set; -var getInternalPromiseState = InternalStateModule.getterFor(PROMISE); -var PromiseConstructor = NativePromise; -var TypeError = global.TypeError; -var document = global.document; -var process = global.process; -var $fetch = getBuiltIn('fetch'); -var newPromiseCapability = newPromiseCapabilityModule.f; -var newGenericPromiseCapability = newPromiseCapability; -var IS_NODE = classof(process) == 'process'; -var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent); -var UNHANDLED_REJECTION = 'unhandledrejection'; -var REJECTION_HANDLED = 'rejectionhandled'; -var PENDING = 0; -var FULFILLED = 1; -var REJECTED = 2; -var HANDLED = 1; -var UNHANDLED = 2; -var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; - -var FORCED = isForced(PROMISE, function () { - var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor); - if (!GLOBAL_CORE_JS_PROMISE) { - // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables - // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 - // We can't detect it synchronously, so just check versions - if (V8_VERSION === 66) return true; - // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test - if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true; - } - // We need Promise#finally in the pure version for preventing prototype pollution - if (IS_PURE && !PromiseConstructor.prototype['finally']) return true; - // We can't use @@species feature detection in V8 since it causes - // deoptimization and performance degradation - // https://github.com/zloirock/core-js/issues/679 - if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false; - // Detect correctness of subclassing with @@species support - var promise = PromiseConstructor.resolve(1); - var FakePromise = function (exec) { - exec(function () { /* empty */ }, function () { /* empty */ }); - }; - var constructor = promise.constructor = {}; - constructor[SPECIES] = FakePromise; - return !(promise.then(function () { /* empty */ }) instanceof FakePromise); -}); - -var INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) { - PromiseConstructor.all(iterable)['catch'](function () { /* empty */ }); -}); - -// helpers -var isThenable = function (it) { - var then; - return isObject(it) && typeof (then = it.then) == 'function' ? then : false; -}; - -var notify = function (promise, state, isReject) { - if (state.notified) return; - state.notified = true; - var chain = state.reactions; - microtask(function () { - var value = state.value; - var ok = state.state == FULFILLED; - var index = 0; - // variable length - can't use forEach - while (chain.length > index) { - var reaction = chain[index++]; - var handler = ok ? reaction.ok : reaction.fail; - var resolve = reaction.resolve; - var reject = reaction.reject; - var domain = reaction.domain; - var result, then, exited; - try { - if (handler) { - if (!ok) { - if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state); - state.rejection = HANDLED; - } - if (handler === true) result = value; - else { - if (domain) domain.enter(); - result = handler(value); // can throw - if (domain) { - domain.exit(); - exited = true; - } - } - if (result === reaction.promise) { - reject(TypeError('Promise-chain cycle')); - } else if (then = isThenable(result)) { - then.call(result, resolve, reject); - } else resolve(result); - } else reject(value); - } catch (error) { - if (domain && !exited) domain.exit(); - reject(error); - } - } - state.reactions = []; - state.notified = false; - if (isReject && !state.rejection) onUnhandled(promise, state); - }); -}; - -var dispatchEvent = function (name, promise, reason) { - var event, handler; - if (DISPATCH_EVENT) { - event = document.createEvent('Event'); - event.promise = promise; - event.reason = reason; - event.initEvent(name, false, true); - global.dispatchEvent(event); - } else event = { promise: promise, reason: reason }; - if (handler = global['on' + name]) handler(event); - else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); -}; - -var onUnhandled = function (promise, state) { - task.call(global, function () { - var value = state.value; - var IS_UNHANDLED = isUnhandled(state); - var result; - if (IS_UNHANDLED) { - result = perform(function () { - if (IS_NODE) { - process.emit('unhandledRejection', value, promise); - } else dispatchEvent(UNHANDLED_REJECTION, promise, value); - }); - // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should - state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; - if (result.error) throw result.value; - } - }); -}; - -var isUnhandled = function (state) { - return state.rejection !== HANDLED && !state.parent; -}; - -var onHandleUnhandled = function (promise, state) { - task.call(global, function () { - if (IS_NODE) { - process.emit('rejectionHandled', promise); - } else dispatchEvent(REJECTION_HANDLED, promise, state.value); - }); -}; - -var bind = function (fn, promise, state, unwrap) { - return function (value) { - fn(promise, state, value, unwrap); - }; -}; - -var internalReject = function (promise, state, value, unwrap) { - if (state.done) return; - state.done = true; - if (unwrap) state = unwrap; - state.value = value; - state.state = REJECTED; - notify(promise, state, true); -}; - -var internalResolve = function (promise, state, value, unwrap) { - if (state.done) return; - state.done = true; - if (unwrap) state = unwrap; - try { - if (promise === value) throw TypeError("Promise can't be resolved itself"); - var then = isThenable(value); - if (then) { - microtask(function () { - var wrapper = { done: false }; - try { - then.call(value, - bind(internalResolve, promise, wrapper, state), - bind(internalReject, promise, wrapper, state) - ); - } catch (error) { - internalReject(promise, wrapper, error, state); - } - }); - } else { - state.value = value; - state.state = FULFILLED; - notify(promise, state, false); - } - } catch (error) { - internalReject(promise, { done: false }, error, state); - } -}; - -// constructor polyfill -if (FORCED) { - // 25.4.3.1 Promise(executor) - PromiseConstructor = function Promise(executor) { - anInstance(this, PromiseConstructor, PROMISE); - aFunction(executor); - Internal.call(this); - var state = getInternalState(this); - try { - executor(bind(internalResolve, this, state), bind(internalReject, this, state)); - } catch (error) { - internalReject(this, state, error); - } - }; - // eslint-disable-next-line no-unused-vars - Internal = function Promise(executor) { - setInternalState(this, { - type: PROMISE, - done: false, - notified: false, - parent: false, - reactions: [], - rejection: false, - state: PENDING, - value: undefined - }); - }; - Internal.prototype = redefineAll(PromiseConstructor.prototype, { - // `Promise.prototype.then` method - // https://tc39.github.io/ecma262/#sec-promise.prototype.then - then: function then(onFulfilled, onRejected) { - var state = getInternalPromiseState(this); - var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor)); - reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; - reaction.fail = typeof onRejected == 'function' && onRejected; - reaction.domain = IS_NODE ? process.domain : undefined; - state.parent = true; - state.reactions.push(reaction); - if (state.state != PENDING) notify(this, state, false); - return reaction.promise; - }, - // `Promise.prototype.catch` method - // https://tc39.github.io/ecma262/#sec-promise.prototype.catch - 'catch': function (onRejected) { - return this.then(undefined, onRejected); - } - }); - OwnPromiseCapability = function () { - var promise = new Internal(); - var state = getInternalState(promise); - this.promise = promise; - this.resolve = bind(internalResolve, promise, state); - this.reject = bind(internalReject, promise, state); - }; - newPromiseCapabilityModule.f = newPromiseCapability = function (C) { - return C === PromiseConstructor || C === PromiseWrapper - ? new OwnPromiseCapability(C) - : newGenericPromiseCapability(C); - }; - - if (!IS_PURE && typeof NativePromise == 'function') { - nativeThen = NativePromise.prototype.then; - - // wrap native Promise#then for native async functions - redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) { - var that = this; - return new PromiseConstructor(function (resolve, reject) { - nativeThen.call(that, resolve, reject); - }).then(onFulfilled, onRejected); - // https://github.com/zloirock/core-js/issues/640 - }, { unsafe: true }); - - // wrap fetch result - if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, { - // eslint-disable-next-line no-unused-vars - fetch: function fetch(input /* , init */) { - return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments)); - } - }); - } -} - -$({ global: true, wrap: true, forced: FORCED }, { - Promise: PromiseConstructor -}); - -setToStringTag(PromiseConstructor, PROMISE, false, true); -setSpecies(PROMISE); - -PromiseWrapper = getBuiltIn(PROMISE); - -// statics -$({ target: PROMISE, stat: true, forced: FORCED }, { - // `Promise.reject` method - // https://tc39.github.io/ecma262/#sec-promise.reject - reject: function reject(r) { - var capability = newPromiseCapability(this); - capability.reject.call(undefined, r); - return capability.promise; - } -}); - -$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, { - // `Promise.resolve` method - // https://tc39.github.io/ecma262/#sec-promise.resolve - resolve: function resolve(x) { - return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x); - } -}); - -$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, { - // `Promise.all` method - // https://tc39.github.io/ecma262/#sec-promise.all - all: function all(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var resolve = capability.resolve; - var reject = capability.reject; - var result = perform(function () { - var $promiseResolve = aFunction(C.resolve); - var values = []; - var counter = 0; - var remaining = 1; - iterate(iterable, function (promise) { - var index = counter++; - var alreadyCalled = false; - values.push(undefined); - remaining++; - $promiseResolve.call(C, promise).then(function (value) { - if (alreadyCalled) return; - alreadyCalled = true; - values[index] = value; - --remaining || resolve(values); - }, reject); - }); - --remaining || resolve(values); - }); - if (result.error) reject(result.value); - return capability.promise; - }, - // `Promise.race` method - // https://tc39.github.io/ecma262/#sec-promise.race - race: function race(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var reject = capability.reject; - var result = perform(function () { - var $promiseResolve = aFunction(C.resolve); - iterate(iterable, function (promise) { - $promiseResolve.call(C, promise).then(capability.resolve, reject); - }); - }); - if (result.error) reject(result.value); - return capability.promise; - } -}); - - -/***/ }), -/* 122 */ -/*!**********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/to-object.js ***! - \**********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ 200); - -// `ToObject` abstract operation -// https://tc39.es/ecma262/#sec-toobject -module.exports = function (argument) { - return Object(requireObjectCoercible(argument)); -}; - - -/***/ }), -/* 123 */, -/* 124 */ -/*!***********************************!*\ - !*** (webpack)/buildin/global.js ***! - \***********************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -var g; - -// This works in non-strict mode -g = (function() { - return this; -})(); - -try { - // This works if eval is allowed (see CSP) - g = g || new Function("return this")(); -} catch (e) { - // This works if the window reference is available - if (typeof window === "object") g = window; -} - -// g can still be undefined, but nothing to do about it... -// We return undefined, instead of nothing here, so it's -// easier to handle this case. if(!global) { ...} - -module.exports = g; - - -/***/ }), -/* 125 */ -/*!********************************************************!*\ - !*** ./node_modules/core-js/internals/to-primitive.js ***! - \********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(/*! ../internals/is-object */ 44); - -// `ToPrimitive` abstract operation -// https://tc39.github.io/ecma262/#sec-toprimitive -// instead of the ES6 spec version, we didn't implement @@toPrimitive case -// and the second argument - flag - preferred type is a string -module.exports = function (input, PREFERRED_STRING) { - if (!isObject(input)) return input; - var fn, val; - if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; - if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val; - if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; - throw TypeError("Can't convert object to primitive value"); -}; - - -/***/ }), -/* 126 */ -/*!**********************************************************!*\ - !*** ./node_modules/core-js/internals/ie8-dom-define.js ***! - \**********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 47); -var fails = __webpack_require__(/*! ../internals/fails */ 36); -var createElement = __webpack_require__(/*! ../internals/document-create-element */ 102); - -// Thank's IE8 for his funny defineProperty -module.exports = !DESCRIPTORS && !fails(function () { - return Object.defineProperty(createElement('div'), 'a', { - get: function () { return 7; } - }).a != 7; -}); - - -/***/ }), -/* 127 */ -/*!********************************************************!*\ - !*** ./node_modules/core-js/internals/shared-store.js ***! - \********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ../internals/global */ 27); -var setGlobal = __webpack_require__(/*! ../internals/set-global */ 93); - -var SHARED = '__core-js_shared__'; -var store = global[SHARED] || setGlobal(SHARED, {}); - -module.exports = store; - - -/***/ }), -/* 128 */ -/*!**************************************************!*\ - !*** ./node_modules/core-js/internals/shared.js ***! - \**************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ 80); -var store = __webpack_require__(/*! ../internals/shared-store */ 127); - -(module.exports = function (key, value) { - return store[key] || (store[key] = value !== undefined ? value : {}); -})('versions', []).push({ - version: '3.6.4', - mode: IS_PURE ? 'pure' : 'global', - copyright: '© 2020 Denis Pushkarev (zloirock.ru)' -}); - - -/***/ }), -/* 129 */ -/*!***********************************************!*\ - !*** ./node_modules/core-js/internals/uid.js ***! - \***********************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -var id = 0; -var postfix = Math.random(); - -module.exports = function (key) { - return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); -}; - - -/***/ }), -/* 130 */ -/*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/is-forced.js ***! - \*****************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var fails = __webpack_require__(/*! ../internals/fails */ 36); - -var replacement = /#|\.prototype\./; - -var isForced = function (feature, detection) { - var value = data[normalize(feature)]; - return value == POLYFILL ? true - : value == NATIVE ? false - : typeof detection == 'function' ? fails(detection) - : !!detection; -}; - -var normalize = isForced.normalize = function (string) { - return String(string).replace(replacement, '.').toLowerCase(); -}; - -var data = isForced.data = {}; -var NATIVE = isForced.NATIVE = 'N'; -var POLYFILL = isForced.POLYFILL = 'P'; - -module.exports = isForced; - - -/***/ }), -/* 131 */ -/*!*********************************************************!*\ - !*** ./node_modules/core-js/internals/native-symbol.js ***! - \*********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var fails = __webpack_require__(/*! ../internals/fails */ 36); - -module.exports = !!Object.getOwnPropertySymbols && !fails(function () { - // Chrome 38 Symbol has incorrect toString conversion - // eslint-disable-next-line no-undef - return !String(Symbol()); -}); - - -/***/ }), -/* 132 */ -/*!***************************************************!*\ - !*** ./node_modules/core-js/internals/classof.js ***! - \***************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ 95); -var classofRaw = __webpack_require__(/*! ../internals/classof-raw */ 49); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); - -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -// ES3 wrong here -var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; - -// fallback for IE11 Script Access Denied error -var tryGet = function (it, key) { - try { - return it[key]; - } catch (error) { /* empty */ } -}; - -// getting tag from ES6+ `Object.prototype.toString` -module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { - var O, tag, result; - return it === undefined ? 'Undefined' : it === null ? 'Null' - // @@toStringTag case - : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag - // builtinTag case - : CORRECT_ARGUMENTS ? classofRaw(O) - // ES3 arguments fallback - : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result; -}; - - -/***/ }), -/* 133 */ -/*!************************************************!*\ - !*** ./node_modules/core-js/internals/task.js ***! - \************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ../internals/global */ 27); -var fails = __webpack_require__(/*! ../internals/fails */ 36); -var classof = __webpack_require__(/*! ../internals/classof-raw */ 49); -var bind = __webpack_require__(/*! ../internals/function-bind-context */ 104); -var html = __webpack_require__(/*! ../internals/html */ 142); -var createElement = __webpack_require__(/*! ../internals/document-create-element */ 102); -var IS_IOS = __webpack_require__(/*! ../internals/engine-is-ios */ 134); - -var location = global.location; -var set = global.setImmediate; -var clear = global.clearImmediate; -var process = global.process; -var MessageChannel = global.MessageChannel; -var Dispatch = global.Dispatch; -var counter = 0; -var queue = {}; -var ONREADYSTATECHANGE = 'onreadystatechange'; -var defer, channel, port; - -var run = function (id) { - // eslint-disable-next-line no-prototype-builtins - if (queue.hasOwnProperty(id)) { - var fn = queue[id]; - delete queue[id]; - fn(); - } -}; - -var runner = function (id) { - return function () { - run(id); - }; -}; - -var listener = function (event) { - run(event.data); -}; - -var post = function (id) { - // old engines have not location.origin - global.postMessage(id + '', location.protocol + '//' + location.host); -}; - -// Node.js 0.9+ & IE10+ has setImmediate, otherwise: -if (!set || !clear) { - set = function setImmediate(fn) { - var args = []; - var i = 1; - while (arguments.length > i) args.push(arguments[i++]); - queue[++counter] = function () { - // eslint-disable-next-line no-new-func - (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args); - }; - defer(counter); - return counter; - }; - clear = function clearImmediate(id) { - delete queue[id]; - }; - // Node.js 0.8- - if (classof(process) == 'process') { - defer = function (id) { - process.nextTick(runner(id)); - }; - // Sphere (JS game engine) Dispatch API - } else if (Dispatch && Dispatch.now) { - defer = function (id) { - Dispatch.now(runner(id)); - }; - // Browsers with MessageChannel, includes WebWorkers - // except iOS - https://github.com/zloirock/core-js/issues/624 - } else if (MessageChannel && !IS_IOS) { - channel = new MessageChannel(); - port = channel.port2; - channel.port1.onmessage = listener; - defer = bind(port.postMessage, port, 1); - // Browsers with postMessage, skip WebWorkers - // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' - } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post)) { - defer = post; - global.addEventListener('message', listener, false); - // IE8- - } else if (ONREADYSTATECHANGE in createElement('script')) { - defer = function (id) { - html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { - html.removeChild(this); - run(id); - }; - }; - // Rest old browsers - } else { - defer = function (id) { - setTimeout(runner(id), 0); - }; - } -} - -module.exports = { - set: set, - clear: clear -}; - - -/***/ }), -/* 134 */ -/*!*********************************************************!*\ - !*** ./node_modules/core-js/internals/engine-is-ios.js ***! - \*********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ 105); - -module.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent); - - -/***/ }), -/* 135 */ -/*!******************************************************************************!*\ - !*** ./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js ***! - \******************************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -// TODO: Remove from `core-js@4` since it's moved to entry points -__webpack_require__(/*! ../modules/es.regexp.exec */ 45); -var redefine = __webpack_require__(/*! ../internals/redefine */ 53); -var fails = __webpack_require__(/*! ../internals/fails */ 36); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); -var regexpExec = __webpack_require__(/*! ../internals/regexp-exec */ 110); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 48); - -var SPECIES = wellKnownSymbol('species'); - -var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { - // #replace needs built-in support for named groups. - // #match works fine because it just return the exec results, even if it has - // a "grops" property. - var re = /./; - re.exec = function () { - var result = []; - result.groups = { a: '7' }; - return result; - }; - return ''.replace(re, '$') !== '7'; -}); - -// IE <= 11 replaces $0 with the whole match, as if it was $& -// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 -var REPLACE_KEEPS_$0 = (function () { - return 'a'.replace(/./, '$0') === '$0'; -})(); - -var REPLACE = wellKnownSymbol('replace'); -// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string -var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () { - if (/./[REPLACE]) { - return /./[REPLACE]('a', '$0') === ''; - } - return false; -})(); - -// Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec -// Weex JS has frozen built-in prototypes, so use try / catch wrapper -var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () { - var re = /(?:)/; - var originalExec = re.exec; - re.exec = function () { return originalExec.apply(this, arguments); }; - var result = 'ab'.split(re); - return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b'; -}); - -module.exports = function (KEY, length, exec, sham) { - var SYMBOL = wellKnownSymbol(KEY); - - var DELEGATES_TO_SYMBOL = !fails(function () { - // String methods call symbol-named RegEp methods - var O = {}; - O[SYMBOL] = function () { return 7; }; - return ''[KEY](O) != 7; - }); - - var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () { - // Symbol-named RegExp methods call .exec - var execCalled = false; - var re = /a/; - - if (KEY === 'split') { - // We can't use real regex here since it causes deoptimization - // and serious performance degradation in V8 - // https://github.com/zloirock/core-js/issues/306 - re = {}; - // RegExp[@@split] doesn't call the regex's exec method, but first creates - // a new one. We need to return the patched regex when creating the new one. - re.constructor = {}; - re.constructor[SPECIES] = function () { return re; }; - re.flags = ''; - re[SYMBOL] = /./[SYMBOL]; - } - - re.exec = function () { execCalled = true; return null; }; - - re[SYMBOL](''); - return !execCalled; - }); - - if ( - !DELEGATES_TO_SYMBOL || - !DELEGATES_TO_EXEC || - (KEY === 'replace' && !( - REPLACE_SUPPORTS_NAMED_GROUPS && - REPLACE_KEEPS_$0 && - !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE - )) || - (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC) - ) { - var nativeRegExpMethod = /./[SYMBOL]; - var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { - if (regexp.exec === regexpExec) { - if (DELEGATES_TO_SYMBOL && !forceStringMethod) { - // The native String method already delegates to @@method (this - // polyfilled function), leasing to infinite recursion. - // We avoid it by directly calling the native @@method method. - return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) }; - } - return { done: true, value: nativeMethod.call(str, regexp, arg2) }; - } - return { done: false }; - }, { - REPLACE_KEEPS_$0: REPLACE_KEEPS_$0, - REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE - }); - var stringMethod = methods[0]; - var regexMethod = methods[1]; - - redefine(String.prototype, KEY, stringMethod); - redefine(RegExp.prototype, SYMBOL, length == 2 - // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue) - // 21.2.5.11 RegExp.prototype[@@split](string, limit) - ? function (string, arg) { return regexMethod.call(string, this, arg); } - // 21.2.5.6 RegExp.prototype[@@match](string) - // 21.2.5.9 RegExp.prototype[@@search](string) - : function (string) { return regexMethod.call(string, this); } - ); - } - - if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true); -}; - - -/***/ }), -/* 136 */ -/*!****************************************************************!*\ - !*** ./node_modules/core-js/internals/regexp-exec-abstract.js ***! - \****************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var classof = __webpack_require__(/*! ./classof-raw */ 49); -var regexpExec = __webpack_require__(/*! ./regexp-exec */ 110); - -// `RegExpExec` abstract operation -// https://tc39.github.io/ecma262/#sec-regexpexec -module.exports = function (R, S) { - var exec = R.exec; - if (typeof exec === 'function') { - var result = exec.call(R, S); - if (typeof result !== 'object') { - throw TypeError('RegExp exec method returned something other than an Object or null'); - } - return result; - } - - if (classof(R) !== 'RegExp') { - throw TypeError('RegExp#exec called on incompatible receiver'); - } - - return regexpExec.call(R, S); -}; - - - -/***/ }), -/* 137 */ -/*!***********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-define-property.js ***! - \***********************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 76); -var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ 239); -var anObject = __webpack_require__(/*! ../internals/an-object */ 157); -var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ 201); - -var nativeDefineProperty = Object.defineProperty; - -// `Object.defineProperty` method -// https://tc39.es/ecma262/#sec-object.defineproperty -exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return nativeDefineProperty(O, P, Attributes); - } catch (error) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; - - -/***/ }), -/* 138 */ -/*!*************************************!*\ - !*** ./dev/Knoin/AbstractScreen.js ***! - \*************************************/ -/*! exports provided: AbstractScreen */ -/*! exports used: AbstractScreen */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AbstractScreen; }); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/for-each */ 70); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/bind */ 26); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/defineProperty */ 17); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var crossroads__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! crossroads */ 164); -/* harmony import */ var crossroads__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(crossroads__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Utils */ 2); - - - - - - -var AbstractScreen = /*#__PURE__*/function () { - function AbstractScreen(screenName, viewModels) { - if (viewModels === void 0) { - viewModels = []; - } - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(this, "oCross", null); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(this, "sScreenName", void 0); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(this, "aViewModels", void 0); - - this.sScreenName = screenName; - this.aViewModels = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["isArray"])(viewModels) ? viewModels : []; - } - /** - * @returns {Array} - */ - - - var _proto = AbstractScreen.prototype; - - _proto.viewModels = function viewModels() { - return this.aViewModels; - } - /** - * @returns {string} - */ - ; - - _proto.screenName = function screenName() { - return this.sScreenName; - } - /** - * @returns {?Array)} - */ - ; - - _proto.routes = function routes() { - return null; - } - /** - * @returns {?Object} - */ - ; - - _proto.__cross = function __cross() { - return this.oCross; - } - /** - * @returns {void} - */ - ; - - _proto.__start = function __start() { - var route = null, - fMatcher = null; - var routes = this.routes(); - - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["isNonEmptyArray"])(routes)) { - fMatcher = _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_3___default.a).call(___WEBPACK_IMPORTED_MODULE_3___default.a, this.onRoute || Common_Utils__WEBPACK_IMPORTED_MODULE_5__["noop"], this); - route = crossroads__WEBPACK_IMPORTED_MODULE_4___default.a.create(); - - _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_0___default()(routes).call(routes, function (item) { - if (item && route) { - route.addRoute(item[0], fMatcher).rules = item[1]; - } - }); - - this.oCross = route; - } - }; - - return AbstractScreen; -}(); - -/***/ }), -/* 139 */ -/*!*****************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/trim.js ***! - \*****************************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/stable/instance/trim */ 339); - -/***/ }), -/* 140 */ -/*!*****************************!*\ - !*** external "window.ssm" ***! - \*****************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports) { - -module.exports = window.ssm; - -/***/ }), -/* 141 */ -/*!****************************************************************!*\ - !*** ./node_modules/core-js/internals/object-keys-internal.js ***! - \****************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var has = __webpack_require__(/*! ../internals/has */ 42); -var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 72); -var indexOf = __webpack_require__(/*! ../internals/array-includes */ 168).indexOf; -var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ 103); - -module.exports = function (object, names) { - var O = toIndexedObject(object); - var i = 0; - var result = []; - var key; - for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while (names.length > i) if (has(O, key = names[i++])) { - ~indexOf(result, key) || result.push(key); - } - return result; -}; - - -/***/ }), -/* 142 */ -/*!************************************************!*\ - !*** ./node_modules/core-js/internals/html.js ***! - \************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ 59); - -module.exports = getBuiltIn('document', 'documentElement'); - - -/***/ }), -/* 143 */ -/*!***************************************************!*\ - !*** ./node_modules/core-js/internals/iterate.js ***! - \***************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); -var isArrayIteratorMethod = __webpack_require__(/*! ../internals/is-array-iterator-method */ 192); -var toLength = __webpack_require__(/*! ../internals/to-length */ 73); -var bind = __webpack_require__(/*! ../internals/function-bind-context */ 104); -var getIteratorMethod = __webpack_require__(/*! ../internals/get-iterator-method */ 193); -var callWithSafeIterationClosing = __webpack_require__(/*! ../internals/call-with-safe-iteration-closing */ 194); - -var Result = function (stopped, result) { - this.stopped = stopped; - this.result = result; -}; - -var iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) { - var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1); - var iterator, iterFn, index, length, result, next, step; - - if (IS_ITERATOR) { - iterator = iterable; - } else { - iterFn = getIteratorMethod(iterable); - if (typeof iterFn != 'function') throw TypeError('Target is not iterable'); - // optimisation for array iterators - if (isArrayIteratorMethod(iterFn)) { - for (index = 0, length = toLength(iterable.length); length > index; index++) { - result = AS_ENTRIES - ? boundFunction(anObject(step = iterable[index])[0], step[1]) - : boundFunction(iterable[index]); - if (result && result instanceof Result) return result; - } return new Result(false); - } - iterator = iterFn.call(iterable); - } - - next = iterator.next; - while (!(step = next.call(iterator)).done) { - result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES); - if (typeof result == 'object' && result && result instanceof Result) return result; - } return new Result(false); -}; - -iterate.stop = function (result) { - return new Result(true, result); -}; - - -/***/ }), -/* 144 */ -/*!***************************************************************!*\ - !*** ./node_modules/core-js/internals/species-constructor.js ***! - \***************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); -var aFunction = __webpack_require__(/*! ../internals/a-function */ 67); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); - -var SPECIES = wellKnownSymbol('species'); - -// `SpeciesConstructor` abstract operation -// https://tc39.github.io/ecma262/#sec-speciesconstructor -module.exports = function (O, defaultConstructor) { - var C = anObject(O).constructor; - var S; - return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S); -}; - - -/***/ }), -/* 145 */ -/*!***************************************************!*\ - !*** ./node_modules/core-js/internals/perform.js ***! - \***************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = function (exec) { - try { - return { error: false, value: exec() }; - } catch (error) { - return { error: true, value: error }; - } -}; - - -/***/ }), -/* 146 */ -/*!***********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/array-method-is-strict.js ***! - \***********************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var fails = __webpack_require__(/*! ../internals/fails */ 55); - -module.exports = function (METHOD_NAME, argument) { - var method = [][METHOD_NAME]; - return !!method && fails(function () { - // eslint-disable-next-line no-useless-call,no-throw-literal - method.call(null, argument || function () { throw 1; }, 1); - }); -}; - - -/***/ }), -/* 147 */ -/*!********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/classof.js ***! - \********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ 208); -var classofRaw = __webpack_require__(/*! ../internals/classof-raw */ 156); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 69); - -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -// ES3 wrong here -var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; - -// fallback for IE11 Script Access Denied error -var tryGet = function (it, key) { - try { - return it[key]; - } catch (error) { /* empty */ } -}; - -// getting tag from ES6+ `Object.prototype.toString` -module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { - var O, tag, result; - return it === undefined ? 'Undefined' : it === null ? 'Null' - // @@toStringTag case - : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag - // builtinTag case - : CORRECT_ARGUMENTS ? classofRaw(O) - // ES3 arguments fallback - : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result; -}; - - -/***/ }), -/* 148 */, -/* 149 */ -/*!************************************!*\ - !*** ./dev/Stores/Admin/Domain.js ***! - \************************************/ -/*! exports provided: default */ -/*! exports used: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/filter */ 34); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ko */ 1); - - - - -var DomainAdminStore = function DomainAdminStore() { - var _this = this; - - this.domains = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observableArray([]); - this.domains.loading = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observable(false).extend({ - 'throttle': 100 - }); - this.domainsWithoutAliases = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].computed(function () { - return _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_1___default.a).call(___WEBPACK_IMPORTED_MODULE_1___default.a, _this.domains(), function (item) { - return item && !item.alias; - }); - }); -}; - -/* harmony default export */ __webpack_exports__["a"] = (new DomainAdminStore()); - -/***/ }), -/* 150 */ -/*!************************************************!*\ - !*** ./node_modules/core-js/internals/path.js ***! - \************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ../internals/global */ 27); - -module.exports = global; - - -/***/ }), -/* 151 */ -/*!*********************************************************!*\ - !*** ./node_modules/core-js/internals/object-create.js ***! - \*********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); -var defineProperties = __webpack_require__(/*! ../internals/object-define-properties */ 227); -var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ 108); -var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ 103); -var html = __webpack_require__(/*! ../internals/html */ 142); -var documentCreateElement = __webpack_require__(/*! ../internals/document-create-element */ 102); -var sharedKey = __webpack_require__(/*! ../internals/shared-key */ 107); - -var GT = '>'; -var LT = '<'; -var PROTOTYPE = 'prototype'; -var SCRIPT = 'script'; -var IE_PROTO = sharedKey('IE_PROTO'); - -var EmptyConstructor = function () { /* empty */ }; - -var scriptTag = function (content) { - return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; -}; - -// Create object with fake `null` prototype: use ActiveX Object with cleared prototype -var NullProtoObjectViaActiveX = function (activeXDocument) { - activeXDocument.write(scriptTag('')); - activeXDocument.close(); - var temp = activeXDocument.parentWindow.Object; - activeXDocument = null; // avoid memory leak - return temp; -}; - -// Create object with fake `null` prototype: use iframe Object with cleared prototype -var NullProtoObjectViaIFrame = function () { - // Thrash, waste and sodomy: IE GC bug - var iframe = documentCreateElement('iframe'); - var JS = 'java' + SCRIPT + ':'; - var iframeDocument; - iframe.style.display = 'none'; - html.appendChild(iframe); - // https://github.com/zloirock/core-js/issues/475 - iframe.src = String(JS); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(scriptTag('document.F=Object')); - iframeDocument.close(); - return iframeDocument.F; -}; - -// Check for document.domain and active x support -// No need to use active x approach when document.domain is not set -// see https://github.com/es-shims/es5-shim/issues/150 -// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 -// avoid IE GC bug -var activeXDocument; -var NullProtoObject = function () { - try { - /* global ActiveXObject */ - activeXDocument = document.domain && new ActiveXObject('htmlfile'); - } catch (error) { /* ignore */ } - NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame(); - var length = enumBugKeys.length; - while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; - return NullProtoObject(); -}; - -hiddenKeys[IE_PROTO] = true; - -// `Object.create` method -// https://tc39.github.io/ecma262/#sec-object.create -module.exports = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - EmptyConstructor[PROTOTYPE] = anObject(O); - result = new EmptyConstructor(); - EmptyConstructor[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = NullProtoObject(); - return Properties === undefined ? result : defineProperties(result, Properties); -}; - - -/***/ }), -/* 152 */ -/*!*******************************************************************!*\ - !*** ./node_modules/core-js/internals/object-get-prototype-of.js ***! - \*******************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var has = __webpack_require__(/*! ../internals/has */ 42); -var toObject = __webpack_require__(/*! ../internals/to-object */ 120); -var sharedKey = __webpack_require__(/*! ../internals/shared-key */ 107); -var CORRECT_PROTOTYPE_GETTER = __webpack_require__(/*! ../internals/correct-prototype-getter */ 231); - -var IE_PROTO = sharedKey('IE_PROTO'); -var ObjectPrototype = Object.prototype; - -// `Object.getPrototypeOf` method -// https://tc39.github.io/ecma262/#sec-object.getprototypeof -module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) return O[IE_PROTO]; - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } return O instanceof Object ? ObjectPrototype : null; -}; - - -/***/ }), -/* 153 */ -/*!*************************************************************!*\ - !*** ./node_modules/core-js/internals/engine-v8-version.js ***! - \*************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ../internals/global */ 27); -var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ 105); - -var process = global.process; -var versions = process && process.versions; -var v8 = versions && versions.v8; -var match, version; - -if (v8) { - match = v8.split('.'); - version = match[0] + match[1]; -} else if (userAgent) { - match = userAgent.match(/Edge\/(\d+)/); - if (!match || match[1] >= 74) { - match = userAgent.match(/Chrome\/(\d+)/); - if (match) version = match[1]; - } -} - -module.exports = version && +version; - - -/***/ }), -/* 154 */ -/*!****************************************************************!*\ - !*** ./node_modules/core-js/internals/advance-string-index.js ***! - \****************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var charAt = __webpack_require__(/*! ../internals/string-multibyte */ 187).charAt; - -// `AdvanceStringIndex` abstract operation -// https://tc39.github.io/ecma262/#sec-advancestringindex -module.exports = function (S, index, unicode) { - return index + (unicode ? charAt(S, index).length : 1); -}; - - -/***/ }), -/* 155 */ -/*!***************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/create-property-descriptor.js ***! - \***************************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - - -/***/ }), -/* 156 */ -/*!************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/classof-raw.js ***! - \************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -var toString = {}.toString; - -module.exports = function (it) { - return toString.call(it).slice(8, -1); -}; - - -/***/ }), -/* 157 */ -/*!**********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/an-object.js ***! - \**********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(/*! ../internals/is-object */ 77); - -module.exports = function (it) { - if (!isObject(it)) { - throw TypeError(String(it) + ' is not an object'); - } return it; -}; - - -/***/ }), -/* 158 */ -/*!**********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/iterators.js ***! - \**********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = {}; - - -/***/ }), -/* 159 */ -/*!*********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/is-array.js ***! - \*********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var classof = __webpack_require__(/*! ../internals/classof-raw */ 156); - -// `IsArray` abstract operation -// https://tc39.es/ecma262/#sec-isarray -module.exports = Array.isArray || function isArray(arg) { - return classof(arg) == 'Array'; -}; - - -/***/ }), -/* 160 */ -/*!*********************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/array-method-has-species-support.js ***! - \*********************************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var fails = __webpack_require__(/*! ../internals/fails */ 55); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 69); -var V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ 203); - -var SPECIES = wellKnownSymbol('species'); - -module.exports = function (METHOD_NAME) { - // We can't use this feature detection in V8 since it causes - // deoptimization and serious performance degradation - // https://github.com/zloirock/core-js/issues/677 - return V8_VERSION >= 51 || !fails(function () { - var array = []; - var constructor = array.constructor = {}; - constructor[SPECIES] = function () { - return { foo: 1 }; - }; - return array[METHOD_NAME](Boolean).foo !== 1; - }); -}; - - -/***/ }), -/* 161 */ -/*!****************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/array-iteration.js ***! - \****************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var bind = __webpack_require__(/*! ../internals/function-bind-context */ 241); -var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ 199); -var toObject = __webpack_require__(/*! ../internals/to-object */ 122); -var toLength = __webpack_require__(/*! ../internals/to-length */ 112); -var arraySpeciesCreate = __webpack_require__(/*! ../internals/array-species-create */ 256); - -var push = [].push; - -// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation -var createMethod = function (TYPE) { - var IS_MAP = TYPE == 1; - var IS_FILTER = TYPE == 2; - var IS_SOME = TYPE == 3; - var IS_EVERY = TYPE == 4; - var IS_FIND_INDEX = TYPE == 6; - var IS_FILTER_OUT = TYPE == 7; - var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; - return function ($this, callbackfn, that, specificCreate) { - var O = toObject($this); - var self = IndexedObject(O); - var boundFunction = bind(callbackfn, that, 3); - var length = toLength(self.length); - var index = 0; - var create = specificCreate || arraySpeciesCreate; - var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined; - var value, result; - for (;length > index; index++) if (NO_HOLES || index in self) { - value = self[index]; - result = boundFunction(value, index, O); - if (TYPE) { - if (IS_MAP) target[index] = result; // map - else if (result) switch (TYPE) { - case 3: return true; // some - case 5: return value; // find - case 6: return index; // findIndex - case 2: push.call(target, value); // filter - } else switch (TYPE) { - case 4: return false; // every - case 7: push.call(target, value); // filterOut - } - } - } - return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; - }; -}; - -module.exports = { - // `Array.prototype.forEach` method - // https://tc39.es/ecma262/#sec-array.prototype.foreach - forEach: createMethod(0), - // `Array.prototype.map` method - // https://tc39.es/ecma262/#sec-array.prototype.map - map: createMethod(1), - // `Array.prototype.filter` method - // https://tc39.es/ecma262/#sec-array.prototype.filter - filter: createMethod(2), - // `Array.prototype.some` method - // https://tc39.es/ecma262/#sec-array.prototype.some - some: createMethod(3), - // `Array.prototype.every` method - // https://tc39.es/ecma262/#sec-array.prototype.every - every: createMethod(4), - // `Array.prototype.find` method - // https://tc39.es/ecma262/#sec-array.prototype.find - find: createMethod(5), - // `Array.prototype.findIndex` method - // https://tc39.es/ecma262/#sec-array.prototype.findIndex - findIndex: createMethod(6), - // `Array.prototype.filterOut` method - // https://github.com/tc39/proposal-array-filtering - filterOut: createMethod(7) -}; - - -/***/ }), -/* 162 */ -/*!*******************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/concat.js ***! - \*******************************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/stable/instance/concat */ 317); - -/***/ }), -/* 163 */ -/*!*******************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js/object/define-property.js ***! - \*******************************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/features/object/define-property */ 349); - -/***/ }), -/* 164 */ -/*!************************************!*\ - !*** external "window.crossroads" ***! - \************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports) { - -module.exports = window.crossroads; - -/***/ }), -/* 165 */ -/*!*******************************************!*\ - !*** ./dev/Component/AbstractCheckbox.js ***! - \*******************************************/ -/*! exports provided: AbstractCheckbox, default */ -/*! exports used: AbstractCheckbox */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AbstractCheckbox; }); -/* unused harmony export default */ -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Component_Abstract__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Component/Abstract */ 35); - - - - - -var AbstractCheckbox = /*#__PURE__*/function (_AbstractComponent) { - Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(AbstractCheckbox, _AbstractComponent); - - /** - * @param {Object} params = {} - */ - function AbstractCheckbox(params) { - var _this; - - if (params === void 0) { - params = {}; - } - - _this = _AbstractComponent.call(this) || this; - _this.value = params.value; - - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_2__["isUnd"])(_this.value) || !_this.value.subscribe) { - _this.value = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_2__["isUnd"])(_this.value) ? false : !!_this.value); - } - - _this.enable = params.enable; - - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_2__["isUnd"])(_this.enable) || !_this.enable.subscribe) { - _this.enable = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_2__["isUnd"])(_this.enable) ? true : !!_this.enable); - } - - _this.disable = params.disable; - - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_2__["isUnd"])(_this.disable) || !_this.disable.subscribe) { - _this.disable = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_2__["isUnd"])(_this.disable) ? false : !!_this.disable); - } - - _this.label = params.label || ''; - _this.inline = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_2__["isUnd"])(params.inline) ? false : params.inline; - _this.readOnly = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_2__["isUnd"])(params.readOnly) ? false : !!params.readOnly; - _this.inverted = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_2__["isUnd"])(params.inverted) ? false : !!params.inverted; - _this.labeled = !Object(Common_Utils__WEBPACK_IMPORTED_MODULE_2__["isUnd"])(params.label); - _this.labelAnimated = !!params.labelAnimated; - return _this; - } - - var _proto = AbstractCheckbox.prototype; - - _proto.click = function click() { - if (!this.readOnly && this.enable() && !this.disable()) { - this.value(!this.value()); - } - }; - - return AbstractCheckbox; -}(Component_Abstract__WEBPACK_IMPORTED_MODULE_3__[/* AbstractComponent */ "a"]); - - - -/***/ }), -/* 166 */ -/*!******************************************************************!*\ - !*** ./node_modules/emailjs-addressparser/dist/addressparser.js ***! - \******************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -exports.default = parse; - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -/** - * Parses structured e-mail addresses from an address field - * - * Example: - * - * "Name " - * - * will be converted to - * - * [{name: "Name", address: "address@domain"}] - * - * @param {String} str Address field - * @return {Array} An array of address objects - */ -function parse(str) { - var tokenizer = new Tokenizer(str); - var tokens = tokenizer.tokenize(); - - var addresses = []; - var address = []; - var parsedAddresses = []; - - tokens.forEach(function (token) { - if (token.type === 'operator' && (token.value === ',' || token.value === ';')) { - if (address.length) { - addresses.push(address); - } - address = []; - } else { - address.push(token); - } - }); - - if (address.length) { - addresses.push(address); - } - - addresses.forEach(function (address) { - address = _handleAddress(address); - if (address.length) { - parsedAddresses = parsedAddresses.concat(address); - } - }); - - return parsedAddresses; -}; - -/** - * Converts tokens for a single address into an address object - * - * @param {Array} tokens Tokens object - * @return {Object} Address object - */ -function _handleAddress(tokens) { - var isGroup = false; - var state = 'text'; - var address = void 0; - var addresses = []; - var data = { - address: [], - comment: [], - group: [], - text: [] - - // Filter out , (comments) and regular text - };for (var i = 0, len = tokens.length; i < len; i++) { - var token = tokens[i]; - - if (token.type === 'operator') { - switch (token.value) { - case '<': - state = 'address'; - break; - case '(': - state = 'comment'; - break; - case ':': - state = 'group'; - isGroup = true; - break; - default: - state = 'text'; - } - } else { - if (token.value) { - data[state].push(token.value); - } - } - } - - // If there is no text but a comment, replace the two - if (!data.text.length && data.comment.length) { - data.text = data.comment; - data.comment = []; - } - - if (isGroup) { - // http://tools.ietf.org/html/rfc2822#appendix-A.1.3 - data.text = data.text.join(' '); - addresses.push({ - name: data.text || address && address.name, - group: data.group.length ? parse(data.group.join(',')) : [] - }); - } else { - // If no address was found, try to detect one from regular text - if (!data.address.length && data.text.length) { - for (var _i = data.text.length - 1; _i >= 0; _i--) { - if (data.text[_i].match(/^[^@\s]+@[^@\s]+$/)) { - data.address = data.text.splice(_i, 1); - break; - } - } - - var _regexHandler = function _regexHandler(address) { - if (!data.address.length) { - data.address = [address.trim()]; - return ' '; - } else { - return address; - } - }; - - // still no address - if (!data.address.length) { - for (var _i2 = data.text.length - 1; _i2 >= 0; _i2--) { - data.text[_i2] = data.text[_i2].replace(/\s*\b[^@\s]+@[^@\s]+\b\s*/, _regexHandler).trim(); - if (data.address.length) { - break; - } - } - } - } - - // If there's still is no text but a comment exixts, replace the two - if (!data.text.length && data.comment.length) { - data.text = data.comment; - data.comment = []; - } - - // Keep only the first address occurence, push others to regular text - if (data.address.length > 1) { - data.text = data.text.concat(data.address.splice(1)); - } - - // Join values with spaces - data.text = data.text.join(' '); - data.address = data.address.join(' '); - - if (!data.address && isGroup) { - return []; - } else { - address = { - address: data.address || data.text || '', - name: data.text || data.address || '' - }; - - if (address.address === address.name) { - if ((address.address || '').match(/@/)) { - address.name = ''; - } else { - address.address = ''; - } - } - - addresses.push(address); - } - } - - return addresses; -}; - -/* - * Operator tokens and which tokens are expected to end the sequence - */ -var OPERATORS = { - '"': '"', - '(': ')', - '<': '>', - ',': '', - // Groups are ended by semicolons - ':': ';', - // Semicolons are not a legal delimiter per the RFC2822 grammar other - // than for terminating a group, but they are also not valid for any - // other use in this context. Given that some mail clients have - // historically allowed the semicolon as a delimiter equivalent to the - // comma in their UI, it makes sense to treat them the same as a comma - // when used outside of a group. - ';': '' - - /** - * Creates a Tokenizer object for tokenizing address field strings - * - * @constructor - * @param {String} str Address field string - */ -}; -var Tokenizer = function () { - function Tokenizer(str) { - _classCallCheck(this, Tokenizer); - - this.str = (str || '').toString(); - this.operatorCurrent = ''; - this.operatorExpecting = ''; - this.node = null; - this.escaped = false; - this.list = []; - } - - /** - * Tokenizes the original input string - * - * @return {Array} An array of operator|text tokens - */ - - - _createClass(Tokenizer, [{ - key: 'tokenize', - value: function tokenize() { - var chr = void 0; - var list = []; - for (var i = 0, len = this.str.length; i < len; i++) { - chr = this.str.charAt(i); - this.checkChar(chr); - } - - this.list.forEach(function (node) { - node.value = (node.value || '').toString().trim(); - if (node.value) { - list.push(node); - } - }); - - return list; - } - - /** - * Checks if a character is an operator or text and acts accordingly - * - * @param {String} chr Character from the address field - */ - - }, { - key: 'checkChar', - value: function checkChar(chr) { - if ((chr in OPERATORS || chr === '\\') && this.escaped) { - this.escaped = false; - } else if (this.operatorExpecting && chr === this.operatorExpecting) { - this.node = { - type: 'operator', - value: chr - }; - this.list.push(this.node); - this.node = null; - this.operatorExpecting = ''; - this.escaped = false; - return; - } else if (!this.operatorExpecting && chr in OPERATORS) { - this.node = { - type: 'operator', - value: chr - }; - this.list.push(this.node); - this.node = null; - this.operatorExpecting = OPERATORS[chr]; - this.escaped = false; - return; - } - - if (!this.escaped && chr === '\\') { - this.escaped = true; - return; - } - - if (!this.node) { - this.node = { - type: 'text', - value: '' - }; - this.list.push(this.node); - } - - if (this.escaped && chr !== '\\') { - this.node.value += '\\'; - } - - this.node.value += chr; - this.escaped = false; - } - }]); - - return Tokenizer; -}(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hZGRyZXNzcGFyc2VyLmpzIl0sIm5hbWVzIjpbInBhcnNlIiwic3RyIiwidG9rZW5pemVyIiwiVG9rZW5pemVyIiwidG9rZW5zIiwidG9rZW5pemUiLCJhZGRyZXNzZXMiLCJhZGRyZXNzIiwicGFyc2VkQWRkcmVzc2VzIiwiZm9yRWFjaCIsInRva2VuIiwidHlwZSIsInZhbHVlIiwibGVuZ3RoIiwicHVzaCIsIl9oYW5kbGVBZGRyZXNzIiwiY29uY2F0IiwiaXNHcm91cCIsInN0YXRlIiwiZGF0YSIsImNvbW1lbnQiLCJncm91cCIsInRleHQiLCJpIiwibGVuIiwiam9pbiIsIm5hbWUiLCJtYXRjaCIsInNwbGljZSIsIl9yZWdleEhhbmRsZXIiLCJ0cmltIiwicmVwbGFjZSIsIk9QRVJBVE9SUyIsInRvU3RyaW5nIiwib3BlcmF0b3JDdXJyZW50Iiwib3BlcmF0b3JFeHBlY3RpbmciLCJub2RlIiwiZXNjYXBlZCIsImxpc3QiLCJjaHIiLCJjaGFyQXQiLCJjaGVja0NoYXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O2tCQWN3QkEsSzs7OztBQWR4Qjs7Ozs7Ozs7Ozs7Ozs7QUFjZSxTQUFTQSxLQUFULENBQWdCQyxHQUFoQixFQUFxQjtBQUNsQyxNQUFNQyxZQUFZLElBQUlDLFNBQUosQ0FBY0YsR0FBZCxDQUFsQjtBQUNBLE1BQU1HLFNBQVNGLFVBQVVHLFFBQVYsRUFBZjs7QUFFQSxNQUFNQyxZQUFZLEVBQWxCO0FBQ0EsTUFBSUMsVUFBVSxFQUFkO0FBQ0EsTUFBSUMsa0JBQWtCLEVBQXRCOztBQUVBSixTQUFPSyxPQUFQLENBQWUsVUFBVUMsS0FBVixFQUFpQjtBQUM5QixRQUFJQSxNQUFNQyxJQUFOLEtBQWUsVUFBZixLQUE4QkQsTUFBTUUsS0FBTixLQUFnQixHQUFoQixJQUF1QkYsTUFBTUUsS0FBTixLQUFnQixHQUFyRSxDQUFKLEVBQStFO0FBQzdFLFVBQUlMLFFBQVFNLE1BQVosRUFBb0I7QUFDbEJQLGtCQUFVUSxJQUFWLENBQWVQLE9BQWY7QUFDRDtBQUNEQSxnQkFBVSxFQUFWO0FBQ0QsS0FMRCxNQUtPO0FBQ0xBLGNBQVFPLElBQVIsQ0FBYUosS0FBYjtBQUNEO0FBQ0YsR0FURDs7QUFXQSxNQUFJSCxRQUFRTSxNQUFaLEVBQW9CO0FBQ2xCUCxjQUFVUSxJQUFWLENBQWVQLE9BQWY7QUFDRDs7QUFFREQsWUFBVUcsT0FBVixDQUFrQixVQUFVRixPQUFWLEVBQW1CO0FBQ25DQSxjQUFVUSxlQUFlUixPQUFmLENBQVY7QUFDQSxRQUFJQSxRQUFRTSxNQUFaLEVBQW9CO0FBQ2xCTCx3QkFBa0JBLGdCQUFnQlEsTUFBaEIsQ0FBdUJULE9BQXZCLENBQWxCO0FBQ0Q7QUFDRixHQUxEOztBQU9BLFNBQU9DLGVBQVA7QUFDRDs7QUFFRDs7Ozs7O0FBTUEsU0FBU08sY0FBVCxDQUF5QlgsTUFBekIsRUFBaUM7QUFDL0IsTUFBSWEsVUFBVSxLQUFkO0FBQ0EsTUFBSUMsUUFBUSxNQUFaO0FBQ0EsTUFBSVgsZ0JBQUo7QUFDQSxNQUFNRCxZQUFZLEVBQWxCO0FBQ0EsTUFBTWEsT0FBTztBQUNYWixhQUFTLEVBREU7QUFFWGEsYUFBUyxFQUZFO0FBR1hDLFdBQU8sRUFISTtBQUlYQyxVQUFNOztBQUdSO0FBUGEsR0FBYixDQVFBLEtBQUssSUFBSUMsSUFBSSxDQUFSLEVBQVdDLE1BQU1wQixPQUFPUyxNQUE3QixFQUFxQ1UsSUFBSUMsR0FBekMsRUFBOENELEdBQTlDLEVBQW1EO0FBQ2pELFFBQU1iLFFBQVFOLE9BQU9tQixDQUFQLENBQWQ7O0FBRUEsUUFBSWIsTUFBTUMsSUFBTixLQUFlLFVBQW5CLEVBQStCO0FBQzdCLGNBQVFELE1BQU1FLEtBQWQ7QUFDRSxhQUFLLEdBQUw7QUFDRU0sa0JBQVEsU0FBUjtBQUNBO0FBQ0YsYUFBSyxHQUFMO0FBQ0VBLGtCQUFRLFNBQVI7QUFDQTtBQUNGLGFBQUssR0FBTDtBQUNFQSxrQkFBUSxPQUFSO0FBQ0FELG9CQUFVLElBQVY7QUFDQTtBQUNGO0FBQ0VDLGtCQUFRLE1BQVI7QUFaSjtBQWNELEtBZkQsTUFlTztBQUNMLFVBQUlSLE1BQU1FLEtBQVYsRUFBaUI7QUFDZk8sYUFBS0QsS0FBTCxFQUFZSixJQUFaLENBQWlCSixNQUFNRSxLQUF2QjtBQUNEO0FBQ0Y7QUFDRjs7QUFFRDtBQUNBLE1BQUksQ0FBQ08sS0FBS0csSUFBTCxDQUFVVCxNQUFYLElBQXFCTSxLQUFLQyxPQUFMLENBQWFQLE1BQXRDLEVBQThDO0FBQzVDTSxTQUFLRyxJQUFMLEdBQVlILEtBQUtDLE9BQWpCO0FBQ0FELFNBQUtDLE9BQUwsR0FBZSxFQUFmO0FBQ0Q7O0FBRUQsTUFBSUgsT0FBSixFQUFhO0FBQ1g7QUFDQUUsU0FBS0csSUFBTCxHQUFZSCxLQUFLRyxJQUFMLENBQVVHLElBQVYsQ0FBZSxHQUFmLENBQVo7QUFDQW5CLGNBQVVRLElBQVYsQ0FBZTtBQUNiWSxZQUFNUCxLQUFLRyxJQUFMLElBQWNmLFdBQVdBLFFBQVFtQixJQUQxQjtBQUViTCxhQUFPRixLQUFLRSxLQUFMLENBQVdSLE1BQVgsR0FBb0JiLE1BQU1tQixLQUFLRSxLQUFMLENBQVdJLElBQVgsQ0FBZ0IsR0FBaEIsQ0FBTixDQUFwQixHQUFrRDtBQUY1QyxLQUFmO0FBSUQsR0FQRCxNQU9PO0FBQ0w7QUFDQSxRQUFJLENBQUNOLEtBQUtaLE9BQUwsQ0FBYU0sTUFBZCxJQUF3Qk0sS0FBS0csSUFBTCxDQUFVVCxNQUF0QyxFQUE4QztBQUM1QyxXQUFLLElBQUlVLEtBQUlKLEtBQUtHLElBQUwsQ0FBVVQsTUFBVixHQUFtQixDQUFoQyxFQUFtQ1UsTUFBSyxDQUF4QyxFQUEyQ0EsSUFBM0MsRUFBZ0Q7QUFDOUMsWUFBSUosS0FBS0csSUFBTCxDQUFVQyxFQUFWLEVBQWFJLEtBQWIsQ0FBbUIsbUJBQW5CLENBQUosRUFBNkM7QUFDM0NSLGVBQUtaLE9BQUwsR0FBZVksS0FBS0csSUFBTCxDQUFVTSxNQUFWLENBQWlCTCxFQUFqQixFQUFvQixDQUFwQixDQUFmO0FBQ0E7QUFDRDtBQUNGOztBQUVELFVBQUlNLGdCQUFnQixTQUFoQkEsYUFBZ0IsQ0FBVXRCLE9BQVYsRUFBbUI7QUFDckMsWUFBSSxDQUFDWSxLQUFLWixPQUFMLENBQWFNLE1BQWxCLEVBQTBCO0FBQ3hCTSxlQUFLWixPQUFMLEdBQWUsQ0FBQ0EsUUFBUXVCLElBQVIsRUFBRCxDQUFmO0FBQ0EsaUJBQU8sR0FBUDtBQUNELFNBSEQsTUFHTztBQUNMLGlCQUFPdkIsT0FBUDtBQUNEO0FBQ0YsT0FQRDs7QUFTQTtBQUNBLFVBQUksQ0FBQ1ksS0FBS1osT0FBTCxDQUFhTSxNQUFsQixFQUEwQjtBQUN4QixhQUFLLElBQUlVLE1BQUlKLEtBQUtHLElBQUwsQ0FBVVQsTUFBVixHQUFtQixDQUFoQyxFQUFtQ1UsT0FBSyxDQUF4QyxFQUEyQ0EsS0FBM0MsRUFBZ0Q7QUFDOUNKLGVBQUtHLElBQUwsQ0FBVUMsR0FBVixJQUFlSixLQUFLRyxJQUFMLENBQVVDLEdBQVYsRUFBYVEsT0FBYixDQUFxQiwyQkFBckIsRUFBa0RGLGFBQWxELEVBQWlFQyxJQUFqRSxFQUFmO0FBQ0EsY0FBSVgsS0FBS1osT0FBTCxDQUFhTSxNQUFqQixFQUF5QjtBQUN2QjtBQUNEO0FBQ0Y7QUFDRjtBQUNGOztBQUVEO0FBQ0EsUUFBSSxDQUFDTSxLQUFLRyxJQUFMLENBQVVULE1BQVgsSUFBcUJNLEtBQUtDLE9BQUwsQ0FBYVAsTUFBdEMsRUFBOEM7QUFDNUNNLFdBQUtHLElBQUwsR0FBWUgsS0FBS0MsT0FBakI7QUFDQUQsV0FBS0MsT0FBTCxHQUFlLEVBQWY7QUFDRDs7QUFFRDtBQUNBLFFBQUlELEtBQUtaLE9BQUwsQ0FBYU0sTUFBYixHQUFzQixDQUExQixFQUE2QjtBQUMzQk0sV0FBS0csSUFBTCxHQUFZSCxLQUFLRyxJQUFMLENBQVVOLE1BQVYsQ0FBaUJHLEtBQUtaLE9BQUwsQ0FBYXFCLE1BQWIsQ0FBb0IsQ0FBcEIsQ0FBakIsQ0FBWjtBQUNEOztBQUVEO0FBQ0FULFNBQUtHLElBQUwsR0FBWUgsS0FBS0csSUFBTCxDQUFVRyxJQUFWLENBQWUsR0FBZixDQUFaO0FBQ0FOLFNBQUtaLE9BQUwsR0FBZVksS0FBS1osT0FBTCxDQUFha0IsSUFBYixDQUFrQixHQUFsQixDQUFmOztBQUVBLFFBQUksQ0FBQ04sS0FBS1osT0FBTixJQUFpQlUsT0FBckIsRUFBOEI7QUFDNUIsYUFBTyxFQUFQO0FBQ0QsS0FGRCxNQUVPO0FBQ0xWLGdCQUFVO0FBQ1JBLGlCQUFTWSxLQUFLWixPQUFMLElBQWdCWSxLQUFLRyxJQUFyQixJQUE2QixFQUQ5QjtBQUVSSSxjQUFNUCxLQUFLRyxJQUFMLElBQWFILEtBQUtaLE9BQWxCLElBQTZCO0FBRjNCLE9BQVY7O0FBS0EsVUFBSUEsUUFBUUEsT0FBUixLQUFvQkEsUUFBUW1CLElBQWhDLEVBQXNDO0FBQ3BDLFlBQUksQ0FBQ25CLFFBQVFBLE9BQVIsSUFBbUIsRUFBcEIsRUFBd0JvQixLQUF4QixDQUE4QixHQUE5QixDQUFKLEVBQXdDO0FBQ3RDcEIsa0JBQVFtQixJQUFSLEdBQWUsRUFBZjtBQUNELFNBRkQsTUFFTztBQUNMbkIsa0JBQVFBLE9BQVIsR0FBa0IsRUFBbEI7QUFDRDtBQUNGOztBQUVERCxnQkFBVVEsSUFBVixDQUFlUCxPQUFmO0FBQ0Q7QUFDRjs7QUFFRCxTQUFPRCxTQUFQO0FBQ0Q7O0FBRUQ7OztBQUdBLElBQU0wQixZQUFZO0FBQ2hCLE9BQUssR0FEVztBQUVoQixPQUFLLEdBRlc7QUFHaEIsT0FBSyxHQUhXO0FBSWhCLE9BQUssRUFKVztBQUtoQjtBQUNBLE9BQUssR0FOVztBQU9oQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFLOztBQUdQOzs7Ozs7QUFoQmtCLENBQWxCO0lBc0JNN0IsUztBQUNKLHFCQUFhRixHQUFiLEVBQWtCO0FBQUE7O0FBQ2hCLFNBQUtBLEdBQUwsR0FBVyxDQUFDQSxPQUFPLEVBQVIsRUFBWWdDLFFBQVosRUFBWDtBQUNBLFNBQUtDLGVBQUwsR0FBdUIsRUFBdkI7QUFDQSxTQUFLQyxpQkFBTCxHQUF5QixFQUF6QjtBQUNBLFNBQUtDLElBQUwsR0FBWSxJQUFaO0FBQ0EsU0FBS0MsT0FBTCxHQUFlLEtBQWY7QUFDQSxTQUFLQyxJQUFMLEdBQVksRUFBWjtBQUNEOztBQUVEOzs7Ozs7Ozs7K0JBS1k7QUFDVixVQUFJQyxZQUFKO0FBQ0EsVUFBSUQsT0FBTyxFQUFYO0FBQ0EsV0FBSyxJQUFJZixJQUFJLENBQVIsRUFBV0MsTUFBTSxLQUFLdkIsR0FBTCxDQUFTWSxNQUEvQixFQUF1Q1UsSUFBSUMsR0FBM0MsRUFBZ0RELEdBQWhELEVBQXFEO0FBQ25EZ0IsY0FBTSxLQUFLdEMsR0FBTCxDQUFTdUMsTUFBVCxDQUFnQmpCLENBQWhCLENBQU47QUFDQSxhQUFLa0IsU0FBTCxDQUFlRixHQUFmO0FBQ0Q7O0FBRUQsV0FBS0QsSUFBTCxDQUFVN0IsT0FBVixDQUFrQixVQUFVMkIsSUFBVixFQUFnQjtBQUNoQ0EsYUFBS3hCLEtBQUwsR0FBYSxDQUFDd0IsS0FBS3hCLEtBQUwsSUFBYyxFQUFmLEVBQW1CcUIsUUFBbkIsR0FBOEJILElBQTlCLEVBQWI7QUFDQSxZQUFJTSxLQUFLeEIsS0FBVCxFQUFnQjtBQUNkMEIsZUFBS3hCLElBQUwsQ0FBVXNCLElBQVY7QUFDRDtBQUNGLE9BTEQ7O0FBT0EsYUFBT0UsSUFBUDtBQUNEOztBQUVEOzs7Ozs7Ozs4QkFLV0MsRyxFQUFLO0FBQ2QsVUFBSSxDQUFDQSxPQUFPUCxTQUFQLElBQW9CTyxRQUFRLElBQTdCLEtBQXNDLEtBQUtGLE9BQS9DLEVBQXdEO0FBQ3RELGFBQUtBLE9BQUwsR0FBZSxLQUFmO0FBQ0QsT0FGRCxNQUVPLElBQUksS0FBS0YsaUJBQUwsSUFBMEJJLFFBQVEsS0FBS0osaUJBQTNDLEVBQThEO0FBQ25FLGFBQUtDLElBQUwsR0FBWTtBQUNWekIsZ0JBQU0sVUFESTtBQUVWQyxpQkFBTzJCO0FBRkcsU0FBWjtBQUlBLGFBQUtELElBQUwsQ0FBVXhCLElBQVYsQ0FBZSxLQUFLc0IsSUFBcEI7QUFDQSxhQUFLQSxJQUFMLEdBQVksSUFBWjtBQUNBLGFBQUtELGlCQUFMLEdBQXlCLEVBQXpCO0FBQ0EsYUFBS0UsT0FBTCxHQUFlLEtBQWY7QUFDQTtBQUNELE9BVk0sTUFVQSxJQUFJLENBQUMsS0FBS0YsaUJBQU4sSUFBMkJJLE9BQU9QLFNBQXRDLEVBQWlEO0FBQ3RELGFBQUtJLElBQUwsR0FBWTtBQUNWekIsZ0JBQU0sVUFESTtBQUVWQyxpQkFBTzJCO0FBRkcsU0FBWjtBQUlBLGFBQUtELElBQUwsQ0FBVXhCLElBQVYsQ0FBZSxLQUFLc0IsSUFBcEI7QUFDQSxhQUFLQSxJQUFMLEdBQVksSUFBWjtBQUNBLGFBQUtELGlCQUFMLEdBQXlCSCxVQUFVTyxHQUFWLENBQXpCO0FBQ0EsYUFBS0YsT0FBTCxHQUFlLEtBQWY7QUFDQTtBQUNEOztBQUVELFVBQUksQ0FBQyxLQUFLQSxPQUFOLElBQWlCRSxRQUFRLElBQTdCLEVBQW1DO0FBQ2pDLGFBQUtGLE9BQUwsR0FBZSxJQUFmO0FBQ0E7QUFDRDs7QUFFRCxVQUFJLENBQUMsS0FBS0QsSUFBVixFQUFnQjtBQUNkLGFBQUtBLElBQUwsR0FBWTtBQUNWekIsZ0JBQU0sTUFESTtBQUVWQyxpQkFBTztBQUZHLFNBQVo7QUFJQSxhQUFLMEIsSUFBTCxDQUFVeEIsSUFBVixDQUFlLEtBQUtzQixJQUFwQjtBQUNEOztBQUVELFVBQUksS0FBS0MsT0FBTCxJQUFnQkUsUUFBUSxJQUE1QixFQUFrQztBQUNoQyxhQUFLSCxJQUFMLENBQVV4QixLQUFWLElBQW1CLElBQW5CO0FBQ0Q7O0FBRUQsV0FBS3dCLElBQUwsQ0FBVXhCLEtBQVYsSUFBbUIyQixHQUFuQjtBQUNBLFdBQUtGLE9BQUwsR0FBZSxLQUFmO0FBQ0QiLCJmaWxlIjoiYWRkcmVzc3BhcnNlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUGFyc2VzIHN0cnVjdHVyZWQgZS1tYWlsIGFkZHJlc3NlcyBmcm9tIGFuIGFkZHJlc3MgZmllbGRcbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqICAgIFwiTmFtZSA8YWRkcmVzc0Bkb21haW4+XCJcbiAqXG4gKiB3aWxsIGJlIGNvbnZlcnRlZCB0b1xuICpcbiAqICAgICBbe25hbWU6IFwiTmFtZVwiLCBhZGRyZXNzOiBcImFkZHJlc3NAZG9tYWluXCJ9XVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHIgQWRkcmVzcyBmaWVsZFxuICogQHJldHVybiB7QXJyYXl9IEFuIGFycmF5IG9mIGFkZHJlc3Mgb2JqZWN0c1xuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBwYXJzZSAoc3RyKSB7XG4gIGNvbnN0IHRva2VuaXplciA9IG5ldyBUb2tlbml6ZXIoc3RyKVxuICBjb25zdCB0b2tlbnMgPSB0b2tlbml6ZXIudG9rZW5pemUoKVxuXG4gIGNvbnN0IGFkZHJlc3NlcyA9IFtdXG4gIGxldCBhZGRyZXNzID0gW11cbiAgbGV0IHBhcnNlZEFkZHJlc3NlcyA9IFtdXG5cbiAgdG9rZW5zLmZvckVhY2goZnVuY3Rpb24gKHRva2VuKSB7XG4gICAgaWYgKHRva2VuLnR5cGUgPT09ICdvcGVyYXRvcicgJiYgKHRva2VuLnZhbHVlID09PSAnLCcgfHwgdG9rZW4udmFsdWUgPT09ICc7JykpIHtcbiAgICAgIGlmIChhZGRyZXNzLmxlbmd0aCkge1xuICAgICAgICBhZGRyZXNzZXMucHVzaChhZGRyZXNzKVxuICAgICAgfVxuICAgICAgYWRkcmVzcyA9IFtdXG4gICAgfSBlbHNlIHtcbiAgICAgIGFkZHJlc3MucHVzaCh0b2tlbilcbiAgICB9XG4gIH0pXG5cbiAgaWYgKGFkZHJlc3MubGVuZ3RoKSB7XG4gICAgYWRkcmVzc2VzLnB1c2goYWRkcmVzcylcbiAgfVxuXG4gIGFkZHJlc3Nlcy5mb3JFYWNoKGZ1bmN0aW9uIChhZGRyZXNzKSB7XG4gICAgYWRkcmVzcyA9IF9oYW5kbGVBZGRyZXNzKGFkZHJlc3MpXG4gICAgaWYgKGFkZHJlc3MubGVuZ3RoKSB7XG4gICAgICBwYXJzZWRBZGRyZXNzZXMgPSBwYXJzZWRBZGRyZXNzZXMuY29uY2F0KGFkZHJlc3MpXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBwYXJzZWRBZGRyZXNzZXNcbn07XG5cbi8qKlxuICogQ29udmVydHMgdG9rZW5zIGZvciBhIHNpbmdsZSBhZGRyZXNzIGludG8gYW4gYWRkcmVzcyBvYmplY3RcbiAqXG4gKiBAcGFyYW0ge0FycmF5fSB0b2tlbnMgVG9rZW5zIG9iamVjdFxuICogQHJldHVybiB7T2JqZWN0fSBBZGRyZXNzIG9iamVjdFxuICovXG5mdW5jdGlvbiBfaGFuZGxlQWRkcmVzcyAodG9rZW5zKSB7XG4gIGxldCBpc0dyb3VwID0gZmFsc2VcbiAgbGV0IHN0YXRlID0gJ3RleHQnXG4gIGxldCBhZGRyZXNzXG4gIGNvbnN0IGFkZHJlc3NlcyA9IFtdXG4gIGNvbnN0IGRhdGEgPSB7XG4gICAgYWRkcmVzczogW10sXG4gICAgY29tbWVudDogW10sXG4gICAgZ3JvdXA6IFtdLFxuICAgIHRleHQ6IFtdXG4gIH1cblxuICAvLyBGaWx0ZXIgb3V0IDxhZGRyZXNzZXM+LCAoY29tbWVudHMpIGFuZCByZWd1bGFyIHRleHRcbiAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHRva2Vucy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGNvbnN0IHRva2VuID0gdG9rZW5zW2ldXG5cbiAgICBpZiAodG9rZW4udHlwZSA9PT0gJ29wZXJhdG9yJykge1xuICAgICAgc3dpdGNoICh0b2tlbi52YWx1ZSkge1xuICAgICAgICBjYXNlICc8JzpcbiAgICAgICAgICBzdGF0ZSA9ICdhZGRyZXNzJ1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJygnOlxuICAgICAgICAgIHN0YXRlID0gJ2NvbW1lbnQnXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnOic6XG4gICAgICAgICAgc3RhdGUgPSAnZ3JvdXAnXG4gICAgICAgICAgaXNHcm91cCA9IHRydWVcbiAgICAgICAgICBicmVha1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHN0YXRlID0gJ3RleHQnXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0b2tlbi52YWx1ZSkge1xuICAgICAgICBkYXRhW3N0YXRlXS5wdXNoKHRva2VuLnZhbHVlKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRoZXJlIGlzIG5vIHRleHQgYnV0IGEgY29tbWVudCwgcmVwbGFjZSB0aGUgdHdvXG4gIGlmICghZGF0YS50ZXh0Lmxlbmd0aCAmJiBkYXRhLmNvbW1lbnQubGVuZ3RoKSB7XG4gICAgZGF0YS50ZXh0ID0gZGF0YS5jb21tZW50XG4gICAgZGF0YS5jb21tZW50ID0gW11cbiAgfVxuXG4gIGlmIChpc0dyb3VwKSB7XG4gICAgLy8gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMjgyMiNhcHBlbmRpeC1BLjEuM1xuICAgIGRhdGEudGV4dCA9IGRhdGEudGV4dC5qb2luKCcgJylcbiAgICBhZGRyZXNzZXMucHVzaCh7XG4gICAgICBuYW1lOiBkYXRhLnRleHQgfHwgKGFkZHJlc3MgJiYgYWRkcmVzcy5uYW1lKSxcbiAgICAgIGdyb3VwOiBkYXRhLmdyb3VwLmxlbmd0aCA/IHBhcnNlKGRhdGEuZ3JvdXAuam9pbignLCcpKSA6IFtdXG4gICAgfSlcbiAgfSBlbHNlIHtcbiAgICAvLyBJZiBubyBhZGRyZXNzIHdhcyBmb3VuZCwgdHJ5IHRvIGRldGVjdCBvbmUgZnJvbSByZWd1bGFyIHRleHRcbiAgICBpZiAoIWRhdGEuYWRkcmVzcy5sZW5ndGggJiYgZGF0YS50ZXh0Lmxlbmd0aCkge1xuICAgICAgZm9yIChsZXQgaSA9IGRhdGEudGV4dC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICBpZiAoZGF0YS50ZXh0W2ldLm1hdGNoKC9eW15AXFxzXStAW15AXFxzXSskLykpIHtcbiAgICAgICAgICBkYXRhLmFkZHJlc3MgPSBkYXRhLnRleHQuc3BsaWNlKGksIDEpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgX3JlZ2V4SGFuZGxlciA9IGZ1bmN0aW9uIChhZGRyZXNzKSB7XG4gICAgICAgIGlmICghZGF0YS5hZGRyZXNzLmxlbmd0aCkge1xuICAgICAgICAgIGRhdGEuYWRkcmVzcyA9IFthZGRyZXNzLnRyaW0oKV1cbiAgICAgICAgICByZXR1cm4gJyAnXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGFkZHJlc3NcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBzdGlsbCBubyBhZGRyZXNzXG4gICAgICBpZiAoIWRhdGEuYWRkcmVzcy5sZW5ndGgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IGRhdGEudGV4dC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIGRhdGEudGV4dFtpXSA9IGRhdGEudGV4dFtpXS5yZXBsYWNlKC9cXHMqXFxiW15AXFxzXStAW15AXFxzXStcXGJcXHMqLywgX3JlZ2V4SGFuZGxlcikudHJpbSgpXG4gICAgICAgICAgaWYgKGRhdGEuYWRkcmVzcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUncyBzdGlsbCBpcyBubyB0ZXh0IGJ1dCBhIGNvbW1lbnQgZXhpeHRzLCByZXBsYWNlIHRoZSB0d29cbiAgICBpZiAoIWRhdGEudGV4dC5sZW5ndGggJiYgZGF0YS5jb21tZW50Lmxlbmd0aCkge1xuICAgICAgZGF0YS50ZXh0ID0gZGF0YS5jb21tZW50XG4gICAgICBkYXRhLmNvbW1lbnQgPSBbXVxuICAgIH1cblxuICAgIC8vIEtlZXAgb25seSB0aGUgZmlyc3QgYWRkcmVzcyBvY2N1cmVuY2UsIHB1c2ggb3RoZXJzIHRvIHJlZ3VsYXIgdGV4dFxuICAgIGlmIChkYXRhLmFkZHJlc3MubGVuZ3RoID4gMSkge1xuICAgICAgZGF0YS50ZXh0ID0gZGF0YS50ZXh0LmNvbmNhdChkYXRhLmFkZHJlc3Muc3BsaWNlKDEpKVxuICAgIH1cblxuICAgIC8vIEpvaW4gdmFsdWVzIHdpdGggc3BhY2VzXG4gICAgZGF0YS50ZXh0ID0gZGF0YS50ZXh0LmpvaW4oJyAnKVxuICAgIGRhdGEuYWRkcmVzcyA9IGRhdGEuYWRkcmVzcy5qb2luKCcgJylcblxuICAgIGlmICghZGF0YS5hZGRyZXNzICYmIGlzR3JvdXApIHtcbiAgICAgIHJldHVybiBbXVxuICAgIH0gZWxzZSB7XG4gICAgICBhZGRyZXNzID0ge1xuICAgICAgICBhZGRyZXNzOiBkYXRhLmFkZHJlc3MgfHwgZGF0YS50ZXh0IHx8ICcnLFxuICAgICAgICBuYW1lOiBkYXRhLnRleHQgfHwgZGF0YS5hZGRyZXNzIHx8ICcnXG4gICAgICB9XG5cbiAgICAgIGlmIChhZGRyZXNzLmFkZHJlc3MgPT09IGFkZHJlc3MubmFtZSkge1xuICAgICAgICBpZiAoKGFkZHJlc3MuYWRkcmVzcyB8fCAnJykubWF0Y2goL0AvKSkge1xuICAgICAgICAgIGFkZHJlc3MubmFtZSA9ICcnXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWRkcmVzcy5hZGRyZXNzID0gJydcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBhZGRyZXNzZXMucHVzaChhZGRyZXNzKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhZGRyZXNzZXNcbn07XG5cbi8qXG4gKiBPcGVyYXRvciB0b2tlbnMgYW5kIHdoaWNoIHRva2VucyBhcmUgZXhwZWN0ZWQgdG8gZW5kIHRoZSBzZXF1ZW5jZVxuICovXG5jb25zdCBPUEVSQVRPUlMgPSB7XG4gICdcIic6ICdcIicsXG4gICcoJzogJyknLFxuICAnPCc6ICc+JyxcbiAgJywnOiAnJyxcbiAgLy8gR3JvdXBzIGFyZSBlbmRlZCBieSBzZW1pY29sb25zXG4gICc6JzogJzsnLFxuICAvLyBTZW1pY29sb25zIGFyZSBub3QgYSBsZWdhbCBkZWxpbWl0ZXIgcGVyIHRoZSBSRkMyODIyIGdyYW1tYXIgb3RoZXJcbiAgLy8gdGhhbiBmb3IgdGVybWluYXRpbmcgYSBncm91cCwgYnV0IHRoZXkgYXJlIGFsc28gbm90IHZhbGlkIGZvciBhbnlcbiAgLy8gb3RoZXIgdXNlIGluIHRoaXMgY29udGV4dC4gIEdpdmVuIHRoYXQgc29tZSBtYWlsIGNsaWVudHMgaGF2ZVxuICAvLyBoaXN0b3JpY2FsbHkgYWxsb3dlZCB0aGUgc2VtaWNvbG9uIGFzIGEgZGVsaW1pdGVyIGVxdWl2YWxlbnQgdG8gdGhlXG4gIC8vIGNvbW1hIGluIHRoZWlyIFVJLCBpdCBtYWtlcyBzZW5zZSB0byB0cmVhdCB0aGVtIHRoZSBzYW1lIGFzIGEgY29tbWFcbiAgLy8gd2hlbiB1c2VkIG91dHNpZGUgb2YgYSBncm91cC5cbiAgJzsnOiAnJ1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBUb2tlbml6ZXIgb2JqZWN0IGZvciB0b2tlbml6aW5nIGFkZHJlc3MgZmllbGQgc3RyaW5nc1xuICpcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtTdHJpbmd9IHN0ciBBZGRyZXNzIGZpZWxkIHN0cmluZ1xuICovXG5jbGFzcyBUb2tlbml6ZXIge1xuICBjb25zdHJ1Y3RvciAoc3RyKSB7XG4gICAgdGhpcy5zdHIgPSAoc3RyIHx8ICcnKS50b1N0cmluZygpXG4gICAgdGhpcy5vcGVyYXRvckN1cnJlbnQgPSAnJ1xuICAgIHRoaXMub3BlcmF0b3JFeHBlY3RpbmcgPSAnJ1xuICAgIHRoaXMubm9kZSA9IG51bGxcbiAgICB0aGlzLmVzY2FwZWQgPSBmYWxzZVxuICAgIHRoaXMubGlzdCA9IFtdXG4gIH1cblxuICAvKipcbiAgICogVG9rZW5pemVzIHRoZSBvcmlnaW5hbCBpbnB1dCBzdHJpbmdcbiAgICpcbiAgICogQHJldHVybiB7QXJyYXl9IEFuIGFycmF5IG9mIG9wZXJhdG9yfHRleHQgdG9rZW5zXG4gICAqL1xuICB0b2tlbml6ZSAoKSB7XG4gICAgbGV0IGNoclxuICAgIGxldCBsaXN0ID0gW11cbiAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gdGhpcy5zdHIubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGNociA9IHRoaXMuc3RyLmNoYXJBdChpKVxuICAgICAgdGhpcy5jaGVja0NoYXIoY2hyKVxuICAgIH1cblxuICAgIHRoaXMubGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICBub2RlLnZhbHVlID0gKG5vZGUudmFsdWUgfHwgJycpLnRvU3RyaW5nKCkudHJpbSgpXG4gICAgICBpZiAobm9kZS52YWx1ZSkge1xuICAgICAgICBsaXN0LnB1c2gobm9kZSlcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgcmV0dXJuIGxpc3RcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBjaGFyYWN0ZXIgaXMgYW4gb3BlcmF0b3Igb3IgdGV4dCBhbmQgYWN0cyBhY2NvcmRpbmdseVxuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gY2hyIENoYXJhY3RlciBmcm9tIHRoZSBhZGRyZXNzIGZpZWxkXG4gICAqL1xuICBjaGVja0NoYXIgKGNocikge1xuICAgIGlmICgoY2hyIGluIE9QRVJBVE9SUyB8fCBjaHIgPT09ICdcXFxcJykgJiYgdGhpcy5lc2NhcGVkKSB7XG4gICAgICB0aGlzLmVzY2FwZWQgPSBmYWxzZVxuICAgIH0gZWxzZSBpZiAodGhpcy5vcGVyYXRvckV4cGVjdGluZyAmJiBjaHIgPT09IHRoaXMub3BlcmF0b3JFeHBlY3RpbmcpIHtcbiAgICAgIHRoaXMubm9kZSA9IHtcbiAgICAgICAgdHlwZTogJ29wZXJhdG9yJyxcbiAgICAgICAgdmFsdWU6IGNoclxuICAgICAgfVxuICAgICAgdGhpcy5saXN0LnB1c2godGhpcy5ub2RlKVxuICAgICAgdGhpcy5ub2RlID0gbnVsbFxuICAgICAgdGhpcy5vcGVyYXRvckV4cGVjdGluZyA9ICcnXG4gICAgICB0aGlzLmVzY2FwZWQgPSBmYWxzZVxuICAgICAgcmV0dXJuXG4gICAgfSBlbHNlIGlmICghdGhpcy5vcGVyYXRvckV4cGVjdGluZyAmJiBjaHIgaW4gT1BFUkFUT1JTKSB7XG4gICAgICB0aGlzLm5vZGUgPSB7XG4gICAgICAgIHR5cGU6ICdvcGVyYXRvcicsXG4gICAgICAgIHZhbHVlOiBjaHJcbiAgICAgIH1cbiAgICAgIHRoaXMubGlzdC5wdXNoKHRoaXMubm9kZSlcbiAgICAgIHRoaXMubm9kZSA9IG51bGxcbiAgICAgIHRoaXMub3BlcmF0b3JFeHBlY3RpbmcgPSBPUEVSQVRPUlNbY2hyXVxuICAgICAgdGhpcy5lc2NhcGVkID0gZmFsc2VcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICghdGhpcy5lc2NhcGVkICYmIGNociA9PT0gJ1xcXFwnKSB7XG4gICAgICB0aGlzLmVzY2FwZWQgPSB0cnVlXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoIXRoaXMubm9kZSkge1xuICAgICAgdGhpcy5ub2RlID0ge1xuICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgIHZhbHVlOiAnJ1xuICAgICAgfVxuICAgICAgdGhpcy5saXN0LnB1c2godGhpcy5ub2RlKVxuICAgIH1cblxuICAgIGlmICh0aGlzLmVzY2FwZWQgJiYgY2hyICE9PSAnXFxcXCcpIHtcbiAgICAgIHRoaXMubm9kZS52YWx1ZSArPSAnXFxcXCdcbiAgICB9XG5cbiAgICB0aGlzLm5vZGUudmFsdWUgKz0gY2hyXG4gICAgdGhpcy5lc2NhcGVkID0gZmFsc2VcbiAgfVxufVxuIl19 - -/***/ }), -/* 167 */ -/*!*************************************************************************!*\ - !*** ./node_modules/core-js/internals/object-property-is-enumerable.js ***! - \*************************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var nativePropertyIsEnumerable = {}.propertyIsEnumerable; -var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - -// Nashorn ~ JDK8 bug -var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1); - -// `Object.prototype.propertyIsEnumerable` method implementation -// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable -exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { - var descriptor = getOwnPropertyDescriptor(this, V); - return !!descriptor && descriptor.enumerable; -} : nativePropertyIsEnumerable; - - -/***/ }), -/* 168 */ -/*!**********************************************************!*\ - !*** ./node_modules/core-js/internals/array-includes.js ***! - \**********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 72); -var toLength = __webpack_require__(/*! ../internals/to-length */ 73); -var toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ 184); - -// `Array.prototype.{ indexOf, includes }` methods implementation -var createMethod = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIndexedObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - // eslint-disable-next-line no-self-compare - if (value != value) return true; - // Array#indexOf ignores holes, Array#includes - not - } else for (;length > index; index++) { - if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; -}; - -module.exports = { - // `Array.prototype.includes` method - // https://tc39.github.io/ecma262/#sec-array.prototype.includes - includes: createMethod(true), - // `Array.prototype.indexOf` method - // https://tc39.github.io/ecma262/#sec-array.prototype.indexof - indexOf: createMethod(false) -}; - - -/***/ }), -/* 169 */ -/*!***************************************************************************!*\ - !*** ./node_modules/core-js/internals/object-get-own-property-symbols.js ***! - \***************************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -exports.f = Object.getOwnPropertySymbols; - - -/***/ }), -/* 170 */ -/*!**********************************************************!*\ - !*** ./node_modules/core-js/internals/iterators-core.js ***! - \**********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ 152); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 48); -var has = __webpack_require__(/*! ../internals/has */ 42); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); -var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ 80); - -var ITERATOR = wellKnownSymbol('iterator'); -var BUGGY_SAFARI_ITERATORS = false; - -var returnThis = function () { return this; }; - -// `%IteratorPrototype%` object -// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object -var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; - -if ([].keys) { - arrayIterator = [].keys(); - // Safari 8 has buggy iterators w/o `next` - if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true; - else { - PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); - if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; - } -} - -if (IteratorPrototype == undefined) IteratorPrototype = {}; - -// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() -if (!IS_PURE && !has(IteratorPrototype, ITERATOR)) { - createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis); -} - -module.exports = { - IteratorPrototype: IteratorPrototype, - BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS -}; - - -/***/ }), -/* 171 */ -/*!**********************************************************************!*\ - !*** ./node_modules/core-js/internals/native-promise-constructor.js ***! - \**********************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ../internals/global */ 27); - -module.exports = global.Promise; - - -/***/ }), -/* 172 */ -/*!***********************************************************!*\ - !*** ./node_modules/core-js/internals/promise-resolve.js ***! - \***********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); -var isObject = __webpack_require__(/*! ../internals/is-object */ 44); -var newPromiseCapability = __webpack_require__(/*! ../internals/new-promise-capability */ 106); - -module.exports = function (C, x) { - anObject(C); - if (isObject(x) && x.constructor === C) return x; - var promiseCapability = newPromiseCapability.f(C); - var resolve = promiseCapability.resolve; - resolve(x); - return promiseCapability.promise; -}; - - -/***/ }), -/* 173 */ -/*!********************************************************!*\ - !*** ./node_modules/core-js/internals/regexp-flags.js ***! - \********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); - -// `RegExp.prototype.flags` getter implementation -// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags -module.exports = function () { - var that = anObject(this); - var result = ''; - if (that.global) result += 'g'; - if (that.ignoreCase) result += 'i'; - if (that.multiline) result += 'm'; - if (that.dotAll) result += 's'; - if (that.unicode) result += 'u'; - if (that.sticky) result += 'y'; - return result; -}; - - -/***/ }), -/* 174 */ -/*!*********************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.split.js ***! - \*********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var fixRegExpWellKnownSymbolLogic = __webpack_require__(/*! ../internals/fix-regexp-well-known-symbol-logic */ 135); -var isRegExp = __webpack_require__(/*! ../internals/is-regexp */ 229); -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); -var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ 56); -var speciesConstructor = __webpack_require__(/*! ../internals/species-constructor */ 144); -var advanceStringIndex = __webpack_require__(/*! ../internals/advance-string-index */ 154); -var toLength = __webpack_require__(/*! ../internals/to-length */ 73); -var callRegExpExec = __webpack_require__(/*! ../internals/regexp-exec-abstract */ 136); -var regexpExec = __webpack_require__(/*! ../internals/regexp-exec */ 110); -var fails = __webpack_require__(/*! ../internals/fails */ 36); - -var arrayPush = [].push; -var min = Math.min; -var MAX_UINT32 = 0xFFFFFFFF; - -// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError -var SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); }); - -// @@split logic -fixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) { - var internalSplit; - if ( - 'abbc'.split(/(b)*/)[1] == 'c' || - 'test'.split(/(?:)/, -1).length != 4 || - 'ab'.split(/(?:ab)*/).length != 2 || - '.'.split(/(.?)(.?)/).length != 4 || - '.'.split(/()()/).length > 1 || - ''.split(/.?/).length - ) { - // based on es5-shim implementation, need to rework it - internalSplit = function (separator, limit) { - var string = String(requireObjectCoercible(this)); - var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; - if (lim === 0) return []; - if (separator === undefined) return [string]; - // If `separator` is not a regex, use native split - if (!isRegExp(separator)) { - return nativeSplit.call(string, separator, lim); - } - var output = []; - var flags = (separator.ignoreCase ? 'i' : '') + - (separator.multiline ? 'm' : '') + - (separator.unicode ? 'u' : '') + - (separator.sticky ? 'y' : ''); - var lastLastIndex = 0; - // Make `global` and avoid `lastIndex` issues by working with a copy - var separatorCopy = new RegExp(separator.source, flags + 'g'); - var match, lastIndex, lastLength; - while (match = regexpExec.call(separatorCopy, string)) { - lastIndex = separatorCopy.lastIndex; - if (lastIndex > lastLastIndex) { - output.push(string.slice(lastLastIndex, match.index)); - if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1)); - lastLength = match[0].length; - lastLastIndex = lastIndex; - if (output.length >= lim) break; - } - if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop - } - if (lastLastIndex === string.length) { - if (lastLength || !separatorCopy.test('')) output.push(''); - } else output.push(string.slice(lastLastIndex)); - return output.length > lim ? output.slice(0, lim) : output; - }; - // Chakra, V8 - } else if ('0'.split(undefined, 0).length) { - internalSplit = function (separator, limit) { - return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit); - }; - } else internalSplit = nativeSplit; - - return [ - // `String.prototype.split` method - // https://tc39.github.io/ecma262/#sec-string.prototype.split - function split(separator, limit) { - var O = requireObjectCoercible(this); - var splitter = separator == undefined ? undefined : separator[SPLIT]; - return splitter !== undefined - ? splitter.call(separator, O, limit) - : internalSplit.call(String(O), separator, limit); - }, - // `RegExp.prototype[@@split]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split - // - // NOTE: This cannot be properly polyfilled in engines that don't support - // the 'y' flag. - function (regexp, limit) { - var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit); - if (res.done) return res.value; - - var rx = anObject(regexp); - var S = String(this); - var C = speciesConstructor(rx, RegExp); - - var unicodeMatching = rx.unicode; - var flags = (rx.ignoreCase ? 'i' : '') + - (rx.multiline ? 'm' : '') + - (rx.unicode ? 'u' : '') + - (SUPPORTS_Y ? 'y' : 'g'); - - // ^(? + rx + ) is needed, in combination with some S slicing, to - // simulate the 'y' flag. - var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags); - var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; - if (lim === 0) return []; - if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : []; - var p = 0; - var q = 0; - var A = []; - while (q < S.length) { - splitter.lastIndex = SUPPORTS_Y ? q : 0; - var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q)); - var e; - if ( - z === null || - (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p - ) { - q = advanceStringIndex(S, q, unicodeMatching); - } else { - A.push(S.slice(p, q)); - if (A.length === lim) return A; - for (var i = 1; i <= z.length - 1; i++) { - A.push(z[i]); - if (A.length === lim) return A; - } - q = p = e; - } - } - A.push(S.slice(p)); - return A; - } - ]; -}, !SUPPORTS_Y); - - -/***/ }), -/* 175 */ -/*!********************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.link.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(/*! ../internals/export */ 50); -var createHTML = __webpack_require__(/*! ../internals/create-html */ 288); -var forcedStringHTMLMethod = __webpack_require__(/*! ../internals/string-html-forced */ 289); - -// `String.prototype.link` method -// https://tc39.github.io/ecma262/#sec-string.prototype.link -$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, { - link: function link(url) { - return createHTML(this, 'a', 'href', url); - } -}); - - -/***/ }), -/* 176 */ -/*!***********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/a-function.js ***! - \***********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = function (it) { - if (typeof it != 'function') { - throw TypeError(String(it) + ' is not a function'); - } return it; -}; - - -/***/ }), -/* 177 */, -/* 178 */, -/* 179 */, -/* 180 */ -/*!***********************************************************!*\ - !*** ./node_modules/core-js/internals/native-weak-map.js ***! - \***********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ../internals/global */ 27); -var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ 94); - -var WeakMap = global.WeakMap; - -module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap)); - - -/***/ }), -/* 181 */ -/*!***********************************************************************!*\ - !*** ./node_modules/core-js/internals/copy-constructor-properties.js ***! - \***********************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var has = __webpack_require__(/*! ../internals/has */ 42); -var ownKeys = __webpack_require__(/*! ../internals/own-keys */ 182); -var getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ 91); -var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ 52); - -module.exports = function (target, source) { - var keys = ownKeys(source); - var defineProperty = definePropertyModule.f; - var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); - } -}; - - -/***/ }), -/* 182 */ -/*!****************************************************!*\ - !*** ./node_modules/core-js/internals/own-keys.js ***! - \****************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ 59); -var getOwnPropertyNamesModule = __webpack_require__(/*! ../internals/object-get-own-property-names */ 183); -var getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ 169); -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); - -// all object keys, includes non-enumerable and symbols -module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { - var keys = getOwnPropertyNamesModule.f(anObject(it)); - var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; - return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; -}; - - -/***/ }), -/* 183 */ -/*!*************************************************************************!*\ - !*** ./node_modules/core-js/internals/object-get-own-property-names.js ***! - \*************************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ 141); -var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ 108); - -var hiddenKeys = enumBugKeys.concat('length', 'prototype'); - -// `Object.getOwnPropertyNames` method -// https://tc39.github.io/ecma262/#sec-object.getownpropertynames -exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return internalObjectKeys(O, hiddenKeys); -}; - - -/***/ }), -/* 184 */ -/*!*************************************************************!*\ - !*** ./node_modules/core-js/internals/to-absolute-index.js ***! - \*************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(/*! ../internals/to-integer */ 81); - -var max = Math.max; -var min = Math.min; - -// Helper for a popular repeating case of the spec: -// Let integer be ? ToInteger(index). -// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). -module.exports = function (index, length) { - var integer = toInteger(index); - return integer < 0 ? max(integer + length, 0) : min(integer, length); -}; - - -/***/ }), -/* 185 */ -/*!*************************************************************!*\ - !*** ./node_modules/core-js/internals/use-symbol-as-uid.js ***! - \*************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ 131); - -module.exports = NATIVE_SYMBOL - // eslint-disable-next-line no-undef - && !Symbol.sham - // eslint-disable-next-line no-undef - && typeof Symbol.iterator == 'symbol'; - - -/***/ }), -/* 186 */ -/*!************************************************************!*\ - !*** ./node_modules/core-js/internals/object-to-string.js ***! - \************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ 95); -var classof = __webpack_require__(/*! ../internals/classof */ 132); - -// `Object.prototype.toString` method implementation -// https://tc39.github.io/ecma262/#sec-object.prototype.tostring -module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() { - return '[object ' + classof(this) + ']'; -}; - - -/***/ }), -/* 187 */ -/*!************************************************************!*\ - !*** ./node_modules/core-js/internals/string-multibyte.js ***! - \************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(/*! ../internals/to-integer */ 81); -var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ 56); - -// `String.prototype.{ codePointAt, at }` methods implementation -var createMethod = function (CONVERT_TO_STRING) { - return function ($this, pos) { - var S = String(requireObjectCoercible($this)); - var position = toInteger(pos); - var size = S.length; - var first, second; - if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; - first = S.charCodeAt(position); - return first < 0xD800 || first > 0xDBFF || position + 1 === size - || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF - ? CONVERT_TO_STRING ? S.charAt(position) : first - : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; - }; -}; - -module.exports = { - // `String.prototype.codePointAt` method - // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat - codeAt: createMethod(false), - // `String.prototype.at` method - // https://github.com/mathiasbynens/String.prototype.at - charAt: createMethod(true) -}; - - -/***/ }), -/* 188 */ -/*!***********************************************************!*\ - !*** ./node_modules/core-js/modules/es.array.iterator.js ***! - \***********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 72); -var addToUnscopables = __webpack_require__(/*! ../internals/add-to-unscopables */ 219); -var Iterators = __webpack_require__(/*! ../internals/iterators */ 74); -var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ 88); -var defineIterator = __webpack_require__(/*! ../internals/define-iterator */ 220); - -var ARRAY_ITERATOR = 'Array Iterator'; -var setInternalState = InternalStateModule.set; -var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); - -// `Array.prototype.entries` method -// https://tc39.github.io/ecma262/#sec-array.prototype.entries -// `Array.prototype.keys` method -// https://tc39.github.io/ecma262/#sec-array.prototype.keys -// `Array.prototype.values` method -// https://tc39.github.io/ecma262/#sec-array.prototype.values -// `Array.prototype[@@iterator]` method -// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator -// `CreateArrayIterator` internal method -// https://tc39.github.io/ecma262/#sec-createarrayiterator -module.exports = defineIterator(Array, 'Array', function (iterated, kind) { - setInternalState(this, { - type: ARRAY_ITERATOR, - target: toIndexedObject(iterated), // target - index: 0, // next index - kind: kind // kind - }); -// `%ArrayIteratorPrototype%.next` method -// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next -}, function () { - var state = getInternalState(this); - var target = state.target; - var kind = state.kind; - var index = state.index++; - if (!target || index >= target.length) { - state.target = undefined; - return { value: undefined, done: true }; - } - if (kind == 'keys') return { value: index, done: false }; - if (kind == 'values') return { value: target[index], done: false }; - return { value: [index, target[index]], done: false }; -}, 'values'); - -// argumentsList[@@iterator] is %ArrayProto_values% -// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject -// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject -Iterators.Arguments = Iterators.Array; - -// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables -addToUnscopables('keys'); -addToUnscopables('values'); -addToUnscopables('entries'); - - -/***/ }), -/* 189 */ -/*!********************************************************!*\ - !*** ./node_modules/core-js/internals/redefine-all.js ***! - \********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var redefine = __webpack_require__(/*! ../internals/redefine */ 53); - -module.exports = function (target, src, options) { - for (var key in src) redefine(target, key, src[key], options); - return target; -}; - - -/***/ }), -/* 190 */ -/*!*******************************************************!*\ - !*** ./node_modules/core-js/internals/set-species.js ***! - \*******************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ 59); -var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ 52); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 47); - -var SPECIES = wellKnownSymbol('species'); - -module.exports = function (CONSTRUCTOR_NAME) { - var Constructor = getBuiltIn(CONSTRUCTOR_NAME); - var defineProperty = definePropertyModule.f; - - if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) { - defineProperty(Constructor, SPECIES, { - configurable: true, - get: function () { return this; } - }); - } -}; - - -/***/ }), -/* 191 */ -/*!*******************************************************!*\ - !*** ./node_modules/core-js/internals/an-instance.js ***! - \*******************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = function (it, Constructor, name) { - if (!(it instanceof Constructor)) { - throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation'); - } return it; -}; - - -/***/ }), -/* 192 */ -/*!********************************************************************!*\ - !*** ./node_modules/core-js/internals/is-array-iterator-method.js ***! - \********************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); -var Iterators = __webpack_require__(/*! ../internals/iterators */ 74); - -var ITERATOR = wellKnownSymbol('iterator'); -var ArrayPrototype = Array.prototype; - -// check on default Array iterator -module.exports = function (it) { - return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); -}; - - -/***/ }), -/* 193 */ -/*!***************************************************************!*\ - !*** ./node_modules/core-js/internals/get-iterator-method.js ***! - \***************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var classof = __webpack_require__(/*! ../internals/classof */ 132); -var Iterators = __webpack_require__(/*! ../internals/iterators */ 74); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); - -var ITERATOR = wellKnownSymbol('iterator'); - -module.exports = function (it) { - if (it != undefined) return it[ITERATOR] - || it['@@iterator'] - || Iterators[classof(it)]; -}; - - -/***/ }), -/* 194 */ -/*!****************************************************************************!*\ - !*** ./node_modules/core-js/internals/call-with-safe-iteration-closing.js ***! - \****************************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); - -// call something on iterator step with safe closing on error -module.exports = function (iterator, fn, value, ENTRIES) { - try { - return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); - // 7.4.6 IteratorClose(iterator, completion) - } catch (error) { - var returnMethod = iterator['return']; - if (returnMethod !== undefined) anObject(returnMethod.call(iterator)); - throw error; - } -}; - - -/***/ }), -/* 195 */ -/*!**************************************************************************!*\ - !*** ./node_modules/core-js/internals/check-correctness-of-iteration.js ***! - \**************************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); - -var ITERATOR = wellKnownSymbol('iterator'); -var SAFE_CLOSING = false; - -try { - var called = 0; - var iteratorWithReturn = { - next: function () { - return { done: !!called++ }; - }, - 'return': function () { - SAFE_CLOSING = true; - } - }; - iteratorWithReturn[ITERATOR] = function () { - return this; - }; - // eslint-disable-next-line no-throw-literal - Array.from(iteratorWithReturn, function () { throw 2; }); -} catch (error) { /* empty */ } - -module.exports = function (exec, SKIP_CLOSING) { - if (!SKIP_CLOSING && !SAFE_CLOSING) return false; - var ITERATION_SUPPORT = false; - try { - var object = {}; - object[ITERATOR] = function () { - return { - next: function () { - return { done: ITERATION_SUPPORT = true }; - } - }; - }; - exec(object); - } catch (error) { /* empty */ } - return ITERATION_SUPPORT; -}; - - -/***/ }), -/* 196 */ -/*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/microtask.js ***! - \*****************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ../internals/global */ 27); -var getOwnPropertyDescriptor = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ 91).f; -var classof = __webpack_require__(/*! ../internals/classof-raw */ 49); -var macrotask = __webpack_require__(/*! ../internals/task */ 133).set; -var IS_IOS = __webpack_require__(/*! ../internals/engine-is-ios */ 134); - -var MutationObserver = global.MutationObserver || global.WebKitMutationObserver; -var process = global.process; -var Promise = global.Promise; -var IS_NODE = classof(process) == 'process'; -// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask` -var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask'); -var queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value; - -var flush, head, last, notify, toggle, node, promise, then; - -// modern engines have queueMicrotask method -if (!queueMicrotask) { - flush = function () { - var parent, fn; - if (IS_NODE && (parent = process.domain)) parent.exit(); - while (head) { - fn = head.fn; - head = head.next; - try { - fn(); - } catch (error) { - if (head) notify(); - else last = undefined; - throw error; - } - } last = undefined; - if (parent) parent.enter(); - }; - - // Node.js - if (IS_NODE) { - notify = function () { - process.nextTick(flush); - }; - // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 - } else if (MutationObserver && !IS_IOS) { - toggle = true; - node = document.createTextNode(''); - new MutationObserver(flush).observe(node, { characterData: true }); - notify = function () { - node.data = toggle = !toggle; - }; - // environments with maybe non-completely correct, but existent Promise - } else if (Promise && Promise.resolve) { - // Promise.resolve without an argument throws an error in LG WebOS 2 - promise = Promise.resolve(undefined); - then = promise.then; - notify = function () { - then.call(promise, flush); - }; - // for other environments - macrotask based on: - // - setImmediate - // - MessageChannel - // - window.postMessag - // - onreadystatechange - // - setTimeout - } else { - notify = function () { - // strange IE + webpack dev server bug - use .call(global) - macrotask.call(global, flush); - }; - } -} - -module.exports = queueMicrotask || function (fn) { - var task = { fn: fn, next: undefined }; - if (last) last.next = task; - if (!head) { - head = task; - notify(); - } last = task; -}; - - -/***/ }), -/* 197 */ -/*!**************************************************************!*\ - !*** ./node_modules/core-js/internals/host-report-errors.js ***! - \**************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ../internals/global */ 27); - -module.exports = function (a, b) { - var console = global.console; - if (console && console.error) { - arguments.length === 1 ? console.error(a) : console.error(a, b); - } -}; - - -/***/ }), -/* 198 */ -/*!*********************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.match.js ***! - \*********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var fixRegExpWellKnownSymbolLogic = __webpack_require__(/*! ../internals/fix-regexp-well-known-symbol-logic */ 135); -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); -var toLength = __webpack_require__(/*! ../internals/to-length */ 73); -var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ 56); -var advanceStringIndex = __webpack_require__(/*! ../internals/advance-string-index */ 154); -var regExpExec = __webpack_require__(/*! ../internals/regexp-exec-abstract */ 136); - -// @@match logic -fixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) { - return [ - // `String.prototype.match` method - // https://tc39.github.io/ecma262/#sec-string.prototype.match - function match(regexp) { - var O = requireObjectCoercible(this); - var matcher = regexp == undefined ? undefined : regexp[MATCH]; - return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O)); - }, - // `RegExp.prototype[@@match]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match - function (regexp) { - var res = maybeCallNative(nativeMatch, regexp, this); - if (res.done) return res.value; - - var rx = anObject(regexp); - var S = String(this); - - if (!rx.global) return regExpExec(rx, S); - - var fullUnicode = rx.unicode; - rx.lastIndex = 0; - var A = []; - var n = 0; - var result; - while ((result = regExpExec(rx, S)) !== null) { - var matchStr = String(result[0]); - A[n] = matchStr; - if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); - n++; - } - return n === 0 ? null : A; - } - ]; -}); - - -/***/ }), -/* 199 */ -/*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/indexed-object.js ***! - \***************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var fails = __webpack_require__(/*! ../internals/fails */ 55); -var classof = __webpack_require__(/*! ../internals/classof-raw */ 156); - -var split = ''.split; - -// fallback for non-array-like ES3 and non-enumerable old V8 strings -module.exports = fails(function () { - // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 - // eslint-disable-next-line no-prototype-builtins - return !Object('z').propertyIsEnumerable(0); -}) ? function (it) { - return classof(it) == 'String' ? split.call(it, '') : Object(it); -} : Object; - - -/***/ }), -/* 200 */ -/*!*************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/require-object-coercible.js ***! - \*************************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -// `RequireObjectCoercible` abstract operation -// https://tc39.es/ecma262/#sec-requireobjectcoercible -module.exports = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; -}; - - -/***/ }), -/* 201 */ -/*!*************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/to-primitive.js ***! - \*************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(/*! ../internals/is-object */ 77); - -// `ToPrimitive` abstract operation -// https://tc39.es/ecma262/#sec-toprimitive -// instead of the ES6 spec version, we didn't implement @@toPrimitive case -// and the second argument - flag - preferred type is a string -module.exports = function (input, PREFERRED_STRING) { - if (!isObject(input)) return input; - var fn, val; - if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; - if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val; - if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; - throw TypeError("Can't convert object to primitive value"); -}; - - -/***/ }), -/* 202 */ -/*!***********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/to-integer.js ***! - \***********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -var ceil = Math.ceil; -var floor = Math.floor; - -// `ToInteger` abstract operation -// https://tc39.es/ecma262/#sec-tointeger -module.exports = function (argument) { - return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); -}; - - -/***/ }), -/* 203 */ -/*!******************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/engine-v8-version.js ***! - \******************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ../internals/global */ 66); -var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ 296); - -var process = global.process; -var versions = process && process.versions; -var v8 = versions && versions.v8; -var match, version; - -if (v8) { - match = v8.split('.'); - version = match[0] + match[1]; -} else if (userAgent) { - match = userAgent.match(/Edge\/(\d+)/); - if (!match || match[1] >= 74) { - match = userAgent.match(/Chrome\/(\d+)/); - if (match) version = match[1]; - } -} - -module.exports = version && +version; - - -/***/ }), -/* 204 */ -/*!*************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/shared-store.js ***! - \*************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ../internals/global */ 66); -var setGlobal = __webpack_require__(/*! ../internals/set-global */ 302); - -var SHARED = '__core-js_shared__'; -var store = global[SHARED] || setGlobal(SHARED, {}); - -module.exports = store; - - -/***/ }), -/* 205 */ -/*!***********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/shared-key.js ***! - \***********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var shared = __webpack_require__(/*! ../internals/shared */ 244); -var uid = __webpack_require__(/*! ../internals/uid */ 245); - -var keys = shared('keys'); - -module.exports = function (key) { - return keys[key] || (keys[key] = uid(key)); -}; - - -/***/ }), -/* 206 */ -/*!********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/is-pure.js ***! - \********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = true; - - -/***/ }), -/* 207 */ -/*!************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/hidden-keys.js ***! - \************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = {}; - - -/***/ }), -/* 208 */ -/*!**********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/to-string-tag-support.js ***! - \**********************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 69); - -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -var test = {}; - -test[TO_STRING_TAG] = 'z'; - -module.exports = String(test) === '[object z]'; - - -/***/ }), -/* 209 */ -/*!***********************************!*\ - !*** ./dev/Component/Checkbox.js ***! - \***********************************/ -/*! exports provided: default */ -/*! all exports used */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); -/* harmony import */ var Component_Abstract__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Component/Abstract */ 35); -/* harmony import */ var Component_AbstractCheckbox__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Component/AbstractCheckbox */ 165); - - - - -var CheckboxComponent = /*#__PURE__*/function (_AbstractCheckbox) { - Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(CheckboxComponent, _AbstractCheckbox); - - function CheckboxComponent() { - return _AbstractCheckbox.apply(this, arguments) || this; - } - - return CheckboxComponent; -}(Component_AbstractCheckbox__WEBPACK_IMPORTED_MODULE_2__[/* AbstractCheckbox */ "a"]); - -/* harmony default export */ __webpack_exports__["default"] = (Object(Component_Abstract__WEBPACK_IMPORTED_MODULE_1__[/* componentExportHelper */ "b"])(CheckboxComponent, 'CheckboxComponent')); - -/***/ }), -/* 210 */ -/*!**********************************!*\ - !*** ./dev/Common/HtmlEditor.js ***! - \**********************************/ -/*! exports provided: HtmlEditor, default */ -/*! all exports used */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HtmlEditor", function() { return HtmlEditor; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return HtmlEditor; }); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec */ 45); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.match */ 198); -/* harmony import */ var core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.string.replace */ 57); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/web.timers */ 68); -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/bind */ 26); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/defineProperty */ 17); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! $ */ 8); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Common/Globals */ 6); -/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Storage/Settings */ 5); - - - - - - - - - - - - - -var HtmlEditor = /*#__PURE__*/function () { - /** - * @param {Object} element - * @param {Function=} onBlur - * @param {Function=} onReady - * @param {Function=} onModeChange - */ - function HtmlEditor(element, onBlur, onReady, onModeChange) { - if (onBlur === void 0) { - onBlur = null; - } - - if (onReady === void 0) { - onReady = null; - } - - if (onModeChange === void 0) { - onModeChange = null; - } - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this, "editor", void 0); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this, "blurTimer", 0); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this, "__resizable", false); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this, "__inited", false); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this, "onBlur", null); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this, "onReady", null); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this, "onModeChange", null); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this, "element", void 0); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this, "$element", void 0); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this, "resize", void 0); - - this.onBlur = onBlur; - this.onReady = onReady; - this.onModeChange = onModeChange; - this.element = element; - this.$element = $__WEBPACK_IMPORTED_MODULE_8___default()(element); - this.resize = ___WEBPACK_IMPORTED_MODULE_7___default.a.throttle(_babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_4___default()(___WEBPACK_IMPORTED_MODULE_7___default.a).call(___WEBPACK_IMPORTED_MODULE_7___default.a, this.resizeEditor, this), 100); - this.init(); - } - - var _proto = HtmlEditor.prototype; - - _proto.runOnBlur = function runOnBlur() { - if (this.onBlur) { - this.onBlur(); - } - }; - - _proto.blurTrigger = function blurTrigger() { - var _this = this; - - if (this.onBlur) { - window__WEBPACK_IMPORTED_MODULE_6___default.a.clearTimeout(this.blurTimer); - this.blurTimer = window__WEBPACK_IMPORTED_MODULE_6___default.a.setTimeout(function () { - _this.runOnBlur(); - }, Common_Enums__WEBPACK_IMPORTED_MODULE_10__["Magics"].Time200ms); - } - }; - - _proto.focusTrigger = function focusTrigger() { - if (this.onBlur) { - window__WEBPACK_IMPORTED_MODULE_6___default.a.clearTimeout(this.blurTimer); - } - } - /** - * @returns {boolean} - */ - ; - - _proto.isHtml = function isHtml() { - return this.editor ? 'wysiwyg' === this.editor.mode : false; - } - /** - * @returns {void} - */ - ; - - _proto.clearCachedSignature = function clearCachedSignature() { - if (this.editor) { - this.editor.execCommand('insertSignature', { - clearCache: true - }); - } - } - /** - * @param {string} signature - * @param {bool} html - * @param {bool} insertBefore - * @returns {void} - */ - ; - - _proto.setSignature = function setSignature(signature, html, insertBefore) { - if (insertBefore === void 0) { - insertBefore = false; - } - - if (this.editor) { - this.editor.execCommand('insertSignature', { - isHtml: html, - insertBefore: insertBefore, - signature: signature - }); - } - } - /** - * @returns {boolean} - */ - ; - - _proto.checkDirty = function checkDirty() { - return this.editor ? this.editor.checkDirty() : false; - }; - - _proto.resetDirty = function resetDirty() { - if (this.editor) { - this.editor.resetDirty(); - } - } - /** - * @param {boolean=} wrapIsHtml = false - * @returns {string} - */ - ; - - _proto.getData = function getData(wrapIsHtml) { - if (wrapIsHtml === void 0) { - wrapIsHtml = false; - } - - var result = ''; - - if (this.editor) { - try { - if ('plain' === this.editor.mode && this.editor.plugins.plain && this.editor.__plain) { - result = this.editor.__plain.getRawData(); - } else { - result = wrapIsHtml ? '
' + this.editor.getData() + '
' : this.editor.getData(); - } - } catch (e) {} // eslint-disable-line no-empty - - } - - return result; - } - /** - * @param {boolean=} wrapIsHtml = false - * @returns {string} - */ - ; - - _proto.getDataWithHtmlMark = function getDataWithHtmlMark(wrapIsHtml) { - if (wrapIsHtml === void 0) { - wrapIsHtml = false; - } - - return (this.isHtml() ? ':HTML:' : '') + this.getData(wrapIsHtml); - }; - - _proto.modeToggle = function modeToggle(plain, resize) { - if (this.editor) { - try { - if (plain) { - if ('plain' === this.editor.mode) { - this.editor.setMode('wysiwyg'); - } - } else if ('wysiwyg' === this.editor.mode) { - this.editor.setMode('plain'); - } - } catch (e) {} // eslint-disable-line no-empty - - - if (resize) { - this.resize(); - } - } - }; - - _proto.setHtmlOrPlain = function setHtmlOrPlain(text, focus) { - if (':HTML:' === text.substr(0, 6)) { - this.setHtml(text.substr(6), focus); - } else { - this.setPlain(text, focus); - } - }; - - _proto.setHtml = function setHtml(html, focus) { - if (this.editor && this.__inited) { - this.clearCachedSignature(); - this.modeToggle(true); - html = html.replace(/]*><\/p>/gi, ''); - - try { - this.editor.setData(html); - } catch (e) {} // eslint-disable-line no-empty - - - if (focus) { - this.focus(); - } - } - }; - - _proto.replaceHtml = function replaceHtml(find, _replaceHtml) { - if (this.editor && this.__inited && 'wysiwyg' === this.editor.mode) { - try { - this.editor.setData(this.editor.getData().replace(find, _replaceHtml)); - } catch (e) {} // eslint-disable-line no-empty - - } - }; - - _proto.setPlain = function setPlain(plain, focus) { - if (this.editor && this.__inited) { - this.clearCachedSignature(); - this.modeToggle(false); - - if ('plain' === this.editor.mode && this.editor.plugins.plain && this.editor.__plain) { - this.editor.__plain.setRawData(plain); - } else { - try { - this.editor.setData(plain); - } catch (e) {} // eslint-disable-line no-empty - - } - - if (focus) { - this.focus(); - } - } - }; - - _proto.init = function init() { - var _this2 = this; - - if (this.element && !this.editor) { - var initFunc = function initFunc() { - var config = Common_Globals__WEBPACK_IMPORTED_MODULE_9__["htmlEditorDefaultConfig"], - language = Storage_Settings__WEBPACK_IMPORTED_MODULE_11__["settingsGet"]('Language'), - allowSource = !!Storage_Settings__WEBPACK_IMPORTED_MODULE_11__["appSettingsGet"]('allowHtmlEditorSourceButton'), - biti = !!Storage_Settings__WEBPACK_IMPORTED_MODULE_11__["appSettingsGet"]('allowHtmlEditorBitiButtons'); - - if ((allowSource || !biti) && !config.toolbarGroups.__cfgInited) { - config.toolbarGroups.__cfgInited = true; - - if (allowSource) { - config.removeButtons = config.removeButtons.replace(',Source', ''); - } - - if (!biti) { - config.removePlugins += (config.removePlugins ? ',' : '') + 'bidi'; - } - } - - config.enterMode = window__WEBPACK_IMPORTED_MODULE_6___default.a.CKEDITOR.ENTER_BR; - config.shiftEnterMode = window__WEBPACK_IMPORTED_MODULE_6___default.a.CKEDITOR.ENTER_P; - config.language = Common_Globals__WEBPACK_IMPORTED_MODULE_9__["htmlEditorLangsMap"][(language || 'en').toLowerCase()] || 'en'; - - if (window__WEBPACK_IMPORTED_MODULE_6___default.a.CKEDITOR.env) { - window__WEBPACK_IMPORTED_MODULE_6___default.a.CKEDITOR.env.isCompatible = true; - } - - _this2.editor = window__WEBPACK_IMPORTED_MODULE_6___default.a.CKEDITOR.appendTo(_this2.element, config); - - _this2.editor.on('key', function (event) { - if (event && event.data && Common_Enums__WEBPACK_IMPORTED_MODULE_10__["EventKeyCode"].Tab === event.data.keyCode) { - return false; - } - - return true; - }); - - _this2.editor.on('blur', function () { - _this2.blurTrigger(); - }); - - _this2.editor.on('mode', function () { - _this2.blurTrigger(); - - if (_this2.onModeChange) { - _this2.onModeChange('plain' !== _this2.editor.mode); - } - }); - - _this2.editor.on('focus', function () { - _this2.focusTrigger(); - }); - - if (window__WEBPACK_IMPORTED_MODULE_6___default.a.FileReader) { - _this2.editor.on('drop', function (event) { - if (0 < event.data.dataTransfer.getFilesCount()) { - var file = event.data.dataTransfer.getFile(0); - - if (file && window__WEBPACK_IMPORTED_MODULE_6___default.a.FileReader && event.data.dataTransfer.id && file.type && file.type.match(/^image/i)) { - var id = event.data.dataTransfer.id, - imageId = "[img=" + id + "]", - reader = new window__WEBPACK_IMPORTED_MODULE_6___default.a.FileReader(); - - reader.onloadend = function () { - if (reader.result) { - _this2.replaceHtml(imageId, ""); - } - }; - - reader.readAsDataURL(file); - event.data.dataTransfer.setData('text/html', imageId); - } - } - }); - } - - _this2.editor.on('instanceReady', function () { - if (_this2.editor.removeMenuItem) { - _this2.editor.removeMenuItem('cut'); - - _this2.editor.removeMenuItem('copy'); - - _this2.editor.removeMenuItem('paste'); - } - - _this2.__resizable = true; - _this2.__inited = true; - - _this2.resize(); - - if (_this2.onReady) { - _this2.onReady(); - } - }); - }; - - if (window__WEBPACK_IMPORTED_MODULE_6___default.a.CKEDITOR) { - initFunc(); - } else { - window__WEBPACK_IMPORTED_MODULE_6___default.a.__initEditor = initFunc; - } - } - }; - - _proto.focus = function focus() { - if (this.editor) { - try { - this.editor.focus(); - } catch (e) {} // eslint-disable-line no-empty - - } - }; - - _proto.hasFocus = function hasFocus() { - if (this.editor) { - try { - return !!this.editor.focusManager.hasFocus; - } catch (e) {} // eslint-disable-line no-empty - - } - - return false; - }; - - _proto.blur = function blur() { - if (this.editor) { - try { - this.editor.focusManager.blur(true); - } catch (e) {} // eslint-disable-line no-empty - - } - }; - - _proto.resizeEditor = function resizeEditor() { - if (this.editor && this.__resizable) { - try { - this.editor.resize(this.$element.width(), this.$element.innerHeight()); - } catch (e) {} // eslint-disable-line no-empty - - } - }; - - _proto.setReadOnly = function setReadOnly(value) { - if (this.editor) { - try { - this.editor.setReadOnly(!!value); - } catch (e) {} // eslint-disable-line no-empty - - } - }; - - _proto.clear = function clear(focus) { - this.setHtml('', focus); - }; - - return HtmlEditor; -}(); - - - -/***/ }), -/* 211 */ -/*!*******************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/reduce.js ***! - \*******************************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/stable/instance/reduce */ 290); - -/***/ }), -/* 212 */ -/*!**************************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/last-index-of.js ***! - \**************************************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/stable/instance/last-index-of */ 329); - -/***/ }), -/* 213 */ -/*!*********************************!*\ - !*** ./dev/External/Opentip.js ***! - \*********************************/ -/*! exports provided: Opentip, default */ -/*! exports used: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* unused harmony export Opentip */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Opentip; }); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_0__); - -var Opentip = window__WEBPACK_IMPORTED_MODULE_0___default.a.Opentip || {}; -Opentip.styles = Opentip.styles || {}; -Opentip.styles.rainloop = { - 'extends': 'standard', - 'fixed': true, - 'target': true, - 'delay': 0.2, - 'hideDelay': 0, - 'hideEffect': 'fade', - 'hideEffectDuration': 0.2, - 'showEffect': 'fade', - 'showEffectDuration': 0.2, - 'showOn': 'mouseover click', - 'removeElementsOnHide': true, - 'background': '#fff', - 'shadow': false, - 'borderColor': '#999', - 'borderRadius': 2, - 'borderWidth': 1 -}; -Opentip.styles.rainloopTip = { - 'extends': 'rainloop', - 'delay': 0.4, - 'group': 'rainloopTips' -}; -Opentip.styles.rainloopErrorTip = { - 'extends': 'rainloop', - 'className': 'rainloopErrorTip' -}; - - -/***/ }), -/* 214 */ -/*!*****************************************!*\ - !*** ./node_modules/pikaday/pikaday.js ***! - \*****************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -/*! - * Pikaday - * - * Copyright © 2014 David Bushell | BSD & MIT license | https://github.com/Pikaday/Pikaday - */ - -(function (root, factory) -{ - 'use strict'; - - var moment; - if (true) { - // CommonJS module - // Load moment.js as an optional dependency - try { moment = __webpack_require__(/*! moment */ 98); } catch (e) {} - module.exports = factory(moment); - } else {} -}(this, function (moment) -{ - 'use strict'; - - /** - * feature detection and helper functions - */ - var hasMoment = typeof moment === 'function', - - hasEventListeners = !!window.addEventListener, - - document = window.document, - - sto = window.setTimeout, - - addEvent = function(el, e, callback, capture) - { - if (hasEventListeners) { - el.addEventListener(e, callback, !!capture); - } else { - el.attachEvent('on' + e, callback); - } - }, - - removeEvent = function(el, e, callback, capture) - { - if (hasEventListeners) { - el.removeEventListener(e, callback, !!capture); - } else { - el.detachEvent('on' + e, callback); - } - }, - - trim = function(str) - { - return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g,''); - }, - - hasClass = function(el, cn) - { - return (' ' + el.className + ' ').indexOf(' ' + cn + ' ') !== -1; - }, - - addClass = function(el, cn) - { - if (!hasClass(el, cn)) { - el.className = (el.className === '') ? cn : el.className + ' ' + cn; - } - }, - - removeClass = function(el, cn) - { - el.className = trim((' ' + el.className + ' ').replace(' ' + cn + ' ', ' ')); - }, - - isArray = function(obj) - { - return (/Array/).test(Object.prototype.toString.call(obj)); - }, - - isDate = function(obj) - { - return (/Date/).test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime()); - }, - - isWeekend = function(date) - { - var day = date.getDay(); - return day === 0 || day === 6; - }, - - isLeapYear = function(year) - { - // solution by Matti Virkkunen: http://stackoverflow.com/a/4881951 - return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0; - }, - - getDaysInMonth = function(year, month) - { - return [31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month]; - }, - - setToStartOfDay = function(date) - { - if (isDate(date)) date.setHours(0,0,0,0); - }, - - compareDates = function(a,b) - { - // weak date comparison (use setToStartOfDay(date) to ensure correct result) - return a.getTime() === b.getTime(); - }, - - extend = function(to, from, overwrite) - { - var prop, hasProp; - for (prop in from) { - hasProp = to[prop] !== undefined; - if (hasProp && typeof from[prop] === 'object' && from[prop] !== null && from[prop].nodeName === undefined) { - if (isDate(from[prop])) { - if (overwrite) { - to[prop] = new Date(from[prop].getTime()); - } - } - else if (isArray(from[prop])) { - if (overwrite) { - to[prop] = from[prop].slice(0); - } - } else { - to[prop] = extend({}, from[prop], overwrite); - } - } else if (overwrite || !hasProp) { - to[prop] = from[prop]; - } - } - return to; - }, - - fireEvent = function(el, eventName, data) - { - var ev; - - if (document.createEvent) { - ev = document.createEvent('HTMLEvents'); - ev.initEvent(eventName, true, false); - ev = extend(ev, data); - el.dispatchEvent(ev); - } else if (document.createEventObject) { - ev = document.createEventObject(); - ev = extend(ev, data); - el.fireEvent('on' + eventName, ev); - } - }, - - adjustCalendar = function(calendar) { - if (calendar.month < 0) { - calendar.year -= Math.ceil(Math.abs(calendar.month)/12); - calendar.month += 12; - } - if (calendar.month > 11) { - calendar.year += Math.floor(Math.abs(calendar.month)/12); - calendar.month -= 12; - } - return calendar; - }, - - /** - * defaults and localisation - */ - defaults = { - - // bind the picker to a form field - field: null, - - // automatically show/hide the picker on `field` focus (default `true` if `field` is set) - bound: undefined, - - // data-attribute on the input field with an aria assistance tekst (only applied when `bound` is set) - ariaLabel: 'Use the arrow keys to pick a date', - - // position of the datepicker, relative to the field (default to bottom & left) - // ('bottom' & 'left' keywords are not used, 'top' & 'right' are modifier on the bottom/left position) - position: 'bottom left', - - // automatically fit in the viewport even if it means repositioning from the position option - reposition: true, - - // the default output format for `.toString()` and `field` value - format: 'YYYY-MM-DD', - - // the toString function which gets passed a current date object and format - // and returns a string - toString: null, - - // used to create date object from current input string - parse: null, - - // the initial date to view when first opened - defaultDate: null, - - // make the `defaultDate` the initial selected value - setDefaultDate: false, - - // first day of week (0: Sunday, 1: Monday etc) - firstDay: 0, - - // the default flag for moment's strict date parsing - formatStrict: false, - - // the minimum/earliest date that can be selected - minDate: null, - // the maximum/latest date that can be selected - maxDate: null, - - // number of years either side, or array of upper/lower range - yearRange: 10, - - // show week numbers at head of row - showWeekNumber: false, - - // Week picker mode - pickWholeWeek: false, - - // used internally (don't config outside) - minYear: 0, - maxYear: 9999, - minMonth: undefined, - maxMonth: undefined, - - startRange: null, - endRange: null, - - isRTL: false, - - // Additional text to append to the year in the calendar title - yearSuffix: '', - - // Render the month after year in the calendar title - showMonthAfterYear: false, - - // Render days of the calendar grid that fall in the next or previous month - showDaysInNextAndPreviousMonths: false, - - // Allows user to select days that fall in the next or previous month - enableSelectionDaysInNextAndPreviousMonths: false, - - // how many months are visible - numberOfMonths: 1, - - // when numberOfMonths is used, this will help you to choose where the main calendar will be (default `left`, can be set to `right`) - // only used for the first display or when a selected date is not visible - mainCalendar: 'left', - - // Specify a DOM element to render the calendar in - container: undefined, - - // Blur field when date is selected - blurFieldOnSelect : true, - - // internationalization - i18n: { - previousMonth : 'Previous Month', - nextMonth : 'Next Month', - months : ['January','February','March','April','May','June','July','August','September','October','November','December'], - weekdays : ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'], - weekdaysShort : ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'] - }, - - // Theme Classname - theme: null, - - // events array - events: [], - - // callback function - onSelect: null, - onOpen: null, - onClose: null, - onDraw: null, - - // Enable keyboard input - keyboardInput: true - }, - - - /** - * templating functions to abstract HTML rendering - */ - renderDayName = function(opts, day, abbr) - { - day += opts.firstDay; - while (day >= 7) { - day -= 7; - } - return abbr ? opts.i18n.weekdaysShort[day] : opts.i18n.weekdays[day]; - }, - - renderDay = function(opts) - { - var arr = []; - var ariaSelected = 'false'; - if (opts.isEmpty) { - if (opts.showDaysInNextAndPreviousMonths) { - arr.push('is-outside-current-month'); - - if(!opts.enableSelectionDaysInNextAndPreviousMonths) { - arr.push('is-selection-disabled'); - } - - } else { - return ''; - } - } - if (opts.isDisabled) { - arr.push('is-disabled'); - } - if (opts.isToday) { - arr.push('is-today'); - } - if (opts.isSelected) { - arr.push('is-selected'); - ariaSelected = 'true'; - } - if (opts.hasEvent) { - arr.push('has-event'); - } - if (opts.isInRange) { - arr.push('is-inrange'); - } - if (opts.isStartRange) { - arr.push('is-startrange'); - } - if (opts.isEndRange) { - arr.push('is-endrange'); - } - return '' + - '' + - ''; - }, - - renderWeek = function (d, m, y) { - // Lifted from http://javascript.about.com/library/blweekyear.htm, lightly modified. - var onejan = new Date(y, 0, 1), - weekNum = Math.ceil((((new Date(y, m, d) - onejan) / 86400000) + onejan.getDay()+1)/7); - return '' + weekNum + ''; - }, - - renderRow = function(days, isRTL, pickWholeWeek, isRowSelected) - { - return '' + (isRTL ? days.reverse() : days).join('') + ''; - }, - - renderBody = function(rows) - { - return '' + rows.join('') + ''; - }, - - renderHead = function(opts) - { - var i, arr = []; - if (opts.showWeekNumber) { - arr.push(''); - } - for (i = 0; i < 7; i++) { - arr.push('' + renderDayName(opts, i, true) + ''); - } - return '' + (opts.isRTL ? arr.reverse() : arr).join('') + ''; - }, - - renderTitle = function(instance, c, year, month, refYear, randId) - { - var i, j, arr, - opts = instance._o, - isMinYear = year === opts.minYear, - isMaxYear = year === opts.maxYear, - html = '
', - monthHtml, - yearHtml, - prev = true, - next = true; - - for (arr = [], i = 0; i < 12; i++) { - arr.push(''); - } - - monthHtml = '
' + opts.i18n.months[month] + '
'; - - if (isArray(opts.yearRange)) { - i = opts.yearRange[0]; - j = opts.yearRange[1] + 1; - } else { - i = year - opts.yearRange; - j = 1 + year + opts.yearRange; - } - - for (arr = []; i < j && i <= opts.maxYear; i++) { - if (i >= opts.minYear) { - arr.push(''); - } - } - yearHtml = '
' + year + opts.yearSuffix + '
'; - - if (opts.showMonthAfterYear) { - html += yearHtml + monthHtml; - } else { - html += monthHtml + yearHtml; - } - - if (isMinYear && (month === 0 || opts.minMonth >= month)) { - prev = false; - } - - if (isMaxYear && (month === 11 || opts.maxMonth <= month)) { - next = false; - } - - if (c === 0) { - html += ''; - } - if (c === (instance._o.numberOfMonths - 1) ) { - html += ''; - } - - return html += '
'; - }, - - renderTable = function(opts, data, randId) - { - return '' + renderHead(opts) + renderBody(data) + '
'; - }, - - - /** - * Pikaday constructor - */ - Pikaday = function(options) - { - var self = this, - opts = self.config(options); - - self._onMouseDown = function(e) - { - if (!self._v) { - return; - } - e = e || window.event; - var target = e.target || e.srcElement; - if (!target) { - return; - } - - if (!hasClass(target, 'is-disabled')) { - if (hasClass(target, 'pika-button') && !hasClass(target, 'is-empty') && !hasClass(target.parentNode, 'is-disabled')) { - self.setDate(new Date(target.getAttribute('data-pika-year'), target.getAttribute('data-pika-month'), target.getAttribute('data-pika-day'))); - if (opts.bound) { - sto(function() { - self.hide(); - if (opts.blurFieldOnSelect && opts.field) { - opts.field.blur(); - } - }, 100); - } - } - else if (hasClass(target, 'pika-prev')) { - self.prevMonth(); - } - else if (hasClass(target, 'pika-next')) { - self.nextMonth(); - } - } - if (!hasClass(target, 'pika-select')) { - // if this is touch event prevent mouse events emulation - if (e.preventDefault) { - e.preventDefault(); - } else { - e.returnValue = false; - return false; - } - } else { - self._c = true; - } - }; - - self._onChange = function(e) - { - e = e || window.event; - var target = e.target || e.srcElement; - if (!target) { - return; - } - if (hasClass(target, 'pika-select-month')) { - self.gotoMonth(target.value); - } - else if (hasClass(target, 'pika-select-year')) { - self.gotoYear(target.value); - } - }; - - self._onKeyChange = function(e) - { - e = e || window.event; - - if (self.isVisible()) { - - switch(e.keyCode){ - case 13: - case 27: - if (opts.field) { - opts.field.blur(); - } - break; - case 37: - e.preventDefault(); - self.adjustDate('subtract', 1); - break; - case 38: - self.adjustDate('subtract', 7); - break; - case 39: - self.adjustDate('add', 1); - break; - case 40: - self.adjustDate('add', 7); - break; - } - } - }; - - self._onInputChange = function(e) - { - var date; - - if (e.firedBy === self) { - return; - } - if (opts.parse) { - date = opts.parse(opts.field.value, opts.format); - } else if (hasMoment) { - date = moment(opts.field.value, opts.format, opts.formatStrict); - date = (date && date.isValid()) ? date.toDate() : null; - } - else { - date = new Date(Date.parse(opts.field.value)); - } - if (isDate(date)) { - self.setDate(date); - } - if (!self._v) { - self.show(); - } - }; - - self._onInputFocus = function() - { - self.show(); - }; - - self._onInputClick = function() - { - self.show(); - }; - - self._onInputBlur = function() - { - // IE allows pika div to gain focus; catch blur the input field - var pEl = document.activeElement; - do { - if (hasClass(pEl, 'pika-single')) { - return; - } - } - while ((pEl = pEl.parentNode)); - - if (!self._c) { - self._b = sto(function() { - self.hide(); - }, 50); - } - self._c = false; - }; - - self._onClick = function(e) - { - e = e || window.event; - var target = e.target || e.srcElement, - pEl = target; - if (!target) { - return; - } - if (!hasEventListeners && hasClass(target, 'pika-select')) { - if (!target.onchange) { - target.setAttribute('onchange', 'return;'); - addEvent(target, 'change', self._onChange); - } - } - do { - if (hasClass(pEl, 'pika-single') || pEl === opts.trigger) { - return; - } - } - while ((pEl = pEl.parentNode)); - if (self._v && target !== opts.trigger && pEl !== opts.trigger) { - self.hide(); - } - }; - - self.el = document.createElement('div'); - self.el.className = 'pika-single' + (opts.isRTL ? ' is-rtl' : '') + (opts.theme ? ' ' + opts.theme : ''); - - addEvent(self.el, 'mousedown', self._onMouseDown, true); - addEvent(self.el, 'touchend', self._onMouseDown, true); - addEvent(self.el, 'change', self._onChange); - - if (opts.keyboardInput) { - addEvent(document, 'keydown', self._onKeyChange); - } - - if (opts.field) { - if (opts.container) { - opts.container.appendChild(self.el); - } else if (opts.bound) { - document.body.appendChild(self.el); - } else { - opts.field.parentNode.insertBefore(self.el, opts.field.nextSibling); - } - addEvent(opts.field, 'change', self._onInputChange); - - if (!opts.defaultDate) { - if (hasMoment && opts.field.value) { - opts.defaultDate = moment(opts.field.value, opts.format).toDate(); - } else { - opts.defaultDate = new Date(Date.parse(opts.field.value)); - } - opts.setDefaultDate = true; - } - } - - var defDate = opts.defaultDate; - - if (isDate(defDate)) { - if (opts.setDefaultDate) { - self.setDate(defDate, true); - } else { - self.gotoDate(defDate); - } - } else { - self.gotoDate(new Date()); - } - - if (opts.bound) { - this.hide(); - self.el.className += ' is-bound'; - addEvent(opts.trigger, 'click', self._onInputClick); - addEvent(opts.trigger, 'focus', self._onInputFocus); - addEvent(opts.trigger, 'blur', self._onInputBlur); - } else { - this.show(); - } - }; - - - /** - * public Pikaday API - */ - Pikaday.prototype = { - - - /** - * configure functionality - */ - config: function(options) - { - if (!this._o) { - this._o = extend({}, defaults, true); - } - - var opts = extend(this._o, options, true); - - opts.isRTL = !!opts.isRTL; - - opts.field = (opts.field && opts.field.nodeName) ? opts.field : null; - - opts.theme = (typeof opts.theme) === 'string' && opts.theme ? opts.theme : null; - - opts.bound = !!(opts.bound !== undefined ? opts.field && opts.bound : opts.field); - - opts.trigger = (opts.trigger && opts.trigger.nodeName) ? opts.trigger : opts.field; - - opts.disableWeekends = !!opts.disableWeekends; - - opts.disableDayFn = (typeof opts.disableDayFn) === 'function' ? opts.disableDayFn : null; - - var nom = parseInt(opts.numberOfMonths, 10) || 1; - opts.numberOfMonths = nom > 4 ? 4 : nom; - - if (!isDate(opts.minDate)) { - opts.minDate = false; - } - if (!isDate(opts.maxDate)) { - opts.maxDate = false; - } - if ((opts.minDate && opts.maxDate) && opts.maxDate < opts.minDate) { - opts.maxDate = opts.minDate = false; - } - if (opts.minDate) { - this.setMinDate(opts.minDate); - } - if (opts.maxDate) { - this.setMaxDate(opts.maxDate); - } - - if (isArray(opts.yearRange)) { - var fallback = new Date().getFullYear() - 10; - opts.yearRange[0] = parseInt(opts.yearRange[0], 10) || fallback; - opts.yearRange[1] = parseInt(opts.yearRange[1], 10) || fallback; - } else { - opts.yearRange = Math.abs(parseInt(opts.yearRange, 10)) || defaults.yearRange; - if (opts.yearRange > 100) { - opts.yearRange = 100; - } - } - - return opts; - }, - - /** - * return a formatted string of the current selection (using Moment.js if available) - */ - toString: function(format) - { - format = format || this._o.format; - if (!isDate(this._d)) { - return ''; - } - if (this._o.toString) { - return this._o.toString(this._d, format); - } - if (hasMoment) { - return moment(this._d).format(format); - } - return this._d.toDateString(); - }, - - /** - * return a Moment.js object of the current selection (if available) - */ - getMoment: function() - { - return hasMoment ? moment(this._d) : null; - }, - - /** - * set the current selection from a Moment.js object (if available) - */ - setMoment: function(date, preventOnSelect) - { - if (hasMoment && moment.isMoment(date)) { - this.setDate(date.toDate(), preventOnSelect); - } - }, - - /** - * return a Date object of the current selection - */ - getDate: function() - { - return isDate(this._d) ? new Date(this._d.getTime()) : null; - }, - - /** - * set the current selection - */ - setDate: function(date, preventOnSelect) - { - if (!date) { - this._d = null; - - if (this._o.field) { - this._o.field.value = ''; - fireEvent(this._o.field, 'change', { firedBy: this }); - } - - return this.draw(); - } - if (typeof date === 'string') { - date = new Date(Date.parse(date)); - } - if (!isDate(date)) { - return; - } - - var min = this._o.minDate, - max = this._o.maxDate; - - if (isDate(min) && date < min) { - date = min; - } else if (isDate(max) && date > max) { - date = max; - } - - this._d = new Date(date.getTime()); - setToStartOfDay(this._d); - this.gotoDate(this._d); - - if (this._o.field) { - this._o.field.value = this.toString(); - fireEvent(this._o.field, 'change', { firedBy: this }); - } - if (!preventOnSelect && typeof this._o.onSelect === 'function') { - this._o.onSelect.call(this, this.getDate()); - } - }, - - /** - * change view to a specific date - */ - gotoDate: function(date) - { - var newCalendar = true; - - if (!isDate(date)) { - return; - } - - if (this.calendars) { - var firstVisibleDate = new Date(this.calendars[0].year, this.calendars[0].month, 1), - lastVisibleDate = new Date(this.calendars[this.calendars.length-1].year, this.calendars[this.calendars.length-1].month, 1), - visibleDate = date.getTime(); - // get the end of the month - lastVisibleDate.setMonth(lastVisibleDate.getMonth()+1); - lastVisibleDate.setDate(lastVisibleDate.getDate()-1); - newCalendar = (visibleDate < firstVisibleDate.getTime() || lastVisibleDate.getTime() < visibleDate); - } - - if (newCalendar) { - this.calendars = [{ - month: date.getMonth(), - year: date.getFullYear() - }]; - if (this._o.mainCalendar === 'right') { - this.calendars[0].month += 1 - this._o.numberOfMonths; - } - } - - this.adjustCalendars(); - }, - - adjustDate: function(sign, days) { - - var day = this.getDate() || new Date(); - var difference = parseInt(days)*24*60*60*1000; - - var newDay; - - if (sign === 'add') { - newDay = new Date(day.valueOf() + difference); - } else if (sign === 'subtract') { - newDay = new Date(day.valueOf() - difference); - } - - this.setDate(newDay); - }, - - adjustCalendars: function() { - this.calendars[0] = adjustCalendar(this.calendars[0]); - for (var c = 1; c < this._o.numberOfMonths; c++) { - this.calendars[c] = adjustCalendar({ - month: this.calendars[0].month + c, - year: this.calendars[0].year - }); - } - this.draw(); - }, - - gotoToday: function() - { - this.gotoDate(new Date()); - }, - - /** - * change view to a specific month (zero-index, e.g. 0: January) - */ - gotoMonth: function(month) - { - if (!isNaN(month)) { - this.calendars[0].month = parseInt(month, 10); - this.adjustCalendars(); - } - }, - - nextMonth: function() - { - this.calendars[0].month++; - this.adjustCalendars(); - }, - - prevMonth: function() - { - this.calendars[0].month--; - this.adjustCalendars(); - }, - - /** - * change view to a specific full year (e.g. "2012") - */ - gotoYear: function(year) - { - if (!isNaN(year)) { - this.calendars[0].year = parseInt(year, 10); - this.adjustCalendars(); - } - }, - - /** - * change the minDate - */ - setMinDate: function(value) - { - if(value instanceof Date) { - setToStartOfDay(value); - this._o.minDate = value; - this._o.minYear = value.getFullYear(); - this._o.minMonth = value.getMonth(); - } else { - this._o.minDate = defaults.minDate; - this._o.minYear = defaults.minYear; - this._o.minMonth = defaults.minMonth; - this._o.startRange = defaults.startRange; - } - - this.draw(); - }, - - /** - * change the maxDate - */ - setMaxDate: function(value) - { - if(value instanceof Date) { - setToStartOfDay(value); - this._o.maxDate = value; - this._o.maxYear = value.getFullYear(); - this._o.maxMonth = value.getMonth(); - } else { - this._o.maxDate = defaults.maxDate; - this._o.maxYear = defaults.maxYear; - this._o.maxMonth = defaults.maxMonth; - this._o.endRange = defaults.endRange; - } - - this.draw(); - }, - - setStartRange: function(value) - { - this._o.startRange = value; - }, - - setEndRange: function(value) - { - this._o.endRange = value; - }, - - /** - * refresh the HTML - */ - draw: function(force) - { - if (!this._v && !force) { - return; - } - var opts = this._o, - minYear = opts.minYear, - maxYear = opts.maxYear, - minMonth = opts.minMonth, - maxMonth = opts.maxMonth, - html = '', - randId; - - if (this._y <= minYear) { - this._y = minYear; - if (!isNaN(minMonth) && this._m < minMonth) { - this._m = minMonth; - } - } - if (this._y >= maxYear) { - this._y = maxYear; - if (!isNaN(maxMonth) && this._m > maxMonth) { - this._m = maxMonth; - } - } - - randId = 'pika-title-' + Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 2); - - for (var c = 0; c < opts.numberOfMonths; c++) { - html += '
' + renderTitle(this, c, this.calendars[c].year, this.calendars[c].month, this.calendars[0].year, randId) + this.render(this.calendars[c].year, this.calendars[c].month, randId) + '
'; - } - - this.el.innerHTML = html; - - if (opts.bound) { - if(opts.field.type !== 'hidden') { - sto(function() { - opts.trigger.focus(); - }, 1); - } - } - - if (typeof this._o.onDraw === 'function') { - this._o.onDraw(this); - } - - if (opts.bound) { - // let the screen reader user know to use arrow keys - opts.field.setAttribute('aria-label', opts.ariaLabel); - } - }, - - adjustPosition: function() - { - var field, pEl, width, height, viewportWidth, viewportHeight, scrollTop, left, top, clientRect, leftAligned, bottomAligned; - - if (this._o.container) return; - - this.el.style.position = 'absolute'; - - field = this._o.trigger; - pEl = field; - width = this.el.offsetWidth; - height = this.el.offsetHeight; - viewportWidth = window.innerWidth || document.documentElement.clientWidth; - viewportHeight = window.innerHeight || document.documentElement.clientHeight; - scrollTop = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop; - leftAligned = true; - bottomAligned = true; - - if (typeof field.getBoundingClientRect === 'function') { - clientRect = field.getBoundingClientRect(); - left = clientRect.left + window.pageXOffset; - top = clientRect.bottom + window.pageYOffset; - } else { - left = pEl.offsetLeft; - top = pEl.offsetTop + pEl.offsetHeight; - while((pEl = pEl.offsetParent)) { - left += pEl.offsetLeft; - top += pEl.offsetTop; - } - } - - // default position is bottom & left - if ((this._o.reposition && left + width > viewportWidth) || - ( - this._o.position.indexOf('right') > -1 && - left - width + field.offsetWidth > 0 - ) - ) { - left = left - width + field.offsetWidth; - leftAligned = false; - } - if ((this._o.reposition && top + height > viewportHeight + scrollTop) || - ( - this._o.position.indexOf('top') > -1 && - top - height - field.offsetHeight > 0 - ) - ) { - top = top - height - field.offsetHeight; - bottomAligned = false; - } - - this.el.style.left = left + 'px'; - this.el.style.top = top + 'px'; - - addClass(this.el, leftAligned ? 'left-aligned' : 'right-aligned'); - addClass(this.el, bottomAligned ? 'bottom-aligned' : 'top-aligned'); - removeClass(this.el, !leftAligned ? 'left-aligned' : 'right-aligned'); - removeClass(this.el, !bottomAligned ? 'bottom-aligned' : 'top-aligned'); - }, - - /** - * render HTML for a particular month - */ - render: function(year, month, randId) - { - var opts = this._o, - now = new Date(), - days = getDaysInMonth(year, month), - before = new Date(year, month, 1).getDay(), - data = [], - row = []; - setToStartOfDay(now); - if (opts.firstDay > 0) { - before -= opts.firstDay; - if (before < 0) { - before += 7; - } - } - var previousMonth = month === 0 ? 11 : month - 1, - nextMonth = month === 11 ? 0 : month + 1, - yearOfPreviousMonth = month === 0 ? year - 1 : year, - yearOfNextMonth = month === 11 ? year + 1 : year, - daysInPreviousMonth = getDaysInMonth(yearOfPreviousMonth, previousMonth); - var cells = days + before, - after = cells; - while(after > 7) { - after -= 7; - } - cells += 7 - after; - var isWeekSelected = false; - for (var i = 0, r = 0; i < cells; i++) - { - var day = new Date(year, month, 1 + (i - before)), - isSelected = isDate(this._d) ? compareDates(day, this._d) : false, - isToday = compareDates(day, now), - hasEvent = opts.events.indexOf(day.toDateString()) !== -1 ? true : false, - isEmpty = i < before || i >= (days + before), - dayNumber = 1 + (i - before), - monthNumber = month, - yearNumber = year, - isStartRange = opts.startRange && compareDates(opts.startRange, day), - isEndRange = opts.endRange && compareDates(opts.endRange, day), - isInRange = opts.startRange && opts.endRange && opts.startRange < day && day < opts.endRange, - isDisabled = (opts.minDate && day < opts.minDate) || - (opts.maxDate && day > opts.maxDate) || - (opts.disableWeekends && isWeekend(day)) || - (opts.disableDayFn && opts.disableDayFn(day)); - - if (isEmpty) { - if (i < before) { - dayNumber = daysInPreviousMonth + dayNumber; - monthNumber = previousMonth; - yearNumber = yearOfPreviousMonth; - } else { - dayNumber = dayNumber - days; - monthNumber = nextMonth; - yearNumber = yearOfNextMonth; - } - } - - var dayConfig = { - day: dayNumber, - month: monthNumber, - year: yearNumber, - hasEvent: hasEvent, - isSelected: isSelected, - isToday: isToday, - isDisabled: isDisabled, - isEmpty: isEmpty, - isStartRange: isStartRange, - isEndRange: isEndRange, - isInRange: isInRange, - showDaysInNextAndPreviousMonths: opts.showDaysInNextAndPreviousMonths, - enableSelectionDaysInNextAndPreviousMonths: opts.enableSelectionDaysInNextAndPreviousMonths - }; - - if (opts.pickWholeWeek && isSelected) { - isWeekSelected = true; - } - - row.push(renderDay(dayConfig)); - - if (++r === 7) { - if (opts.showWeekNumber) { - row.unshift(renderWeek(i - before, month, year)); - } - data.push(renderRow(row, opts.isRTL, opts.pickWholeWeek, isWeekSelected)); - row = []; - r = 0; - isWeekSelected = false; - } - } - return renderTable(opts, data, randId); - }, - - isVisible: function() - { - return this._v; - }, - - show: function() - { - if (!this.isVisible()) { - this._v = true; - this.draw(); - removeClass(this.el, 'is-hidden'); - if (this._o.bound) { - addEvent(document, 'click', this._onClick); - this.adjustPosition(); - } - if (typeof this._o.onOpen === 'function') { - this._o.onOpen.call(this); - } - } - }, - - hide: function() - { - var v = this._v; - if (v !== false) { - if (this._o.bound) { - removeEvent(document, 'click', this._onClick); - } - this.el.style.position = 'static'; // reset - this.el.style.left = 'auto'; - this.el.style.top = 'auto'; - addClass(this.el, 'is-hidden'); - this._v = false; - if (v !== undefined && typeof this._o.onClose === 'function') { - this._o.onClose.call(this); - } - } - }, - - /** - * GAME OVER - */ - destroy: function() - { - var opts = this._o; - - this.hide(); - removeEvent(this.el, 'mousedown', this._onMouseDown, true); - removeEvent(this.el, 'touchend', this._onMouseDown, true); - removeEvent(this.el, 'change', this._onChange); - if (opts.keyboardInput) { - removeEvent(document, 'keydown', this._onKeyChange); - } - if (opts.field) { - removeEvent(opts.field, 'change', this._onInputChange); - if (opts.bound) { - removeEvent(opts.trigger, 'click', this._onInputClick); - removeEvent(opts.trigger, 'focus', this._onInputFocus); - removeEvent(opts.trigger, 'blur', this._onInputBlur); - } - } - if (this.el.parentNode) { - this.el.parentNode.removeChild(this.el); - } - } - - }; - - return Pikaday; -})); - - -/***/ }), -/* 215 */ -/*!************************************!*\ - !*** external "window.Autolinker" ***! - \************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports) { - -module.exports = window.Autolinker; - -/***/ }), -/* 216 */ -/*!****************************!*\ - !*** ./dev/Common/Mime.js ***! - \****************************/ -/*! exports provided: Mime, default */ -/*! exports used: Mime */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Mime; }); -/* unused harmony export default */ -/* eslint key-spacing: 0 */ - -/* eslint quote-props: 0 */ -var Mime = { - 'eml': 'message/rfc822', - 'mime': 'message/rfc822', - 'txt': 'text/plain', - 'text': 'text/plain', - 'def': 'text/plain', - 'list': 'text/plain', - 'in': 'text/plain', - 'ini': 'text/plain', - 'log': 'text/plain', - 'sql': 'text/plain', - 'cfg': 'text/plain', - 'conf': 'text/plain', - 'asc': 'text/plain', - 'rtx': 'text/richtext', - 'vcard': 'text/vcard', - 'vcf': 'text/vcard', - 'htm': 'text/html', - 'html': 'text/html', - 'csv': 'text/csv', - 'ics': 'text/calendar', - 'ifb': 'text/calendar', - 'xml': 'text/xml', - 'json': 'application/json', - 'swf': 'application/x-shockwave-flash', - 'hlp': 'application/winhlp', - 'wgt': 'application/widget', - 'chm': 'application/vnd.ms-htmlhelp', - 'p10': 'application/pkcs10', - 'p7c': 'application/pkcs7-mime', - 'p7m': 'application/pkcs7-mime', - 'p7s': 'application/pkcs7-signature', - 'torrent': 'application/x-bittorrent', - // scripts - 'js': 'application/javascript', - 'pl': 'text/perl', - 'css': 'text/css', - 'asp': 'text/asp', - 'php': 'application/x-httpd-php', - 'php3': 'application/x-httpd-php', - 'php4': 'application/x-httpd-php', - 'php5': 'application/x-httpd-php', - 'phtml': 'application/x-httpd-php', - // images - 'png': 'image/png', - 'jpg': 'image/jpeg', - 'jpeg': 'image/jpeg', - 'jpe': 'image/jpeg', - 'jfif': 'image/jpeg', - 'gif': 'image/gif', - 'bmp': 'image/bmp', - 'cgm': 'image/cgm', - 'ief': 'image/ief', - 'ico': 'image/x-icon', - 'tif': 'image/tiff', - 'tiff': 'image/tiff', - 'svg': 'image/svg+xml', - 'svgz': 'image/svg+xml', - 'djv': 'image/vnd.djvu', - 'djvu': 'image/vnd.djvu', - 'webp': 'image/webp', - // archives - 'zip': 'application/zip', - '7z': 'application/x-7z-compressed', - 'rar': 'application/x-rar-compressed', - 'exe': 'application/x-msdownload', - 'dll': 'application/x-msdownload', - 'scr': 'application/x-msdownload', - 'com': 'application/x-msdownload', - 'bat': 'application/x-msdownload', - 'msi': 'application/x-msdownload', - 'cab': 'application/vnd.ms-cab-compressed', - 'gz': 'application/x-gzip', - 'tgz': 'application/x-gzip', - 'bz': 'application/x-bzip', - 'bz2': 'application/x-bzip2', - 'deb': 'application/x-debian-package', - // fonts - 'psf': 'application/x-font-linux-psf', - 'otf': 'application/x-font-otf', - 'pcf': 'application/x-font-pcf', - 'snf': 'application/x-font-snf', - 'ttf': 'application/x-font-ttf', - 'ttc': 'application/x-font-ttf', - // audio - 'mp3': 'audio/mpeg', - 'amr': 'audio/amr', - 'aac': 'audio/x-aac', - 'aif': 'audio/x-aiff', - 'aifc': 'audio/x-aiff', - 'aiff': 'audio/x-aiff', - 'wav': 'audio/x-wav', - 'wma': 'audio/x-ms-wma', - 'wax': 'audio/x-ms-wax', - 'midi': 'audio/midi', - 'mp4a': 'audio/mp4', - 'ogg': 'audio/ogg', - 'weba': 'audio/webm', - 'ra': 'audio/x-pn-realaudio', - 'ram': 'audio/x-pn-realaudio', - 'rmp': 'audio/x-pn-realaudio-plugin', - 'm3u': 'audio/x-mpegurl', - // video - 'flv': 'video/x-flv', - 'qt': 'video/quicktime', - 'mov': 'video/quicktime', - 'wmv': 'video/windows-media', - 'avi': 'video/x-msvideo', - 'mpg': 'video/mpeg', - 'mpeg': 'video/mpeg', - 'mpe': 'video/mpeg', - 'm1v': 'video/mpeg', - 'm2v': 'video/mpeg', - '3gp': 'video/3gpp', - '3g2': 'video/3gpp2', - 'h261': 'video/h261', - 'h263': 'video/h263', - 'h264': 'video/h264', - 'jpgv': 'video/jpgv', - 'mp4': 'video/mp4', - 'mp4v': 'video/mp4', - 'mpg4': 'video/mp4', - 'ogv': 'video/ogg', - 'webm': 'video/webm', - 'm4v': 'video/x-m4v', - 'asf': 'video/x-ms-asf', - 'asx': 'video/x-ms-asf', - 'wm': 'video/x-ms-wm', - 'wmx': 'video/x-ms-wmx', - 'wvx': 'video/x-ms-wvx', - 'movie': 'video/x-sgi-movie', - // adobe - 'pdf': 'application/pdf', - 'psd': 'image/vnd.adobe.photoshop', - 'ai': 'application/postscript', - 'eps': 'application/postscript', - 'ps': 'application/postscript', - // ms office - 'doc': 'application/msword', - 'dot': 'application/msword', - 'rtf': 'application/rtf', - 'xls': 'application/vnd.ms-excel', - 'ppt': 'application/vnd.ms-powerpoint', - 'docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - 'dotx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', - 'pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation', - // open office - 'odt': 'application/vnd.oasis.opendocument.text', - 'ods': 'application/vnd.oasis.opendocument.spreadsheet' -}; - - -/***/ }), -/* 217 */, -/* 218 */ -/*!*******************************************************!*\ - !*** ./node_modules/core-js/internals/object-keys.js ***! - \*******************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ 141); -var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ 108); - -// `Object.keys` method -// https://tc39.github.io/ecma262/#sec-object.keys -module.exports = Object.keys || function keys(O) { - return internalObjectKeys(O, enumBugKeys); -}; - - -/***/ }), -/* 219 */ -/*!**************************************************************!*\ - !*** ./node_modules/core-js/internals/add-to-unscopables.js ***! - \**************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); -var create = __webpack_require__(/*! ../internals/object-create */ 151); -var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ 52); - -var UNSCOPABLES = wellKnownSymbol('unscopables'); -var ArrayPrototype = Array.prototype; - -// Array.prototype[@@unscopables] -// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables -if (ArrayPrototype[UNSCOPABLES] == undefined) { - definePropertyModule.f(ArrayPrototype, UNSCOPABLES, { - configurable: true, - value: create(null) - }); -} - -// add a key to Array.prototype[@@unscopables] -module.exports = function (key) { - ArrayPrototype[UNSCOPABLES][key] = true; -}; - - -/***/ }), -/* 220 */ -/*!***********************************************************!*\ - !*** ./node_modules/core-js/internals/define-iterator.js ***! - \***********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var $ = __webpack_require__(/*! ../internals/export */ 50); -var createIteratorConstructor = __webpack_require__(/*! ../internals/create-iterator-constructor */ 230); -var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ 152); -var setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ 221); -var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ 109); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 48); -var redefine = __webpack_require__(/*! ../internals/redefine */ 53); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); -var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ 80); -var Iterators = __webpack_require__(/*! ../internals/iterators */ 74); -var IteratorsCore = __webpack_require__(/*! ../internals/iterators-core */ 170); - -var IteratorPrototype = IteratorsCore.IteratorPrototype; -var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; -var ITERATOR = wellKnownSymbol('iterator'); -var KEYS = 'keys'; -var VALUES = 'values'; -var ENTRIES = 'entries'; - -var returnThis = function () { return this; }; - -module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { - createIteratorConstructor(IteratorConstructor, NAME, next); - - var getIterationMethod = function (KIND) { - if (KIND === DEFAULT && defaultIterator) return defaultIterator; - if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND]; - switch (KIND) { - case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; - case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; - case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; - } return function () { return new IteratorConstructor(this); }; - }; - - var TO_STRING_TAG = NAME + ' Iterator'; - var INCORRECT_VALUES_NAME = false; - var IterablePrototype = Iterable.prototype; - var nativeIterator = IterablePrototype[ITERATOR] - || IterablePrototype['@@iterator'] - || DEFAULT && IterablePrototype[DEFAULT]; - var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); - var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; - var CurrentIteratorPrototype, methods, KEY; - - // fix native - if (anyNativeIterator) { - CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); - if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { - if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { - if (setPrototypeOf) { - setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); - } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') { - createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis); - } - } - // Set @@toStringTag to native iterators - setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); - if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis; - } - } - - // fix Array#{values, @@iterator}.name in V8 / FF - if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { - INCORRECT_VALUES_NAME = true; - defaultIterator = function values() { return nativeIterator.call(this); }; - } - - // define iterator - if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { - createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator); - } - Iterators[NAME] = defaultIterator; - - // export additional methods - if (DEFAULT) { - methods = { - values: getIterationMethod(VALUES), - keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), - entries: getIterationMethod(ENTRIES) - }; - if (FORCED) for (KEY in methods) { - if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { - redefine(IterablePrototype, KEY, methods[KEY]); - } - } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); - } - - return methods; -}; - - -/***/ }), -/* 221 */ -/*!*******************************************************************!*\ - !*** ./node_modules/core-js/internals/object-set-prototype-of.js ***! - \*******************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); -var aPossiblePrototype = __webpack_require__(/*! ../internals/a-possible-prototype */ 232); - -// `Object.setPrototypeOf` method -// https://tc39.github.io/ecma262/#sec-object.setprototypeof -// Works with __proto__ only. Old v8 can't work with null proto objects. -/* eslint-disable no-proto */ -module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () { - var CORRECT_SETTER = false; - var test = {}; - var setter; - try { - setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set; - setter.call(test, []); - CORRECT_SETTER = test instanceof Array; - } catch (error) { /* empty */ } - return function setPrototypeOf(O, proto) { - anObject(O); - aPossiblePrototype(proto); - if (CORRECT_SETTER) setter.call(O, proto); - else O.__proto__ = proto; - return O; - }; -}() : undefined); - - -/***/ }), -/* 222 */ -/*!***************************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/web.dom-collections.iterator.js ***! - \***************************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(/*! ./es.array.iterator */ 223); -var DOMIterables = __webpack_require__(/*! ../internals/dom-iterables */ 314); -var global = __webpack_require__(/*! ../internals/global */ 66); -var classof = __webpack_require__(/*! ../internals/classof */ 147); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 84); -var Iterators = __webpack_require__(/*! ../internals/iterators */ 158); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 69); - -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); - -for (var COLLECTION_NAME in DOMIterables) { - var Collection = global[COLLECTION_NAME]; - var CollectionPrototype = Collection && Collection.prototype; - if (CollectionPrototype && classof(CollectionPrototype) !== TO_STRING_TAG) { - createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME); - } - Iterators[COLLECTION_NAME] = Iterators.Array; -} - - -/***/ }), -/* 223 */ -/*!****************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.array.iterator.js ***! - \****************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 96); -var addToUnscopables = __webpack_require__(/*! ../internals/add-to-unscopables */ 243); -var Iterators = __webpack_require__(/*! ../internals/iterators */ 158); -var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ 299); -var defineIterator = __webpack_require__(/*! ../internals/define-iterator */ 303); - -var ARRAY_ITERATOR = 'Array Iterator'; -var setInternalState = InternalStateModule.set; -var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); - -// `Array.prototype.entries` method -// https://tc39.es/ecma262/#sec-array.prototype.entries -// `Array.prototype.keys` method -// https://tc39.es/ecma262/#sec-array.prototype.keys -// `Array.prototype.values` method -// https://tc39.es/ecma262/#sec-array.prototype.values -// `Array.prototype[@@iterator]` method -// https://tc39.es/ecma262/#sec-array.prototype-@@iterator -// `CreateArrayIterator` internal method -// https://tc39.es/ecma262/#sec-createarrayiterator -module.exports = defineIterator(Array, 'Array', function (iterated, kind) { - setInternalState(this, { - type: ARRAY_ITERATOR, - target: toIndexedObject(iterated), // target - index: 0, // next index - kind: kind // kind - }); -// `%ArrayIteratorPrototype%.next` method -// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next -}, function () { - var state = getInternalState(this); - var target = state.target; - var kind = state.kind; - var index = state.index++; - if (!target || index >= target.length) { - state.target = undefined; - return { value: undefined, done: true }; - } - if (kind == 'keys') return { value: index, done: false }; - if (kind == 'values') return { value: target[index], done: false }; - return { value: [index, target[index]], done: false }; -}, 'values'); - -// argumentsList[@@iterator] is %ArrayProto_values% -// https://tc39.es/ecma262/#sec-createunmappedargumentsobject -// https://tc39.es/ecma262/#sec-createmappedargumentsobject -Iterators.Arguments = Iterators.Array; - -// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables -addToUnscopables('keys'); -addToUnscopables('values'); -addToUnscopables('entries'); - - -/***/ }), -/* 224 */ -/*!*******************************!*\ - !*** ./dev/View/Popup/Ask.js ***! - \*******************************/ -/*! exports provided: AskPopupView, default */ -/*! all exports used */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AskPopupView", function() { return AskPopupView; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return AskPopupView; }); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! key */ 21); -/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(key__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Translator */ 9); -/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Knoin/Knoin */ 7); -/* harmony import */ var Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Knoin/AbstractViewNext */ 28); - - -var _dec, _class; - - - - - - - - -var AskPopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_6__["popup"])({ - name: 'View/Popup/Ask', - templateID: 'PopupsAsk' -}), _dec(_class = /*#__PURE__*/function (_AbstractViewNext) { - Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(AskPopupView, _AbstractViewNext); - - function AskPopupView() { - var _this; - - _this = _AbstractViewNext.call(this) || this; - _this.askDesc = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(''); - _this.yesButton = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(''); - _this.noButton = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(''); - _this.yesFocus = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(false); - _this.noFocus = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(false); - _this.fYesAction = null; - _this.fNoAction = null; - _this.bFocusYesOnShow = true; - _this.bDisabeCloseOnEsc = true; - _this.sDefaultKeyScope = Common_Enums__WEBPACK_IMPORTED_MODULE_3__["KeyState"].PopupAsk; - return _this; - } - - var _proto = AskPopupView.prototype; - - _proto.clearPopup = function clearPopup() { - this.askDesc(''); - this.yesButton(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_5__["i18n"])('POPUPS_ASK/BUTTON_YES')); - this.noButton(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_5__["i18n"])('POPUPS_ASK/BUTTON_NO')); - this.yesFocus(false); - this.noFocus(false); - this.fYesAction = null; - this.fNoAction = null; - }; - - _proto.yesClick = function yesClick() { - this.cancelCommand(); - - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["isFunc"])(this.fYesAction)) { - this.fYesAction.call(null); - } - }; - - _proto.noClick = function noClick() { - this.cancelCommand(); - - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["isFunc"])(this.fNoAction)) { - this.fNoAction.call(null); - } - } - /** - * @param {string} sAskDesc - * @param {Function=} fYesFunc - * @param {Function=} fNoFunc - * @param {string=} sYesButton - * @param {string=} sNoButton - * @param {boolean=} bFocusYesOnShow = true - * @returns {void} - */ - ; - - _proto.onShow = function onShow(askDesc, fYesFunc, fNoFunc, yesButton, noButton, isFocusYesOnShow) { - if (fYesFunc === void 0) { - fYesFunc = null; - } - - if (fNoFunc === void 0) { - fNoFunc = null; - } - - if (yesButton === void 0) { - yesButton = ''; - } - - if (noButton === void 0) { - noButton = ''; - } - - if (isFocusYesOnShow === void 0) { - isFocusYesOnShow = true; - } - - this.clearPopup(); - this.fYesAction = fYesFunc || null; - this.fNoAction = fNoFunc || null; - this.askDesc(askDesc || ''); - - if (yesButton) { - this.yesButton(yesButton); - } - - if (noButton) { - this.noButton(noButton); - } - - this.bFocusYesOnShow = !!isFocusYesOnShow; - }; - - _proto.onShowWithDelay = function onShowWithDelay() { - if (this.bFocusYesOnShow) { - this.yesFocus(true); - } - }; - - _proto.onBuild = function onBuild() { - var _this2 = this; - - key__WEBPACK_IMPORTED_MODULE_2___default()('tab, shift+tab, right, left', Common_Enums__WEBPACK_IMPORTED_MODULE_3__["KeyState"].PopupAsk, function () { - if (_this2.yesFocus()) { - _this2.noFocus(true); - } else { - _this2.yesFocus(true); - } - - return false; - }); - key__WEBPACK_IMPORTED_MODULE_2___default()('esc', Common_Enums__WEBPACK_IMPORTED_MODULE_3__["KeyState"].PopupAsk, function () { - _this2.noClick(); - - return false; - }); - }; - - return AskPopupView; -}(Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_7__[/* AbstractViewNext */ "a"])) || _class); - - -/***/ }), -/* 225 */, -/* 226 */, -/* 227 */ -/*!********************************************************************!*\ - !*** ./node_modules/core-js/internals/object-define-properties.js ***! - \********************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 47); -var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ 52); -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); -var objectKeys = __webpack_require__(/*! ../internals/object-keys */ 218); - -// `Object.defineProperties` method -// https://tc39.github.io/ecma262/#sec-object.defineproperties -module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = objectKeys(Properties); - var length = keys.length; - var index = 0; - var key; - while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]); - return O; -}; - - -/***/ }), -/* 228 */ -/*!***********************************************************************!*\ - !*** ./node_modules/core-js/internals/array-method-uses-to-length.js ***! - \***********************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 47); -var fails = __webpack_require__(/*! ../internals/fails */ 36); -var has = __webpack_require__(/*! ../internals/has */ 42); - -var defineProperty = Object.defineProperty; -var cache = {}; - -var thrower = function (it) { throw it; }; - -module.exports = function (METHOD_NAME, options) { - if (has(cache, METHOD_NAME)) return cache[METHOD_NAME]; - if (!options) options = {}; - var method = [][METHOD_NAME]; - var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false; - var argument0 = has(options, 0) ? options[0] : thrower; - var argument1 = has(options, 1) ? options[1] : undefined; - - return cache[METHOD_NAME] = !!method && !fails(function () { - if (ACCESSORS && !DESCRIPTORS) return true; - var O = { length: -1 }; - - if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower }); - else O[1] = 1; - - method.call(O, argument0, argument1); - }); -}; - - -/***/ }), -/* 229 */ -/*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/is-regexp.js ***! - \*****************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(/*! ../internals/is-object */ 44); -var classof = __webpack_require__(/*! ../internals/classof-raw */ 49); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); - -var MATCH = wellKnownSymbol('match'); - -// `IsRegExp` abstract operation -// https://tc39.github.io/ecma262/#sec-isregexp -module.exports = function (it) { - var isRegExp; - return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp'); -}; - - -/***/ }), -/* 230 */ -/*!***********************************************************************!*\ - !*** ./node_modules/core-js/internals/create-iterator-constructor.js ***! - \***********************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var IteratorPrototype = __webpack_require__(/*! ../internals/iterators-core */ 170).IteratorPrototype; -var create = __webpack_require__(/*! ../internals/object-create */ 151); -var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ 92); -var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ 109); -var Iterators = __webpack_require__(/*! ../internals/iterators */ 74); - -var returnThis = function () { return this; }; - -module.exports = function (IteratorConstructor, NAME, next) { - var TO_STRING_TAG = NAME + ' Iterator'; - IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) }); - setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); - Iterators[TO_STRING_TAG] = returnThis; - return IteratorConstructor; -}; - - -/***/ }), -/* 231 */ -/*!********************************************************************!*\ - !*** ./node_modules/core-js/internals/correct-prototype-getter.js ***! - \********************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var fails = __webpack_require__(/*! ../internals/fails */ 36); - -module.exports = !fails(function () { - function F() { /* empty */ } - F.prototype.constructor = null; - return Object.getPrototypeOf(new F()) !== F.prototype; -}); - - -/***/ }), -/* 232 */ -/*!****************************************************************!*\ - !*** ./node_modules/core-js/internals/a-possible-prototype.js ***! - \****************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(/*! ../internals/is-object */ 44); - -module.exports = function (it) { - if (!isObject(it) && it !== null) { - throw TypeError("Can't set " + String(it) + ' as a prototype'); - } return it; -}; - - -/***/ }), -/* 233 */ -/*!**********************************************************************!*\ - !*** ./node_modules/core-js/modules/web.dom-collections.iterator.js ***! - \**********************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ../internals/global */ 27); -var DOMIterables = __webpack_require__(/*! ../internals/dom-iterables */ 234); -var ArrayIteratorMethods = __webpack_require__(/*! ../modules/es.array.iterator */ 188); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 48); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); - -var ITERATOR = wellKnownSymbol('iterator'); -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -var ArrayValues = ArrayIteratorMethods.values; - -for (var COLLECTION_NAME in DOMIterables) { - var Collection = global[COLLECTION_NAME]; - var CollectionPrototype = Collection && Collection.prototype; - if (CollectionPrototype) { - // some Chrome versions have non-configurable methods on DOMTokenList - if (CollectionPrototype[ITERATOR] !== ArrayValues) try { - createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues); - } catch (error) { - CollectionPrototype[ITERATOR] = ArrayValues; - } - if (!CollectionPrototype[TO_STRING_TAG]) { - createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME); - } - if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { - // some Chrome versions have non-configurable methods on DOMTokenList - if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { - createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); - } catch (error) { - CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; - } - } - } -} - - -/***/ }), -/* 234 */ -/*!*********************************************************!*\ - !*** ./node_modules/core-js/internals/dom-iterables.js ***! - \*********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -// iterable DOM collections -// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods -module.exports = { - CSSRuleList: 0, - CSSStyleDeclaration: 0, - CSSValueList: 0, - ClientRectList: 0, - DOMRectList: 0, - DOMStringList: 0, - DOMTokenList: 1, - DataTransferItemList: 0, - FileList: 0, - HTMLAllCollection: 0, - HTMLCollection: 0, - HTMLFormElement: 0, - HTMLSelectElement: 0, - MediaList: 0, - MimeTypeArray: 0, - NamedNodeMap: 0, - NodeList: 1, - PaintRequestList: 0, - Plugin: 0, - PluginArray: 0, - SVGLengthList: 0, - SVGNumberList: 0, - SVGPathSegList: 0, - SVGPointList: 0, - SVGStringList: 0, - SVGTransformList: 0, - SourceBufferList: 0, - StyleSheetList: 0, - TextTrackCueList: 0, - TextTrackList: 0, - TouchList: 0 -}; - - -/***/ }), -/* 235 */, -/* 236 */ -/*!*****************************************************************!*\ - !*** ./node_modules/core-js/internals/regexp-sticky-helpers.js ***! - \*****************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var fails = __webpack_require__(/*! ./fails */ 36); - -// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError, -// so we use an intermediate function. -function RE(s, f) { - return RegExp(s, f); -} - -exports.UNSUPPORTED_Y = fails(function () { - // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError - var re = RE('a', 'y'); - re.lastIndex = 2; - return re.exec('abcd') != null; -}); - -exports.BROKEN_CARET = fails(function () { - // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 - var re = RE('^r', 'gy'); - re.lastIndex = 2; - return re.exec('str') != null; -}); - - -/***/ }), -/* 237 */ -/*!*********************************************************!*\ - !*** ./node_modules/core-js-pure/es/instance/reduce.js ***! - \*********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var reduce = __webpack_require__(/*! ../array/virtual/reduce */ 291); - -var ArrayPrototype = Array.prototype; - -module.exports = function (it) { - var own = it.reduce; - return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.reduce) ? reduce : own; -}; - - -/***/ }), -/* 238 */ -/*!***********************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-get-own-property-descriptor.js ***! - \***********************************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 76); -var propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ 293); -var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ 155); -var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 96); -var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ 201); -var has = __webpack_require__(/*! ../internals/has */ 78); -var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ 239); - -var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - -// `Object.getOwnPropertyDescriptor` method -// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor -exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { - O = toIndexedObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return nativeGetOwnPropertyDescriptor(O, P); - } catch (error) { /* empty */ } - if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); -}; - - -/***/ }), -/* 239 */ -/*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/ie8-dom-define.js ***! - \***************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 76); -var fails = __webpack_require__(/*! ../internals/fails */ 55); -var createElement = __webpack_require__(/*! ../internals/document-create-element */ 240); - -// Thank's IE8 for his funny defineProperty -module.exports = !DESCRIPTORS && !fails(function () { - return Object.defineProperty(createElement('div'), 'a', { - get: function () { return 7; } - }).a != 7; -}); - - -/***/ }), -/* 240 */ -/*!************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/document-create-element.js ***! - \************************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ../internals/global */ 66); -var isObject = __webpack_require__(/*! ../internals/is-object */ 77); - -var document = global.document; -// typeof document.createElement is 'object' in old IE -var EXISTS = isObject(document) && isObject(document.createElement); - -module.exports = function (it) { - return EXISTS ? document.createElement(it) : {}; -}; - - -/***/ }), -/* 241 */ -/*!**********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/function-bind-context.js ***! - \**********************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var aFunction = __webpack_require__(/*! ../internals/a-function */ 176); - -// optional / simple context binding -module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - switch (length) { - case 0: return function () { - return fn.call(that); - }; - case 1: return function (a) { - return fn.call(that, a); - }; - case 2: return function (a, b) { - return fn.call(that, a, b); - }; - case 3: return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - return function (/* ...args */) { - return fn.apply(that, arguments); - }; -}; - - -/***/ }), -/* 242 */ -/*!*************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/get-built-in.js ***! - \*************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var path = __webpack_require__(/*! ../internals/path */ 97); -var global = __webpack_require__(/*! ../internals/global */ 66); - -var aFunction = function (variable) { - return typeof variable == 'function' ? variable : undefined; -}; - -module.exports = function (namespace, method) { - return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) - : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method]; -}; - - -/***/ }), -/* 243 */ -/*!*******************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/add-to-unscopables.js ***! - \*******************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = function () { /* empty */ }; - - -/***/ }), -/* 244 */ -/*!*******************************************************!*\ - !*** ./node_modules/core-js-pure/internals/shared.js ***! - \*******************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ 206); -var store = __webpack_require__(/*! ../internals/shared-store */ 204); - -(module.exports = function (key, value) { - return store[key] || (store[key] = value !== undefined ? value : {}); -})('versions', []).push({ - version: '3.8.2', - mode: IS_PURE ? 'pure' : 'global', - copyright: '© 2021 Denis Pushkarev (zloirock.ru)' -}); - - -/***/ }), -/* 245 */ -/*!****************************************************!*\ - !*** ./node_modules/core-js-pure/internals/uid.js ***! - \****************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -var id = 0; -var postfix = Math.random(); - -module.exports = function (key) { - return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); -}; - - -/***/ }), -/* 246 */ -/*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/iterators-core.js ***! - \***************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ 247); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 84); -var has = __webpack_require__(/*! ../internals/has */ 78); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 69); -var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ 206); - -var ITERATOR = wellKnownSymbol('iterator'); -var BUGGY_SAFARI_ITERATORS = false; - -var returnThis = function () { return this; }; - -// `%IteratorPrototype%` object -// https://tc39.es/ecma262/#sec-%iteratorprototype%-object -var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; - -if ([].keys) { - arrayIterator = [].keys(); - // Safari 8 has buggy iterators w/o `next` - if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true; - else { - PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); - if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; - } -} - -if (IteratorPrototype == undefined) IteratorPrototype = {}; - -// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() -if (!IS_PURE && !has(IteratorPrototype, ITERATOR)) { - createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis); -} - -module.exports = { - IteratorPrototype: IteratorPrototype, - BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS -}; - - -/***/ }), -/* 247 */ -/*!************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-get-prototype-of.js ***! - \************************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var has = __webpack_require__(/*! ../internals/has */ 78); -var toObject = __webpack_require__(/*! ../internals/to-object */ 122); -var sharedKey = __webpack_require__(/*! ../internals/shared-key */ 205); -var CORRECT_PROTOTYPE_GETTER = __webpack_require__(/*! ../internals/correct-prototype-getter */ 305); - -var IE_PROTO = sharedKey('IE_PROTO'); -var ObjectPrototype = Object.prototype; - -// `Object.getPrototypeOf` method -// https://tc39.es/ecma262/#sec-object.getprototypeof -module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) return O[IE_PROTO]; - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } return O instanceof Object ? ObjectPrototype : null; -}; - - -/***/ }), -/* 248 */ -/*!**************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/native-symbol.js ***! - \**************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var fails = __webpack_require__(/*! ../internals/fails */ 55); - -module.exports = !!Object.getOwnPropertySymbols && !fails(function () { - // Chrome 38 Symbol has incorrect toString conversion - // eslint-disable-next-line no-undef - return !String(Symbol()); -}); - - -/***/ }), -/* 249 */ -/*!**************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-create.js ***! - \**************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(/*! ../internals/an-object */ 157); -var defineProperties = __webpack_require__(/*! ../internals/object-define-properties */ 307); -var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ 253); -var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ 207); -var html = __webpack_require__(/*! ../internals/html */ 309); -var documentCreateElement = __webpack_require__(/*! ../internals/document-create-element */ 240); -var sharedKey = __webpack_require__(/*! ../internals/shared-key */ 205); - -var GT = '>'; -var LT = '<'; -var PROTOTYPE = 'prototype'; -var SCRIPT = 'script'; -var IE_PROTO = sharedKey('IE_PROTO'); - -var EmptyConstructor = function () { /* empty */ }; - -var scriptTag = function (content) { - return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; -}; - -// Create object with fake `null` prototype: use ActiveX Object with cleared prototype -var NullProtoObjectViaActiveX = function (activeXDocument) { - activeXDocument.write(scriptTag('')); - activeXDocument.close(); - var temp = activeXDocument.parentWindow.Object; - activeXDocument = null; // avoid memory leak - return temp; -}; - -// Create object with fake `null` prototype: use iframe Object with cleared prototype -var NullProtoObjectViaIFrame = function () { - // Thrash, waste and sodomy: IE GC bug - var iframe = documentCreateElement('iframe'); - var JS = 'java' + SCRIPT + ':'; - var iframeDocument; - iframe.style.display = 'none'; - html.appendChild(iframe); - // https://github.com/zloirock/core-js/issues/475 - iframe.src = String(JS); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(scriptTag('document.F=Object')); - iframeDocument.close(); - return iframeDocument.F; -}; - -// Check for document.domain and active x support -// No need to use active x approach when document.domain is not set -// see https://github.com/es-shims/es5-shim/issues/150 -// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 -// avoid IE GC bug -var activeXDocument; -var NullProtoObject = function () { - try { - /* global ActiveXObject */ - activeXDocument = document.domain && new ActiveXObject('htmlfile'); - } catch (error) { /* ignore */ } - NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame(); - var length = enumBugKeys.length; - while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; - return NullProtoObject(); -}; - -hiddenKeys[IE_PROTO] = true; - -// `Object.create` method -// https://tc39.es/ecma262/#sec-object.create -module.exports = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - EmptyConstructor[PROTOTYPE] = anObject(O); - result = new EmptyConstructor(); - EmptyConstructor[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = NullProtoObject(); - return Properties === undefined ? result : defineProperties(result, Properties); -}; - - -/***/ }), -/* 250 */ -/*!************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-keys.js ***! - \************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ 308); -var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ 253); - -// `Object.keys` method -// https://tc39.es/ecma262/#sec-object.keys -module.exports = Object.keys || function keys(O) { - return internalObjectKeys(O, enumBugKeys); -}; - - -/***/ }), -/* 251 */ -/*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/array-includes.js ***! - \***************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 96); -var toLength = __webpack_require__(/*! ../internals/to-length */ 112); -var toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ 252); - -// `Array.prototype.{ indexOf, includes }` methods implementation -var createMethod = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIndexedObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - // eslint-disable-next-line no-self-compare - if (value != value) return true; - // Array#indexOf ignores holes, Array#includes - not - } else for (;length > index; index++) { - if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; -}; - -module.exports = { - // `Array.prototype.includes` method - // https://tc39.es/ecma262/#sec-array.prototype.includes - includes: createMethod(true), - // `Array.prototype.indexOf` method - // https://tc39.es/ecma262/#sec-array.prototype.indexof - indexOf: createMethod(false) -}; - - -/***/ }), -/* 252 */ -/*!******************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/to-absolute-index.js ***! - \******************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(/*! ../internals/to-integer */ 202); - -var max = Math.max; -var min = Math.min; - -// Helper for a popular repeating case of the spec: -// Let integer be ? ToInteger(index). -// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). -module.exports = function (index, length) { - var integer = toInteger(index); - return integer < 0 ? max(integer + length, 0) : min(integer, length); -}; - - -/***/ }), -/* 253 */ -/*!**************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/enum-bug-keys.js ***! - \**************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -// IE8- don't enum bug keys -module.exports = [ - 'constructor', - 'hasOwnProperty', - 'isPrototypeOf', - 'propertyIsEnumerable', - 'toLocaleString', - 'toString', - 'valueOf' -]; - - -/***/ }), -/* 254 */ -/*!******************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/set-to-string-tag.js ***! - \******************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ 208); -var defineProperty = __webpack_require__(/*! ../internals/object-define-property */ 137).f; -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 84); -var has = __webpack_require__(/*! ../internals/has */ 78); -var toString = __webpack_require__(/*! ../internals/object-to-string */ 310); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 69); - -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); - -module.exports = function (it, TAG, STATIC, SET_METHOD) { - if (it) { - var target = STATIC ? it : it.prototype; - if (!has(target, TO_STRING_TAG)) { - defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG }); - } - if (SET_METHOD && !TO_STRING_TAG_SUPPORT) { - createNonEnumerableProperty(target, 'toString', toString); - } - } -}; - - -/***/ }), -/* 255 */ -/*!****************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/create-property.js ***! - \****************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ 201); -var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ 137); -var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ 155); - -module.exports = function (object, key, value) { - var propertyKey = toPrimitive(key); - if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); - else object[propertyKey] = value; -}; - - -/***/ }), -/* 256 */ -/*!*********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/array-species-create.js ***! - \*********************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(/*! ../internals/is-object */ 77); -var isArray = __webpack_require__(/*! ../internals/is-array */ 159); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 69); - -var SPECIES = wellKnownSymbol('species'); - -// `ArraySpeciesCreate` abstract operation -// https://tc39.es/ecma262/#sec-arrayspeciescreate -module.exports = function (originalArray, length) { - var C; - if (isArray(originalArray)) { - C = originalArray.constructor; - // cross-realm fallback - if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; - else if (isObject(C)) { - C = C[SPECIES]; - if (C === null) C = undefined; - } - } return new (C === undefined ? Array : C)(length === 0 ? 0 : length); -}; - - -/***/ }), -/* 257 */ -/*!************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/whitespaces.js ***! - \************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -// a string of all valid unicode whitespaces -// eslint-disable-next-line max-len -module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; - - -/***/ }), -/* 258 */ -/*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/stable/instance/for-each.js ***! - \***************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(/*! ../../modules/web.dom-collections.iterator */ 222); -var forEach = __webpack_require__(/*! ../array/virtual/for-each */ 356); -var classof = __webpack_require__(/*! ../../internals/classof */ 147); -var ArrayPrototype = Array.prototype; - -var DOMIterables = { - DOMTokenList: true, - NodeList: true -}; - -module.exports = function (it) { - var own = it.forEach; - return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.forEach) - // eslint-disable-next-line no-prototype-builtins - || DOMIterables.hasOwnProperty(classof(it)) ? forEach : own; -}; - - -/***/ }), -/* 259 */ -/*!*************************************!*\ - !*** ./dev/View/Popup/Languages.js ***! - \*************************************/ -/*! exports provided: LanguagesPopupView, default */ -/*! all exports used */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LanguagesPopupView", function() { return LanguagesPopupView; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return LanguagesPopupView; }); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 18); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Knoin/Knoin */ 7); -/* harmony import */ var Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Knoin/AbstractViewNext */ 28); - - - -var _dec, _class; - - - - // import {view, ViewType} from 'Knoin/Knoin'; - - - -var LanguagesPopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_5__["popup"])({ - name: 'View/Popup/Languages', - templateID: 'PopupsLanguages' -}), _dec(_class = /*#__PURE__*/function (_AbstractViewNext) { - Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(LanguagesPopupView, _AbstractViewNext); - - function LanguagesPopupView() { - var _this; - - _this = _AbstractViewNext.call(this) || this; - _this.fLang = null; - _this.userLanguage = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(''); - _this.langs = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observableArray([]); - _this.languages = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].computed(function () { - var userLanguage = _this.userLanguage(); - - return _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, _this.langs(), function (language) { - return { - key: language, - user: language === userLanguage, - selected: ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false), - fullName: Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["convertLangName"])(language) - }; - }); - }); - - _this.langs.subscribe(function () { - _this.setLanguageSelection(); - }); - - return _this; - } - - var _proto = LanguagesPopupView.prototype; - - _proto.languageTooltipName = function languageTooltipName(language) { - var result = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["convertLangName"])(language, true); - return Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["convertLangName"])(language, false) === result ? '' : result; - }; - - _proto.setLanguageSelection = function setLanguageSelection() { - var currentLang = this.fLang ? ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].unwrap(this.fLang) : ''; - - ___WEBPACK_IMPORTED_MODULE_2___default.a.each(this.languages(), function (item) { - item.selected(item.key === currentLang); - }); - }; - - _proto.onBeforeShow = function onBeforeShow() { - this.fLang = null; - this.userLanguage(''); - this.langs([]); - }; - - _proto.onShow = function onShow(fLanguage, langs, userLanguage) { - this.fLang = fLanguage; - this.userLanguage(userLanguage || ''); - this.langs(langs); - }; - - _proto.changeLanguage = function changeLanguage(lang) { - if (this.fLang) { - this.fLang(lang); - } - - this.cancelCommand(); - }; - - return LanguagesPopupView; -}(Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_6__[/* AbstractViewNext */ "a"])) || _class); - - -/***/ }), -/* 260 */ -/*!**************************!*\ - !*** ./dev/bootstrap.js ***! - \**************************/ -/*! exports provided: default */ -/*! exports used: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.timers */ 68); -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/Globals */ 6); -/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Common_Plugins__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Plugins */ 39); -/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Common/Translator */ 9); -/* harmony import */ var Model_Email__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Model/Email */ 82); - - - - - - - - -/* harmony default export */ __webpack_exports__["a"] = (function (App) { - Common_Globals__WEBPACK_IMPORTED_MODULE_3__["data"].__APP__ = App; - Common_Globals__WEBPACK_IMPORTED_MODULE_3__["$win"].on('keydown', Common_Utils__WEBPACK_IMPORTED_MODULE_2__["killCtrlACtrlS"]).on('unload', function () { - Common_Globals__WEBPACK_IMPORTED_MODULE_3__["data"].bUnload = true; - }); - Common_Globals__WEBPACK_IMPORTED_MODULE_3__["$html"].addClass(Common_Globals__WEBPACK_IMPORTED_MODULE_3__["bMobileDevice"] ? 'mobile' : 'no-mobile').on('click.dropdown.data-api', Common_Utils__WEBPACK_IMPORTED_MODULE_2__["detectDropdownVisibility"]); - var rl = window__WEBPACK_IMPORTED_MODULE_1___default.a.rl || {}; - rl.i18n = Common_Translator__WEBPACK_IMPORTED_MODULE_6__["i18n"]; - rl.createCommand = Common_Utils__WEBPACK_IMPORTED_MODULE_2__["createCommandLegacy"]; - rl.addSettingsViewModel = Common_Plugins__WEBPACK_IMPORTED_MODULE_5__[/* addSettingsViewModel */ "b"]; - rl.addSettingsViewModelForAdmin = Common_Plugins__WEBPACK_IMPORTED_MODULE_5__[/* addSettingsViewModelForAdmin */ "c"]; - rl.addHook = Common_Plugins__WEBPACK_IMPORTED_MODULE_5__[/* addHook */ "a"]; - rl.settingsGet = Common_Plugins__WEBPACK_IMPORTED_MODULE_5__[/* mainSettingsGet */ "d"]; - rl.pluginSettingsGet = Common_Plugins__WEBPACK_IMPORTED_MODULE_5__[/* settingsGet */ "h"]; - rl.pluginRemoteRequest = Common_Plugins__WEBPACK_IMPORTED_MODULE_5__[/* remoteRequest */ "e"]; - rl.EmailModel = Model_Email__WEBPACK_IMPORTED_MODULE_7__["EmailModel"]; - rl.Enums = Common_Enums__WEBPACK_IMPORTED_MODULE_4__; - window__WEBPACK_IMPORTED_MODULE_1___default.a.rl = rl; - - var start = function start() { - window__WEBPACK_IMPORTED_MODULE_1___default.a.setTimeout(function () { - Common_Globals__WEBPACK_IMPORTED_MODULE_3__["$html"].removeClass('no-js rl-booted-trigger').addClass('rl-booted'); - App.bootstart(); - }, Common_Enums__WEBPACK_IMPORTED_MODULE_4__["Magics"].Time10ms); - }; - - window__WEBPACK_IMPORTED_MODULE_1___default.a.__APP_BOOT = function (fErrorCallback) { - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_2__["domReady"])(function () { - window__WEBPACK_IMPORTED_MODULE_1___default.a.setTimeout(function () { - if (window__WEBPACK_IMPORTED_MODULE_1___default.a.document.getElementById('rainloop-templates-id')) { - start(); - } else if (window__WEBPACK_IMPORTED_MODULE_1___default.a.rainloopTEMPLATES && window__WEBPACK_IMPORTED_MODULE_1___default.a.rainloopTEMPLATES[0]) { - window__WEBPACK_IMPORTED_MODULE_1___default.a.document.getElementById('rl-templates').innerHTML = window__WEBPACK_IMPORTED_MODULE_1___default.a.rainloopTEMPLATES[0]; - start(); - } else { - fErrorCallback(); - } - - window__WEBPACK_IMPORTED_MODULE_1___default.a.__APP_BOOT = null; - }, Common_Enums__WEBPACK_IMPORTED_MODULE_4__["Magics"].Time10ms); - }); - }; -}); - -/***/ }), -/* 261 */ -/*!**********************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js/object/create.js ***! - \**********************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/features/object/create */ 366); - -/***/ }), -/* 262 */ -/*!***********************************!*\ - !*** ./dev/Stores/AbstractApp.js ***! - \***********************************/ -/*! exports provided: AbstractAppStore, default */ -/*! exports used: AbstractAppStore */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AbstractAppStore; }); -/* unused harmony export default */ -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Common/Globals */ 6); -/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Storage/Settings */ 5); - - - - -var AbstractAppStore = /*#__PURE__*/function () { - function AbstractAppStore() { - this.allowLanguagesOnSettings = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(true); - this.allowLanguagesOnLogin = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(true); - this.newMoveToFolder = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(true); - this.interfaceAnimation = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(true); - this.interfaceAnimation.subscribe(function (value) { - var anim = Common_Globals__WEBPACK_IMPORTED_MODULE_1__["bMobileDevice"] || !value; - Common_Globals__WEBPACK_IMPORTED_MODULE_1__["$html"].toggleClass('rl-anim', !anim).toggleClass('no-rl-anim', anim); - }); - this.interfaceAnimation.valueHasMutated(); - this.prem = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(false); - this.community = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(true); - } - - var _proto = AbstractAppStore.prototype; - - _proto.populate = function populate() { - this.allowLanguagesOnLogin(!!Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["settingsGet"]('AllowLanguagesOnLogin')); - this.allowLanguagesOnSettings(!!Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["settingsGet"]('AllowLanguagesOnSettings')); - this.newMoveToFolder(!!Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["settingsGet"]('NewMoveToFolder')); - this.interfaceAnimation(!!Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["settingsGet"]('InterfaceAnimation')); - this.prem(!!Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["settingsGet"]('PremType')); - this.community(!!Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["settingsGet"]('Community')); - }; - - return AbstractAppStore; -}(); - - - -/***/ }), -/* 263 */ -/*!***********************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js/instance/slice.js ***! - \***********************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/features/instance/slice */ 372); - -/***/ }), -/* 264 */ -/*!*************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js/instance/reverse.js ***! - \*************************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/features/instance/reverse */ 376); - -/***/ }), -/* 265 */ -/*!************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js/instance/reduce.js ***! - \************************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/features/instance/reduce */ 380); - -/***/ }), -/* 266 */ -/*!********************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js/object/keys.js ***! - \********************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/features/object/keys */ 381); - -/***/ }), -/* 267 */ -/*!**************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js/instance/for-each.js ***! - \**************************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/features/instance/for-each */ 384); - -/***/ }), -/* 268 */ -/*!************************************!*\ - !*** ./dev/Remote/AbstractAjax.js ***! - \************************************/ -/*! exports provided: AbstractAjaxRemote, default */ -/*! exports used: AbstractAjaxRemote */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AbstractAjaxRemote; }); -/* unused harmony export default */ -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $ */ 8); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var Common_Consts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/Consts */ 25); -/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Common/Globals */ 6); -/* harmony import */ var Common_Links__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Common/Links */ 15); -/* harmony import */ var Common_Plugins__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Common/Plugins */ 39); -/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Storage/Settings */ 5); - - - - - - - - - - - -var AbstractAjaxRemote = /*#__PURE__*/function () { - function AbstractAjaxRemote() { - this.oRequests = {}; - } - /** - * @param {?Function} fCallback - * @param {string} sRequestAction - * @param {string} sType - * @param {?AjaxJsonDefaultResponse} oData - * @param {boolean} bCached - * @param {*=} oRequestParameters - */ - - - var _proto = AbstractAjaxRemote.prototype; - - _proto.defaultResponse = function defaultResponse(fCallback, sRequestAction, sType, oData, bCached, oRequestParameters) { - var fCall = function fCall() { - if (Common_Enums__WEBPACK_IMPORTED_MODULE_4__["StorageResultType"].Success !== sType && Common_Globals__WEBPACK_IMPORTED_MODULE_6__["data"].bUnload) { - sType = Common_Enums__WEBPACK_IMPORTED_MODULE_4__["StorageResultType"].Unload; - } - - if (Common_Enums__WEBPACK_IMPORTED_MODULE_4__["StorageResultType"].Success === sType && oData && !oData.Result) { - if (oData && -1 < Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["inArray"])(oData.ErrorCode, [Common_Enums__WEBPACK_IMPORTED_MODULE_4__["Notification"].AuthError, Common_Enums__WEBPACK_IMPORTED_MODULE_4__["Notification"].AccessError, Common_Enums__WEBPACK_IMPORTED_MODULE_4__["Notification"].ConnectionError, Common_Enums__WEBPACK_IMPORTED_MODULE_4__["Notification"].DomainNotAllowed, Common_Enums__WEBPACK_IMPORTED_MODULE_4__["Notification"].AccountNotAllowed, Common_Enums__WEBPACK_IMPORTED_MODULE_4__["Notification"].MailServerError, Common_Enums__WEBPACK_IMPORTED_MODULE_4__["Notification"].UnknownNotification, Common_Enums__WEBPACK_IMPORTED_MODULE_4__["Notification"].UnknownError])) { - Common_Globals__WEBPACK_IMPORTED_MODULE_6__["data"].iAjaxErrorCount += 1; - } - - if (oData && Common_Enums__WEBPACK_IMPORTED_MODULE_4__["Notification"].InvalidToken === oData.ErrorCode) { - Common_Globals__WEBPACK_IMPORTED_MODULE_6__["data"].iTokenErrorCount += 1; - } - - if (Common_Consts__WEBPACK_IMPORTED_MODULE_3__[/* TOKEN_ERROR_LIMIT */ "q"] < Common_Globals__WEBPACK_IMPORTED_MODULE_6__["data"].iTokenErrorCount) { - if (Common_Globals__WEBPACK_IMPORTED_MODULE_6__["data"].__APP__ && Common_Globals__WEBPACK_IMPORTED_MODULE_6__["data"].__APP__.loginAndLogoutReload) { - Common_Globals__WEBPACK_IMPORTED_MODULE_6__["data"].__APP__.loginAndLogoutReload(false, true); - } - } - - if (oData.ClearAuth || oData.Logout || Common_Consts__WEBPACK_IMPORTED_MODULE_3__[/* AJAX_ERROR_LIMIT */ "a"] < Common_Globals__WEBPACK_IMPORTED_MODULE_6__["data"].iAjaxErrorCount) { - if (Common_Globals__WEBPACK_IMPORTED_MODULE_6__["data"].__APP__ && Common_Globals__WEBPACK_IMPORTED_MODULE_6__["data"].__APP__.clearClientSideToken) { - Common_Globals__WEBPACK_IMPORTED_MODULE_6__["data"].__APP__.clearClientSideToken(); - - if (!oData.ClearAuth && Common_Globals__WEBPACK_IMPORTED_MODULE_6__["data"].__APP__.loginAndLogoutReload) { - Common_Globals__WEBPACK_IMPORTED_MODULE_6__["data"].__APP__.loginAndLogoutReload(false, true); - } - } - } - } else if (Common_Enums__WEBPACK_IMPORTED_MODULE_4__["StorageResultType"].Success === sType && oData && oData.Result) { - Common_Globals__WEBPACK_IMPORTED_MODULE_6__["data"].iAjaxErrorCount = 0; - Common_Globals__WEBPACK_IMPORTED_MODULE_6__["data"].iTokenErrorCount = 0; - } - - Object(Common_Plugins__WEBPACK_IMPORTED_MODULE_8__[/* runHook */ "f"])('ajax-default-response', [sRequestAction, Common_Enums__WEBPACK_IMPORTED_MODULE_4__["StorageResultType"].Success === sType ? oData : null, sType, bCached, oRequestParameters]); - - if (fCallback) { - fCallback(sType, Common_Enums__WEBPACK_IMPORTED_MODULE_4__["StorageResultType"].Success === sType ? oData : null, bCached, sRequestAction, oRequestParameters); - } - }; - - switch (sType) { - case 'success': - sType = Common_Enums__WEBPACK_IMPORTED_MODULE_4__["StorageResultType"].Success; - break; - - case 'abort': - sType = Common_Enums__WEBPACK_IMPORTED_MODULE_4__["StorageResultType"].Abort; - break; - - default: - sType = Common_Enums__WEBPACK_IMPORTED_MODULE_4__["StorageResultType"].Error; - break; - } - - if (Common_Enums__WEBPACK_IMPORTED_MODULE_4__["StorageResultType"].Error === sType) { - ___WEBPACK_IMPORTED_MODULE_1___default.a.delay(fCall, 300); - } else { - fCall(); - } - } - /** - * @param {?Function} fResultCallback - * @param {Object} oParameters - * @param {?number=} iTimeOut = 20000 - * @param {string=} sGetAdd = '' - * @param {Array=} aAbortActions = [] - * @returns {jQuery.jqXHR} - */ - ; - - _proto.ajaxRequest = function ajaxRequest(fResultCallback, params, iTimeOut, sGetAdd, abortActions) { - var _this = this; - - if (iTimeOut === void 0) { - iTimeOut = 20000; - } - - if (sGetAdd === void 0) { - sGetAdd = ''; - } - - if (abortActions === void 0) { - abortActions = []; - } - - var isPost = '' === sGetAdd, - headers = {}, - start = new window__WEBPACK_IMPORTED_MODULE_0___default.a.Date().getTime(); - var action = ''; - params = params || {}; - action = params.Action || ''; - - if (action && 0 < abortActions.length) { - ___WEBPACK_IMPORTED_MODULE_1___default.a.each(abortActions, function (actionToAbort) { - if (_this.oRequests[actionToAbort]) { - _this.oRequests[actionToAbort].__aborted = true; - - if (_this.oRequests[actionToAbort].abort) { - _this.oRequests[actionToAbort].abort(); - } - - _this.oRequests[actionToAbort] = null; - } - }); - } - - if (isPost) { - params.XToken = Storage_Settings__WEBPACK_IMPORTED_MODULE_9__["appSettingsGet"]('token'); - } - - var oDefAjax = $__WEBPACK_IMPORTED_MODULE_2___default.a.ajax({ - type: isPost ? 'POST' : 'GET', - url: Object(Common_Links__WEBPACK_IMPORTED_MODULE_7__[/* ajax */ "a"])(sGetAdd), - async: true, - dataType: 'json', - data: isPost ? params : {}, - headers: headers, - timeout: iTimeOut, - global: true - }); - oDefAjax.always(function (oData, sType) { - var cached = false; - - if (oData && oData.Time) { - cached = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["pInt"])(oData.Time) > new window__WEBPACK_IMPORTED_MODULE_0___default.a.Date().getTime() - start; - } - - if (oData && oData.UpdateToken) { - if (Common_Globals__WEBPACK_IMPORTED_MODULE_6__["data"].__APP__ && Common_Globals__WEBPACK_IMPORTED_MODULE_6__["data"].__APP__.setClientSideToken) { - Common_Globals__WEBPACK_IMPORTED_MODULE_6__["data"].__APP__.setClientSideToken(oData.UpdateToken); - } - } - - if (action && _this.oRequests[action]) { - if (_this.oRequests[action].__aborted) { - sType = 'abort'; - } - - _this.oRequests[action] = null; - } - - _this.defaultResponse(fResultCallback, action, sType, oData, cached, params); - }); - - if (action && 0 < abortActions.length && -1 < Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["inArray"])(action, abortActions)) { - if (this.oRequests[action]) { - this.oRequests[action].__aborted = true; - - if (this.oRequests[action].abort) { - this.oRequests[action].abort(); - } - - this.oRequests[action] = null; - } - - this.oRequests[action] = oDefAjax; - } // eslint-disable-next-line no-console - - - oDefAjax.catch(console.log); - return oDefAjax; - } - /** - * @param {?Function} fCallback - * @param {string} sAction - * @param {Object=} oParameters - * @param {?number=} iTimeout - * @param {string=} sGetAdd = '' - * @param {Array=} aAbortActions = [] - */ - ; - - _proto.defaultRequest = function defaultRequest(fCallback, sAction, oParameters, iTimeout, sGetAdd, aAbortActions) { - oParameters = oParameters || {}; - oParameters.Action = sAction; - sGetAdd = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["pString"])(sGetAdd); - Object(Common_Plugins__WEBPACK_IMPORTED_MODULE_8__[/* runHook */ "f"])('ajax-default-request', [sAction, oParameters, sGetAdd]); - return this.ajaxRequest(fCallback, oParameters, Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["isUnd"])(iTimeout) ? Common_Consts__WEBPACK_IMPORTED_MODULE_3__[/* DEFAULT_AJAX_TIMEOUT */ "g"] : Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["pInt"])(iTimeout), sGetAdd, aAbortActions); - } - /** - * @param {?Function} fCallback - */ - ; - - _proto.noop = function noop(fCallback) { - this.defaultRequest(fCallback, 'Noop'); - } - /** - * @param {?Function} fCallback - */ - ; - - _proto.getPublicKey = function getPublicKey(fCallback) { - this.defaultRequest(fCallback, 'GetPublicKey'); - } - /** - * @param {?Function} fCallback - * @param {string} sVersion - */ - ; - - _proto.jsVersion = function jsVersion(fCallback, sVersion) { - this.defaultRequest(fCallback, 'Version', { - 'Version': sVersion - }); - }; - - return AbstractAjaxRemote; -}(); - - - -/***/ }), -/* 269 */ -/*!****************************************!*\ - !*** ./dev/Screen/AbstractSettings.js ***! - \****************************************/ -/*! exports provided: AbstractSettingsScreen, default */ -/*! exports used: AbstractSettingsScreen */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AbstractSettingsScreen; }); -/* unused harmony export default */ -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find */ 12); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $ */ 8); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Globals */ 6); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Common_Links__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Common/Links */ 15); -/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Knoin/Knoin */ 7); -/* harmony import */ var Knoin_AbstractScreen__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Knoin/AbstractScreen */ 138); - - - - - - - - - - - -var AbstractSettingsScreen = /*#__PURE__*/function (_AbstractScreen) { - Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(AbstractSettingsScreen, _AbstractScreen); - - /** - * @param {Array} viewModels - */ - function AbstractSettingsScreen(viewModels) { - var _this; - - _this = _AbstractScreen.call(this, 'settings', viewModels) || this; - _this.menu = ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observableArray([]); - _this.oCurrentSubScreen = null; - _this.oViewModelPlace = null; - - _this.setupSettings(); - - return _this; - } - /** - * @param {Function=} fCallback - */ - - - var _proto = AbstractSettingsScreen.prototype; - - _proto.setupSettings = function setupSettings(fCallback) { - if (fCallback === void 0) { - fCallback = null; - } - - if (fCallback) { - fCallback(); - } - }; - - _proto.onRoute = function onRoute(subName) { - var _this2 = this; - - var settingsScreen = null, - RoutedSettingsViewModel = null, - viewModelPlace = null, - viewModelDom = null; - RoutedSettingsViewModel = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, Common_Globals__WEBPACK_IMPORTED_MODULE_5__["VIEW_MODELS"].settings, function (SettingsViewModel) { - return SettingsViewModel && SettingsViewModel.__rlSettingsData && subName === SettingsViewModel.__rlSettingsData.Route; - }); - - if (RoutedSettingsViewModel) { - if (_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, Common_Globals__WEBPACK_IMPORTED_MODULE_5__["VIEW_MODELS"]['settings-removed'], function (DisabledSettingsViewModel) { - return DisabledSettingsViewModel && DisabledSettingsViewModel === RoutedSettingsViewModel; - })) { - RoutedSettingsViewModel = null; - } - - if (RoutedSettingsViewModel && _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, Common_Globals__WEBPACK_IMPORTED_MODULE_5__["VIEW_MODELS"]['settings-disabled'], function (DisabledSettingsViewModel) { - return DisabledSettingsViewModel && DisabledSettingsViewModel === RoutedSettingsViewModel; - })) { - RoutedSettingsViewModel = null; - } - } - - if (RoutedSettingsViewModel) { - if (RoutedSettingsViewModel.__builded && RoutedSettingsViewModel.__vm) { - settingsScreen = RoutedSettingsViewModel.__vm; - } else { - viewModelPlace = this.oViewModelPlace; - - if (viewModelPlace && 1 === viewModelPlace.length) { - settingsScreen = new RoutedSettingsViewModel(); - viewModelDom = $__WEBPACK_IMPORTED_MODULE_3___default()('
').addClass('rl-settings-view-model').hide(); - viewModelDom.appendTo(viewModelPlace); - settingsScreen.viewModelDom = viewModelDom; - settingsScreen.__rlSettingsData = RoutedSettingsViewModel.__rlSettingsData; - RoutedSettingsViewModel.__dom = viewModelDom; - RoutedSettingsViewModel.__builded = true; - RoutedSettingsViewModel.__vm = settingsScreen; - var tmpl = { - name: RoutedSettingsViewModel.__rlSettingsData.Template - }; - ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].applyBindingAccessorsToNode(viewModelDom[0], { - translatorInit: true, - template: function template() { - return tmpl; - } - }, settingsScreen); - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_6__["delegateRun"])(settingsScreen, 'onBuild', [viewModelDom]); - } else { - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_6__["log"])('Cannot find sub settings view model position: SettingsSubScreen'); - } - } - - if (settingsScreen) { - ___WEBPACK_IMPORTED_MODULE_2___default.a.defer(function () { - // hide - if (_this2.oCurrentSubScreen) { - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_6__["delegateRun"])(_this2.oCurrentSubScreen, 'onHide'); - - _this2.oCurrentSubScreen.viewModelDom.hide(); - } // -- - - - _this2.oCurrentSubScreen = settingsScreen; // show - - if (_this2.oCurrentSubScreen) { - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_6__["delegateRun"])(_this2.oCurrentSubScreen, 'onBeforeShow'); - - _this2.oCurrentSubScreen.viewModelDom.show(); - - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_6__["delegateRun"])(_this2.oCurrentSubScreen, 'onShow'); - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_6__["delegateRun"])(_this2.oCurrentSubScreen, 'onShowWithDelay', [], 200); - - ___WEBPACK_IMPORTED_MODULE_2___default.a.each(_this2.menu(), function (item) { - item.selected(settingsScreen && settingsScreen.__rlSettingsData && item.route === settingsScreen.__rlSettingsData.Route); - }); - - $__WEBPACK_IMPORTED_MODULE_3___default()('#rl-content .b-settings .b-content .content').scrollTop(0); - } // -- - - - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_6__["windowResize"])(); - }); - } - } else { - Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_8__["setHash"])(Object(Common_Links__WEBPACK_IMPORTED_MODULE_7__[/* settings */ "z"])(), false, true); - } - }; - - _proto.onHide = function onHide() { - if (this.oCurrentSubScreen && this.oCurrentSubScreen.viewModelDom) { - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_6__["delegateRun"])(this.oCurrentSubScreen, 'onHide'); - this.oCurrentSubScreen.viewModelDom.hide(); - } - }; - - _proto.onBuild = function onBuild() { - var _this3 = this; - - ___WEBPACK_IMPORTED_MODULE_2___default.a.each(Common_Globals__WEBPACK_IMPORTED_MODULE_5__["VIEW_MODELS"].settings, function (SettingsViewModel) { - if (SettingsViewModel && SettingsViewModel.__rlSettingsData && !_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, Common_Globals__WEBPACK_IMPORTED_MODULE_5__["VIEW_MODELS"]['settings-removed'], function (RemoveSettingsViewModel) { - return RemoveSettingsViewModel && RemoveSettingsViewModel === SettingsViewModel; - })) { - _this3.menu.push({ - route: SettingsViewModel.__rlSettingsData.Route, - label: SettingsViewModel.__rlSettingsData.Label, - selected: ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observable(false), - disabled: !!_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, Common_Globals__WEBPACK_IMPORTED_MODULE_5__["VIEW_MODELS"]['settings-disabled'], function (DisabledSettingsViewModel) { - return DisabledSettingsViewModel && DisabledSettingsViewModel === SettingsViewModel; - }) - }); - } - }); - - this.oViewModelPlace = $__WEBPACK_IMPORTED_MODULE_3___default()('#rl-content #rl-settings-subscreen'); - }; - - _proto.routes = function routes() { - var DefaultViewModel = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, Common_Globals__WEBPACK_IMPORTED_MODULE_5__["VIEW_MODELS"].settings, function (SettingsViewModel) { - return SettingsViewModel && SettingsViewModel.__rlSettingsData && SettingsViewModel.__rlSettingsData.IsDefault; - }), - defaultRoute = DefaultViewModel && DefaultViewModel.__rlSettingsData ? DefaultViewModel.__rlSettingsData.Route : 'general', - rules = { - subname: /^(.*)$/, - normalize_: function normalize_(rquest, vals) { - vals.subname = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_6__["isUnd"])(vals.subname) ? defaultRoute : Object(Common_Utils__WEBPACK_IMPORTED_MODULE_6__["pString"])(vals.subname); - return [vals.subname]; - } - }; - - return [['{subname}/', rules], ['{subname}', rules], ['', rules]]; - }; - - return AbstractSettingsScreen; -}(Knoin_AbstractScreen__WEBPACK_IMPORTED_MODULE_9__[/* AbstractScreen */ "a"]); - - - -/***/ }), -/* 270 */ -/*!*****************************!*\ - !*** ./dev/App/Abstract.js ***! - \*****************************/ -/*! exports provided: AbstractApp, default */ -/*! exports used: AbstractApp */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AbstractApp; }); -/* unused harmony export default */ -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/index-of */ 30); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $ */ 8); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! key */ 21); -/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(key__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var ssm__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ssm */ 140); -/* harmony import */ var ssm__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(ssm__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Common/Globals */ 6); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Common_Links__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Common/Links */ 15); -/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! Common/Translator */ 9); -/* harmony import */ var Common_Events__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! Common/Events */ 24); -/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! Storage/Settings */ 5); -/* harmony import */ var Stores_Language__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! Stores/Language */ 71); -/* harmony import */ var Stores_Theme__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! Stores/Theme */ 115); -/* harmony import */ var Stores_Social__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! Stores/Social */ 29); -/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! Knoin/Knoin */ 7); -/* harmony import */ var Knoin_AbstractBoot__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! Knoin/AbstractBoot */ 271); - - - - - - - - - - - - - - - - - - - - - -var AbstractApp = /*#__PURE__*/function (_AbstractBoot) { - Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(AbstractApp, _AbstractBoot); - - /** - * @param {RemoteStorage|AdminRemoteStorage} Remote - */ - function AbstractApp() { - var _this; - - _this = _AbstractBoot.call(this) || this; - _this.googlePreviewSupportedCache = null; - _this.isLocalAutocomplete = true; - _this.iframe = null; - _this.lastErrorTime = 0; - _this.iframe = $__WEBPACK_IMPORTED_MODULE_3___default()('');else if(d){var m;m=g&&g.youtube?"lg-has-youtube":g&&g.vimeo?"lg-has-vimeo":"lg-has-html5",h.$slide.eq(i).prepend('
')}else g?(h.$slide.eq(i).prepend('
'),h.$el.trigger("hasVideo.lg",[i,r,c])):h.$slide.eq(i).prepend('
');if(h.$el.trigger("onAferAppendSlide.lg",[i]),s=h.$slide.eq(i).find(".lg-object"),u&&s.attr("sizes",u),l){s.attr("srcset",l);try{picturefill({elements:[s[0]]})}catch(t){console.error("Make sure you have included Picturefill version 2")}}".lg-sub-html"!==this.s.appendSubHtmlTo&&h.addHtml(i),h.$slide.eq(i).addClass("lg-loaded")}h.$slide.eq(i).find(".lg-object").on("load.lg error.lg",(function(){var e=0;o&&!t("body").hasClass("lg-from-hash")&&(e=o),setTimeout((function(){h.$slide.eq(i).addClass("lg-complete"),h.$el.trigger("onSlideItemLoad.lg",[i,o||0])}),e)})),g&&g.html5&&!d&&h.$slide.eq(i).addClass("lg-complete"),!0===n&&(h.$slide.eq(i).hasClass("lg-complete")?h.preload(i):h.$slide.eq(i).find(".lg-object").on("load.lg error.lg",(function(){h.preload(i)})))},o.prototype.slide=function(e,i,n){var o=this.$outer.find(".lg-current").index(),s=this;if(!s.lGalleryOn||o!==e){var r=this.$slide.length,a=s.lGalleryOn?this.s.speed:0,l=!1,u=!1;if(!s.lgBusy){var c;if(this.s.download)(c=s.s.dynamic?!1!==s.s.dynamicEl[e].downloadUrl&&(s.s.dynamicEl[e].downloadUrl||s.s.dynamicEl[e].src):"false"!==s.$items.eq(e).attr("data-download-url")&&(s.$items.eq(e).attr("data-download-url")||s.$items.eq(e).attr("href")||s.$items.eq(e).attr("data-src")))?(t("#lg-download").attr("href",c),s.$outer.removeClass("lg-hide-download")):s.$outer.addClass("lg-hide-download");if(this.$el.trigger("onBeforeSlide.lg",[o,e,i,n]),s.lgBusy=!0,clearTimeout(s.hideBartimeout),".lg-sub-html"===this.s.appendSubHtmlTo&&setTimeout((function(){s.addHtml(e)}),a),this.arrowDisable(e),i){var h=e-1,d=e+1;(0===e&&o===r-1||e===r-1&&0===o)&&(d=0,h=r-1),this.$slide.removeClass("lg-prev-slide lg-current lg-next-slide"),s.$slide.eq(h).addClass("lg-prev-slide"),s.$slide.eq(d).addClass("lg-next-slide"),s.$slide.eq(e).addClass("lg-current")}else s.$outer.addClass("lg-no-trans"),this.$slide.removeClass("lg-prev-slide lg-next-slide"),o>e?(u=!0,0!==e||o!==r-1||n||(u=!1,l=!0)):e>o&&(l=!0,e!==r-1||0!==o||n||(u=!0,l=!1)),u?(this.$slide.eq(e).addClass("lg-prev-slide"),this.$slide.eq(o).addClass("lg-next-slide")):l&&(this.$slide.eq(e).addClass("lg-next-slide"),this.$slide.eq(o).addClass("lg-prev-slide")),setTimeout((function(){s.$slide.removeClass("lg-current"),s.$slide.eq(e).addClass("lg-current"),s.$outer.removeClass("lg-no-trans")}),50);s.lGalleryOn?(setTimeout((function(){s.loadContent(e,!0,0)}),this.s.speed+50),setTimeout((function(){s.lgBusy=!1,s.$el.trigger("onAfterSlide.lg",[o,e,i,n])}),this.s.speed)):(s.loadContent(e,!0,s.s.backdropDuration),s.lgBusy=!1,s.$el.trigger("onAfterSlide.lg",[o,e,i,n])),s.lGalleryOn=!0,this.s.counter&&t("#lg-counter-current").text(e+1)}}},o.prototype.goToNextSlide=function(t){var e=this;e.lgBusy||(e.index+10?(e.index--,e.$el.trigger("onBeforePrevSlide.lg",[e.index,t]),e.slide(e.index,t,!1)):e.s.loop?(e.index=e.$items.length-1,e.$el.trigger("onBeforePrevSlide.lg",[e.index,t]),e.slide(e.index,t,!1)):e.s.slideEndAnimatoin&&(e.$outer.addClass("lg-left-end"),setTimeout((function(){e.$outer.removeClass("lg-left-end")}),400)))},o.prototype.keyPress=function(){var i=this;this.$items.length>1&&t(e).on("keyup.lg",(function(t){i.$items.length>1&&(37===t.keyCode&&(t.preventDefault(),i.goToPrevSlide()),39===t.keyCode&&(t.preventDefault(),i.goToNextSlide()))})),t(e).on("keydown.lg",(function(t){!0===i.s.escKey&&27===t.keyCode&&(t.preventDefault(),i.$outer.hasClass("lg-thumb-open")?i.$outer.removeClass("lg-thumb-open"):i.destroy())}))},o.prototype.arrow=function(){var t=this;this.$outer.find(".lg-prev").on("click.lg",(function(){t.goToPrevSlide()})),this.$outer.find(".lg-next").on("click.lg",(function(){t.goToNextSlide()}))},o.prototype.arrowDisable=function(t){!this.s.loop&&this.s.hideControlOnEnd&&(t+10?this.$outer.find(".lg-prev").removeAttr("disabled").removeClass("disabled"):this.$outer.find(".lg-prev").attr("disabled","disabled").addClass("disabled"))},o.prototype.setTranslate=function(t,e,i){this.s.useLeft?t.css("left",e):t.css({transform:"translate3d("+e+"px, "+i+"px, 0px)"})},o.prototype.touchMove=function(e,i){var n=i-e;Math.abs(n)>15&&(this.$outer.addClass("lg-dragging"),this.setTranslate(this.$slide.eq(this.index),n,0),this.setTranslate(t(".lg-prev-slide"),-this.$slide.eq(this.index).width()+n,0),this.setTranslate(t(".lg-next-slide"),this.$slide.eq(this.index).width()+n,0))},o.prototype.touchEnd=function(t){var e=this;"lg-slide"!==e.s.mode&&e.$outer.addClass("lg-slide"),this.$slide.not(".lg-current, .lg-prev-slide, .lg-next-slide").css("opacity","0"),setTimeout((function(){e.$outer.removeClass("lg-dragging"),0>t&&Math.abs(t)>e.s.swipeThreshold?e.goToNextSlide(!0):t>0&&Math.abs(t)>e.s.swipeThreshold?e.goToPrevSlide(!0):Math.abs(t)<5&&e.$el.trigger("onSlideClick.lg"),e.$slide.removeAttr("style")})),setTimeout((function(){e.$outer.hasClass("lg-dragging")||"lg-slide"===e.s.mode||e.$outer.removeClass("lg-slide")}),e.s.speed+100)},o.prototype.enableSwipe=function(){var t=this,e=0,i=0,n=!1;t.s.enableSwipe&&t.isTouch&&t.doCss()&&(t.$slide.on("touchstart.lg",(function(i){t.$outer.hasClass("lg-zoomed")||t.lgBusy||(i.preventDefault(),t.manageSwipeClass(),e=i.originalEvent.targetTouches[0].pageX)})),t.$slide.on("touchmove.lg",(function(o){t.$outer.hasClass("lg-zoomed")||(o.preventDefault(),i=o.originalEvent.targetTouches[0].pageX,t.touchMove(e,i),n=!0)})),t.$slide.on("touchend.lg",(function(){t.$outer.hasClass("lg-zoomed")||(n?(n=!1,t.touchEnd(i-e)):t.$el.trigger("onSlideClick.lg"))})))},o.prototype.enableDrag=function(){var i=this,n=0,o=0,s=!1,r=!1;i.s.enableDrag&&!i.isTouch&&i.doCss()&&(i.$slide.on("mousedown.lg",(function(e){i.$outer.hasClass("lg-zoomed")||(t(e.target).hasClass("lg-object")||t(e.target).hasClass("lg-video-play"))&&(e.preventDefault(),i.lgBusy||(i.manageSwipeClass(),n=e.pageX,s=!0,i.$outer.scrollLeft+=1,i.$outer.scrollLeft-=1,i.$outer.removeClass("lg-grab").addClass("lg-grabbing"),i.$el.trigger("onDragstart.lg")))})),t(e).on("mousemove.lg",(function(t){s&&(r=!0,o=t.pageX,i.touchMove(n,o),i.$el.trigger("onDragmove.lg"))})),t(e).on("mouseup.lg",(function(e){r?(r=!1,i.touchEnd(o-n),i.$el.trigger("onDragend.lg")):(t(e.target).hasClass("lg-object")||t(e.target).hasClass("lg-video-play"))&&i.$el.trigger("onSlideClick.lg"),s&&(s=!1,i.$outer.removeClass("lg-grabbing").addClass("lg-grab"))})))},o.prototype.manageSwipeClass=function(){var t=this.index+1,e=this.index-1,i=this.$slide.length;this.s.loop&&(0===this.index?e=i-1:this.index===i-1&&(t=0)),this.$slide.removeClass("lg-next-slide lg-prev-slide"),e>-1&&this.$slide.eq(e).addClass("lg-prev-slide"),this.$slide.eq(t).addClass("lg-next-slide")},o.prototype.mousewheel=function(){var t=this;t.$outer.on("mousewheel.lg",(function(e){e.deltaY&&(e.deltaY>0?t.goToPrevSlide():t.goToNextSlide(),e.preventDefault())}))},o.prototype.closeGallery=function(){var e=this,i=!1;this.$outer.find(".lg-close").on("click.lg",(function(){e.destroy()})),e.s.closable&&(e.$outer.on("mousedown.lg",(function(e){i=!!(t(e.target).is(".lg-outer")||t(e.target).is(".lg-item ")||t(e.target).is(".lg-img-wrap"))})),e.$outer.on("mouseup.lg",(function(n){(t(n.target).is(".lg-outer")||t(n.target).is(".lg-item ")||t(n.target).is(".lg-img-wrap")&&i)&&(e.$outer.hasClass("lg-dragging")||e.destroy())})))},o.prototype.destroy=function(i){var n=this;i||n.$el.trigger("onBeforeClose.lg"),t(e).scrollTop(n.prevScrollTop),i&&(n.s.dynamic||this.$items.off("click.lg click.lgcustom"),t.removeData(n.el,"lightGallery")),this.$el.off(".lg.tm"),t.each(t.fn.lightGallery.modules,(function(t){n.modules[t]&&n.modules[t].destroy()})),this.lGalleryOn=!1,clearTimeout(n.hideBartimeout),this.hideBartimeout=!1,t(e).off(".lg"),t("body").removeClass("lg-on lg-from-hash"),n.$outer&&n.$outer.removeClass("lg-visible"),t(".lg-backdrop").removeClass("in"),setTimeout((function(){n.$outer&&n.$outer.remove(),t(".lg-backdrop").remove(),i||n.$el.trigger("onCloseAfter.lg")}),n.s.backdropDuration+50)},t.fn.lightGallery=function(e){return this.each((function(){if(t.data(this,"lightGallery"))try{t(this).data("lightGallery").init()}catch(t){console.error("lightGallery has not initiated properly")}else t.data(this,"lightGallery",new o(this,e))}))},t.fn.lightGallery.modules={}}(jQuery,window,document),function(t,e,i,n){"use strict";var o={fullScreen:!0},s=function(e){return this.core=t(e).data("lightGallery"),this.$el=t(e),this.core.s=t.extend({},o,this.core.s),this.init(),this};s.prototype.init=function(){var t="";if(this.core.s.fullScreen){if(!(i.fullscreenEnabled||i.webkitFullscreenEnabled||i.mozFullScreenEnabled||i.msFullscreenEnabled))return;t='',this.core.$outer.find(".lg-toolbar").append(t),this.fullScreen()}},s.prototype.requestFullscreen=function(){var t=i.documentElement;t.requestFullscreen?t.requestFullscreen():t.msRequestFullscreen?t.msRequestFullscreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.webkitRequestFullscreen&&t.webkitRequestFullscreen()},s.prototype.exitFullscreen=function(){i.exitFullscreen?i.exitFullscreen():i.msExitFullscreen?i.msExitFullscreen():i.mozCancelFullScreen?i.mozCancelFullScreen():i.webkitExitFullscreen&&i.webkitExitFullscreen()},s.prototype.fullScreen=function(){var e=this;t(i).on("fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg",(function(){e.core.$outer.toggleClass("lg-fullscreen-on")})),this.core.$outer.find(".lg-fullscreen").on("click.lg",(function(){i.fullscreenElement||i.mozFullScreenElement||i.webkitFullscreenElement||i.msFullscreenElement?e.exitFullscreen():e.requestFullscreen()}))},s.prototype.destroy=function(){this.exitFullscreen(),t(i).off("fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg")},t.fn.lightGallery.modules.fullscreen=s}(jQuery,window,document),function(t,e,i,n){"use strict";var o={thumbnail:!0,animateThumb:!0,currentPagerPosition:"middle",thumbWidth:100,thumbContHeight:100,thumbMargin:5,exThumbImage:!1,showThumbByDefault:!0,toogleThumb:!0,pullCaptionUp:!0,enableThumbDrag:!0,enableThumbSwipe:!0,swipeThreshold:50,loadYoutubeThumbnail:!0,youtubeThumbSize:1,loadVimeoThumbnail:!0,vimeoThumbSize:"thumbnail_small",loadDailymotionThumbnail:!0},s=function(e){return this.core=t(e).data("lightGallery"),this.core.s=t.extend({},o,this.core.s),this.$el=t(e),this.$thumbOuter=null,this.thumbOuterWidth=0,this.thumbTotalWidth=this.core.$items.length*(this.core.s.thumbWidth+this.core.s.thumbMargin),this.thumbIndex=this.core.index,this.left=0,this.init(),this};s.prototype.init=function(){var t=this;this.core.s.thumbnail&&this.core.$items.length>1&&(this.core.s.showThumbByDefault&&setTimeout((function(){t.core.$outer.addClass("lg-thumb-open")}),700),this.core.s.pullCaptionUp&&this.core.$outer.addClass("lg-pull-caption-up"),this.build(),this.core.s.animateThumb?(this.core.s.enableThumbDrag&&!this.core.isTouch&&this.core.doCss()&&this.enableThumbDrag(),this.core.s.enableThumbSwipe&&this.core.isTouch&&this.core.doCss()&&this.enableThumbSwipe(),this.thumbClickable=!1):this.thumbClickable=!0,this.toogle(),this.thumbkeyPress())},s.prototype.build=function(){function i(t,e,i){var n,a=o.core.isVideo(t,i)||{},l="";a.youtube||a.vimeo||a.dailymotion?a.youtube?n=o.core.s.loadYoutubeThumbnail?"//img.youtube.com/vi/"+a.youtube[1]+"/"+o.core.s.youtubeThumbSize+".jpg":e:a.vimeo?o.core.s.loadVimeoThumbnail?(n="//i.vimeocdn.com/video/error_"+r+".jpg",l=a.vimeo[1]):n=e:a.dailymotion&&(n=o.core.s.loadDailymotionThumbnail?"//www.dailymotion.com/thumbnail/video/"+a.dailymotion[1]:e):n=e,s+='
',l=""}var n,o=this,s="",r="";switch(this.core.s.vimeoThumbSize){case"thumbnail_large":r="640";break;case"thumbnail_medium":r="200x150";break;case"thumbnail_small":r="100x75"}if(o.core.$outer.addClass("lg-has-thumb"),o.core.$outer.find(".lg").append('
'),o.$thumbOuter=o.core.$outer.find(".lg-thumb-outer"),o.thumbOuterWidth=o.$thumbOuter.width(),o.core.s.animateThumb&&o.core.$outer.find(".lg-thumb").css({width:o.thumbTotalWidth+"px",position:"relative"}),this.core.s.animateThumb&&o.$thumbOuter.css("height",o.core.s.thumbContHeight+"px"),o.core.s.dynamic)for(var a=0;athis.thumbTotalWidth-this.thumbOuterWidth&&(this.left=this.thumbTotalWidth-this.thumbOuterWidth),this.left<0&&(this.left=0),this.core.lGalleryOn?(e.hasClass("on")||this.core.$outer.find(".lg-thumb").css("transition-duration",this.core.s.speed+"ms"),this.core.doCss()||e.animate({left:-this.left+"px"},this.core.s.speed)):this.core.doCss()||e.css("left",-this.left+"px"),this.setTranslate(this.left)}},s.prototype.enableThumbDrag=function(){var i=this,n=0,o=0,s=!1,r=!1,a=0;i.$thumbOuter.addClass("lg-grab"),i.core.$outer.find(".lg-thumb").on("mousedown.lg.thumb",(function(t){i.thumbTotalWidth>i.thumbOuterWidth&&(t.preventDefault(),n=t.pageX,s=!0,i.core.$outer.scrollLeft+=1,i.core.$outer.scrollLeft-=1,i.thumbClickable=!1,i.$thumbOuter.removeClass("lg-grab").addClass("lg-grabbing"))})),t(e).on("mousemove.lg.thumb",(function(t){s&&(a=i.left,r=!0,o=t.pageX,i.$thumbOuter.addClass("lg-dragging"),(a-=o-n)>i.thumbTotalWidth-i.thumbOuterWidth&&(a=i.thumbTotalWidth-i.thumbOuterWidth),0>a&&(a=0),i.setTranslate(a))})),t(e).on("mouseup.lg.thumb",(function(){r?(r=!1,i.$thumbOuter.removeClass("lg-dragging"),i.left=a,Math.abs(o-n)t.thumbOuterWidth&&(i.preventDefault(),e=i.originalEvent.targetTouches[0].pageX,t.thumbClickable=!1)})),t.core.$outer.find(".lg-thumb").on("touchmove.lg",(function(s){t.thumbTotalWidth>t.thumbOuterWidth&&(s.preventDefault(),i=s.originalEvent.targetTouches[0].pageX,n=!0,t.$thumbOuter.addClass("lg-dragging"),o=t.left,(o-=i-e)>t.thumbTotalWidth-t.thumbOuterWidth&&(o=t.thumbTotalWidth-t.thumbOuterWidth),0>o&&(o=0),t.setTranslate(o))})),t.core.$outer.find(".lg-thumb").on("touchend.lg",(function(){t.thumbTotalWidth>t.thumbOuterWidth&&n?(n=!1,t.$thumbOuter.removeClass("lg-dragging"),Math.abs(i-e)'),t.core.$outer.find(".lg-toogle-thumb").on("click.lg",(function(){t.core.$outer.toggleClass("lg-thumb-open")})))},s.prototype.thumbkeyPress=function(){var i=this;t(e).on("keydown.lg.thumb",(function(t){38===t.keyCode?(t.preventDefault(),i.core.$outer.addClass("lg-thumb-open")):40===t.keyCode&&(t.preventDefault(),i.core.$outer.removeClass("lg-thumb-open"))}))},s.prototype.destroy=function(){this.core.s.thumbnail&&this.core.$items.length>1&&(t(e).off("resize.lg.thumb orientationchange.lg.thumb keydown.lg.thumb"),this.$thumbOuter.remove(),this.core.$outer.removeClass("lg-has-thumb"))},t.fn.lightGallery.modules.Thumbnail=s}(jQuery,window,document),function(t,e,i,n){"use strict";var o={scale:1,zoom:!0,actualSize:!0,enableZoomAfter:300},s=function(i){return this.core=t(i).data("lightGallery"),this.core.s=t.extend({},o,this.core.s),this.core.s.zoom&&this.core.doCss()&&(this.init(),this.zoomabletimeout=!1,this.pageX=t(e).width()/2,this.pageY=t(e).height()/2+t(e).scrollTop()),this};s.prototype.init=function(){var i=this,n='';i.core.s.actualSize&&(n+=''),this.core.$outer.find(".lg-toolbar").append(n),i.core.$el.on("onSlideItemLoad.lg.tm.zoom",(function(e,n,o){var s=i.core.s.enableZoomAfter+o;t("body").hasClass("lg-from-hash")&&o?s=0:t("body").removeClass("lg-from-hash"),i.zoomabletimeout=setTimeout((function(){i.core.$slide.eq(n).addClass("lg-zoomable")}),s+30)}));var o=1,s=function(n){var o=i.core.$outer.find(".lg-current .lg-image"),s=(t(e).width()-o.width())/2,r=(t(e).height()-o.height())/2+t(e).scrollTop(),a=(n-1)*(i.pageX-s),l=(n-1)*(i.pageY-r);o.css("transform","scale3d("+n+", "+n+", 1)").attr("data-scale",n),o.parent().css({left:-a+"px",top:-l+"px"}).attr("data-x",a).attr("data-y",l)},r=function(){o>1?i.core.$outer.addClass("lg-zoomed"):i.resetZoom(),1>o&&(o=1),s(o)},a=function(n,s,a,l){var u,c=s.width();u=i.core.s.dynamic?i.core.s.dynamicEl[a].width||s[0].naturalWidth||c:i.core.$items.eq(a).attr("data-width")||s[0].naturalWidth||c,i.core.$outer.hasClass("lg-zoomed")?o=1:u>c&&(o=u/c||2),l?(i.pageX=t(e).width()/2,i.pageY=t(e).height()/2+t(e).scrollTop()):(i.pageX=n.pageX||n.originalEvent.targetTouches[0].pageX,i.pageY=n.pageY||n.originalEvent.targetTouches[0].pageY),r(),setTimeout((function(){i.core.$outer.removeClass("lg-grabbing").addClass("lg-grab")}),10)},l=!1;i.core.$el.on("onAferAppendSlide.lg.tm.zoom",(function(t,e){var n=i.core.$slide.eq(e).find(".lg-image");n.on("dblclick",(function(t){a(t,n,e)})),n.on("touchstart",(function(t){l?(clearTimeout(l),l=null,a(t,n,e)):l=setTimeout((function(){l=null}),300),t.preventDefault()}))})),t(e).on("resize.lg.zoom scroll.lg.zoom orientationchange.lg.zoom",(function(){i.pageX=t(e).width()/2,i.pageY=t(e).height()/2+t(e).scrollTop(),s(o)})),t("#lg-zoom-out").on("click.lg",(function(){i.core.$outer.find(".lg-current .lg-image").length&&(o-=i.core.s.scale,r())})),t("#lg-zoom-in").on("click.lg",(function(){i.core.$outer.find(".lg-current .lg-image").length&&(o+=i.core.s.scale,r())})),t("#lg-actual-size").on("click.lg",(function(t){a(t,i.core.$slide.eq(i.core.index).find(".lg-image"),i.core.index,!0)})),i.core.$el.on("onBeforeSlide.lg.tm",(function(){o=1,i.resetZoom()})),i.core.isTouch||i.zoomDrag(),i.core.isTouch&&i.zoomSwipe()},s.prototype.resetZoom=function(){this.core.$outer.removeClass("lg-zoomed"),this.core.$slide.find(".lg-img-wrap").removeAttr("style data-x data-y"),this.core.$slide.find(".lg-image").removeAttr("style data-scale"),this.pageX=t(e).width()/2,this.pageY=t(e).height()/2+t(e).scrollTop()},s.prototype.zoomSwipe=function(){var t=this,e={},i={},n=!1,o=!1,s=!1;t.core.$slide.on("touchstart.lg",(function(i){if(t.core.$outer.hasClass("lg-zoomed")){var n=t.core.$slide.eq(t.core.index).find(".lg-object");s=n.outerHeight()*n.attr("data-scale")>t.core.$outer.find(".lg").height(),((o=n.outerWidth()*n.attr("data-scale")>t.core.$outer.find(".lg").width())||s)&&(i.preventDefault(),e={x:i.originalEvent.targetTouches[0].pageX,y:i.originalEvent.targetTouches[0].pageY})}})),t.core.$slide.on("touchmove.lg",(function(r){if(t.core.$outer.hasClass("lg-zoomed")){var a,l,u=t.core.$slide.eq(t.core.index).find(".lg-img-wrap");r.preventDefault(),n=!0,i={x:r.originalEvent.targetTouches[0].pageX,y:r.originalEvent.targetTouches[0].pageY},t.core.$outer.addClass("lg-zoom-dragging"),l=s?-Math.abs(u.attr("data-y"))+(i.y-e.y):-Math.abs(u.attr("data-y")),a=o?-Math.abs(u.attr("data-x"))+(i.x-e.x):-Math.abs(u.attr("data-x")),(Math.abs(i.x-e.x)>15||Math.abs(i.y-e.y)>15)&&u.css({left:a+"px",top:l+"px"})}})),t.core.$slide.on("touchend.lg",(function(){t.core.$outer.hasClass("lg-zoomed")&&n&&(n=!1,t.core.$outer.removeClass("lg-zoom-dragging"),t.touchendZoom(e,i,o,s))}))},s.prototype.zoomDrag=function(){var i=this,n={},o={},s=!1,r=!1,a=!1,l=!1;i.core.$slide.on("mousedown.lg.zoom",(function(e){var o=i.core.$slide.eq(i.core.index).find(".lg-object");l=o.outerHeight()*o.attr("data-scale")>i.core.$outer.find(".lg").height(),a=o.outerWidth()*o.attr("data-scale")>i.core.$outer.find(".lg").width(),i.core.$outer.hasClass("lg-zoomed")&&t(e.target).hasClass("lg-object")&&(a||l)&&(e.preventDefault(),n={x:e.pageX,y:e.pageY},s=!0,i.core.$outer.scrollLeft+=1,i.core.$outer.scrollLeft-=1,i.core.$outer.removeClass("lg-grab").addClass("lg-grabbing"))})),t(e).on("mousemove.lg.zoom",(function(t){if(s){var e,u,c=i.core.$slide.eq(i.core.index).find(".lg-img-wrap");r=!0,o={x:t.pageX,y:t.pageY},i.core.$outer.addClass("lg-zoom-dragging"),u=l?-Math.abs(c.attr("data-y"))+(o.y-n.y):-Math.abs(c.attr("data-y")),e=a?-Math.abs(c.attr("data-x"))+(o.x-n.x):-Math.abs(c.attr("data-x")),c.css({left:e+"px",top:u+"px"})}})),t(e).on("mouseup.lg.zoom",(function(t){s&&(s=!1,i.core.$outer.removeClass("lg-zoom-dragging"),!r||n.x===o.x&&n.y===o.y||(o={x:t.pageX,y:t.pageY},i.touchendZoom(n,o,a,l)),r=!1),i.core.$outer.removeClass("lg-grabbing").addClass("lg-grab")}))},s.prototype.touchendZoom=function(t,e,i,n){var o=this,s=o.core.$slide.eq(o.core.index).find(".lg-img-wrap"),r=o.core.$slide.eq(o.core.index).find(".lg-object"),a=-Math.abs(s.attr("data-x"))+(e.x-t.x),l=-Math.abs(s.attr("data-y"))+(e.y-t.y),u=(o.core.$outer.find(".lg").height()-r.outerHeight())/2,c=Math.abs(r.outerHeight()*Math.abs(r.attr("data-scale"))-o.core.$outer.find(".lg").height()+u),h=(o.core.$outer.find(".lg").width()-r.outerWidth())/2,d=Math.abs(r.outerWidth()*Math.abs(r.attr("data-scale"))-o.core.$outer.find(".lg").width()+h);(Math.abs(e.x-t.x)>15||Math.abs(e.y-t.y)>15)&&(n&&(-c>=l?l=-c:l>=-u&&(l=-u)),i&&(-d>=a?a=-d:a>=-h&&(a=-h)),n?s.attr("data-y",Math.abs(l)):l=-Math.abs(s.attr("data-y")),i?s.attr("data-x",Math.abs(a)):a=-Math.abs(s.attr("data-x")),s.css({left:a+"px",top:l+"px"}))},s.prototype.destroy=function(){var i=this;i.core.$el.off(".lg.zoom"),t(e).off(".lg.zoom"),i.core.$slide.off(".lg.zoom"),i.core.$el.off(".lg.tm.zoom"),i.resetZoom(),clearTimeout(i.zoomabletimeout),i.zoomabletimeout=!1},t.fn.lightGallery.modules.zoom=s}(jQuery,window,document),function(t,e,i,n){"use strict";var o={autoplay:!1,pause:5e3,progressBar:!0,fourceAutoplay:!1,autoplayControls:!0,appendAutoplayControlsTo:".lg-toolbar"},s=function(e){return this.core=t(e).data("lightGallery"),this.$el=t(e),!(this.core.$items.length<2)&&(this.core.s=t.extend({},o,this.core.s),this.interval=!1,this.fromAuto=!0,this.canceledOnTouch=!1,this.fourceAutoplayTemp=this.core.s.fourceAutoplay,this.core.doCss()||(this.core.s.progressBar=!1),this.init(),this)};s.prototype.init=function(){var t=this;t.core.s.autoplayControls&&t.controls(),t.core.s.progressBar&&t.core.$outer.find(".lg").append('
'),t.progress(),t.core.s.autoplay&&t.startlAuto(),t.$el.on("onDragstart.lg.tm touchstart.lg.tm",(function(){t.interval&&(t.cancelAuto(),t.canceledOnTouch=!0)})),t.$el.on("onDragend.lg.tm touchend.lg.tm onSlideClick.lg.tm",(function(){!t.interval&&t.canceledOnTouch&&(t.startlAuto(),t.canceledOnTouch=!1)}))},s.prototype.progress=function(){var t,e,i=this;i.$el.on("onBeforeSlide.lg.tm",(function(){i.core.s.progressBar&&i.fromAuto&&(t=i.core.$outer.find(".lg-progress-bar"),e=i.core.$outer.find(".lg-progress"),i.interval&&(e.removeAttr("style"),t.removeClass("lg-start"),setTimeout((function(){e.css("transition","width "+(i.core.s.speed+i.core.s.pause)+"ms ease 0s"),t.addClass("lg-start")}),20))),i.fromAuto||i.core.s.fourceAutoplay||i.cancelAuto(),i.fromAuto=!1}))},s.prototype.controls=function(){var e=this;t(this.core.s.appendAutoplayControlsTo).append(''),e.core.$outer.find(".lg-autoplay-button").on("click.lg",(function(){t(e.core.$outer).hasClass("lg-show-autoplay")?(e.cancelAuto(),e.core.s.fourceAutoplay=!1):e.interval||(e.startlAuto(),e.core.s.fourceAutoplay=e.fourceAutoplayTemp)}))},s.prototype.startlAuto=function(){var t=this;t.core.$outer.find(".lg-progress").css("transition","width "+(t.core.s.speed+t.core.s.pause)+"ms ease 0s"),t.core.$outer.addClass("lg-show-autoplay"),t.core.$outer.find(".lg-progress-bar").addClass("lg-start"),t.interval=setInterval((function(){t.core.index+1a;r=++a)if((s=u[r])===o)return e[i[t]][n].splice(r,1),s}else if(i[t]&&e[i[t]]&&e[i[t]][n])return delete e[i[t]][n]},fire:function(i,n,o){var s,r,a,l,u;if(i[t]&&e[i[t]]&&e[i[t]][n]){for(u=[],r=0,a=(l=e[i[t]][n]).length;a>r;r++)s=l[r],u.push(s(o||{}));return u}}}}(),t=function(){var t;return t=!1,function(e,i,n){return t||(t=e.addEventListener?function(t,e,i){return t.addEventListener(e,i,!1)}:e.attachEvent?function(t,e,i){return t.attachEvent("on"+e,i,!1)}:function(t,e,i){return t["on"+e]=i}),t(e,i,n)}}(),r=function(){var t,e,n,o;for(o=3,n=i.createElement("div"),t=n.getElementsByTagName("i"),e=function(){return n.innerHTML="\x3c!--[if gt IE "+ ++o+"]>4?o:void 0}(),n=!1,d=void 0,void 0!==i.hidden?(n="hidden",d="visibilitychange"):void 0!==i.mozHidden?(n="mozHidden",d="mozvisibilitychange"):void 0!==i.msHidden?(n="msHidden",d="msvisibilitychange"):void 0!==i.webkitHidden&&(n="webkitHidden",d="webkitvisibilitychange"),h=function(){var e,n;return e=!1,(n=function(){return clearTimeout(e),"active"!==c&&a.wakeup(),o=+new Date,e=setTimeout((function(){return"active"===c?a.idle():void 0}),s)})(),t(i,"mousemove",n),t(i,"keyup",n),t(i,"touchstart",n),t(window,"scroll",n),a.focus(n),a.wakeup(n)},l=function(){var e;return!!u||(!1===n?(e="blur",9>r&&(e="focusout"),t(window,e,(function(){return a.blur()})),t(window,"focus",(function(){return a.focus()}))):t(i,d,(function(){return i[n]?a.blur():a.focus()}),!1),u=!0,h())},a={setIdleDuration:function(t){return s=1e3*t},getIdleDuration:function(){return s},getIdleInfo:function(){var t,e;return t=+new Date,e={},"idle"===c?(e.isIdle=!0,e.idleFor=t-o,e.timeLeft=0,e.timeLeftPer=100):(e.isIdle=!1,e.idleFor=t-o,e.timeLeft=o+s-t,e.timeLeftPer=(100-100*e.timeLeft/s).toFixed(2)),e},focus:function(t){return"function"==typeof t?this.on("focus",t):(c="active",e.fire(this,"focus"),e.fire(this,"wakeup"),e.fire(this,"statusChanged",{status:c})),this},blur:function(t){return"function"==typeof t?this.on("blur",t):(c="hidden",e.fire(this,"blur"),e.fire(this,"idle"),e.fire(this,"statusChanged",{status:c})),this},idle:function(t){return"function"==typeof t?this.on("idle",t):(c="idle",e.fire(this,"idle"),e.fire(this,"statusChanged",{status:c})),this},wakeup:function(t){return"function"==typeof t?this.on("wakeup",t):(c="active",e.fire(this,"wakeup"),e.fire(this,"statusChanged",{status:c})),this},on:function(t,i){return l(),e.add(this,t,i),this},off:function(t,i){return l(),e.remove(this,t,i),this},onEvery:function(t,e){var i,n;return l(),i=!1,e&&(n=setInterval((function(){return"active"===c&&!1===i?e():void 0}),1e3*t)),{stop:function(){return clearInterval(n)},pause:function(){return i=!0},resume:function(){return i=!1},code:n,callback:e}},now:function(t){return l(),c===(t||"active")}}},"function"==typeof define&&define.amd?define((function(){return e()})):"object"==typeof exports?module.exports=e():t.ifvisible=e()}.call(this); diff --git a/app/rainloop/v/1.15.0/static/js/min/polyfills.min.js b/app/rainloop/v/1.15.0/static/js/min/polyfills.min.js deleted file mode 100644 index 31d8241..0000000 --- a/app/rainloop/v/1.15.0/static/js/min/polyfills.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(t){var n={};function r(e){if(n[e])return n[e].exports;var o=n[e]={i:e,l:!1,exports:{}};return t[e].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=t,r.c=n,r.d=function(t,n,e){r.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:e})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,n){if(1&n&&(t=r(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var e=Object.create(null);if(r.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var o in t)r.d(e,o,function(n){return t[n]}.bind(null,o));return e},r.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(n,"a",n),n},r.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},r.p="rainloop/v/0.0.0/static/js/min/",r(r.s=471)}(Array(27).concat([function(t,n,r){(function(n){var r=function(t){return t&&t.Math==Math&&t};t.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n&&n)||Function("return this")()}).call(this,r(124))},,,,,function(t,n,r){var e=r(27),o=r(128),i=r(42),c=r(129),u=r(131),a=r(185),f=o("wks"),s=e.Symbol,l=a?s:s&&s.withoutSetter||c;t.exports=function(t){return i(f,t)||(u&&i(s,t)?f[t]=s[t]:f[t]=l("Symbol."+t)),f[t]}},,,,function(t,n){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,n,r){var e=r(44);t.exports=function(t){if(!e(t))throw TypeError(String(t)+" is not an object");return t}},,,,,function(t,n){var r={}.hasOwnProperty;t.exports=function(t,n){return r.call(t,n)}},,function(t,n){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},,,function(t,n,r){var e=r(36);t.exports=!e((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},function(t,n,r){var e=r(47),o=r(52),i=r(92);t.exports=e?function(t,n,r){return o.f(t,n,i(1,r))}:function(t,n,r){return t[n]=r,t}},function(t,n){var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}},function(t,n,r){var e=r(27),o=r(91).f,i=r(48),c=r(53),u=r(93),a=r(181),f=r(130);t.exports=function(t,n){var r,s,l,p,v,h=t.target,y=t.global,d=t.stat;if(r=y?e:d?e[h]||u(h,{}):(e[h]||{}).prototype)for(s in n){if(p=n[s],l=t.noTargetGet?(v=o(r,s))&&v.value:r[s],!f(y?s:h+(d?".":"#")+s,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;a(p,l)}(t.sham||l&&l.sham)&&i(p,"sham",!0),c(r,s,p,t)}}},,function(t,n,r){var e=r(47),o=r(126),i=r(37),c=r(125),u=Object.defineProperty;n.f=e?u:function(t,n,r){if(i(t),n=c(n,!0),i(r),o)try{return u(t,n,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(t[n]=r.value),t}},function(t,n,r){var e=r(27),o=r(48),i=r(42),c=r(93),u=r(94),a=r(88),f=a.get,s=a.enforce,l=String(String).split("String");(t.exports=function(t,n,r,u){var a=!!u&&!!u.unsafe,f=!!u&&!!u.enumerable,p=!!u&&!!u.noTargetGet;"function"==typeof r&&("string"!=typeof n||i(r,"name")||o(r,"name",n),s(r).source=l.join("string"==typeof n?n:"")),t!==e?(a?!p&&t[n]&&(f=!0):delete t[n],f?t[n]=r:o(t,n,r)):f?t[n]=r:c(n,r)})(Function.prototype,"toString",(function(){return"function"==typeof this&&f(this).source||u(this)}))},,,function(t,n){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},,,function(t,n,r){var e=r(150),o=r(27),i=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,n){return arguments.length<2?i(e[t])||i(o[t]):e[t]&&e[t][n]||o[t]&&o[t][n]}},,,,function(t,n,r){var e=r(95),o=r(53),i=r(186);e||o(Object.prototype,"toString",i,{unsafe:!0})},,,,function(t,n){t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},,,,,function(t,n,r){var e=r(119),o=r(56);t.exports=function(t){return e(o(t))}},function(t,n,r){var e=r(81),o=Math.min;t.exports=function(t){return t>0?o(e(t),9007199254740991):0}},function(t,n){t.exports={}},,,,,,function(t,n){t.exports=!1},function(t,n){var r=Math.ceil,e=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?e:r)(t)}},,,,,,,function(t,n,r){var e,o,i,c=r(180),u=r(27),a=r(44),f=r(48),s=r(42),l=r(107),p=r(103),v=u.WeakMap;if(c){var h=new v,y=h.get,d=h.has,g=h.set;e=function(t,n){return g.call(h,t,n),n},o=function(t){return y.call(h,t)||{}},i=function(t){return d.call(h,t)}}else{var m=l("state");p[m]=!0,e=function(t,n){return f(t,m,n),n},o=function(t){return s(t,m)?t[m]:{}},i=function(t){return s(t,m)}}t.exports={set:e,get:o,has:i,enforce:function(t){return i(t)?o(t):e(t,{})},getterFor:function(t){return function(n){var r;if(!a(n)||(r=o(n)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return r}}}},,,function(t,n,r){var e=r(47),o=r(167),i=r(92),c=r(72),u=r(125),a=r(42),f=r(126),s=Object.getOwnPropertyDescriptor;n.f=e?s:function(t,n){if(t=c(t),n=u(n,!0),f)try{return s(t,n)}catch(t){}if(a(t,n))return i(!o.f.call(t,n),t[n])}},function(t,n){t.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},function(t,n,r){var e=r(27),o=r(48);t.exports=function(t,n){try{o(e,t,n)}catch(r){e[t]=n}return n}},function(t,n,r){var e=r(127),o=Function.toString;"function"!=typeof e.inspectSource&&(e.inspectSource=function(t){return o.call(t)}),t.exports=e.inspectSource},function(t,n,r){var e={};e[r(32)("toStringTag")]="z",t.exports="[object z]"===String(e)},,,,,,,function(t,n,r){var e=r(27),o=r(44),i=e.document,c=o(i)&&o(i.createElement);t.exports=function(t){return c?i.createElement(t):{}}},function(t,n){t.exports={}},function(t,n,r){var e=r(67);t.exports=function(t,n,r){if(e(t),void 0===n)return t;switch(r){case 0:return function(){return t.call(n)};case 1:return function(r){return t.call(n,r)};case 2:return function(r,e){return t.call(n,r,e)};case 3:return function(r,e,o){return t.call(n,r,e,o)}}return function(){return t.apply(n,arguments)}}},function(t,n,r){var e=r(59);t.exports=e("navigator","userAgent")||""},function(t,n,r){"use strict";var e=r(67),o=function(t){var n,r;this.promise=new t((function(t,e){if(void 0!==n||void 0!==r)throw TypeError("Bad Promise constructor");n=t,r=e})),this.resolve=e(n),this.reject=e(r)};t.exports.f=function(t){return new o(t)}},function(t,n,r){var e=r(128),o=r(129),i=e("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},function(t,n){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(t,n,r){var e=r(52).f,o=r(42),i=r(32)("toStringTag");t.exports=function(t,n,r){t&&!o(t=r?t:t.prototype,i)&&e(t,i,{configurable:!0,value:n})}},,,,,,,,,,function(t,n,r){var e=r(36),o=r(49),i="".split;t.exports=e((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==o(t)?i.call(t,""):Object(t)}:Object},function(t,n,r){var e=r(56);t.exports=function(t){return Object(e(t))}},function(t,n,r){"use strict";var e,o,i,c,u=r(50),a=r(80),f=r(27),s=r(59),l=r(171),p=r(53),v=r(189),h=r(109),y=r(190),d=r(44),g=r(67),m=r(191),x=r(49),b=r(94),w=r(143),S=r(195),j=r(144),O=r(133).set,T=r(196),E=r(172),P=r(197),A=r(106),L=r(145),M=r(88),k=r(130),_=r(32),C=r(153),I=_("species"),R="Promise",F=M.get,D=M.set,G=M.getterFor(R),N=l,q=f.TypeError,V=f.document,z=f.process,H=s("fetch"),W=A.f,B=W,U="process"==x(z),Y=!!(V&&V.createEvent&&f.dispatchEvent),K="unhandledrejection",X=k(R,(function(){if(!(b(N)!==String(N))){if(66===C)return!0;if(!U&&"function"!=typeof PromiseRejectionEvent)return!0}if(a&&!N.prototype.finally)return!0;if(C>=51&&/native code/.test(N))return!1;var t=N.resolve(1),n=function(t){t((function(){}),(function(){}))};return(t.constructor={})[I]=n,!(t.then((function(){}))instanceof n)})),J=X||!S((function(t){N.all(t).catch((function(){}))})),Q=function(t){var n;return!(!d(t)||"function"!=typeof(n=t.then))&&n},Z=function(t,n,r){if(!n.notified){n.notified=!0;var e=n.reactions;T((function(){for(var o=n.value,i=1==n.state,c=0;e.length>c;){var u,a,f,s=e[c++],l=i?s.ok:s.fail,p=s.resolve,v=s.reject,h=s.domain;try{l?(i||(2===n.rejection&&rt(t,n),n.rejection=1),!0===l?u=o:(h&&h.enter(),u=l(o),h&&(h.exit(),f=!0)),u===s.promise?v(q("Promise-chain cycle")):(a=Q(u))?a.call(u,p,v):p(u)):v(o)}catch(t){h&&!f&&h.exit(),v(t)}}n.reactions=[],n.notified=!1,r&&!n.rejection&&tt(t,n)}))}},$=function(t,n,r){var e,o;Y?((e=V.createEvent("Event")).promise=n,e.reason=r,e.initEvent(t,!1,!0),f.dispatchEvent(e)):e={promise:n,reason:r},(o=f["on"+t])?o(e):t===K&&P("Unhandled promise rejection",r)},tt=function(t,n){O.call(f,(function(){var r,e=n.value;if(nt(n)&&(r=L((function(){U?z.emit("unhandledRejection",e,t):$(K,t,e)})),n.rejection=U||nt(n)?2:1,r.error))throw r.value}))},nt=function(t){return 1!==t.rejection&&!t.parent},rt=function(t,n){O.call(f,(function(){U?z.emit("rejectionHandled",t):$("rejectionhandled",t,n.value)}))},et=function(t,n,r,e){return function(o){t(n,r,o,e)}},ot=function(t,n,r,e){n.done||(n.done=!0,e&&(n=e),n.value=r,n.state=2,Z(t,n,!0))},it=function(t,n,r,e){if(!n.done){n.done=!0,e&&(n=e);try{if(t===r)throw q("Promise can't be resolved itself");var o=Q(r);o?T((function(){var e={done:!1};try{o.call(r,et(it,t,e,n),et(ot,t,e,n))}catch(r){ot(t,e,r,n)}})):(n.value=r,n.state=1,Z(t,n,!1))}catch(r){ot(t,{done:!1},r,n)}}};X&&(N=function(t){m(this,N,R),g(t),e.call(this);var n=F(this);try{t(et(it,this,n),et(ot,this,n))}catch(t){ot(this,n,t)}},(e=function(t){D(this,{type:R,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=v(N.prototype,{then:function(t,n){var r=G(this),e=W(j(this,N));return e.ok="function"!=typeof t||t,e.fail="function"==typeof n&&n,e.domain=U?z.domain:void 0,r.parent=!0,r.reactions.push(e),0!=r.state&&Z(this,r,!1),e.promise},catch:function(t){return this.then(void 0,t)}}),o=function(){var t=new e,n=F(t);this.promise=t,this.resolve=et(it,t,n),this.reject=et(ot,t,n)},A.f=W=function(t){return t===N||t===i?new o(t):B(t)},a||"function"!=typeof l||(c=l.prototype.then,p(l.prototype,"then",(function(t,n){var r=this;return new N((function(t,n){c.call(r,t,n)})).then(t,n)}),{unsafe:!0}),"function"==typeof H&&u({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return E(N,H.apply(f,arguments))}}))),u({global:!0,wrap:!0,forced:X},{Promise:N}),h(N,R,!1,!0),y(R),i=s(R),u({target:R,stat:!0,forced:X},{reject:function(t){var n=W(this);return n.reject.call(void 0,t),n.promise}}),u({target:R,stat:!0,forced:a||X},{resolve:function(t){return E(a&&this===i?N:this,t)}}),u({target:R,stat:!0,forced:J},{all:function(t){var n=this,r=W(n),e=r.resolve,o=r.reject,i=L((function(){var r=g(n.resolve),i=[],c=0,u=1;w(t,(function(t){var a=c++,f=!1;i.push(void 0),u++,r.call(n,t).then((function(t){f||(f=!0,i[a]=t,--u||e(i))}),o)})),--u||e(i)}));return i.error&&o(i.value),r.promise},race:function(t){var n=this,r=W(n),e=r.reject,o=L((function(){var o=g(n.resolve);w(t,(function(t){o.call(n,t).then(r.resolve,e)}))}));return o.error&&e(o.value),r.promise}})},,,function(t,n){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(t){"object"==typeof window&&(r=window)}t.exports=r},function(t,n,r){var e=r(44);t.exports=function(t,n){if(!e(t))return t;var r,o;if(n&&"function"==typeof(r=t.toString)&&!e(o=r.call(t)))return o;if("function"==typeof(r=t.valueOf)&&!e(o=r.call(t)))return o;if(!n&&"function"==typeof(r=t.toString)&&!e(o=r.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,n,r){var e=r(47),o=r(36),i=r(102);t.exports=!e&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},function(t,n,r){var e=r(27),o=r(93),i="__core-js_shared__",c=e[i]||o(i,{});t.exports=c},function(t,n,r){var e=r(80),o=r(127);(t.exports=function(t,n){return o[t]||(o[t]=void 0!==n?n:{})})("versions",[]).push({version:"3.6.4",mode:e?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},function(t,n){var r=0,e=Math.random();t.exports=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++r+e).toString(36)}},function(t,n,r){var e=r(36),o=/#|\.prototype\./,i=function(t,n){var r=u[c(t)];return r==f||r!=a&&("function"==typeof n?e(n):!!n)},c=i.normalize=function(t){return String(t).replace(o,".").toLowerCase()},u=i.data={},a=i.NATIVE="N",f=i.POLYFILL="P";t.exports=i},function(t,n,r){var e=r(36);t.exports=!!Object.getOwnPropertySymbols&&!e((function(){return!String(Symbol())}))},function(t,n,r){var e=r(95),o=r(49),i=r(32)("toStringTag"),c="Arguments"==o(function(){return arguments}());t.exports=e?o:function(t){var n,r,e;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,n){try{return t[n]}catch(t){}}(n=Object(t),i))?r:c?o(n):"Object"==(e=o(n))&&"function"==typeof n.callee?"Arguments":e}},function(t,n,r){var e,o,i,c=r(27),u=r(36),a=r(49),f=r(104),s=r(142),l=r(102),p=r(134),v=c.location,h=c.setImmediate,y=c.clearImmediate,d=c.process,g=c.MessageChannel,m=c.Dispatch,x=0,b={},w="onreadystatechange",S=function(t){if(b.hasOwnProperty(t)){var n=b[t];delete b[t],n()}},j=function(t){return function(){S(t)}},O=function(t){S(t.data)},T=function(t){c.postMessage(t+"",v.protocol+"//"+v.host)};h&&y||(h=function(t){for(var n=[],r=1;arguments.length>r;)n.push(arguments[r++]);return b[++x]=function(){("function"==typeof t?t:Function(t)).apply(void 0,n)},e(x),x},y=function(t){delete b[t]},"process"==a(d)?e=function(t){d.nextTick(j(t))}:m&&m.now?e=function(t){m.now(j(t))}:g&&!p?(i=(o=new g).port2,o.port1.onmessage=O,e=f(i.postMessage,i,1)):!c.addEventListener||"function"!=typeof postMessage||c.importScripts||u(T)?e=w in l("script")?function(t){s.appendChild(l("script")).onreadystatechange=function(){s.removeChild(this),S(t)}}:function(t){setTimeout(j(t),0)}:(e=T,c.addEventListener("message",O,!1))),t.exports={set:h,clear:y}},function(t,n,r){var e=r(105);t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(e)},,,,,,,function(t,n,r){var e=r(42),o=r(72),i=r(168).indexOf,c=r(103);t.exports=function(t,n){var r,u=o(t),a=0,f=[];for(r in u)!e(c,r)&&e(u,r)&&f.push(r);for(;n.length>a;)e(u,r=n[a++])&&(~i(f,r)||f.push(r));return f}},function(t,n,r){var e=r(59);t.exports=e("document","documentElement")},function(t,n,r){var e=r(37),o=r(192),i=r(73),c=r(104),u=r(193),a=r(194),f=function(t,n){this.stopped=t,this.result=n};(t.exports=function(t,n,r,s,l){var p,v,h,y,d,g,m,x=c(n,r,s?2:1);if(l)p=t;else{if("function"!=typeof(v=u(t)))throw TypeError("Target is not iterable");if(o(v)){for(h=0,y=i(t.length);y>h;h++)if((d=s?x(e(m=t[h])[0],m[1]):x(t[h]))&&d instanceof f)return d;return new f(!1)}p=v.call(t)}for(g=p.next;!(m=g.call(p)).done;)if("object"==typeof(d=a(p,x,m.value,s))&&d&&d instanceof f)return d;return new f(!1)}).stop=function(t){return new f(!0,t)}},function(t,n,r){var e=r(37),o=r(67),i=r(32)("species");t.exports=function(t,n){var r,c=e(t).constructor;return void 0===c||null==(r=e(c)[i])?n:o(r)}},function(t,n){t.exports=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}}},,,,,function(t,n,r){var e=r(27);t.exports=e},function(t,n,r){var e,o=r(37),i=r(227),c=r(108),u=r(103),a=r(142),f=r(102),s=r(107),l=s("IE_PROTO"),p=function(){},v=function(t){return"'); + + if (script) { + params.element.text(''); + params.element.replaceWith($__WEBPACK_IMPORTED_MODULE_3___default()(script).text(params.component.templateNodes[0] && params.component.templateNodes[0].nodeValue ? params.component.templateNodes[0].nodeValue : '')); + } else { + params.element.remove(); + } + } + + return _this; + } + + return ScriptComponent; +}(Component_Abstract__WEBPACK_IMPORTED_MODULE_4__[/* AbstractComponent */ "a"]); + +/* harmony default export */ __webpack_exports__["default"] = (Object(Component_Abstract__WEBPACK_IMPORTED_MODULE_4__[/* componentExportHelper */ "b"])(ScriptComponent, 'ScriptComponent')); + +/***/ }), +/* 402 */ +/*!**************************************************!*\ + !*** ./dev/Component/MaterialDesign/Checkbox.js ***! + \**************************************************/ +/*! exports provided: default */ +/*! all exports used */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/assertThisInitialized */ 29); +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var Component_Abstract__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Component/Abstract */ 32); +/* harmony import */ var Component_AbstractCheckbox__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Component/AbstractCheckbox */ 178); + + + + + + + +var CheckboxMaterialDesignComponent = /*#__PURE__*/function (_AbstractCheckbox) { + Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(CheckboxMaterialDesignComponent, _AbstractCheckbox); + + /** + * @param {Object} params + */ + function CheckboxMaterialDesignComponent(params) { + var _this; + + _this = _AbstractCheckbox.call(this, params) || this; + _this.animationBox = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false).extend({ + falseTimeout: 200 + }); + _this.animationCheckmark = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false).extend({ + falseTimeout: 200 + }); + _this.animationBoxSetTrue = ___WEBPACK_IMPORTED_MODULE_2___default.a.bind(_this.animationBoxSetTrue, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_this)); + _this.animationCheckmarkSetTrue = ___WEBPACK_IMPORTED_MODULE_2___default.a.bind(_this.animationCheckmarkSetTrue, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_this)); + + _this.disposable.push(_this.value.subscribe(function (value) { + _this.triggerAnimation(value); + }, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_this))); + + return _this; + } + + var _proto = CheckboxMaterialDesignComponent.prototype; + + _proto.animationBoxSetTrue = function animationBoxSetTrue() { + this.animationBox(true); + }; + + _proto.animationCheckmarkSetTrue = function animationCheckmarkSetTrue() { + this.animationCheckmark(true); + }; + + _proto.triggerAnimation = function triggerAnimation(box) { + if (box) { + this.animationBoxSetTrue(); + + ___WEBPACK_IMPORTED_MODULE_2___default.a.delay(this.animationCheckmarkSetTrue, 200); + } else { + this.animationCheckmarkSetTrue(); + + ___WEBPACK_IMPORTED_MODULE_2___default.a.delay(this.animationBoxSetTrue, 200); + } + }; + + return CheckboxMaterialDesignComponent; +}(Component_AbstractCheckbox__WEBPACK_IMPORTED_MODULE_5__[/* AbstractCheckbox */ "a"]); + +/* harmony default export */ __webpack_exports__["default"] = (Object(Component_Abstract__WEBPACK_IMPORTED_MODULE_4__[/* componentExportHelper */ "b"])(CheckboxMaterialDesignComponent, 'CheckboxMaterialDesignComponent')); + +/***/ }), +/* 403 */, +/* 404 */ +/*!**************************!*\ + !*** ./dev/App/Admin.js ***! + \**************************/ +/*! exports provided: default */ +/*! all exports used */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 17); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! window */ 4); +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var progressJs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! progressJs */ 102); +/* harmony import */ var progressJs__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(progressJs__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var Common_Links__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Common/Links */ 15); +/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Common/Translator */ 9); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Common/Enums */ 0); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Common/Utils */ 2); +/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Storage/Settings */ 5); +/* harmony import */ var Stores_Admin_App__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Stores/Admin/App */ 78); +/* harmony import */ var Stores_Admin_Capa__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! Stores/Admin/Capa */ 89); +/* harmony import */ var Stores_Admin_Domain__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! Stores/Admin/Domain */ 165); +/* harmony import */ var Stores_Admin_Plugin__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! Stores/Admin/Plugin */ 125); +/* harmony import */ var Stores_Admin_License__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! Stores/Admin/License */ 126); +/* harmony import */ var Stores_Admin_Package__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! Stores/Admin/Package */ 95); +/* harmony import */ var Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! Stores/Admin/Core */ 40); +/* harmony import */ var Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! Remote/Admin/Ajax */ 22); +/* harmony import */ var Screen_Admin_Settings__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! Screen/Admin/Settings */ 470); +/* harmony import */ var Screen_Admin_Login__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! Screen/Admin/Login */ 482); +/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! Knoin/Knoin */ 7); +/* harmony import */ var App_Abstract__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! App/Abstract */ 306); + + + + + + + + + + + + + + + + + + + + + + + + +var AdminApp = /*#__PURE__*/function (_AbstractApp) { + Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(AdminApp, _AbstractApp); + + function AdminApp() { + return _AbstractApp.call(this, Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"]) || this; + } + + var _proto = AdminApp.prototype; + + _proto.remote = function remote() { + return Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"]; + }; + + _proto.reloadDomainList = function reloadDomainList() { + Stores_Admin_Domain__WEBPACK_IMPORTED_MODULE_13__[/* default */ "a"].domains.loading(true); + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"].domainList(function (result, data) { + Stores_Admin_Domain__WEBPACK_IMPORTED_MODULE_13__[/* default */ "a"].domains.loading(false); + + if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["StorageResultType"].Success === result && data && data.Result) { + Stores_Admin_Domain__WEBPACK_IMPORTED_MODULE_13__[/* default */ "a"].domains(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_3___default.a).call(___WEBPACK_IMPORTED_MODULE_3___default.a, data.Result, function (_ref, name) { + var enabled = _ref[0], + alias = _ref[1]; + return { + name: name, + disabled: ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observable(!enabled), + alias: alias, + deleteAccess: ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observable(false) + }; + })); + } + }); + }; + + _proto.reloadPluginList = function reloadPluginList() { + Stores_Admin_Plugin__WEBPACK_IMPORTED_MODULE_14__[/* default */ "a"].plugins.loading(true); + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"].pluginList(function (result, data) { + Stores_Admin_Plugin__WEBPACK_IMPORTED_MODULE_14__[/* default */ "a"].plugins.loading(false); + + if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["StorageResultType"].Success === result && data && data.Result) { + Stores_Admin_Plugin__WEBPACK_IMPORTED_MODULE_14__[/* default */ "a"].plugins(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_3___default.a).call(___WEBPACK_IMPORTED_MODULE_3___default.a, data.Result, function (item) { + return { + name: item.Name, + disabled: ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observable(!item.Enabled), + configured: ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observable(!!item.Configured) + }; + })); + } + }); + }; + + _proto.reloadPackagesList = function reloadPackagesList() { + Stores_Admin_Package__WEBPACK_IMPORTED_MODULE_16__[/* default */ "a"].packages.loading(true); + Stores_Admin_Package__WEBPACK_IMPORTED_MODULE_16__[/* default */ "a"].packagesReal(true); + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"].packagesList(function (result, data) { + Stores_Admin_Package__WEBPACK_IMPORTED_MODULE_16__[/* default */ "a"].packages.loading(false); + + if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["StorageResultType"].Success === result && data && data.Result) { + Stores_Admin_Package__WEBPACK_IMPORTED_MODULE_16__[/* default */ "a"].packagesReal(!!data.Result.Real); + Stores_Admin_Package__WEBPACK_IMPORTED_MODULE_16__[/* default */ "a"].packagesMainUpdatable(!!data.Result.MainUpdatable); + var list = []; + var loading = {}; + + ___WEBPACK_IMPORTED_MODULE_3___default.a.each(Stores_Admin_Package__WEBPACK_IMPORTED_MODULE_16__[/* default */ "a"].packages(), function (item) { + if (item && item.loading()) { + loading[item.file] = item; + } + }); + + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["isArray"])(data.Result.List)) { + list = ___WEBPACK_IMPORTED_MODULE_3___default.a.compact(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_3___default.a).call(___WEBPACK_IMPORTED_MODULE_3___default.a, data.Result.List, function (item) { + if (item) { + item.loading = ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observable(!Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["isUnd"])(loading[item.file])); + return 'core' === item.type && !item.canBeInstalled ? null : item; + } + + return null; + })); + } + + Stores_Admin_Package__WEBPACK_IMPORTED_MODULE_16__[/* default */ "a"].packages(list); + } else { + Stores_Admin_Package__WEBPACK_IMPORTED_MODULE_16__[/* default */ "a"].packagesReal(false); + } + }); + }; + + _proto.updateCoreData = function updateCoreData() { + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreUpdating(true); + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"].updateCoreData(function (result, data) { + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreUpdating(false); + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreVersion(''); + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreRemoteVersion(''); + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreRemoteRelease(''); + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreVersionCompare(-2); + + if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["StorageResultType"].Success === result && data && data.Result) { + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreReal(true); + window__WEBPACK_IMPORTED_MODULE_2___default.a.location.reload(); + } else { + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreReal(false); + } + }); + }; + + _proto.reloadCoreData = function reloadCoreData() { + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreChecking(true); + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreReal(true); + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"].coreData(function (result, data) { + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreChecking(false); + + if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["StorageResultType"].Success === result && data && data.Result) { + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreReal(!!data.Result.Real); + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreChannel(data.Result.Channel || 'stable'); + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreType(data.Result.Type || 'stable'); + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreUpdatable(!!data.Result.Updatable); + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreAccess(!!data.Result.Access); + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreWarning(!!data.Result.Warning); + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreVersion(data.Result.Version || ''); + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreRemoteVersion(data.Result.RemoteVersion || ''); + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreRemoteRelease(data.Result.RemoteRelease || ''); + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreVersionCompare(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["pInt"])(data.Result.VersionCompare)); + } else { + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreReal(false); + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreChannel('stable'); + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreType('stable'); + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreWarning(false); + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreVersion(''); + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreRemoteVersion(''); + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreRemoteRelease(''); + Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"].coreVersionCompare(-2); + } + }); + } + /** + * @param {boolean=} force = false + */ + ; + + _proto.reloadLicensing = function reloadLicensing(force) { + if (force === void 0) { + force = false; + } + + Stores_Admin_License__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"].licensingProcess(true); + Stores_Admin_License__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"].licenseError(''); + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"].licensing(function (result, data) { + Stores_Admin_License__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"].licensingProcess(false); + + if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["StorageResultType"].Success === result && data && data.Result && Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["isNormal"])(data.Result.Expired)) { + Stores_Admin_License__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"].licenseValid(true); + Stores_Admin_License__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"].licenseExpired(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["pInt"])(data.Result.Expired)); + Stores_Admin_License__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"].licenseError(''); + Stores_Admin_License__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"].licensing(true); + Stores_Admin_App__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].prem(true); + } else { + if (data && data.ErrorCode && -1 < Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["inArray"])(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["pInt"])(data.ErrorCode), [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].LicensingServerIsUnavailable, Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].LicensingExpired])) { + Stores_Admin_License__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"].licenseError(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_7__["getNotification"])(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["pInt"])(data.ErrorCode))); + Stores_Admin_License__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"].licensing(true); + } else { + if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["StorageResultType"].Abort === result) { + Stores_Admin_License__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"].licenseError(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_7__["getNotification"])(Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].LicensingServerIsUnavailable)); + Stores_Admin_License__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"].licensing(true); + } else { + Stores_Admin_License__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"].licensing(false); + } + } + } + }, force); + }; + + _proto.bootend = function bootend(bootendCallback) { + if (bootendCallback === void 0) { + bootendCallback = null; + } + + if (progressJs__WEBPACK_IMPORTED_MODULE_5___default.a) { + progressJs__WEBPACK_IMPORTED_MODULE_5___default.a.end(); + } + + if (bootendCallback) { + bootendCallback(); + } + }; + + _proto.bootstart = function bootstart() { + _AbstractApp.prototype.bootstart.call(this); + + Stores_Admin_App__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].populate(); + Stores_Admin_Capa__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"].populate(); + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_21__["hideLoading"])(); + + if (!Storage_Settings__WEBPACK_IMPORTED_MODULE_10__["appSettingsGet"]('allowAdminPanel')) { + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_21__["routeOff"])(); + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_21__["setHash"])(Object(Common_Links__WEBPACK_IMPORTED_MODULE_6__[/* root */ "w"])(), true); + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_21__["routeOff"])(); + + ___WEBPACK_IMPORTED_MODULE_3___default.a.defer(function () { + window__WEBPACK_IMPORTED_MODULE_2___default.a.location.href = '/'; + }); + } else { + if (Storage_Settings__WEBPACK_IMPORTED_MODULE_10__["settingsGet"]('Auth')) { + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_21__["startScreens"])([Screen_Admin_Settings__WEBPACK_IMPORTED_MODULE_19__[/* SettingsAdminScreen */ "a"]]); + } else { + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_21__["startScreens"])([Screen_Admin_Login__WEBPACK_IMPORTED_MODULE_20__[/* LoginAdminScreen */ "a"]]); + } + } + + this.bootend(); + }; + + return AdminApp; +}(App_Abstract__WEBPACK_IMPORTED_MODULE_22__[/* AbstractApp */ "a"]); + +/* harmony default export */ __webpack_exports__["default"] = (new AdminApp()); + +/***/ }), +/* 405 */, +/* 406 */, +/* 407 */, +/* 408 */, +/* 409 */, +/* 410 */, +/* 411 */, +/* 412 */, +/* 413 */, +/* 414 */, +/* 415 */, +/* 416 */, +/* 417 */, +/* 418 */, +/* 419 */, +/* 420 */, +/* 421 */, +/* 422 */, +/* 423 */, +/* 424 */, +/* 425 */, +/* 426 */, +/* 427 */, +/* 428 */, +/* 429 */, +/* 430 */, +/* 431 */, +/* 432 */, +/* 433 */ +/*!**********************************!*\ + !*** ./dev/View/Popup/Domain.js ***! + \**********************************/ +/*! exports provided: DomainPopupView, default */ +/*! all exports used */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DomainPopupView", function() { return DomainPopupView; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return DomainPopupView; }); +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/applyDecoratedDescriptor */ 18); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor */ 19); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ 48); +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ 45); +/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ 59); +/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Common/Enums */ 0); +/* harmony import */ var Common_Consts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Common/Consts */ 24); +/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Common/Globals */ 6); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Common/Utils */ 2); +/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! Common/Translator */ 9); +/* harmony import */ var Stores_Admin_Capa__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! Stores/Admin/Capa */ 89); +/* harmony import */ var Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! Remote/Admin/Ajax */ 22); +/* harmony import */ var Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! Helper/Apps/Admin */ 68); +/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! Knoin/Knoin */ 7); +/* harmony import */ var Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! Knoin/AbstractViewNext */ 25); + + + +var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _class2; + + + + + + + + + + + + + + + + + +var DomainPopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_16__["popup"])({ + name: 'View/Popup/Domain', + templateID: 'PopupsDomain' +}), _dec2 = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_16__["command"])(function (self) { + return self.canBeSaved(); +}), _dec3 = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_16__["command"])(function (self) { + return self.canBeTested(); +}), _dec4 = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_16__["command"])(), _dec5 = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_16__["command"])(), _dec6 = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_16__["command"])(), _dec(_class = (_class2 = /*#__PURE__*/function (_AbstractViewNext) { + Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(DomainPopupView, _AbstractViewNext); + + function DomainPopupView() { + var _this; + + _this = _AbstractViewNext.call(this) || this; + _this.edit = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); + _this.saving = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); + _this.savingError = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(''); + _this.page = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable('main'); + _this.sieveSettings = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); + _this.testing = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); + _this.testingDone = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); + _this.testingImapError = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); + _this.testingSieveError = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); + _this.testingSmtpError = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); + _this.testingImapErrorDesc = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(''); + _this.testingSieveErrorDesc = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(''); + _this.testingSmtpErrorDesc = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(''); + + _this.testingImapError.subscribe(function (value) { + if (!value) { + _this.testingImapErrorDesc(''); + } + }); + + _this.testingSieveError.subscribe(function (value) { + if (!value) { + _this.testingSieveErrorDesc(''); + } + }); + + _this.testingSmtpError.subscribe(function (value) { + if (!value) { + _this.testingSmtpErrorDesc(''); + } + }); + + _this.imapServerFocus = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); + _this.sieveServerFocus = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); + _this.smtpServerFocus = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); + _this.name = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(''); + _this.name.focused = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); + _this.imapServer = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(''); + _this.imapPort = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable('' + Common_Consts__WEBPACK_IMPORTED_MODULE_9__[/* IMAP_DEFAULT_PORT */ "h"]); + _this.imapSecure = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_8__["ServerSecure"].None); + _this.imapShortLogin = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); + _this.useSieve = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); + _this.sieveAllowRaw = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); + _this.sieveServer = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(''); + _this.sievePort = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable('' + Common_Consts__WEBPACK_IMPORTED_MODULE_9__[/* SIEVE_DEFAULT_PORT */ "o"]); + _this.sieveSecure = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_8__["ServerSecure"].None); + _this.smtpServer = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(''); + _this.smtpPort = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable('' + Common_Consts__WEBPACK_IMPORTED_MODULE_9__[/* SMTP_DEFAULT_PORT */ "p"]); + _this.smtpSecure = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_8__["ServerSecure"].None); + _this.smtpShortLogin = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); + _this.smtpAuth = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(true); + _this.smtpPhpMail = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); + _this.whiteList = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(''); + _this.aliasName = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(''); + _this.enableSmartPorts = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); + _this.allowSieve = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].computed(function () { + return Stores_Admin_Capa__WEBPACK_IMPORTED_MODULE_13__[/* default */ "a"].filters() && Stores_Admin_Capa__WEBPACK_IMPORTED_MODULE_13__[/* default */ "a"].sieve(); + }); + _this.headerText = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].computed(function () { + var name = _this.name(), + aliasName = _this.aliasName(); + + var result = ''; + + if (_this.edit()) { + result = Object(Common_Translator__WEBPACK_IMPORTED_MODULE_12__["i18n"])('POPUPS_DOMAIN/TITLE_EDIT_DOMAIN', { + 'NAME': name + }); + + if (aliasName) { + result += ' ← ' + aliasName; + } + } else { + result = '' === name ? Object(Common_Translator__WEBPACK_IMPORTED_MODULE_12__["i18n"])('POPUPS_DOMAIN/TITLE_ADD_DOMAIN') : Object(Common_Translator__WEBPACK_IMPORTED_MODULE_12__["i18n"])('POPUPS_DOMAIN/TITLE_ADD_DOMAIN_WITH_NAME', { + 'NAME': name + }); + } + + return result; + }); + _this.domainDesc = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].computed(function () { + var name = _this.name(); + + return !_this.edit() && name ? Object(Common_Translator__WEBPACK_IMPORTED_MODULE_12__["i18n"])('POPUPS_DOMAIN/NEW_DOMAIN_DESC', { + 'NAME': '*@' + name + }) : ''; + }); + _this.domainIsComputed = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].computed(function () { + var usePhpMail = _this.smtpPhpMail(), + allowSieve = _this.allowSieve(), + useSieve = _this.useSieve(); + + return '' !== _this.name() && '' !== _this.imapServer() && '' !== _this.imapPort() && (allowSieve && useSieve ? '' !== _this.sieveServer() && '' !== _this.sievePort() : true) && ('' !== _this.smtpServer() && '' !== _this.smtpPort() || usePhpMail); + }); + _this.canBeTested = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].computed(function () { + return !_this.testing() && _this.domainIsComputed(); + }); + _this.canBeSaved = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].computed(function () { + return !_this.saving() && _this.domainIsComputed(); + }); + + _this.page.subscribe(function () { + _this.sieveSettings(false); + }); // smart form improvements + + + _this.imapServerFocus.subscribe(function (value) { + if (value && '' !== _this.name() && '' === _this.imapServer()) { + _this.imapServer(_this.name().replace(/[.]?[*][.]?/g, '')); + } + }); + + _this.sieveServerFocus.subscribe(function (value) { + if (value && '' !== _this.imapServer() && '' === _this.sieveServer()) { + _this.sieveServer(_this.imapServer()); + } + }); + + _this.smtpServerFocus.subscribe(function (value) { + if (value && '' !== _this.imapServer() && '' === _this.smtpServer()) { + _this.smtpServer(_this.imapServer().replace(/imap/gi, 'smtp')); + } + }); + + _this.imapSecure.subscribe(function (value) { + if (_this.enableSmartPorts()) { + var port = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["pInt"])(_this.imapPort()); + + switch (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["pString"])(value)) { + case '0': + case '2': + if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Ports"].ImapSsl === port) { + _this.imapPort(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["pString"])(Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Ports"].Imap)); + } + + break; + + case '1': + if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Ports"].Imap === port) { + _this.imapPort(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["pString"])(Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Ports"].ImapSsl)); + } + + break; + // no default + } + } + }); + + _this.smtpSecure.subscribe(function (value) { + if (_this.enableSmartPorts()) { + var port = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["pInt"])(_this.smtpPort()); + + switch (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["pString"])(value)) { + case '0': + if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Ports"].SmtpSsl === port || Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Ports"].SmtpStartTls === port) { + _this.smtpPort(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["pString"])(Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Ports"].Smtp)); + } + + break; + + case '1': + if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Ports"].Smtp === port || Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Ports"].SmtpStartTls === port) { + _this.smtpPort(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["pString"])(Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Ports"].SmtpSsl)); + } + + break; + + case '2': + if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Ports"].Smtp === port || Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Ports"].SmtpSsl === port) { + _this.smtpPort(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["pString"])(Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Ports"].SmtpStartTls)); + } + + break; + // no default + } + } + }); + + return _this; + } + + var _proto = DomainPopupView.prototype; + + _proto.createOrAddCommand = function createOrAddCommand() { + this.saving(true); + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_14__[/* default */ "a"].createOrUpdateDomain(___WEBPACK_IMPORTED_MODULE_6___default.a.bind(this.onDomainCreateOrSaveResponse, this), !this.edit(), this.name(), this.imapServer(), Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["pInt"])(this.imapPort()), this.imapSecure(), this.imapShortLogin(), this.useSieve(), this.sieveAllowRaw(), this.sieveServer(), Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["pInt"])(this.sievePort()), this.sieveSecure(), this.smtpServer(), Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["pInt"])(this.smtpPort()), this.smtpSecure(), this.smtpShortLogin(), this.smtpAuth(), this.smtpPhpMail(), this.whiteList()); + }; + + _proto.testConnectionCommand = function testConnectionCommand() { + this.page('main'); + this.testingDone(false); + this.testingImapError(false); + this.testingSieveError(false); + this.testingSmtpError(false); + this.testing(true); + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_14__[/* default */ "a"].testConnectionForDomain(___WEBPACK_IMPORTED_MODULE_6___default.a.bind(this.onTestConnectionResponse, this), this.name(), this.imapServer(), Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["pInt"])(this.imapPort()), this.imapSecure(), this.useSieve(), this.sieveServer(), Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["pInt"])(this.sievePort()), this.sieveSecure(), this.smtpServer(), Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["pInt"])(this.smtpPort()), this.smtpSecure(), this.smtpAuth(), this.smtpPhpMail()); + }; + + _proto.whiteListCommand = function whiteListCommand() { + this.page('white-list'); + }; + + _proto.backCommand = function backCommand() { + this.page('main'); + }; + + _proto.sieveCommand = function sieveCommand() { + this.sieveSettings(!this.sieveSettings()); + this.clearTesting(); + }; + + _proto.onTestConnectionResponse = function onTestConnectionResponse(sResult, oData) { + this.testing(false); + + if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["StorageResultType"].Success === sResult && oData.Result) { + var bImap = false, + bSieve = false; + this.testingDone(true); + this.testingImapError(true !== oData.Result.Imap); + this.testingSieveError(true !== oData.Result.Sieve); + this.testingSmtpError(true !== oData.Result.Smtp); + + if (this.testingImapError() && oData.Result.Imap) { + bImap = true; + this.testingImapErrorDesc(''); + this.testingImapErrorDesc(oData.Result.Imap); + } + + if (this.testingSieveError() && oData.Result.Sieve) { + bSieve = true; + this.testingSieveErrorDesc(''); + this.testingSieveErrorDesc(oData.Result.Sieve); + } + + if (this.testingSmtpError() && oData.Result.Smtp) { + this.testingSmtpErrorDesc(''); + this.testingSmtpErrorDesc(oData.Result.Smtp); + } + + if (this.sieveSettings()) { + if (!bSieve && bImap) { + this.sieveSettings(false); + } + } else if (bSieve && !bImap) { + this.sieveSettings(true); + } + } else { + this.testingImapError(true); + this.testingSieveError(true); + this.testingSmtpError(true); + this.sieveSettings(false); + } + }; + + _proto.onDomainCreateOrSaveResponse = function onDomainCreateOrSaveResponse(sResult, oData) { + this.saving(false); + + if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["StorageResultType"].Success === sResult && oData) { + if (oData.Result) { + Object(Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_15__[/* getApp */ "a"])().reloadDomainList(); + this.closeCommand(); + } else if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].DomainAlreadyExists === oData.ErrorCode) { + this.savingError(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_12__["i18n"])('ERRORS/DOMAIN_ALREADY_EXISTS')); + } + } else { + this.savingError(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_12__["i18n"])('ERRORS/UNKNOWN_ERROR')); + } + }; + + _proto.clearTesting = function clearTesting() { + this.testing(false); + this.testingDone(false); + this.testingImapError(false); + this.testingSieveError(false); + this.testingSmtpError(false); + }; + + _proto.onHide = function onHide() { + this.page('main'); + this.sieveSettings(false); + }; + + _proto.onShow = function onShow(oDomain) { + this.saving(false); + this.page('main'); + this.sieveSettings(false); + this.clearTesting(); + this.clearForm(); + + if (oDomain) { + this.enableSmartPorts(false); + this.edit(true); + this.name(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["trim"])(oDomain.Name)); + this.imapServer(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["trim"])(oDomain.IncHost)); + this.imapPort('' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["pInt"])(oDomain.IncPort)); + this.imapSecure(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["trim"])(oDomain.IncSecure)); + this.imapShortLogin(!!oDomain.IncShortLogin); + this.useSieve(!!oDomain.UseSieve); + this.sieveAllowRaw(!!oDomain.SieveAllowRaw); + this.sieveServer(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["trim"])(oDomain.SieveHost)); + this.sievePort('' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["pInt"])(oDomain.SievePort)); + this.sieveSecure(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["trim"])(oDomain.SieveSecure)); + this.smtpServer(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["trim"])(oDomain.OutHost)); + this.smtpPort('' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["pInt"])(oDomain.OutPort)); + this.smtpSecure(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["trim"])(oDomain.OutSecure)); + this.smtpShortLogin(!!oDomain.OutShortLogin); + this.smtpAuth(!!oDomain.OutAuth); + this.smtpPhpMail(!!oDomain.OutUsePhpMail); + this.whiteList(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["trim"])(oDomain.WhiteList)); + this.aliasName(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_11__["trim"])(oDomain.AliasName)); + this.enableSmartPorts(true); + } + }; + + _proto.onShowWithDelay = function onShowWithDelay() { + if ('' === this.name() && !Common_Globals__WEBPACK_IMPORTED_MODULE_10__["bMobileDevice"]) { + this.name.focused(true); + } + }; + + _proto.clearForm = function clearForm() { + this.edit(false); + this.page('main'); + this.sieveSettings(false); + this.enableSmartPorts(false); + this.savingError(''); + this.name(''); + this.name.focused(false); + this.imapServer(''); + this.imapPort('' + Common_Consts__WEBPACK_IMPORTED_MODULE_9__[/* IMAP_DEFAULT_PORT */ "h"]); + this.imapSecure(Common_Enums__WEBPACK_IMPORTED_MODULE_8__["ServerSecure"].None); + this.imapShortLogin(false); + this.useSieve(false); + this.sieveAllowRaw(false); + this.sieveServer(''); + this.sievePort('' + Common_Consts__WEBPACK_IMPORTED_MODULE_9__[/* SIEVE_DEFAULT_PORT */ "o"]); + this.sieveSecure(Common_Enums__WEBPACK_IMPORTED_MODULE_8__["ServerSecure"].None); + this.smtpServer(''); + this.smtpPort('' + Common_Consts__WEBPACK_IMPORTED_MODULE_9__[/* SMTP_DEFAULT_PORT */ "p"]); + this.smtpSecure(Common_Enums__WEBPACK_IMPORTED_MODULE_8__["ServerSecure"].None); + this.smtpShortLogin(false); + this.smtpAuth(true); + this.smtpPhpMail(false); + this.whiteList(''); + this.aliasName(''); + this.enableSmartPorts(true); + }; + + return DomainPopupView; +}(Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_17__[/* AbstractViewNext */ "a"]), (Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_class2.prototype, "createOrAddCommand", [_dec2], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_2___default()(_class2.prototype, "createOrAddCommand"), _class2.prototype), Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_class2.prototype, "testConnectionCommand", [_dec3], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_2___default()(_class2.prototype, "testConnectionCommand"), _class2.prototype), Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_class2.prototype, "whiteListCommand", [_dec4], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_2___default()(_class2.prototype, "whiteListCommand"), _class2.prototype), Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_class2.prototype, "backCommand", [_dec5], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_2___default()(_class2.prototype, "backCommand"), _class2.prototype), Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_class2.prototype, "sieveCommand", [_dec6], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_2___default()(_class2.prototype, "sieveCommand"), _class2.prototype)), _class2)) || _class); + + +/***/ }), +/* 434 */, +/* 435 */, +/* 436 */, +/* 437 */, +/* 438 */, +/* 439 */, +/* 440 */, +/* 441 */, +/* 442 */, +/* 443 */, +/* 444 */, +/* 445 */, +/* 446 */, +/* 447 */, +/* 448 */, +/* 449 */, +/* 450 */, +/* 451 */, +/* 452 */, +/* 453 */, +/* 454 */, +/* 455 */, +/* 456 */, +/* 457 */, +/* 458 */, +/* 459 */, +/* 460 */, +/* 461 */, +/* 462 */, +/* 463 */, +/* 464 */, +/* 465 */, +/* 466 */, +/* 467 */, +/* 468 */, +/* 469 */, +/* 470 */ +/*!**************************************!*\ + !*** ./dev/Screen/Admin/Settings.js ***! + \**************************************/ +/*! exports provided: SettingsAdminScreen, default */ +/*! exports used: SettingsAdminScreen */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SettingsAdminScreen; }); +/* unused harmony export default */ +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); +/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Knoin/Knoin */ 7); +/* harmony import */ var Common_Plugins__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Common/Plugins */ 36); +/* harmony import */ var Screen_AbstractSettings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Screen/AbstractSettings */ 305); +/* harmony import */ var Settings_Admin_General__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Settings/Admin/General */ 471); +/* harmony import */ var Settings_Admin_Domains__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Settings/Admin/Domains */ 472); +/* harmony import */ var Settings_Admin_Login__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Settings/Admin/Login */ 473); +/* harmony import */ var Settings_Admin_Contacts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Settings/Admin/Contacts */ 474); +/* harmony import */ var Settings_Admin_Security__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Settings/Admin/Security */ 475); +/* harmony import */ var Settings_Admin_Social__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Settings/Admin/Social */ 476); +/* harmony import */ var Settings_Admin_Plugins__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Settings/Admin/Plugins */ 477); +/* harmony import */ var Settings_Admin_Packages__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Settings/Admin/Packages */ 478); +/* harmony import */ var Settings_Admin_About__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! Settings/Admin/About */ 479); +/* harmony import */ var Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! Helper/Apps/Admin */ 68); +/* harmony import */ var View_Admin_Settings_Menu__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! View/Admin/Settings/Menu */ 480); +/* harmony import */ var View_Admin_Settings_Pane__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! View/Admin/Settings/Pane */ 481); + + + + + + + + + + + + + + + + + +var SettingsAdminScreen = /*#__PURE__*/function (_AbstractSettingsScre) { + Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(SettingsAdminScreen, _AbstractSettingsScre); + + function SettingsAdminScreen() { + return _AbstractSettingsScre.call(this, [View_Admin_Settings_Menu__WEBPACK_IMPORTED_MODULE_14__[/* MenuSettingsAdminView */ "a"], View_Admin_Settings_Pane__WEBPACK_IMPORTED_MODULE_15__[/* PaneSettingsAdminView */ "a"]]) || this; + } + /** + * @param {Function=} fCallback = null + */ + + + var _proto = SettingsAdminScreen.prototype; + + _proto.setupSettings = function setupSettings(fCallback) { + if (fCallback === void 0) { + fCallback = null; + } + + var branding = null, + licensing = null; + + if (true) { + branding = __webpack_require__(/*! Settings/Admin/Branding */ 564).default; + } else {} + + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_1__["addSettingsViewModel"])(Settings_Admin_General__WEBPACK_IMPORTED_MODULE_4__[/* GeneralAdminSettings */ "a"], 'AdminSettingsGeneral', 'TABS_LABELS/LABEL_GENERAL_NAME', 'general', true); + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_1__["addSettingsViewModel"])(Settings_Admin_Domains__WEBPACK_IMPORTED_MODULE_5__[/* DomainsAdminSettings */ "a"], 'AdminSettingsDomains', 'TABS_LABELS/LABEL_DOMAINS_NAME', 'domains'); + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_1__["addSettingsViewModel"])(Settings_Admin_Login__WEBPACK_IMPORTED_MODULE_6__[/* LoginAdminSettings */ "a"], 'AdminSettingsLogin', 'TABS_LABELS/LABEL_LOGIN_NAME', 'login'); + + if (branding) { + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_1__["addSettingsViewModel"])(branding, 'AdminSettingsBranding', 'TABS_LABELS/LABEL_BRANDING_NAME', 'branding'); + } + + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_1__["addSettingsViewModel"])(Settings_Admin_Contacts__WEBPACK_IMPORTED_MODULE_7__[/* ContactsAdminSettings */ "a"], 'AdminSettingsContacts', 'TABS_LABELS/LABEL_CONTACTS_NAME', 'contacts'); + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_1__["addSettingsViewModel"])(Settings_Admin_Security__WEBPACK_IMPORTED_MODULE_8__[/* SecurityAdminSettings */ "a"], 'AdminSettingsSecurity', 'TABS_LABELS/LABEL_SECURITY_NAME', 'security'); + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_1__["addSettingsViewModel"])(Settings_Admin_Social__WEBPACK_IMPORTED_MODULE_9__[/* SocialAdminSettings */ "a"], 'AdminSettingsSocial', 'TABS_LABELS/LABEL_INTEGRATION_NAME', 'integrations'); + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_1__["addSettingsViewModel"])(Settings_Admin_Plugins__WEBPACK_IMPORTED_MODULE_10__[/* PluginsAdminSettings */ "a"], 'AdminSettingsPlugins', 'TABS_LABELS/LABEL_PLUGINS_NAME', 'plugins'); + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_1__["addSettingsViewModel"])(Settings_Admin_Packages__WEBPACK_IMPORTED_MODULE_11__[/* PackagesAdminSettings */ "a"], 'AdminSettingsPackages', 'TABS_LABELS/LABEL_PACKAGES_NAME', 'packages'); + + if (licensing) { + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_1__["addSettingsViewModel"])(licensing, 'AdminSettingsLicensing', 'TABS_LABELS/LABEL_LICENSING_NAME', 'licensing'); + } + + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_1__["addSettingsViewModel"])(Settings_Admin_About__WEBPACK_IMPORTED_MODULE_12__[/* AboutAdminSettings */ "a"], 'AdminSettingsAbout', 'TABS_LABELS/LABEL_ABOUT_NAME', 'about'); + Object(Common_Plugins__WEBPACK_IMPORTED_MODULE_2__[/* runSettingsViewModelHooks */ "g"])(true); + + if (fCallback) { + fCallback(); + } + }; + + _proto.onShow = function onShow() { + Object(Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_13__[/* getApp */ "a"])().setWindowTitle(''); + }; + + return SettingsAdminScreen; +}(Screen_AbstractSettings__WEBPACK_IMPORTED_MODULE_3__[/* AbstractSettingsScreen */ "a"]); + + + +/***/ }), +/* 471 */ +/*!***************************************!*\ + !*** ./dev/Settings/Admin/General.js ***! + \***************************************/ +/*! exports provided: GeneralAdminSettings, default */ +/*! exports used: GeneralAdminSettings */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return GeneralAdminSettings; }); +/* unused harmony export default */ +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 17); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.join.js */ 77); +/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Utils */ 2); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Enums */ 0); +/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Common/Translator */ 9); +/* harmony import */ var Common_Links__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Common/Links */ 15); +/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Storage/Settings */ 5); +/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Knoin/Knoin */ 7); +/* harmony import */ var Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Remote/Admin/Ajax */ 22); +/* harmony import */ var Stores_Theme__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Stores/Theme */ 123); +/* harmony import */ var Stores_Language__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! Stores/Language */ 72); +/* harmony import */ var Stores_Admin_App__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! Stores/Admin/App */ 78); +/* harmony import */ var Stores_Admin_Capa__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! Stores/Admin/Capa */ 89); + + + + + + + + + + + + + + + + +var GeneralAdminSettings = /*#__PURE__*/function () { + function GeneralAdminSettings() { + var _this = this; + + this.language = Stores_Language__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"].language; + this.languages = Stores_Language__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"].languages; + this.languageAdmin = Stores_Language__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"].languageAdmin; + this.languagesAdmin = Stores_Language__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"].languagesAdmin; + this.theme = Stores_Theme__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].theme; + this.themes = Stores_Theme__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].themes; + this.capaThemes = Stores_Admin_Capa__WEBPACK_IMPORTED_MODULE_14__[/* default */ "a"].themes; + this.capaUserBackground = Stores_Admin_Capa__WEBPACK_IMPORTED_MODULE_14__[/* default */ "a"].userBackground; + this.capaGravatar = Stores_Admin_Capa__WEBPACK_IMPORTED_MODULE_14__[/* default */ "a"].gravatar; + this.capaAdditionalAccounts = Stores_Admin_Capa__WEBPACK_IMPORTED_MODULE_14__[/* default */ "a"].additionalAccounts; + this.capaIdentities = Stores_Admin_Capa__WEBPACK_IMPORTED_MODULE_14__[/* default */ "a"].identities; + this.capaAttachmentThumbnails = Stores_Admin_Capa__WEBPACK_IMPORTED_MODULE_14__[/* default */ "a"].attachmentThumbnails; + this.capaTemplates = Stores_Admin_Capa__WEBPACK_IMPORTED_MODULE_14__[/* default */ "a"].templates; + this.allowLanguagesOnSettings = Stores_Admin_App__WEBPACK_IMPORTED_MODULE_13__[/* default */ "a"].allowLanguagesOnSettings; + this.weakPassword = Stores_Admin_App__WEBPACK_IMPORTED_MODULE_13__[/* default */ "a"].weakPassword; + this.newMoveToFolder = Stores_Admin_App__WEBPACK_IMPORTED_MODULE_13__[/* default */ "a"].newMoveToFolder; + this.dataFolderAccess = Stores_Admin_App__WEBPACK_IMPORTED_MODULE_13__[/* default */ "a"].dataFolderAccess; + this.mainAttachmentLimit = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["pInt"])(Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_8__["settingsGet"])('AttachmentLimit')) / (Common_Enums__WEBPACK_IMPORTED_MODULE_5__["Magics"].BitLength1024 * Common_Enums__WEBPACK_IMPORTED_MODULE_5__["Magics"].BitLength1024)).extend({ + posInterer: 25 + }); + this.uploadData = Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_8__["settingsGet"])('PhpUploadSizes'); + this.uploadDataDesc = this.uploadData && (this.uploadData.upload_max_filesize || this.uploadData.post_max_size) ? [this.uploadData.upload_max_filesize ? 'upload_max_filesize = ' + this.uploadData.upload_max_filesize + '; ' : '', this.uploadData.post_max_size ? 'post_max_size = ' + this.uploadData.post_max_size : ''].join('') : ''; + this.themesOptions = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].computed(function () { + return _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, _this.themes(), function (theme) { + return { + optValue: theme, + optText: Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["convertThemeName"])(theme) + }; + }); + }); + this.languageFullName = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].computed(function () { + return Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["convertLangName"])(_this.language()); + }); + this.languageAdminFullName = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].computed(function () { + return Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["convertLangName"])(_this.languageAdmin()); + }); + this.attachmentLimitTrigger = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_5__["SaveSettingsStep"].Idle); + this.languageTrigger = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_5__["SaveSettingsStep"].Idle); + this.languageAdminTrigger = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_5__["SaveSettingsStep"].Idle).extend({ + throttle: Common_Enums__WEBPACK_IMPORTED_MODULE_5__["Magics"].Time100ms + }); + this.themeTrigger = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_5__["SaveSettingsStep"].Idle); + } + + var _proto = GeneralAdminSettings.prototype; + + _proto.onBuild = function onBuild() { + var _this2 = this; + + ___WEBPACK_IMPORTED_MODULE_2___default.a.delay(function () { + var f1 = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["settingsSaveHelperSimpleFunction"])(_this2.attachmentLimitTrigger, _this2), + f2 = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["settingsSaveHelperSimpleFunction"])(_this2.languageTrigger, _this2), + f3 = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["settingsSaveHelperSimpleFunction"])(_this2.themeTrigger, _this2), + fReloadLanguageHelper = function fReloadLanguageHelper(saveSettingsStep) { + return function () { + _this2.languageAdminTrigger(saveSettingsStep); + + ___WEBPACK_IMPORTED_MODULE_2___default.a.delay(function () { + return _this2.languageAdminTrigger(Common_Enums__WEBPACK_IMPORTED_MODULE_5__["SaveSettingsStep"].Idle); + }, Common_Enums__WEBPACK_IMPORTED_MODULE_5__["Magics"].Time1s); + }; + }; + + _this2.mainAttachmentLimit.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].saveAdminConfig(f1, { + 'AttachmentLimit': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["pInt"])(value) + }); + }); + + _this2.language.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].saveAdminConfig(f2, { + 'Language': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["trim"])(value) + }); + }); + + _this2.languageAdmin.subscribe(function (value) { + _this2.languageAdminTrigger(Common_Enums__WEBPACK_IMPORTED_MODULE_5__["SaveSettingsStep"].Animate); + + Object(Common_Translator__WEBPACK_IMPORTED_MODULE_6__["reload"])(true, value).then(fReloadLanguageHelper(Common_Enums__WEBPACK_IMPORTED_MODULE_5__["SaveSettingsStep"].TrueResult), fReloadLanguageHelper(Common_Enums__WEBPACK_IMPORTED_MODULE_5__["SaveSettingsStep"].FalseResult)).then(function () { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].saveAdminConfig(null, { + 'LanguageAdmin': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["trim"])(value) + }); + }); + }); + + _this2.theme.subscribe(function (value) { + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["changeTheme"])(value, _this2.themeTrigger); + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].saveAdminConfig(f3, { + 'Theme': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["trim"])(value) + }); + }); + + _this2.capaAdditionalAccounts.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].saveAdminConfig(null, { + 'CapaAdditionalAccounts': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["boolToAjax"])(value) + }); + }); + + _this2.capaIdentities.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].saveAdminConfig(null, { + 'CapaIdentities': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["boolToAjax"])(value) + }); + }); + + _this2.capaTemplates.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].saveAdminConfig(null, { + 'CapaTemplates': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["boolToAjax"])(value) + }); + }); + + _this2.capaGravatar.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].saveAdminConfig(null, { + 'CapaGravatar': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["boolToAjax"])(value) + }); + }); + + _this2.capaAttachmentThumbnails.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].saveAdminConfig(null, { + 'CapaAttachmentThumbnails': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["boolToAjax"])(value) + }); + }); + + _this2.capaThemes.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].saveAdminConfig(null, { + 'CapaThemes': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["boolToAjax"])(value) + }); + }); + + _this2.capaUserBackground.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].saveAdminConfig(null, { + 'CapaUserBackground': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["boolToAjax"])(value) + }); + }); + + _this2.allowLanguagesOnSettings.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].saveAdminConfig(null, { + 'AllowLanguagesOnSettings': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["boolToAjax"])(value) + }); + }); + + _this2.newMoveToFolder.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].saveAdminConfig(null, { + 'NewMoveToFolder': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["boolToAjax"])(value) + }); + }); + }, Common_Enums__WEBPACK_IMPORTED_MODULE_5__["Magics"].Time50ms); + }; + + _proto.selectLanguage = function selectLanguage() { + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_9__["showScreenPopup"])(__webpack_require__(/*! View/Popup/Languages */ 292), [this.language, this.languages(), Stores_Language__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"].userLanguage()]); + }; + + _proto.selectLanguageAdmin = function selectLanguageAdmin() { + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_9__["showScreenPopup"])(__webpack_require__(/*! View/Popup/Languages */ 292), [this.languageAdmin, this.languagesAdmin(), Stores_Language__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"].userLanguageAdmin()]); + } + /** + * @returns {string} + */ + ; + + _proto.phpInfoLink = function phpInfoLink() { + return Object(Common_Links__WEBPACK_IMPORTED_MODULE_7__[/* phpInfo */ "u"])(); + }; + + return GeneralAdminSettings; +}(); + + + +/***/ }), +/* 472 */ +/*!***************************************!*\ + !*** ./dev/Settings/Admin/Domains.js ***! + \***************************************/ +/*! exports provided: DomainsAdminSettings, default */ +/*! exports used: DomainsAdminSettings */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DomainsAdminSettings; }); +/* unused harmony export default */ +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ 48); +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/Enums */ 0); +/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Knoin/Knoin */ 7); +/* harmony import */ var Stores_Admin_Domain__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Stores/Admin/Domain */ 165); +/* harmony import */ var Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Remote/Admin/Ajax */ 22); +/* harmony import */ var Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Helper/Apps/Admin */ 68); + + + + + + + + + +var DomainsAdminSettings = /*#__PURE__*/function () { + function DomainsAdminSettings() { + var _this = this; + + this.domains = Stores_Admin_Domain__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].domains; + this.visibility = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].computed(function () { + return _this.domains.loading() ? 'visible' : 'hidden'; + }); + this.domainForDeletion = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observable(null).deleteAccessHelper(); + this.onDomainListChangeRequest = ___WEBPACK_IMPORTED_MODULE_1___default.a.bind(this.onDomainListChangeRequest, this); + this.onDomainLoadRequest = ___WEBPACK_IMPORTED_MODULE_1___default.a.bind(this.onDomainLoadRequest, this); + } + + var _proto = DomainsAdminSettings.prototype; + + _proto.createDomain = function createDomain() { + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_4__["showScreenPopup"])(__webpack_require__(/*! View/Popup/Domain */ 433)); + }; + + _proto.createDomainAlias = function createDomainAlias() { + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_4__["showScreenPopup"])(__webpack_require__(/*! View/Popup/DomainAlias */ 562)); + }; + + _proto.deleteDomain = function deleteDomain(domain) { + this.domains.remove(domain); + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].domainDelete(this.onDomainListChangeRequest, domain.name); + }; + + _proto.disableDomain = function disableDomain(domain) { + domain.disabled(!domain.disabled()); + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].domainDisable(this.onDomainListChangeRequest, domain.name, domain.disabled()); + }; + + _proto.onBuild = function onBuild(oDom) { + var self = this; + oDom.on('click', '.b-admin-domains-list-table .e-item .e-action', function () { + // eslint-disable-line prefer-arrow-callback + var domainItem = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].dataFor(this); // eslint-disable-line no-invalid-this + + if (domainItem) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].domain(self.onDomainLoadRequest, domainItem.name); + } + }); + Object(Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_7__[/* getApp */ "a"])().reloadDomainList(); + }; + + _proto.onDomainLoadRequest = function onDomainLoadRequest(sResult, oData) { + if (Common_Enums__WEBPACK_IMPORTED_MODULE_3__["StorageResultType"].Success === sResult && oData && oData.Result) { + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_4__["showScreenPopup"])(__webpack_require__(/*! View/Popup/Domain */ 433), [oData.Result]); + } + }; + + _proto.onDomainListChangeRequest = function onDomainListChangeRequest() { + Object(Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_7__[/* getApp */ "a"])().reloadDomainList(); + }; + + return DomainsAdminSettings; +}(); + + + +/***/ }), +/* 473 */ +/*!*************************************!*\ + !*** ./dev/Settings/Admin/Login.js ***! + \*************************************/ +/*! exports provided: LoginAdminSettings, default */ +/*! exports used: LoginAdminSettings */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LoginAdminSettings; }); +/* unused harmony export default */ +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Common/Utils */ 2); +/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Storage/Settings */ 5); +/* harmony import */ var Stores_Admin_App__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Stores/Admin/App */ 78); +/* harmony import */ var Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Remote/Admin/Ajax */ 22); + + + + + + + +var LoginAdminSettings = /*#__PURE__*/function () { + function LoginAdminSettings() { + this.determineUserLanguage = Stores_Admin_App__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].determineUserLanguage; + this.determineUserDomain = Stores_Admin_App__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].determineUserDomain; + this.defaultDomain = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_3__["settingsGet"])('LoginDefaultDomain')).idleTrigger(); + this.allowLanguagesOnLogin = Stores_Admin_App__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].allowLanguagesOnLogin; + this.dummy = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(false); + } + + var _proto = LoginAdminSettings.prototype; + + _proto.onBuild = function onBuild() { + var _this = this; + + ___WEBPACK_IMPORTED_MODULE_0___default.a.delay(function () { + var f1 = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_2__["settingsSaveHelperSimpleFunction"])(_this.defaultDomain.trigger, _this); + + _this.determineUserLanguage.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].saveAdminConfig(null, { + 'DetermineUserLanguage': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_2__["boolToAjax"])(value) + }); + }); + + _this.determineUserDomain.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].saveAdminConfig(null, { + 'DetermineUserDomain': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_2__["boolToAjax"])(value) + }); + }); + + _this.allowLanguagesOnLogin.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].saveAdminConfig(null, { + 'AllowLanguagesOnLogin': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_2__["boolToAjax"])(value) + }); + }); + + _this.defaultDomain.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].saveAdminConfig(f1, { + 'LoginDefaultDomain': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_2__["trim"])(value) + }); + }); + }, 50); + }; + + return LoginAdminSettings; +}(); + + + +/***/ }), +/* 474 */ +/*!****************************************!*\ + !*** ./dev/Settings/Admin/Contacts.js ***! + \****************************************/ +/*! exports provided: ContactsAdminSettings, default */ +/*! exports used: ContactsAdminSettings */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ContactsAdminSettings; }); +/* unused harmony export default */ +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/applyDecoratedDescriptor */ 18); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 17); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor */ 19); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Utils */ 2); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Common/Enums */ 0); +/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Common/Translator */ 9); +/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Storage/Settings */ 5); +/* harmony import */ var Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Remote/Admin/Ajax */ 22); +/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Knoin/Knoin */ 7); + + +var _dec, _class; + + + + + + + + + + + +var ContactsAdminSettings = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_10__["command"])(function (self) { + return '' !== self.pdoDsn() && '' !== self.pdoUser(); +}), (_class = /*#__PURE__*/function () { + function ContactsAdminSettings() { + var _this = this; + + this.defautOptionsAfterRender = Common_Utils__WEBPACK_IMPORTED_MODULE_5__["defautOptionsAfterRender"]; + this.enableContacts = ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observable(!!Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_8__["settingsGet"])('ContactsEnable')); + this.contactsSync = ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observable(!!Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_8__["settingsGet"])('ContactsSync')); + + var supportedTypes = [], + types = ['sqlite', 'mysql', 'pgsql'], + getTypeName = function getTypeName(name) { + switch (name) { + case 'sqlite': + name = 'SQLite'; + break; + + case 'mysql': + name = 'MySQL'; + break; + + case 'pgsql': + name = 'PostgreSQL'; + break; + // no default + } + + return name; + }; + + if (Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_8__["settingsGet"])('SQLiteIsSupported')) { + supportedTypes.push('sqlite'); + } + + if (Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_8__["settingsGet"])('MySqlIsSupported')) { + supportedTypes.push('mysql'); + } + + if (Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_8__["settingsGet"])('PostgreSqlIsSupported')) { + supportedTypes.push('pgsql'); + } + + this.contactsSupported = 0 < supportedTypes.length; + this.contactsTypes = ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observableArray([]); + this.contactsTypesOptions = ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].computed(function () { + return _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_3___default.a).call(___WEBPACK_IMPORTED_MODULE_3___default.a, _this.contactsTypes(), function (value) { + var disabled = -1 === Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["inArray"])(value, supportedTypes); + return { + 'id': value, + 'name': getTypeName(value) + (disabled ? ' (' + Object(Common_Translator__WEBPACK_IMPORTED_MODULE_7__["i18n"])('HINTS/NOT_SUPPORTED') + ')' : ''), + 'disabled': disabled + }; + }); + }); + this.contactsTypes(types); + this.contactsType = ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observable(''); + this.mainContactsType = ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].computed({ + read: this.contactsType, + write: function write(value) { + if (value !== _this.contactsType()) { + if (-1 < Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["inArray"])(value, supportedTypes)) { + _this.contactsType(value); + } else if (0 < supportedTypes.length) { + _this.contactsType(''); + } + } else { + _this.contactsType.valueHasMutated(); + } + } + }).extend({ + notify: 'always' + }); + this.contactsType.subscribe(function () { + _this.testContactsSuccess(false); + + _this.testContactsError(false); + + _this.testContactsErrorMessage(''); + }); + this.pdoDsn = ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observable(Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_8__["settingsGet"])('ContactsPdoDsn')); + this.pdoUser = ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observable(Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_8__["settingsGet"])('ContactsPdoUser')); + this.pdoPassword = ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observable(Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_8__["settingsGet"])('ContactsPdoPassword')); + this.pdoDsnTrigger = ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_6__["SaveSettingsStep"].Idle); + this.pdoUserTrigger = ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_6__["SaveSettingsStep"].Idle); + this.pdoPasswordTrigger = ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_6__["SaveSettingsStep"].Idle); + this.contactsTypeTrigger = ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_6__["SaveSettingsStep"].Idle); + this.testing = ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observable(false); + this.testContactsSuccess = ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observable(false); + this.testContactsError = ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observable(false); + this.testContactsErrorMessage = ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observable(''); + this.contactsType(Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_8__["settingsGet"])('ContactsPdoType')); + this.onTestContactsResponse = ___WEBPACK_IMPORTED_MODULE_3___default.a.bind(this.onTestContactsResponse, this); + } + + var _proto = ContactsAdminSettings.prototype; + + _proto.testContactsCommand = function testContactsCommand() { + this.testContactsSuccess(false); + this.testContactsError(false); + this.testContactsErrorMessage(''); + this.testing(true); + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].testContacts(this.onTestContactsResponse, { + 'ContactsPdoType': this.contactsType(), + 'ContactsPdoDsn': this.pdoDsn(), + 'ContactsPdoUser': this.pdoUser(), + 'ContactsPdoPassword': this.pdoPassword() + }); + }; + + _proto.onTestContactsResponse = function onTestContactsResponse(result, data) { + this.testContactsSuccess(false); + this.testContactsError(false); + this.testContactsErrorMessage(''); + + if (Common_Enums__WEBPACK_IMPORTED_MODULE_6__["StorageResultType"].Success === result && data && data.Result && data.Result.Result) { + this.testContactsSuccess(true); + } else { + this.testContactsError(true); + + if (data && data.Result) { + this.testContactsErrorMessage(data.Result.Message || ''); + } else { + this.testContactsErrorMessage(''); + } + } + + this.testing(false); + }; + + _proto.onShow = function onShow() { + this.testContactsSuccess(false); + this.testContactsError(false); + this.testContactsErrorMessage(''); + }; + + _proto.onBuild = function onBuild() { + var _this2 = this; + + ___WEBPACK_IMPORTED_MODULE_3___default.a.delay(function () { + var f1 = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["settingsSaveHelperSimpleFunction"])(_this2.pdoDsnTrigger, _this2), + f3 = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["settingsSaveHelperSimpleFunction"])(_this2.pdoUserTrigger, _this2), + f4 = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["settingsSaveHelperSimpleFunction"])(_this2.pdoPasswordTrigger, _this2), + f5 = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["settingsSaveHelperSimpleFunction"])(_this2.contactsTypeTrigger, _this2); + + _this2.enableContacts.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].saveAdminConfig(null, { + 'ContactsEnable': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["boolToAjax"])(value) + }); + }); + + _this2.contactsSync.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].saveAdminConfig(null, { + 'ContactsSync': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["boolToAjax"])(value) + }); + }); + + _this2.contactsType.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].saveAdminConfig(f5, { + 'ContactsPdoType': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["trim"])(value) + }); + }); + + _this2.pdoDsn.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].saveAdminConfig(f1, { + 'ContactsPdoDsn': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["trim"])(value) + }); + }); + + _this2.pdoUser.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].saveAdminConfig(f3, { + 'ContactsPdoUser': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["trim"])(value) + }); + }); + + _this2.pdoPassword.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].saveAdminConfig(f4, { + 'ContactsPdoPassword': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["trim"])(value) + }); + }); + + _this2.contactsType(Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_8__["settingsGet"])('ContactsPdoType')); + }, Common_Enums__WEBPACK_IMPORTED_MODULE_6__["Magics"].Time50ms); + }; + + return ContactsAdminSettings; +}(), (Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_class.prototype, "testContactsCommand", [_dec], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_2___default()(_class.prototype, "testContactsCommand"), _class.prototype)), _class)); + + +/***/ }), +/* 475 */ +/*!****************************************!*\ + !*** ./dev/Settings/Admin/Security.js ***! + \****************************************/ +/*! exports provided: SecurityAdminSettings, default */ +/*! exports used: SecurityAdminSettings */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SecurityAdminSettings; }); +/* unused harmony export default */ +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/applyDecoratedDescriptor */ 18); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor */ 19); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Utils */ 2); +/* harmony import */ var Common_Links__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Links */ 15); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Common/Enums */ 0); +/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Storage/Settings */ 5); +/* harmony import */ var Stores_Admin_App__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Stores/Admin/App */ 78); +/* harmony import */ var Stores_Admin_Capa__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Stores/Admin/Capa */ 89); +/* harmony import */ var Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Remote/Admin/Ajax */ 22); +/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Knoin/Knoin */ 7); + + +var _dec, _class; + + + + + + + + + + + + +var SecurityAdminSettings = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_11__["command"])(function (self) { + return '' !== Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["trim"])(self.adminLogin()) && '' !== self.adminPassword(); +}), (_class = /*#__PURE__*/function () { + function SecurityAdminSettings() { + var _this = this; + + this.useLocalProxyForExternalImages = Stores_Admin_App__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].useLocalProxyForExternalImages; + this.weakPassword = Stores_Admin_App__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].weakPassword; + this.capaOpenPGP = Stores_Admin_Capa__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].openPGP; + this.capaTwoFactorAuth = Stores_Admin_Capa__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].twoFactorAuth; + this.capaTwoFactorAuthForce = Stores_Admin_Capa__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].twoFactorAuthForce; + this.capaTwoFactorAuth.subscribe(function (value) { + if (!value) { + _this.capaTwoFactorAuthForce(false); + } + }); + this.verifySslCertificate = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(!!Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_7__["settingsGet"])('VerifySslCertificate')); + this.allowSelfSigned = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(!!Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_7__["settingsGet"])('AllowSelfSigned')); + this.verifySslCertificate.subscribe(function (value) { + if (!value) { + _this.allowSelfSigned(true); + } + }); + this.isTwoFactorDropperShown = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false); + this.twoFactorDropperUser = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(''); + this.twoFactorDropperUser.focused = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false); + this.adminLogin = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_7__["settingsGet"])('AdminLogin')); + this.adminLoginError = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false); + this.adminPassword = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(''); + this.adminPasswordNew = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(''); + this.adminPasswordNew2 = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(''); + this.adminPasswordNewError = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false); + this.adminPasswordUpdateError = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false); + this.adminPasswordUpdateSuccess = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false); + this.adminPassword.subscribe(function () { + _this.adminPasswordUpdateError(false); + + _this.adminPasswordUpdateSuccess(false); + }); + this.adminLogin.subscribe(function () { + _this.adminLoginError(false); + }); + this.adminPasswordNew.subscribe(function () { + _this.adminPasswordUpdateError(false); + + _this.adminPasswordUpdateSuccess(false); + + _this.adminPasswordNewError(false); + }); + this.adminPasswordNew2.subscribe(function () { + _this.adminPasswordUpdateError(false); + + _this.adminPasswordUpdateSuccess(false); + + _this.adminPasswordNewError(false); + }); + this.onNewAdminPasswordResponse = ___WEBPACK_IMPORTED_MODULE_2___default.a.bind(this.onNewAdminPasswordResponse, this); + } + + var _proto = SecurityAdminSettings.prototype; + + _proto.saveNewAdminPasswordCommand = function saveNewAdminPasswordCommand() { + if ('' === Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["trim"])(this.adminLogin())) { + this.adminLoginError(true); + return false; + } + + if (this.adminPasswordNew() !== this.adminPasswordNew2()) { + this.adminPasswordNewError(true); + return false; + } + + this.adminPasswordUpdateError(false); + this.adminPasswordUpdateSuccess(false); + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].saveNewAdminPassword(this.onNewAdminPasswordResponse, { + 'Login': this.adminLogin(), + 'Password': this.adminPassword(), + 'NewPassword': this.adminPasswordNew() + }); + return true; + }; + + _proto.showTwoFactorDropper = function showTwoFactorDropper() { + var _this2 = this; + + this.twoFactorDropperUser(''); + this.isTwoFactorDropperShown(true); + + ___WEBPACK_IMPORTED_MODULE_2___default.a.delay(function () { + _this2.twoFactorDropperUser.focused(true); + }, Common_Enums__WEBPACK_IMPORTED_MODULE_6__["Magics"].Time50ms); + }; + + _proto.onNewAdminPasswordResponse = function onNewAdminPasswordResponse(result, data) { + if (Common_Enums__WEBPACK_IMPORTED_MODULE_6__["StorageResultType"].Success === result && data && data.Result) { + this.adminPassword(''); + this.adminPasswordNew(''); + this.adminPasswordNew2(''); + this.adminPasswordUpdateSuccess(true); + this.weakPassword(!!data.Result.Weak); + } else { + this.adminPasswordUpdateError(true); + } + }; + + _proto.onBuild = function onBuild() { + this.capaOpenPGP.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].saveAdminConfig(null, { + 'CapaOpenPGP': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["boolToAjax"])(value) + }); + }); + this.capaTwoFactorAuth.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].saveAdminConfig(null, { + 'CapaTwoFactorAuth': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["boolToAjax"])(value) + }); + }); + this.capaTwoFactorAuthForce.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].saveAdminConfig(null, { + 'CapaTwoFactorAuthForce': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["boolToAjax"])(value) + }); + }); + this.useLocalProxyForExternalImages.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].saveAdminConfig(null, { + 'UseLocalProxyForExternalImages': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["boolToAjax"])(value) + }); + }); + this.verifySslCertificate.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].saveAdminConfig(null, { + 'VerifySslCertificate': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["boolToAjax"])(value) + }); + }); + this.allowSelfSigned.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].saveAdminConfig(null, { + 'AllowSelfSigned': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["boolToAjax"])(value) + }); + }); + }; + + _proto.onHide = function onHide() { + this.adminPassword(''); + this.adminPasswordNew(''); + this.adminPasswordNew2(''); + this.isTwoFactorDropperShown(false); + this.twoFactorDropperUser(''); + this.twoFactorDropperUser.focused(false); + } + /** + * @returns {string} + */ + ; + + _proto.phpInfoLink = function phpInfoLink() { + return Object(Common_Links__WEBPACK_IMPORTED_MODULE_5__[/* phpInfo */ "u"])(); + }; + + return SecurityAdminSettings; +}(), (Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_class.prototype, "saveNewAdminPasswordCommand", [_dec], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_1___default()(_class.prototype, "saveNewAdminPasswordCommand"), _class.prototype)), _class)); + + +/***/ }), +/* 476 */ +/*!**************************************!*\ + !*** ./dev/Settings/Admin/Social.js ***! + \**************************************/ +/*! exports provided: SocialAdminSettings, default */ +/*! exports used: SocialAdminSettings */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SocialAdminSettings; }); +/* unused harmony export default */ +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Common/Enums */ 0); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/Utils */ 2); +/* harmony import */ var Stores_Social__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Stores/Social */ 26); +/* harmony import */ var Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Remote/Admin/Ajax */ 22); + + + + + + + +var SocialAdminSettings = /*#__PURE__*/function () { + function SocialAdminSettings() { + this.googleEnable = Stores_Social__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].google.enabled; + this.googleEnableAuth = Stores_Social__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].google.capa.auth; + this.googleEnableAuthGmail = Stores_Social__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].google.capa.authGmail; + this.googleEnableDrive = Stores_Social__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].google.capa.drive; + this.googleEnablePreview = Stores_Social__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].google.capa.preview; + this.googleEnableRequireClientSettings = Stores_Social__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].google.require.clientSettings; + this.googleEnableRequireApiKey = Stores_Social__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].google.require.apiKeySettings; + this.googleClientID = Stores_Social__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].google.clientID; + this.googleClientSecret = Stores_Social__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].google.clientSecret; + this.googleApiKey = Stores_Social__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].google.apiKey; + this.googleTrigger1 = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_2__["SaveSettingsStep"].Idle); + this.googleTrigger2 = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_2__["SaveSettingsStep"].Idle); + this.googleTrigger3 = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_2__["SaveSettingsStep"].Idle); + this.facebookSupported = Stores_Social__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].facebook.supported; + this.facebookEnable = Stores_Social__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].facebook.enabled; + this.facebookAppID = Stores_Social__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].facebook.appID; + this.facebookAppSecret = Stores_Social__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].facebook.appSecret; + this.facebookTrigger1 = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_2__["SaveSettingsStep"].Idle); + this.facebookTrigger2 = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_2__["SaveSettingsStep"].Idle); + this.twitterEnable = Stores_Social__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].twitter.enabled; + this.twitterConsumerKey = Stores_Social__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].twitter.consumerKey; + this.twitterConsumerSecret = Stores_Social__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].twitter.consumerSecret; + this.twitterTrigger1 = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_2__["SaveSettingsStep"].Idle); + this.twitterTrigger2 = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_2__["SaveSettingsStep"].Idle); + this.dropboxEnable = Stores_Social__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].dropbox.enabled; + this.dropboxApiKey = Stores_Social__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].dropbox.apiKey; + this.dropboxTrigger1 = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_2__["SaveSettingsStep"].Idle); + } + + var _proto = SocialAdminSettings.prototype; + + _proto.onBuild = function onBuild() { + var _this = this; + + ___WEBPACK_IMPORTED_MODULE_0___default.a.delay(function () { + var f1 = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["settingsSaveHelperSimpleFunction"])(_this.facebookTrigger1, _this), + f2 = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["settingsSaveHelperSimpleFunction"])(_this.facebookTrigger2, _this), + f3 = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["settingsSaveHelperSimpleFunction"])(_this.twitterTrigger1, _this), + f4 = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["settingsSaveHelperSimpleFunction"])(_this.twitterTrigger2, _this), + f5 = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["settingsSaveHelperSimpleFunction"])(_this.googleTrigger1, _this), + f6 = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["settingsSaveHelperSimpleFunction"])(_this.googleTrigger2, _this), + f7 = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["settingsSaveHelperSimpleFunction"])(_this.googleTrigger3, _this), + f8 = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["settingsSaveHelperSimpleFunction"])(_this.dropboxTrigger1, _this); + + _this.facebookEnable.subscribe(function (value) { + if (_this.facebookSupported()) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].saveAdminConfig(null, { + 'FacebookEnable': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["boolToAjax"])(value) + }); + } + }); + + _this.facebookAppID.subscribe(function (value) { + if (_this.facebookSupported()) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].saveAdminConfig(f1, { + 'FacebookAppID': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["trim"])(value) + }); + } + }); + + _this.facebookAppSecret.subscribe(function (value) { + if (_this.facebookSupported()) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].saveAdminConfig(f2, { + 'FacebookAppSecret': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["trim"])(value) + }); + } + }); + + _this.twitterEnable.subscribe(Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].saveAdminConfigHelper('TwitterEnable', Common_Utils__WEBPACK_IMPORTED_MODULE_3__["boolToAjax"])); + + _this.twitterConsumerKey.subscribe(Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].saveAdminConfigHelper('TwitterConsumerKey', Common_Utils__WEBPACK_IMPORTED_MODULE_3__["trim"], f3)); + + _this.twitterConsumerSecret.subscribe(Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].saveAdminConfigHelper('TwitterConsumerSecret', Common_Utils__WEBPACK_IMPORTED_MODULE_3__["trim"], f4)); + + _this.googleEnable.subscribe(Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].saveAdminConfigHelper('GoogleEnable', Common_Utils__WEBPACK_IMPORTED_MODULE_3__["boolToAjax"])); + + _this.googleEnableAuth.subscribe(Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].saveAdminConfigHelper('GoogleEnableAuth', Common_Utils__WEBPACK_IMPORTED_MODULE_3__["boolToAjax"])); + + _this.googleEnableAuthGmail.subscribe(Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].saveAdminConfigHelper('GoogleEnableAuthGmail', Common_Utils__WEBPACK_IMPORTED_MODULE_3__["boolToAjax"])); + + _this.googleEnableDrive.subscribe(Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].saveAdminConfigHelper('GoogleEnableDrive', Common_Utils__WEBPACK_IMPORTED_MODULE_3__["boolToAjax"])); + + _this.googleEnablePreview.subscribe(Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].saveAdminConfigHelper('GoogleEnablePreview', Common_Utils__WEBPACK_IMPORTED_MODULE_3__["boolToAjax"])); + + _this.googleClientID.subscribe(Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].saveAdminConfigHelper('GoogleClientID', Common_Utils__WEBPACK_IMPORTED_MODULE_3__["trim"], f5)); + + _this.googleClientSecret.subscribe(Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].saveAdminConfigHelper('GoogleClientSecret', Common_Utils__WEBPACK_IMPORTED_MODULE_3__["trim"], f6)); + + _this.googleApiKey.subscribe(Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].saveAdminConfigHelper('GoogleApiKey', Common_Utils__WEBPACK_IMPORTED_MODULE_3__["trim"], f7)); + + _this.dropboxEnable.subscribe(Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].saveAdminConfigHelper('DropboxEnable', Common_Utils__WEBPACK_IMPORTED_MODULE_3__["boolToAjax"])); + + _this.dropboxApiKey.subscribe(Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].saveAdminConfigHelper('DropboxApiKey', Common_Utils__WEBPACK_IMPORTED_MODULE_3__["trim"], f8)); + }, Common_Enums__WEBPACK_IMPORTED_MODULE_2__["Magics"].Time50ms); + }; + + return SocialAdminSettings; +}(); + + + +/***/ }), +/* 477 */ +/*!***************************************!*\ + !*** ./dev/Settings/Admin/Plugins.js ***! + \***************************************/ +/*! exports provided: PluginsAdminSettings, default */ +/*! exports used: PluginsAdminSettings */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return PluginsAdminSettings; }); +/* unused harmony export default */ +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ 48); +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/Enums */ 0); +/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Translator */ 9); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Utils */ 2); +/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Storage/Settings */ 5); +/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Knoin/Knoin */ 7); +/* harmony import */ var Stores_Admin_App__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Stores/Admin/App */ 78); +/* harmony import */ var Stores_Admin_Plugin__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Stores/Admin/Plugin */ 125); +/* harmony import */ var Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Remote/Admin/Ajax */ 22); +/* harmony import */ var Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Helper/Apps/Admin */ 68); + + + + + + + + + + + + + +var PluginsAdminSettings = /*#__PURE__*/function () { + function PluginsAdminSettings() { + this.enabledPlugins = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observable(!!Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_6__["settingsGet"])('EnabledPlugins')); + this.plugins = Stores_Admin_Plugin__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].plugins; + this.pluginsError = Stores_Admin_Plugin__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].plugins.error; + this.community = true || false; + this.visibility = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].computed(function () { + return Stores_Admin_Plugin__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].plugins.loading() ? 'visible' : 'hidden'; + }); + this.onPluginLoadRequest = ___WEBPACK_IMPORTED_MODULE_1___default.a.bind(this.onPluginLoadRequest, this); + this.onPluginDisableRequest = ___WEBPACK_IMPORTED_MODULE_1___default.a.bind(this.onPluginDisableRequest, this); + } + + var _proto = PluginsAdminSettings.prototype; + + _proto.disablePlugin = function disablePlugin(plugin) { + plugin.disabled(!plugin.disabled()); + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].pluginDisable(this.onPluginDisableRequest, plugin.name, plugin.disabled()); + }; + + _proto.configurePlugin = function configurePlugin(plugin) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].plugin(this.onPluginLoadRequest, plugin.name); + }; + + _proto.onBuild = function onBuild(oDom) { + var self = this; + oDom.on('click', '.e-item .configure-plugin-action', function () { + // eslint-disable-line prefer-arrow-callback + var plugin = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].dataFor(this); // eslint-disable-line no-invalid-this + + if (plugin) { + self.configurePlugin(plugin); + } + }).on('click', '.e-item .disabled-plugin', function () { + // eslint-disable-line prefer-arrow-callback + var plugin = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].dataFor(this); // eslint-disable-line no-invalid-this + + if (plugin) { + self.disablePlugin(plugin); + } + }); + this.enabledPlugins.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].saveAdminConfig(null, { + 'EnabledPlugins': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["boolToAjax"])(value) + }); + }); + }; + + _proto.onShow = function onShow() { + Stores_Admin_Plugin__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].plugins.error(''); + Object(Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_11__[/* getApp */ "a"])().reloadPluginList(); + }; + + _proto.onPluginLoadRequest = function onPluginLoadRequest(result, data) { + if (Common_Enums__WEBPACK_IMPORTED_MODULE_3__["StorageResultType"].Success === result && data && data.Result) { + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_7__["showScreenPopup"])(__webpack_require__(/*! View/Popup/Plugin */ 563), [data.Result]); + } + }; + + _proto.onPluginDisableRequest = function onPluginDisableRequest(result, data) { + if (Common_Enums__WEBPACK_IMPORTED_MODULE_3__["StorageResultType"].Success === result && data) { + if (!data.Result && data.ErrorCode) { + if (Common_Enums__WEBPACK_IMPORTED_MODULE_3__["Notification"].UnsupportedPluginPackage === data.ErrorCode && data.ErrorMessage && '' !== data.ErrorMessage) { + Stores_Admin_Plugin__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].plugins.error(data.ErrorMessage); + } else { + Stores_Admin_Plugin__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].plugins.error(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_4__["getNotification"])(data.ErrorCode)); + } + } + } + + Object(Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_11__[/* getApp */ "a"])().reloadPluginList(); + }; + + return PluginsAdminSettings; +}(); + + + +/***/ }), +/* 478 */ +/*!****************************************!*\ + !*** ./dev/Settings/Admin/Packages.js ***! + \****************************************/ +/*! exports provided: PackagesAdminSettings, default */ +/*! exports used: PackagesAdminSettings */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return PackagesAdminSettings; }); +/* unused harmony export default */ +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/filter */ 28); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! window */ 4); +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Enums */ 0); +/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Translator */ 9); +/* harmony import */ var Stores_Admin_Package__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Stores/Admin/Package */ 95); +/* harmony import */ var Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Remote/Admin/Ajax */ 22); +/* harmony import */ var Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Helper/Apps/Admin */ 68); + + + + + + + + + + +var PackagesAdminSettings = /*#__PURE__*/function () { + function PackagesAdminSettings() { + var _this = this; + + this.packagesError = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(''); + this.packages = Stores_Admin_Package__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].packages; + this.packagesReal = Stores_Admin_Package__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].packagesReal; + this.packagesMainUpdatable = Stores_Admin_Package__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].packagesMainUpdatable; + this.packagesCurrent = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].computed(function () { + return _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, _this.packages(), function (item) { + return item && '' !== item.installed && !item.compare; + }); + }); + this.packagesAvailableForUpdate = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].computed(function () { + return _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, _this.packages(), function (item) { + return item && '' !== item.installed && !!item.compare; + }); + }); + this.packagesAvailableForInstallation = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].computed(function () { + return _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, _this.packages(), function (item) { + return item && '' === item.installed; + }); + }); + this.visibility = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].computed(function () { + return Stores_Admin_Package__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].packages.loading() ? 'visible' : 'hidden'; + }); + } + + var _proto = PackagesAdminSettings.prototype; + + _proto.onShow = function onShow() { + this.packagesError(''); + }; + + _proto.onBuild = function onBuild() { + Object(Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_8__[/* getApp */ "a"])().reloadPackagesList(); + }; + + _proto.requestHelper = function requestHelper(packageToRequest, install) { + var _this2 = this; + + return function (result, data) { + if (Common_Enums__WEBPACK_IMPORTED_MODULE_4__["StorageResultType"].Success !== result || !data || !data.Result) { + if (data && data.ErrorCode) { + _this2.packagesError(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_5__["getNotification"])(data.ErrorCode)); + } else { + _this2.packagesError(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_5__["getNotification"])(install ? Common_Enums__WEBPACK_IMPORTED_MODULE_4__["Notification"].CantInstallPackage : Common_Enums__WEBPACK_IMPORTED_MODULE_4__["Notification"].CantDeletePackage)); + } + } + + ___WEBPACK_IMPORTED_MODULE_2___default.a.each(_this2.packages(), function (item) { + if (item && packageToRequest && item.loading && item.loading() && packageToRequest.file === item.file) { + packageToRequest.loading(false); + item.loading(false); + } + }); + + if (Common_Enums__WEBPACK_IMPORTED_MODULE_4__["StorageResultType"].Success === result && data && data.Result && data.Result.Reload) { + window__WEBPACK_IMPORTED_MODULE_1___default.a.location.reload(); + } else { + Object(Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_8__[/* getApp */ "a"])().reloadPackagesList(); + } + }; + }; + + _proto.deletePackage = function deletePackage(packageToDelete) { + if (packageToDelete) { + packageToDelete.loading(true); + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].packageDelete(this.requestHelper(packageToDelete, false), packageToDelete); + } + }; + + _proto.installPackage = function installPackage(packageToInstall) { + if (packageToInstall) { + packageToInstall.loading(true); + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].packageInstall(this.requestHelper(packageToInstall, true), packageToInstall); + } + }; + + return PackagesAdminSettings; +}(); + + + +/***/ }), +/* 479 */ +/*!*************************************!*\ + !*** ./dev/Settings/Admin/About.js ***! + \*************************************/ +/*! exports provided: AboutAdminSettings, default */ +/*! exports used: AboutAdminSettings */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AboutAdminSettings; }); +/* unused harmony export default */ +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Common/Translator */ 9); +/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Storage/Settings */ 5); +/* harmony import */ var Stores_Admin_App__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Stores/Admin/App */ 78); +/* harmony import */ var Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Stores/Admin/Core */ 40); +/* harmony import */ var Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Helper/Apps/Admin */ 68); + + + + + + + +var AboutAdminSettings = /*#__PURE__*/function () { + function AboutAdminSettings() { + var _this = this; + + this.version = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["appSettingsGet"])('version')); + this.access = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(!!Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_2__["settingsGet"])('CoreAccess')); + this.errorDesc = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(''); + this.coreReal = Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].coreReal; + this.coreChannel = Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].coreChannel; + this.coreType = Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].coreType; + this.coreUpdatable = Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].coreUpdatable; + this.coreAccess = Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].coreAccess; + this.coreChecking = Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].coreChecking; + this.coreUpdating = Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].coreUpdating; + this.coreWarning = Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].coreWarning; + this.coreVersion = Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].coreVersion; + this.coreRemoteVersion = Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].coreRemoteVersion; + this.coreRemoteRelease = Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].coreRemoteRelease; + this.coreVersionCompare = Stores_Admin_Core__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].coreVersionCompare; + this.community = true || false; + this.coreRemoteVersionHtmlDesc = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].computed(function () { + Object(Common_Translator__WEBPACK_IMPORTED_MODULE_1__["trigger"])(); + return Object(Common_Translator__WEBPACK_IMPORTED_MODULE_1__["i18n"])('TAB_ABOUT/HTML_NEW_VERSION', { + 'VERSION': _this.coreRemoteVersion() + }); + }); + this.statusType = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].computed(function () { + var type = ''; + + var versionToCompare = _this.coreVersionCompare(), + isChecking = _this.coreChecking(), + isUpdating = _this.coreUpdating(), + isReal = _this.coreReal(); + + if (isChecking) { + type = 'checking'; + } else if (isUpdating) { + type = 'updating'; + } else if (isReal && 0 === versionToCompare) { + type = 'up-to-date'; + } else if (isReal && -1 === versionToCompare) { + type = 'available'; + } else if (!isReal) { + type = 'error'; + + _this.errorDesc('Cannot access the repository at the moment.'); + } + + return type; + }); + } + + var _proto = AboutAdminSettings.prototype; + + _proto.onBuild = function onBuild() { + if (this.access() && !this.community) { + Object(Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_5__[/* getApp */ "a"])().reloadCoreData(); + } + }; + + _proto.updateCoreData = function updateCoreData() { + if (!this.coreUpdating() && !this.community) { + Object(Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_5__[/* getApp */ "a"])().updateCoreData(); + } + }; + + return AboutAdminSettings; +}(); + + + +/***/ }), +/* 480 */ +/*!*****************************************!*\ + !*** ./dev/View/Admin/Settings/Menu.js ***! + \*****************************************/ +/*! exports provided: MenuSettingsAdminView, default */ +/*! exports used: MenuSettingsAdminView */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MenuSettingsAdminView; }); +/* unused harmony export default */ +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); +/* harmony import */ var core_js_modules_es_string_link_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.link.js */ 205); +/* harmony import */ var core_js_modules_es_string_link_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_link_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $ */ 8); +/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! key */ 20); +/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(key__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Globals */ 6); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Enums */ 0); +/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Knoin/Knoin */ 7); +/* harmony import */ var Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Knoin/AbstractViewNext */ 25); + + +var _dec, _class; + + + + + + + + +var MenuSettingsAdminView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_6__["view"])({ + name: 'View/Admin/Settings/Menu', + type: Knoin_Knoin__WEBPACK_IMPORTED_MODULE_6__["ViewType"].Left, + templateID: 'AdminMenu' +}), _dec(_class = /*#__PURE__*/function (_AbstractViewNext) { + Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(MenuSettingsAdminView, _AbstractViewNext); + + /** + * @param {?} screen + */ + function MenuSettingsAdminView(screen) { + var _this; + + _this = _AbstractViewNext.call(this) || this; + _this.leftPanelDisabled = Common_Globals__WEBPACK_IMPORTED_MODULE_4__["leftPanelDisabled"]; + _this.menu = screen.menu; + return _this; + } + + var _proto = MenuSettingsAdminView.prototype; + + _proto.link = function link(route) { + return '#/' + route; + }; + + _proto.onBuild = function onBuild(dom) { + key__WEBPACK_IMPORTED_MODULE_3___default()('up, down', Common_Enums__WEBPACK_IMPORTED_MODULE_5__["KeyState"].Settings, Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_6__["settingsMenuKeysHandler"])($__WEBPACK_IMPORTED_MODULE_2___default()('.b-admin-menu .e-item', dom))); + }; + + return MenuSettingsAdminView; +}(Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_7__[/* AbstractViewNext */ "a"])) || _class); + + +/***/ }), +/* 481 */ +/*!*****************************************!*\ + !*** ./dev/View/Admin/Settings/Pane.js ***! + \*****************************************/ +/*! exports provided: PaneSettingsAdminView, default */ +/*! exports used: PaneSettingsAdminView */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return PaneSettingsAdminView; }); +/* unused harmony export default */ +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); +/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.join.js */ 77); +/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Storage/Settings */ 5); +/* harmony import */ var Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Remote/Admin/Ajax */ 22); +/* harmony import */ var Stores_Admin_Domain__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Stores/Admin/Domain */ 165); +/* harmony import */ var Stores_Admin_Plugin__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Stores/Admin/Plugin */ 125); +/* harmony import */ var Stores_Admin_Package__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Stores/Admin/Package */ 95); +/* harmony import */ var Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Helper/Apps/Admin */ 68); +/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Knoin/Knoin */ 7); +/* harmony import */ var Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Knoin/AbstractViewNext */ 25); + + +var _dec, _class; + + + + + + + + + + + +var PaneSettingsAdminView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_9__["view"])({ + name: 'View/Admin/Settings/Pane', + type: Knoin_Knoin__WEBPACK_IMPORTED_MODULE_9__["ViewType"].Right, + templateID: 'AdminPane' +}), _dec(_class = /*#__PURE__*/function (_AbstractViewNext) { + Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(PaneSettingsAdminView, _AbstractViewNext); + + function PaneSettingsAdminView() { + var _this; + + _this = _AbstractViewNext.call(this) || this; + _this.adminDomain = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observable(Storage_Settings__WEBPACK_IMPORTED_MODULE_3__["settingsGet"]('AdminDomain')); + _this.version = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observable(Storage_Settings__WEBPACK_IMPORTED_MODULE_3__["appSettingsGet"]('version')); + _this.capa = !!Storage_Settings__WEBPACK_IMPORTED_MODULE_3__["settingsGet"]('PremType'); + _this.community = true; + _this.adminManLoading = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].computed(function () { + return '000' !== [Stores_Admin_Domain__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].domains.loading() ? '1' : '0', Stores_Admin_Plugin__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].plugins.loading() ? '1' : '0', Stores_Admin_Package__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].packages.loading() ? '1' : '0'].join(''); + }); + _this.adminManLoadingVisibility = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].computed(function () { + return _this.adminManLoading() ? 'visible' : 'hidden'; + }).extend({ + rateLimit: 300 + }); + return _this; + } + + var _proto = PaneSettingsAdminView.prototype; + + _proto.logoutClick = function logoutClick() { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].adminLogout(function () { + Object(Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_8__[/* getApp */ "a"])().loginAndLogoutReload(true, true); + }); + }; + + return PaneSettingsAdminView; +}(Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_10__[/* AbstractViewNext */ "a"])) || _class); + + +/***/ }), +/* 482 */ +/*!***********************************!*\ + !*** ./dev/Screen/Admin/Login.js ***! + \***********************************/ +/*! exports provided: LoginAdminScreen, default */ +/*! exports used: LoginAdminScreen */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LoginAdminScreen; }); +/* unused harmony export default */ +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); +/* harmony import */ var Knoin_AbstractScreen__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Knoin/AbstractScreen */ 153); +/* harmony import */ var Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Helper/Apps/Admin */ 68); +/* harmony import */ var View_Admin_Login__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! View/Admin/Login */ 483); + + + + + +var LoginAdminScreen = /*#__PURE__*/function (_AbstractScreen) { + Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(LoginAdminScreen, _AbstractScreen); + + function LoginAdminScreen() { + return _AbstractScreen.call(this, 'login', [View_Admin_Login__WEBPACK_IMPORTED_MODULE_3__[/* LoginAdminView */ "a"]]) || this; + } + + var _proto = LoginAdminScreen.prototype; + + _proto.onShow = function onShow() { + Object(Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_2__[/* getApp */ "a"])().setWindowTitle(''); + }; + + return LoginAdminScreen; +}(Knoin_AbstractScreen__WEBPACK_IMPORTED_MODULE_1__[/* AbstractScreen */ "a"]); + + + +/***/ }), +/* 483 */ +/*!*********************************!*\ + !*** ./dev/View/Admin/Login.js ***! + \*********************************/ +/*! exports provided: LoginAdminView, default */ +/*! exports used: LoginAdminView */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LoginAdminView; }); +/* unused harmony export default */ +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/applyDecoratedDescriptor */ 18); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor */ 19); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Utils */ 2); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Common/Enums */ 0); +/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Common/Translator */ 9); +/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Common/Globals */ 6); +/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Storage/Settings */ 5); +/* harmony import */ var Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Remote/Admin/Ajax */ 22); +/* harmony import */ var Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Helper/Apps/Admin */ 68); +/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! Knoin/Knoin */ 7); +/* harmony import */ var Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! Knoin/AbstractViewNext */ 25); + + + +var _dec, _dec2, _class, _class2; + + + + + + + + + + + + + +var LoginAdminView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_12__["view"])({ + name: 'View/Admin/Login', + type: Knoin_Knoin__WEBPACK_IMPORTED_MODULE_12__["ViewType"].Center, + templateID: 'AdminLogin' +}), _dec2 = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_12__["command"])(function (self) { + return !self.submitRequest(); +}), _dec(_class = (_class2 = /*#__PURE__*/function (_AbstractViewNext) { + Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(LoginAdminView, _AbstractViewNext); + + function LoginAdminView() { + var _this; + + _this = _AbstractViewNext.call(this) || this; + _this.mobile = !!Storage_Settings__WEBPACK_IMPORTED_MODULE_9__["appSettingsGet"]('mobile'); + _this.mobileDevice = !!Storage_Settings__WEBPACK_IMPORTED_MODULE_9__["appSettingsGet"]('mobileDevice'); + _this.hideSubmitButton = !!Storage_Settings__WEBPACK_IMPORTED_MODULE_9__["appSettingsGet"]('hideSubmitButton'); + _this.login = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(''); + _this.password = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(''); + _this.loginError = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false); + _this.passwordError = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false); + _this.loginErrorAnimation = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false).extend({ + 'falseTimeout': 500 + }); + _this.passwordErrorAnimation = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false).extend({ + 'falseTimeout': 500 + }); + _this.loginFocus = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false); + _this.formHidden = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false); + _this.formError = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].computed(function () { + return _this.loginErrorAnimation() || _this.passwordErrorAnimation(); + }); + + _this.login.subscribe(function () { + return _this.loginError(false); + }); + + _this.password.subscribe(function () { + return _this.passwordError(false); + }); + + _this.loginError.subscribe(function (v) { + return _this.loginErrorAnimation(!!v); + }); + + _this.passwordError.subscribe(function (v) { + _this.passwordErrorAnimation(!!v); + }); + + _this.submitRequest = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false); + _this.submitError = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(''); + return _this; + } + + var _proto = LoginAdminView.prototype; + + _proto.submitCommand = function submitCommand() { + var _this2 = this; + + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["triggerAutocompleteInputChange"])(); + this.loginError(false); + this.passwordError(false); + this.loginError('' === Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["trim"])(this.login())); + this.passwordError('' === Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["trim"])(this.password())); + + if (this.loginError() || this.passwordError()) { + return false; + } + + this.submitRequest(true); + Common_Globals__WEBPACK_IMPORTED_MODULE_8__["$win"].trigger('rl.tooltips.diactivate'); + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].adminLogin(function (sResult, oData) { + Common_Globals__WEBPACK_IMPORTED_MODULE_8__["$win"].trigger('rl.tooltips.diactivate'); + Common_Globals__WEBPACK_IMPORTED_MODULE_8__["$win"].trigger('rl.tooltips.activate'); + + if (Common_Enums__WEBPACK_IMPORTED_MODULE_6__["StorageResultType"].Success === sResult && oData && 'AdminLogin' === oData.Action) { + if (oData.Result) { + Object(Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_11__[/* getApp */ "a"])().loginAndLogoutReload(true); + } else if (oData.ErrorCode) { + _this2.submitRequest(false); + + _this2.submitError(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_7__["getNotification"])(oData.ErrorCode)); + } + } else { + _this2.submitRequest(false); + + _this2.submitError(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_7__["getNotification"])(Common_Enums__WEBPACK_IMPORTED_MODULE_6__["Notification"].UnknownError)); + } + }, this.login(), this.password()); + return true; + }; + + _proto.onShow = function onShow() { + var _this3 = this; + + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_12__["routeOff"])(); + + ___WEBPACK_IMPORTED_MODULE_4___default.a.delay(function () { + _this3.loginFocus(true); + }, Common_Enums__WEBPACK_IMPORTED_MODULE_6__["Magics"].Time100ms); + }; + + _proto.onHide = function onHide() { + this.loginFocus(false); + }; + + _proto.onBuild = function onBuild() { + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["triggerAutocompleteInputChange"])(true); + }; + + _proto.submitForm = function submitForm() { + this.submitCommand(); + }; + + return LoginAdminView; +}(Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_13__[/* AbstractViewNext */ "a"]), (Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_class2.prototype, "submitCommand", [_dec2], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_2___default()(_class2.prototype, "submitCommand"), _class2.prototype)), _class2)) || _class); + + +/***/ }), +/* 484 */, +/* 485 */, +/* 486 */, +/* 487 */, +/* 488 */, +/* 489 */, +/* 490 */, +/* 491 */, +/* 492 */, +/* 493 */, +/* 494 */, +/* 495 */, +/* 496 */, +/* 497 */, +/* 498 */, +/* 499 */, +/* 500 */, +/* 501 */, +/* 502 */, +/* 503 */, +/* 504 */, +/* 505 */, +/* 506 */, +/* 507 */, +/* 508 */, +/* 509 */, +/* 510 */, +/* 511 */, +/* 512 */, +/* 513 */, +/* 514 */, +/* 515 */, +/* 516 */, +/* 517 */, +/* 518 */, +/* 519 */, +/* 520 */, +/* 521 */, +/* 522 */, +/* 523 */, +/* 524 */, +/* 525 */, +/* 526 */, +/* 527 */, +/* 528 */, +/* 529 */, +/* 530 */, +/* 531 */, +/* 532 */, +/* 533 */, +/* 534 */, +/* 535 */, +/* 536 */, +/* 537 */, +/* 538 */, +/* 539 */, +/* 540 */, +/* 541 */, +/* 542 */, +/* 543 */, +/* 544 */, +/* 545 */, +/* 546 */, +/* 547 */, +/* 548 */, +/* 549 */, +/* 550 */, +/* 551 */, +/* 552 */, +/* 553 */, +/* 554 */, +/* 555 */, +/* 556 */, +/* 557 */, +/* 558 */, +/* 559 */, +/* 560 */, +/* 561 */ +/*!**********************!*\ + !*** ./dev/admin.js ***! + \**********************/ +/*! no exports provided */ +/*! all exports used */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var bootstrap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! bootstrap */ 293); +/* harmony import */ var App_Admin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! App/Admin */ 404); + + +Object(bootstrap__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(App_Admin__WEBPACK_IMPORTED_MODULE_1__["default"]); + +/***/ }), +/* 562 */ +/*!***************************************!*\ + !*** ./dev/View/Popup/DomainAlias.js ***! + \***************************************/ +/*! exports provided: DomainAliasPopupView, default */ +/*! all exports used */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DomainAliasPopupView", function() { return DomainAliasPopupView; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return DomainAliasPopupView; }); +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/assertThisInitialized */ 29); +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/applyDecoratedDescriptor */ 18); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 17); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor */ 19); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ 48); +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Common/Enums */ 0); +/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Common/Globals */ 6); +/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Common/Translator */ 9); +/* harmony import */ var Stores_Admin_Domain__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Stores/Admin/Domain */ 165); +/* harmony import */ var Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! Remote/Admin/Ajax */ 22); +/* harmony import */ var Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! Helper/Apps/Admin */ 68); +/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! Knoin/Knoin */ 7); +/* harmony import */ var Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! Knoin/AbstractViewNext */ 25); + + + + +var _dec, _dec2, _class, _class2; + + + + + + + + + + + + + + +var DomainAliasPopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_14__["popup"])({ + name: 'View/Popup/DomainAlias', + templateID: 'PopupsDomainAlias' +}), _dec2 = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_14__["command"])(function (self) { + return self.canBeSaved(); +}), _dec(_class = (_class2 = /*#__PURE__*/function (_AbstractViewNext) { + Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(DomainAliasPopupView, _AbstractViewNext); + + function DomainAliasPopupView() { + var _this; + + _this = _AbstractViewNext.call(this) || this; + _this.saving = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); + _this.savingError = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(''); + _this.name = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(''); + _this.name.focused = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); + _this.alias = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(''); + _this.domains = Stores_Admin_Domain__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].domainsWithoutAliases; + _this.domainsOptions = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].computed(function () { + return _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_3___default()(___WEBPACK_IMPORTED_MODULE_6___default.a).call(___WEBPACK_IMPORTED_MODULE_6___default.a, _this.domains(), function (item) { + return { + optValue: item.name, + optText: item.name + }; + }); + }); + _this.canBeSaved = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].computed(function () { + return !_this.saving() && '' !== _this.name() && '' !== _this.alias(); + }); + _this.onDomainAliasCreateOrSaveResponse = ___WEBPACK_IMPORTED_MODULE_6___default.a.bind(_this.onDomainAliasCreateOrSaveResponse, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_this)); + return _this; + } + + var _proto = DomainAliasPopupView.prototype; + + _proto.createCommand = function createCommand() { + this.saving(true); + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"].createDomainAlias(this.onDomainAliasCreateOrSaveResponse, this.name(), this.alias()); + }; + + _proto.onDomainAliasCreateOrSaveResponse = function onDomainAliasCreateOrSaveResponse(result, data) { + this.saving(false); + + if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["StorageResultType"].Success === result && data) { + if (data.Result) { + Object(Helper_Apps_Admin__WEBPACK_IMPORTED_MODULE_13__[/* getApp */ "a"])().reloadDomainList(); + this.closeCommand(); + } else if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].DomainAlreadyExists === data.ErrorCode) { + this.savingError(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_10__["i18n"])('ERRORS/DOMAIN_ALREADY_EXISTS')); + } + } else { + this.savingError(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_10__["i18n"])('ERRORS/UNKNOWN_ERROR')); + } + }; + + _proto.onShow = function onShow() { + this.clearForm(); + }; + + _proto.onShowWithDelay = function onShowWithDelay() { + if ('' === this.name() && !Common_Globals__WEBPACK_IMPORTED_MODULE_9__["bMobileDevice"]) { + this.name.focused(true); + } + }; + + _proto.clearForm = function clearForm() { + this.saving(false); + this.savingError(''); + this.name(''); + this.name.focused(false); + this.alias(''); + }; + + return DomainAliasPopupView; +}(Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_15__[/* AbstractViewNext */ "a"]), (Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(_class2.prototype, "createCommand", [_dec2], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_4___default()(_class2.prototype, "createCommand"), _class2.prototype)), _class2)) || _class); + + +/***/ }), +/* 563 */ +/*!**********************************!*\ + !*** ./dev/View/Popup/Plugin.js ***! + \**********************************/ +/*! exports provided: PluginPopupView, default */ +/*! all exports used */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PluginPopupView", function() { return PluginPopupView; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return PluginPopupView; }); +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/assertThisInitialized */ 29); +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/applyDecoratedDescriptor */ 18); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 17); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor */ 19); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ 48); +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! key */ 20); +/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(key__WEBPACK_IMPORTED_MODULE_8__); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Common/Enums */ 0); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Common/Utils */ 2); +/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Common/Translator */ 9); +/* harmony import */ var Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! Remote/Admin/Ajax */ 22); +/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! Knoin/Knoin */ 7); +/* harmony import */ var Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! Knoin/AbstractViewNext */ 25); + + + + +var _dec, _dec2, _class, _class2; + + + + + + + + + + + + + +var PluginPopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_13__["popup"])({ + name: 'View/Popup/Plugin', + templateID: 'PopupsPlugin' +}), _dec2 = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_13__["command"])(function (self) { + return self.hasConfiguration(); +}), _dec(_class = (_class2 = /*#__PURE__*/function (_AbstractViewNext) { + Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(PluginPopupView, _AbstractViewNext); + + function PluginPopupView() { + var _this; + + _this = _AbstractViewNext.call(this) || this; + _this.onPluginSettingsUpdateResponse = ___WEBPACK_IMPORTED_MODULE_6___default.a.bind(_this.onPluginSettingsUpdateResponse, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_this)); + _this.saveError = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(''); + _this.name = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(''); + _this.readme = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(''); + _this.configures = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observableArray([]); + _this.hasReadme = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].computed(function () { + return '' !== _this.readme(); + }); + _this.hasConfiguration = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].computed(function () { + return 0 < _this.configures().length; + }); + _this.readmePopoverConf = { + 'placement': 'right', + 'trigger': 'hover', + 'title': Object(Common_Translator__WEBPACK_IMPORTED_MODULE_11__["i18n"])('POPUPS_PLUGIN/TOOLTIP_ABOUT_TITLE'), + 'container': 'body', + 'html': true, + 'content': function content() { + return "
" + _this.readme() + "
"; + } + }; + _this.bDisabeCloseOnEsc = true; + _this.sDefaultKeyScope = Common_Enums__WEBPACK_IMPORTED_MODULE_9__["KeyState"].All; + _this.tryToClosePopup = ___WEBPACK_IMPORTED_MODULE_6___default.a.debounce(___WEBPACK_IMPORTED_MODULE_6___default.a.bind(_this.tryToClosePopup, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_this)), Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Magics"].Time200ms); + return _this; + } + + var _proto = PluginPopupView.prototype; + + _proto.saveCommand = function saveCommand() { + var list = {}; + list.Name = this.name(); + + ___WEBPACK_IMPORTED_MODULE_6___default.a.each(this.configures(), function (oItem) { + var value = oItem.value(); + + if (false === value || true === value) { + value = value ? '1' : '0'; + } + + list['_' + oItem.Name] = value; + }); + + this.saveError(''); + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"].pluginSettingsUpdate(this.onPluginSettingsUpdateResponse, list); + }; + + _proto.onPluginSettingsUpdateResponse = function onPluginSettingsUpdateResponse(result, data) { + if (Common_Enums__WEBPACK_IMPORTED_MODULE_9__["StorageResultType"].Success === result && data && data.Result) { + this.cancelCommand(); + } else { + this.saveError(''); + + if (data && data.ErrorCode) { + this.saveError(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_11__["getNotification"])(data.ErrorCode)); + } else { + this.saveError(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_11__["getNotification"])(Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantSavePluginSettings)); + } + } + }; + + _proto.onShow = function onShow(oPlugin) { + this.name(); + this.readme(); + this.configures([]); + + if (oPlugin) { + this.name(oPlugin.Name); + this.readme(oPlugin.Readme); + var config = oPlugin.Config; + + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["isNonEmptyArray"])(config)) { + this.configures(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_3___default()(___WEBPACK_IMPORTED_MODULE_6___default.a).call(___WEBPACK_IMPORTED_MODULE_6___default.a, config, function (item) { + return { + 'value': ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(item[0]), + 'placeholder': ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(item[6]), + 'Name': item[1], + 'Type': item[2], + 'Label': item[3], + 'Default': item[4], + 'Desc': item[5] + }; + })); + } + } + }; + + _proto.tryToClosePopup = function tryToClosePopup() { + var _this2 = this; + + var PopupsAskViewModel = __webpack_require__(/*! View/Popup/Ask */ 239); + + if (!Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_13__["isPopupVisible"])(PopupsAskViewModel)) { + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_13__["showScreenPopup"])(PopupsAskViewModel, [Object(Common_Translator__WEBPACK_IMPORTED_MODULE_11__["i18n"])('POPUPS_ASK/DESC_WANT_CLOSE_THIS_WINDOW'), function () { + if (_this2.modalVisibility()) { + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["delegateRun"])(_this2, 'cancelCommand'); + } + }]); + } + }; + + _proto.onBuild = function onBuild() { + var _this3 = this; + + key__WEBPACK_IMPORTED_MODULE_8___default()('esc', Common_Enums__WEBPACK_IMPORTED_MODULE_9__["KeyState"].All, function () { + if (_this3.modalVisibility()) { + _this3.tryToClosePopup(); + } + + return false; + }); + }; + + return PluginPopupView; +}(Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_14__[/* AbstractViewNext */ "a"]), (Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(_class2.prototype, "saveCommand", [_dec2], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_4___default()(_class2.prototype, "saveCommand"), _class2.prototype)), _class2)) || _class); + + +/***/ }), +/* 564 */ +/*!****************************************!*\ + !*** ./dev/Settings/Admin/Branding.js ***! + \****************************************/ +/*! exports provided: BrandingAdminSettings, default */ +/*! all exports used */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BrandingAdminSettings", function() { return BrandingAdminSettings; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return BrandingAdminSettings; }); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Common/Enums */ 0); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/Utils */ 2); +/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Translator */ 9); +/* harmony import */ var Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Remote/Admin/Ajax */ 22); +/* harmony import */ var Stores_Admin_App__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Stores/Admin/App */ 78); +/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Storage/Settings */ 5); + + + + + + + + + +var BrandingAdminSettings = /*#__PURE__*/function () { + function BrandingAdminSettings() { + this.capa = Stores_Admin_App__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].prem; + this.title = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_7__["settingsGet"])('Title')).idleTrigger(); + this.loadingDesc = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_7__["settingsGet"])('LoadingDescription')).idleTrigger(); + this.faviconUrl = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_7__["settingsGet"])('FaviconUrl')).idleTrigger(); + this.loginLogo = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_7__["settingsGet"])('LoginLogo') || '').idleTrigger(); + this.loginBackground = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_7__["settingsGet"])('LoginBackground') || '').idleTrigger(); + this.userLogo = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_7__["settingsGet"])('UserLogo') || '').idleTrigger(); + this.userLogoMessage = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_7__["settingsGet"])('UserLogoMessage') || '').idleTrigger(); + this.userIframeMessage = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_7__["settingsGet"])('UserIframeMessage') || '').idleTrigger(); + this.userLogoTitle = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_7__["settingsGet"])('UserLogoTitle') || '').idleTrigger(); + this.loginDescription = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_7__["settingsGet"])('LoginDescription')).idleTrigger(); + this.loginCss = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_7__["settingsGet"])('LoginCss')).idleTrigger(); + this.userCss = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_7__["settingsGet"])('UserCss')).idleTrigger(); + this.welcomePageUrl = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_7__["settingsGet"])('WelcomePageUrl')).idleTrigger(); + this.welcomePageDisplay = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_7__["settingsGet"])('WelcomePageDisplay')).idleTrigger(); + this.welcomePageDisplay.options = ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].computed(function () { + Object(Common_Translator__WEBPACK_IMPORTED_MODULE_4__["trigger"])(); + return [{ + optValue: 'none', + optText: Object(Common_Translator__WEBPACK_IMPORTED_MODULE_4__["i18n"])('TAB_BRANDING/OPTION_WELCOME_PAGE_DISPLAY_NONE') + }, { + optValue: 'once', + optText: Object(Common_Translator__WEBPACK_IMPORTED_MODULE_4__["i18n"])('TAB_BRANDING/OPTION_WELCOME_PAGE_DISPLAY_ONCE') + }, { + optValue: 'always', + optText: Object(Common_Translator__WEBPACK_IMPORTED_MODULE_4__["i18n"])('TAB_BRANDING/OPTION_WELCOME_PAGE_DISPLAY_ALWAYS') + }]; + }); + this.community = true || false; + } + + var _proto = BrandingAdminSettings.prototype; + + _proto.onBuild = function onBuild() { + var _this = this; + + ___WEBPACK_IMPORTED_MODULE_0___default.a.delay(function () { + var f1 = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["settingsSaveHelperSimpleFunction"])(_this.title.trigger, _this), + f2 = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["settingsSaveHelperSimpleFunction"])(_this.loadingDesc.trigger, _this), + f3 = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["settingsSaveHelperSimpleFunction"])(_this.faviconUrl.trigger, _this); + + _this.title.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].saveAdminConfig(f1, { + 'Title': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["trim"])(value) + }); + }); + + _this.loadingDesc.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].saveAdminConfig(f2, { + 'LoadingDescription': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["trim"])(value) + }); + }); + + _this.faviconUrl.subscribe(function (value) { + Remote_Admin_Ajax__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].saveAdminConfig(f3, { + 'FaviconUrl': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["trim"])(value) + }); + }); + }, Common_Enums__WEBPACK_IMPORTED_MODULE_2__["Magics"].Time50ms); + }; + + return BrandingAdminSettings; +}(); + + + +/***/ }) +/******/ ]); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vZGV2L0NvbW1vbi9FbnVtcy5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvRXh0ZXJuYWwva28uanMiLCJ3ZWJwYWNrOi8vLy4vZGV2L0NvbW1vbi9VdGlscy5qcyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJ3aW5kb3cuX1wiIiwid2VicGFjazovLy9leHRlcm5hbCBcIndpbmRvd1wiIiwid2VicGFjazovLy8uL2Rldi9TdG9yYWdlL1NldHRpbmdzLmpzIiwid2VicGFjazovLy8uL2Rldi9Db21tb24vR2xvYmFscy5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvS25vaW4vS25vaW4uanMiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwid2luZG93LmpRdWVyeVwiIiwid2VicGFjazovLy8uL2Rldi9Db21tb24vVHJhbnNsYXRvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9oZWxwZXJzL2VzbS9pbmhlcml0c0xvb3NlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS1jb3JlanMzL2NvcmUtanMtc3RhYmxlL2luc3RhbmNlL2ZpbmQuanMiLCJ3ZWJwYWNrOi8vLy4vZGV2L0NvbW1vbi9MaW5rcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9jb3JlLWpzLXN0YWJsZS9pbnN0YW5jZS9tYXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvaGVscGVycy9lc20vYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS1jb3JlanMzL2NvcmUtanMtc3RhYmxlL29iamVjdC9nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3IuanMiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwid2luZG93LmtleVwiIiwid2VicGFjazovLy8uL2Rldi9SZW1vdGUvQWRtaW4vQWpheC5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvQ29tbW9uL0V2ZW50cy5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvQ29tbW9uL0NvbnN0cy5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvS25vaW4vQWJzdHJhY3RWaWV3TmV4dC5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvU3RvcmVzL1NvY2lhbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9jb3JlLWpzLXN0YWJsZS9pbnN0YW5jZS9maWx0ZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvaGVscGVycy9lc20vYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9nbG9iYWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZ2xvYmFsLmpzIiwid2VicGFjazovLy8uL2Rldi9Db21wb25lbnQvQWJzdHJhY3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy1zdGFibGUvc2V0LXRpbWVvdXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZXhwb3J0LmpzIiwid2VicGFjazovLy8uL2Rldi9Db21tb24vUGx1Z2lucy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZmFpbHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sLmpzIiwid2VicGFjazovLy8uL2Rldi9TdG9yZXMvQWRtaW4vQ29yZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYW4tb2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2ZhaWxzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9oYXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtb2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2lzLW9iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9wYXRoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9kZXNjcmlwdG9ycy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9oYXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Rlc2NyaXB0b3JzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy1zdGFibGUvc2V0LWludGVydmFsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2FuLW9iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5yZXBsYWNlLmpzIiwid2VicGFjazovLy8uL2Rldi9Db21tb24vTW9tZW50b3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy1zdGFibGUvcHJvbWlzZS5qcyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJ3aW5kb3cuaGFzaGVyXCIiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2V4cG9ydC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvSGVscGVyL0FwcHMvQWRtaW4uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3JlZGVmaW5lLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2EtZnVuY3Rpb24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZW50cnktdmlydHVhbC5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvU3RvcmVzL0xhbmd1YWdlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY2xhc3NvZi1yYXcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2l0ZXJhdG9ycy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmpvaW4uanMiLCJ3ZWJwYWNrOi8vLy4vZGV2L1N0b3Jlcy9BZG1pbi9BcHAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2dldC1idWlsdC1pbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8taW50ZWdlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5LmpzIiwid2VicGFjazovLy8uL2Rldi9Nb2RlbC9FbWFpbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8tbGVuZ3RoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pcy1wdXJlLmpzIiwid2VicGFjazovLy8uL2Rldi9Db21wb25lbnQvQWJzdHJhY3RJbnB1dC5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvU3RvcmVzL0FkbWluL0NhcGEuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLW9iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy90by1sZW5ndGguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvY2xhc3NvZi5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvU3RvcmVzL0FkbWluL1BhY2thZ2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zZXQtZ2xvYmFsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zaGFyZWQtc3RvcmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2lzLXB1cmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLXN0cmluZy10YWctc3VwcG9ydC5qcyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJ3aW5kb3cubW9tZW50XCIiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwid2luZG93LnByb2dyZXNzSnNcIiIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc2hhcmVkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9oaWRkZW4ta2V5cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9lbmdpbmUtdXNlci1hZ2VudC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pdGVyYXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3JlZGVmaW5lLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL25ldy1wcm9taXNlLWNhcGFiaWxpdHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3NoYXJlZC1rZXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2VudW0tYnVnLWtleXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2l0ZXJhdG9ycy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9jbGFzc29mLXJhdy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1jb250ZXh0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3RvLW9iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9lbmdpbmUtaXMtbm9kZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC50by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLXVzZXMtdG8tbGVuZ3RoLmpzIiwid2VicGFjazovLy8uL2Rldi9Db21tb24vSmFzc2wuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy1zdGFibGUvaW5zdGFuY2UvdmFsdWVzLmpzIiwid2VicGFjazovLy8uL2Rldi9TdG9yZXMvVGhlbWUuanMiLCJ3ZWJwYWNrOi8vLy4vZGV2L1N0b3Jlcy9BZG1pbi9QbHVnaW4uanMiLCJ3ZWJwYWNrOi8vLy4vZGV2L1N0b3Jlcy9BZG1pbi9MaWNlbnNlLmpzIiwid2VicGFjazovLy8od2VicGFjaykvYnVpbGRpbi9nbG9iYWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2luZGV4ZWQtb2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pbnNwZWN0LXNvdXJjZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2EtZnVuY3Rpb24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLXByaW1pdGl2ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaWU4LWRvbS1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2RvY3VtZW50LWNyZWF0ZS1lbGVtZW50LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy91aWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL25hdGl2ZS1zeW1ib2wuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZG9jdW1lbnQtY3JlYXRlLWVsZW1lbnQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LWdldC1wcm90b3R5cGUtb2YuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvc2hhcmVkLWtleS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9zaGFyZWQtc3RvcmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdG8taW50ZWdlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9oaWRkZW4ta2V5cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy90by1zdHJpbmctdGFnLXN1cHBvcnQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvc2V0LXRvLXN0cmluZy10YWcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvcGVyZm9ybS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pbnRlcm5hbC1zdGF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9lbmdpbmUtdjgtdmVyc2lvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZml4LXJlZ2V4cC13ZWxsLWtub3duLXN5bWJvbC1sb2dpYy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcmVnZXhwLWV4ZWMtYWJzdHJhY3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoLmpzIiwid2VicGFjazovLy8uL2Rldi9Lbm9pbi9BYnN0cmFjdFNjcmVlbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9jb3JlLWpzLXN0YWJsZS9pbnN0YW5jZS90cmltLmpzIiwid2VicGFjazovLy9leHRlcm5hbCBcIndpbmRvdy5zc21cIiIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWtleXMtaW50ZXJuYWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2VuZ2luZS12OC12ZXJzaW9uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdG8tcHJpbWl0aXZlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC1zZXQtcHJvdG90eXBlLW9mLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC1jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3JlZ2V4cC1leGVjLmpzIiwid2VicGFjazovLy8uL2Rldi9TdG9yZXMvQWRtaW4vRG9tYWluLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9wYXRoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lbmdpbmUtdXNlci1hZ2VudC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWNyZWF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWdldC1wcm90b3R5cGUtb2YuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3NldC10by1zdHJpbmctdGFnLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2luZGV4ZWQtb2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hZHZhbmNlLXN0cmluZy1pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9hcnJheS1pdGVyYXRpb24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXMtYXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWhhcy1zcGVjaWVzLXN1cHBvcnQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy1zdGFibGUvaW5zdGFuY2UvY29uY2F0LmpzIiwid2VicGFjazovLy9leHRlcm5hbCBcIndpbmRvdy5jcm9zc3JvYWRzXCIiLCJ3ZWJwYWNrOi8vLy4vZGV2L0NvbXBvbmVudC9BYnN0cmFjdENoZWNrYm94LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9lbWFpbGpzLWFkZHJlc3NwYXJzZXIvZGlzdC9hZGRyZXNzcGFyc2VyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtcHJvcGVydHktaXMtZW51bWVyYWJsZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktaW5jbHVkZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2lzLWZvcmNlZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY2xhc3NvZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXRlcmF0b3JzLWNvcmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL3dlYi50aW1lcnMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaWU4LWRvbS1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXMtZm9yY2VkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3NoYXJlZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy91aWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZW51bS1idWcta2V5cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9odG1sLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL25hdGl2ZS1zeW1ib2wuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvbmF0aXZlLXByb21pc2UtY29uc3RydWN0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaW5zcGVjdC1zb3VyY2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvc3BlY2llcy1jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy90YXNrLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2VuZ2luZS1pcy1pb3MuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvcHJvbWlzZS1yZXNvbHZlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2RlZmluZS1pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pdGVyYXRvcnMtY29yZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuYXJyYXkuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3JlZ2V4cC1mbGFncy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5zcGxpdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5saW5rLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9uYXRpdmUtd2Vhay1tYXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NvcHktY29uc3RydWN0b3ItcHJvcGVydGllcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb3duLWtleXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1hYnNvbHV0ZS1pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdXNlLXN5bWJvbC1hcy11aWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtY29udGV4dC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LXNldC1wcm90b3R5cGUtb2YuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC10by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3N0cmluZy1tdWx0aWJ5dGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2RvbS1pdGVyYWJsZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3Qta2V5cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy90by1hYnNvbHV0ZS1pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9hZGQtdG8tdW5zY29wYWJsZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3JlZ2V4cC1zdGlja3ktaGVscGVycy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5tYXRjaC5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvQ29tcG9uZW50L0NoZWNrYm94LmpzIiwid2VicGFjazovLy8uL2Rldi9Db21tb24vSHRtbEVkaXRvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9jb3JlLWpzLXN0YWJsZS9pbnN0YW5jZS9yZWR1Y2UuanMiLCJ3ZWJwYWNrOi8vLy4vZGV2L0V4dGVybmFsL09wZW50aXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Bpa2FkYXkvcGlrYWRheS5qcyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJ3aW5kb3cuQXV0b2xpbmtlclwiIiwid2VicGFjazovLy8uL2Rldi9Db21tb24vTWltZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWtleXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FkZC10by11bnNjb3BhYmxlcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaHRtbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc3BlY2llcy1jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZGVmaW5lLWl0ZXJhdG9yLmpzIiwid2VicGFjazovLy8uL2Rldi9WaWV3L1BvcHVwL0Fzay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0aWVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1yZWdleHAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NvcnJlY3QtcHJvdG90eXBlLWdldHRlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYS1wb3NzaWJsZS1wcm90b3R5cGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NyZWF0ZS1pdGVyYXRvci1jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvc2V0LXRpbWVvdXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LXByb3BlcnR5LWlzLWVudW1lcmFibGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvcHJvbWlzZS9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL3Byb21pc2UvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLmFnZ3JlZ2F0ZS1lcnJvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9zZXQtZ2xvYmFsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2NvcnJlY3QtcHJvdG90eXBlLWdldHRlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9hLXBvc3NpYmxlLXByb3RvdHlwZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnRpZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LWtleXMtaW50ZXJuYWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYXJyYXktaW5jbHVkZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXMtYXJyYXktaXRlcmF0b3ItbWV0aG9kLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3VzZS1zeW1ib2wtYXMtdWlkLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2dldC1pdGVyYXRvci1tZXRob2QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXRlcmF0b3ItY2xvc2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLnByb21pc2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvcmVkZWZpbmUtYWxsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC10by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvc2V0LXNwZWNpZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYW4taW5zdGFuY2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvY2hlY2stY29ycmVjdG5lc3Mtb2YtaXRlcmF0aW9uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL21pY3JvdGFzay5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9lbmdpbmUtaXMtd2Vib3Mtd2Via2l0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2hvc3QtcmVwb3J0LWVycm9ycy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9uYXRpdmUtd2Vhay1tYXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLnByb21pc2UuYWxsLXNldHRsZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLnByb21pc2UuYW55LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5wcm9taXNlLmZpbmFsbHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLnN0cmluZy5pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9zdHJpbmctbXVsdGlieXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2NyZWF0ZS1pdGVyYXRvci1jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9kb20taXRlcmFibGVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9nZXQtc3Vic3RpdHV0aW9uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvc3RhYmxlL3NldC1pbnRlcnZhbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWlzLXN0cmljdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy93aGl0ZXNwYWNlcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9hcnJheS1zcGVjaWVzLWNyZWF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9pbnN0YW5jZS9yZWR1Y2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWlzLXN0cmljdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uLmpzIiwid2VicGFjazovLy8uL2Rldi9WaWV3L1BvcHVwL0xhbmd1YWdlcy5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvYm9vdHN0cmFwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS1jb3JlanMzL2NvcmUtanMvb2JqZWN0L2NyZWF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9oZWxwZXJzL2VzbS9zZXRQcm90b3R5cGVPZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9jb3JlLWpzL29iamVjdC9zZXQtcHJvdG90eXBlLW9mLmpzIiwid2VicGFjazovLy8uL2Rldi9TdG9yZXMvQWJzdHJhY3RBcHAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy9pbnN0YW5jZS9mb3ItZWFjaC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9jb3JlLWpzL29iamVjdC9rZXlzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS1jb3JlanMzL2NvcmUtanMvaW5zdGFuY2UvcmVkdWNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS1jb3JlanMzL2NvcmUtanMvaW5zdGFuY2UvcmV2ZXJzZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9jb3JlLWpzL2luc3RhbmNlL3NsaWNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS1jb3JlanMzL2NvcmUtanMvb2JqZWN0L2RlZmluZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvUmVtb3RlL0Fic3RyYWN0QWpheC5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvU2NyZWVuL0Fic3RyYWN0U2V0dGluZ3MuanMiLCJ3ZWJwYWNrOi8vLy4vZGV2L0FwcC9BYnN0cmFjdC5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvS25vaW4vQWJzdHJhY3RCb290LmpzIiwid2VicGFjazovLy8uL2Rldi9Db21wb25lbnQvQWJzdHJhY3RSYWRpby5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmZpbHRlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5zZWFyY2guanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NyZWF0ZS1odG1sLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zdHJpbmctaHRtbC1mb3JjZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2UvdHJpbS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL2luc3RhbmNlL3RyaW0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9zdHJpbmcvdmlydHVhbC90cmltLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5zdHJpbmcudHJpbS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9zdHJpbmctdHJpbS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9zdHJpbmctdHJpbS1mb3JjZWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2UvZmluZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL2luc3RhbmNlL2ZpbmQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9hcnJheS92aXJ0dWFsL2ZpbmQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLmFycmF5LmZpbmQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2UvY29uY2F0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZXMvaW5zdGFuY2UvY29uY2F0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZXMvYXJyYXkvdmlydHVhbC9jb25jYXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLmFycmF5LmNvbmNhdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL3N0YWJsZS9pbnN0YW5jZS92YWx1ZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvYXJyYXkvdmlydHVhbC92YWx1ZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9hcnJheS92aXJ0dWFsL3ZhbHVlcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL3N0YWJsZS9pbnN0YW5jZS9yZWR1Y2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9hcnJheS92aXJ0dWFsL3JlZHVjZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuYXJyYXkucmVkdWNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2FycmF5LXJlZHVjZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL3N0YWJsZS9pbnN0YW5jZS9tYXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9pbnN0YW5jZS9tYXAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9hcnJheS92aXJ0dWFsL21hcC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1zcGVjaWVzLWNyZWF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtYXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LW1ldGhvZC1oYXMtc3BlY2llcy1zdXBwb3J0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1mb3ItZWFjaC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc2FtZS12YWx1ZS5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvSHRtbC9QcmV2aWV3TWVzc2FnZS5odG1sIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvc3RhYmxlL2luc3RhbmNlL2ZpbHRlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL2luc3RhbmNlL2ZpbHRlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL2FycmF5L3ZpcnR1YWwvZmlsdGVyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5hcnJheS5maWx0ZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9mZWF0dXJlcy9vYmplY3QvY3JlYXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZXMvb2JqZWN0L2NyZWF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMub2JqZWN0LmNyZWF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ZlYXR1cmVzL29iamVjdC9zZXQtcHJvdG90eXBlLW9mLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZXMvb2JqZWN0L3NldC1wcm90b3R5cGUtb2YuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLm9iamVjdC5zZXQtcHJvdG90eXBlLW9mLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZmVhdHVyZXMvaW5zdGFuY2UvZm9yLWVhY2guanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2UvZm9yLWVhY2guanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvYXJyYXkvdmlydHVhbC9mb3ItZWFjaC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL2FycmF5L3ZpcnR1YWwvZm9yLWVhY2guanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLmFycmF5LmZvci1lYWNoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2FycmF5LWZvci1lYWNoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZmVhdHVyZXMvb2JqZWN0L2tleXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9vYmplY3Qva2V5cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMub2JqZWN0LmtleXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9mZWF0dXJlcy9pbnN0YW5jZS9yZWR1Y2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9mZWF0dXJlcy9pbnN0YW5jZS9yZXZlcnNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZXMvaW5zdGFuY2UvcmV2ZXJzZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL2FycmF5L3ZpcnR1YWwvcmV2ZXJzZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuYXJyYXkucmV2ZXJzZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ZlYXR1cmVzL2luc3RhbmNlL3NsaWNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZXMvaW5zdGFuY2Uvc2xpY2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9hcnJheS92aXJ0dWFsL3NsaWNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5hcnJheS5zbGljZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ZlYXR1cmVzL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9vYmplY3QvZGVmaW5lLXByb3BlcnR5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5vYmplY3QuZGVmaW5lLXByb3BlcnR5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvc3RhYmxlL29iamVjdC9nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3IuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9vYmplY3QvZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5vYmplY3QuZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yLmpzIiwid2VicGFjazovLy8uL2Rldi9Db21wb25lbnQvU2F2ZVRyaWdnZXIuanMiLCJ3ZWJwYWNrOi8vLy4vZGV2L0NvbXBvbmVudC9JbnB1dC5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvQ29tcG9uZW50L1NlbGVjdC5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvQ29tcG9uZW50L1JhZGlvLmpzIiwid2VicGFjazovLy8uL2Rldi9Db21wb25lbnQvVGV4dEFyZWEuanMiLCJ3ZWJwYWNrOi8vLy4vZGV2L0NvbXBvbmVudC9EYXRlLmpzIiwid2VicGFjazovLy8uL2Rldi9Db21wb25lbnQvU2NyaXB0LmpzIiwid2VicGFjazovLy8uL2Rldi9Db21wb25lbnQvTWF0ZXJpYWxEZXNpZ24vQ2hlY2tib3guanMiLCJ3ZWJwYWNrOi8vLy4vZGV2L0FwcC9BZG1pbi5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvVmlldy9Qb3B1cC9Eb21haW4uanMiLCJ3ZWJwYWNrOi8vLy4vZGV2L1NjcmVlbi9BZG1pbi9TZXR0aW5ncy5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvU2V0dGluZ3MvQWRtaW4vR2VuZXJhbC5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvU2V0dGluZ3MvQWRtaW4vRG9tYWlucy5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvU2V0dGluZ3MvQWRtaW4vTG9naW4uanMiLCJ3ZWJwYWNrOi8vLy4vZGV2L1NldHRpbmdzL0FkbWluL0NvbnRhY3RzLmpzIiwid2VicGFjazovLy8uL2Rldi9TZXR0aW5ncy9BZG1pbi9TZWN1cml0eS5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvU2V0dGluZ3MvQWRtaW4vU29jaWFsLmpzIiwid2VicGFjazovLy8uL2Rldi9TZXR0aW5ncy9BZG1pbi9QbHVnaW5zLmpzIiwid2VicGFjazovLy8uL2Rldi9TZXR0aW5ncy9BZG1pbi9QYWNrYWdlcy5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvU2V0dGluZ3MvQWRtaW4vQWJvdXQuanMiLCJ3ZWJwYWNrOi8vLy4vZGV2L1ZpZXcvQWRtaW4vU2V0dGluZ3MvTWVudS5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvVmlldy9BZG1pbi9TZXR0aW5ncy9QYW5lLmpzIiwid2VicGFjazovLy8uL2Rldi9TY3JlZW4vQWRtaW4vTG9naW4uanMiLCJ3ZWJwYWNrOi8vLy4vZGV2L1ZpZXcvQWRtaW4vTG9naW4uanMiLCJ3ZWJwYWNrOi8vLy4vZGV2L2FkbWluLmpzIiwid2VicGFjazovLy8uL2Rldi9WaWV3L1BvcHVwL0RvbWFpbkFsaWFzLmpzIiwid2VicGFjazovLy8uL2Rldi9WaWV3L1BvcHVwL1BsdWdpbi5qcyIsIndlYnBhY2s6Ly8vLi9kZXYvU2V0dGluZ3MvQWRtaW4vQnJhbmRpbmcuanMiXSwibmFtZXMiOlsiRmlsZVR5cGUiLCJTdG9yYWdlUmVzdWx0VHlwZSIsIkZvY3VzZWQiLCJTdGF0ZSIsIlN0YXRlVHlwZSIsIkNhcGEiLCJLZXlTdGF0ZSIsIkZvbGRlclR5cGUiLCJTZXJ2ZXJGb2xkZXJUeXBlIiwiTG9naW5TaWduTWVUeXBlQXNTdHJpbmciLCJMb2dpblNpZ25NZVR5cGUiLCJDb21wb3NlVHlwZSIsIlVwbG9hZEVycm9yQ29kZSIsIlNldFN5c3RlbUZvbGRlcnNOb3RpZmljYXRpb24iLCJDbGllbnRTaWRlS2V5TmFtZSIsIkV2ZW50S2V5Q29kZSIsIk1lc3NhZ2VTZXRBY3Rpb24iLCJNZXNzYWdlU2VsZWN0QWN0aW9uIiwiRGVza3RvcE5vdGlmaWNhdGlvbiIsIk1lc3NhZ2VQcmlvcml0eSIsIkVkaXRvckRlZmF1bHRUeXBlIiwiU2VydmVyU2VjdXJlIiwiU2VhcmNoRGF0ZVR5cGUiLCJTYXZlU2V0dGluZ3NTdGVwIiwiTGF5b3V0IiwiRmlsdGVyQ29uZGl0aW9uRmllbGQiLCJGaWx0ZXJDb25kaXRpb25UeXBlIiwiRmlsdGVyc0FjdGlvbiIsIkZpbHRlclJ1bGVzVHlwZSIsIlNpZ25lZFZlcmlmeVN0YXR1cyIsIkNvbnRhY3RQcm9wZXJ0eVR5cGUiLCJNYWdpY3MiLCJQb3J0cyIsIk5vdGlmaWNhdGlvbiIsImtvIiwid2luZG93IiwiJHdpbiIsIiQiLCJmRGlzcG9zYWxUb29sdGlwSGVscGVyIiwiZWxlbWVudCIsInV0aWxzIiwiZG9tTm9kZURpc3Bvc2FsIiwiYWRkRGlzcG9zZUNhbGxiYWNrIiwiX19vcGVudGlwIiwiZGVhY3RpdmF0ZSIsImJpbmRpbmdIYW5kbGVycyIsInVwZGF0ZVdpZHRoIiwiaW5pdCIsImZWYWx1ZUFjY2Vzc29yIiwiJGVsIiwiZlZhbHVlIiwiZkluaXQiLCJ3aWR0aCIsIlRpbWU1MDBtcyIsIm9uIiwib2ZmIiwiZWRpdG9yIiwiSHRtbEVkaXRvciIsInJlcXVpcmUiLCJkZWZhdWx0IiwiZlVwZGF0ZUVkaXRvclZhbHVlIiwiX19lZGl0b3IiLCJzZXRIdG1sT3JQbGFpbiIsImZVcGRhdGVLb1ZhbHVlIiwiZ2V0RGF0YVdpdGhIdG1sTWFyayIsImZPblJlYWR5IiwiaXNPYnNlcnZhYmxlIiwiX19mZXRjaEVkaXRvclZhbHVlIiwic3Vic2NyaWJlIiwianNvbiIsInRleHQiLCJKU09OIiwic3RyaW5naWZ5IiwidW53cmFwIiwidXBkYXRlIiwic2Nyb2xsZXJTaGFkb3dzIiwibGltaXQiLCJjb250IiwiZkZ1bmMiLCJfIiwidGhyb3R0bGUiLCJ0b2dnbGVDbGFzcyIsInNjcm9sbFRvcCIsInNjcm9sbEhlaWdodCIsImNsaWVudEhlaWdodCIsInBpa2FkYXkiLCJmQWxsQmluZGluZ3NBY2Nlc3NvciIsInZpZXdNb2RlbCIsImJpbmRpbmdDb250ZXh0IiwidGV4dElucHV0IiwiUGlrYWRheSIsIl9fcGlrYWRheSIsImZpZWxkIiwidmlzaWJsZUFuaW1hdGVkIiwiYWRkQ2xhc3MiLCJzaG93IiwiaGlkZSIsImRlbGF5IiwicmVtb3ZlQ2xhc3MiLCJ0b29sdGlwIiwiaXNNb2JpbGUiLCJkYXRhIiwiaXNJMThOIiwiR2xvYmFscyIsImJNb2JpbGVEZXZpY2UiLCJzVmFsdWUiLCJpc0Z1bmN0aW9uIiwiT3BlbnRpcCIsImRyb3Bkb3duVmlzaWJpbGl0eSIsInYiLCJzZXRDb250ZW50IiwiYWN0aXZhdGUiLCJUcmFuc2xhdG9yIiwiaTE4biIsInRyaWdnZXIiLCJ0b29sdGlwRXJyb3JUaXAiLCJzdHlsZSIsImhpZGVPbiIsInRpcEpvaW50IiwiZG9jdW1lbnQiLCJ2YWx1ZSIsIm9wZW5UaXBzIiwiaXMiLCJUaW1lMTAwbXMiLCJyZWdpc3RyYXRlQm9vdHN0cmFwRHJvcGRvd24iLCJhQm9vdHN0cmFwRHJvcGRvd25zIiwicHVzaCIsImNsaWNrIiwiZGV0ZWN0RHJvcGRvd25WaXNpYmlsaXR5Iiwib3BlbkRyb3Bkb3duVHJpZ2dlciIsImhhc0NsYXNzIiwiZHJvcGRvd24iLCJmb2N1cyIsImRyb3Bkb3duQ2xvc2VyIiwiY2xvc2VzdCIsInBvcG92ZXIiLCJjc3N0ZXh0Iiwic3R5bGVTaGVldCIsImNzc1RleHQiLCJyZXNpemVjcm9wIiwib25LZXlEb3duIiwiZXZlbnQiLCJjYWxsIiwib25FbnRlciIsInBhcnNlSW50Iiwia2V5Q29kZSIsIm9uU3BhY2UiLCJvblRhYiIsInNoaWZ0S2V5Iiwib25Fc2MiLCJjbGlja09uVHJ1ZSIsIm1vZGFsIiwiVXRpbHMiLCJ3aW5kb3dSZXNpemVDYWxsYmFjayIsIiRodG1sIiwibW9tZW50IiwibW9tZW50VG9Ob2RlIiwiaTE4bkluaXQiLCJpMThuVG9Ob2RlcyIsInRyYW5zbGF0b3JJbml0IiwiaTE4blVwZGF0ZSIsImxpbmsiLCJhdHRyIiwidGl0bGUiLCJ0ZXh0RiIsImluaXREb20iLCJpbml0Rml4ZWRUcmlnZ2VyIiwidmFsdWVzIiwidG9wIiwiJGNvbnRhaW5lciIsInJlc2l6ZSIsIm9mZnNldCIsImNzcyIsImluaXRSZXNpemVUcmlnZ2VyIiwib0VsZW1lbnQiLCJwSW50Iiwic2l6ZSIsImhlaWdodCIsImFwcGVuZERvbSIsImVtcHR5IiwiYXBwZW5kIiwiZHJhZ2dhYmxlIiwidHJpZ2dlclpvbmUiLCJzY3JvbGxTcGVlZCIsImZBbGxWYWx1ZUZ1bmMiLCJkcm9wcGFibGVTZWxlY3RvciIsImNvbmYiLCJkaXN0YW5jZSIsImhhbmRsZSIsImN1cnNvckF0IiwibGVmdCIsInJlZnJlc2hQb3NpdGlvbnMiLCJzY3JvbGwiLCJkcmFnIiwic3RvcCIsImhlbHBlciIsImVhY2giLCIkdGhpcyIsImJvdHRvbVBvcyIsImNsZWFySW50ZXJ2YWwiLCJwYWdlWCIsInBhZ2VZIiwibW92ZVVwIiwid2luZG93UmVzaXplIiwibW92ZURvd24iLCJ0YXJnZXQiLCJkYXRhRm9yIiwicmVtb3ZlSW5Gb2N1cyIsImRyb3BwYWJsZSIsImZWYWx1ZUZ1bmMiLCJmT3ZlckNhbGxiYWNrIiwiZHJvcHBhYmxlT3ZlciIsImZPdXRDYWxsYmFjayIsImRyb3BwYWJsZU91dCIsInRvbGVyYW5jZSIsImhvdmVyQ2xhc3MiLCJkcm9wIiwib3ZlciIsIm91dCIsInVpIiwibmFubyIsIlNldHRpbmdzIiwiYkRpc2FibGVOYW5vU2Nyb2xsIiwiYXBwU2V0dGluZ3NHZXQiLCJuYW5vU2Nyb2xsZXIiLCJpT1NOYXRpdmVTY3JvbGxpbmciLCJwcmV2ZW50UGFnZVNjcm9sbGluZyIsInNhdmVUcmlnZ2VyIiwidG9TdHJpbmciLCJlbmQiLCJlbWFpbHNUYWdzIiwiRW1haWxNb2RlbCIsImZBbGxCaW5kaW5ncyIsImZBdXRvQ29tcGxldGVTb3VyY2UiLCJhdXRvQ29tcGxldGVTb3VyY2UiLCJpbnB1dERlbGltaXRlcnMiLCJmRm9jdXNDYWxsYmFjayIsImZvY3VzZWQiLCJpbnB1dG9zYXVydXMiLCJwYXJzZU9uQmx1ciIsImFsbG93RHJhZ0FuZERyb3AiLCJmb2N1c0NhbGxiYWNrIiwic3BsaXRIb29rIiwiaW5kZXhPZiIsInN1YnN0ciIsInNwbGl0RW1haWxMaW5lIiwicGFyc2VIb29rIiwiaW5wdXQiLCJmbGF0dGVuIiwiaW5wdXRWYWx1ZSIsInBhcnNlRW1haWxMaW5lIiwibGVuZ3RoIiwiaXRlbSIsImlzT2JqZWN0IiwidG9MaW5lIiwiY2hhbmdlIiwiJG9FbCIsInZhbCIsImNvbW1hbmQiLCJqcUVsZW1lbnQiLCJpc0NvbW1hbmQiLCJFcnJvciIsImVuYWJsZWQiLCJvYnNlcnZhYmxlIiwiY2FuRXhlY3V0ZSIsIl9fcmVhbENhbkV4ZWN1dGUiLCJjb21wdXRlZCIsInJlc3VsdCIsInByb3AiLCJleHRlbmRlcnMiLCJ0cmltbWVyIiwicmVhZCIsIndyaXRlIiwibmV3VmFsdWUiLCJwb3NJbnRlcmVyIiwiZGVmYXVsdFZhbCIsImxpbWl0ZWRMaXN0IiwiY3VycmVudFZhbHVlIiwibGlzdCIsImlzTm9uRW1wdHlBcnJheSIsImluQXJyYXkiLCJleHRlbmQiLCJub3RpZnkiLCJ2YWx1ZUhhc011dGF0ZWQiLCJyZXZlcnNpYmxlIiwiY29tbWl0IiwicmV2ZXJzZSIsImNvbW1pdGVkVmFsdWUiLCJ0b2dnbGVTdWJzY3JpYmUiLCJvcHRpb25zIiwidG9nZ2xlU3Vic2NyaWJlUHJvcGVydHkiLCJwcmV2IiwibmV4dCIsImZhbHNlVGltZW91dCIsIm9wdGlvbiIsImlGYWxzZVRpbWVvdXRUaW1lb3V0IiwiY2xlYXJUaW1lb3V0Iiwic3BlY2lhbFRocm90dGxlIiwiaVNwZWNpYWxUaHJvdHRsZVRpbWVvdXRWYWx1ZSIsImlTcGVjaWFsVGhyb3R0bGVUaW1lb3V0IiwidmFsdWVGb3JSZWFkIiwiYlZhbHVlIiwiaWRsZVRyaWdnZXIiLCJJZGxlIiwiZm4iLCJ2YWxpZGF0ZU5vbmUiLCJoYXNFcnJvciIsInZhbGlkYXRlRW1haWwiLCJ0ZXN0IiwidmFsaWRhdGVTaW1wbGVFbWFpbCIsImRlbGV0ZUFjY2Vzc0hlbHBlciIsInZhbGlkYXRlRnVuYyIsImhhc0Z1bmNFcnJvciIsInRyaW0iLCJpc0FycmF5IiwiaXNGdW5jIiwiaXNVbmQiLCJpc1VuZGVmaW5lZCIsImlzTnVsbCIsImhhcyIsImJpbmQiLCJub29wIiwibm9vcFRydWUiLCJub29wRmFsc2UiLCJzaWxlbnRUcnlDYXRjaCIsImZ1bmMiLCJlIiwiaXNOb3JtYWwiLCJpc1Bvc051bWVyaWMiLCJpbmNsdWRlWmVybyIsImRlZmF1bHRWYWx1ciIsImlzTmFOIiwicFN0cmluZyIsInBCb29sIiwiYm9vbFRvQWpheCIsImVuY29kZVVSSUNvbXBvbmVudCIsImNvbXBvbmVudCIsImRlY29kZVVSSUNvbXBvbmVudCIsImRlY29kZVVSSSIsInVybCIsImVuY29kZVVSSSIsInNpbXBsZVF1ZXJ5UGFyc2VyIiwicXVlcnlTdHJpbmciLCJpbmRleCIsImxlbiIsInRlbXAiLCJxdWVyaWVzIiwic3BsaXQiLCJwYXJhbXMiLCJmYWtlTWQ1IiwibGluZSIsImxpbmVMZW4iLCJNYXRoIiwicm91bmQiLCJyYW5kb20iLCJlbmNvZGVIdG1sIiwiZXNjYXBlIiwic3BsaXRQbGFpblRleHQiLCJwcmVmaXgiLCJzdWJUZXh0Iiwic3BhY2VQb3MiLCJuZXdMaW5lUG9zIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJ0aW1lT3V0QWN0aW9uIiwidGltZU91dHMiLCJhY3Rpb24iLCJmRnVuY3Rpb24iLCJ0aW1lT3V0IiwidGltZU91dEFjdGlvblNlY29uZCIsImRlTW9kdWxlIiwibSIsImluRm9jdXMiLCJhY3RpdmVFbGVtZW50IiwiX19pbkZvY3VzQ2FjaGUiLCJmb3JjZSIsImJsdXIiLCJhY3RpdmVFbCIsInJlbW92ZVNlbGVjdGlvbiIsImdldFNlbGVjdGlvbiIsInNlbCIsInJlbW92ZUFsbFJhbmdlcyIsInNlbGVjdGlvbiIsInJlcGx5U3ViamVjdEFkZCIsInN1YmplY3QiLCJ0b1VwcGVyQ2FzZSIsInJlcGxhY2UiLCJyZSIsImZ3ZCIsInBhcnRzIiwicHJlZml4SXNSZSIsInBhcnQiLCJ0cmltbWVkUGFydCIsImpvaW4iLCJyb3VuZE51bWJlciIsIm51bSIsImRlYyIsInBvdyIsImZyaWVuZGx5U2l6ZSIsInNpemVJbkJ5dGVzIiwibG9nIiwiZGVzYyIsImNvbnNvbGUiLCJkZWxlZ2F0ZVJ1biIsIm9iamVjdCIsIm1ldGhvZE5hbWUiLCJraWxsQ3RybEFDdHJsUyIsImN0cmxLZXkiLCJhbHRLZXkiLCJrZXkiLCJ3aGljaCIsIlMiLCJwcmV2ZW50RGVmYXVsdCIsIkEiLCJzZW5kZXIiLCJzcmNFbGVtZW50IiwiY29udGVudEVkaXRhYmxlIiwidGFnTmFtZSIsIm1hdGNoIiwiY2xlYXIiLCJjcmVhdGVDb21tYW5kTGVnYWN5IiwiY29udGV4dCIsImZFeGVjdXRlIiwiZkNhbkV4ZWN1dGUiLCJmUmVzdWx0IiwiZk5vbkVtcHR5IiwiYXJncyIsImFwcGx5IiwiY29udmVydFRoZW1lTmFtZSIsIm1lbW9pemUiLCJ0aGVtZSIsInF1b3RlTmFtZSIsIm5hbWUiLCJtaWNyb3RpbWUiLCJEYXRlIiwiZ2V0VGltZSIsInRpbWVzdGFtcCIsImNvbnZlcnRMYW5nTmFtZSIsImxhbmd1YWdlIiwiaXNFbmciLCJkcmFnZ2FibGVQbGFjZSIsImFwcGVuZFRvIiwiZGVmYXV0T3B0aW9uc0FmdGVyUmVuZGVyIiwiZG9tSXRlbSIsImRpc2FibGVkIiwiY2xlYXJCcVN3aXRjaGVyIiwiYm9keSIsInJlbW92ZSIsInJlbW92ZUF0dHIiLCJwcmV2aWV3TWVzc2FnZSIsImlzSHRtbCIsInByaW50IiwiZGF0ZSIsImZyb21DcmVkcyIsInRvQ3JlZHMiLCJ0b0xhYmVsIiwiY2NDbGFzcyIsImNjQ3JlZHMiLCJjY0xhYmVsIiwid2luIiwib3BlbiIsImRvYyIsImJvZHlDbG9uZSIsImNsb25lIiwiYm9keUNsYXNzIiwiaHRtbCIsImNsb3NlIiwic2V0dGluZ3NTYXZlSGVscGVyRnVuY3Rpb24iLCJmQ2FsbGJhY2siLCJrb1RyaWdnZXIiLCJ0aW1lciIsInR5cGUiLCJjYWNoZWQiLCJyZXF1ZXN0QWN0aW9uIiwicmVxdWVzdFBhcmFtZXRlcnMiLCJSZXN1bHQiLCJUcnVlUmVzdWx0IiwiRmFsc2VSZXN1bHQiLCJzZXR0aW5nc1NhdmVIZWxwZXJTaW1wbGVGdW5jdGlvbiIsInNldHRpbmdzU2F2ZUhlbHBlclN1YnNjcmliZUZ1bmN0aW9uIiwicmVtb3RlIiwic2V0dGluZ05hbWUiLCJmVHJpZ2dlckZ1bmN0aW9uIiwic2F2ZUFkbWluQ29uZmlnIiwic2F2ZVNldHRpbmdzIiwiZmluZEVtYWlsQW5kTGlua3MiLCJBdXRvbGlua2VyIiwibmV3V2luZG93Iiwic3RyaXBQcmVmaXgiLCJ1cmxzIiwiZW1haWwiLCJtZW50aW9uIiwicGhvbmUiLCJoYXNodGFnIiwicmVwbGFjZUZuIiwiZ2V0VHlwZSIsIm1hdGNoZWRUZXh0IiwiaHRtbFRvUGxhaW4iLCJwb3MiLCJpUDEiLCJpUDIiLCJpUDMiLCJjb252ZXJ0QmxvY2txdW90ZSIsImJsb2NrcXVvdGVUZXh0IiwiY29udmVydERpdnMiLCJkaXZUZXh0IiwiY29udmVydFByZSIsImZpeEF0dGlidXRlVmFsdWUiLCJjb252ZXJ0TGlua3MiLCIkZGl2IiwicGxhaW5Ub0h0bWwiLCJwbGFpbiIsImZpbmRFbWFpbEFuZExpbmtzSW5UZXh0IiwiYkluIiwiYkRvIiwiYlN0YXJ0IiwiYU5leHRUZXh0Iiwic0xpbmUiLCJpSW5kZXgiLCJhVGV4dCIsImZvbGRlckxpc3RPcHRpb25zQnVpbGRlciIsImFTeXN0ZW0iLCJhTGlzdCIsImFEaXNhYmxlZCIsImFIZWFkZXJMaW5lcyIsImlVbkRlZXAiLCJmRGlzYWJsZUNhbGxiYWNrIiwiZlZpc2libGVDYWxsYmFjayIsImZSZW5hbWVDYWxsYmFjayIsImJTeXN0ZW0iLCJiQnVpbGRVbnZpc2libGUiLCJvSXRlbSIsImJTZXAiLCJpTGVuIiwiYVJlc3VsdCIsInNEZWVwUHJlZml4IiwiaWQiLCJzeXN0ZW0iLCJzZXBvcmF0b3IiLCJmdWxsTmFtZVJhdyIsInNlbGVjdGFibGUiLCJzdWJTY3JpYmVkIiwiZXhpc3RlbiIsImhhc1N1YlNjcmliZWRTdWJmb2xkZXJzIiwiVXNlciIsIkFycmF5IiwiZGVlcCIsInN1YkZvbGRlcnMiLCJzZWxlY3RFbGVtZW50IiwicmFuZ2UiLCJjcmVhdGVSYW5nZSIsInNlbGVjdE5vZGVDb250ZW50cyIsImFkZFJhbmdlIiwiY3JlYXRlVGV4dFJhbmdlIiwibW92ZVRvRWxlbWVudFRleHQiLCJzZWxlY3QiLCJkZWJvdW5jZSIsIkdsb2JhbHNEYXRhIiwidHJpZ2dlckF1dG9jb21wbGV0ZUlucHV0Q2hhbmdlIiwiY29uZmlndXJhdGlvblNjcmlwdFRhZ0NhY2hlIiwiZ2V0Q29uZmlndXJhdGlvbkZyb21TY3JpcHRUYWciLCJjb25maWd1cmF0aW9uIiwicGFyc2UiLCJkaXNwb3NlT25lIiwicHJvcE9yVmFsdWUiLCJkaXNwb3NhYmxlIiwiZGlzcG9zZSIsImRpc3Bvc2VPYmplY3QiLCJkaXNwb3NhYmxlcyIsIm9iamVjdEZvckVhY2giLCJkZWxlZ2F0ZVJ1bk9uRGVzdHJveSIsIm9iamVjdE9yT2JqZWN0cyIsIm9uRGVzdHJveSIsImFwcGVuZFN0eWxlcyIsIiRzdHlsZVRhZyIsIl9fdGhlbWVUaW1lciIsIl9fdGhlbWVBamF4IiwiY2hhbmdlVGhlbWUiLCJ0aGVtZVRyaWdnZXIiLCJ0aGVtZUxpbmsiLCJjbGVhclRpbWVyIiwidGhlbWVTdHlsZSIsIkFuaW1hdGUiLCJhYm9ydCIsImFqYXgiLCJkYXRhVHlwZSIsInRoZW4iLCJhZnRlciIsImNvbXB1dGVkUGFnZW5hdG9ySGVscGVyIiwia29DdXJyZW50UGFnZSIsImtvUGFnZUNvdW50IiwiY3VycmVudFBhZ2UiLCJwYWdlQ291bnQiLCJmQWRkIiwiY3VzdG9tTmFtZSIsImN1cnJlbnQiLCJjdXN0b20iLCJ1bnNoaWZ0IiwiZ2V0RmlsZUV4dGVuc2lvbiIsImZpbGVOYW1lIiwidG9Mb3dlckNhc2UiLCJwb3AiLCJtaW1lQ29udGVudFR5cGUiLCJleHQiLCJNaW1lIiwiaXNUcmFuc3BhcmVudCIsImNvbG9yIiwiZ2V0UmVhbEhlaWdodCIsIiRoY29udCIsInJlc2l6ZUFuZENyb3AiLCJpbWciLCJJbWFnZSIsIm9ubG9hZCIsImRpZmYiLCJjYW52YXMiLCJjcmVhdGVFbGVtZW50IiwiY3R4IiwiZ2V0Q29udGV4dCIsImZpbGxTdHlsZSIsImZpbGxSZWN0IiwiZHJhd0ltYWdlIiwidG9EYXRhVVJMIiwic3JjIiwibWFpbFRvSGVscGVyIiwibWFpbFRvVXJsIiwiUG9wdXBDb21wb3NlVmlld01vZGVsIiwidG8iLCJjYyIsImJjYyIsInF1ZXJ5Iiwic2hvd1NjcmVlblBvcHVwIiwiRW1wdHkiLCJkb21SZWFkeSIsInRpbWVvdXQiLCJTdHJpbmciLCJzdHIiLCJzdGFydCIsIlNFVFRJTkdTIiwiX19ybGFoX2RhdGEiLCJBUFBfU0VUVElOR1MiLCJTeXN0ZW0iLCJzZXR0aW5nc0dldCIsInNldHRpbmdzU2V0IiwiY2FwYSIsIl9fc2l6ZXMiLCIkZG9jIiwiJGJvZHkiLCJwb3NpdGlvbiIsInN0YXJ0TWljcm90aW1lIiwiY29tbXVuaXR5IiwiUkxfQ09NTVVOSVRZIiwicmF0ZUxpbWl0IiwidXNlS2V5Ym9hcmRTaG9ydGN1dHMiLCJzVXNlckFnZW50IiwibmF2aWdhdG9yIiwidXNlckFnZW50IiwiYklFIiwiYkNocm9tZSIsImJTYWZhcmkiLCJiQW5pbWF0aW9uU3VwcG9ydGVkIiwiYlhNTEh0dHBSZXF1ZXN0U3VwcG9ydGVkIiwiWE1MSHR0cFJlcXVlc3QiLCJiSXNIdHRwcyIsImxvY2F0aW9uIiwicHJvdG9jb2wiLCJodG1sRWRpdG9yRGVmYXVsdENvbmZpZyIsImdyb3VwcyIsImh0bWxFZGl0b3JMYW5nc01hcCIsImJBbGxvd1BkZlByZXZpZXciLCJtaW1lVHlwZXMiLCJWSUVXX01PREVMUyIsInNldHRpbmdzIiwibW92ZUFjdGlvbiIsImxlZnRQYW5lbERpc2FibGVkIiwibGVmdFBhbmVsVHlwZSIsImxlZnRQYW5lbFdpZHRoIiwicG9wdXBWaXNpYmlsaXR5TmFtZXMiLCJvYnNlcnZhYmxlQXJyYXkiLCJwb3B1cFZpc2liaWxpdHkiLCJrZXlTY29wZVJlYWwiLCJBbGwiLCJrZXlTY29wZUZha2UiLCJrZXlTY29wZSIsIk1lbnUiLCJDb21wb3NlIiwiZmlsdGVyIiwiZWwiLCJjbGFzc05hbWUiLCJzZXRTY29wZSIsImdldFNjb3BlIiwiX19BUFBfXyIsImlBamF4RXJyb3JDb3VudCIsImlUb2tlbkVycm9yQ291bnQiLCJpTWVzc2FnZUJvZHlDYWNoZUNvdW50IiwiYlVubG9hZCIsImN1cnJlbnRTY3JlZW4iLCJkZWZhdWx0U2NyZWVuTmFtZSIsIlNDUkVFTlMiLCJWaWV3VHlwZSIsIlBvcHVwIiwiTGVmdCIsIlJpZ2h0IiwiQ2VudGVyIiwiaGlkZUxvYWRpbmciLCJjcmVhdGVDb21tYW5kIiwiYWRkU2V0dGluZ3NWaWV3TW9kZWwiLCJTZXR0aW5nc1ZpZXdNb2RlbENsYXNzIiwidGVtcGxhdGUiLCJsYWJlbE5hbWUiLCJyb3V0ZSIsImlzRGVmYXVsdCIsIl9fcmxTZXR0aW5nc0RhdGEiLCJMYWJlbCIsIlRlbXBsYXRlIiwiUm91dGUiLCJJc0RlZmF1bHQiLCJyZW1vdmVTZXR0aW5nc1ZpZXdNb2RlbCIsImRpc2FibGVTZXR0aW5nc1ZpZXdNb2RlbCIsInJvdXRlT2ZmIiwiaGFzaGVyIiwiY2hhbmdlZCIsImFjdGl2ZSIsInJvdXRlT24iLCJzY3JlZW4iLCJzY3JlZW5OYW1lIiwiZ2V0U2NyZWVuUG9wdXAiLCJQb3B1Vmlld01vZGVsQ2xhc3MiLCJoaWRlU2NyZWVuUG9wdXAiLCJWaWV3TW9kZWxDbGFzc1RvSGlkZSIsIk1vZGFsVmlldyIsIl9fdm0iLCJfX2RvbSIsIm1vZGFsVmlzaWJpbGl0eSIsInZtUnVuSG9vayIsImhvb2tOYW1lIiwiVmlld01vZGVsQ2xhc3MiLCJfX25hbWVzIiwicnVuSG9vayIsImJ1aWxkVmlld01vZGVsIiwidm1TY3JlZW4iLCJfX2J1aWxkZWQiLCJ2bURvbSIsInZtIiwiX190eXBlIiwidm1QbGFjZSIsIm9uU2hvd1RyaWdnZXIiLCJvbkhpZGVUcmlnZ2VyIiwidmlld01vZGVsTmFtZSIsIl9fbmFtZSIsInZpZXdNb2RlbE5hbWVzIiwidmlld01vZGVsVGVtcGxhdGVJRCIsIl9fdGVtcGxhdGVJRCIsInZpZXdNb2RlbFBvc2l0aW9uIiwidmlld01vZGVsRG9tIiwiY2FuY2VsQ29tbWFuZCIsImNsb3NlQ29tbWFuZCIsInN0b3JlQW5kU2V0S2V5U2NvcGUiLCJyZXN0b3JlS2V5U2NvcGUiLCJhcHBseUJpbmRpbmdBY2Nlc3NvcnNUb05vZGUiLCJyZWdpc3RlclBvcHVwS2V5RG93biIsIlZpZXdNb2RlbENsYXNzVG9TaG93Iiwid2FybVVwU2NyZWVuUG9wdXAiLCJpc1BvcHVwVmlzaWJsZSIsInNjcmVlbk9uUm91dGUiLCJzdWJQYXJ0IiwiaXNTYW1lU2NyZWVuIiwiY3Jvc3MiLCJfX3N0YXJ0ZWQiLCJ2aWV3TW9kZWxzIiwiZGVmZXIiLCJ2aWV3TW9kZWxWaXNpYmlsaXR5IiwiX19jcm9zcyIsInN0YXJ0U2NyZWVucyIsInNjcmVlbnNDbGFzc2VzIiwiQ1NjcmVlbiIsIl9fc3RhcnQiLCJjcm9zc3JvYWRzIiwiY3JlYXRlIiwiYWRkUm91dGUiLCJpbml0aWFsaXplZCIsImFkZCIsInNldEhhc2giLCJoYXNoIiwic2lsZW5jZSIsImNtZCIsInZpZXdEZWNvcmF0b3IiLCJ0ZW1wbGF0ZUlEIiwicG9wdXBEZWNvcmF0b3IiLCJjb21tYW5kRGVjb3JhdG9yIiwiZGVzY3JpcHRvciIsImluaXRpYWxpemVyIiwibm9ybUNhbkV4ZWN1dGUiLCJzZXR0aW5nc01lbnVLZXlzSGFuZGxlciIsIiRpdGVtcyIsImhhbmRsZXIiLCJ1cCIsInNob3J0Y3V0IiwicmVzdWx0SGFzaCIsImVxIiwiVGltZTIwMG1zIiwiSTE4Tl9EQVRBIiwicmFpbmxvb3BJMThOIiwiSTE4Tl9OT1RJRklDQVRJT05fREFUQSIsIkkxOE5fTk9USUZJQ0FUSU9OX01BUCIsIkludmFsaWRUb2tlbiIsIkF1dGhFcnJvciIsIkFjY2Vzc0Vycm9yIiwiQ29ubmVjdGlvbkVycm9yIiwiQ2FwdGNoYUVycm9yIiwiU29jaWFsRmFjZWJvb2tMb2dpbkFjY2Vzc0Rpc2FibGUiLCJTb2NpYWxUd2l0dGVyTG9naW5BY2Nlc3NEaXNhYmxlIiwiU29jaWFsR29vZ2xlTG9naW5BY2Nlc3NEaXNhYmxlIiwiRG9tYWluTm90QWxsb3dlZCIsIkFjY291bnROb3RBbGxvd2VkIiwiQWNjb3VudFR3b0ZhY3RvckF1dGhSZXF1aXJlZCIsIkFjY291bnRUd29GYWN0b3JBdXRoRXJyb3IiLCJDb3VsZE5vdFNhdmVOZXdQYXNzd29yZCIsIkN1cnJlbnRQYXNzd29yZEluY29ycmVjdCIsIk5ld1Bhc3N3b3JkU2hvcnQiLCJOZXdQYXNzd29yZFdlYWsiLCJOZXdQYXNzd29yZEZvcmJpZGRlbiIsIkNvbnRhY3RzU3luY0Vycm9yIiwiQ2FudEdldE1lc3NhZ2VMaXN0IiwiQ2FudEdldE1lc3NhZ2UiLCJDYW50RGVsZXRlTWVzc2FnZSIsIkNhbnRNb3ZlTWVzc2FnZSIsIkNhbnRDb3B5TWVzc2FnZSIsIkNhbnRTYXZlTWVzc2FnZSIsIkNhbnRTZW5kTWVzc2FnZSIsIkludmFsaWRSZWNpcGllbnRzIiwiQ2FudFNhdmVGaWx0ZXJzIiwiQ2FudEdldEZpbHRlcnMiLCJGaWx0ZXJzQXJlTm90Q29ycmVjdCIsIkNhbnRDcmVhdGVGb2xkZXIiLCJDYW50UmVuYW1lRm9sZGVyIiwiQ2FudERlbGV0ZUZvbGRlciIsIkNhbnREZWxldGVOb25FbXB0eUZvbGRlciIsIkNhbnRTdWJzY3JpYmVGb2xkZXIiLCJDYW50VW5zdWJzY3JpYmVGb2xkZXIiLCJDYW50U2F2ZVNldHRpbmdzIiwiQ2FudFNhdmVQbHVnaW5TZXR0aW5ncyIsIkRvbWFpbkFscmVhZHlFeGlzdHMiLCJDYW50SW5zdGFsbFBhY2thZ2UiLCJDYW50RGVsZXRlUGFja2FnZSIsIkludmFsaWRQbHVnaW5QYWNrYWdlIiwiVW5zdXBwb3J0ZWRQbHVnaW5QYWNrYWdlIiwiTGljZW5zaW5nU2VydmVySXNVbmF2YWlsYWJsZSIsIkxpY2Vuc2luZ0V4cGlyZWQiLCJMaWNlbnNpbmdCYW5uZWQiLCJEZW1vU2VuZE1lc3NhZ2VFcnJvciIsIkRlbW9BY2NvdW50RXJyb3IiLCJBY2NvdW50QWxyZWFkeUV4aXN0cyIsIkFjY291bnREb2VzTm90RXhpc3QiLCJNYWlsU2VydmVyRXJyb3IiLCJJbnZhbGlkSW5wdXRBcmd1bWVudCIsIlVua25vd25Ob3RpZmljYXRpb24iLCJVbmtub3duRXJyb3IiLCJ2YWx1ZUxpc3QiLCJkZWZhdWxWYWx1ZSIsInZhbHVlTmFtZSIsImkxOG5Ub05vZGUiLCJlbGVtZW50cyIsImFuaW1hdGUiLCJsZXR0ZXJmeCIsInJlbG9hZERhdGEiLCJtb21lbnRvclJlbG9hZCIsImluaXROb3RpZmljYXRpb25MYW5ndWFnZSIsImZvckVhY2giLCJpbml0T25TdGFydE9yTGFuZ0NoYW5nZSIsInN0YXJ0Q2FsbGJhY2siLCJsYW5nQ2FsbGJhY2siLCJnZXROb3RpZmljYXRpb24iLCJjb2RlIiwibWVzc2FnZSIsImRlZkNvZGUiLCJDbGllbnRWaWV3RXJyb3IiLCJnZXROb3RpZmljYXRpb25Gcm9tUmVzcG9uc2UiLCJyZXNwb25zZSIsIkVycm9yQ29kZSIsIkVycm9yTWVzc2FnZSIsImdldFVwbG9hZEVycm9yRGVzY0J5Q29kZSIsIkZpbGVJc1Rvb0JpZyIsIkZpbGVQYXJ0aWFsbHlVcGxvYWRlZCIsIkZpbGVOb1VwbG9hZGVkIiwiTWlzc2luZ1RlbXBGb2xkZXIiLCJGaWxlT25TYXZlaW5nRXJyb3IiLCJyZWxvYWQiLCJhZG1pbiIsInJlc29sdmUiLCJyZWplY3QiLCJsYW5nTGluayIsImNhY2hlIiwiaXNSdGwiLCJST09UIiwiSEFTSF9QUkVGSVgiLCJTRVJWRVJfUFJFRklYIiwiU1VCX1FVRVJZX1BSRUZJWCIsIlZFUlNJT04iLCJXRUJfUFJFRklYIiwiVkVSU0lPTl9QUkVGSVgiLCJTVEFUSUNfUFJFRklYIiwiQURNSU5fSE9TVF9VU0UiLCJBRE1JTl9QQVRIIiwiQVVUSF9QUkVGSVgiLCJwb3B1bGF0ZUF1dGhTdWZmaXgiLCJzdWJRdWVyeVByZWZpeCIsInJvb3QiLCJzdGFydHVwVXJsIiwicm9vdEFkbWluIiwicm9vdFVzZXIiLCJhdHRhY2htZW50UmF3IiwiZG93bmxvYWQiLCJjdXN0b21TcGVjU3VmZml4IiwiYXR0YWNobWVudERvd25sb2FkIiwiYXR0YWNobWVudFByZXZpZXciLCJhdHRhY2htZW50VGh1bWJuYWlsUHJldmlldyIsImF0dGFjaG1lbnRQcmV2aWV3QXNQbGFpbiIsImF0dGFjaG1lbnRGcmFtZWQiLCJzZXJ2ZXJSZXF1ZXN0IiwidXBsb2FkIiwidXBsb2FkQ29udGFjdHMiLCJ1cGxvYWRCYWNrZ3JvdW5kIiwibWVzc2FnZVZpZXdMaW5rIiwicmVxdWVzdEhhc2giLCJtZXNzYWdlRG93bmxvYWRMaW5rIiwiYXZhdGFyTGluayIsInB1YmxpY0xpbmsiLCJ1c2VyQmFja2dyb3VuZCIsInBocEluZm8iLCJsYW5nIiwiaXNBZG1pbiIsImV4cG9ydENvbnRhY3RzVmNmIiwiZXhwb3J0Q29udGFjdHNDc3YiLCJzb2NpYWxHb29nbGUiLCJ4YXV0aCIsInNvY2lhbFR3aXR0ZXIiLCJzb2NpYWxGYWNlYm9vayIsInN0YXRpY1ByZWZpeCIsInBhdGgiLCJlbXB0eUNvbnRhY3RQaWMiLCJzb3VuZCIsIm5vdGlmaWNhdGlvbk1haWxJY29uIiwib3BlblBncEpzIiwib3BlblBncFdvcmtlckpzIiwib3BlblBncFdvcmtlclBhdGgiLCJ0aGVtZVByZXZpZXdMaW5rIiwiaW5ib3giLCJpbmJveEZvbGRlck5hbWUiLCJhYm91dCIsIm1haWxCb3giLCJmb2xkZXIiLCJwYWdlIiwic2VhcmNoIiwidGhyZWFkVWlkIiwicmVzdWx0VGhyZWFkVWlkIiwiUmVtb3RlQWRtaW5BamF4Iiwib1JlcXVlc3RzIiwiYWRtaW5Mb2dpbiIsInNMb2dpbiIsInNQYXNzd29yZCIsImRlZmF1bHRSZXF1ZXN0IiwiYWRtaW5Mb2dvdXQiLCJvRGF0YSIsInNhdmVBZG1pbkNvbmZpZ0hlbHBlciIsInZhbHVlRm4iLCJkb21haW5MaXN0IiwiYkluY2x1ZGVBbGlhc2VzIiwicGx1Z2luTGlzdCIsInBhY2thZ2VzTGlzdCIsImNvcmVEYXRhIiwidXBkYXRlQ29yZURhdGEiLCJwYWNrYWdlSW5zdGFsbCIsIm9QYWNrYWdlIiwiZmlsZSIsInBhY2thZ2VEZWxldGUiLCJkb21haW4iLCJzTmFtZSIsInBsdWdpbiIsImRvbWFpbkRlbGV0ZSIsImRvbWFpbkRpc2FibGUiLCJiRGlzYWJsZWQiLCJOYW1lIiwiRGlzYWJsZWQiLCJwbHVnaW5TZXR0aW5nc1VwZGF0ZSIsIm9Db25maWciLCJsaWNlbnNpbmciLCJiRm9yY2UiLCJGb3JjZSIsImxpY2Vuc2luZ0FjdGl2YXRlIiwic0RvbWFpbiIsInNLZXkiLCJEb21haW4iLCJLZXkiLCJwbHVnaW5EaXNhYmxlIiwiY3JlYXRlRG9tYWluQWxpYXMiLCJzQWxpYXMiLCJBbGlhcyIsImNyZWF0ZU9yVXBkYXRlRG9tYWluIiwiYkNyZWF0ZSIsInNJbmNIb3N0IiwiaUluY1BvcnQiLCJzSW5jU2VjdXJlIiwiYkluY1Nob3J0TG9naW4iLCJiVXNlU2lldmUiLCJzU2lldmVBbGxvd1JhdyIsInNTaWV2ZUhvc3QiLCJpU2lldmVQb3J0Iiwic1NpZXZlU2VjdXJlIiwic091dEhvc3QiLCJpT3V0UG9ydCIsInNPdXRTZWN1cmUiLCJiT3V0U2hvcnRMb2dpbiIsImJPdXRBdXRoIiwiYk91dFBocE1haWwiLCJzV2hpdGVMaXN0IiwidGVzdENvbm5lY3Rpb25Gb3JEb21haW4iLCJ0ZXN0Q29udGFjdHMiLCJzYXZlTmV3QWRtaW5QYXNzd29yZCIsImFkbWluUGluZyIsIkFic3RyYWN0QWpheFJlbW90ZSIsIlNVQlMiLCJzdWIiLCJzdWJGdW5jIiwic3ViTmFtZSIsInB1YiIsIlBsdWdpbnMiLCJpdGVtcyIsIk1FU1NBR0VTX1BFUl9QQUdFIiwiTUVTU0FHRVNfUEVSX1BBR0VfVkFMVUVTIiwiQ09OVEFDVFNfUEVSX1BBR0UiLCJERUZBVUxUX0FKQVhfVElNRU9VVCIsIlNFQVJDSF9BSkFYX1RJTUVPVVQiLCJTRU5EX01FU1NBR0VfQUpBWF9USU1FT1VUIiwiU0FWRV9NRVNTQUdFX0FKQVhfVElNRU9VVCIsIkNPTlRBQ1RTX1NZTkNfQUpBWF9USU1FT1VUIiwiVU5VU0VEX09QVElPTl9WQUxVRSIsIkNMSUVOVF9TSURFX1NUT1JBR0VfSU5ERVhfTkFNRSIsIklNQVBfREVGQVVMVF9QT1JUIiwiSU1BUF9ERUZBVUxUX1NFQ1VSRV9QT1JUIiwiU01UUF9ERUZBVUxUX1BPUlQiLCJTTVRQX0RFRkFVTFRfU0VDVVJFX1BPUlQiLCJTSUVWRV9ERUZBVUxUX1BPUlQiLCJNRVNTQUdFX0JPRFlfQ0FDSEVfTElNSVQiLCJBSkFYX0VSUk9SX0xJTUlUIiwiVE9LRU5fRVJST1JfTElNSVQiLCJSQUlOTE9PUF9UUklBTF9LRVkiLCJEQVRBX0lNQUdFX1VTRVJfRE9UX1BJQyIsIkRBVEFfSU1BR0VfVFJBTlNQX1BJQyIsIkRBVEFfSU1BR0VfTEFaWV9QTEFDRUhPTERFUl9QSUMiLCJBYnN0cmFjdFZpZXdOZXh0IiwiYkRpc2FiZUNsb3NlT25Fc2MiLCJzRGVmYXVsdEtleVNjb3BlIiwiTm9uZSIsInNDdXJyZW50S2V5U2NvcGUiLCJFc2MiLCJCYWNrc3BhY2UiLCJTb2NpYWxTdG9yZSIsImdvb2dsZSIsInR3aXR0ZXIiLCJmYWNlYm9vayIsImRyb3Bib3giLCJjbGllbnRJRCIsImNsaWVudFNlY3JldCIsImFwaUtleSIsImxvYWRpbmciLCJ1c2VyTmFtZSIsImxvZ2dpbmVkIiwiYXV0aCIsImF1dGhHbWFpbCIsImRyaXZlIiwicHJldmlldyIsImNsaWVudFNldHRpbmdzIiwiYXBpS2V5U2V0dGluZ3MiLCJhcHBJRCIsImFwcFNlY3JldCIsInN1cHBvcnRlZCIsImNvbnN1bWVyS2V5IiwiY29uc3VtZXJTZWNyZXQiLCJwb3B1bGF0ZSIsImFwcGVuZERyb3Bib3giLCJEcm9wYm94IiwiZ2V0RWxlbWVudEJ5SWQiLCJzY3JpcHQiLCJhcHBlbmRDaGlsZCIsIkFic3RyYWN0Q29tcG9uZW50IiwiZnVuY1RvRGlzcG9zZSIsImNvbXBvbmVudEV4cG9ydEhlbHBlciIsIkNsYXNzT2JqZWN0IiwiY3JlYXRlVmlld01vZGVsIiwiY29tcG9uZW50SW5mbyIsImlubGluZSIsIlNJTVBMRV9IT09LUyIsIlVTRVJfVklFV19NT0RFTFNfSE9PS1MiLCJBRE1JTl9WSUVXX01PREVMU19IT09LUyIsImFkZEhvb2siLCJjYWxsYmFjayIsIm1haW5TZXR0aW5nc0dldCIsInJlbW90ZVJlcXVlc3QiLCJwYXJhbWV0ZXJzIiwiYWRkU2V0dGluZ3NWaWV3TW9kZWxGb3JBZG1pbiIsInJ1blNldHRpbmdzVmlld01vZGVsSG9va3MiLCJLbm9pbiIsInZpZXciLCJwbHVnaW5TZWN0aW9uIiwicGx1Z2lucyIsIkNvcmVBZG1pblN0b3JlIiwiY29yZVJlYWwiLCJjb3JlQ2hhbm5lbCIsImNvcmVUeXBlIiwiY29yZVVwZGF0YWJsZSIsImNvcmVBY2Nlc3MiLCJjb3JlV2FybmluZyIsImNvcmVDaGVja2luZyIsImNvcmVVcGRhdGluZyIsImNvcmVWZXJzaW9uIiwiY29yZVJlbW90ZVZlcnNpb24iLCJjb3JlUmVtb3RlUmVsZWFzZSIsImNvcmVWZXJzaW9uQ29tcGFyZSIsIl9tb21lbnQiLCJfbW9tZW50Tm93IiwidXBkYXRlTW9tZW50Tm93IiwidXBkYXRlTW9tZW50Tm93VW5peCIsInVuaXgiLCJtb21lbnROb3ciLCJtb21lbnROb3dVbml4Iiwic2VhcmNoU3VidHJhY3RGb3JtYXREYXRlSGVscGVyIiwic3VidHJhY3QiLCJmb3JtYXQiLCJmb3JtYXRDdXN0b21TaG9ydERhdGUiLCJub3ciLCJmcm9tTm93IiwiVElNRSIsInllYXIiLCJ0aW1lU3RhbXBJblVUQyIsImZvcm1hdFN0ciIsInRpbWUiLCJnZXRBcHAiLCJMYW5ndWFnZVN0b3JlIiwibGFuZ3VhZ2VzIiwibGFuZ3VhZ2VzQWRtaW4iLCJsYW5ndWFnZUFkbWluIiwidXNlckxhbmd1YWdlIiwidXNlckxhbmd1YWdlQWRtaW4iLCJhTGFuZ3VhZ2VzIiwiYUxhbmd1YWdlc0FkbWluIiwiQXBwQWRtaW5TdG9yZSIsImRldGVybWluZVVzZXJMYW5ndWFnZSIsImRldGVybWluZVVzZXJEb21haW4iLCJ3ZWFrUGFzc3dvcmQiLCJ1c2VMb2NhbFByb3h5Rm9yRXh0ZXJuYWxJbWFnZXMiLCJkYXRhRm9sZGVyQWNjZXNzIiwiZ2V0IiwiQWJzdHJhY3RBcHBTdG9yZSIsImRraW1TdGF0dXMiLCJka2ltVmFsdWUiLCJjbGVhckR1cGxpY2F0ZU5hbWUiLCJuZXdJbnN0YW5jZUZyb21Kc29uIiwiaW5pdEJ5SnNvbiIsInZhbGlkYXRlIiwid2l0aG91dE5hbWUiLCJFbWFpbCIsIkRraW1TdGF0dXMiLCJEa2ltVmFsdWUiLCJmcmllbmRseVZpZXciLCJ3cmFwV2l0aExpbmsiLCJ1c2VFbmNvZGVIdG1sIiwicGFyc2VkUmVzdWx0IiwiYWRkcmVzc3BhcnNlciIsImV4aXN0cyIsImFkZHJlc3MiLCJjb21wYWN0IiwiZW1haWxBZGRyZXNzIiwiQWJzdHJhY3RJbnB1dCIsImxhYmVsIiwicHJlTGFiZWwiLCJlbmFibGUiLCJwbGFjZWhvbGRlciIsImxhYmVsZWQiLCJwcmVMYWJlbGVkIiwidHJpZ2dlcmVkIiwiY2xhc3NGb3JUcmlnZ2VyIiwic3VmZml4VmFsdWUiLCJzZXRUcmlnZ2VyU3RhdGUiLCJDYXBhQWRtaW5TdG9yZSIsImFkZGl0aW9uYWxBY2NvdW50cyIsImlkZW50aXRpZXMiLCJncmF2YXRhciIsImF0dGFjaG1lbnRUaHVtYm5haWxzIiwic2lldmUiLCJmaWx0ZXJzIiwidGhlbWVzIiwib3BlblBHUCIsInR3b0ZhY3RvckF1dGgiLCJ0d29GYWN0b3JBdXRoRm9yY2UiLCJ0ZW1wbGF0ZXMiLCJBZGRpdGlvbmFsQWNjb3VudHMiLCJJZGVudGl0aWVzIiwiR3JhdmF0YXIiLCJBdHRhY2htZW50VGh1bWJuYWlscyIsIlNpZXZlIiwiRmlsdGVycyIsIlRoZW1lcyIsIlVzZXJCYWNrZ3JvdW5kIiwiT3BlblBHUCIsIlR3b0ZhY3RvciIsIlR3b0ZhY3RvckZvcmNlIiwiVGVtcGxhdGVzIiwiUGFja2FnZUFkbWluU3RvcmUiLCJwYWNrYWdlcyIsInBhY2thZ2VzUmVhbCIsInBhY2thZ2VzTWFpblVwZGF0YWJsZSIsImphc3NsIiwiYXN5bmMiLCJhbGwiLCJvbmVycm9yIiwiVGhlbWVTdG9yZSIsInRoZW1lQmFja2dyb3VuZE5hbWUiLCJ0aGVtZUJhY2tncm91bmRIYXNoIiwiUGx1Z2luQWRtaW5TdG9yZSIsImVycm9yIiwiTGljZW5zZUFkbWluU3RvcmUiLCJsaWNlbnNpbmdQcm9jZXNzIiwibGljZW5zZVZhbGlkIiwibGljZW5zZUV4cGlyZWQiLCJsaWNlbnNlRXJyb3IiLCJsaWNlbnNlVHJpZ2dlciIsIkFic3RyYWN0U2NyZWVuIiwib0Nyb3NzIiwic1NjcmVlbk5hbWUiLCJhVmlld01vZGVscyIsInJvdXRlcyIsImZNYXRjaGVyIiwib25Sb3V0ZSIsInJ1bGVzIiwiRG9tYWluQWRtaW5TdG9yZSIsImRvbWFpbnMiLCJkb21haW5zV2l0aG91dEFsaWFzZXMiLCJhbGlhcyIsIkFic3RyYWN0Q2hlY2tib3giLCJkaXNhYmxlIiwicmVhZE9ubHkiLCJpbnZlcnRlZCIsImxhYmVsQW5pbWF0ZWQiLCJDaGVja2JveENvbXBvbmVudCIsIm9uQmx1ciIsIm9uUmVhZHkiLCJvbk1vZGVDaGFuZ2UiLCJibHVyVGltZXIiLCJfX3Jlc2l6YWJsZSIsIl9faW5pdGVkIiwiJGVsZW1lbnQiLCJyZXNpemVFZGl0b3IiLCJydW5PbkJsdXIiLCJibHVyVHJpZ2dlciIsImZvY3VzVHJpZ2dlciIsIm1vZGUiLCJjbGVhckNhY2hlZFNpZ25hdHVyZSIsImV4ZWNDb21tYW5kIiwiY2xlYXJDYWNoZSIsInNldFNpZ25hdHVyZSIsInNpZ25hdHVyZSIsImluc2VydEJlZm9yZSIsImNoZWNrRGlydHkiLCJyZXNldERpcnR5IiwiZ2V0RGF0YSIsIndyYXBJc0h0bWwiLCJfX3BsYWluIiwiZ2V0UmF3RGF0YSIsIm1vZGVUb2dnbGUiLCJzZXRNb2RlIiwic2V0SHRtbCIsInNldFBsYWluIiwic2V0RGF0YSIsInJlcGxhY2VIdG1sIiwiZmluZCIsInNldFJhd0RhdGEiLCJpbml0RnVuYyIsImNvbmZpZyIsImFsbG93U291cmNlIiwiYml0aSIsInRvb2xiYXJHcm91cHMiLCJfX2NmZ0luaXRlZCIsInJlbW92ZUJ1dHRvbnMiLCJyZW1vdmVQbHVnaW5zIiwiZW50ZXJNb2RlIiwiQ0tFRElUT1IiLCJFTlRFUl9CUiIsInNoaWZ0RW50ZXJNb2RlIiwiRU5URVJfUCIsImVudiIsImlzQ29tcGF0aWJsZSIsIlRhYiIsIkZpbGVSZWFkZXIiLCJkYXRhVHJhbnNmZXIiLCJnZXRGaWxlc0NvdW50IiwiZ2V0RmlsZSIsImltYWdlSWQiLCJyZWFkZXIiLCJvbmxvYWRlbmQiLCJyZWFkQXNEYXRhVVJMIiwicmVtb3ZlTWVudUl0ZW0iLCJfX2luaXRFZGl0b3IiLCJoYXNGb2N1cyIsImZvY3VzTWFuYWdlciIsImlubmVySGVpZ2h0Iiwic2V0UmVhZE9ubHkiLCJzdHlsZXMiLCJyYWlubG9vcCIsInJhaW5sb29wVGlwIiwicmFpbmxvb3BFcnJvclRpcCIsIkFza1BvcHVwVmlldyIsInBvcHVwIiwiYXNrRGVzYyIsInllc0J1dHRvbiIsIm5vQnV0dG9uIiwieWVzRm9jdXMiLCJub0ZvY3VzIiwiZlllc0FjdGlvbiIsImZOb0FjdGlvbiIsImJGb2N1c1llc09uU2hvdyIsIlBvcHVwQXNrIiwiY2xlYXJQb3B1cCIsInllc0NsaWNrIiwibm9DbGljayIsIm9uU2hvdyIsImZZZXNGdW5jIiwiZk5vRnVuYyIsImlzRm9jdXNZZXNPblNob3ciLCJvblNob3dXaXRoRGVsYXkiLCJvbkJ1aWxkIiwiTGFuZ3VhZ2VzUG9wdXBWaWV3IiwiZkxhbmciLCJsYW5ncyIsInVzZXIiLCJzZWxlY3RlZCIsImZ1bGxOYW1lIiwic2V0TGFuZ3VhZ2VTZWxlY3Rpb24iLCJsYW5ndWFnZVRvb2x0aXBOYW1lIiwiY3VycmVudExhbmciLCJvbkJlZm9yZVNob3ciLCJmTGFuZ3VhZ2UiLCJjaGFuZ2VMYW5ndWFnZSIsIkFwcCIsInJsIiwicGx1Z2luU2V0dGluZ3NHZXQiLCJwbHVnaW5SZW1vdGVSZXF1ZXN0IiwiRW51bXMiLCJib290c3RhcnQiLCJUaW1lMTBtcyIsIl9fQVBQX0JPT1QiLCJmRXJyb3JDYWxsYmFjayIsInJhaW5sb29wVEVNUExBVEVTIiwiaW5uZXJIVE1MIiwiYWxsb3dMYW5ndWFnZXNPblNldHRpbmdzIiwiYWxsb3dMYW5ndWFnZXNPbkxvZ2luIiwibmV3TW92ZVRvRm9sZGVyIiwiaW50ZXJmYWNlQW5pbWF0aW9uIiwiYW5pbSIsInByZW0iLCJkZWZhdWx0UmVzcG9uc2UiLCJzUmVxdWVzdEFjdGlvbiIsInNUeXBlIiwiYkNhY2hlZCIsIm9SZXF1ZXN0UGFyYW1ldGVycyIsImZDYWxsIiwiU3VjY2VzcyIsIlVubG9hZCIsImxvZ2luQW5kTG9nb3V0UmVsb2FkIiwiQ2xlYXJBdXRoIiwiTG9nb3V0IiwiY2xlYXJDbGllbnRTaWRlVG9rZW4iLCJBYm9ydCIsImFqYXhSZXF1ZXN0IiwiZlJlc3VsdENhbGxiYWNrIiwiaVRpbWVPdXQiLCJzR2V0QWRkIiwiYWJvcnRBY3Rpb25zIiwiaXNQb3N0IiwiaGVhZGVycyIsIkFjdGlvbiIsImFjdGlvblRvQWJvcnQiLCJfX2Fib3J0ZWQiLCJYVG9rZW4iLCJvRGVmQWpheCIsImdsb2JhbCIsImFsd2F5cyIsIlRpbWUiLCJVcGRhdGVUb2tlbiIsInNldENsaWVudFNpZGVUb2tlbiIsImNhdGNoIiwic0FjdGlvbiIsIm9QYXJhbWV0ZXJzIiwiaVRpbWVvdXQiLCJhQWJvcnRBY3Rpb25zIiwiZ2V0UHVibGljS2V5IiwianNWZXJzaW9uIiwic1ZlcnNpb24iLCJBYnN0cmFjdFNldHRpbmdzU2NyZWVuIiwibWVudSIsIm9DdXJyZW50U3ViU2NyZWVuIiwib1ZpZXdNb2RlbFBsYWNlIiwic2V0dXBTZXR0aW5ncyIsInNldHRpbmdzU2NyZWVuIiwiUm91dGVkU2V0dGluZ3NWaWV3TW9kZWwiLCJ2aWV3TW9kZWxQbGFjZSIsIlNldHRpbmdzVmlld01vZGVsIiwiRGlzYWJsZWRTZXR0aW5nc1ZpZXdNb2RlbCIsInRtcGwiLCJvbkhpZGUiLCJSZW1vdmVTZXR0aW5nc1ZpZXdNb2RlbCIsIkRlZmF1bHRWaWV3TW9kZWwiLCJkZWZhdWx0Um91dGUiLCJzdWJuYW1lIiwibm9ybWFsaXplXyIsInJxdWVzdCIsInZhbHMiLCJBYnN0cmFjdEFwcCIsImdvb2dsZVByZXZpZXdTdXBwb3J0ZWRDYWNoZSIsImlzTG9jYWxBdXRvY29tcGxldGUiLCJpZnJhbWUiLCJsYXN0RXJyb3JUaW1lIiwiRXZlbnRzIiwiaUgiLCJpVyIsIlRpbWU1MG1zIiwiVGltZTVzIiwiZ2V0QXBwbGljYXRpb25Db25maWd1cmF0aW9uIiwiZGVmYXVsdF8iLCJhcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb24iLCJvTGluayIsImhyZWYiLCJjcmVhdGVFdmVudCIsIm9FIiwiTW91c2VFdmVudHMiLCJpbml0RXZlbnQiLCJkaXNwYXRjaEV2ZW50IiwiZ29vZ2xlUHJldmlld1N1cHBvcnRlZCIsInNldFdpbmRvd1RpdGxlIiwicmVkaXJlY3RUb0FkbWluUGFuZWwiLCJfX3JsYWhfY2xlYXIiLCJ0b2tlbiIsIl9fcmxhaF9zZXQiLCJsb2dvdXQiLCJpbklmcmFtZSIsImN1c3RvbUxvZ291dExpbmsiLCJwYXJlbnQiLCJoaXN0b3J5QmFjayIsImhpc3RvcnkiLCJiYWNrIiwibW9iaWxlIiwiY29tcG9uZW50cyIsInJlZ2lzdGVyIiwiVGltZTFzIiwic3NtIiwiYWRkU3RhdGUiLCJvbkxlYXZlIiwiQWJzdHJhY3RCb290IiwiQWJzdHJhY3RSYWRpbyIsIlNhdmVUcmlnZ2VyQ29tcG9uZW50IiwidmVydGljYWxBbGlnbiIsInNldFN0YXRlIiwiSW5wdXRDb21wb25lbnQiLCJTZWxlY3RDb21wb25lbnQiLCJvcHRpb25zVGV4dCIsIm9wdGlvbnNWYWx1ZSIsIm9wdGlvbnNDYXB0aW9uIiwiUmFkaW9Db21wb25lbnQiLCJERUZBVUxUX1JPV1MiLCJUZXh0QXJlYUNvbXBvbmVudCIsInJvd3MiLCJzcGVsbGNoZWNrIiwiRGF0ZUNvbXBvbmVudCIsIlNjcmlwdENvbXBvbmVudCIsInRlbXBsYXRlTm9kZXMiLCJvdXRlckhUTUwiLCJyZXBsYWNlV2l0aCIsIm5vZGVWYWx1ZSIsIkNoZWNrYm94TWF0ZXJpYWxEZXNpZ25Db21wb25lbnQiLCJhbmltYXRpb25Cb3giLCJhbmltYXRpb25DaGVja21hcmsiLCJhbmltYXRpb25Cb3hTZXRUcnVlIiwiYW5pbWF0aW9uQ2hlY2ttYXJrU2V0VHJ1ZSIsInRyaWdnZXJBbmltYXRpb24iLCJib3giLCJBZG1pbkFwcCIsIlJlbW90ZSIsInJlbG9hZERvbWFpbkxpc3QiLCJEb21haW5TdG9yZSIsImRlbGV0ZUFjY2VzcyIsInJlbG9hZFBsdWdpbkxpc3QiLCJQbHVnaW5TdG9yZSIsIkVuYWJsZWQiLCJjb25maWd1cmVkIiwiQ29uZmlndXJlZCIsInJlbG9hZFBhY2thZ2VzTGlzdCIsIlBhY2thZ2VTdG9yZSIsIlJlYWwiLCJNYWluVXBkYXRhYmxlIiwiTGlzdCIsImNhbkJlSW5zdGFsbGVkIiwiQ29yZVN0b3JlIiwicmVsb2FkQ29yZURhdGEiLCJDaGFubmVsIiwiVHlwZSIsIlVwZGF0YWJsZSIsIkFjY2VzcyIsIldhcm5pbmciLCJWZXJzaW9uIiwiUmVtb3RlVmVyc2lvbiIsIlJlbW90ZVJlbGVhc2UiLCJWZXJzaW9uQ29tcGFyZSIsInJlbG9hZExpY2Vuc2luZyIsIkxpY2Vuc2VTdG9yZSIsIkV4cGlyZWQiLCJBcHBTdG9yZSIsImJvb3RlbmQiLCJib290ZW5kQ2FsbGJhY2siLCJwcm9ncmVzc0pzIiwiQ2FwYVN0b3JlIiwiU2V0dGluZ3NBZG1pblNjcmVlbiIsIkxvZ2luQWRtaW5TY3JlZW4iLCJEb21haW5Qb3B1cFZpZXciLCJzZWxmIiwiY2FuQmVTYXZlZCIsImNhbkJlVGVzdGVkIiwiZWRpdCIsInNhdmluZyIsInNhdmluZ0Vycm9yIiwic2lldmVTZXR0aW5ncyIsInRlc3RpbmciLCJ0ZXN0aW5nRG9uZSIsInRlc3RpbmdJbWFwRXJyb3IiLCJ0ZXN0aW5nU2lldmVFcnJvciIsInRlc3RpbmdTbXRwRXJyb3IiLCJ0ZXN0aW5nSW1hcEVycm9yRGVzYyIsInRlc3RpbmdTaWV2ZUVycm9yRGVzYyIsInRlc3RpbmdTbXRwRXJyb3JEZXNjIiwiaW1hcFNlcnZlckZvY3VzIiwic2lldmVTZXJ2ZXJGb2N1cyIsInNtdHBTZXJ2ZXJGb2N1cyIsImltYXBTZXJ2ZXIiLCJpbWFwUG9ydCIsImltYXBTZWN1cmUiLCJpbWFwU2hvcnRMb2dpbiIsInVzZVNpZXZlIiwic2lldmVBbGxvd1JhdyIsInNpZXZlU2VydmVyIiwic2lldmVQb3J0Iiwic2lldmVTZWN1cmUiLCJzbXRwU2VydmVyIiwic210cFBvcnQiLCJzbXRwU2VjdXJlIiwic210cFNob3J0TG9naW4iLCJzbXRwQXV0aCIsInNtdHBQaHBNYWlsIiwid2hpdGVMaXN0IiwiYWxpYXNOYW1lIiwiZW5hYmxlU21hcnRQb3J0cyIsImFsbG93U2lldmUiLCJoZWFkZXJUZXh0IiwiZG9tYWluRGVzYyIsImRvbWFpbklzQ29tcHV0ZWQiLCJ1c2VQaHBNYWlsIiwicG9ydCIsIkltYXBTc2wiLCJJbWFwIiwiU210cFNzbCIsIlNtdHBTdGFydFRscyIsIlNtdHAiLCJjcmVhdGVPckFkZENvbW1hbmQiLCJvbkRvbWFpbkNyZWF0ZU9yU2F2ZVJlc3BvbnNlIiwidGVzdENvbm5lY3Rpb25Db21tYW5kIiwib25UZXN0Q29ubmVjdGlvblJlc3BvbnNlIiwid2hpdGVMaXN0Q29tbWFuZCIsImJhY2tDb21tYW5kIiwic2lldmVDb21tYW5kIiwiY2xlYXJUZXN0aW5nIiwic1Jlc3VsdCIsImJJbWFwIiwiYlNpZXZlIiwib0RvbWFpbiIsImNsZWFyRm9ybSIsIkluY0hvc3QiLCJJbmNQb3J0IiwiSW5jU2VjdXJlIiwiSW5jU2hvcnRMb2dpbiIsIlVzZVNpZXZlIiwiU2lldmVBbGxvd1JhdyIsIlNpZXZlSG9zdCIsIlNpZXZlUG9ydCIsIlNpZXZlU2VjdXJlIiwiT3V0SG9zdCIsIk91dFBvcnQiLCJPdXRTZWN1cmUiLCJPdXRTaG9ydExvZ2luIiwiT3V0QXV0aCIsIk91dFVzZVBocE1haWwiLCJXaGl0ZUxpc3QiLCJBbGlhc05hbWUiLCJNZW51U2V0dGluZ3NBZG1pblZpZXciLCJQYW5lU2V0dGluZ3NBZG1pblZpZXciLCJicmFuZGluZyIsIkdlbmVyYWxBZG1pblNldHRpbmdzIiwiRG9tYWluc0FkbWluU2V0dGluZ3MiLCJMb2dpbkFkbWluU2V0dGluZ3MiLCJDb250YWN0c0FkbWluU2V0dGluZ3MiLCJTZWN1cml0eUFkbWluU2V0dGluZ3MiLCJTb2NpYWxBZG1pblNldHRpbmdzIiwiUGx1Z2luc0FkbWluU2V0dGluZ3MiLCJQYWNrYWdlc0FkbWluU2V0dGluZ3MiLCJBYm91dEFkbWluU2V0dGluZ3MiLCJjYXBhVGhlbWVzIiwiY2FwYVVzZXJCYWNrZ3JvdW5kIiwiY2FwYUdyYXZhdGFyIiwiY2FwYUFkZGl0aW9uYWxBY2NvdW50cyIsImNhcGFJZGVudGl0aWVzIiwiY2FwYUF0dGFjaG1lbnRUaHVtYm5haWxzIiwiY2FwYVRlbXBsYXRlcyIsIm1haW5BdHRhY2htZW50TGltaXQiLCJCaXRMZW5ndGgxMDI0IiwidXBsb2FkRGF0YSIsInVwbG9hZERhdGFEZXNjIiwidXBsb2FkX21heF9maWxlc2l6ZSIsInBvc3RfbWF4X3NpemUiLCJ0aGVtZXNPcHRpb25zIiwib3B0VmFsdWUiLCJvcHRUZXh0IiwibGFuZ3VhZ2VGdWxsTmFtZSIsImxhbmd1YWdlQWRtaW5GdWxsTmFtZSIsImF0dGFjaG1lbnRMaW1pdFRyaWdnZXIiLCJsYW5ndWFnZVRyaWdnZXIiLCJsYW5ndWFnZUFkbWluVHJpZ2dlciIsImYxIiwiZjIiLCJmMyIsImZSZWxvYWRMYW5ndWFnZUhlbHBlciIsInNhdmVTZXR0aW5nc1N0ZXAiLCJ0cmFuc2xhdG9yUmVsb2FkIiwic2VsZWN0TGFuZ3VhZ2UiLCJzZWxlY3RMYW5ndWFnZUFkbWluIiwicGhwSW5mb0xpbmsiLCJ2aXNpYmlsaXR5IiwiZG9tYWluRm9yRGVsZXRpb24iLCJvbkRvbWFpbkxpc3RDaGFuZ2VSZXF1ZXN0Iiwib25Eb21haW5Mb2FkUmVxdWVzdCIsImNyZWF0ZURvbWFpbiIsImRlbGV0ZURvbWFpbiIsImRpc2FibGVEb21haW4iLCJvRG9tIiwiZG9tYWluSXRlbSIsImRlZmF1bHREb21haW4iLCJkdW1teSIsInBkb0RzbiIsInBkb1VzZXIiLCJlbmFibGVDb250YWN0cyIsImNvbnRhY3RzU3luYyIsInN1cHBvcnRlZFR5cGVzIiwidHlwZXMiLCJnZXRUeXBlTmFtZSIsImNvbnRhY3RzU3VwcG9ydGVkIiwiY29udGFjdHNUeXBlcyIsImNvbnRhY3RzVHlwZXNPcHRpb25zIiwiY29udGFjdHNUeXBlIiwibWFpbkNvbnRhY3RzVHlwZSIsInRlc3RDb250YWN0c1N1Y2Nlc3MiLCJ0ZXN0Q29udGFjdHNFcnJvciIsInRlc3RDb250YWN0c0Vycm9yTWVzc2FnZSIsInBkb1Bhc3N3b3JkIiwicGRvRHNuVHJpZ2dlciIsInBkb1VzZXJUcmlnZ2VyIiwicGRvUGFzc3dvcmRUcmlnZ2VyIiwiY29udGFjdHNUeXBlVHJpZ2dlciIsIm9uVGVzdENvbnRhY3RzUmVzcG9uc2UiLCJ0ZXN0Q29udGFjdHNDb21tYW5kIiwiTWVzc2FnZSIsImY0IiwiZjUiLCJhZG1pblBhc3N3b3JkIiwiY2FwYU9wZW5QR1AiLCJjYXBhVHdvRmFjdG9yQXV0aCIsImNhcGFUd29GYWN0b3JBdXRoRm9yY2UiLCJ2ZXJpZnlTc2xDZXJ0aWZpY2F0ZSIsImFsbG93U2VsZlNpZ25lZCIsImlzVHdvRmFjdG9yRHJvcHBlclNob3duIiwidHdvRmFjdG9yRHJvcHBlclVzZXIiLCJhZG1pbkxvZ2luRXJyb3IiLCJhZG1pblBhc3N3b3JkTmV3IiwiYWRtaW5QYXNzd29yZE5ldzIiLCJhZG1pblBhc3N3b3JkTmV3RXJyb3IiLCJhZG1pblBhc3N3b3JkVXBkYXRlRXJyb3IiLCJhZG1pblBhc3N3b3JkVXBkYXRlU3VjY2VzcyIsIm9uTmV3QWRtaW5QYXNzd29yZFJlc3BvbnNlIiwic2F2ZU5ld0FkbWluUGFzc3dvcmRDb21tYW5kIiwic2hvd1R3b0ZhY3RvckRyb3BwZXIiLCJXZWFrIiwiZ29vZ2xlRW5hYmxlIiwiZ29vZ2xlRW5hYmxlQXV0aCIsImdvb2dsZUVuYWJsZUF1dGhHbWFpbCIsImdvb2dsZUVuYWJsZURyaXZlIiwiZ29vZ2xlRW5hYmxlUHJldmlldyIsImdvb2dsZUVuYWJsZVJlcXVpcmVDbGllbnRTZXR0aW5ncyIsImdvb2dsZUVuYWJsZVJlcXVpcmVBcGlLZXkiLCJnb29nbGVDbGllbnRJRCIsImdvb2dsZUNsaWVudFNlY3JldCIsImdvb2dsZUFwaUtleSIsImdvb2dsZVRyaWdnZXIxIiwiZ29vZ2xlVHJpZ2dlcjIiLCJnb29nbGVUcmlnZ2VyMyIsImZhY2Vib29rU3VwcG9ydGVkIiwiZmFjZWJvb2tFbmFibGUiLCJmYWNlYm9va0FwcElEIiwiZmFjZWJvb2tBcHBTZWNyZXQiLCJmYWNlYm9va1RyaWdnZXIxIiwiZmFjZWJvb2tUcmlnZ2VyMiIsInR3aXR0ZXJFbmFibGUiLCJ0d2l0dGVyQ29uc3VtZXJLZXkiLCJ0d2l0dGVyQ29uc3VtZXJTZWNyZXQiLCJ0d2l0dGVyVHJpZ2dlcjEiLCJ0d2l0dGVyVHJpZ2dlcjIiLCJkcm9wYm94RW5hYmxlIiwiZHJvcGJveEFwaUtleSIsImRyb3Bib3hUcmlnZ2VyMSIsImY2IiwiZjciLCJmOCIsImVuYWJsZWRQbHVnaW5zIiwicGx1Z2luc0Vycm9yIiwib25QbHVnaW5Mb2FkUmVxdWVzdCIsIm9uUGx1Z2luRGlzYWJsZVJlcXVlc3QiLCJkaXNhYmxlUGx1Z2luIiwiY29uZmlndXJlUGx1Z2luIiwicGFja2FnZXNFcnJvciIsInBhY2thZ2VzQ3VycmVudCIsImluc3RhbGxlZCIsImNvbXBhcmUiLCJwYWNrYWdlc0F2YWlsYWJsZUZvclVwZGF0ZSIsInBhY2thZ2VzQXZhaWxhYmxlRm9ySW5zdGFsbGF0aW9uIiwicmVxdWVzdEhlbHBlciIsInBhY2thZ2VUb1JlcXVlc3QiLCJpbnN0YWxsIiwiUmVsb2FkIiwiZGVsZXRlUGFja2FnZSIsInBhY2thZ2VUb0RlbGV0ZSIsImluc3RhbGxQYWNrYWdlIiwicGFja2FnZVRvSW5zdGFsbCIsInZlcnNpb24iLCJhY2Nlc3MiLCJlcnJvckRlc2MiLCJjb3JlUmVtb3RlVmVyc2lvbkh0bWxEZXNjIiwidHJhbnNsYXRvclRyaWdnZXIiLCJzdGF0dXNUeXBlIiwidmVyc2lvblRvQ29tcGFyZSIsImlzQ2hlY2tpbmciLCJpc1VwZGF0aW5nIiwiaXNSZWFsIiwiZG9tIiwiYWRtaW5Eb21haW4iLCJhZG1pbk1hbkxvYWRpbmciLCJhZG1pbk1hbkxvYWRpbmdWaXNpYmlsaXR5IiwibG9nb3V0Q2xpY2siLCJMb2dpbkFkbWluVmlldyIsInN1Ym1pdFJlcXVlc3QiLCJtb2JpbGVEZXZpY2UiLCJoaWRlU3VibWl0QnV0dG9uIiwibG9naW4iLCJwYXNzd29yZCIsImxvZ2luRXJyb3IiLCJwYXNzd29yZEVycm9yIiwibG9naW5FcnJvckFuaW1hdGlvbiIsInBhc3N3b3JkRXJyb3JBbmltYXRpb24iLCJsb2dpbkZvY3VzIiwiZm9ybUhpZGRlbiIsImZvcm1FcnJvciIsInN1Ym1pdEVycm9yIiwic3VibWl0Q29tbWFuZCIsInN1Ym1pdEZvcm0iLCJib290c3RyYXAiLCJEb21haW5BbGlhc1BvcHVwVmlldyIsImRvbWFpbnNPcHRpb25zIiwib25Eb21haW5BbGlhc0NyZWF0ZU9yU2F2ZVJlc3BvbnNlIiwiUGx1Z2luUG9wdXBWaWV3IiwiaGFzQ29uZmlndXJhdGlvbiIsIm9uUGx1Z2luU2V0dGluZ3NVcGRhdGVSZXNwb25zZSIsInNhdmVFcnJvciIsInJlYWRtZSIsImNvbmZpZ3VyZXMiLCJoYXNSZWFkbWUiLCJyZWFkbWVQb3BvdmVyQ29uZiIsInRyeVRvQ2xvc2VQb3B1cCIsInNhdmVDb21tYW5kIiwib1BsdWdpbiIsIlJlYWRtZSIsIkNvbmZpZyIsIlBvcHVwc0Fza1ZpZXdNb2RlbCIsIkJyYW5kaW5nQWRtaW5TZXR0aW5ncyIsImxvYWRpbmdEZXNjIiwiZmF2aWNvblVybCIsImxvZ2luTG9nbyIsImxvZ2luQmFja2dyb3VuZCIsInVzZXJMb2dvIiwidXNlckxvZ29NZXNzYWdlIiwidXNlcklmcmFtZU1lc3NhZ2UiLCJ1c2VyTG9nb1RpdGxlIiwibG9naW5EZXNjcmlwdGlvbiIsImxvZ2luQ3NzIiwidXNlckNzcyIsIndlbGNvbWVQYWdlVXJsIiwid2VsY29tZVBhZ2VEaXNwbGF5Il0sIm1hcHBpbmdzIjoiO1FBQUE7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7OztRQUdBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7UUFDQSwwQ0FBMEMsZ0NBQWdDO1FBQzFFO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0Esd0RBQXdELGtCQUFrQjtRQUMxRTtRQUNBLGlEQUFpRCxjQUFjO1FBQy9EOztRQUVBO1FBQ0E7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O0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTOztBQUVUO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLOzs7QUFHTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNENBQTRDLDhDQUE4Qzs7QUFFMUY7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLE9BQU87QUFDMUI7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDZCQUE2QixRQUFRO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTs7QUFFQSxzQkFBc0IsNEJBQTRCO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQSxLQUFLOzs7QUFHTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxnREFBZ0Q7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDREQUE0RDtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQzs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTOztBQUVUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx3REFBd0QsZ0JBQWdCO0FBQ3hFOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxvREFBb0QsZ0JBQWdCO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTOztBQUVUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsU0FBUzs7QUFFVDs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTs7QUFFQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQTtBQUNBLDJCQUEyQiw0QkFBNEI7QUFDdkQ7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQSxTQUFTOztBQUVUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTOztBQUVUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQTtBQUNBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBO0FBQ0E7QUFDQSxTQUFTOztBQUVUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsMkJBQTJCLHlCQUF5QjtBQUNwRDtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTOztBQUVUO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLFdBQVc7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQTtBQUNBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHNEQUFzRDtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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Q2cvQyxFQUFFLEdBQUdwb0MscUZBQWdDLENBQUMsS0FBSSxDQUFDc3lDLFVBQUwsQ0FBZ0JscEQsT0FBakIsRUFBMEIsS0FBMUIsQ0FGdEM7O0FBSUEsV0FBSSxDQUFDaUQsS0FBTCxDQUFXL0YsU0FBWCxDQUFxQixVQUFDb0QsS0FBRCxFQUFXO0FBQy9CcTFDLHlFQUFNLENBQUMxK0IsZUFBUCxDQUF1QjZuQyxFQUF2QixFQUEyQjtBQUMxQixtQkFBU3Z5Qyx5REFBSSxDQUFDak0sS0FBRDtBQURhLFNBQTNCO0FBR0EsT0FKRDs7QUFNQSxXQUFJLENBQUMyb0QsV0FBTCxDQUFpQi9yRCxTQUFqQixDQUEyQixVQUFDb0QsS0FBRCxFQUFXO0FBQ3JDcTFDLHlFQUFNLENBQUMxK0IsZUFBUCxDQUF1QjhuQyxFQUF2QixFQUEyQjtBQUMxQixnQ0FBc0J4eUMseURBQUksQ0FBQ2pNLEtBQUQ7QUFEQSxTQUEzQjtBQUdBLE9BSkQ7O0FBTUEsV0FBSSxDQUFDNG9ELFVBQUwsQ0FBZ0Joc0QsU0FBaEIsQ0FBMEIsVUFBQ29ELEtBQUQsRUFBVztBQUNwQ3ExQyx5RUFBTSxDQUFDMStCLGVBQVAsQ0FBdUIrbkMsRUFBdkIsRUFBMkI7QUFDMUIsd0JBQWN6eUMseURBQUksQ0FBQ2pNLEtBQUQ7QUFEUSxTQUEzQjtBQUdBLE9BSkQ7QUFLQSxLQXRCRCxFQXNCR3pGLG1EQUFNLENBQUNpM0MsUUF0QlY7QUF1QkEsRyIsImZpbGUiOiJqcy9hZG1pbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwicmFpbmxvb3Avdi8wLjAuMC9zdGF0aWMvanMvXCI7XG5cblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSA1NjEpO1xuIiwiLyogZXNsaW50IHF1b3RlLXByb3BzOiAwICovXG5cbi8qKlxuICogQGVudW0ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGNvbnN0IEZpbGVUeXBlID0ge1xuXHQnVW5rbm93bic6ICd1bmtub3duJyxcblx0J1RleHQnOiAndGV4dCcsXG5cdCdIdG1sJzogJ2h0bWwnLFxuXHQnQ29kZSc6ICdjb2RlJyxcblx0J0VtbCc6ICdlbWwnLFxuXHQnV29yZFRleHQnOiAnd29yZC10ZXh0Jyxcblx0J1BkZic6ICdwZGYnLFxuXHQnSW1hZ2UnOiAnaW1hZ2UnLFxuXHQnQXVkaW8nOiAnYXVkaW8nLFxuXHQnVmlkZW8nOiAndmlkZW8nLFxuXHQnU2hlZXQnOiAnc2hlZXQnLFxuXHQnUHJlc2VudGF0aW9uJzogJ3ByZXNlbnRhdGlvbicsXG5cdCdDZXJ0aWZpY2F0ZSc6ICdjZXJ0aWZpY2F0ZScsXG5cdCdDZXJ0aWZpY2F0ZUJpbic6ICdjZXJ0aWZpY2F0ZS1iaW4nLFxuXHQnQXJjaGl2ZSc6ICdhcmNoaXZlJ1xufTtcblxuLyoqXG4gKiBAZW51bSB7c3RyaW5nfVxuICovXG5leHBvcnQgY29uc3QgU3RvcmFnZVJlc3VsdFR5cGUgPSB7XG5cdCdTdWNjZXNzJzogJ3N1Y2Nlc3MnLFxuXHQnQWJvcnQnOiAnYWJvcnQnLFxuXHQnRXJyb3InOiAnZXJyb3InLFxuXHQnVW5sb2FkJzogJ3VubG9hZCdcbn07XG5cbi8qKlxuICogQGVudW0ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGNvbnN0IEZvY3VzZWQgPSB7XG5cdCdOb25lJzogJ25vbmUnLFxuXHQnTWVzc2FnZUxpc3QnOiAnbWVzc2FnZS1saXN0Jyxcblx0J01lc3NhZ2VWaWV3JzogJ21lc3NhZ2UtdmlldycsXG5cdCdGb2xkZXJMaXN0JzogJ2ZvbGRlci1saXN0J1xufTtcblxuLyoqXG4gKiBAZW51bSB7bnVtYmVyfVxuICovXG5leHBvcnQgY29uc3QgU3RhdGUgPSB7XG5cdCdFbXB0eSc6IDEwLFxuXHQnTG9naW4nOiAyMCxcblx0J0F1dGgnOiAzMFxufTtcblxuLyoqXG4gKiBAZW51bSB7bnVtYmVyfVxuICovXG5leHBvcnQgY29uc3QgU3RhdGVUeXBlID0ge1xuXHQnV2VibWFpbCc6IDAsXG5cdCdBZG1pbic6IDFcbn07XG5cbi8qKlxuICogQGVudW0ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGNvbnN0IENhcGEgPSB7XG5cdCdUd29GYWN0b3InOiAnVFdPX0ZBQ1RPUicsXG5cdCdUd29GYWN0b3JGb3JjZSc6ICdUV09fRkFDVE9SX0ZPUkNFJyxcblx0J09wZW5QR1AnOiAnT1BFTl9QR1AnLFxuXHQnUHJlZmV0Y2gnOiAnUFJFRkVUQ0gnLFxuXHQnR3JhdmF0YXInOiAnR1JBVkFUQVInLFxuXHQnRm9sZGVycyc6ICdGT0xERVJTJyxcblx0J0NvbXBvc2VyJzogJ0NPTVBPU0VSJyxcblx0J0NvbnRhY3RzJzogJ0NPTlRBQ1RTJyxcblx0J1JlbG9hZCc6ICdSRUxPQUQnLFxuXHQnU2VhcmNoJzogJ1NFQVJDSCcsXG5cdCdTZWFyY2hBZHYnOiAnU0VBUkNIX0FEVicsXG5cdCdNZXNzYWdlQWN0aW9ucyc6ICdNRVNTQUdFX0FDVElPTlMnLFxuXHQnTWVzc2FnZUxpc3RBY3Rpb25zJzogJ01FU1NBR0VMSVNUX0FDVElPTlMnLFxuXHQnQXR0YWNobWVudHNBY3Rpb25zJzogJ0FUVEFDSE1FTlRTX0FDVElPTlMnLFxuXHQnRGFuZ2Vyb3VzQWN0aW9ucyc6ICdEQU5HRVJPVVNfQUNUSU9OUycsXG5cdCdTZXR0aW5ncyc6ICdTRVRUSU5HUycsXG5cdCdIZWxwJzogJ0hFTFAnLFxuXHQnVGhlbWVzJzogJ1RIRU1FUycsXG5cdCdVc2VyQmFja2dyb3VuZCc6ICdVU0VSX0JBQ0tHUk9VTkQnLFxuXHQnU2lldmUnOiAnU0lFVkUnLFxuXHQnRmlsdGVycyc6ICdGSUxURVJTJyxcblx0J0F0dGFjaG1lbnRUaHVtYm5haWxzJzogJ0FUVEFDSE1FTlRfVEhVTUJOQUlMUycsXG5cdCdUZW1wbGF0ZXMnOiAnVEVNUExBVEVTJyxcblx0J0F1dG9Mb2dvdXQnOiAnQVVUT0xPR09VVCcsXG5cdCdBZGRpdGlvbmFsQWNjb3VudHMnOiAnQURESVRJT05BTF9BQ0NPVU5UUycsXG5cdCdJZGVudGl0aWVzJzogJ0lERU5USVRJRVMnXG59O1xuXG4vKipcbiAqIEBlbnVtIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBLZXlTdGF0ZSA9IHtcblx0J0FsbCc6ICdhbGwnLFxuXHQnTm9uZSc6ICdub25lJyxcblx0J0NvbnRhY3RMaXN0JzogJ2NvbnRhY3QtbGlzdCcsXG5cdCdNZXNzYWdlTGlzdCc6ICdtZXNzYWdlLWxpc3QnLFxuXHQnRm9sZGVyTGlzdCc6ICdmb2xkZXItbGlzdCcsXG5cdCdNZXNzYWdlVmlldyc6ICdtZXNzYWdlLXZpZXcnLFxuXHQnQ29tcG9zZSc6ICdjb21wb3NlJyxcblx0J1NldHRpbmdzJzogJ3NldHRpbmdzJyxcblx0J01lbnUnOiAnbWVudScsXG5cdCdQb3B1cENvbXBvc2VPcGVuUEdQJzogJ2NvbXBvc2Utb3Blbi1wZ3AnLFxuXHQnUG9wdXBNZXNzYWdlT3BlblBHUCc6ICdtZXNzYWdlLW9wZW4tcGdwJyxcblx0J1BvcHVwVmlld09wZW5QR1AnOiAndmlldy1vcGVuLXBncCcsXG5cdCdQb3B1cEtleWJvYXJkU2hvcnRjdXRzSGVscCc6ICdwb3B1cC1rZXlib2FyZC1zaG9ydGN1dHMtaGVscCcsXG5cdCdQb3B1cEFzayc6ICdwb3B1cC1hc2snXG59O1xuXG4vKipcbiAqIEBlbnVtIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBjb25zdCBGb2xkZXJUeXBlID0ge1xuXHQnSW5ib3gnOiAxMCxcblx0J1NlbnRJdGVtcyc6IDExLFxuXHQnRHJhZnQnOiAxMixcblx0J1RyYXNoJzogMTMsXG5cdCdTcGFtJzogMTQsXG5cdCdBcmNoaXZlJzogMTUsXG5cdCdOb3RTcGFtJzogODAsXG5cdCdVc2VyJzogOTlcbn07XG5cbi8qKlxuICogQGVudW0ge251bWJlcn1cbiAqL1xuZXhwb3J0IGNvbnN0IFNlcnZlckZvbGRlclR5cGUgPSB7XG5cdCdVU0VSJzogMCxcblx0J0lOQk9YJzogMSxcblx0J1NFTlQnOiAyLFxuXHQnRFJBRlRTJzogMyxcblx0J0pVTksnOiA0LFxuXHQnVFJBU0gnOiA1LFxuXHQnSU1QT1JUQU5UJzogMTAsXG5cdCdGTEFHR0VEJzogMTEsXG5cdCdBTEwnOiAxMlxufTtcblxuLyoqXG4gKiBAZW51bSB7c3RyaW5nfVxuICovXG5leHBvcnQgY29uc3QgTG9naW5TaWduTWVUeXBlQXNTdHJpbmcgPSB7XG5cdCdEZWZhdWx0T2ZmJzogJ2RlZmF1bHRvZmYnLFxuXHQnRGVmYXVsdE9uJzogJ2RlZmF1bHRvbicsXG5cdCdVbnVzZWQnOiAndW51c2VkJ1xufTtcblxuLyoqXG4gKiBAZW51bSB7bnVtYmVyfVxuICovXG5leHBvcnQgY29uc3QgTG9naW5TaWduTWVUeXBlID0ge1xuXHQnRGVmYXVsdE9mZic6IDAsXG5cdCdEZWZhdWx0T24nOiAxLFxuXHQnVW51c2VkJzogMlxufTtcblxuLyoqXG4gKiBAZW51bSB7c3RyaW5nfVxuICovXG5leHBvcnQgY29uc3QgQ29tcG9zZVR5cGUgPSB7XG5cdCdFbXB0eSc6ICdlbXB0eScsXG5cdCdSZXBseSc6ICdyZXBseScsXG5cdCdSZXBseUFsbCc6ICdyZXBseWFsbCcsXG5cdCdGb3J3YXJkJzogJ2ZvcndhcmQnLFxuXHQnRm9yd2FyZEFzQXR0YWNobWVudCc6ICdmb3J3YXJkLWFzLWF0dGFjaG1lbnQnLFxuXHQnRHJhZnQnOiAnZHJhZnQnLFxuXHQnRWRpdEFzTmV3JzogJ2VkaXRhc25ldydcbn07XG5cbi8qKlxuICogQGVudW0ge251bWJlcn1cbiAqL1xuZXhwb3J0IGNvbnN0IFVwbG9hZEVycm9yQ29kZSA9IHtcblx0J05vcm1hbCc6IDAsXG5cdCdGaWxlSXNUb29CaWcnOiAxLFxuXHQnRmlsZVBhcnRpYWxseVVwbG9hZGVkJzogMixcblx0J0ZpbGVOb1VwbG9hZGVkJzogMyxcblx0J01pc3NpbmdUZW1wRm9sZGVyJzogNCxcblx0J0ZpbGVPblNhdmVpbmdFcnJvcic6IDUsXG5cdCdGaWxlVHlwZSc6IDk4LFxuXHQnVW5rbm93bic6IDk5XG59O1xuXG4vKipcbiAqIEBlbnVtIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBjb25zdCBTZXRTeXN0ZW1Gb2xkZXJzTm90aWZpY2F0aW9uID0ge1xuXHQnTm9uZSc6IDAsXG5cdCdTZW50JzogMSxcblx0J0RyYWZ0JzogMixcblx0J1NwYW0nOiAzLFxuXHQnVHJhc2gnOiA0LFxuXHQnQXJjaGl2ZSc6IDVcbn07XG5cbi8qKlxuICogQGVudW0ge251bWJlcn1cbiAqL1xuZXhwb3J0IGNvbnN0IENsaWVudFNpZGVLZXlOYW1lID0ge1xuXHQnRm9sZGVyc0xhc2hIYXNoJzogMCxcblx0J01lc3NhZ2VzSW5ib3hMYXN0SGFzaCc6IDEsXG5cdCdNYWlsQm94TGlzdFNpemUnOiAyLFxuXHQnRXhwYW5kZWRGb2xkZXJzJzogMyxcblx0J0ZvbGRlckxpc3RTaXplJzogNCxcblx0J01lc3NhZ2VMaXN0U2l6ZSc6IDUsXG5cdCdMYXN0UmVwbHlBY3Rpb24nOiA2LFxuXHQnTGFzdFNpZ25NZSc6IDcsXG5cdCdDb21wb3NlTGFzdElkZW50aXR5SUQnOiA4LFxuXHQnTWVzc2FnZUhlYWRlckZ1bGxJbmZvJzogOSxcblx0J01lc3NhZ2VBdHRhY2htbmV0Q29udHJvbHMnOiAxMFxufTtcblxuLyoqXG4gKiBAZW51bSB7bnVtYmVyfVxuICovXG5leHBvcnQgY29uc3QgRXZlbnRLZXlDb2RlID0ge1xuXHQnQmFja3NwYWNlJzogOCxcblx0J1RhYic6IDksXG5cdCdFbnRlcic6IDEzLFxuXHQnRXNjJzogMjcsXG5cdCdQYWdlVXAnOiAzMyxcblx0J1BhZ2VEb3duJzogMzQsXG5cdCdMZWZ0JzogMzcsXG5cdCdSaWdodCc6IDM5LFxuXHQnVXAnOiAzOCxcblx0J0Rvd24nOiA0MCxcblx0J0VuZCc6IDM1LFxuXHQnSG9tZSc6IDM2LFxuXHQnU3BhY2UnOiAzMixcblx0J0luc2VydCc6IDQ1LFxuXHQnRGVsZXRlJzogNDYsXG5cdCdBJzogNjUsXG5cdCdTJzogODNcbn07XG5cbi8qKlxuICogQGVudW0ge251bWJlcn1cbiAqL1xuZXhwb3J0IGNvbnN0IE1lc3NhZ2VTZXRBY3Rpb24gPSB7XG5cdCdTZXRTZWVuJzogMCxcblx0J1Vuc2V0U2Vlbic6IDEsXG5cdCdTZXRGbGFnJzogMixcblx0J1Vuc2V0RmxhZyc6IDNcbn07XG5cbi8qKlxuICogQGVudW0ge251bWJlcn1cbiAqL1xuZXhwb3J0IGNvbnN0IE1lc3NhZ2VTZWxlY3RBY3Rpb24gPSB7XG5cdCdBbGwnOiAwLFxuXHQnTm9uZSc6IDEsXG5cdCdJbnZlcnQnOiAyLFxuXHQnVW5zZWVuJzogMyxcblx0J1NlZW4nOiA0LFxuXHQnRmxhZ2dlZCc6IDUsXG5cdCdVbmZsYWdnZWQnOiA2XG59O1xuXG4vKipcbiAqIEBlbnVtIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBjb25zdCBEZXNrdG9wTm90aWZpY2F0aW9uID0ge1xuXHQnQWxsb3dlZCc6IDAsXG5cdCdOb3RBbGxvd2VkJzogMSxcblx0J0RlbmllZCc6IDIsXG5cdCdOb3RTdXBwb3J0ZWQnOiA5XG59O1xuXG4vKipcbiAqIEBlbnVtIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBjb25zdCBNZXNzYWdlUHJpb3JpdHkgPSB7XG5cdCdMb3cnOiA1LFxuXHQnTm9ybWFsJzogMyxcblx0J0hpZ2gnOiAxXG59O1xuXG4vKipcbiAqIEBlbnVtIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBFZGl0b3JEZWZhdWx0VHlwZSA9IHtcblx0J0h0bWwnOiAnSHRtbCcsXG5cdCdQbGFpbic6ICdQbGFpbicsXG5cdCdIdG1sRm9yY2VkJzogJ0h0bWxGb3JjZWQnLFxuXHQnUGxhaW5Gb3JjZWQnOiAnUGxhaW5Gb3JjZWQnXG59O1xuXG4vKipcbiAqIEBlbnVtIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBjb25zdCBTZXJ2ZXJTZWN1cmUgPSB7XG5cdCdOb25lJzogMCxcblx0J1NTTCc6IDEsXG5cdCdUTFMnOiAyXG59O1xuXG4vKipcbiAqIEBlbnVtIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBjb25zdCBTZWFyY2hEYXRlVHlwZSA9IHtcblx0J0FsbCc6IC0xLFxuXHQnRGF5czMnOiAzLFxuXHQnRGF5czcnOiA3LFxuXHQnTW9udGgnOiAzMFxufTtcblxuLyoqXG4gKiBAZW51bSB7bnVtYmVyfVxuICovXG5leHBvcnQgY29uc3QgU2F2ZVNldHRpbmdzU3RlcCA9IHtcblx0J0FuaW1hdGUnOiAtMixcblx0J0lkbGUnOiAtMSxcblx0J1RydWVSZXN1bHQnOiAxLFxuXHQnRmFsc2VSZXN1bHQnOiAwXG59O1xuXG4vKipcbiAqIEBlbnVtIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBjb25zdCBMYXlvdXQgPSB7XG5cdCdOb1ByZXZpZXcnOiAwLFxuXHQnU2lkZVByZXZpZXcnOiAxLFxuXHQnQm90dG9tUHJldmlldyc6IDJcbn07XG5cbi8qKlxuICogQGVudW0ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGNvbnN0IEZpbHRlckNvbmRpdGlvbkZpZWxkID0ge1xuXHQnRnJvbSc6ICdGcm9tJyxcblx0J1JlY2lwaWVudCc6ICdSZWNpcGllbnQnLFxuXHQnU3ViamVjdCc6ICdTdWJqZWN0Jyxcblx0J0hlYWRlcic6ICdIZWFkZXInLFxuXHQnU2l6ZSc6ICdTaXplJ1xufTtcblxuLyoqXG4gKiBAZW51bSB7c3RyaW5nfVxuICovXG5leHBvcnQgY29uc3QgRmlsdGVyQ29uZGl0aW9uVHlwZSA9IHtcblx0J0NvbnRhaW5zJzogJ0NvbnRhaW5zJyxcblx0J05vdENvbnRhaW5zJzogJ05vdENvbnRhaW5zJyxcblx0J0VxdWFsVG8nOiAnRXF1YWxUbycsXG5cdCdOb3RFcXVhbFRvJzogJ05vdEVxdWFsVG8nLFxuXHQnUmVnZXgnOiAnUmVnZXgnLFxuXHQnT3Zlcic6ICdPdmVyJyxcblx0J1VuZGVyJzogJ1VuZGVyJ1xufTtcblxuLyoqXG4gKiBAZW51bSB7c3RyaW5nfVxuICovXG5leHBvcnQgY29uc3QgRmlsdGVyc0FjdGlvbiA9IHtcblx0J05vbmUnOiAnTm9uZScsXG5cdCdNb3ZlVG8nOiAnTW92ZVRvJyxcblx0J0Rpc2NhcmQnOiAnRGlzY2FyZCcsXG5cdCdWYWNhdGlvbic6ICdWYWNhdGlvbicsXG5cdCdSZWplY3QnOiAnUmVqZWN0Jyxcblx0J0ZvcndhcmQnOiAnRm9yd2FyZCdcbn07XG5cbi8qKlxuICogQGVudW0ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGNvbnN0IEZpbHRlclJ1bGVzVHlwZSA9IHtcblx0J0FsbCc6ICdBbGwnLFxuXHQnQW55JzogJ0FueSdcbn07XG5cbi8qKlxuICogQGVudW0ge251bWJlcn1cbiAqL1xuZXhwb3J0IGNvbnN0IFNpZ25lZFZlcmlmeVN0YXR1cyA9IHtcblx0J1Vua25vd25QdWJsaWNLZXlzJzogLTQsXG5cdCdVbmtub3duUHJpdmF0ZUtleSc6IC0zLFxuXHQnVW52ZXJpZmllZCc6IC0yLFxuXHQnRXJyb3InOiAtMSxcblx0J05vbmUnOiAwLFxuXHQnU3VjY2Vzcyc6IDFcbn07XG5cbi8qKlxuICogQGVudW0ge251bWJlcn1cbiAqL1xuZXhwb3J0IGNvbnN0IENvbnRhY3RQcm9wZXJ0eVR5cGUgPSB7XG5cdCdVbmtub3duJzogMCxcblxuXHQnRnVsbE5hbWUnOiAxMCxcblxuXHQnRmlyc3ROYW1lJzogMTUsXG5cdCdMYXN0TmFtZSc6IDE2LFxuXHQnTWlkZGxlTmFtZSc6IDE2LFxuXHQnTmljayc6IDE4LFxuXG5cdCdOYW1lUHJlZml4JzogMjAsXG5cdCdOYW1lU3VmZml4JzogMjEsXG5cblx0J0VtYWlsJzogMzAsXG5cdCdQaG9uZSc6IDMxLFxuXHQnV2ViJzogMzIsXG5cblx0J0JpcnRoZGF5JzogNDAsXG5cblx0J0ZhY2Vib29rJzogOTAsXG5cdCdTa3lwZSc6IDkxLFxuXHQnR2l0SHViJzogOTIsXG5cblx0J05vdGUnOiAxMTAsXG5cblx0J0N1c3RvbSc6IDI1MFxufTtcblxuLyoqXG4gKiBAZW51bSB7bnVtYmVyfVxuICovXG5leHBvcnQgY29uc3QgTWFnaWNzID0ge1xuXHQnRXZlbnRXaGljaE1vdXNlTWlkZGxlJzogMyxcblx0J2lmdmlzaWJsZUlkbGUxMHMnOiAxMCxcblxuXHQnQml0TGVuZ3RoMjA0OCc6IDIwNDgsXG5cdCdCaXRMZW5ndGgxMDI0JzogMTAyNCxcblxuXHQnU2l6ZTM1MHB4JzogMzUwLFxuXHQnU2l6ZTUwcHgnOiA1MCxcblx0J1NpemUyMHB4JzogMjAsXG5cdCdTaXplMXB4JzogMSxcblxuXHQnVGltZTMwbUluTWluJzogMzAsXG5cblx0J1RpbWU2MG0nOiA2MDAwMCAqIDYwLFxuXHQnVGltZTMwbSc6IDYwMDAwICogMzAsXG5cdCdUaW1lMjBtJzogNjAwMDAgKiAyMCxcblx0J1RpbWUxNW0nOiA2MDAwMCAqIDE1LFxuXHQnVGltZTEwbSc6IDYwMDAwICogMTAsXG5cdCdUaW1lNW0nOiA2MDAwMCAqIDUsXG5cdCdUaW1lM20nOiA2MDAwMCAqIDMsXG5cdCdUaW1lMm0nOiA2MDAwMCAqIDIsXG5cdCdUaW1lMW0nOiA2MDAwMCxcblx0J1RpbWUzMHMnOiAzMDAwMCxcblx0J1RpbWUxMHMnOiAxMDAwMCxcblx0J1RpbWU3cyc6IDcwMDAsXG5cdCdUaW1lNXMnOiA1MDAwLFxuXHQnVGltZTNzJzogMzAwMCxcblx0J1RpbWUxcyc6IDEwMDAsXG5cdCdUaW1lNTAwbXMnOiA1MDAsXG5cdCdUaW1lMzUwbXMnOiAzNTAsXG5cdCdUaW1lMjUwbXMnOiAyNTAsXG5cdCdUaW1lMjAwbXMnOiAyMDAsXG5cdCdUaW1lMTAwbXMnOiAxMDAsXG5cdCdUaW1lNTBtcyc6IDUwLFxuXHQnVGltZTIwbXMnOiAyMCxcblx0J1RpbWUxMG1zJzogMTAsXG5cdCdUaW1lMW1zJzogMVxufTtcblxuLyoqXG4gKiBAZW51bSB7bnVtYmVyfVxuICovXG5leHBvcnQgY29uc3QgUG9ydHMgPSB7XG5cdCdJbWFwJzogMTQzLFxuXHQnSW1hcFNzbCc6IDk5Myxcblx0J1NtdHAnOiAyNSxcblx0J1NtdHBTc2wnOiA0NjUsXG5cdCdTbXRwU3RhcnRUbHMnOiA1ODdcbn07XG5cbi8qKlxuICogQGVudW0ge251bWJlcn1cbiAqL1xuZXhwb3J0IGNvbnN0IE5vdGlmaWNhdGlvbiA9IHtcblx0J0ludmFsaWRUb2tlbic6IDEwMSxcblx0J0F1dGhFcnJvcic6IDEwMixcblx0J0FjY2Vzc0Vycm9yJzogMTAzLFxuXHQnQ29ubmVjdGlvbkVycm9yJzogMTA0LFxuXHQnQ2FwdGNoYUVycm9yJzogMTA1LFxuXHQnU29jaWFsRmFjZWJvb2tMb2dpbkFjY2Vzc0Rpc2FibGUnOiAxMDYsXG5cdCdTb2NpYWxUd2l0dGVyTG9naW5BY2Nlc3NEaXNhYmxlJzogMTA3LFxuXHQnU29jaWFsR29vZ2xlTG9naW5BY2Nlc3NEaXNhYmxlJzogMTA4LFxuXHQnRG9tYWluTm90QWxsb3dlZCc6IDEwOSxcblx0J0FjY291bnROb3RBbGxvd2VkJzogMTEwLFxuXG5cdCdBY2NvdW50VHdvRmFjdG9yQXV0aFJlcXVpcmVkJzogMTIwLFxuXHQnQWNjb3VudFR3b0ZhY3RvckF1dGhFcnJvcic6IDEyMSxcblxuXHQnQ291bGROb3RTYXZlTmV3UGFzc3dvcmQnOiAxMzAsXG5cdCdDdXJyZW50UGFzc3dvcmRJbmNvcnJlY3QnOiAxMzEsXG5cdCdOZXdQYXNzd29yZFNob3J0JzogMTMyLFxuXHQnTmV3UGFzc3dvcmRXZWFrJzogMTMzLFxuXHQnTmV3UGFzc3dvcmRGb3JiaWRkZW4nOiAxMzQsXG5cblx0J0NvbnRhY3RzU3luY0Vycm9yJzogMTQwLFxuXG5cdCdDYW50R2V0TWVzc2FnZUxpc3QnOiAyMDEsXG5cdCdDYW50R2V0TWVzc2FnZSc6IDIwMixcblx0J0NhbnREZWxldGVNZXNzYWdlJzogMjAzLFxuXHQnQ2FudE1vdmVNZXNzYWdlJzogMjA0LFxuXHQnQ2FudENvcHlNZXNzYWdlJzogMjA1LFxuXG5cdCdDYW50U2F2ZU1lc3NhZ2UnOiAzMDEsXG5cdCdDYW50U2VuZE1lc3NhZ2UnOiAzMDIsXG5cdCdJbnZhbGlkUmVjaXBpZW50cyc6IDMwMyxcblxuXHQnQ2FudFNhdmVGaWx0ZXJzJzogMzUxLFxuXHQnQ2FudEdldEZpbHRlcnMnOiAzNTIsXG5cdCdGaWx0ZXJzQXJlTm90Q29ycmVjdCc6IDM1NSxcblxuXHQnQ2FudENyZWF0ZUZvbGRlcic6IDQwMCxcblx0J0NhbnRSZW5hbWVGb2xkZXInOiA0MDEsXG5cdCdDYW50RGVsZXRlRm9sZGVyJzogNDAyLFxuXHQnQ2FudFN1YnNjcmliZUZvbGRlcic6IDQwMyxcblx0J0NhbnRVbnN1YnNjcmliZUZvbGRlcic6IDQwNCxcblx0J0NhbnREZWxldGVOb25FbXB0eUZvbGRlcic6IDQwNSxcblxuXHQnQ2FudFNhdmVTZXR0aW5ncyc6IDUwMSxcblx0J0NhbnRTYXZlUGx1Z2luU2V0dGluZ3MnOiA1MDIsXG5cblx0J0RvbWFpbkFscmVhZHlFeGlzdHMnOiA2MDEsXG5cblx0J0NhbnRJbnN0YWxsUGFja2FnZSc6IDcwMSxcblx0J0NhbnREZWxldGVQYWNrYWdlJzogNzAyLFxuXHQnSW52YWxpZFBsdWdpblBhY2thZ2UnOiA3MDMsXG5cdCdVbnN1cHBvcnRlZFBsdWdpblBhY2thZ2UnOiA3MDQsXG5cblx0J0xpY2Vuc2luZ1NlcnZlcklzVW5hdmFpbGFibGUnOiA3MTAsXG5cdCdMaWNlbnNpbmdFeHBpcmVkJzogNzExLFxuXHQnTGljZW5zaW5nQmFubmVkJzogNzEyLFxuXG5cdCdEZW1vU2VuZE1lc3NhZ2VFcnJvcic6IDc1MCxcblx0J0RlbW9BY2NvdW50RXJyb3InOiA3NTEsXG5cblx0J0FjY291bnRBbHJlYWR5RXhpc3RzJzogODAxLFxuXHQnQWNjb3VudERvZXNOb3RFeGlzdCc6IDgwMixcblxuXHQnTWFpbFNlcnZlckVycm9yJzogOTAxLFxuXHQnQ2xpZW50Vmlld0Vycm9yJzogOTAyLFxuXHQnSW52YWxpZElucHV0QXJndW1lbnQnOiA5MDMsXG5cblx0J0FqYXhGYWxzZSc6IDk1MCxcblx0J0FqYXhBYm9ydCc6IDk1MSxcblx0J0FqYXhQYXJzZSc6IDk1Mixcblx0J0FqYXhUaW1lb3V0JzogOTUzLFxuXG5cdCdVbmtub3duTm90aWZpY2F0aW9uJzogOTk5LFxuXHQnVW5rbm93bkVycm9yJzogOTk5XG59O1xuIiwiaW1wb3J0IHdpbmRvdyBmcm9tICd3aW5kb3cnO1xuaW1wb3J0IF8gZnJvbSAnXyc7XG5pbXBvcnQgJCBmcm9tICckJztcbmltcG9ydCBPcGVudGlwIGZyb20gJ09wZW50aXAnO1xuaW1wb3J0IFBpa2FkYXkgZnJvbSAncGlrYWRheSc7XG5cbmltcG9ydCB7IFNhdmVTZXR0aW5nc1N0ZXAsIE1hZ2ljcyB9IGZyb20gJ0NvbW1vbi9FbnVtcyc7XG5cbmNvbnN0IGtvID0gd2luZG93LmtvLFxuXHQkd2luID0gJCh3aW5kb3cpLFxuXHRmRGlzcG9zYWxUb29sdGlwSGVscGVyID0gKGVsZW1lbnQpID0+IHtcblx0XHRrby51dGlscy5kb21Ob2RlRGlzcG9zYWwuYWRkRGlzcG9zZUNhbGxiYWNrKGVsZW1lbnQsICgpID0+IHtcblx0XHRcdGlmIChlbGVtZW50ICYmIGVsZW1lbnQuX19vcGVudGlwKSB7XG5cdFx0XHRcdGVsZW1lbnQuX19vcGVudGlwLmRlYWN0aXZhdGUoKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fTtcblxua28uYmluZGluZ0hhbmRsZXJzLnVwZGF0ZVdpZHRoID0ge1xuXHRpbml0OiAoZWxlbWVudCwgZlZhbHVlQWNjZXNzb3IpID0+IHtcblx0XHRjb25zdCAkZWwgPSAkKGVsZW1lbnQpLFxuXHRcdFx0ZlZhbHVlID0gZlZhbHVlQWNjZXNzb3IoKSxcblx0XHRcdGZJbml0ID0gKCkgPT4ge1xuXHRcdFx0XHRmVmFsdWUoJGVsLndpZHRoKCkpO1xuXHRcdFx0XHR3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0ZlZhbHVlKCRlbC53aWR0aCgpKTtcblx0XHRcdFx0fSwgTWFnaWNzLlRpbWU1MDBtcyk7XG5cdFx0XHR9O1xuXG5cdFx0JHdpbi5vbigncmVzaXplJywgZkluaXQpO1xuXHRcdGZJbml0KCk7XG5cblx0XHRrby51dGlscy5kb21Ob2RlRGlzcG9zYWwuYWRkRGlzcG9zZUNhbGxiYWNrKGVsZW1lbnQsICgpID0+IHtcblx0XHRcdCR3aW4ub2ZmKCdyZXNpemUnLCBmSW5pdCk7XG5cdFx0fSk7XG5cdH1cbn07XG5cbmtvLmJpbmRpbmdIYW5kbGVycy5lZGl0b3IgPSB7XG5cdGluaXQ6IChlbGVtZW50LCBmVmFsdWVBY2Nlc3NvcikgPT4ge1xuXHRcdGxldCBlZGl0b3IgPSBudWxsO1xuXG5cdFx0Y29uc3QgZlZhbHVlID0gZlZhbHVlQWNjZXNzb3IoKSxcblx0XHRcdEh0bWxFZGl0b3IgPSByZXF1aXJlKCdDb21tb24vSHRtbEVkaXRvcicpLmRlZmF1bHQsXG5cdFx0XHRmVXBkYXRlRWRpdG9yVmFsdWUgPSAoKSA9PiB7XG5cdFx0XHRcdGlmIChmVmFsdWUgJiYgZlZhbHVlLl9fZWRpdG9yKSB7XG5cdFx0XHRcdFx0ZlZhbHVlLl9fZWRpdG9yLnNldEh0bWxPclBsYWluKGZWYWx1ZSgpKTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdGZVcGRhdGVLb1ZhbHVlID0gKCkgPT4ge1xuXHRcdFx0XHRpZiAoZlZhbHVlICYmIGZWYWx1ZS5fX2VkaXRvcikge1xuXHRcdFx0XHRcdGZWYWx1ZShmVmFsdWUuX19lZGl0b3IuZ2V0RGF0YVdpdGhIdG1sTWFyaygpKTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdGZPblJlYWR5ID0gKCkgPT4ge1xuXHRcdFx0XHRmVmFsdWUuX19lZGl0b3IgPSBlZGl0b3I7XG5cdFx0XHRcdGZVcGRhdGVFZGl0b3JWYWx1ZSgpO1xuXHRcdFx0fTtcblxuXHRcdGlmIChrby5pc09ic2VydmFibGUoZlZhbHVlKSAmJiBIdG1sRWRpdG9yKSB7XG5cdFx0XHRlZGl0b3IgPSBuZXcgSHRtbEVkaXRvcihlbGVtZW50LCBmVXBkYXRlS29WYWx1ZSwgZk9uUmVhZHksIGZVcGRhdGVLb1ZhbHVlKTtcblxuXHRcdFx0ZlZhbHVlLl9fZmV0Y2hFZGl0b3JWYWx1ZSA9IGZVcGRhdGVLb1ZhbHVlO1xuXG5cdFx0XHRmVmFsdWUuc3Vic2NyaWJlKGZVcGRhdGVFZGl0b3JWYWx1ZSk7XG5cblx0XHRcdC8vIGtvLnV0aWxzLmRvbU5vZGVEaXNwb3NhbC5hZGREaXNwb3NlQ2FsbGJhY2soZWxlbWVudCwgKCkgPT4ge1xuXHRcdFx0Ly8gfSk7XG5cdFx0fVxuXHR9XG59O1xuXG5rby5iaW5kaW5nSGFuZGxlcnMuanNvbiA9IHtcblx0aW5pdDogKGVsZW1lbnQsIGZWYWx1ZUFjY2Vzc29yKSA9PiB7XG5cdFx0JChlbGVtZW50KS50ZXh0KHdpbmRvdy5KU09OLnN0cmluZ2lmeShrby51bndyYXAoZlZhbHVlQWNjZXNzb3IoKSkpKTtcblx0fSxcblx0dXBkYXRlOiAoZWxlbWVudCwgZlZhbHVlQWNjZXNzb3IpID0+IHtcblx0XHQkKGVsZW1lbnQpLnRleHQod2luZG93LkpTT04uc3RyaW5naWZ5KGtvLnVud3JhcChmVmFsdWVBY2Nlc3NvcigpKSkpO1xuXHR9XG59O1xuXG5rby5iaW5kaW5nSGFuZGxlcnMuc2Nyb2xsZXJTaGFkb3dzID0ge1xuXHRpbml0OiAoZWxlbWVudCkgPT4ge1xuXHRcdGNvbnN0IGxpbWl0ID0gOCxcblx0XHRcdCRlbCA9ICQoZWxlbWVudCksXG5cdFx0XHRjb250ID0gJGVsLmZpbmQoJ1tkYXRhLXNjcm9sbGVyLXNoYWRvd3MtY29udGVudF0nKVswXSB8fCBudWxsLFxuXHRcdFx0ZkZ1bmMgPSBfLnRocm90dGxlKCgpID0+IHtcblx0XHRcdFx0JGVsXG5cdFx0XHRcdFx0LnRvZ2dsZUNsYXNzKCdzY3JvbGxlci1zaGFkb3ctdG9wJywgbGltaXQgPCBjb250LnNjcm9sbFRvcClcblx0XHRcdFx0XHQudG9nZ2xlQ2xhc3MoJ3Njcm9sbGVyLXNoYWRvdy1ib3R0b20nLCBjb250LnNjcm9sbFRvcCArIGxpbWl0IDwgY29udC5zY3JvbGxIZWlnaHQgLSBjb250LmNsaWVudEhlaWdodCk7XG5cdFx0XHR9LCAxMDApO1xuXG5cdFx0aWYgKGNvbnQpIHtcblx0XHRcdCQoY29udCkub24oJ3Njcm9sbCByZXNpemUnLCBmRnVuYyk7XG5cdFx0XHQkd2luLm9uKCdyZXNpemUnLCBmRnVuYyk7XG5cblx0XHRcdGtvLnV0aWxzLmRvbU5vZGVEaXNwb3NhbC5hZGREaXNwb3NlQ2FsbGJhY2soY29udCwgKCkgPT4ge1xuXHRcdFx0XHQkKGNvbnQpLm9mZigpO1xuXHRcdFx0XHQkd2luLm9mZigncmVzaXplJywgZkZ1bmMpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG59O1xuXG5rby5iaW5kaW5nSGFuZGxlcnMucGlrYWRheSA9IHtcblx0aW5pdDogKGVsZW1lbnQsIGZWYWx1ZUFjY2Vzc29yLCBmQWxsQmluZGluZ3NBY2Nlc3Nvciwgdmlld01vZGVsLCBiaW5kaW5nQ29udGV4dCkgPT4ge1xuXHRcdGtvLmJpbmRpbmdIYW5kbGVycy50ZXh0SW5wdXQuaW5pdChlbGVtZW50LCBmVmFsdWVBY2Nlc3NvciwgZkFsbEJpbmRpbmdzQWNjZXNzb3IsIHZpZXdNb2RlbCwgYmluZGluZ0NvbnRleHQpO1xuXG5cdFx0aWYgKFBpa2FkYXkpIHtcblx0XHRcdGVsZW1lbnQuX19waWthZGF5ID0gbmV3IFBpa2FkYXkoe1xuXHRcdFx0XHRmaWVsZDogZWxlbWVudFxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG59O1xuXG5rby5iaW5kaW5nSGFuZGxlcnMudmlzaWJsZUFuaW1hdGVkID0ge1xuXHRpbml0OiAoZWxlbWVudCwgZlZhbHVlQWNjZXNzb3IpID0+IHtcblx0XHRjb25zdCAkZWwgPSAkKGVsZW1lbnQpO1xuXHRcdCRlbC5hZGRDbGFzcygncmwtYW5pbWF0ZWQtaW5pdGVkJyk7XG5cdFx0aWYgKGtvLnVud3JhcChmVmFsdWVBY2Nlc3NvcigpKSkge1xuXHRcdFx0JGVsLnNob3coKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0JGVsLmhpZGUoKTtcblx0XHR9XG5cdH0sXG5cdHVwZGF0ZTogKGVsZW1lbnQsIGZWYWx1ZUFjY2Vzc29yKSA9PiB7XG5cdFx0Y29uc3QgJGVsID0gJChlbGVtZW50KTtcblx0XHRpZiAoa28udW53cmFwKGZWYWx1ZUFjY2Vzc29yKCkpKSB7XG5cdFx0XHQkZWwuYWRkQ2xhc3MoJ3JsLWFuaW1hdGVkLWhpZGRlbicpLnNob3coKTtcblx0XHRcdF8uZGVsYXkoKCkgPT4ge1xuXHRcdFx0XHQkZWwucmVtb3ZlQ2xhc3MoJ3JsLWFuaW1hdGVkLWhpZGRlbicpO1xuXHRcdFx0fSwgMTApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQkZWwuaGlkZSgpLnJlbW92ZUNsYXNzKCdybC1hbmltYXRlZC1oaWRkZW4nKTtcblx0XHR9XG5cdH1cbn07XG5cbmtvLmJpbmRpbmdIYW5kbGVycy50b29sdGlwID0ge1xuXHRpbml0OiAoZWxlbWVudCwgZlZhbHVlQWNjZXNzb3IpID0+IHtcblx0XHRjb25zdCAkZWwgPSAkKGVsZW1lbnQpLFxuXHRcdFx0ZlZhbHVlID0gZlZhbHVlQWNjZXNzb3IoKSxcblx0XHRcdGlzTW9iaWxlID0gJ29uJyA9PT0gKCRlbC5kYXRhKCd0b29sdGlwLW1vYmlsZScpIHx8ICdvZmYnKSxcblx0XHRcdGlzSTE4TiA9ICdvbicgPT09ICgkZWwuZGF0YSgndG9vbHRpcC1pMThuJykgfHwgJ29uJyksXG5cdFx0XHRHbG9iYWxzID0gcmVxdWlyZSgnQ29tbW9uL0dsb2JhbHMnKTtcblxuXHRcdGlmICghR2xvYmFscy5iTW9iaWxlRGV2aWNlIHx8IGlzTW9iaWxlKSB7XG5cdFx0XHRjb25zdCBzVmFsdWUgPSAha28uaXNPYnNlcnZhYmxlKGZWYWx1ZSkgJiYgXy5pc0Z1bmN0aW9uKGZWYWx1ZSkgPyBmVmFsdWUoKSA6IGtvLnVud3JhcChmVmFsdWUpO1xuXG5cdFx0XHRlbGVtZW50Ll9fb3BlbnRpcCA9IG5ldyBPcGVudGlwKGVsZW1lbnQsIHtcblx0XHRcdFx0J3N0eWxlJzogJ3JhaW5sb29wVGlwJyxcblx0XHRcdFx0J2VsZW1lbnQnOiBlbGVtZW50LFxuXHRcdFx0XHQndGlwSm9pbnQnOiAkZWwuZGF0YSgndG9vbHRpcC1qb2luJykgfHwgJ2JvdHRvbSdcblx0XHRcdH0pO1xuXG5cdFx0XHRHbG9iYWxzLmRyb3Bkb3duVmlzaWJpbGl0eS5zdWJzY3JpYmUoKHYpID0+IHtcblx0XHRcdFx0aWYgKHYpIHtcblx0XHRcdFx0XHRlbGVtZW50Ll9fb3BlbnRpcC5oaWRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXG5cdFx0XHRpZiAoJycgPT09IHNWYWx1ZSkge1xuXHRcdFx0XHRlbGVtZW50Ll9fb3BlbnRpcC5oaWRlKCk7XG5cdFx0XHRcdGVsZW1lbnQuX19vcGVudGlwLmRlYWN0aXZhdGUoKTtcblx0XHRcdFx0ZWxlbWVudC5fX29wZW50aXAuc2V0Q29udGVudCgnJyk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRlbGVtZW50Ll9fb3BlbnRpcC5hY3RpdmF0ZSgpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoaXNJMThOKSB7XG5cdFx0XHRcdGNvbnN0IFRyYW5zbGF0b3IgPSByZXF1aXJlKCdDb21tb24vVHJhbnNsYXRvcicpO1xuXG5cdFx0XHRcdGVsZW1lbnQuX19vcGVudGlwLnNldENvbnRlbnQoVHJhbnNsYXRvci5pMThuKHNWYWx1ZSkpO1xuXG5cdFx0XHRcdFRyYW5zbGF0b3IudHJpZ2dlci5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0XHRcdGVsZW1lbnQuX19vcGVudGlwLnNldENvbnRlbnQoVHJhbnNsYXRvci5pMThuKHNWYWx1ZSkpO1xuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHRHbG9iYWxzLmRyb3Bkb3duVmlzaWJpbGl0eS5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0XHRcdGlmIChlbGVtZW50ICYmIGVsZW1lbnQuX19vcGVudGlwKSB7XG5cdFx0XHRcdFx0XHRlbGVtZW50Ll9fb3BlbnRpcC5zZXRDb250ZW50KFRyYW5zbGF0b3IuaTE4bihzVmFsdWUpKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZWxlbWVudC5fX29wZW50aXAuc2V0Q29udGVudChzVmFsdWUpO1xuXHRcdFx0fVxuXG5cdFx0XHQkd2luLm9uKCdybC50b29sdGlwcy5kaWFjdGl2YXRlJywgKCkgPT4ge1xuXHRcdFx0XHRlbGVtZW50Ll9fb3BlbnRpcC5oaWRlKCk7XG5cdFx0XHRcdGVsZW1lbnQuX19vcGVudGlwLmRlYWN0aXZhdGUoKTtcblx0XHRcdH0pO1xuXG5cdFx0XHQkd2luLm9uKCdybC50b29sdGlwcy5hY3RpdmF0ZScsICgpID0+IHtcblx0XHRcdFx0ZWxlbWVudC5fX29wZW50aXAuYWN0aXZhdGUoKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fSxcblx0dXBkYXRlOiAoZWxlbWVudCwgZlZhbHVlQWNjZXNzb3IpID0+IHtcblx0XHRjb25zdCAkZWwgPSAkKGVsZW1lbnQpLFxuXHRcdFx0ZlZhbHVlID0gZlZhbHVlQWNjZXNzb3IoKSxcblx0XHRcdGlzTW9iaWxlID0gJ29uJyA9PT0gKCRlbC5kYXRhKCd0b29sdGlwLW1vYmlsZScpIHx8ICdvZmYnKSxcblx0XHRcdGlzSTE4TiA9ICdvbicgPT09ICgkZWwuZGF0YSgndG9vbHRpcC1pMThuJykgfHwgJ29uJyksXG5cdFx0XHRHbG9iYWxzID0gcmVxdWlyZSgnQ29tbW9uL0dsb2JhbHMnKTtcblxuXHRcdGlmICgoIUdsb2JhbHMuYk1vYmlsZURldmljZSB8fCBpc01vYmlsZSkgJiYgZWxlbWVudC5fX29wZW50aXApIHtcblx0XHRcdGNvbnN0IHNWYWx1ZSA9ICFrby5pc09ic2VydmFibGUoZlZhbHVlKSAmJiBfLmlzRnVuY3Rpb24oZlZhbHVlKSA/IGZWYWx1ZSgpIDoga28udW53cmFwKGZWYWx1ZSk7XG5cdFx0XHRpZiAoc1ZhbHVlKSB7XG5cdFx0XHRcdGVsZW1lbnQuX19vcGVudGlwLnNldENvbnRlbnQoaXNJMThOID8gcmVxdWlyZSgnQ29tbW9uL1RyYW5zbGF0b3InKS5pMThuKHNWYWx1ZSkgOiBzVmFsdWUpO1xuXHRcdFx0XHRlbGVtZW50Ll9fb3BlbnRpcC5hY3RpdmF0ZSgpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZWxlbWVudC5fX29wZW50aXAuaGlkZSgpO1xuXHRcdFx0XHRlbGVtZW50Ll9fb3BlbnRpcC5kZWFjdGl2YXRlKCk7XG5cdFx0XHRcdGVsZW1lbnQuX19vcGVudGlwLnNldENvbnRlbnQoJycpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufTtcblxua28uYmluZGluZ0hhbmRsZXJzLnRvb2x0aXBFcnJvclRpcCA9IHtcblx0aW5pdDogZnVuY3Rpb24oZWxlbWVudCkge1xuXHRcdGNvbnN0ICRlbCA9ICQoZWxlbWVudCk7XG5cblx0XHRlbGVtZW50Ll9fb3BlbnRpcCA9IG5ldyBPcGVudGlwKGVsZW1lbnQsIHtcblx0XHRcdHN0eWxlOiAncmFpbmxvb3BFcnJvclRpcCcsXG5cdFx0XHRoaWRlT246ICdtb3VzZW91dCBjbGljaycsXG5cdFx0XHRlbGVtZW50OiBlbGVtZW50LFxuXHRcdFx0dGlwSm9pbnQ6ICRlbC5kYXRhKCd0b29sdGlwLWpvaW4nKSB8fCAndG9wJ1xuXHRcdH0pO1xuXG5cdFx0ZWxlbWVudC5fX29wZW50aXAuZGVhY3RpdmF0ZSgpO1xuXG5cdFx0JCh3aW5kb3cuZG9jdW1lbnQpLm9uKCdjbGljaycsICgpID0+IHtcblx0XHRcdGlmIChlbGVtZW50ICYmIGVsZW1lbnQuX19vcGVudGlwKSB7XG5cdFx0XHRcdGVsZW1lbnQuX19vcGVudGlwLmhpZGUoKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdGZEaXNwb3NhbFRvb2x0aXBIZWxwZXIoZWxlbWVudCk7XG5cdH0sXG5cdHVwZGF0ZTogKGVsZW1lbnQsIGZWYWx1ZUFjY2Vzc29yKSA9PiB7XG5cdFx0Y29uc3QgJGVsID0gJChlbGVtZW50KSxcblx0XHRcdGZWYWx1ZSA9IGZWYWx1ZUFjY2Vzc29yKCksXG5cdFx0XHR2YWx1ZSA9ICFrby5pc09ic2VydmFibGUoZlZhbHVlKSAmJiBfLmlzRnVuY3Rpb24oZlZhbHVlKSA/IGZWYWx1ZSgpIDoga28udW53cmFwKGZWYWx1ZSksXG5cdFx0XHRvcGVuVGlwcyA9IGVsZW1lbnQuX19vcGVudGlwO1xuXG5cdFx0aWYgKG9wZW5UaXBzKSB7XG5cdFx0XHRpZiAoJycgPT09IHZhbHVlKSB7XG5cdFx0XHRcdG9wZW5UaXBzLmhpZGUoKTtcblx0XHRcdFx0b3BlblRpcHMuZGVhY3RpdmF0ZSgpO1xuXHRcdFx0XHRvcGVuVGlwcy5zZXRDb250ZW50KCcnKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdF8uZGVsYXkoKCkgPT4ge1xuXHRcdFx0XHRcdGlmICgkZWwuaXMoJzp2aXNpYmxlJykpIHtcblx0XHRcdFx0XHRcdG9wZW5UaXBzLnNldENvbnRlbnQodmFsdWUpO1xuXHRcdFx0XHRcdFx0b3BlblRpcHMuYWN0aXZhdGUoKTtcblx0XHRcdFx0XHRcdG9wZW5UaXBzLnNob3coKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0b3BlblRpcHMuaGlkZSgpO1xuXHRcdFx0XHRcdFx0b3BlblRpcHMuZGVhY3RpdmF0ZSgpO1xuXHRcdFx0XHRcdFx0b3BlblRpcHMuc2V0Q29udGVudCgnJyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LCBNYWdpY3MuVGltZTEwMG1zKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn07XG5cbmtvLmJpbmRpbmdIYW5kbGVycy5yZWdpc3RyYXRlQm9vdHN0cmFwRHJvcGRvd24gPSB7XG5cdGluaXQ6IChlbGVtZW50KSA9PiB7XG5cdFx0Y29uc3QgR2xvYmFscyA9IHJlcXVpcmUoJ0NvbW1vbi9HbG9iYWxzJyk7XG5cdFx0aWYgKEdsb2JhbHMgJiYgR2xvYmFscy5kYXRhLmFCb290c3RyYXBEcm9wZG93bnMpIHtcblx0XHRcdEdsb2JhbHMuZGF0YS5hQm9vdHN0cmFwRHJvcGRvd25zLnB1c2goJChlbGVtZW50KSk7XG5cblx0XHRcdCQoZWxlbWVudCkuY2xpY2soKCkgPT4ge1xuXHRcdFx0XHRyZXF1aXJlKCdDb21tb24vVXRpbHMnKS5kZXRlY3REcm9wZG93blZpc2liaWxpdHkoKTtcblx0XHRcdH0pO1xuXG5cdFx0XHQvLyBrby51dGlscy5kb21Ob2RlRGlzcG9zYWwuYWRkRGlzcG9zZUNhbGxiYWNrKGVsZW1lbnQsICgpID0+IHtcblx0XHRcdC8vIH0pO1xuXHRcdH1cblx0fVxufTtcblxua28uYmluZGluZ0hhbmRsZXJzLm9wZW5Ecm9wZG93blRyaWdnZXIgPSB7XG5cdHVwZGF0ZTogKGVsZW1lbnQsIGZWYWx1ZUFjY2Vzc29yKSA9PiB7XG5cdFx0aWYgKGtvLnVud3JhcChmVmFsdWVBY2Nlc3NvcigpKSkge1xuXHRcdFx0Y29uc3QgJGVsID0gJChlbGVtZW50KTtcblx0XHRcdGlmICghJGVsLmhhc0NsYXNzKCdvcGVuJykpIHtcblx0XHRcdFx0JGVsLmZpbmQoJy5kcm9wZG93bi10b2dnbGUnKS5kcm9wZG93bigndG9nZ2xlJyk7XG5cdFx0XHR9XG5cblx0XHRcdCRlbC5maW5kKCcuZHJvcGRvd24tdG9nZ2xlJykuZm9jdXMoKTtcblxuXHRcdFx0cmVxdWlyZSgnQ29tbW9uL1V0aWxzJykuZGV0ZWN0RHJvcGRvd25WaXNpYmlsaXR5KCk7XG5cdFx0XHRmVmFsdWVBY2Nlc3NvcigpKGZhbHNlKTtcblx0XHR9XG5cdH1cbn07XG5cbmtvLmJpbmRpbmdIYW5kbGVycy5kcm9wZG93bkNsb3NlciA9IHtcblx0aW5pdDogKGVsZW1lbnQpID0+IHtcblx0XHQkKGVsZW1lbnQpXG5cdFx0XHQuY2xvc2VzdCgnLmRyb3Bkb3duJylcblx0XHRcdC5vbignY2xpY2snLCAnLmUtaXRlbScsICgpID0+IHtcblx0XHRcdFx0JChlbGVtZW50KS5kcm9wZG93bigndG9nZ2xlJyk7XG5cdFx0XHR9KTtcblx0fVxufTtcblxua28uYmluZGluZ0hhbmRsZXJzLnBvcG92ZXIgPSB7XG5cdGluaXQ6IGZ1bmN0aW9uKGVsZW1lbnQsIGZWYWx1ZUFjY2Vzc29yKSB7XG5cdFx0JChlbGVtZW50KS5wb3BvdmVyKGtvLnVud3JhcChmVmFsdWVBY2Nlc3NvcigpKSk7XG5cblx0XHRrby51dGlscy5kb21Ob2RlRGlzcG9zYWwuYWRkRGlzcG9zZUNhbGxiYWNrKGVsZW1lbnQsICgpID0+IHtcblx0XHRcdCQoZWxlbWVudCkucG9wb3ZlcignZGVzdHJveScpO1xuXHRcdH0pO1xuXHR9XG59O1xuXG5rby5iaW5kaW5nSGFuZGxlcnMuY3NzdGV4dCA9IHt9O1xua28uYmluZGluZ0hhbmRsZXJzLmNzc3RleHQuaW5pdCA9IGtvLmJpbmRpbmdIYW5kbGVycy5jc3N0ZXh0LnVwZGF0ZSA9IChlbGVtZW50LCBmVmFsdWVBY2Nlc3NvcikgPT4ge1xuXHRpZiAoZWxlbWVudCAmJiBlbGVtZW50LnN0eWxlU2hlZXQgJiYgJ3VuZGVmaW5lZCcgIT09IHR5cGVvZiBlbGVtZW50LnN0eWxlU2hlZXQuY3NzVGV4dCkge1xuXHRcdGVsZW1lbnQuc3R5bGVTaGVldC5jc3NUZXh0ID0ga28udW53cmFwKGZWYWx1ZUFjY2Vzc29yKCkpO1xuXHR9IGVsc2Uge1xuXHRcdCQoZWxlbWVudCkudGV4dChrby51bndyYXAoZlZhbHVlQWNjZXNzb3IoKSkpO1xuXHR9XG59O1xuXG5rby5iaW5kaW5nSGFuZGxlcnMucmVzaXplY3JvcCA9IHtcblx0aW5pdDogKGVsZW1lbnQpID0+IHtcblx0XHQkKGVsZW1lbnQpXG5cdFx0XHQuYWRkQ2xhc3MoJ3Jlc2l6ZWNyb3AnKVxuXHRcdFx0LnJlc2l6ZWNyb3Aoe1xuXHRcdFx0XHQnd2lkdGgnOiAnMTAwJyxcblx0XHRcdFx0J2hlaWdodCc6ICcxMDAnLFxuXHRcdFx0XHQnd3JhcHBlckNTUyc6IHtcblx0XHRcdFx0XHQnYm9yZGVyLXJhZGl1cyc6ICcxMHB4J1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0fSxcblx0dXBkYXRlOiAoZWxlbWVudCwgZlZhbHVlQWNjZXNzb3IpID0+IHtcblx0XHRmVmFsdWVBY2Nlc3NvcigpKCk7XG5cdFx0JChlbGVtZW50KS5yZXNpemVjcm9wKHtcblx0XHRcdCd3aWR0aCc6ICcxMDAnLFxuXHRcdFx0J2hlaWdodCc6ICcxMDAnXG5cdFx0fSk7XG5cdH1cbn07XG5cbmtvLmJpbmRpbmdIYW5kbGVycy5vbktleURvd24gPSB7XG5cdGluaXQ6IChlbGVtZW50LCBmVmFsdWVBY2Nlc3NvciwgZkFsbEJpbmRpbmdzQWNjZXNzb3IsIHZpZXdNb2RlbCkgPT4ge1xuXHRcdCQoZWxlbWVudCkub24oJ2tleWRvd24ua29PbktleURvd24nLCAoZXZlbnQpID0+IHtcblx0XHRcdGlmIChldmVudCkge1xuXHRcdFx0XHRyZXR1cm4gZlZhbHVlQWNjZXNzb3IoKS5jYWxsKHZpZXdNb2RlbCwgZXZlbnQpO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9KTtcblxuXHRcdGtvLnV0aWxzLmRvbU5vZGVEaXNwb3NhbC5hZGREaXNwb3NlQ2FsbGJhY2soZWxlbWVudCwgKCkgPT4ge1xuXHRcdFx0JChlbGVtZW50KS5vZmYoJ2tleWRvd24ua29PbktleURvd24nKTtcblx0XHR9KTtcblx0fVxufTtcblxua28uYmluZGluZ0hhbmRsZXJzLm9uRW50ZXIgPSB7XG5cdGluaXQ6IChlbGVtZW50LCBmVmFsdWVBY2Nlc3NvciwgZkFsbEJpbmRpbmdzQWNjZXNzb3IsIHZpZXdNb2RlbCkgPT4ge1xuXHRcdCQoZWxlbWVudCkub24oJ2tleXByZXNzLmtvT25FbnRlcicsIChldmVudCkgPT4ge1xuXHRcdFx0aWYgKGV2ZW50ICYmIDEzID09PSB3aW5kb3cucGFyc2VJbnQoZXZlbnQua2V5Q29kZSwgMTApKSB7XG5cdFx0XHRcdCQoZWxlbWVudCkudHJpZ2dlcignY2hhbmdlJyk7XG5cdFx0XHRcdGZWYWx1ZUFjY2Vzc29yKCkuY2FsbCh2aWV3TW9kZWwpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0a28udXRpbHMuZG9tTm9kZURpc3Bvc2FsLmFkZERpc3Bvc2VDYWxsYmFjayhlbGVtZW50LCAoKSA9PiB7XG5cdFx0XHQkKGVsZW1lbnQpLm9mZigna2V5cHJlc3Mua29PbkVudGVyJyk7XG5cdFx0fSk7XG5cdH1cbn07XG5cbmtvLmJpbmRpbmdIYW5kbGVycy5vblNwYWNlID0ge1xuXHRpbml0OiAoZWxlbWVudCwgZlZhbHVlQWNjZXNzb3IsIGZBbGxCaW5kaW5nc0FjY2Vzc29yLCB2aWV3TW9kZWwpID0+IHtcblx0XHQkKGVsZW1lbnQpLm9uKCdrZXl1cC5rb09uU3BhY2UnLCAoZXZlbnQpID0+IHtcblx0XHRcdGlmIChldmVudCAmJiAzMiA9PT0gd2luZG93LnBhcnNlSW50KGV2ZW50LmtleUNvZGUsIDEwKSkge1xuXHRcdFx0XHRmVmFsdWVBY2Nlc3NvcigpLmNhbGwodmlld01vZGVsLCBldmVudCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRrby51dGlscy5kb21Ob2RlRGlzcG9zYWwuYWRkRGlzcG9zZUNhbGxiYWNrKGVsZW1lbnQsICgpID0+IHtcblx0XHRcdCQoZWxlbWVudCkub2ZmKCdrZXl1cC5rb09uU3BhY2UnKTtcblx0XHR9KTtcblx0fVxufTtcblxua28uYmluZGluZ0hhbmRsZXJzLm9uVGFiID0ge1xuXHRpbml0OiAoZWxlbWVudCwgZlZhbHVlQWNjZXNzb3IsIGZBbGxCaW5kaW5nc0FjY2Vzc29yLCB2aWV3TW9kZWwpID0+IHtcblx0XHQkKGVsZW1lbnQpLm9uKCdrZXlkb3duLmtvT25UYWInLCAoZXZlbnQpID0+IHtcblx0XHRcdGlmIChldmVudCAmJiA5ID09PSB3aW5kb3cucGFyc2VJbnQoZXZlbnQua2V5Q29kZSwgMTApKSB7XG5cdFx0XHRcdHJldHVybiBmVmFsdWVBY2Nlc3NvcigpLmNhbGwodmlld01vZGVsLCAhIWV2ZW50LnNoaWZ0S2V5KTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH0pO1xuXG5cdFx0a28udXRpbHMuZG9tTm9kZURpc3Bvc2FsLmFkZERpc3Bvc2VDYWxsYmFjayhlbGVtZW50LCAoKSA9PiB7XG5cdFx0XHQkKGVsZW1lbnQpLm9mZigna2V5ZG93bi5rb09uVGFiJyk7XG5cdFx0fSk7XG5cdH1cbn07XG5cbmtvLmJpbmRpbmdIYW5kbGVycy5vbkVzYyA9IHtcblx0aW5pdDogKGVsZW1lbnQsIGZWYWx1ZUFjY2Vzc29yLCBmQWxsQmluZGluZ3NBY2Nlc3Nvciwgdmlld01vZGVsKSA9PiB7XG5cdFx0JChlbGVtZW50KS5vbigna2V5dXAua29PbkVzYycsIChldmVudCkgPT4ge1xuXHRcdFx0aWYgKGV2ZW50ICYmIDI3ID09PSB3aW5kb3cucGFyc2VJbnQoZXZlbnQua2V5Q29kZSwgMTApKSB7XG5cdFx0XHRcdCQoZWxlbWVudCkudHJpZ2dlcignY2hhbmdlJyk7XG5cdFx0XHRcdGZWYWx1ZUFjY2Vzc29yKCkuY2FsbCh2aWV3TW9kZWwpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0a28udXRpbHMuZG9tTm9kZURpc3Bvc2FsLmFkZERpc3Bvc2VDYWxsYmFjayhlbGVtZW50LCAoKSA9PiB7XG5cdFx0XHQkKGVsZW1lbnQpLm9mZigna2V5dXAua29PbkVzYycpO1xuXHRcdH0pO1xuXHR9XG59O1xuXG5rby5iaW5kaW5nSGFuZGxlcnMuY2xpY2tPblRydWUgPSB7XG5cdHVwZGF0ZTogKGVsZW1lbnQsIGZWYWx1ZUFjY2Vzc29yKSA9PiB7XG5cdFx0aWYgKGtvLnVud3JhcChmVmFsdWVBY2Nlc3NvcigpKSkge1xuXHRcdFx0JChlbGVtZW50KS5jbGljaygpO1xuXHRcdH1cblx0fVxufTtcblxua28uYmluZGluZ0hhbmRsZXJzLm1vZGFsID0ge1xuXHRpbml0OiAoZWxlbWVudCwgZlZhbHVlQWNjZXNzb3IpID0+IHtcblx0XHRjb25zdCBHbG9iYWxzID0gcmVxdWlyZSgnQ29tbW9uL0dsb2JhbHMnKSxcblx0XHRcdFV0aWxzID0gcmVxdWlyZSgnQ29tbW9uL1V0aWxzJyk7XG5cblx0XHQkKGVsZW1lbnQpXG5cdFx0XHQudG9nZ2xlQ2xhc3MoJ2ZhZGUnLCAhR2xvYmFscy5iTW9iaWxlRGV2aWNlKVxuXHRcdFx0Lm1vZGFsKHtcblx0XHRcdFx0J2tleWJvYXJkJzogZmFsc2UsXG5cdFx0XHRcdCdzaG93Jzoga28udW53cmFwKGZWYWx1ZUFjY2Vzc29yKCkpXG5cdFx0XHR9KVxuXHRcdFx0Lm9uKCdzaG93bi5rb01vZGFsJywgVXRpbHMud2luZG93UmVzaXplQ2FsbGJhY2spXG5cdFx0XHQuZmluZCgnLmNsb3NlJylcblx0XHRcdC5vbignY2xpY2sua29Nb2RhbCcsICgpID0+IHtcblx0XHRcdFx0ZlZhbHVlQWNjZXNzb3IoKShmYWxzZSk7XG5cdFx0XHR9KTtcblxuXHRcdGtvLnV0aWxzLmRvbU5vZGVEaXNwb3NhbC5hZGREaXNwb3NlQ2FsbGJhY2soZWxlbWVudCwgKCkgPT4ge1xuXHRcdFx0JChlbGVtZW50KVxuXHRcdFx0XHQub2ZmKCdzaG93bi5rb01vZGFsJylcblx0XHRcdFx0LmZpbmQoJy5jbG9zZScpXG5cdFx0XHRcdC5vZmYoJ2NsaWNrLmtvTW9kYWwnKTtcblx0XHR9KTtcblx0fSxcblx0dXBkYXRlOiAoZWxlbWVudCwgZlZhbHVlQWNjZXNzb3IpID0+IHtcblx0XHRjb25zdCBHbG9iYWxzID0gcmVxdWlyZSgnQ29tbW9uL0dsb2JhbHMnKTtcblxuXHRcdCQoZWxlbWVudCkubW9kYWwoa28udW53cmFwKGZWYWx1ZUFjY2Vzc29yKCkpID8gJ3Nob3cnIDogJ2hpZGUnKTtcblxuXHRcdGlmIChHbG9iYWxzLiRodG1sLmhhc0NsYXNzKCdybC1hbmltJykpIHtcblx0XHRcdEdsb2JhbHMuJGh0bWwuYWRkQ2xhc3MoJ3JsLW1vZGFsLWFuaW1hdGlvbicpO1xuXHRcdFx0Xy5kZWxheSgoKSA9PiB7XG5cdFx0XHRcdEdsb2JhbHMuJGh0bWwucmVtb3ZlQ2xhc3MoJ3JsLW1vZGFsLWFuaW1hdGlvbicpO1xuXHRcdFx0fSwgTWFnaWNzLlRpbWU1MDBtcyk7XG5cdFx0fVxuXHR9XG59O1xuXG5rby5iaW5kaW5nSGFuZGxlcnMubW9tZW50ID0ge1xuXHRpbml0OiAoZWxlbWVudCwgZlZhbHVlQWNjZXNzb3IpID0+IHtcblx0XHRyZXF1aXJlKCdDb21tb24vTW9tZW50b3InKS5tb21lbnRUb05vZGUoXG5cdFx0XHQkKGVsZW1lbnQpXG5cdFx0XHRcdC5hZGRDbGFzcygnbW9tZW50Jylcblx0XHRcdFx0LmRhdGEoJ21vbWVudC10aW1lJywga28udW53cmFwKGZWYWx1ZUFjY2Vzc29yKCkpKVxuXHRcdCk7XG5cdH0sXG5cdHVwZGF0ZTogKGVsZW1lbnQsIGZWYWx1ZUFjY2Vzc29yKSA9PiB7XG5cdFx0cmVxdWlyZSgnQ29tbW9uL01vbWVudG9yJykubW9tZW50VG9Ob2RlKCQoZWxlbWVudCkuZGF0YSgnbW9tZW50LXRpbWUnLCBrby51bndyYXAoZlZhbHVlQWNjZXNzb3IoKSkpKTtcblx0fVxufTtcblxua28uYmluZGluZ0hhbmRsZXJzLmkxOG5Jbml0ID0ge1xuXHRpbml0OiAoZWxlbWVudCkgPT4ge1xuXHRcdHJlcXVpcmUoJ0NvbW1vbi9UcmFuc2xhdG9yJykuaTE4blRvTm9kZXMoZWxlbWVudCk7XG5cdH1cbn07XG5cbmtvLmJpbmRpbmdIYW5kbGVycy50cmFuc2xhdG9ySW5pdCA9IHtcblx0aW5pdDogKGVsZW1lbnQpID0+IHtcblx0XHRyZXF1aXJlKCdDb21tb24vVHJhbnNsYXRvcicpLmkxOG5Ub05vZGVzKGVsZW1lbnQpO1xuXHR9XG59O1xuXG5rby5iaW5kaW5nSGFuZGxlcnMuaTE4blVwZGF0ZSA9IHtcblx0dXBkYXRlOiAoZWxlbWVudCwgZlZhbHVlQWNjZXNzb3IpID0+IHtcblx0XHRrby51bndyYXAoZlZhbHVlQWNjZXNzb3IoKSk7XG5cdFx0cmVxdWlyZSgnQ29tbW9uL1RyYW5zbGF0b3InKS5pMThuVG9Ob2RlcyhlbGVtZW50KTtcblx0fVxufTtcblxua28uYmluZGluZ0hhbmRsZXJzLmxpbmsgPSB7XG5cdHVwZGF0ZTogZnVuY3Rpb24oZWxlbWVudCwgZlZhbHVlQWNjZXNzb3IpIHtcblx0XHQkKGVsZW1lbnQpLmF0dHIoJ2hyZWYnLCBrby51bndyYXAoZlZhbHVlQWNjZXNzb3IoKSkpO1xuXHR9XG59O1xuXG5rby5iaW5kaW5nSGFuZGxlcnMudGl0bGUgPSB7XG5cdHVwZGF0ZTogZnVuY3Rpb24oZWxlbWVudCwgZlZhbHVlQWNjZXNzb3IpIHtcblx0XHQkKGVsZW1lbnQpLmF0dHIoJ3RpdGxlJywga28udW53cmFwKGZWYWx1ZUFjY2Vzc29yKCkpKTtcblx0fVxufTtcblxua28uYmluZGluZ0hhbmRsZXJzLnRleHRGID0ge1xuXHRpbml0OiBmdW5jdGlvbihlbGVtZW50LCBmVmFsdWVBY2Nlc3Nvcikge1xuXHRcdCQoZWxlbWVudCkudGV4dChrby51bndyYXAoZlZhbHVlQWNjZXNzb3IoKSkpO1xuXHR9XG59O1xuXG5rby5iaW5kaW5nSGFuZGxlcnMuaW5pdERvbSA9IHtcblx0aW5pdDogZnVuY3Rpb24oZWxlbWVudCwgZlZhbHVlQWNjZXNzb3IpIHtcblx0XHRmVmFsdWVBY2Nlc3NvcigpKGVsZW1lbnQpO1xuXHR9XG59O1xuXG5rby5iaW5kaW5nSGFuZGxlcnMuaW5pdEZpeGVkVHJpZ2dlciA9IHtcblx0aW5pdDogKGVsZW1lbnQsIGZWYWx1ZUFjY2Vzc29yKSA9PiB7XG5cdFx0Y29uc3QgdmFsdWVzID0ga28udW53cmFwKGZWYWx1ZUFjY2Vzc29yKCkpLFxuXHRcdFx0JGVsID0gJChlbGVtZW50KSxcblx0XHRcdHRvcCA9IHZhbHVlc1sxXSB8fCAwO1xuXG5cdFx0bGV0ICRjb250YWluZXIgPSAkKHZhbHVlc1swXSB8fCBudWxsKTtcblx0XHQkY29udGFpbmVyID0gJGNvbnRhaW5lclswXSA/ICRjb250YWluZXIgOiBudWxsO1xuXHRcdGlmICgkY29udGFpbmVyKSB7XG5cdFx0XHQkd2luLnJlc2l6ZSgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG9mZnNldCA9ICRjb250YWluZXIgPyAkY29udGFpbmVyLm9mZnNldCgpIDogbnVsbDtcblx0XHRcdFx0aWYgKG9mZnNldCAmJiBvZmZzZXQudG9wKSB7XG5cdFx0XHRcdFx0JGVsLmNzcygndG9wJywgb2Zmc2V0LnRvcCArIHRvcCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0fVxufTtcblxua28uYmluZGluZ0hhbmRsZXJzLmluaXRSZXNpemVUcmlnZ2VyID0ge1xuXHRpbml0OiAoZWxlbWVudCwgZlZhbHVlQWNjZXNzb3IpID0+IHtcblx0XHRjb25zdCB2YWx1ZXMgPSBrby51bndyYXAoZlZhbHVlQWNjZXNzb3IoKSk7XG5cdFx0JChlbGVtZW50KS5jc3Moe1xuXHRcdFx0J2hlaWdodCc6IHZhbHVlc1sxXSxcblx0XHRcdCdtaW4taGVpZ2h0JzogdmFsdWVzWzFdXG5cdFx0fSk7XG5cdH0sXG5cdHVwZGF0ZTogKG9FbGVtZW50LCBmVmFsdWVBY2Nlc3NvcikgPT4ge1xuXHRcdGNvbnN0IFV0aWxzID0gcmVxdWlyZSgnQ29tbW9uL1V0aWxzJyksXG5cdFx0XHRHbG9iYWxzID0gcmVxdWlyZSgnQ29tbW9uL0dsb2JhbHMnKSxcblx0XHRcdHZhbHVlcyA9IGtvLnVud3JhcChmVmFsdWVBY2Nlc3NvcigpKTtcblxuXHRcdGxldCB2YWx1ZSA9IFV0aWxzLnBJbnQodmFsdWVzWzFdKSxcblx0XHRcdHNpemUgPSAwLFxuXHRcdFx0b2Zmc2V0ID0gJChvRWxlbWVudCkub2Zmc2V0KCkudG9wO1xuXG5cdFx0aWYgKDAgPCBvZmZzZXQpIHtcblx0XHRcdG9mZnNldCArPSBVdGlscy5wSW50KHZhbHVlc1syXSk7XG5cdFx0XHRzaXplID0gR2xvYmFscy4kd2luLmhlaWdodCgpIC0gb2Zmc2V0O1xuXG5cdFx0XHRpZiAodmFsdWUgPCBzaXplKSB7XG5cdFx0XHRcdHZhbHVlID0gc2l6ZTtcblx0XHRcdH1cblxuXHRcdFx0JChvRWxlbWVudCkuY3NzKHtcblx0XHRcdFx0J2hlaWdodCc6IHZhbHVlLFxuXHRcdFx0XHQnbWluLWhlaWdodCc6IHZhbHVlXG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cbn07XG5cbmtvLmJpbmRpbmdIYW5kbGVycy5hcHBlbmREb20gPSB7XG5cdHVwZGF0ZTogKGVsZW1lbnQsIGZWYWx1ZUFjY2Vzc29yKSA9PiB7XG5cdFx0JChlbGVtZW50KVxuXHRcdFx0LmhpZGUoKVxuXHRcdFx0LmVtcHR5KClcblx0XHRcdC5hcHBlbmQoa28udW53cmFwKGZWYWx1ZUFjY2Vzc29yKCkpKVxuXHRcdFx0LnNob3coKTtcblx0fVxufTtcblxua28uYmluZGluZ0hhbmRsZXJzLmRyYWdnYWJsZSA9IHtcblx0aW5pdDogKGVsZW1lbnQsIGZWYWx1ZUFjY2Vzc29yLCBmQWxsQmluZGluZ3NBY2Nlc3NvcikgPT4ge1xuXHRcdGNvbnN0IEdsb2JhbHMgPSByZXF1aXJlKCdDb21tb24vR2xvYmFscycpLFxuXHRcdFx0VXRpbHMgPSByZXF1aXJlKCdDb21tb24vVXRpbHMnKTtcblxuXHRcdGlmICghR2xvYmFscy5iTW9iaWxlRGV2aWNlKSB7XG5cdFx0XHRjb25zdCB0cmlnZ2VyWm9uZSA9IDEwMCxcblx0XHRcdFx0c2Nyb2xsU3BlZWQgPSAzLFxuXHRcdFx0XHRmQWxsVmFsdWVGdW5jID0gZkFsbEJpbmRpbmdzQWNjZXNzb3IoKSxcblx0XHRcdFx0ZHJvcHBhYmxlU2VsZWN0b3IgPSBmQWxsVmFsdWVGdW5jICYmIGZBbGxWYWx1ZUZ1bmMuZHJvcHBhYmxlU2VsZWN0b3IgPyBmQWxsVmFsdWVGdW5jLmRyb3BwYWJsZVNlbGVjdG9yIDogJycsXG5cdFx0XHRcdGNvbmYgPSB7XG5cdFx0XHRcdFx0ZGlzdGFuY2U6IDIwLFxuXHRcdFx0XHRcdGhhbmRsZTogJy5kcmFnSGFuZGxlJyxcblx0XHRcdFx0XHRjdXJzb3JBdDogeyB0b3A6IDIyLCBsZWZ0OiAzIH0sXG5cdFx0XHRcdFx0cmVmcmVzaFBvc2l0aW9uczogdHJ1ZSxcblx0XHRcdFx0XHRzY3JvbGw6IHRydWUsXG5cdFx0XHRcdFx0ZHJhZzogbnVsbCxcblx0XHRcdFx0XHRzdG9wOiBudWxsLFxuXHRcdFx0XHRcdGhlbHBlcjogbnVsbFxuXHRcdFx0XHR9O1xuXG5cdFx0XHRpZiAoZHJvcHBhYmxlU2VsZWN0b3IpIHtcblx0XHRcdFx0Y29uZi5kcmFnID0gKGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0JChkcm9wcGFibGVTZWxlY3RvcikuZWFjaChmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdGNvbnN0ICR0aGlzID0gJCh0aGlzKSwgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1pbnZhbGlkLXRoaXNcblx0XHRcdFx0XHRcdFx0b2Zmc2V0ID0gJHRoaXMub2Zmc2V0KCksXG5cdFx0XHRcdFx0XHRcdGJvdHRvbVBvcyA9IG9mZnNldC50b3AgKyAkdGhpcy5oZWlnaHQoKTtcblxuXHRcdFx0XHRcdFx0d2luZG93LmNsZWFySW50ZXJ2YWwoJHRoaXMuZGF0YSgndGltZXJTY3JvbGwnKSk7XG5cdFx0XHRcdFx0XHQkdGhpcy5kYXRhKCd0aW1lclNjcm9sbCcsIGZhbHNlKTtcblxuXHRcdFx0XHRcdFx0aWYgKGV2ZW50LnBhZ2VYID49IG9mZnNldC5sZWZ0ICYmIGV2ZW50LnBhZ2VYIDw9IG9mZnNldC5sZWZ0ICsgJHRoaXMud2lkdGgoKSkge1xuXHRcdFx0XHRcdFx0XHRpZiAoZXZlbnQucGFnZVkgPj0gYm90dG9tUG9zIC0gdHJpZ2dlclpvbmUgJiYgZXZlbnQucGFnZVkgPD0gYm90dG9tUG9zKSB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgbW92ZVVwID0gKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0JHRoaXMuc2Nyb2xsVG9wKCR0aGlzLnNjcm9sbFRvcCgpICsgc2Nyb2xsU3BlZWQpO1xuXHRcdFx0XHRcdFx0XHRcdFx0VXRpbHMud2luZG93UmVzaXplKCk7XG5cdFx0XHRcdFx0XHRcdFx0fTtcblxuXHRcdFx0XHRcdFx0XHRcdCR0aGlzLmRhdGEoJ3RpbWVyU2Nyb2xsJywgd2luZG93LnNldEludGVydmFsKG1vdmVVcCwgMTApKTtcblx0XHRcdFx0XHRcdFx0XHRtb3ZlVXAoKTtcblx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdGlmIChldmVudC5wYWdlWSA+PSBvZmZzZXQudG9wICYmIGV2ZW50LnBhZ2VZIDw9IG9mZnNldC50b3AgKyB0cmlnZ2VyWm9uZSkge1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IG1vdmVEb3duID0gKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0JHRoaXMuc2Nyb2xsVG9wKCR0aGlzLnNjcm9sbFRvcCgpIC0gc2Nyb2xsU3BlZWQpO1xuXHRcdFx0XHRcdFx0XHRcdFx0VXRpbHMud2luZG93UmVzaXplKCk7XG5cdFx0XHRcdFx0XHRcdFx0fTtcblxuXHRcdFx0XHRcdFx0XHRcdCR0aGlzLmRhdGEoJ3RpbWVyU2Nyb2xsJywgd2luZG93LnNldEludGVydmFsKG1vdmVEb3duLCAxMCkpO1xuXHRcdFx0XHRcdFx0XHRcdG1vdmVEb3duKCk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fTtcblxuXHRcdFx0XHRjb25mLnN0b3AgPSAoKSA9PiB7XG5cdFx0XHRcdFx0JChkcm9wcGFibGVTZWxlY3RvcikuZWFjaChmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdGNvbnN0ICR0aGlzID0gJCh0aGlzKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1pbnZhbGlkLXRoaXNcblx0XHRcdFx0XHRcdHdpbmRvdy5jbGVhckludGVydmFsKCR0aGlzLmRhdGEoJ3RpbWVyU2Nyb2xsJykpO1xuXHRcdFx0XHRcdFx0JHRoaXMuZGF0YSgndGltZXJTY3JvbGwnLCBmYWxzZSk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cblx0XHRcdGNvbmYuaGVscGVyID0gKGV2ZW50KSA9PiBmVmFsdWVBY2Nlc3NvcigpKGV2ZW50ICYmIGV2ZW50LnRhcmdldCA/IGtvLmRhdGFGb3IoZXZlbnQudGFyZ2V0KSA6IG51bGwpO1xuXG5cdFx0XHQkKGVsZW1lbnQpXG5cdFx0XHRcdC5kcmFnZ2FibGUoY29uZilcblx0XHRcdFx0Lm9uKCdtb3VzZWRvd24ua29EcmFnZ2FibGUnLCAoKSA9PiB7XG5cdFx0XHRcdFx0VXRpbHMucmVtb3ZlSW5Gb2N1cygpO1xuXHRcdFx0XHR9KTtcblxuXHRcdFx0a28udXRpbHMuZG9tTm9kZURpc3Bvc2FsLmFkZERpc3Bvc2VDYWxsYmFjayhlbGVtZW50LCAoKSA9PiB7XG5cdFx0XHRcdCQoZWxlbWVudClcblx0XHRcdFx0XHQub2ZmKCdtb3VzZWRvd24ua29EcmFnZ2FibGUnKVxuXHRcdFx0XHRcdC5kcmFnZ2FibGUoJ2Rlc3Ryb3knKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxufTtcblxua28uYmluZGluZ0hhbmRsZXJzLmRyb3BwYWJsZSA9IHtcblx0aW5pdDogKGVsZW1lbnQsIGZWYWx1ZUFjY2Vzc29yLCBmQWxsQmluZGluZ3NBY2Nlc3NvcikgPT4ge1xuXHRcdGNvbnN0IEdsb2JhbHMgPSByZXF1aXJlKCdDb21tb24vR2xvYmFscycpO1xuXHRcdGlmICghR2xvYmFscy5iTW9iaWxlRGV2aWNlKSB7XG5cdFx0XHRjb25zdCBmVmFsdWVGdW5jID0gZlZhbHVlQWNjZXNzb3IoKSxcblx0XHRcdFx0ZkFsbFZhbHVlRnVuYyA9IGZBbGxCaW5kaW5nc0FjY2Vzc29yKCksXG5cdFx0XHRcdGZPdmVyQ2FsbGJhY2sgPSBmQWxsVmFsdWVGdW5jICYmIGZBbGxWYWx1ZUZ1bmMuZHJvcHBhYmxlT3ZlciA/IGZBbGxWYWx1ZUZ1bmMuZHJvcHBhYmxlT3ZlciA6IG51bGwsXG5cdFx0XHRcdGZPdXRDYWxsYmFjayA9IGZBbGxWYWx1ZUZ1bmMgJiYgZkFsbFZhbHVlRnVuYy5kcm9wcGFibGVPdXQgPyBmQWxsVmFsdWVGdW5jLmRyb3BwYWJsZU91dCA6IG51bGwsXG5cdFx0XHRcdGNvbmYgPSB7XG5cdFx0XHRcdFx0dG9sZXJhbmNlOiAncG9pbnRlcicsXG5cdFx0XHRcdFx0aG92ZXJDbGFzczogJ2Ryb3BwYWJsZUhvdmVyJyxcblx0XHRcdFx0XHRkcm9wOiBudWxsLFxuXHRcdFx0XHRcdG92ZXI6IG51bGwsXG5cdFx0XHRcdFx0b3V0OiBudWxsXG5cdFx0XHRcdH07XG5cblx0XHRcdGlmIChmVmFsdWVGdW5jKSB7XG5cdFx0XHRcdGNvbmYuZHJvcCA9IChldmVudCwgdWkpID0+IHtcblx0XHRcdFx0XHRmVmFsdWVGdW5jKGV2ZW50LCB1aSk7XG5cdFx0XHRcdH07XG5cblx0XHRcdFx0aWYgKGZPdmVyQ2FsbGJhY2spIHtcblx0XHRcdFx0XHRjb25mLm92ZXIgPSAoZXZlbnQsIHVpKSA9PiB7XG5cdFx0XHRcdFx0XHRmT3ZlckNhbGxiYWNrKGV2ZW50LCB1aSk7XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChmT3V0Q2FsbGJhY2spIHtcblx0XHRcdFx0XHRjb25mLm91dCA9IChldmVudCwgdWkpID0+IHtcblx0XHRcdFx0XHRcdGZPdXRDYWxsYmFjayhldmVudCwgdWkpO1xuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQkKGVsZW1lbnQpLmRyb3BwYWJsZShjb25mKTtcblxuXHRcdFx0XHRrby51dGlscy5kb21Ob2RlRGlzcG9zYWwuYWRkRGlzcG9zZUNhbGxiYWNrKGVsZW1lbnQsICgpID0+IHtcblx0XHRcdFx0XHQkKGVsZW1lbnQpLmRyb3BwYWJsZSgnZGVzdHJveScpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn07XG5cbmtvLmJpbmRpbmdIYW5kbGVycy5uYW5vID0ge1xuXHRpbml0OiAoZWxlbWVudCkgPT4ge1xuXHRcdGNvbnN0IEdsb2JhbHMgPSByZXF1aXJlKCdDb21tb24vR2xvYmFscycpLFxuXHRcdFx0U2V0dGluZ3MgPSByZXF1aXJlKCdTdG9yYWdlL1NldHRpbmdzJyk7XG5cblx0XHRpZiAoIUdsb2JhbHMuYkRpc2FibGVOYW5vU2Nyb2xsICYmICFTZXR0aW5ncy5hcHBTZXR0aW5nc0dldCgndXNlTmF0aXZlU2Nyb2xsYmFycycpKSB7XG5cdFx0XHQkKGVsZW1lbnQpXG5cdFx0XHRcdC5hZGRDbGFzcygnbmFubycpXG5cdFx0XHRcdC5uYW5vU2Nyb2xsZXIoe1xuXHRcdFx0XHRcdGlPU05hdGl2ZVNjcm9sbGluZzogZmFsc2UsXG5cdFx0XHRcdFx0cHJldmVudFBhZ2VTY3JvbGxpbmc6IHRydWVcblx0XHRcdFx0fSk7XG5cdFx0fVxuXHR9XG59O1xuXG5rby5iaW5kaW5nSGFuZGxlcnMuc2F2ZVRyaWdnZXIgPSB7XG5cdGluaXQ6IChlbGVtZW50KSA9PiB7XG5cdFx0Y29uc3QgJGVsID0gJChlbGVtZW50KTtcblxuXHRcdCRlbC5kYXRhKFxuXHRcdFx0J3NhdmUtdHJpZ2dlci10eXBlJyxcblx0XHRcdCRlbC5pcygnaW5wdXRbdHlwZT10ZXh0XSxpbnB1dFt0eXBlPWVtYWlsXSxpbnB1dFt0eXBlPXBhc3N3b3JkXSxzZWxlY3QsdGV4dGFyZWEnKSA/ICdpbnB1dCcgOiAnY3VzdG9tJ1xuXHRcdCk7XG5cblx0XHRpZiAoJ2N1c3RvbScgPT09ICRlbC5kYXRhKCdzYXZlLXRyaWdnZXItdHlwZScpKSB7XG5cdFx0XHQkZWxcblx0XHRcdFx0LmFwcGVuZChcblx0XHRcdFx0XHQnJm5ic3A7Jm5ic3A7JyArXG5cdFx0XHRcdFx0XHQnPGkgY2xhc3M9XCJpY29uLXNwaW5uZXIgYW5pbWF0ZWRcIj48L2k+JyArXG5cdFx0XHRcdFx0XHQnPGkgY2xhc3M9XCJpY29uLXJlbW92ZSBlcnJvclwiPjwvaT4nICtcblx0XHRcdFx0XHRcdCc8aSBjbGFzcz1cImljb24tb2sgc3VjY2Vzc1wiPjwvaT4nXG5cdFx0XHRcdClcblx0XHRcdFx0LmFkZENsYXNzKCdzZXR0aW5ncy1zYXZlZC10cmlnZ2VyJyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdCRlbC5hZGRDbGFzcygnc2V0dGluZ3Mtc2F2ZWQtdHJpZ2dlci1pbnB1dCcpO1xuXHRcdH1cblx0fSxcblx0dXBkYXRlOiAoZWxlbWVudCwgZlZhbHVlQWNjZXNzb3IpID0+IHtcblx0XHRjb25zdCB2YWx1ZSA9IGtvLnVud3JhcChmVmFsdWVBY2Nlc3NvcigpKSxcblx0XHRcdCRlbCA9ICQoZWxlbWVudCk7XG5cblx0XHRpZiAoJ2N1c3RvbScgPT09ICRlbC5kYXRhKCdzYXZlLXRyaWdnZXItdHlwZScpKSB7XG5cdFx0XHRzd2l0Y2ggKHZhbHVlLnRvU3RyaW5nKCkpIHtcblx0XHRcdFx0Y2FzZSAnMSc6XG5cdFx0XHRcdFx0JGVsXG5cdFx0XHRcdFx0XHQuZmluZCgnLmFuaW1hdGVkLC5lcnJvcicpXG5cdFx0XHRcdFx0XHQuaGlkZSgpXG5cdFx0XHRcdFx0XHQucmVtb3ZlQ2xhc3MoJ3Zpc2libGUnKVxuXHRcdFx0XHRcdFx0LmVuZCgpXG5cdFx0XHRcdFx0XHQuZmluZCgnLnN1Y2Nlc3MnKVxuXHRcdFx0XHRcdFx0LnNob3coKVxuXHRcdFx0XHRcdFx0LmFkZENsYXNzKCd2aXNpYmxlJyk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgJzAnOlxuXHRcdFx0XHRcdCRlbFxuXHRcdFx0XHRcdFx0LmZpbmQoJy5hbmltYXRlZCwuc3VjY2VzcycpXG5cdFx0XHRcdFx0XHQuaGlkZSgpXG5cdFx0XHRcdFx0XHQucmVtb3ZlQ2xhc3MoJ3Zpc2libGUnKVxuXHRcdFx0XHRcdFx0LmVuZCgpXG5cdFx0XHRcdFx0XHQuZmluZCgnLmVycm9yJylcblx0XHRcdFx0XHRcdC5zaG93KClcblx0XHRcdFx0XHRcdC5hZGRDbGFzcygndmlzaWJsZScpO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlICctMic6XG5cdFx0XHRcdFx0JGVsXG5cdFx0XHRcdFx0XHQuZmluZCgnLmVycm9yLC5zdWNjZXNzJylcblx0XHRcdFx0XHRcdC5oaWRlKClcblx0XHRcdFx0XHRcdC5yZW1vdmVDbGFzcygndmlzaWJsZScpXG5cdFx0XHRcdFx0XHQuZW5kKClcblx0XHRcdFx0XHRcdC5maW5kKCcuYW5pbWF0ZWQnKVxuXHRcdFx0XHRcdFx0LnNob3coKVxuXHRcdFx0XHRcdFx0LmFkZENsYXNzKCd2aXNpYmxlJyk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0JGVsXG5cdFx0XHRcdFx0XHQuZmluZCgnLmFuaW1hdGVkJylcblx0XHRcdFx0XHRcdC5oaWRlKClcblx0XHRcdFx0XHRcdC5lbmQoKVxuXHRcdFx0XHRcdFx0LmZpbmQoJy5lcnJvciwuc3VjY2VzcycpXG5cdFx0XHRcdFx0XHQucmVtb3ZlQ2xhc3MoJ3Zpc2libGUnKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0c3dpdGNoICh2YWx1ZS50b1N0cmluZygpKSB7XG5cdFx0XHRcdGNhc2UgJzEnOlxuXHRcdFx0XHRcdCRlbC5hZGRDbGFzcygnc3VjY2VzcycpLnJlbW92ZUNsYXNzKCdlcnJvcicpO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlICcwJzpcblx0XHRcdFx0XHQkZWwuYWRkQ2xhc3MoJ2Vycm9yJykucmVtb3ZlQ2xhc3MoJ3N1Y2Nlc3MnKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSAnLTInOlxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdCRlbC5yZW1vdmVDbGFzcygnZXJyb3Igc3VjY2VzcycpO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufTtcblxua28uYmluZGluZ0hhbmRsZXJzLmVtYWlsc1RhZ3MgPSB7XG5cdGluaXQ6IChlbGVtZW50LCBmVmFsdWVBY2Nlc3NvciwgZkFsbEJpbmRpbmdzQWNjZXNzb3IpID0+IHtcblx0XHRjb25zdCBVdGlscyA9IHJlcXVpcmUoJ0NvbW1vbi9VdGlscycpLFxuXHRcdFx0RW1haWxNb2RlbCA9IHJlcXVpcmUoJ01vZGVsL0VtYWlsJykuZGVmYXVsdCxcblx0XHRcdCRlbCA9ICQoZWxlbWVudCksXG5cdFx0XHRmVmFsdWUgPSBmVmFsdWVBY2Nlc3NvcigpLFxuXHRcdFx0ZkFsbEJpbmRpbmdzID0gZkFsbEJpbmRpbmdzQWNjZXNzb3IoKSxcblx0XHRcdGZBdXRvQ29tcGxldGVTb3VyY2UgPSBmQWxsQmluZGluZ3MuYXV0b0NvbXBsZXRlU291cmNlIHx8IG51bGwsXG5cdFx0XHRpbnB1dERlbGltaXRlcnMgPSBbJywnLCAnOycsICdcXG4nXSxcblx0XHRcdGZGb2N1c0NhbGxiYWNrID0gKHZhbHVlKSA9PiB7XG5cdFx0XHRcdGlmIChmVmFsdWUgJiYgZlZhbHVlLmZvY3VzZWQpIHtcblx0XHRcdFx0XHRmVmFsdWUuZm9jdXNlZCghIXZhbHVlKTtcblx0XHRcdFx0fVxuXHRcdFx0fTtcblxuXHRcdCRlbC5pbnB1dG9zYXVydXMoe1xuXHRcdFx0cGFyc2VPbkJsdXI6IHRydWUsXG5cdFx0XHRhbGxvd0RyYWdBbmREcm9wOiB0cnVlLFxuXHRcdFx0Zm9jdXNDYWxsYmFjazogZkZvY3VzQ2FsbGJhY2ssXG5cdFx0XHRpbnB1dERlbGltaXRlcnM6IGlucHV0RGVsaW1pdGVycyxcblx0XHRcdGF1dG9Db21wbGV0ZVNvdXJjZTogZkF1dG9Db21wbGV0ZVNvdXJjZSxcblx0XHRcdHNwbGl0SG9vazogKHZhbHVlKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHYgPSBVdGlscy50cmltKHZhbHVlKTtcblx0XHRcdFx0aWYgKHYgJiYgLTEgPCBpbnB1dERlbGltaXRlcnMuaW5kZXhPZih2LnN1YnN0cigtMSkpKSB7XG5cdFx0XHRcdFx0cmV0dXJuIEVtYWlsTW9kZWwuc3BsaXRFbWFpbExpbmUodmFsdWUpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBudWxsO1xuXHRcdFx0fSxcblx0XHRcdHBhcnNlSG9vazogKGlucHV0KSA9PlxuXHRcdFx0XHRfLm1hcChcblx0XHRcdFx0XHRfLmZsYXR0ZW4oXG5cdFx0XHRcdFx0XHRfLm1hcChpbnB1dCwgKGlucHV0VmFsdWUpID0+IHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgdmFsdWVzID0gRW1haWxNb2RlbC5wYXJzZUVtYWlsTGluZShpbnB1dFZhbHVlKTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHZhbHVlcy5sZW5ndGggPyB2YWx1ZXMgOiBpbnB1dFZhbHVlO1xuXHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdChpdGVtKSA9PiAoXy5pc09iamVjdChpdGVtKSA/IFtpdGVtLnRvTGluZShmYWxzZSksIGl0ZW1dIDogW2l0ZW0sIG51bGxdKVxuXHRcdFx0XHQpLFxuXHRcdFx0Y2hhbmdlOiAoZXZlbnQpID0+IHtcblx0XHRcdFx0JGVsLmRhdGEoJ0VtYWlsc1RhZ3NWYWx1ZScsIGV2ZW50LnRhcmdldC52YWx1ZSk7XG5cdFx0XHRcdGZWYWx1ZShldmVudC50YXJnZXQudmFsdWUpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0aWYgKGZWYWx1ZSAmJiBmVmFsdWUuZm9jdXNlZCAmJiBmVmFsdWUuZm9jdXNlZC5zdWJzY3JpYmUpIHtcblx0XHRcdGZWYWx1ZS5mb2N1c2VkLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdFx0JGVsLmlucHV0b3NhdXJ1cyh2YWx1ZSA/ICdmb2N1cycgOiAnYmx1cicpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9LFxuXHR1cGRhdGU6IChlbGVtZW50LCBmVmFsdWVBY2Nlc3NvcikgPT4ge1xuXHRcdGNvbnN0ICRvRWwgPSAkKGVsZW1lbnQpLFxuXHRcdFx0ZlZhbHVlID0gZlZhbHVlQWNjZXNzb3IoKSxcblx0XHRcdHZhbHVlID0ga28udW53cmFwKGZWYWx1ZSk7XG5cblx0XHRpZiAoJG9FbC5kYXRhKCdFbWFpbHNUYWdzVmFsdWUnKSAhPT0gdmFsdWUpIHtcblx0XHRcdCRvRWwudmFsKHZhbHVlKTtcblx0XHRcdCRvRWwuZGF0YSgnRW1haWxzVGFnc1ZhbHVlJywgdmFsdWUpO1xuXHRcdFx0JG9FbC5pbnB1dG9zYXVydXMoJ3JlZnJlc2gnKTtcblx0XHR9XG5cdH1cbn07XG5cbmtvLmJpbmRpbmdIYW5kbGVycy5jb21tYW5kID0ge1xuXHRpbml0OiAoZWxlbWVudCwgZlZhbHVlQWNjZXNzb3IsIGZBbGxCaW5kaW5nc0FjY2Vzc29yLCB2aWV3TW9kZWwsIGJpbmRpbmdDb250ZXh0KSA9PiB7XG5cdFx0Y29uc3QganFFbGVtZW50ID0gJChlbGVtZW50KSxcblx0XHRcdGNvbW1hbmQgPSBmVmFsdWVBY2Nlc3NvcigpO1xuXG5cdFx0aWYgKCFjb21tYW5kIHx8ICFjb21tYW5kLmlzQ29tbWFuZCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdWYWx1ZSBzaG91bGQgYmUgYSBjb21tYW5kJyk7XG5cdFx0fVxuXG5cdFx0aWYgKCFjb21tYW5kLmVuYWJsZWQpIHtcblx0XHRcdGNvbW1hbmQuZW5hYmxlZCA9IGtvLm9ic2VydmFibGUodHJ1ZSk7XG5cdFx0fVxuXG5cdFx0aWYgKCFjb21tYW5kLmNhbkV4ZWN1dGUpIHtcblx0XHRcdGNvbnN0IF9fcmVhbENhbkV4ZWN1dGUgPSBjb21tYW5kLl9fcmVhbENhbkV4ZWN1dGU7XG5cdFx0XHRpZiAoXy5pc0Z1bmN0aW9uKF9fcmVhbENhbkV4ZWN1dGUpKSB7XG5cdFx0XHRcdGNvbW1hbmQuY2FuRXhlY3V0ZSA9IGtvLmNvbXB1dGVkKCgpID0+IGNvbW1hbmQuZW5hYmxlZCgpICYmIF9fcmVhbENhbkV4ZWN1dGUuY2FsbCh2aWV3TW9kZWwsIHZpZXdNb2RlbCkpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29tbWFuZC5jYW5FeGVjdXRlID0ga28uY29tcHV0ZWQoKCkgPT4gY29tbWFuZC5lbmFibGVkKCkgJiYgISFfX3JlYWxDYW5FeGVjdXRlKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRqcUVsZW1lbnQuYWRkQ2xhc3MoJ2NvbW1hbmQnKTtcblx0XHRrby5iaW5kaW5nSGFuZGxlcnNbanFFbGVtZW50LmlzKCdmb3JtJykgPyAnc3VibWl0JyA6ICdjbGljayddLmluaXQoXG5cdFx0XHRlbGVtZW50LFxuXHRcdFx0ZlZhbHVlQWNjZXNzb3IsXG5cdFx0XHRmQWxsQmluZGluZ3NBY2Nlc3Nvcixcblx0XHRcdHZpZXdNb2RlbCxcblx0XHRcdGJpbmRpbmdDb250ZXh0XG5cdFx0KTtcblx0fSxcblx0dXBkYXRlOiAoZWxlbWVudCwgZlZhbHVlQWNjZXNzb3IpID0+IHtcblx0XHRjb25zdCBqcUVsZW1lbnQgPSAkKGVsZW1lbnQpLFxuXHRcdFx0Y29tbWFuZCA9IGZWYWx1ZUFjY2Vzc29yKCk7XG5cblx0XHRsZXQgcmVzdWx0ID0gY29tbWFuZC5lbmFibGVkKCk7XG5cblx0XHRqcUVsZW1lbnQudG9nZ2xlQ2xhc3MoJ2NvbW1hbmQtbm90LWVuYWJsZWQnLCAhcmVzdWx0KTtcblxuXHRcdGlmIChyZXN1bHQpIHtcblx0XHRcdHJlc3VsdCA9IGNvbW1hbmQuY2FuRXhlY3V0ZSgpO1xuXHRcdFx0anFFbGVtZW50LnRvZ2dsZUNsYXNzKCdjb21tYW5kLWNhbi1ub3QtYmUtZXhlY3V0ZScsICFyZXN1bHQpO1xuXHRcdH1cblxuXHRcdGpxRWxlbWVudC50b2dnbGVDbGFzcygnY29tbWFuZC1kaXNhYmxlZCBkaXNhYmxlIGRpc2FibGVkJywgIXJlc3VsdCkudG9nZ2xlQ2xhc3MoJ25vLWRpc2FibGVkJywgISFyZXN1bHQpO1xuXG5cdFx0aWYgKGpxRWxlbWVudC5pcygnaW5wdXQnKSB8fCBqcUVsZW1lbnQuaXMoJ2J1dHRvbicpKSB7XG5cdFx0XHRqcUVsZW1lbnQucHJvcCgnZGlzYWJsZWQnLCAhcmVzdWx0KTtcblx0XHR9XG5cdH1cbn07XG5cbi8vIGV4dGVuZGVyc1xuXG5rby5leHRlbmRlcnMudHJpbW1lciA9ICh0YXJnZXQpID0+IHtcblx0Y29uc3QgVXRpbHMgPSByZXF1aXJlKCdDb21tb24vVXRpbHMnKSxcblx0XHRyZXN1bHQgPSBrby5jb21wdXRlZCh7XG5cdFx0XHRyZWFkOiB0YXJnZXQsXG5cdFx0XHR3cml0ZTogKG5ld1ZhbHVlKSA9PiB7XG5cdFx0XHRcdHRhcmdldChVdGlscy50cmltKG5ld1ZhbHVlLnRvU3RyaW5nKCkpKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRyZXN1bHQodGFyZ2V0KCkpO1xuXHRyZXR1cm4gcmVzdWx0O1xufTtcblxua28uZXh0ZW5kZXJzLnBvc0ludGVyZXIgPSAodGFyZ2V0LCBkZWZhdWx0VmFsKSA9PiB7XG5cdGNvbnN0IFV0aWxzID0gcmVxdWlyZSgnQ29tbW9uL1V0aWxzJyksXG5cdFx0cmVzdWx0ID0ga28uY29tcHV0ZWQoe1xuXHRcdFx0cmVhZDogdGFyZ2V0LFxuXHRcdFx0d3JpdGU6IChuZXdWYWx1ZSkgPT4ge1xuXHRcdFx0XHRsZXQgdmFsID0gVXRpbHMucEludChuZXdWYWx1ZS50b1N0cmluZygpLCBkZWZhdWx0VmFsKTtcblx0XHRcdFx0aWYgKDAgPj0gdmFsKSB7XG5cdFx0XHRcdFx0dmFsID0gZGVmYXVsdFZhbDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICh2YWwgPT09IHRhcmdldCgpICYmICcnICsgdmFsICE9PSAnJyArIG5ld1ZhbHVlKSB7XG5cdFx0XHRcdFx0dGFyZ2V0KHZhbCArIDEpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dGFyZ2V0KHZhbCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0cmVzdWx0KHRhcmdldCgpKTtcblx0cmV0dXJuIHJlc3VsdDtcbn07XG5cbmtvLmV4dGVuZGVycy5saW1pdGVkTGlzdCA9ICh0YXJnZXQsIGxpbWl0ZWRMaXN0KSA9PiB7XG5cdGNvbnN0IFV0aWxzID0gcmVxdWlyZSgnQ29tbW9uL1V0aWxzJyksXG5cdFx0cmVzdWx0ID0ga29cblx0XHRcdC5jb21wdXRlZCh7XG5cdFx0XHRcdHJlYWQ6IHRhcmdldCxcblx0XHRcdFx0d3JpdGU6IChuZXdWYWx1ZSkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGtvLnVud3JhcCh0YXJnZXQpLFxuXHRcdFx0XHRcdFx0bGlzdCA9IGtvLnVud3JhcChsaW1pdGVkTGlzdCk7XG5cblx0XHRcdFx0XHRpZiAoVXRpbHMuaXNOb25FbXB0eUFycmF5KGxpc3QpKSB7XG5cdFx0XHRcdFx0XHRpZiAoLTEgPCBVdGlscy5pbkFycmF5KG5ld1ZhbHVlLCBsaXN0KSkge1xuXHRcdFx0XHRcdFx0XHR0YXJnZXQobmV3VmFsdWUpO1xuXHRcdFx0XHRcdFx0fSBlbHNlIGlmICgtMSA8IFV0aWxzLmluQXJyYXkoY3VycmVudFZhbHVlLCBsaXN0KSkge1xuXHRcdFx0XHRcdFx0XHR0YXJnZXQoY3VycmVudFZhbHVlICsgJyAnKTtcblx0XHRcdFx0XHRcdFx0dGFyZ2V0KGN1cnJlbnRWYWx1ZSk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR0YXJnZXQobGlzdFswXSArICcgJyk7XG5cdFx0XHRcdFx0XHRcdHRhcmdldChsaXN0WzBdKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGFyZ2V0KCcnKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0XHQuZXh0ZW5kKHsgbm90aWZ5OiAnYWx3YXlzJyB9KTtcblxuXHRyZXN1bHQodGFyZ2V0KCkpO1xuXG5cdGlmICghcmVzdWx0LnZhbHVlSGFzTXV0YXRlZCkge1xuXHRcdHJlc3VsdC52YWx1ZUhhc011dGF0ZWQgPSAoKSA9PiB7XG5cdFx0XHR0YXJnZXQudmFsdWVIYXNNdXRhdGVkKCk7XG5cdFx0fTtcblx0fVxuXG5cdHJldHVybiByZXN1bHQ7XG59O1xuXG5rby5leHRlbmRlcnMucmV2ZXJzaWJsZSA9ICh0YXJnZXQpID0+IHtcblx0bGV0IHZhbHVlID0gdGFyZ2V0KCk7XG5cblx0dGFyZ2V0LmNvbW1pdCA9ICgpID0+IHtcblx0XHR2YWx1ZSA9IHRhcmdldCgpO1xuXHR9O1xuXG5cdHRhcmdldC5yZXZlcnNlID0gKCkgPT4ge1xuXHRcdHRhcmdldCh2YWx1ZSk7XG5cdH07XG5cblx0dGFyZ2V0LmNvbW1pdGVkVmFsdWUgPSAoKSA9PiB2YWx1ZTtcblx0cmV0dXJuIHRhcmdldDtcbn07XG5cbmtvLmV4dGVuZGVycy50b2dnbGVTdWJzY3JpYmUgPSAodGFyZ2V0LCBvcHRpb25zKSA9PiB7XG5cdHRhcmdldC5zdWJzY3JpYmUob3B0aW9uc1sxXSwgb3B0aW9uc1swXSwgJ2JlZm9yZUNoYW5nZScpO1xuXHR0YXJnZXQuc3Vic2NyaWJlKG9wdGlvbnNbMl0sIG9wdGlvbnNbMF0pO1xuXHRyZXR1cm4gdGFyZ2V0O1xufTtcblxua28uZXh0ZW5kZXJzLnRvZ2dsZVN1YnNjcmliZVByb3BlcnR5ID0gKHRhcmdldCwgb3B0aW9ucykgPT4ge1xuXHRjb25zdCBwcm9wID0gb3B0aW9uc1sxXTtcblx0aWYgKHByb3ApIHtcblx0XHR0YXJnZXQuc3Vic2NyaWJlKFxuXHRcdFx0KHByZXYpID0+IHtcblx0XHRcdFx0aWYgKHByZXYgJiYgcHJldltwcm9wXSkge1xuXHRcdFx0XHRcdHByZXZbcHJvcF0oZmFsc2UpO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0b3B0aW9uc1swXSxcblx0XHRcdCdiZWZvcmVDaGFuZ2UnXG5cdFx0KTtcblxuXHRcdHRhcmdldC5zdWJzY3JpYmUoKG5leHQpID0+IHtcblx0XHRcdGlmIChuZXh0ICYmIG5leHRbcHJvcF0pIHtcblx0XHRcdFx0bmV4dFtwcm9wXSh0cnVlKTtcblx0XHRcdH1cblx0XHR9LCBvcHRpb25zWzBdKTtcblx0fVxuXG5cdHJldHVybiB0YXJnZXQ7XG59O1xuXG5rby5leHRlbmRlcnMuZmFsc2VUaW1lb3V0ID0gKHRhcmdldCwgb3B0aW9uKSA9PiB7XG5cdHRhcmdldC5pRmFsc2VUaW1lb3V0VGltZW91dCA9IDA7XG5cdHRhcmdldC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0aWYgKHZhbHVlKSB7XG5cdFx0XHR3aW5kb3cuY2xlYXJUaW1lb3V0KHRhcmdldC5pRmFsc2VUaW1lb3V0VGltZW91dCk7XG5cdFx0XHR0YXJnZXQuaUZhbHNlVGltZW91dFRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdHRhcmdldChmYWxzZSk7XG5cdFx0XHRcdHRhcmdldC5pRmFsc2VUaW1lb3V0VGltZW91dCA9IDA7XG5cdFx0XHR9LCByZXF1aXJlKCdDb21tb24vVXRpbHMnKS5wSW50KG9wdGlvbikpO1xuXHRcdH1cblx0fSk7XG5cblx0cmV0dXJuIHRhcmdldDtcbn07XG5cbmtvLmV4dGVuZGVycy5zcGVjaWFsVGhyb3R0bGUgPSAodGFyZ2V0LCBvcHRpb24pID0+IHtcblx0dGFyZ2V0LmlTcGVjaWFsVGhyb3R0bGVUaW1lb3V0VmFsdWUgPSByZXF1aXJlKCdDb21tb24vVXRpbHMnKS5wSW50KG9wdGlvbik7XG5cdGlmICgwIDwgdGFyZ2V0LmlTcGVjaWFsVGhyb3R0bGVUaW1lb3V0VmFsdWUpIHtcblx0XHR0YXJnZXQuaVNwZWNpYWxUaHJvdHRsZVRpbWVvdXQgPSAwO1xuXHRcdHRhcmdldC52YWx1ZUZvclJlYWQgPSBrby5vYnNlcnZhYmxlKCEhdGFyZ2V0KCkpLmV4dGVuZCh7IHRocm90dGxlOiAxMCB9KTtcblxuXHRcdHJldHVybiBrby5jb21wdXRlZCh7XG5cdFx0XHRyZWFkOiB0YXJnZXQudmFsdWVGb3JSZWFkLFxuXHRcdFx0d3JpdGU6IChiVmFsdWUpID0+IHtcblx0XHRcdFx0aWYgKGJWYWx1ZSkge1xuXHRcdFx0XHRcdHRhcmdldC52YWx1ZUZvclJlYWQoYlZhbHVlKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRpZiAodGFyZ2V0LnZhbHVlRm9yUmVhZCgpKSB7XG5cdFx0XHRcdFx0XHR3aW5kb3cuY2xlYXJUaW1lb3V0KHRhcmdldC5pU3BlY2lhbFRocm90dGxlVGltZW91dCk7XG5cdFx0XHRcdFx0XHR0YXJnZXQuaVNwZWNpYWxUaHJvdHRsZVRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdHRhcmdldC52YWx1ZUZvclJlYWQoZmFsc2UpO1xuXHRcdFx0XHRcdFx0XHR0YXJnZXQuaVNwZWNpYWxUaHJvdHRsZVRpbWVvdXQgPSAwO1xuXHRcdFx0XHRcdFx0fSwgdGFyZ2V0LmlTcGVjaWFsVGhyb3R0bGVUaW1lb3V0VmFsdWUpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR0YXJnZXQudmFsdWVGb3JSZWFkKGJWYWx1ZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRyZXR1cm4gdGFyZ2V0O1xufTtcblxua28uZXh0ZW5kZXJzLmlkbGVUcmlnZ2VyID0gKHRhcmdldCkgPT4ge1xuXHR0YXJnZXQudHJpZ2dlciA9IGtvLm9ic2VydmFibGUoU2F2ZVNldHRpbmdzU3RlcC5JZGxlKTtcblx0cmV0dXJuIHRhcmdldDtcbn07XG5cbi8vIGZ1bmN0aW9uc1xuXG5rby5vYnNlcnZhYmxlLmZuLmlkbGVUcmlnZ2VyID0gZnVuY3Rpb24oKSB7XG5cdHJldHVybiB0aGlzLmV4dGVuZCh7ICdpZGxlVHJpZ2dlcic6IHRydWUgfSk7XG59O1xuXG5rby5vYnNlcnZhYmxlLmZuLnZhbGlkYXRlTm9uZSA9IGZ1bmN0aW9uKCkge1xuXHR0aGlzLmhhc0Vycm9yID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cdHJldHVybiB0aGlzO1xufTtcblxua28ub2JzZXJ2YWJsZS5mbi52YWxpZGF0ZUVtYWlsID0gZnVuY3Rpb24oKSB7XG5cdHRoaXMuaGFzRXJyb3IgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblxuXHR0aGlzLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHR0aGlzLmhhc0Vycm9yKCcnICE9PSB2YWx1ZSAmJiAhL15bXkBcXHNdK0BbXkBcXHNdKyQvLnRlc3QodmFsdWUpKTtcblx0fSk7XG5cblx0dGhpcy52YWx1ZUhhc011dGF0ZWQoKTtcblx0cmV0dXJuIHRoaXM7XG59O1xuXG5rby5vYnNlcnZhYmxlLmZuLnZhbGlkYXRlU2ltcGxlRW1haWwgPSBmdW5jdGlvbigpIHtcblx0dGhpcy5oYXNFcnJvciA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXG5cdHRoaXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuXHRcdHRoaXMuaGFzRXJyb3IoJycgIT09IHZhbHVlICYmICEvXi4rQC4rJC8udGVzdCh2YWx1ZSkpO1xuXHR9KTtcblxuXHR0aGlzLnZhbHVlSGFzTXV0YXRlZCgpO1xuXHRyZXR1cm4gdGhpcztcbn07XG5cbmtvLm9ic2VydmFibGUuZm4uZGVsZXRlQWNjZXNzSGVscGVyID0gZnVuY3Rpb24oKSB7XG5cdHRoaXMuZXh0ZW5kKHsgZmFsc2VUaW1lb3V0OiAzMDAwIH0pLmV4dGVuZCh7IHRvZ2dsZVN1YnNjcmliZVByb3BlcnR5OiBbdGhpcywgJ2RlbGV0ZUFjY2VzcyddIH0pO1xuXHRyZXR1cm4gdGhpcztcbn07XG5cbmtvLm9ic2VydmFibGUuZm4udmFsaWRhdGVGdW5jID0gZnVuY3Rpb24oZkZ1bmMpIHtcblx0dGhpcy5oYXNGdW5jRXJyb3IgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblxuXHRpZiAoXy5pc0Z1bmN0aW9uKGZGdW5jKSkge1xuXHRcdHRoaXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0dGhpcy5oYXNGdW5jRXJyb3IoIWZGdW5jKHZhbHVlKSk7XG5cdFx0fSk7XG5cblx0XHR0aGlzLnZhbHVlSGFzTXV0YXRlZCgpO1xuXHR9XG5cblx0cmV0dXJuIHRoaXM7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBrbztcbiIsImltcG9ydCB3aW5kb3cgZnJvbSAnd2luZG93JztcbmltcG9ydCAkIGZyb20gJyQnO1xuaW1wb3J0IF8gZnJvbSAnXyc7XG5pbXBvcnQga28gZnJvbSAna28nO1xuaW1wb3J0IEF1dG9saW5rZXIgZnJvbSAnQXV0b2xpbmtlcic7XG5cbmltcG9ydCB7ICR3aW4sICRkaXYsICRoY29udCwgZHJvcGRvd25WaXNpYmlsaXR5LCBkYXRhIGFzIEdsb2JhbHNEYXRhIH0gZnJvbSAnQ29tbW9uL0dsb2JhbHMnO1xuaW1wb3J0IHsgQ29tcG9zZVR5cGUsIEV2ZW50S2V5Q29kZSwgU2F2ZVNldHRpbmdzU3RlcCwgRm9sZGVyVHlwZSB9IGZyb20gJ0NvbW1vbi9FbnVtcyc7XG5pbXBvcnQgeyBNaW1lIH0gZnJvbSAnQ29tbW9uL01pbWUnO1xuaW1wb3J0IHsgamFzc2wgfSBmcm9tICdDb21tb24vSmFzc2wnO1xuXG5jb25zdCB0cmltID0gJC50cmltO1xuY29uc3QgaW5BcnJheSA9ICQuaW5BcnJheTtcbmNvbnN0IGlzQXJyYXkgPSBfLmlzQXJyYXk7XG5jb25zdCBpc09iamVjdCA9IF8uaXNPYmplY3Q7XG5jb25zdCBpc0Z1bmMgPSBfLmlzRnVuY3Rpb247XG5jb25zdCBpc1VuZCA9IF8uaXNVbmRlZmluZWQ7XG5jb25zdCBpc051bGwgPSBfLmlzTnVsbDtcbmNvbnN0IGhhcyA9IF8uaGFzO1xuY29uc3QgYmluZCA9IF8uYmluZDtcbmNvbnN0IG5vb3AgPSAoKSA9PiB7fTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1lbXB0eS1mdW5jdGlvblxuY29uc3Qgbm9vcFRydWUgPSAoKSA9PiB0cnVlO1xuY29uc3Qgbm9vcEZhbHNlID0gKCkgPT4gZmFsc2U7XG5cbmV4cG9ydCB7IHRyaW0sIGluQXJyYXksIGlzQXJyYXksIGlzT2JqZWN0LCBpc0Z1bmMsIGlzVW5kLCBpc051bGwsIGhhcywgYmluZCwgbm9vcCwgbm9vcFRydWUsIG5vb3BGYWxzZSwgamFzc2wgfTtcblxuLyoqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaWxlbnRUcnlDYXRjaChmdW5jKSB7XG5cdHRyeSB7XG5cdFx0ZnVuYygpO1xuXHR9IGNhdGNoIChlKSB7fSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWVtcHR5XG59XG5cbi8qKlxuICogQHBhcmFtIHsqfSB2YWx1ZVxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc05vcm1hbCh2YWx1ZSkge1xuXHRyZXR1cm4gIWlzVW5kKHZhbHVlKSAmJiAhaXNOdWxsKHZhbHVlKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0geyhzdHJpbmd8bnVtYmVyKX0gdmFsdWVcbiAqIEBwYXJhbSB7Ym9vbGVhbj19IGluY2x1ZGVaZXJvID0gdHJ1ZVxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Bvc051bWVyaWModmFsdWUsIGluY2x1ZGVaZXJvID0gdHJ1ZSkge1xuXHRyZXR1cm4gIWlzTm9ybWFsKHZhbHVlKVxuXHRcdD8gZmFsc2Vcblx0XHQ6IGluY2x1ZGVaZXJvXG5cdFx0PyAvXlswLTldKiQvLnRlc3QodmFsdWUudG9TdHJpbmcoKSlcblx0XHQ6IC9eWzEtOV0rWzAtOV0qJC8udGVzdCh2YWx1ZS50b1N0cmluZygpKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0geyp9IHZhbHVlXG4gKiBAcGFyYW0ge251bWJlcj19IGRlZmF1bHRWYWx1ciA9IDBcbiAqIEByZXR1cm5zIHtudW1iZXJ9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwSW50KHZhbHVlLCBkZWZhdWx0VmFsdXIgPSAwKSB7XG5cdGNvbnN0IHJlc3VsdCA9IGlzTm9ybWFsKHZhbHVlKSAmJiAnJyAhPT0gdmFsdWUgPyB3aW5kb3cucGFyc2VJbnQodmFsdWUsIDEwKSA6IGRlZmF1bHRWYWx1cjtcblx0cmV0dXJuIHdpbmRvdy5pc05hTihyZXN1bHQpID8gZGVmYXVsdFZhbHVyIDogcmVzdWx0O1xufVxuXG4vKipcbiAqIEBwYXJhbSB7Kn0gdmFsdWVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwU3RyaW5nKHZhbHVlKSB7XG5cdHJldHVybiBpc05vcm1hbCh2YWx1ZSkgPyAnJyArIHZhbHVlIDogJyc7XG59XG5cbi8qKlxuICogQHBhcmFtIHsqfSB2YWx1ZVxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwQm9vbCh2YWx1ZSkge1xuXHRyZXR1cm4gISF2YWx1ZTtcbn1cblxuLyoqXG4gKiBAcGFyYW0geyp9IHZhbHVlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gYm9vbFRvQWpheCh2YWx1ZSkge1xuXHRyZXR1cm4gdmFsdWUgPyAnMScgOiAnMCc7XG59XG5cbi8qKlxuICogQHBhcmFtIHsqfSB2YWx1ZXNcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNOb25FbXB0eUFycmF5KHZhbHVlcykge1xuXHRyZXR1cm4gaXNBcnJheSh2YWx1ZXMpICYmIDAgPCB2YWx1ZXMubGVuZ3RoO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb21wb25lbnRcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVVUklDb21wb25lbnQoY29tcG9uZW50KSB7XG5cdHJldHVybiB3aW5kb3cuZW5jb2RlVVJJQ29tcG9uZW50KGNvbXBvbmVudCk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGNvbXBvbmVudFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVVSSUNvbXBvbmVudChjb21wb25lbnQpIHtcblx0cmV0dXJuIHdpbmRvdy5kZWNvZGVVUklDb21wb25lbnQoY29tcG9uZW50KTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdXJsXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlVVJJKHVybCkge1xuXHRyZXR1cm4gd2luZG93LmRlY29kZVVSSSh1cmwpO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB1cmxcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVVUkkodXJsKSB7XG5cdHJldHVybiB3aW5kb3cuZW5jb2RlVVJJKHVybCk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHF1ZXJ5U3RyaW5nXG4gKiBAcmV0dXJucyB7T2JqZWN0fVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2ltcGxlUXVlcnlQYXJzZXIocXVlcnlTdHJpbmcpIHtcblx0bGV0IGluZGV4ID0gMCxcblx0XHRsZW4gPSAwLFxuXHRcdHRlbXAgPSBudWxsO1xuXG5cdGNvbnN0IHF1ZXJpZXMgPSBxdWVyeVN0cmluZy5zcGxpdCgnJicpLFxuXHRcdHBhcmFtcyA9IHt9O1xuXG5cdGZvciAobGVuID0gcXVlcmllcy5sZW5ndGg7IGluZGV4IDwgbGVuOyBpbmRleCsrKSB7XG5cdFx0dGVtcCA9IHF1ZXJpZXNbaW5kZXhdLnNwbGl0KCc9Jyk7XG5cdFx0cGFyYW1zW2RlY29kZVVSSUNvbXBvbmVudCh0ZW1wWzBdKV0gPSBkZWNvZGVVUklDb21wb25lbnQodGVtcFsxXSk7XG5cdH1cblxuXHRyZXR1cm4gcGFyYW1zO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyPX0gbGVuID0gMzJcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmYWtlTWQ1KGxlbiA9IDMyKSB7XG5cdGNvbnN0IGxpbmUgPSAnMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Jyxcblx0XHRsaW5lTGVuID0gbGluZS5sZW5ndGg7XG5cblx0bGVuID0gcEludChsZW4pO1xuXG5cdGxldCByZXN1bHQgPSAnJztcblx0d2hpbGUgKHJlc3VsdC5sZW5ndGggPCBsZW4pIHtcblx0XHRyZXN1bHQgKz0gbGluZS5zdWJzdHIod2luZG93Lk1hdGgucm91bmQod2luZG93Lk1hdGgucmFuZG9tKCkgKiBsaW5lTGVuKSwgMSk7XG5cdH1cblxuXHRyZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0XG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlSHRtbCh0ZXh0KSB7XG5cdHJldHVybiBpc05vcm1hbCh0ZXh0KSA/IF8uZXNjYXBlKHRleHQudG9TdHJpbmcoKSkgOiAnJztcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdGV4dFxuICogQHBhcmFtIHtudW1iZXI9fSBsZW4gPSAxMDBcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdFBsYWluVGV4dCh0ZXh0LCBsZW4gPSAxMDApIHtcblx0bGV0IHByZWZpeCA9ICcnLFxuXHRcdHN1YlRleHQgPSAnJyxcblx0XHRyZXN1bHQgPSB0ZXh0LFxuXHRcdHNwYWNlUG9zID0gMCxcblx0XHRuZXdMaW5lUG9zID0gMDtcblxuXHR3aGlsZSAocmVzdWx0Lmxlbmd0aCA+IGxlbikge1xuXHRcdHN1YlRleHQgPSByZXN1bHQuc3Vic3RyaW5nKDAsIGxlbik7XG5cdFx0c3BhY2VQb3MgPSBzdWJUZXh0Lmxhc3RJbmRleE9mKCcgJyk7XG5cdFx0bmV3TGluZVBvcyA9IHN1YlRleHQubGFzdEluZGV4T2YoJ1xcbicpO1xuXG5cdFx0aWYgKC0xICE9PSBuZXdMaW5lUG9zKSB7XG5cdFx0XHRzcGFjZVBvcyA9IG5ld0xpbmVQb3M7XG5cdFx0fVxuXG5cdFx0aWYgKC0xID09PSBzcGFjZVBvcykge1xuXHRcdFx0c3BhY2VQb3MgPSBsZW47XG5cdFx0fVxuXG5cdFx0cHJlZml4ICs9IHN1YlRleHQuc3Vic3RyaW5nKDAsIHNwYWNlUG9zKSArICdcXG4nO1xuXHRcdHJlc3VsdCA9IHJlc3VsdC5zdWJzdHJpbmcoc3BhY2VQb3MgKyAxKTtcblx0fVxuXG5cdHJldHVybiBwcmVmaXggKyByZXN1bHQ7XG59XG5cbmNvbnN0IHRpbWVPdXRBY3Rpb24gPSAoZnVuY3Rpb24oKSB7XG5cdGNvbnN0IHRpbWVPdXRzID0ge307XG5cdHJldHVybiAoYWN0aW9uLCBmRnVuY3Rpb24sIHRpbWVPdXQpID0+IHtcblx0XHR0aW1lT3V0c1thY3Rpb25dID0gaXNVbmQodGltZU91dHNbYWN0aW9uXSkgPyAwIDogdGltZU91dHNbYWN0aW9uXTtcblx0XHR3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVPdXRzW2FjdGlvbl0pO1xuXHRcdHRpbWVPdXRzW2FjdGlvbl0gPSB3aW5kb3cuc2V0VGltZW91dChmRnVuY3Rpb24sIHRpbWVPdXQpO1xuXHR9O1xufSkoKTtcblxuY29uc3QgdGltZU91dEFjdGlvblNlY29uZCA9IChmdW5jdGlvbigpIHtcblx0Y29uc3QgdGltZU91dHMgPSB7fTtcblx0cmV0dXJuIChhY3Rpb24sIGZGdW5jdGlvbiwgdGltZU91dCkgPT4ge1xuXHRcdGlmICghdGltZU91dHNbYWN0aW9uXSkge1xuXHRcdFx0dGltZU91dHNbYWN0aW9uXSA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0ZkZ1bmN0aW9uKCk7XG5cdFx0XHRcdHRpbWVPdXRzW2FjdGlvbl0gPSAwO1xuXHRcdFx0fSwgdGltZU91dCk7XG5cdFx0fVxuXHR9O1xufSkoKTtcblxuZXhwb3J0IHsgdGltZU91dEFjdGlvbiwgdGltZU91dEFjdGlvblNlY29uZCB9O1xuXG4vKipcbiAqIEBwYXJhbSB7YW55fSBtXG4gKiBAcmV0dXJucyB7YW55fVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVNb2R1bGUobSkge1xuXHRyZXR1cm4gKG0gJiYgbS5kZWZhdWx0ID8gbS5kZWZhdWx0IDogbSkgfHwgJyc7XG59XG5cbi8qKlxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbkZvY3VzKCkge1xuXHR0cnkge1xuXHRcdGlmICh3aW5kb3cuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkge1xuXHRcdFx0aWYgKGlzVW5kKHdpbmRvdy5kb2N1bWVudC5hY3RpdmVFbGVtZW50Ll9faW5Gb2N1c0NhY2hlKSkge1xuXHRcdFx0XHR3aW5kb3cuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5fX2luRm9jdXNDYWNoZSA9ICQod2luZG93LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpLmlzKFxuXHRcdFx0XHRcdCdpbnB1dCx0ZXh0YXJlYSxpZnJhbWUsLmNrZV9lZGl0YWJsZSdcblx0XHRcdFx0KTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuICEhd2luZG93LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuX19pbkZvY3VzQ2FjaGU7XG5cdFx0fVxuXHR9IGNhdGNoIChlKSB7fSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWVtcHR5XG5cblx0cmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gZm9yY2VcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlSW5Gb2N1cyhmb3JjZSkge1xuXHRpZiAod2luZG93LmRvY3VtZW50ICYmIHdpbmRvdy5kb2N1bWVudC5hY3RpdmVFbGVtZW50ICYmIHdpbmRvdy5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIpIHtcblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgYWN0aXZlRWwgPSAkKHdpbmRvdy5kb2N1bWVudC5hY3RpdmVFbGVtZW50KTtcblx0XHRcdGlmIChhY3RpdmVFbCAmJiBhY3RpdmVFbC5pcygnaW5wdXQsdGV4dGFyZWEnKSkge1xuXHRcdFx0XHR3aW5kb3cuZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCk7XG5cdFx0XHR9IGVsc2UgaWYgKGZvcmNlKSB7XG5cdFx0XHRcdHdpbmRvdy5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTtcblx0XHRcdH1cblx0XHR9IGNhdGNoIChlKSB7fSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWVtcHR5XG5cdH1cbn1cblxuLyoqXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVNlbGVjdGlvbigpIHtcblx0dHJ5IHtcblx0XHRpZiAod2luZG93ICYmIHdpbmRvdy5nZXRTZWxlY3Rpb24pIHtcblx0XHRcdGNvbnN0IHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcblx0XHRcdGlmIChzZWwgJiYgc2VsLnJlbW92ZUFsbFJhbmdlcykge1xuXHRcdFx0XHRzZWwucmVtb3ZlQWxsUmFuZ2VzKCk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmICh3aW5kb3cuZG9jdW1lbnQgJiYgd2luZG93LmRvY3VtZW50LnNlbGVjdGlvbiAmJiB3aW5kb3cuZG9jdW1lbnQuc2VsZWN0aW9uLmVtcHR5KSB7XG5cdFx0XHR3aW5kb3cuZG9jdW1lbnQuc2VsZWN0aW9uLmVtcHR5KCk7XG5cdFx0fVxuXHR9IGNhdGNoIChlKSB7fSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWVtcHR5XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHByZWZpeFxuICogQHBhcmFtIHtzdHJpbmd9IHN1YmplY3RcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXBseVN1YmplY3RBZGQocHJlZml4LCBzdWJqZWN0KSB7XG5cdHByZWZpeCA9IHRyaW0ocHJlZml4LnRvVXBwZXJDYXNlKCkpO1xuXHRzdWJqZWN0ID0gdHJpbShzdWJqZWN0LnJlcGxhY2UoL1tcXHNdKy9nLCAnICcpKTtcblxuXHRsZXQgZHJvcCA9IGZhbHNlLFxuXHRcdHJlID0gJ1JFJyA9PT0gcHJlZml4LFxuXHRcdGZ3ZCA9ICdGV0QnID09PSBwcmVmaXg7XG5cblx0Y29uc3QgcGFydHMgPSBbXSxcblx0XHRwcmVmaXhJc1JlID0gIWZ3ZDtcblxuXHRpZiAoJycgIT09IHN1YmplY3QpIHtcblx0XHRfLmVhY2goc3ViamVjdC5zcGxpdCgnOicpLCAocGFydCkgPT4ge1xuXHRcdFx0Y29uc3QgdHJpbW1lZFBhcnQgPSB0cmltKHBhcnQpO1xuXHRcdFx0aWYgKCFkcm9wICYmICgvXihSRXxGV0QpJC9pLnRlc3QodHJpbW1lZFBhcnQpIHx8IC9eKFJFfEZXRClbWyhdW1xcZF0rW1xcXSldJC9pLnRlc3QodHJpbW1lZFBhcnQpKSkge1xuXHRcdFx0XHRpZiAoIXJlKSB7XG5cdFx0XHRcdFx0cmUgPSAhIS9eUkUvaS50ZXN0KHRyaW1tZWRQYXJ0KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICghZndkKSB7XG5cdFx0XHRcdFx0ZndkID0gISEvXkZXRC9pLnRlc3QodHJpbW1lZFBhcnQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRwYXJ0cy5wdXNoKHBhcnQpO1xuXHRcdFx0XHRkcm9wID0gdHJ1ZTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdGlmIChwcmVmaXhJc1JlKSB7XG5cdFx0cmUgPSBmYWxzZTtcblx0fSBlbHNlIHtcblx0XHRmd2QgPSBmYWxzZTtcblx0fVxuXG5cdHJldHVybiB0cmltKChwcmVmaXhJc1JlID8gJ1JlOiAnIDogJ0Z3ZDogJykgKyAocmUgPyAnUmU6ICcgOiAnJykgKyAoZndkID8gJ0Z3ZDogJyA6ICcnKSArIHRyaW0ocGFydHMuam9pbignOicpKSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtudW1iZXJ9IG51bVxuICogQHBhcmFtIHtudW1iZXJ9IGRlY1xuICogQHJldHVybnMge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJvdW5kTnVtYmVyKG51bSwgZGVjKSB7XG5cdHJldHVybiB3aW5kb3cuTWF0aC5yb3VuZChudW0gKiB3aW5kb3cuTWF0aC5wb3coMTAsIGRlYykpIC8gd2luZG93Lk1hdGgucG93KDEwLCBkZWMpO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7KG51bWJlcnxzdHJpbmcpfSBzaXplSW5CeXRlc1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyaWVuZGx5U2l6ZShzaXplSW5CeXRlcykge1xuXHRzaXplSW5CeXRlcyA9IHBJbnQoc2l6ZUluQnl0ZXMpO1xuXG5cdHN3aXRjaCAodHJ1ZSkge1xuXHRcdGNhc2UgMTA3Mzc0MTgyNCA8PSBzaXplSW5CeXRlczpcblx0XHRcdHJldHVybiByb3VuZE51bWJlcihzaXplSW5CeXRlcyAvIDEwNzM3NDE4MjQsIDEpICsgJ0dCJztcblx0XHRjYXNlIDEwNDg1NzYgPD0gc2l6ZUluQnl0ZXM6XG5cdFx0XHRyZXR1cm4gcm91bmROdW1iZXIoc2l6ZUluQnl0ZXMgLyAxMDQ4NTc2LCAxKSArICdNQic7XG5cdFx0Y2FzZSAxMDI0IDw9IHNpemVJbkJ5dGVzOlxuXHRcdFx0cmV0dXJuIHJvdW5kTnVtYmVyKHNpemVJbkJ5dGVzIC8gMTAyNCwgMCkgKyAnS0InO1xuXHRcdC8vIG5vIGRlZmF1bHRcblx0fVxuXG5cdHJldHVybiBzaXplSW5CeXRlcyArICdCJztcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gZGVzY1xuICovXG5leHBvcnQgZnVuY3Rpb24gbG9nKGRlc2MpIHtcblx0aWYgKHdpbmRvdy5jb25zb2xlICYmIHdpbmRvdy5jb25zb2xlLmxvZykge1xuXHRcdHdpbmRvdy5jb25zb2xlLmxvZyhkZXNjKTtcblx0fVxufVxuXG4vKipcbiAqIEBwYXJhbSB7P30gb2JqZWN0XG4gKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kTmFtZVxuICogQHBhcmFtIHtBcnJheT19IHBhcmFtc1xuICogQHBhcmFtIHtudW1iZXI9fSBkZWxheSA9IDBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlbGVnYXRlUnVuKG9iamVjdCwgbWV0aG9kTmFtZSwgcGFyYW1zLCBkZWxheSA9IDApIHtcblx0aWYgKG9iamVjdCAmJiBvYmplY3RbbWV0aG9kTmFtZV0pIHtcblx0XHRkZWxheSA9IHBJbnQoZGVsYXkpO1xuXHRcdHBhcmFtcyA9IGlzQXJyYXkocGFyYW1zKSA/IHBhcmFtcyA6IFtdO1xuXG5cdFx0aWYgKDAgPj0gZGVsYXkpIHtcblx0XHRcdG9iamVjdFttZXRob2ROYW1lXSguLi5wYXJhbXMpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRfLmRlbGF5KCgpID0+IHtcblx0XHRcdFx0b2JqZWN0W21ldGhvZE5hbWVdKC4uLnBhcmFtcyk7XG5cdFx0XHR9LCBkZWxheSk7XG5cdFx0fVxuXHR9XG59XG5cbi8qKlxuICogQHBhcmFtIHs/fSBldmVudFxuICovXG5leHBvcnQgZnVuY3Rpb24ga2lsbEN0cmxBQ3RybFMoZXZlbnQpIHtcblx0ZXZlbnQgPSBldmVudCB8fCB3aW5kb3cuZXZlbnQ7XG5cdGlmIChldmVudCAmJiBldmVudC5jdHJsS2V5ICYmICFldmVudC5zaGlmdEtleSAmJiAhZXZlbnQuYWx0S2V5KSB7XG5cdFx0Y29uc3Qga2V5ID0gZXZlbnQua2V5Q29kZSB8fCBldmVudC53aGljaDtcblx0XHRpZiAoa2V5ID09PSBFdmVudEtleUNvZGUuUykge1xuXHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdHJldHVybjtcblx0XHR9IGVsc2UgaWYgKGtleSA9PT0gRXZlbnRLZXlDb2RlLkEpIHtcblx0XHRcdGNvbnN0IHNlbmRlciA9IGV2ZW50LnRhcmdldCB8fCBldmVudC5zcmNFbGVtZW50O1xuXHRcdFx0aWYgKFxuXHRcdFx0XHRzZW5kZXIgJiZcblx0XHRcdFx0KCd0cnVlJyA9PT0gJycgKyBzZW5kZXIuY29udGVudEVkaXRhYmxlIHx8IChzZW5kZXIudGFnTmFtZSAmJiBzZW5kZXIudGFnTmFtZS5tYXRjaCgvSU5QVVR8VEVYVEFSRUEvaSkpKVxuXHRcdFx0KSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHdpbmRvdy5nZXRTZWxlY3Rpb24pIHtcblx0XHRcdFx0d2luZG93LmdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcygpO1xuXHRcdFx0fSBlbHNlIGlmICh3aW5kb3cuZG9jdW1lbnQuc2VsZWN0aW9uICYmIHdpbmRvdy5kb2N1bWVudC5zZWxlY3Rpb24uY2xlYXIpIHtcblx0XHRcdFx0d2luZG93LmRvY3VtZW50LnNlbGVjdGlvbi5jbGVhcigpO1xuXHRcdFx0fVxuXG5cdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdH1cblx0fVxufVxuXG4vKipcbiAqIEBwYXJhbSB7KE9iamVjdHxudWxsfHVuZGVmaW5lZCl9IGNvbnRleHRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZFeGVjdXRlXG4gKiBAcGFyYW0geyhGdW5jdGlvbnxib29sZWFufG51bGwpPX0gZkNhbkV4ZWN1dGUgPSB0cnVlXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb21tYW5kTGVnYWN5KGNvbnRleHQsIGZFeGVjdXRlLCBmQ2FuRXhlY3V0ZSA9IHRydWUpIHtcblx0bGV0IGZSZXN1bHQgPSBudWxsO1xuXHRjb25zdCBmTm9uRW1wdHkgPSAoLi4uYXJncykgPT4ge1xuXHRcdGlmIChmUmVzdWx0ICYmIGZSZXN1bHQuY2FuRXhlY3V0ZSAmJiBmUmVzdWx0LmNhbkV4ZWN1dGUoKSkge1xuXHRcdFx0ZkV4ZWN1dGUuYXBwbHkoY29udGV4dCwgYXJncyk7XG5cdFx0fVxuXHRcdHJldHVybiBmYWxzZTtcblx0fTtcblxuXHRmUmVzdWx0ID0gZkV4ZWN1dGUgPyBmTm9uRW1wdHkgOiBub29wO1xuXHRmUmVzdWx0LmVuYWJsZWQgPSBrby5vYnNlcnZhYmxlKHRydWUpO1xuXHRmUmVzdWx0LmlzQ29tbWFuZCA9IHRydWU7XG5cblx0aWYgKGlzRnVuYyhmQ2FuRXhlY3V0ZSkpIHtcblx0XHRmUmVzdWx0LmNhbkV4ZWN1dGUgPSBrby5jb21wdXRlZCgoKSA9PiBmUmVzdWx0ICYmIGZSZXN1bHQuZW5hYmxlZCgpICYmIGZDYW5FeGVjdXRlLmNhbGwoY29udGV4dCkpO1xuXHR9IGVsc2Uge1xuXHRcdGZSZXN1bHQuY2FuRXhlY3V0ZSA9IGtvLmNvbXB1dGVkKCgpID0+IGZSZXN1bHQgJiYgZlJlc3VsdC5lbmFibGVkKCkgJiYgISFmQ2FuRXhlY3V0ZSk7XG5cdH1cblxuXHRyZXR1cm4gZlJlc3VsdDtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdGhlbWVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBjb252ZXJ0VGhlbWVOYW1lID0gXy5tZW1vaXplKCh0aGVtZSkgPT4ge1xuXHRpZiAoJ0BjdXN0b20nID09PSB0aGVtZS5zdWJzdHIoLTcpKSB7XG5cdFx0dGhlbWUgPSB0cmltKHRoZW1lLnN1YnN0cmluZygwLCB0aGVtZS5sZW5ndGggLSA3KSk7XG5cdH1cblxuXHRyZXR1cm4gdHJpbShcblx0XHR0aGVtZVxuXHRcdFx0LnJlcGxhY2UoL1teYS16QS1aMC05XSsvZywgJyAnKVxuXHRcdFx0LnJlcGxhY2UoLyhbQS1aXSkvZywgJyAkMScpXG5cdFx0XHQucmVwbGFjZSgvW1xcc10rL2csICcgJylcblx0KTtcbn0pO1xuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcXVvdGVOYW1lKG5hbWUpIHtcblx0cmV0dXJuIG5hbWUucmVwbGFjZSgvW1wiXS9nLCAnXFxcXFwiJyk7XG59XG5cbi8qKlxuICogQHJldHVybnMge251bWJlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1pY3JvdGltZSgpIHtcblx0cmV0dXJuIG5ldyB3aW5kb3cuRGF0ZSgpLmdldFRpbWUoKTtcbn1cblxuLyoqXG4gKiBAcmV0dXJucyB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdGltZXN0YW1wKCkge1xuXHRyZXR1cm4gd2luZG93Lk1hdGgucm91bmQobWljcm90aW1lKCkgLyAxMDAwKTtcbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGxhbmd1YWdlXG4gKiBAcGFyYW0ge2Jvb2xlYW49fSBpc0VuZyA9IGZhbHNlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydExhbmdOYW1lKGxhbmd1YWdlLCBpc0VuZyA9IGZhbHNlKSB7XG5cdHJldHVybiByZXF1aXJlKCdDb21tb24vVHJhbnNsYXRvcicpLmkxOG4oXG5cdFx0J0xBTkdTX05BTUVTJyArICh0cnVlID09PSBpc0VuZyA/ICdfRU4nIDogJycpICsgJy9MQU5HXycgKyBsYW5ndWFnZS50b1VwcGVyQ2FzZSgpLnJlcGxhY2UoL1teYS16QS1aMC05XSsvZywgJ18nKSxcblx0XHRudWxsLFxuXHRcdGxhbmd1YWdlXG5cdCk7XG59XG5cbi8qKlxuICogQHJldHVybnMge29iamVjdH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRyYWdnYWJsZVBsYWNlKCkge1xuXHRyZXR1cm4gJChcblx0XHQnPGRpdiBjbGFzcz1cImRyYWdnYWJsZVBsYWNlXCI+JyArXG5cdFx0XHQnPHNwYW4gY2xhc3M9XCJ0ZXh0XCI+PC9zcGFuPiZuYnNwOycgK1xuXHRcdFx0JzxpIGNsYXNzPVwiaWNvbi1jb3B5IGljb24td2hpdGUgdmlzaWJsZS1vbi1jdHJsXCI+PC9pPicgK1xuXHRcdFx0JzxpIGNsYXNzPVwiaWNvbi1tYWlsIGljb24td2hpdGUgaGlkZGVuLW9uLWN0cmxcIj48L2k+JyArXG5cdFx0XHQnPC9kaXY+J1xuXHQpLmFwcGVuZFRvKCcjcmwtaGlkZGVuJyk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IGRvbU9wdGlvblxuICogQHBhcmFtIHtvYmplY3R9IGl0ZW1cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmYXV0T3B0aW9uc0FmdGVyUmVuZGVyKGRvbUl0ZW0sIGl0ZW0pIHtcblx0aWYgKGl0ZW0gJiYgIWlzVW5kKGl0ZW0uZGlzYWJsZWQpICYmIGRvbUl0ZW0pIHtcblx0XHQkKGRvbUl0ZW0pXG5cdFx0XHQudG9nZ2xlQ2xhc3MoJ2Rpc2FibGVkJywgaXRlbS5kaXNhYmxlZClcblx0XHRcdC5wcm9wKCdkaXNhYmxlZCcsIGl0ZW0uZGlzYWJsZWQpO1xuXHR9XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlXG4gKiBAcGFyYW0ge09iamVjdH0gYm9keVxuICogQHBhcmFtIHtib29sZWFufSBpc0h0bWxcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gcHJpbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyQnFTd2l0Y2hlcihib2R5KSB7XG5cdGJvZHkuZmluZCgnYmxvY2txdW90ZS5ybC1icS1zd2l0Y2hlcicpLnJlbW92ZUNsYXNzKCdybC1icS1zd2l0Y2hlciBoaWRkZW4tYnEnKTtcblx0Ym9keVxuXHRcdC5maW5kKCcucmxCbG9ja3F1b3RlU3dpdGNoZXInKVxuXHRcdC5vZmYoJy5ybEJsb2NrcXVvdGVTd2l0Y2hlcicpXG5cdFx0LnJlbW92ZSgpO1xuXHRib2R5LmZpbmQoJ1tkYXRhLWh0bWwtZWRpdG9yLWZvbnQtd3JhcHBlcl0nKS5yZW1vdmVBdHRyKCdkYXRhLWh0bWwtZWRpdG9yLWZvbnQtd3JhcHBlcicpO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSBtZXNzYWdlRGF0YVxuICogQHBhcmFtIHtPYmplY3R9IGJvZHlcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNIdG1sXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHByaW50XG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByZXZpZXdNZXNzYWdlKFxuXHR7IHRpdGxlLCBzdWJqZWN0LCBkYXRlLCBmcm9tQ3JlZHMsIHRvQ3JlZHMsIHRvTGFiZWwsIGNjQ2xhc3MsIGNjQ3JlZHMsIGNjTGFiZWwgfSxcblx0Ym9keSxcblx0aXNIdG1sLFxuXHRwcmludFxuKSB7XG5cdGNvbnN0IHdpbiA9IHdpbmRvdy5vcGVuKCcnKSxcblx0XHRkb2MgPSB3aW4uZG9jdW1lbnQsXG5cdFx0Ym9keUNsb25lID0gYm9keS5jbG9uZSgpLFxuXHRcdGJvZHlDbGFzcyA9IGlzSHRtbCA/ICdodG1sJyA6ICdwbGFpbic7XG5cblx0Y2xlYXJCcVN3aXRjaGVyKGJvZHlDbG9uZSk7XG5cblx0Y29uc3QgaHRtbCA9IGJvZHlDbG9uZSA/IGJvZHlDbG9uZS5odG1sKCkgOiAnJztcblxuXHRkb2Mud3JpdGUoXG5cdFx0ZGVNb2R1bGUocmVxdWlyZSgnSHRtbC9QcmV2aWV3TWVzc2FnZS5odG1sJykpXG5cdFx0XHQucmVwbGFjZSgne3t0aXRsZX19JywgZW5jb2RlSHRtbCh0aXRsZSkpXG5cdFx0XHQucmVwbGFjZSgne3tzdWJqZWN0fX0nLCBlbmNvZGVIdG1sKHN1YmplY3QpKVxuXHRcdFx0LnJlcGxhY2UoJ3t7ZGF0ZX19JywgZW5jb2RlSHRtbChkYXRlKSlcblx0XHRcdC5yZXBsYWNlKCd7e2Zyb21DcmVkc319JywgZW5jb2RlSHRtbChmcm9tQ3JlZHMpKVxuXHRcdFx0LnJlcGxhY2UoJ3t7dG9DcmVkc319JywgZW5jb2RlSHRtbCh0b0NyZWRzKSlcblx0XHRcdC5yZXBsYWNlKCd7e3RvTGFiZWx9fScsIGVuY29kZUh0bWwodG9MYWJlbCkpXG5cdFx0XHQucmVwbGFjZSgne3tjY0NsYXNzfX0nLCBlbmNvZGVIdG1sKGNjQ2xhc3MpKVxuXHRcdFx0LnJlcGxhY2UoJ3t7Y2NDcmVkc319JywgZW5jb2RlSHRtbChjY0NyZWRzKSlcblx0XHRcdC5yZXBsYWNlKCd7e2NjTGFiZWx9fScsIGVuY29kZUh0bWwoY2NMYWJlbCkpXG5cdFx0XHQucmVwbGFjZSgne3tib2R5Q2xhc3N9fScsIGJvZHlDbGFzcylcblx0XHRcdC5yZXBsYWNlKCd7e2h0bWx9fScsIGh0bWwpXG5cdCk7XG5cblx0ZG9jLmNsb3NlKCk7XG5cblx0aWYgKHByaW50KSB7XG5cdFx0d2luZG93LnNldFRpbWVvdXQoKCkgPT4gd2luLnByaW50KCksIDEwMCk7XG5cdH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmQ2FsbGJhY2tcbiAqIEBwYXJhbSB7P30ga29UcmlnZ2VyXG4gKiBAcGFyYW0gez99IGNvbnRleHQgPSBudWxsXG4gKiBAcGFyYW0ge251bWJlcj19IHRpbWVyID0gMTAwMFxuICogQHJldHVybnMge0Z1bmN0aW9ufVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0dGluZ3NTYXZlSGVscGVyRnVuY3Rpb24oZkNhbGxiYWNrLCBrb1RyaWdnZXIsIGNvbnRleHQgPSBudWxsLCB0aW1lciA9IDEwMDApIHtcblx0dGltZXIgPSBwSW50KHRpbWVyKTtcblx0cmV0dXJuICh0eXBlLCBkYXRhLCBjYWNoZWQsIHJlcXVlc3RBY3Rpb24sIHJlcXVlc3RQYXJhbWV0ZXJzKSA9PiB7XG5cdFx0a29UcmlnZ2VyLmNhbGwoY29udGV4dCwgZGF0YSAmJiBkYXRhLlJlc3VsdCA/IFNhdmVTZXR0aW5nc1N0ZXAuVHJ1ZVJlc3VsdCA6IFNhdmVTZXR0aW5nc1N0ZXAuRmFsc2VSZXN1bHQpO1xuXHRcdGlmIChmQ2FsbGJhY2spIHtcblx0XHRcdGZDYWxsYmFjay5jYWxsKGNvbnRleHQsIHR5cGUsIGRhdGEsIGNhY2hlZCwgcmVxdWVzdEFjdGlvbiwgcmVxdWVzdFBhcmFtZXRlcnMpO1xuXHRcdH1cblx0XHRfLmRlbGF5KCgpID0+IHtcblx0XHRcdGtvVHJpZ2dlci5jYWxsKGNvbnRleHQsIFNhdmVTZXR0aW5nc1N0ZXAuSWRsZSk7XG5cdFx0fSwgdGltZXIpO1xuXHR9O1xufVxuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSBrb1RyaWdnZXJcbiAqIEBwYXJhbSB7bWl4ZWR9IGNvbnRleHRcbiAqIEByZXR1cm5zIHttaXhlZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldHRpbmdzU2F2ZUhlbHBlclNpbXBsZUZ1bmN0aW9uKGtvVHJpZ2dlciwgY29udGV4dCkge1xuXHRyZXR1cm4gc2V0dGluZ3NTYXZlSGVscGVyRnVuY3Rpb24obnVsbCwga29UcmlnZ2VyLCBjb250ZXh0LCAxMDAwKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gcmVtb3RlXG4gKiBAcGFyYW0ge3N0cmluZ30gc2V0dGluZ05hbWVcbiAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBmVHJpZ2dlckZ1bmN0aW9uXG4gKiBAcmV0dXJucyB7ZnVuY3Rpb259XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXR0aW5nc1NhdmVIZWxwZXJTdWJzY3JpYmVGdW5jdGlvbihyZW1vdGUsIHNldHRpbmdOYW1lLCB0eXBlLCBmVHJpZ2dlckZ1bmN0aW9uKSB7XG5cdHJldHVybiAodmFsdWUpID0+IHtcblx0XHRpZiAocmVtb3RlKSB7XG5cdFx0XHRzd2l0Y2ggKHR5cGUpIHtcblx0XHRcdFx0Y2FzZSAnYm9vbCc6XG5cdFx0XHRcdGNhc2UgJ2Jvb2xlYW4nOlxuXHRcdFx0XHRcdHZhbHVlID0gdmFsdWUgPyAnMScgOiAnMCc7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgJ2ludCc6XG5cdFx0XHRcdGNhc2UgJ2ludGVnZXInOlxuXHRcdFx0XHRjYXNlICdudW1iZXInOlxuXHRcdFx0XHRcdHZhbHVlID0gcEludCh2YWx1ZSk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgJ3RyaW0nOlxuXHRcdFx0XHRcdHZhbHVlID0gdHJpbSh2YWx1ZSk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0dmFsdWUgPSBwU3RyaW5nKHZhbHVlKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgZGF0YSA9IHt9O1xuXHRcdFx0ZGF0YVtzZXR0aW5nTmFtZV0gPSB2YWx1ZTtcblxuXHRcdFx0aWYgKHJlbW90ZS5zYXZlQWRtaW5Db25maWcpIHtcblx0XHRcdFx0cmVtb3RlLnNhdmVBZG1pbkNvbmZpZyhmVHJpZ2dlckZ1bmN0aW9uIHx8IG51bGwsIGRhdGEpO1xuXHRcdFx0fSBlbHNlIGlmIChyZW1vdGUuc2F2ZVNldHRpbmdzKSB7XG5cdFx0XHRcdHJlbW90ZS5zYXZlU2V0dGluZ3MoZlRyaWdnZXJGdW5jdGlvbiB8fCBudWxsLCBkYXRhKTtcblx0XHRcdH1cblx0XHR9XG5cdH07XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGh0bWxcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRW1haWxBbmRMaW5rcyhodG1sKSB7XG5cdHJldHVybiBBdXRvbGlua2VyXG5cdFx0PyBBdXRvbGlua2VyLmxpbmsoaHRtbCwge1xuXHRcdFx0XHRuZXdXaW5kb3c6IHRydWUsXG5cdFx0XHRcdHN0cmlwUHJlZml4OiBmYWxzZSxcblx0XHRcdFx0dXJsczogdHJ1ZSxcblx0XHRcdFx0ZW1haWw6IHRydWUsXG5cdFx0XHRcdG1lbnRpb246IGZhbHNlLFxuXHRcdFx0XHRwaG9uZTogZmFsc2UsXG5cdFx0XHRcdGhhc2h0YWc6IGZhbHNlLFxuXHRcdFx0XHRyZXBsYWNlRm46IGZ1bmN0aW9uKG1hdGNoKSB7XG5cdFx0XHRcdFx0cmV0dXJuICEobWF0Y2ggJiYgJ3VybCcgPT09IG1hdGNoLmdldFR5cGUoKSAmJiBtYXRjaC5tYXRjaGVkVGV4dCAmJiAwICE9PSBtYXRjaC5tYXRjaGVkVGV4dC5pbmRleE9mKCdodHRwJykpO1xuXHRcdFx0XHR9XG5cdFx0ICB9KVxuXHRcdDogaHRtbDtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gaHRtbFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGh0bWxUb1BsYWluKGh0bWwpIHtcblx0bGV0IHBvcyA9IDAsXG5cdFx0bGltaXQgPSAwLFxuXHRcdGlQMSA9IDAsXG5cdFx0aVAyID0gMCxcblx0XHRpUDMgPSAwLFxuXHRcdHRleHQgPSAnJztcblxuXHRjb25zdCBjb252ZXJ0QmxvY2txdW90ZSA9IChibG9ja3F1b3RlVGV4dCkgPT4ge1xuXHRcdGJsb2NrcXVvdGVUZXh0ID0gJz4gJyArIHRyaW0oYmxvY2txdW90ZVRleHQpLnJlcGxhY2UoL1xcbi9nbSwgJ1xcbj4gJyk7XG5cdFx0cmV0dXJuIGJsb2NrcXVvdGVUZXh0LnJlcGxhY2UoLyhefFxcbikoWz4gXSspL2dtLCAoLi4uYXJncykgPT5cblx0XHRcdGFyZ3MgJiYgMiA8IGFyZ3MubGVuZ3RoID8gYXJnc1sxXSArIHRyaW0oYXJnc1syXS5yZXBsYWNlKC9bXFxzXS9nLCAnJykpICsgJyAnIDogJydcblx0XHQpO1xuXHR9O1xuXG5cdGNvbnN0IGNvbnZlcnREaXZzID0gKC4uLmFyZ3MpID0+IHtcblx0XHRpZiAoYXJncyAmJiAxIDwgYXJncy5sZW5ndGgpIHtcblx0XHRcdGxldCBkaXZUZXh0ID0gdHJpbShhcmdzWzFdKTtcblx0XHRcdGlmICgwIDwgZGl2VGV4dC5sZW5ndGgpIHtcblx0XHRcdFx0ZGl2VGV4dCA9IGRpdlRleHQucmVwbGFjZSgvPGRpdltePl0qPihbXFxzXFxTXFxyXFxuXSopPFxcL2Rpdj4vZ2ltLCBjb252ZXJ0RGl2cyk7XG5cdFx0XHRcdGRpdlRleHQgPSAnXFxuJyArIHRyaW0oZGl2VGV4dCkgKyAnXFxuJztcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGRpdlRleHQ7XG5cdFx0fVxuXG5cdFx0cmV0dXJuICcnO1xuXHR9O1xuXG5cdGNvbnN0IGNvbnZlcnRQcmUgPSAoLi4uYXJncykgPT5cblx0XHRcdGFyZ3MgJiYgMSA8IGFyZ3MubGVuZ3RoXG5cdFx0XHRcdD8gYXJnc1sxXVxuXHRcdFx0XHRcdFx0LnRvU3RyaW5nKClcblx0XHRcdFx0XHRcdC5yZXBsYWNlKC9bXFxuXS9nbSwgJzxiciAvPicpXG5cdFx0XHRcdFx0XHQucmVwbGFjZSgvW1xccl0vZ20sICcnKVxuXHRcdFx0XHQ6ICcnLFxuXHRcdGZpeEF0dGlidXRlVmFsdWUgPSAoLi4uYXJncykgPT4gKGFyZ3MgJiYgMSA8IGFyZ3MubGVuZ3RoID8gJycgKyBhcmdzWzFdICsgXy5lc2NhcGUoYXJnc1syXSkgOiAnJyksXG5cdFx0Y29udmVydExpbmtzID0gKC4uLmFyZ3MpID0+IChhcmdzICYmIDEgPCBhcmdzLmxlbmd0aCA/IHRyaW0oYXJnc1sxXSkgOiAnJyk7XG5cblx0dGV4dCA9IGh0bWxcblx0XHQucmVwbGFjZSgvPHBbXj5dKj48XFwvcD4vZ2ksICcnKVxuXHRcdC5yZXBsYWNlKC88cHJlW14+XSo+KFtcXHNcXFNcXHJcXG5cXHRdKik8XFwvcHJlPi9naW0sIGNvbnZlcnRQcmUpXG5cdFx0LnJlcGxhY2UoL1tcXHNdKy9nbSwgJyAnKVxuXHRcdC5yZXBsYWNlKC8oKD86aHJlZnxkYXRhKVxccz89XFxzPykoXCJbXlwiXSs/XCJ8J1teJ10rPycpL2dpbSwgZml4QXR0aWJ1dGVWYWx1ZSlcblx0XHQucmVwbGFjZSgvPGJyW14+XSo+L2dpbSwgJ1xcbicpXG5cdFx0LnJlcGxhY2UoLzxcXC9oW1xcZF0+L2dpLCAnXFxuJylcblx0XHQucmVwbGFjZSgvPFxcL3A+L2dpLCAnXFxuXFxuJylcblx0XHQucmVwbGFjZSgvPHVsW14+XSo+L2dpbSwgJ1xcbicpXG5cdFx0LnJlcGxhY2UoLzxcXC91bD4vZ2ksICdcXG4nKVxuXHRcdC5yZXBsYWNlKC88bGlbXj5dKj4vZ2ltLCAnICogJylcblx0XHQucmVwbGFjZSgvPFxcL2xpPi9naSwgJ1xcbicpXG5cdFx0LnJlcGxhY2UoLzxcXC90ZD4vZ2ksICdcXG4nKVxuXHRcdC5yZXBsYWNlKC88XFwvdHI+L2dpLCAnXFxuJylcblx0XHQucmVwbGFjZSgvPGhyW14+XSo+L2dpbSwgJ1xcbl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19cXG5cXG4nKVxuXHRcdC5yZXBsYWNlKC88ZGl2W14+XSo+KFtcXHNcXFNcXHJcXG5dKik8XFwvZGl2Pi9naW0sIGNvbnZlcnREaXZzKVxuXHRcdC5yZXBsYWNlKC88YmxvY2txdW90ZVtePl0qPi9naW0sICdcXG5fX2JxX19zdGFydF9fXFxuJylcblx0XHQucmVwbGFjZSgvPFxcL2Jsb2NrcXVvdGU+L2dpbSwgJ1xcbl9fYnFfX2VuZF9fXFxuJylcblx0XHQucmVwbGFjZSgvPGEgW14+XSo+KFtcXHNcXFNcXHJcXG5dKj8pPFxcL2E+L2dpbSwgY29udmVydExpbmtzKVxuXHRcdC5yZXBsYWNlKC88XFwvZGl2Pi9naSwgJ1xcbicpXG5cdFx0LnJlcGxhY2UoLyZuYnNwOy9naSwgJyAnKVxuXHRcdC5yZXBsYWNlKC8mcXVvdDsvZ2ksICdcIicpXG5cdFx0LnJlcGxhY2UoLzxbXj5dKj4vZ20sICcnKTtcblxuXHR0ZXh0ID0gJGRpdi5odG1sKHRleHQpLnRleHQoKTtcblxuXHR0ZXh0ID0gdGV4dFxuXHRcdC5yZXBsYWNlKC9cXG5bIFxcdF0rL2dtLCAnXFxuJylcblx0XHQucmVwbGFjZSgvW1xcbl17Myx9L2dtLCAnXFxuXFxuJylcblx0XHQucmVwbGFjZSgvJmd0Oy9naSwgJz4nKVxuXHRcdC5yZXBsYWNlKC8mbHQ7L2dpLCAnPCcpXG5cdFx0LnJlcGxhY2UoLyZhbXA7L2dpLCAnJicpO1xuXG5cdHRleHQgPSBzcGxpdFBsYWluVGV4dCh0ZXh0KTtcblxuXHRwb3MgPSAwO1xuXHRsaW1pdCA9IDgwMDtcblxuXHR3aGlsZSAoMCA8IGxpbWl0KSB7XG5cdFx0bGltaXQgLT0gMTtcblx0XHRpUDEgPSB0ZXh0LmluZGV4T2YoJ19fYnFfX3N0YXJ0X18nLCBwb3MpO1xuXHRcdGlmICgtMSA8IGlQMSkge1xuXHRcdFx0aVAyID0gdGV4dC5pbmRleE9mKCdfX2JxX19zdGFydF9fJywgaVAxICsgNSk7XG5cdFx0XHRpUDMgPSB0ZXh0LmluZGV4T2YoJ19fYnFfX2VuZF9fJywgaVAxICsgNSk7XG5cblx0XHRcdGlmICgoLTEgPT09IGlQMiB8fCBpUDMgPCBpUDIpICYmIGlQMSA8IGlQMykge1xuXHRcdFx0XHR0ZXh0ID0gdGV4dC5zdWJzdHJpbmcoMCwgaVAxKSArIGNvbnZlcnRCbG9ja3F1b3RlKHRleHQuc3Vic3RyaW5nKGlQMSArIDEzLCBpUDMpKSArIHRleHQuc3Vic3RyaW5nKGlQMyArIDExKTtcblxuXHRcdFx0XHRwb3MgPSAwO1xuXHRcdFx0fSBlbHNlIGlmICgtMSA8IGlQMiAmJiBpUDIgPCBpUDMpIHtcblx0XHRcdFx0cG9zID0gaVAyIC0gMTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHBvcyA9IDA7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblx0fVxuXG5cdHRleHQgPSB0ZXh0LnJlcGxhY2UoL19fYnFfX3N0YXJ0X18vZ20sICcnKS5yZXBsYWNlKC9fX2JxX19lbmRfXy9nbSwgJycpO1xuXG5cdHJldHVybiB0ZXh0O1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBwbGFpblxuICogQHBhcmFtIHtib29sZWFufSBmaW5kRW1haWxBbmRMaW5rc0luVGV4dCA9IGZhbHNlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGxhaW5Ub0h0bWwocGxhaW4sIGZpbmRFbWFpbEFuZExpbmtzSW5UZXh0ID0gZmFsc2UpIHtcblx0cGxhaW4gPSBwbGFpbi50b1N0cmluZygpLnJlcGxhY2UoL1xcci9nLCAnJyk7XG5cdHBsYWluID0gcGxhaW4ucmVwbGFjZSgvXj5bPiBdPisvZ20sIChbbWF0Y2hdKSA9PiAobWF0Y2ggPyBtYXRjaC5yZXBsYWNlKC9bIF0rL2csICcnKSA6IG1hdGNoKSk7XG5cblx0bGV0IGJJbiA9IGZhbHNlLFxuXHRcdGJEbyA9IHRydWUsXG5cdFx0YlN0YXJ0ID0gdHJ1ZSxcblx0XHRhTmV4dFRleHQgPSBbXSxcblx0XHRzTGluZSA9ICcnLFxuXHRcdGlJbmRleCA9IDAsXG5cdFx0YVRleHQgPSBwbGFpbi5zcGxpdCgnXFxuJyk7XG5cblx0ZG8ge1xuXHRcdGJEbyA9IGZhbHNlO1xuXHRcdGFOZXh0VGV4dCA9IFtdO1xuXHRcdGZvciAoaUluZGV4ID0gMDsgaUluZGV4IDwgYVRleHQubGVuZ3RoOyBpSW5kZXgrKykge1xuXHRcdFx0c0xpbmUgPSBhVGV4dFtpSW5kZXhdO1xuXHRcdFx0YlN0YXJ0ID0gJz4nID09PSBzTGluZS5zdWJzdHIoMCwgMSk7XG5cdFx0XHRpZiAoYlN0YXJ0ICYmICFiSW4pIHtcblx0XHRcdFx0YkRvID0gdHJ1ZTtcblx0XHRcdFx0YkluID0gdHJ1ZTtcblx0XHRcdFx0YU5leHRUZXh0LnB1c2goJ35+fmJsb2NrcXVvdGV+fn4nKTtcblx0XHRcdFx0YU5leHRUZXh0LnB1c2goc0xpbmUuc3Vic3RyKDEpKTtcblx0XHRcdH0gZWxzZSBpZiAoIWJTdGFydCAmJiBiSW4pIHtcblx0XHRcdFx0aWYgKCcnICE9PSBzTGluZSkge1xuXHRcdFx0XHRcdGJJbiA9IGZhbHNlO1xuXHRcdFx0XHRcdGFOZXh0VGV4dC5wdXNoKCd+fn4vYmxvY2txdW90ZX5+ficpO1xuXHRcdFx0XHRcdGFOZXh0VGV4dC5wdXNoKHNMaW5lKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRhTmV4dFRleHQucHVzaChzTGluZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZiAoYlN0YXJ0ICYmIGJJbikge1xuXHRcdFx0XHRhTmV4dFRleHQucHVzaChzTGluZS5zdWJzdHIoMSkpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0YU5leHRUZXh0LnB1c2goc0xpbmUpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChiSW4pIHtcblx0XHRcdGJJbiA9IGZhbHNlO1xuXHRcdFx0YU5leHRUZXh0LnB1c2goJ35+fi9ibG9ja3F1b3Rlfn5+Jyk7XG5cdFx0fVxuXG5cdFx0YVRleHQgPSBhTmV4dFRleHQ7XG5cdH0gd2hpbGUgKGJEbyk7XG5cblx0cGxhaW4gPSBhVGV4dC5qb2luKCdcXG4nKTtcblxuXHRwbGFpbiA9IHBsYWluXG5cdFx0Ly8gLnJlcGxhY2UoL35+flxcL2Jsb2NrcXVvdGV+fn5cXG5+fn5ibG9ja3F1b3Rlfn5+L2csICdcXG4nKVxuXHRcdC5yZXBsYWNlKC8mL2csICcmYW1wOycpXG5cdFx0LnJlcGxhY2UoLz4vZywgJyZndDsnKVxuXHRcdC5yZXBsYWNlKC88L2csICcmbHQ7Jylcblx0XHQucmVwbGFjZSgvfn5+YmxvY2txdW90ZX5+fltcXHNdKi9nLCAnPGJsb2NrcXVvdGU+Jylcblx0XHQucmVwbGFjZSgvW1xcc10qfn5+XFwvYmxvY2txdW90ZX5+fi9nLCAnPC9ibG9ja3F1b3RlPicpXG5cdFx0LnJlcGxhY2UoL1xcbi9nLCAnPGJyIC8+Jyk7XG5cblx0cmV0dXJuIGZpbmRFbWFpbEFuZExpbmtzSW5UZXh0ID8gZmluZEVtYWlsQW5kTGlua3MocGxhaW4pIDogcGxhaW47XG59XG5cbndpbmRvd1sncmFpbmxvb3BfVXRpbHNfaHRtbFRvUGxhaW4nXSA9IGh0bWxUb1BsYWluOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGRvdC1ub3RhdGlvblxud2luZG93WydyYWlubG9vcF9VdGlsc19wbGFpblRvSHRtbCddID0gcGxhaW5Ub0h0bWw7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgZG90LW5vdGF0aW9uXG5cbi8qKlxuICogQHBhcmFtIHtBcnJheX0gYVN5c3RlbVxuICogQHBhcmFtIHtBcnJheX0gYUxpc3RcbiAqIEBwYXJhbSB7QXJyYXk9fSBhRGlzYWJsZWRcbiAqIEBwYXJhbSB7QXJyYXk9fSBhSGVhZGVyTGluZXNcbiAqIEBwYXJhbSB7P251bWJlcj19IGlVbkRlZXBcbiAqIEBwYXJhbSB7RnVuY3Rpb249fSBmRGlzYWJsZUNhbGxiYWNrXG4gKiBAcGFyYW0ge0Z1bmN0aW9uPX0gZlZpc2libGVDYWxsYmFja1xuICogQHBhcmFtIHtGdW5jdGlvbj19IGZSZW5hbWVDYWxsYmFja1xuICogQHBhcmFtIHtib29sZWFuPX0gYlN5c3RlbVxuICogQHBhcmFtIHtib29sZWFuPX0gYkJ1aWxkVW52aXNpYmxlXG4gKiBAcmV0dXJucyB7QXJyYXl9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb2xkZXJMaXN0T3B0aW9uc0J1aWxkZXIoXG5cdGFTeXN0ZW0sXG5cdGFMaXN0LFxuXHRhRGlzYWJsZWQsXG5cdGFIZWFkZXJMaW5lcyxcblx0aVVuRGVlcCxcblx0ZkRpc2FibGVDYWxsYmFjayxcblx0ZlZpc2libGVDYWxsYmFjayxcblx0ZlJlbmFtZUNhbGxiYWNrLFxuXHRiU3lzdGVtLFxuXHRiQnVpbGRVbnZpc2libGVcbikge1xuXHRsZXQgLyoqXG5cdFx0ICogQHR5cGUgez9Gb2xkZXJNb2RlbH1cblx0XHQgKi9cblx0XHRvSXRlbSA9IG51bGwsXG5cdFx0YlNlcCA9IGZhbHNlLFxuXHRcdGlJbmRleCA9IDAsXG5cdFx0aUxlbiA9IDAsXG5cdFx0YVJlc3VsdCA9IFtdO1xuXG5cdGNvbnN0IHNEZWVwUHJlZml4ID0gJ1xcdTAwQTBcXHUwMEEwXFx1MDBBMCc7XG5cblx0YkJ1aWxkVW52aXNpYmxlID0gaXNVbmQoYkJ1aWxkVW52aXNpYmxlKSA/IGZhbHNlIDogISFiQnVpbGRVbnZpc2libGU7XG5cdGJTeXN0ZW0gPSAhaXNOb3JtYWwoYlN5c3RlbSkgPyAwIDwgYVN5c3RlbS5sZW5ndGggOiBiU3lzdGVtO1xuXHRpVW5EZWVwID0gIWlzTm9ybWFsKGlVbkRlZXApID8gMCA6IGlVbkRlZXA7XG5cdGZEaXNhYmxlQ2FsbGJhY2sgPSBpc05vcm1hbChmRGlzYWJsZUNhbGxiYWNrKSA/IGZEaXNhYmxlQ2FsbGJhY2sgOiBudWxsO1xuXHRmVmlzaWJsZUNhbGxiYWNrID0gaXNOb3JtYWwoZlZpc2libGVDYWxsYmFjaykgPyBmVmlzaWJsZUNhbGxiYWNrIDogbnVsbDtcblx0ZlJlbmFtZUNhbGxiYWNrID0gaXNOb3JtYWwoZlJlbmFtZUNhbGxiYWNrKSA/IGZSZW5hbWVDYWxsYmFjayA6IG51bGw7XG5cblx0aWYgKCFpc0FycmF5KGFEaXNhYmxlZCkpIHtcblx0XHRhRGlzYWJsZWQgPSBbXTtcblx0fVxuXG5cdGlmICghaXNBcnJheShhSGVhZGVyTGluZXMpKSB7XG5cdFx0YUhlYWRlckxpbmVzID0gW107XG5cdH1cblxuXHRmb3IgKGlJbmRleCA9IDAsIGlMZW4gPSBhSGVhZGVyTGluZXMubGVuZ3RoOyBpSW5kZXggPCBpTGVuOyBpSW5kZXgrKykge1xuXHRcdGFSZXN1bHQucHVzaCh7XG5cdFx0XHRpZDogYUhlYWRlckxpbmVzW2lJbmRleF1bMF0sXG5cdFx0XHRuYW1lOiBhSGVhZGVyTGluZXNbaUluZGV4XVsxXSxcblx0XHRcdHN5c3RlbTogZmFsc2UsXG5cdFx0XHRzZXBvcmF0b3I6IGZhbHNlLFxuXHRcdFx0ZGlzYWJsZWQ6IGZhbHNlXG5cdFx0fSk7XG5cdH1cblxuXHRiU2VwID0gdHJ1ZTtcblx0Zm9yIChpSW5kZXggPSAwLCBpTGVuID0gYVN5c3RlbS5sZW5ndGg7IGlJbmRleCA8IGlMZW47IGlJbmRleCsrKSB7XG5cdFx0b0l0ZW0gPSBhU3lzdGVtW2lJbmRleF07XG5cdFx0aWYgKGZWaXNpYmxlQ2FsbGJhY2sgPyBmVmlzaWJsZUNhbGxiYWNrKG9JdGVtKSA6IHRydWUpIHtcblx0XHRcdGlmIChiU2VwICYmIDAgPCBhUmVzdWx0Lmxlbmd0aCkge1xuXHRcdFx0XHRhUmVzdWx0LnB1c2goe1xuXHRcdFx0XHRcdGlkOiAnLS0tJyxcblx0XHRcdFx0XHRuYW1lOiAnLS0tJyxcblx0XHRcdFx0XHRzeXN0ZW06IGZhbHNlLFxuXHRcdFx0XHRcdHNlcG9yYXRvcjogdHJ1ZSxcblx0XHRcdFx0XHRkaXNhYmxlZDogdHJ1ZVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblxuXHRcdFx0YlNlcCA9IGZhbHNlO1xuXHRcdFx0YVJlc3VsdC5wdXNoKHtcblx0XHRcdFx0aWQ6IG9JdGVtLmZ1bGxOYW1lUmF3LFxuXHRcdFx0XHRuYW1lOiBmUmVuYW1lQ2FsbGJhY2sgPyBmUmVuYW1lQ2FsbGJhY2sob0l0ZW0pIDogb0l0ZW0ubmFtZSgpLFxuXHRcdFx0XHRzeXN0ZW06IHRydWUsXG5cdFx0XHRcdHNlcG9yYXRvcjogZmFsc2UsXG5cdFx0XHRcdGRpc2FibGVkOlxuXHRcdFx0XHRcdCFvSXRlbS5zZWxlY3RhYmxlIHx8XG5cdFx0XHRcdFx0LTEgPCBpbkFycmF5KG9JdGVtLmZ1bGxOYW1lUmF3LCBhRGlzYWJsZWQpIHx8XG5cdFx0XHRcdFx0KGZEaXNhYmxlQ2FsbGJhY2sgPyBmRGlzYWJsZUNhbGxiYWNrKG9JdGVtKSA6IGZhbHNlKVxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0YlNlcCA9IHRydWU7XG5cdGZvciAoaUluZGV4ID0gMCwgaUxlbiA9IGFMaXN0Lmxlbmd0aDsgaUluZGV4IDwgaUxlbjsgaUluZGV4KyspIHtcblx0XHRvSXRlbSA9IGFMaXN0W2lJbmRleF07XG5cdFx0Ly8gaWYgKG9JdGVtLnN1YlNjcmliZWQoKSB8fCAhb0l0ZW0uZXhpc3RlbiB8fCBiQnVpbGRVbnZpc2libGUpXG5cdFx0aWYgKFxuXHRcdFx0KG9JdGVtLnN1YlNjcmliZWQoKSB8fCAhb0l0ZW0uZXhpc3RlbiB8fCBiQnVpbGRVbnZpc2libGUpICYmXG5cdFx0XHQob0l0ZW0uc2VsZWN0YWJsZSB8fCBvSXRlbS5oYXNTdWJTY3JpYmVkU3ViZm9sZGVycygpKVxuXHRcdCkge1xuXHRcdFx0aWYgKGZWaXNpYmxlQ2FsbGJhY2sgPyBmVmlzaWJsZUNhbGxiYWNrKG9JdGVtKSA6IHRydWUpIHtcblx0XHRcdFx0aWYgKEZvbGRlclR5cGUuVXNlciA9PT0gb0l0ZW0udHlwZSgpIHx8ICFiU3lzdGVtIHx8IG9JdGVtLmhhc1N1YlNjcmliZWRTdWJmb2xkZXJzKCkpIHtcblx0XHRcdFx0XHRpZiAoYlNlcCAmJiAwIDwgYVJlc3VsdC5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdGFSZXN1bHQucHVzaCh7XG5cdFx0XHRcdFx0XHRcdGlkOiAnLS0tJyxcblx0XHRcdFx0XHRcdFx0bmFtZTogJy0tLScsXG5cdFx0XHRcdFx0XHRcdHN5c3RlbTogZmFsc2UsXG5cdFx0XHRcdFx0XHRcdHNlcG9yYXRvcjogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0ZGlzYWJsZWQ6IHRydWVcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGJTZXAgPSBmYWxzZTtcblx0XHRcdFx0XHRhUmVzdWx0LnB1c2goe1xuXHRcdFx0XHRcdFx0aWQ6IG9JdGVtLmZ1bGxOYW1lUmF3LFxuXHRcdFx0XHRcdFx0bmFtZTpcblx0XHRcdFx0XHRcdFx0bmV3IHdpbmRvdy5BcnJheShvSXRlbS5kZWVwICsgMSAtIGlVbkRlZXApLmpvaW4oc0RlZXBQcmVmaXgpICtcblx0XHRcdFx0XHRcdFx0KGZSZW5hbWVDYWxsYmFjayA/IGZSZW5hbWVDYWxsYmFjayhvSXRlbSkgOiBvSXRlbS5uYW1lKCkpLFxuXHRcdFx0XHRcdFx0c3lzdGVtOiBmYWxzZSxcblx0XHRcdFx0XHRcdHNlcG9yYXRvcjogZmFsc2UsXG5cdFx0XHRcdFx0XHRkaXNhYmxlZDpcblx0XHRcdFx0XHRcdFx0IW9JdGVtLnNlbGVjdGFibGUgfHxcblx0XHRcdFx0XHRcdFx0LTEgPCBpbkFycmF5KG9JdGVtLmZ1bGxOYW1lUmF3LCBhRGlzYWJsZWQpIHx8XG5cdFx0XHRcdFx0XHRcdChmRGlzYWJsZUNhbGxiYWNrID8gZkRpc2FibGVDYWxsYmFjayhvSXRlbSkgOiBmYWxzZSlcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChvSXRlbS5zdWJTY3JpYmVkKCkgJiYgMCA8IG9JdGVtLnN1YkZvbGRlcnMoKS5sZW5ndGgpIHtcblx0XHRcdGFSZXN1bHQgPSBhUmVzdWx0LmNvbmNhdChcblx0XHRcdFx0Zm9sZGVyTGlzdE9wdGlvbnNCdWlsZGVyKFxuXHRcdFx0XHRcdFtdLFxuXHRcdFx0XHRcdG9JdGVtLnN1YkZvbGRlcnMoKSxcblx0XHRcdFx0XHRhRGlzYWJsZWQsXG5cdFx0XHRcdFx0W10sXG5cdFx0XHRcdFx0aVVuRGVlcCxcblx0XHRcdFx0XHRmRGlzYWJsZUNhbGxiYWNrLFxuXHRcdFx0XHRcdGZWaXNpYmxlQ2FsbGJhY2ssXG5cdFx0XHRcdFx0ZlJlbmFtZUNhbGxiYWNrLFxuXHRcdFx0XHRcdGJTeXN0ZW0sXG5cdFx0XHRcdFx0YkJ1aWxkVW52aXNpYmxlXG5cdFx0XHRcdClcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGFSZXN1bHQ7XG59XG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IGVsZW1lbnRcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VsZWN0RWxlbWVudChlbGVtZW50KSB7XG5cdGxldCBzZWwgPSBudWxsLFxuXHRcdHJhbmdlID0gbnVsbDtcblxuXHRpZiAod2luZG93LmdldFNlbGVjdGlvbikge1xuXHRcdHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcblx0XHRzZWwucmVtb3ZlQWxsUmFuZ2VzKCk7XG5cdFx0cmFuZ2UgPSB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcblx0XHRyYW5nZS5zZWxlY3ROb2RlQ29udGVudHMoZWxlbWVudCk7XG5cdFx0c2VsLmFkZFJhbmdlKHJhbmdlKTtcblx0fSBlbHNlIGlmICh3aW5kb3cuZG9jdW1lbnQuc2VsZWN0aW9uKSB7XG5cdFx0cmFuZ2UgPSB3aW5kb3cuZG9jdW1lbnQuYm9keS5jcmVhdGVUZXh0UmFuZ2UoKTtcblx0XHRyYW5nZS5tb3ZlVG9FbGVtZW50VGV4dChlbGVtZW50KTtcblx0XHRyYW5nZS5zZWxlY3QoKTtcblx0fVxufVxuXG5leHBvcnQgY29uc3QgZGV0ZWN0RHJvcGRvd25WaXNpYmlsaXR5ID0gXy5kZWJvdW5jZSgoKSA9PiB7XG5cdGRyb3Bkb3duVmlzaWJpbGl0eSghIV8uZmluZChHbG9iYWxzRGF0YS5hQm9vdHN0cmFwRHJvcGRvd25zLCAoaXRlbSkgPT4gaXRlbS5oYXNDbGFzcygnb3BlbicpKSk7XG59LCA1MCk7XG5cbi8qKlxuICogQHBhcmFtIHtib29sZWFuPX0gZGVsYXkgPSBmYWxzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJpZ2dlckF1dG9jb21wbGV0ZUlucHV0Q2hhbmdlKGRlbGF5ID0gZmFsc2UpIHtcblx0Y29uc3QgZkZ1bmMgPSAoKSA9PiB7XG5cdFx0JCgnLmNoZWNrQXV0b2NvbXBsZXRlJykudHJpZ2dlcignY2hhbmdlJyk7XG5cdH07XG5cblx0aWYgKGRlbGF5KSB7XG5cdFx0Xy5kZWxheShmRnVuYywgMTAwKTtcblx0fSBlbHNlIHtcblx0XHRmRnVuYygpO1xuXHR9XG59XG5cbmNvbnN0IGNvbmZpZ3VyYXRpb25TY3JpcHRUYWdDYWNoZSA9IHt9O1xuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb25maWd1cmF0aW9uXG4gKiBAcmV0dXJucyB7b2JqZWN0fVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29uZmlndXJhdGlvbkZyb21TY3JpcHRUYWcoY29uZmlndXJhdGlvbikge1xuXHRpZiAoIWNvbmZpZ3VyYXRpb25TY3JpcHRUYWdDYWNoZVtjb25maWd1cmF0aW9uXSkge1xuXHRcdGNvbmZpZ3VyYXRpb25TY3JpcHRUYWdDYWNoZVtjb25maWd1cmF0aW9uXSA9ICQoXG5cdFx0XHQnc2NyaXB0W3R5cGU9XCJhcHBsaWNhdGlvbi9qc29uXCJdW2RhdGEtY29uZmlndXJhdGlvbj1cIicgKyBjb25maWd1cmF0aW9uICsgJ1wiXSdcblx0XHQpO1xuXHR9XG5cblx0dHJ5IHtcblx0XHRyZXR1cm4gSlNPTi5wYXJzZShjb25maWd1cmF0aW9uU2NyaXB0VGFnQ2FjaGVbY29uZmlndXJhdGlvbl0udGV4dCgpKTtcblx0fSBjYXRjaCAoZSkge30gLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1lbXB0eVxuXG5cdHJldHVybiB7fTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge21peGVkfSBtUHJvcE9yVmFsdWVcbiAqIEBwYXJhbSB7bWl4ZWR9IHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaXNwb3NlT25lKHByb3BPclZhbHVlLCB2YWx1ZSkge1xuXHRjb25zdCBkaXNwb3NhYmxlID0gdmFsdWUgfHwgcHJvcE9yVmFsdWU7XG5cdGlmIChkaXNwb3NhYmxlICYmICdmdW5jdGlvbicgPT09IHR5cGVvZiBkaXNwb3NhYmxlLmRpc3Bvc2UpIHtcblx0XHRkaXNwb3NhYmxlLmRpc3Bvc2UoKTtcblx0fVxufVxuXG4vKipcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpc3Bvc2VPYmplY3Qob2JqZWN0KSB7XG5cdGlmIChvYmplY3QpIHtcblx0XHRpZiAoaXNBcnJheShvYmplY3QuZGlzcG9zYWJsZXMpKSB7XG5cdFx0XHRfLmVhY2gob2JqZWN0LmRpc3Bvc2FibGVzLCBkaXNwb3NlT25lKTtcblx0XHR9XG5cblx0XHRrby51dGlscy5vYmplY3RGb3JFYWNoKG9iamVjdCwgZGlzcG9zZU9uZSk7XG5cdH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge09iamVjdHxBcnJheX0gb2JqZWN0T3JPYmplY3RzXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlbGVnYXRlUnVuT25EZXN0cm95KG9iamVjdE9yT2JqZWN0cykge1xuXHRpZiAob2JqZWN0T3JPYmplY3RzKSB7XG5cdFx0aWYgKGlzQXJyYXkob2JqZWN0T3JPYmplY3RzKSkge1xuXHRcdFx0Xy5lYWNoKG9iamVjdE9yT2JqZWN0cywgKGl0ZW0pID0+IHtcblx0XHRcdFx0ZGVsZWdhdGVSdW5PbkRlc3Ryb3koaXRlbSk7XG5cdFx0XHR9KTtcblx0XHR9IGVsc2UgaWYgKG9iamVjdE9yT2JqZWN0cyAmJiBvYmplY3RPck9iamVjdHMub25EZXN0cm95KSB7XG5cdFx0XHRvYmplY3RPck9iamVjdHMub25EZXN0cm95KCk7XG5cdFx0fVxuXHR9XG59XG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9ICRzdHlsZVRhZ1xuICogQHBhcmFtIHtzdHJpbmd9IGNzc1xuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRTdHlsZXMoJHN0eWxlVGFnLCBjc3MpIHtcblx0aWYgKCRzdHlsZVRhZyAmJiAkc3R5bGVUYWdbMF0pIHtcblx0XHRpZiAoJHN0eWxlVGFnWzBdLnN0eWxlU2hlZXQgJiYgIWlzVW5kKCRzdHlsZVRhZ1swXS5zdHlsZVNoZWV0LmNzc1RleHQpKSB7XG5cdFx0XHQkc3R5bGVUYWdbMF0uc3R5bGVTaGVldC5jc3NUZXh0ID0gY3NzO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQkc3R5bGVUYWcudGV4dChjc3MpO1xuXHRcdH1cblxuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0cmV0dXJuIGZhbHNlO1xufVxuXG5sZXQgX190aGVtZVRpbWVyID0gMCxcblx0X190aGVtZUFqYXggPSBudWxsO1xuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICogQHBhcmFtIHtmdW5jdGlvbj19IHRoZW1lVHJpZ2dlciA9IG5vb3BcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hhbmdlVGhlbWUodmFsdWUsIHRoZW1lVHJpZ2dlciA9IG5vb3ApIHtcblx0Y29uc3QgdGhlbWVMaW5rID0gJCgnI2FwcC10aGVtZS1saW5rJyksXG5cdFx0Y2xlYXJUaW1lciA9ICgpID0+IHtcblx0XHRcdF9fdGhlbWVUaW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHRoZW1lVHJpZ2dlcihTYXZlU2V0dGluZ3NTdGVwLklkbGUpLCAxMDAwKTtcblx0XHRcdF9fdGhlbWVBamF4ID0gbnVsbDtcblx0XHR9O1xuXG5cdGxldCB0aGVtZVN0eWxlID0gJCgnI2FwcC10aGVtZS1zdHlsZScpLFxuXHRcdHVybCA9IHRoZW1lTGluay5hdHRyKCdocmVmJyk7XG5cblx0aWYgKCF1cmwpIHtcblx0XHR1cmwgPSB0aGVtZVN0eWxlLmF0dHIoJ2RhdGEtaHJlZicpO1xuXHR9XG5cblx0aWYgKHVybCkge1xuXHRcdHVybCA9IHVybC50b1N0cmluZygpLnJlcGxhY2UoL1xcLy1cXC9bXi9dK1xcLy1cXC8vLCAnLy0vJyArIHZhbHVlICsgJy8tLycpO1xuXHRcdHVybCA9IHVybC5yZXBsYWNlKC9cXC9Dc3NcXC9bXi9dK1xcL1VzZXJcXC8vLCAnL0Nzcy8wL1VzZXIvJyk7XG5cdFx0dXJsID0gdXJsLnJlcGxhY2UoL1xcL0hhc2hcXC9bXi9dK1xcLy8sICcvSGFzaC8tLycpO1xuXG5cdFx0aWYgKCdKc29uLycgIT09IHVybC5zdWJzdHJpbmcodXJsLmxlbmd0aCAtIDUsIHVybC5sZW5ndGgpKSB7XG5cdFx0XHR1cmwgKz0gJ0pzb24vJztcblx0XHR9XG5cblx0XHR3aW5kb3cuY2xlYXJUaW1lb3V0KF9fdGhlbWVUaW1lcik7XG5cblx0XHR0aGVtZVRyaWdnZXIoU2F2ZVNldHRpbmdzU3RlcC5BbmltYXRlKTtcblxuXHRcdGlmIChfX3RoZW1lQWpheCAmJiBfX3RoZW1lQWpheC5hYm9ydCkge1xuXHRcdFx0X190aGVtZUFqYXguYWJvcnQoKTtcblx0XHR9XG5cblx0XHRfX3RoZW1lQWpheCA9ICQuYWpheCh7XG5cdFx0XHR1cmw6IHVybCxcblx0XHRcdGRhdGFUeXBlOiAnanNvbidcblx0XHR9KVxuXHRcdFx0LnRoZW4oKGRhdGEpID0+IHtcblx0XHRcdFx0aWYgKGRhdGEgJiYgaXNBcnJheShkYXRhKSAmJiAyID09PSBkYXRhLmxlbmd0aCkge1xuXHRcdFx0XHRcdGlmICh0aGVtZUxpbmsgJiYgdGhlbWVMaW5rWzBdICYmICghdGhlbWVTdHlsZSB8fCAhdGhlbWVTdHlsZVswXSkpIHtcblx0XHRcdFx0XHRcdHRoZW1lU3R5bGUgPSAkKCc8c3R5bGUgaWQ9XCJhcHAtdGhlbWUtc3R5bGVcIj48L3N0eWxlPicpO1xuXHRcdFx0XHRcdFx0dGhlbWVMaW5rLmFmdGVyKHRoZW1lU3R5bGUpO1xuXHRcdFx0XHRcdFx0dGhlbWVMaW5rLnJlbW92ZSgpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmICh0aGVtZVN0eWxlICYmIHRoZW1lU3R5bGVbMF0pIHtcblx0XHRcdFx0XHRcdGlmIChhcHBlbmRTdHlsZXModGhlbWVTdHlsZSwgZGF0YVsxXSkpIHtcblx0XHRcdFx0XHRcdFx0dGhlbWVTdHlsZS5hdHRyKCdkYXRhLWhyZWYnLCB1cmwpLmF0dHIoJ2RhdGEtdGhlbWUnLCBkYXRhWzBdKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHR0aGVtZVRyaWdnZXIoU2F2ZVNldHRpbmdzU3RlcC5UcnVlUmVzdWx0KTtcblx0XHRcdFx0fVxuXHRcdFx0fSlcblx0XHRcdC50aGVuKGNsZWFyVGltZXIsIGNsZWFyVGltZXIpO1xuXHR9XG59XG5cbi8qKlxuICogQHJldHVybnMge2Z1bmN0aW9ufVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZWRQYWdlbmF0b3JIZWxwZXIoa29DdXJyZW50UGFnZSwga29QYWdlQ291bnQpIHtcblx0cmV0dXJuICgpID0+IHtcblx0XHRjb25zdCBjdXJyZW50UGFnZSA9IGtvQ3VycmVudFBhZ2UoKSxcblx0XHRcdHBhZ2VDb3VudCA9IGtvUGFnZUNvdW50KCksXG5cdFx0XHRyZXN1bHQgPSBbXSxcblx0XHRcdGZBZGQgPSAoaW5kZXgsIHB1c2ggPSB0cnVlLCBjdXN0b21OYW1lID0gJycpID0+IHtcblx0XHRcdFx0Y29uc3QgZGF0YSA9IHtcblx0XHRcdFx0XHRjdXJyZW50OiBpbmRleCA9PT0gY3VycmVudFBhZ2UsXG5cdFx0XHRcdFx0bmFtZTogJycgPT09IGN1c3RvbU5hbWUgPyBpbmRleC50b1N0cmluZygpIDogY3VzdG9tTmFtZS50b1N0cmluZygpLFxuXHRcdFx0XHRcdGN1c3RvbTogJycgIT09IGN1c3RvbU5hbWUsXG5cdFx0XHRcdFx0dGl0bGU6ICcnID09PSBjdXN0b21OYW1lID8gJycgOiBpbmRleC50b1N0cmluZygpLFxuXHRcdFx0XHRcdHZhbHVlOiBpbmRleC50b1N0cmluZygpXG5cdFx0XHRcdH07XG5cblx0XHRcdFx0aWYgKHB1c2gpIHtcblx0XHRcdFx0XHRyZXN1bHQucHVzaChkYXRhKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRyZXN1bHQudW5zaGlmdChkYXRhKTtcblx0XHRcdFx0fVxuXHRcdFx0fTtcblxuXHRcdGxldCBwcmV2ID0gMCxcblx0XHRcdG5leHQgPSAwLFxuXHRcdFx0bGltaXQgPSAyO1xuXG5cdFx0aWYgKDEgPCBwYWdlQ291bnQgfHwgKDAgPCBwYWdlQ291bnQgJiYgcGFnZUNvdW50IDwgY3VycmVudFBhZ2UpKSB7XG5cdFx0XHRpZiAocGFnZUNvdW50IDwgY3VycmVudFBhZ2UpIHtcblx0XHRcdFx0ZkFkZChwYWdlQ291bnQpO1xuXHRcdFx0XHRwcmV2ID0gcGFnZUNvdW50O1xuXHRcdFx0XHRuZXh0ID0gcGFnZUNvdW50O1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aWYgKDMgPj0gY3VycmVudFBhZ2UgfHwgcGFnZUNvdW50IC0gMiA8PSBjdXJyZW50UGFnZSkge1xuXHRcdFx0XHRcdGxpbWl0ICs9IDI7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRmQWRkKGN1cnJlbnRQYWdlKTtcblx0XHRcdFx0cHJldiA9IGN1cnJlbnRQYWdlO1xuXHRcdFx0XHRuZXh0ID0gY3VycmVudFBhZ2U7XG5cdFx0XHR9XG5cblx0XHRcdHdoaWxlICgwIDwgbGltaXQpIHtcblx0XHRcdFx0cHJldiAtPSAxO1xuXHRcdFx0XHRuZXh0ICs9IDE7XG5cblx0XHRcdFx0aWYgKDAgPCBwcmV2KSB7XG5cdFx0XHRcdFx0ZkFkZChwcmV2LCBmYWxzZSk7XG5cdFx0XHRcdFx0bGltaXQgLT0gMTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChwYWdlQ291bnQgPj0gbmV4dCkge1xuXHRcdFx0XHRcdGZBZGQobmV4dCwgdHJ1ZSk7XG5cdFx0XHRcdFx0bGltaXQgLT0gMTtcblx0XHRcdFx0fSBlbHNlIGlmICgwID49IHByZXYpIHtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRpZiAoMyA9PT0gcHJldikge1xuXHRcdFx0XHRmQWRkKDIsIGZhbHNlKTtcblx0XHRcdH0gZWxzZSBpZiAoMyA8IHByZXYpIHtcblx0XHRcdFx0ZkFkZChNYXRoLnJvdW5kKChwcmV2IC0gMSkgLyAyKSwgZmFsc2UsICcuLi4nKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHBhZ2VDb3VudCAtIDIgPT09IG5leHQpIHtcblx0XHRcdFx0ZkFkZChwYWdlQ291bnQgLSAxLCB0cnVlKTtcblx0XHRcdH0gZWxzZSBpZiAocGFnZUNvdW50IC0gMiA+IG5leHQpIHtcblx0XHRcdFx0ZkFkZChNYXRoLnJvdW5kKChwYWdlQ291bnQgKyBuZXh0KSAvIDIpLCB0cnVlLCAnLi4uJyk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIGZpcnN0IGFuZCBsYXN0XG5cdFx0XHRpZiAoMSA8IHByZXYpIHtcblx0XHRcdFx0ZkFkZCgxLCBmYWxzZSk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChwYWdlQ291bnQgPiBuZXh0KSB7XG5cdFx0XHRcdGZBZGQocGFnZUNvdW50LCB0cnVlKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9O1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlTmFtZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVFeHRlbnNpb24oZmlsZU5hbWUpIHtcblx0ZmlsZU5hbWUgPSB0cmltKGZpbGVOYW1lKS50b0xvd2VyQ2FzZSgpO1xuXG5cdGNvbnN0IHJlc3VsdCA9IGZpbGVOYW1lLnNwbGl0KCcuJykucG9wKCk7XG5cdHJldHVybiByZXN1bHQgPT09IGZpbGVOYW1lID8gJycgOiByZXN1bHQ7XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGZpbGVOYW1lXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWltZUNvbnRlbnRUeXBlKGZpbGVOYW1lKSB7XG5cdGxldCBleHQgPSAnJyxcblx0XHRyZXN1bHQgPSAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJztcblxuXHRmaWxlTmFtZSA9IHRyaW0oZmlsZU5hbWUpLnRvTG93ZXJDYXNlKCk7XG5cblx0aWYgKCd3aW5tYWlsLmRhdCcgPT09IGZpbGVOYW1lKSB7XG5cdFx0cmV0dXJuICdhcHBsaWNhdGlvbi9tcy10bmVmJztcblx0fVxuXG5cdGV4dCA9IGdldEZpbGVFeHRlbnNpb24oZmlsZU5hbWUpO1xuXHRpZiAoZXh0ICYmIDAgPCBleHQubGVuZ3RoICYmICFpc1VuZChNaW1lW2V4dF0pKSB7XG5cdFx0cmVzdWx0ID0gTWltZVtleHRdO1xuXHR9XG5cblx0cmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gY29sb3JcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNUcmFuc3BhcmVudChjb2xvcikge1xuXHRyZXR1cm4gJ3JnYmEoMCwgMCwgMCwgMCknID09PSBjb2xvciB8fCAndHJhbnNwYXJlbnQnID09PSBjb2xvcjtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge09iamVjdH0gJGVsXG4gKiBAcmV0dXJucyB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVhbEhlaWdodCgkZWwpIHtcblx0JGVsXG5cdFx0LmNsb25lKClcblx0XHQuc2hvdygpXG5cdFx0LmFwcGVuZFRvKCRoY29udCk7XG5cdGNvbnN0IHJlc3VsdCA9ICRoY29udC5oZWlnaHQoKTtcblx0JGhjb250LmVtcHR5KCk7XG5cdHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHVybFxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmQ2FsbGJhY2tcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc2l6ZUFuZENyb3AodXJsLCB2YWx1ZSwgZkNhbGxiYWNrKSB7XG5cdGNvbnN0IGltZyA9IG5ldyB3aW5kb3cuSW1hZ2UoKTtcblx0aW1nLm9ubG9hZCA9IGZ1bmN0aW9uKCkge1xuXHRcdGxldCBkaWZmID0gWzAsIDBdO1xuXG5cdFx0Y29uc3QgY2FudmFzID0gd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpLFxuXHRcdFx0Y3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG5cblx0XHRjYW52YXMud2lkdGggPSB2YWx1ZTtcblx0XHRjYW52YXMuaGVpZ2h0ID0gdmFsdWU7XG5cblx0XHRpZiAodGhpcy53aWR0aCA+IHRoaXMuaGVpZ2h0KSB7XG5cdFx0XHRkaWZmID0gW3RoaXMud2lkdGggLSB0aGlzLmhlaWdodCwgMF07XG5cdFx0fSBlbHNlIHtcblx0XHRcdGRpZmYgPSBbMCwgdGhpcy5oZWlnaHQgLSB0aGlzLndpZHRoXTtcblx0XHR9XG5cblx0XHRjdHguZmlsbFN0eWxlID0gJyNmZmYnO1xuXHRcdGN0eC5maWxsUmVjdCgwLCAwLCB2YWx1ZSwgdmFsdWUpO1xuXHRcdGN0eC5kcmF3SW1hZ2UodGhpcywgZGlmZlswXSAvIDIsIGRpZmZbMV0gLyAyLCB0aGlzLndpZHRoIC0gZGlmZlswXSwgdGhpcy5oZWlnaHQgLSBkaWZmWzFdLCAwLCAwLCB2YWx1ZSwgdmFsdWUpO1xuXG5cdFx0ZkNhbGxiYWNrKGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL2pwZWcnKSk7XG5cdH07XG5cblx0aW1nLnNyYyA9IHVybDtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWFpbFRvVXJsXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBQb3B1cENvbXBvc2VWaWV3TW9kZWxcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFpbFRvSGVscGVyKG1haWxUb1VybCwgUG9wdXBDb21wb3NlVmlld01vZGVsKSB7XG5cdGlmIChcblx0XHRtYWlsVG9VcmwgJiZcblx0XHQnbWFpbHRvOicgPT09XG5cdFx0XHRtYWlsVG9Vcmxcblx0XHRcdFx0LnRvU3RyaW5nKClcblx0XHRcdFx0LnN1YnN0cigwLCA3KVxuXHRcdFx0XHQudG9Mb3dlckNhc2UoKVxuXHQpIHtcblx0XHRpZiAoIVBvcHVwQ29tcG9zZVZpZXdNb2RlbCkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0bWFpbFRvVXJsID0gbWFpbFRvVXJsLnRvU3RyaW5nKCkuc3Vic3RyKDcpO1xuXG5cdFx0bGV0IHRvID0gW10sXG5cdFx0XHRjYyA9IG51bGwsXG5cdFx0XHRiY2MgPSBudWxsLFxuXHRcdFx0cGFyYW1zID0ge307XG5cblx0XHRjb25zdCBlbWFpbCA9IG1haWxUb1VybC5yZXBsYWNlKC9cXD8uKyQvLCAnJyksXG5cdFx0XHRxdWVyeSA9IG1haWxUb1VybC5yZXBsYWNlKC9eW14/XSpcXD8vLCAnJyksXG5cdFx0XHRFbWFpbE1vZGVsID0gcmVxdWlyZSgnTW9kZWwvRW1haWwnKS5kZWZhdWx0O1xuXG5cdFx0cGFyYW1zID0gc2ltcGxlUXVlcnlQYXJzZXIocXVlcnkpO1xuXG5cdFx0aWYgKCFpc1VuZChwYXJhbXMudG8pKSB7XG5cdFx0XHR0byA9IEVtYWlsTW9kZWwucGFyc2VFbWFpbExpbmUoZGVjb2RlVVJJQ29tcG9uZW50KGVtYWlsICsgJywnICsgcGFyYW1zLnRvKSk7XG5cdFx0XHR0byA9IF8udmFsdWVzKFxuXHRcdFx0XHR0by5yZWR1Y2UoKHJlc3VsdCwgdmFsdWUpID0+IHtcblx0XHRcdFx0XHRpZiAodmFsdWUpIHtcblx0XHRcdFx0XHRcdGlmIChyZXN1bHRbdmFsdWUuZW1haWxdKSB7XG5cdFx0XHRcdFx0XHRcdGlmICghcmVzdWx0W3ZhbHVlLmVtYWlsXS5uYW1lKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVzdWx0W3ZhbHVlLmVtYWlsXSA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRyZXN1bHRbdmFsdWUuZW1haWxdID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0XHRcdH0sIHt9KVxuXHRcdFx0KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dG8gPSBFbWFpbE1vZGVsLnBhcnNlRW1haWxMaW5lKGVtYWlsKTtcblx0XHR9XG5cblx0XHRpZiAoIWlzVW5kKHBhcmFtcy5jYykpIHtcblx0XHRcdGNjID0gRW1haWxNb2RlbC5wYXJzZUVtYWlsTGluZShkZWNvZGVVUklDb21wb25lbnQocGFyYW1zLmNjKSk7XG5cdFx0fVxuXG5cdFx0aWYgKCFpc1VuZChwYXJhbXMuYmNjKSkge1xuXHRcdFx0YmNjID0gRW1haWxNb2RlbC5wYXJzZUVtYWlsTGluZShkZWNvZGVVUklDb21wb25lbnQocGFyYW1zLmJjYykpO1xuXHRcdH1cblxuXHRcdHJlcXVpcmUoJ0tub2luL0tub2luJykuc2hvd1NjcmVlblBvcHVwKFBvcHVwQ29tcG9zZVZpZXdNb2RlbCwgW1xuXHRcdFx0Q29tcG9zZVR5cGUuRW1wdHksXG5cdFx0XHRudWxsLFxuXHRcdFx0dG8sXG5cdFx0XHRjYyxcblx0XHRcdGJjYyxcblx0XHRcdGlzVW5kKHBhcmFtcy5zdWJqZWN0KSA/IG51bGwgOiBwU3RyaW5nKGRlY29kZVVSSUNvbXBvbmVudChwYXJhbXMuc3ViamVjdCkpLFxuXHRcdFx0aXNVbmQocGFyYW1zLmJvZHkpID8gbnVsbCA6IHBsYWluVG9IdG1sKHBTdHJpbmcoZGVjb2RlVVJJQ29tcG9uZW50KHBhcmFtcy5ib2R5KSkpXG5cdFx0XSk7XG5cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkb21SZWFkeShmbikge1xuXHQkKCgpID0+IGZuKCkpO1xuXHQvL1xuXHQvL1x0aWYgKCdsb2FkaW5nJyAhPT0gd2luZG93LmRvY3VtZW50LnJlYWR5U3RhdGUpXG5cdC8vXHR7XG5cdC8vXHRcdGZuKCk7XG5cdC8vXHR9XG5cdC8vXHRlbHNlXG5cdC8vXHR7XG5cdC8vXHRcdHdpbmRvdy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZm4pO1xuXHQvL1x0fVxufVxuXG5leHBvcnQgY29uc3Qgd2luZG93UmVzaXplID0gXy5kZWJvdW5jZSgodGltZW91dCkgPT4ge1xuXHRpZiAoaXNVbmQodGltZW91dCkgfHwgaXNOdWxsKHRpbWVvdXQpKSB7XG5cdFx0JHdpbi5yZXNpemUoKTtcblx0fSBlbHNlIHtcblx0XHR3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHQkd2luLnJlc2l6ZSgpO1xuXHRcdH0sIHRpbWVvdXQpO1xuXHR9XG59LCA1MCk7XG5cbi8qKlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aW5kb3dSZXNpemVDYWxsYmFjaygpIHtcblx0d2luZG93UmVzaXplKCk7XG59XG5cbmxldCBzdWJzdHIgPSB3aW5kb3cuU3RyaW5nLnN1YnN0cjtcbmlmICgnYicgIT09ICdhYicuc3Vic3RyKC0xKSkge1xuXHRzdWJzdHIgPSAoc3RyLCBzdGFydCwgbGVuZ3RoKSA9PiB7XG5cdFx0c3RhcnQgPSAwID4gc3RhcnQgPyBzdHIubGVuZ3RoICsgc3RhcnQgOiBzdGFydDtcblx0XHRyZXR1cm4gc3RyLnN1YnN0cihzdGFydCwgbGVuZ3RoKTtcblx0fTtcblxuXHR3aW5kb3cuU3RyaW5nLnN1YnN0ciA9IHN1YnN0cjtcbn1cbiIsIm1vZHVsZS5leHBvcnRzID0gd2luZG93Ll87IiwibW9kdWxlLmV4cG9ydHMgPSB3aW5kb3c7IiwiaW1wb3J0IHdpbmRvdyBmcm9tICd3aW5kb3cnO1xuaW1wb3J0IHsgaXNVbmQsIGlzTm9ybWFsLCBpc0FycmF5LCBpbkFycmF5IH0gZnJvbSAnQ29tbW9uL1V0aWxzJztcblxubGV0IFNFVFRJTkdTID0gd2luZG93Ll9fcmxhaF9kYXRhKCkgfHwgbnVsbDtcblNFVFRJTkdTID0gaXNOb3JtYWwoU0VUVElOR1MpID8gU0VUVElOR1MgOiB7fTtcblxubGV0IEFQUF9TRVRUSU5HUyA9IFNFVFRJTkdTLlN5c3RlbSB8fCBudWxsO1xuQVBQX1NFVFRJTkdTID0gaXNOb3JtYWwoQVBQX1NFVFRJTkdTKSA/IEFQUF9TRVRUSU5HUyA6IHt9O1xuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiBAcmV0dXJucyB7Kn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldHRpbmdzR2V0KG5hbWUpIHtcblx0cmV0dXJuIGlzVW5kKFNFVFRJTkdTW25hbWVdKSA/IG51bGwgOiBTRVRUSU5HU1tuYW1lXTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogQHBhcmFtIHsqfSB2YWx1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0dGluZ3NTZXQobmFtZSwgdmFsdWUpIHtcblx0U0VUVElOR1NbbmFtZV0gPSB2YWx1ZTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogQHJldHVybnMgeyp9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBTZXR0aW5nc0dldChuYW1lKSB7XG5cdHJldHVybiBpc1VuZChBUFBfU0VUVElOR1NbbmFtZV0pID8gbnVsbCA6IEFQUF9TRVRUSU5HU1tuYW1lXTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYXBhKG5hbWUpIHtcblx0Y29uc3QgdmFsdWVzID0gc2V0dGluZ3NHZXQoJ0NhcGEnKTtcblx0cmV0dXJuIGlzQXJyYXkodmFsdWVzKSAmJiBpc05vcm1hbChuYW1lKSAmJiAtMSA8IGluQXJyYXkobmFtZSwgdmFsdWVzKTtcbn1cbiIsImltcG9ydCB3aW5kb3cgZnJvbSAnd2luZG93JztcbmltcG9ydCBfIGZyb20gJ18nO1xuaW1wb3J0ICQgZnJvbSAnJCc7XG5pbXBvcnQga2V5IGZyb20gJ2tleSc7XG5pbXBvcnQga28gZnJvbSAna28nO1xuaW1wb3J0IHsgS2V5U3RhdGUgfSBmcm9tICdDb21tb24vRW51bXMnO1xuXG5jb25zdCAkd2luID0gJCh3aW5kb3cpO1xuJHdpbi5fX3NpemVzID0gWzAsIDBdO1xuXG5leHBvcnQgeyAkd2luIH07XG5cbmV4cG9ydCBjb25zdCAkZG9jID0gJCh3aW5kb3cuZG9jdW1lbnQpO1xuXG5leHBvcnQgY29uc3QgJGh0bWwgPSAkKCdodG1sJyk7XG5cbmV4cG9ydCBjb25zdCAkYm9keSA9ICQoJ2JvZHknKTtcblxuZXhwb3J0IGNvbnN0ICRkaXYgPSAkKCc8ZGl2PjwvZGl2PicpO1xuXG5leHBvcnQgY29uc3QgJGhjb250ID0gJCgnPGRpdj48L2Rpdj4nKTtcbiRoY29udFxuXHQuYXR0cignYXJlYScsICdoaWRkZW4nKVxuXHQuY3NzKHsgcG9zaXRpb246ICdhYnNvbHV0ZScsIGxlZnQ6IC01MDAwIH0pXG5cdC5hcHBlbmRUbygkYm9keSk7XG5cbmV4cG9ydCBjb25zdCBzdGFydE1pY3JvdGltZSA9IG5ldyB3aW5kb3cuRGF0ZSgpLmdldFRpbWUoKTtcblxuLyoqXG4gKiBAdHlwZSB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGNvbnN0IGNvbW11bml0eSA9IFJMX0NPTU1VTklUWTtcblxuLyoqXG4gKiBAdHlwZSB7P31cbiAqL1xuZXhwb3J0IGNvbnN0IGRyb3Bkb3duVmlzaWJpbGl0eSA9IGtvLm9ic2VydmFibGUoZmFsc2UpLmV4dGVuZCh7IHJhdGVMaW1pdDogMCB9KTtcblxuLyoqXG4gKiBAdHlwZSB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZUtleWJvYXJkU2hvcnRjdXRzID0ga28ub2JzZXJ2YWJsZSh0cnVlKTtcblxuLyoqXG4gKiBAdHlwZSB7c3RyaW5nfVxuICovXG5leHBvcnQgY29uc3Qgc1VzZXJBZ2VudCA9XG5cdCgnbmF2aWdhdG9yJyBpbiB3aW5kb3cgJiYgJ3VzZXJBZ2VudCcgaW4gd2luZG93Lm5hdmlnYXRvciAmJiB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKSB8fCAnJztcblxuLyoqXG4gKiBAdHlwZSB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGNvbnN0IGJJRSA9IC0xIDwgc1VzZXJBZ2VudC5pbmRleE9mKCdtc2llJyk7XG5cbi8qKlxuICogQHR5cGUge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBjb25zdCBiQ2hyb21lID0gLTEgPCBzVXNlckFnZW50LmluZGV4T2YoJ2Nocm9tZScpO1xuXG4vKipcbiAqIEB0eXBlIHtib29sZWFufVxuICovXG5leHBvcnQgY29uc3QgYlNhZmFyaSA9ICFiQ2hyb21lICYmIC0xIDwgc1VzZXJBZ2VudC5pbmRleE9mKCdzYWZhcmknKTtcblxuLyoqXG4gKiBAdHlwZSB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGNvbnN0IGJNb2JpbGVEZXZpY2UgPVxuXHQoL2FuZHJvaWQvaSkudGVzdChzVXNlckFnZW50KSB8fFxuXHQoL2lwaG9uZS9pKS50ZXN0KHNVc2VyQWdlbnQpIHx8XG5cdCgvaXBvZC9pKS50ZXN0KHNVc2VyQWdlbnQpIHx8XG5cdCgvaXBhZC9pKS50ZXN0KHNVc2VyQWdlbnQpIHx8XG5cdCgvYmxhY2tiZXJyeS9pKS50ZXN0KHNVc2VyQWdlbnQpO1xuXG4vKipcbiAqIEB0eXBlIHtib29sZWFufVxuICovXG5leHBvcnQgY29uc3QgYkRpc2FibGVOYW5vU2Nyb2xsID0gYk1vYmlsZURldmljZTtcblxuLyoqXG4gKiBAdHlwZSB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGNvbnN0IGJBbmltYXRpb25TdXBwb3J0ZWQgPVxuXHQhYk1vYmlsZURldmljZSAmJiAkaHRtbC5oYXNDbGFzcygnY3NzdHJhbnNpdGlvbnMnKSAmJiAkaHRtbC5oYXNDbGFzcygnY3NzYW5pbWF0aW9ucycpO1xuXG4vKipcbiAqIEB0eXBlIHtib29sZWFufVxuICovXG5leHBvcnQgY29uc3QgYlhNTEh0dHBSZXF1ZXN0U3VwcG9ydGVkID0gISF3aW5kb3cuWE1MSHR0cFJlcXVlc3Q7XG5cbi8qKlxuICogQHR5cGUge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBjb25zdCBiSXNIdHRwcyA9XG5cdHdpbmRvdy5kb2N1bWVudCAmJiB3aW5kb3cuZG9jdW1lbnQubG9jYXRpb24gPyAnaHR0cHM6JyA9PT0gd2luZG93LmRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sIDogZmFsc2U7XG5cbi8qKlxuICogQHR5cGUge09iamVjdH1cbiAqL1xuZXhwb3J0IGNvbnN0IGh0bWxFZGl0b3JEZWZhdWx0Q29uZmlnID0ge1xuXHQndGl0bGUnOiBmYWxzZSxcblx0J3N0eWxlc1NldCc6IGZhbHNlLFxuXHQnY3VzdG9tQ29uZmlnJzogJycsXG5cdCdjb250ZW50c0Nzcyc6ICcnLFxuXHQndG9vbGJhckdyb3Vwcyc6IFtcblx0XHR7IG5hbWU6ICdzcGVjJyB9LFxuXHRcdHsgbmFtZTogJ3N0eWxlcycgfSxcblx0XHR7IG5hbWU6ICdiYXNpY3N0eWxlcycsIGdyb3VwczogWydiYXNpY3N0eWxlcycsICdjbGVhbnVwJywgJ2JpZGknXSB9LFxuXHRcdHsgbmFtZTogJ2NvbG9ycycgfSxcblx0XHRiTW9iaWxlRGV2aWNlID8ge30gOiB7IG5hbWU6ICdwYXJhZ3JhcGgnLCBncm91cHM6IFsnbGlzdCcsICdpbmRlbnQnLCAnYmxvY2tzJywgJ2FsaWduJ10gfSxcblx0XHR7IG5hbWU6ICdsaW5rcycgfSxcblx0XHR7IG5hbWU6ICdpbnNlcnQnIH0sXG5cdFx0eyBuYW1lOiAnZG9jdW1lbnQnLCBncm91cHM6IFsnbW9kZScsICdkb2N1bWVudCcsICdkb2N0b29scyddIH0sXG5cdFx0eyBuYW1lOiAnb3RoZXJzJyB9XG5cdF0sXG5cblx0J3JlbW92ZVBsdWdpbnMnOiAnbGlzdHN0eWxlJyxcblx0J3JlbW92ZUJ1dHRvbnMnOiAnRm9ybWF0LFVuZG8sUmVkbyxDdXQsQ29weSxQYXN0ZSxBbmNob3IsU3RyaWtlLFN1YnNjcmlwdCxTdXBlcnNjcmlwdCxJbWFnZSxTZWxlY3RBbGwsU291cmNlJyxcblx0J3JlbW92ZURpYWxvZ1RhYnMnOiAnbGluazphZHZhbmNlZDtsaW5rOnRhcmdldDtpbWFnZTphZHZhbmNlZDtpbWFnZXM6YWR2YW5jZWQnLFxuXG5cdCdleHRyYVBsdWdpbnMnOiAncGxhaW4sc2lnbmF0dXJlJyxcblxuXHQnYWxsb3dlZENvbnRlbnQnOiB0cnVlLFxuXHQnZXh0cmFBbGxvd2VkQ29udGVudCc6IHRydWUsXG5cblx0J2ZpbGxFbXB0eUJsb2Nrcyc6IGZhbHNlLFxuXHQnaWdub3JlRW1wdHlQYXJhZ3JhcGgnOiB0cnVlLFxuXHQnZGlzYWJsZU5hdGl2ZVNwZWxsQ2hlY2tlcic6IGZhbHNlLFxuXG5cdCdjb2xvckJ1dHRvbl9lbmFibGVBdXRvbWF0aWMnOiBmYWxzZSxcblx0J2NvbG9yQnV0dG9uX2VuYWJsZU1vcmUnOiB0cnVlLFxuXG5cdCdmb250X2RlZmF1bHRMYWJlbCc6ICdBcmlhbCcsXG5cdCdmb250U2l6ZV9kZWZhdWx0TGFiZWwnOiAnMTMnLFxuXHQnZm9udFNpemVfc2l6ZXMnOiAnMTAvMTBweDsxMi8xMnB4OzEzLzEzcHg7MTQvMTRweDsxNi8xNnB4OzE4LzE4cHg7MjAvMjBweDsyNC8yNHB4OzI4LzI4cHg7MzYvMzZweDs0OC80OHB4J1xufTtcblxuLyoqXG4gKiBAdHlwZSB7T2JqZWN0fVxuICovXG5leHBvcnQgY29uc3QgaHRtbEVkaXRvckxhbmdzTWFwID0ge1xuXHQnYXJfc2EnOiAnYXItc2EnLFxuXHQnYmdfYmcnOiAnYmcnLFxuXHQnY3NfQ1onOiAnY3MnLFxuXHQnZGVfZGUnOiAnZGUnLFxuXHQnZWxfZ3InOiAnZWwnLFxuXHQnZXNfZXMnOiAnZXMnLFxuXHQnZXRfZWUnOiAnZXQnLFxuXHQnZnJfZnInOiAnZnInLFxuXHQnaHVfaHUnOiAnaHUnLFxuXHQnaXNfaXMnOiAnaXMnLFxuXHQnaXRfaXQnOiAnaXQnLFxuXHQnamFfanAnOiAnamEnLFxuXHQna29fa3InOiAna28nLFxuXHQnbHRfbHQnOiAnbHQnLFxuXHQnbHZfbHYnOiAnbHYnLFxuXHQnZmFfaXInOiAnZmEnLFxuXHQnbmJfbm8nOiAnbmInLFxuXHQnbmxfbmwnOiAnbmwnLFxuXHQncGxfcGwnOiAncGwnLFxuXHQncHRfYnInOiAncHQtYnInLFxuXHQncHRfcHQnOiAncHQnLFxuXHQncm9fcm8nOiAncm8nLFxuXHQncnVfcnUnOiAncnUnLFxuXHQnc2tfc2snOiAnc2snLFxuXHQnc2xfc2knOiAnc2wnLFxuXHQnc3Zfc2UnOiAnc3YnLFxuXHQndHJfdHInOiAndHInLFxuXHQndWtfdWEnOiAndWsnLFxuXHQnemhfY24nOiAnemgtY24nLFxuXHQnemhfdHcnOiAnemgnXG59O1xuXG4vKipcbiAqIEB0eXBlIHtib29sZWFufVxuICovXG5sZXQgYkFsbG93UGRmUHJldmlldyA9ICFiTW9iaWxlRGV2aWNlO1xuXG5pZiAoYkFsbG93UGRmUHJldmlldyAmJiB3aW5kb3cubmF2aWdhdG9yICYmIHdpbmRvdy5uYXZpZ2F0b3IubWltZVR5cGVzKSB7XG5cdGJBbGxvd1BkZlByZXZpZXcgPSAhIV8uZmluZCh3aW5kb3cubmF2aWdhdG9yLm1pbWVUeXBlcywgKHR5cGUpID0+IHR5cGUgJiYgJ2FwcGxpY2F0aW9uL3BkZicgPT09IHR5cGUudHlwZSk7XG5cblx0aWYgKCFiQWxsb3dQZGZQcmV2aWV3KSB7XG5cdFx0YkFsbG93UGRmUHJldmlldyA9ICd1bmRlZmluZWQnICE9PSB0eXBlb2Ygd2luZG93Lm5hdmlnYXRvci5taW1lVHlwZXNbJ2FwcGxpY2F0aW9uL3BkZiddO1xuXHR9XG59XG5cbmV4cG9ydCB7IGJBbGxvd1BkZlByZXZpZXcgfTtcblxuZXhwb3J0IGNvbnN0IFZJRVdfTU9ERUxTID0ge1xuXHRzZXR0aW5nczogW10sXG5cdCdzZXR0aW5ncy1yZW1vdmVkJzogW10sXG5cdCdzZXR0aW5ncy1kaXNhYmxlZCc6IFtdXG59O1xuXG5leHBvcnQgY29uc3QgbW92ZUFjdGlvbiA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuZXhwb3J0IGNvbnN0IGxlZnRQYW5lbERpc2FibGVkID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5leHBvcnQgY29uc3QgbGVmdFBhbmVsVHlwZSA9IGtvLm9ic2VydmFibGUoJycpO1xuZXhwb3J0IGNvbnN0IGxlZnRQYW5lbFdpZHRoID0ga28ub2JzZXJ2YWJsZSgwKTtcblxubGVmdFBhbmVsRGlzYWJsZWQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuXHRpZiAodmFsdWUgJiYgbW92ZUFjdGlvbigpKSB7XG5cdFx0bW92ZUFjdGlvbihmYWxzZSk7XG5cdH1cbn0pO1xuXG5tb3ZlQWN0aW9uLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0aWYgKHZhbHVlICYmIGxlZnRQYW5lbERpc2FibGVkKCkpIHtcblx0XHRsZWZ0UGFuZWxEaXNhYmxlZChmYWxzZSk7XG5cdH1cbn0pO1xuXG4vLyBwb3B1cHNcbmV4cG9ydCBjb25zdCBwb3B1cFZpc2liaWxpdHlOYW1lcyA9IGtvLm9ic2VydmFibGVBcnJheShbXSk7XG5cbmV4cG9ydCBjb25zdCBwb3B1cFZpc2liaWxpdHkgPSBrby5jb21wdXRlZCgoKSA9PiAwIDwgcG9wdXBWaXNpYmlsaXR5TmFtZXMoKS5sZW5ndGgpO1xuXG5wb3B1cFZpc2liaWxpdHkuc3Vic2NyaWJlKChiVmFsdWUpID0+IHtcblx0JGh0bWwudG9nZ2xlQ2xhc3MoJ3JsLW1vZGFsJywgYlZhbHVlKTtcbn0pO1xuXG4vLyBrZXlzXG5leHBvcnQgY29uc3Qga2V5U2NvcGVSZWFsID0ga28ub2JzZXJ2YWJsZShLZXlTdGF0ZS5BbGwpO1xuZXhwb3J0IGNvbnN0IGtleVNjb3BlRmFrZSA9IGtvLm9ic2VydmFibGUoS2V5U3RhdGUuQWxsKTtcblxuZXhwb3J0IGNvbnN0IGtleVNjb3BlID0ga28uY29tcHV0ZWQoe1xuXHRyZWFkOiAoKSA9PiBrZXlTY29wZUZha2UoKSxcblx0d3JpdGU6ICh2YWx1ZSkgPT4ge1xuXHRcdGlmIChLZXlTdGF0ZS5NZW51ICE9PSB2YWx1ZSkge1xuXHRcdFx0aWYgKEtleVN0YXRlLkNvbXBvc2UgPT09IHZhbHVlKSB7XG5cdFx0XHRcdC8vIGRpc2FibGVLZXlGaWx0ZXJcblx0XHRcdFx0a2V5LmZpbHRlciA9ICgpID0+IHVzZUtleWJvYXJkU2hvcnRjdXRzKCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyByZXN0b3JlS2V5RmlsdGVyXG5cdFx0XHRcdGtleS5maWx0ZXIgPSAoZXZlbnQpID0+IHtcblx0XHRcdFx0XHRpZiAodXNlS2V5Ym9hcmRTaG9ydGN1dHMoKSkge1xuXHRcdFx0XHRcdFx0Y29uc3QgZWwgPSBldmVudC50YXJnZXQgfHwgZXZlbnQuc3JjRWxlbWVudCxcblx0XHRcdFx0XHRcdFx0dGFnTmFtZSA9IGVsID8gZWwudGFnTmFtZS50b1VwcGVyQ2FzZSgpIDogJyc7XG5cblx0XHRcdFx0XHRcdHJldHVybiAhKFxuXHRcdFx0XHRcdFx0XHQnSU5QVVQnID09PSB0YWdOYW1lIHx8XG5cdFx0XHRcdFx0XHRcdCdTRUxFQ1QnID09PSB0YWdOYW1lIHx8XG5cdFx0XHRcdFx0XHRcdCdURVhUQVJFQScgPT09IHRhZ05hbWUgfHxcblx0XHRcdFx0XHRcdFx0KGVsICYmICdESVYnID09PSB0YWdOYW1lICYmICgnZWRpdG9ySHRtbEFyZWEnID09PSBlbC5jbGFzc05hbWUgfHwgJ3RydWUnID09PSAnJyArIGVsLmNvbnRlbnRFZGl0YWJsZSkpXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fTtcblx0XHRcdH1cblxuXHRcdFx0a2V5U2NvcGVGYWtlKHZhbHVlKTtcblx0XHRcdGlmIChkcm9wZG93blZpc2liaWxpdHkoKSkge1xuXHRcdFx0XHR2YWx1ZSA9IEtleVN0YXRlLk1lbnU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0a2V5U2NvcGVSZWFsKHZhbHVlKTtcblx0fVxufSk7XG5cbmtleVNjb3BlUmVhbC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdC8vXHR3aW5kb3cuY29uc29sZS5sb2coJ2tleVNjb3BlPScgKyBzVmFsdWUpOyAvLyBERUJVR1xuXHRrZXkuc2V0U2NvcGUodmFsdWUpO1xufSk7XG5cbmRyb3Bkb3duVmlzaWJpbGl0eS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdGlmICh2YWx1ZSkge1xuXHRcdGtleVNjb3BlKEtleVN0YXRlLk1lbnUpO1xuXHR9IGVsc2UgaWYgKEtleVN0YXRlLk1lbnUgPT09IGtleS5nZXRTY29wZSgpKSB7XG5cdFx0a2V5U2NvcGUoa2V5U2NvcGVGYWtlKCkpO1xuXHR9XG59KTtcblxuLyoqXG4gKiBAdHlwZSB7Kn1cbiAqL1xuZXhwb3J0IGNvbnN0IGRhdGEgPSB7XG5cdF9fQVBQX186IG51bGwsXG5cdGlBamF4RXJyb3JDb3VudDogMCxcblx0aVRva2VuRXJyb3JDb3VudDogMCxcblx0YUJvb3RzdHJhcERyb3Bkb3duczogW10sXG5cdGlNZXNzYWdlQm9keUNhY2hlQ291bnQ6IDAsXG5cdGJVbmxvYWQ6IGZhbHNlXG59O1xuIiwiaW1wb3J0IF8gZnJvbSAnXyc7XG5pbXBvcnQgJCBmcm9tICckJztcbmltcG9ydCBrbyBmcm9tICdrbyc7XG5pbXBvcnQgaGFzaGVyIGZyb20gJ2hhc2hlcic7XG5pbXBvcnQgY3Jvc3Nyb2FkcyBmcm9tICdjcm9zc3JvYWRzJztcblxuaW1wb3J0IHsgTWFnaWNzIH0gZnJvbSAnQ29tbW9uL0VudW1zJztcbmltcG9ydCB7IHJ1bkhvb2sgfSBmcm9tICdDb21tb24vUGx1Z2lucyc7XG5pbXBvcnQgeyAkaHRtbCwgVklFV19NT0RFTFMsIHBvcHVwVmlzaWJpbGl0eU5hbWVzIH0gZnJvbSAnQ29tbW9uL0dsb2JhbHMnO1xuXG5pbXBvcnQgeyBpc0FycmF5LCBpc1VuZCwgcFN0cmluZywgbG9nLCBpc0Z1bmMsIGNyZWF0ZUNvbW1hbmRMZWdhY3ksIGRlbGVnYXRlUnVuLCBpc05vbkVtcHR5QXJyYXkgfSBmcm9tICdDb21tb24vVXRpbHMnO1xuXG5sZXQgY3VycmVudFNjcmVlbiA9IG51bGwsXG5cdGRlZmF1bHRTY3JlZW5OYW1lID0gJyc7XG5cbmNvbnN0IFNDUkVFTlMgPSB7fTtcblxuZXhwb3J0IGNvbnN0IFZpZXdUeXBlID0ge1xuXHRQb3B1cDogJ1BvcHVwcycsXG5cdExlZnQ6ICdMZWZ0Jyxcblx0UmlnaHQ6ICdSaWdodCcsXG5cdENlbnRlcjogJ0NlbnRlcidcbn07XG5cbi8qKlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoaWRlTG9hZGluZygpIHtcblx0JCgnI3JsLWNvbnRlbnQnKS5hZGRDbGFzcygncmwtY29udGVudC1zaG93Jyk7XG5cdCQoJyNybC1sb2FkaW5nJylcblx0XHQuaGlkZSgpXG5cdFx0LnJlbW92ZSgpO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZFeGVjdXRlXG4gKiBAcGFyYW0geyhGdW5jdGlvbnxib29sZWFufG51bGwpPX0gZkNhbkV4ZWN1dGUgPSB0cnVlXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb21tYW5kKGZFeGVjdXRlLCBmQ2FuRXhlY3V0ZSA9IHRydWUpIHtcblx0cmV0dXJuIGNyZWF0ZUNvbW1hbmRMZWdhY3kobnVsbCwgZkV4ZWN1dGUsIGZDYW5FeGVjdXRlKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBTZXR0aW5nc1ZpZXdNb2RlbENsYXNzXG4gKiBAcGFyYW0ge3N0cmluZ30gdGVtcGxhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBsYWJlbE5hbWVcbiAqIEBwYXJhbSB7c3RyaW5nfSByb3V0ZVxuICogQHBhcmFtIHtib29sZWFuPX0gaXNEZWZhdWx0ID0gZmFsc2VcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkU2V0dGluZ3NWaWV3TW9kZWwoU2V0dGluZ3NWaWV3TW9kZWxDbGFzcywgdGVtcGxhdGUsIGxhYmVsTmFtZSwgcm91dGUsIGlzRGVmYXVsdCA9IGZhbHNlKSB7XG5cdFNldHRpbmdzVmlld01vZGVsQ2xhc3MuX19ybFNldHRpbmdzRGF0YSA9IHtcblx0XHRMYWJlbDogbGFiZWxOYW1lLFxuXHRcdFRlbXBsYXRlOiB0ZW1wbGF0ZSxcblx0XHRSb3V0ZTogcm91dGUsXG5cdFx0SXNEZWZhdWx0OiAhIWlzRGVmYXVsdFxuXHR9O1xuXG5cdFZJRVdfTU9ERUxTLnNldHRpbmdzLnB1c2goU2V0dGluZ3NWaWV3TW9kZWxDbGFzcyk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gU2V0dGluZ3NWaWV3TW9kZWxDbGFzc1xuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVTZXR0aW5nc1ZpZXdNb2RlbChTZXR0aW5nc1ZpZXdNb2RlbENsYXNzKSB7XG5cdFZJRVdfTU9ERUxTWydzZXR0aW5ncy1yZW1vdmVkJ10ucHVzaChTZXR0aW5nc1ZpZXdNb2RlbENsYXNzKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBTZXR0aW5nc1ZpZXdNb2RlbENsYXNzXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpc2FibGVTZXR0aW5nc1ZpZXdNb2RlbChTZXR0aW5nc1ZpZXdNb2RlbENsYXNzKSB7XG5cdFZJRVdfTU9ERUxTWydzZXR0aW5ncy1kaXNhYmxlZCddLnB1c2goU2V0dGluZ3NWaWV3TW9kZWxDbGFzcyk7XG59XG5cbi8qKlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByb3V0ZU9mZigpIHtcblx0aGFzaGVyLmNoYW5nZWQuYWN0aXZlID0gZmFsc2U7XG59XG5cbi8qKlxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByb3V0ZU9uKCkge1xuXHRoYXNoZXIuY2hhbmdlZC5hY3RpdmUgPSB0cnVlO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBzY3JlZW5OYW1lXG4gKiBAcmV0dXJucyB7P09iamVjdH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNjcmVlbihzY3JlZW5OYW1lKSB7XG5cdHJldHVybiAnJyAhPT0gc2NyZWVuTmFtZSAmJiAhaXNVbmQoU0NSRUVOU1tzY3JlZW5OYW1lXSkgPyBTQ1JFRU5TW3NjcmVlbk5hbWVdIDogbnVsbDtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBWaWV3TW9kZWxDbGFzc1RvU2hvd1xuICogQHJldHVybnMge0Z1bmN0aW9ufG51bGx9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY3JlZW5Qb3B1cChQb3B1Vmlld01vZGVsQ2xhc3MpIHtcblx0bGV0IHJlc3VsdCA9IG51bGw7XG5cdGlmIChQb3B1Vmlld01vZGVsQ2xhc3MpIHtcblx0XHRyZXN1bHQgPSBQb3B1Vmlld01vZGVsQ2xhc3M7XG5cdFx0aWYgKFBvcHVWaWV3TW9kZWxDbGFzcy5kZWZhdWx0KSB7XG5cdFx0XHRyZXN1bHQgPSBQb3B1Vmlld01vZGVsQ2xhc3MuZGVmYXVsdDtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIEBwYXJhbSB7RnVuY3Rpb259IFZpZXdNb2RlbENsYXNzVG9IaWRlXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhpZGVTY3JlZW5Qb3B1cChWaWV3TW9kZWxDbGFzc1RvSGlkZSkge1xuXHRjb25zdCBNb2RhbFZpZXcgPSBnZXRTY3JlZW5Qb3B1cChWaWV3TW9kZWxDbGFzc1RvSGlkZSk7XG5cdGlmIChNb2RhbFZpZXcgJiYgTW9kYWxWaWV3Ll9fdm0gJiYgTW9kYWxWaWV3Ll9fZG9tKSB7XG5cdFx0TW9kYWxWaWV3Ll9fdm0ubW9kYWxWaXNpYmlsaXR5KGZhbHNlKTtcblx0fVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBob29rTmFtZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gVmlld01vZGVsQ2xhc3NcbiAqIEBwYXJhbSB7bWl4ZWQ9fSBwYXJhbXMgPSBudWxsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2bVJ1bkhvb2soaG9va05hbWUsIFZpZXdNb2RlbENsYXNzLCBwYXJhbXMgPSBudWxsKSB7XG5cdF8uZWFjaChWaWV3TW9kZWxDbGFzcy5fX25hbWVzLCAobmFtZSkgPT4ge1xuXHRcdHJ1bkhvb2soaG9va05hbWUsIFtuYW1lLCBWaWV3TW9kZWxDbGFzcy5fX3ZtLCBwYXJhbXNdKTtcblx0fSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gVmlld01vZGVsQ2xhc3NcbiAqIEBwYXJhbSB7T2JqZWN0PX0gdm1TY3JlZW5cbiAqIEByZXR1cm5zIHsqfVxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRWaWV3TW9kZWwoVmlld01vZGVsQ2xhc3MsIHZtU2NyZWVuKSB7XG5cdGlmIChWaWV3TW9kZWxDbGFzcyAmJiAhVmlld01vZGVsQ2xhc3MuX19idWlsZGVkKSB7XG5cdFx0bGV0IHZtRG9tID0gbnVsbDtcblx0XHRjb25zdCB2bSA9IG5ldyBWaWV3TW9kZWxDbGFzcyh2bVNjcmVlbiksXG5cdFx0XHRwb3NpdGlvbiA9IFZpZXdNb2RlbENsYXNzLl9fdHlwZSB8fCAnJyxcblx0XHRcdHZtUGxhY2UgPSBwb3NpdGlvbiA/ICQoJyNybC1jb250ZW50ICNybC0nICsgcG9zaXRpb24udG9Mb3dlckNhc2UoKSkgOiBudWxsO1xuXG5cdFx0Vmlld01vZGVsQ2xhc3MuX19idWlsZGVkID0gdHJ1ZTtcblx0XHRWaWV3TW9kZWxDbGFzcy5fX3ZtID0gdm07XG5cblx0XHR2bS5vblNob3dUcmlnZ2VyID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cdFx0dm0ub25IaWRlVHJpZ2dlciA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXG5cdFx0dm0udmlld01vZGVsTmFtZSA9IFZpZXdNb2RlbENsYXNzLl9fbmFtZTtcblx0XHR2bS52aWV3TW9kZWxOYW1lcyA9IFZpZXdNb2RlbENsYXNzLl9fbmFtZXM7XG5cdFx0dm0udmlld01vZGVsVGVtcGxhdGVJRCA9IFZpZXdNb2RlbENsYXNzLl9fdGVtcGxhdGVJRDtcblx0XHR2bS52aWV3TW9kZWxQb3NpdGlvbiA9IFZpZXdNb2RlbENsYXNzLl9fdHlwZTtcblxuXHRcdGlmICh2bVBsYWNlICYmIDEgPT09IHZtUGxhY2UubGVuZ3RoKSB7XG5cdFx0XHR2bURvbSA9ICQoJzxkaXY+PC9kaXY+Jylcblx0XHRcdFx0LmFkZENsYXNzKCdybC12aWV3LW1vZGVsJylcblx0XHRcdFx0LmFkZENsYXNzKCdSTC0nICsgdm0udmlld01vZGVsVGVtcGxhdGVJRClcblx0XHRcdFx0LmhpZGUoKTtcblx0XHRcdHZtRG9tLmFwcGVuZFRvKHZtUGxhY2UpO1xuXG5cdFx0XHR2bS52aWV3TW9kZWxEb20gPSB2bURvbTtcblx0XHRcdFZpZXdNb2RlbENsYXNzLl9fZG9tID0gdm1Eb207XG5cblx0XHRcdGlmIChWaWV3VHlwZS5Qb3B1cCA9PT0gcG9zaXRpb24pIHtcblx0XHRcdFx0dm0uY2FuY2VsQ29tbWFuZCA9IHZtLmNsb3NlQ29tbWFuZCA9IGNyZWF0ZUNvbW1hbmQoKCkgPT4ge1xuXHRcdFx0XHRcdGhpZGVTY3JlZW5Qb3B1cChWaWV3TW9kZWxDbGFzcyk7XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdHZtLm1vZGFsVmlzaWJpbGl0eS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0aWYgKHZhbHVlKSB7XG5cdFx0XHRcdFx0XHR2bS52aWV3TW9kZWxEb20uc2hvdygpO1xuXHRcdFx0XHRcdFx0dm0uc3RvcmVBbmRTZXRLZXlTY29wZSgpO1xuXG5cdFx0XHRcdFx0XHRwb3B1cFZpc2liaWxpdHlOYW1lcy5wdXNoKHZtLnZpZXdNb2RlbE5hbWUpO1xuXHRcdFx0XHRcdFx0dm0udmlld01vZGVsRG9tLmNzcygnei1pbmRleCcsIDMwMDAgKyBwb3B1cFZpc2liaWxpdHlOYW1lcygpLmxlbmd0aCArIDEwKTtcblxuXHRcdFx0XHRcdFx0aWYgKHZtLm9uU2hvd1RyaWdnZXIpIHtcblx0XHRcdFx0XHRcdFx0dm0ub25TaG93VHJpZ2dlcighdm0ub25TaG93VHJpZ2dlcigpKTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0ZGVsZWdhdGVSdW4odm0sICdvblNob3dXaXRoRGVsYXknLCBbXSwgNTAwKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0ZGVsZWdhdGVSdW4odm0sICdvbkhpZGUnKTtcblx0XHRcdFx0XHRcdGRlbGVnYXRlUnVuKHZtLCAnb25IaWRlV2l0aERlbGF5JywgW10sIDUwMCk7XG5cblx0XHRcdFx0XHRcdGlmICh2bS5vbkhpZGVUcmlnZ2VyKSB7XG5cdFx0XHRcdFx0XHRcdHZtLm9uSGlkZVRyaWdnZXIoIXZtLm9uSGlkZVRyaWdnZXIoKSk7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdHZtLnJlc3RvcmVLZXlTY29wZSgpO1xuXG5cdFx0XHRcdFx0XHR2bVJ1bkhvb2soJ3ZpZXctbW9kZWwtb24taGlkZScsIFZpZXdNb2RlbENsYXNzKTtcblxuXHRcdFx0XHRcdFx0cG9wdXBWaXNpYmlsaXR5TmFtZXMucmVtb3ZlKHZtLnZpZXdNb2RlbE5hbWUpO1xuXHRcdFx0XHRcdFx0dm0udmlld01vZGVsRG9tLmNzcygnei1pbmRleCcsIDIwMDApO1xuXG5cdFx0XHRcdFx0XHRfLmRlbGF5KCgpID0+IHZtLnZpZXdNb2RlbERvbS5oaWRlKCksIDMwMCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblxuXHRcdFx0dm1SdW5Ib29rKCd2aWV3LW1vZGVsLXByZS1idWlsZCcsIFZpZXdNb2RlbENsYXNzLCB2bURvbSk7XG5cblx0XHRcdGtvLmFwcGx5QmluZGluZ0FjY2Vzc29yc1RvTm9kZShcblx0XHRcdFx0dm1Eb21bMF0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0cmFuc2xhdG9ySW5pdDogdHJ1ZSxcblx0XHRcdFx0XHR0ZW1wbGF0ZTogKCkgPT4gKHsgbmFtZTogdm0udmlld01vZGVsVGVtcGxhdGVJRCB9KVxuXHRcdFx0XHR9LFxuXHRcdFx0XHR2bVxuXHRcdFx0KTtcblxuXHRcdFx0ZGVsZWdhdGVSdW4odm0sICdvbkJ1aWxkJywgW3ZtRG9tXSk7XG5cdFx0XHRpZiAodm0gJiYgVmlld1R5cGUuUG9wdXAgPT09IHBvc2l0aW9uKSB7XG5cdFx0XHRcdHZtLnJlZ2lzdGVyUG9wdXBLZXlEb3duKCk7XG5cdFx0XHR9XG5cblx0XHRcdHZtUnVuSG9vaygndmlldy1tb2RlbC1wb3N0LWJ1aWxkJywgVmlld01vZGVsQ2xhc3MsIHZtRG9tKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bG9nKCdDYW5ub3QgZmluZCB2aWV3IG1vZGVsIHBvc2l0aW9uOiAnICsgcG9zaXRpb24pO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBWaWV3TW9kZWxDbGFzcyA/IFZpZXdNb2RlbENsYXNzLl9fdm0gOiBudWxsO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7RnVuY3Rpb259IFZpZXdNb2RlbENsYXNzVG9TaG93XG4gKiBAcGFyYW0ge0FycmF5PX0gcGFyYW1zXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNob3dTY3JlZW5Qb3B1cChWaWV3TW9kZWxDbGFzc1RvU2hvdywgcGFyYW1zID0gW10pIHtcblx0Y29uc3QgTW9kYWxWaWV3ID0gZ2V0U2NyZWVuUG9wdXAoVmlld01vZGVsQ2xhc3NUb1Nob3cpO1xuXHRpZiAoTW9kYWxWaWV3KSB7XG5cdFx0YnVpbGRWaWV3TW9kZWwoTW9kYWxWaWV3KTtcblxuXHRcdGlmIChNb2RhbFZpZXcuX192bSAmJiBNb2RhbFZpZXcuX19kb20pIHtcblx0XHRcdGRlbGVnYXRlUnVuKE1vZGFsVmlldy5fX3ZtLCAnb25CZWZvcmVTaG93JywgcGFyYW1zIHx8IFtdKTtcblxuXHRcdFx0TW9kYWxWaWV3Ll9fdm0ubW9kYWxWaXNpYmlsaXR5KHRydWUpO1xuXG5cdFx0XHRkZWxlZ2F0ZVJ1bihNb2RhbFZpZXcuX192bSwgJ29uU2hvdycsIHBhcmFtcyB8fCBbXSk7XG5cblx0XHRcdHZtUnVuSG9vaygndmlldy1tb2RlbC1vbi1zaG93JywgTW9kYWxWaWV3LCBwYXJhbXMgfHwgW10pO1xuXHRcdH1cblx0fVxufVxuXG4vKipcbiAqIEBwYXJhbSB7RnVuY3Rpb259IFZpZXdNb2RlbENsYXNzVG9TaG93XG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdhcm1VcFNjcmVlblBvcHVwKFZpZXdNb2RlbENsYXNzVG9TaG93KSB7XG5cdGNvbnN0IE1vZGFsVmlldyA9IGdldFNjcmVlblBvcHVwKFZpZXdNb2RlbENsYXNzVG9TaG93KTtcblx0aWYgKE1vZGFsVmlldykge1xuXHRcdGJ1aWxkVmlld01vZGVsKE1vZGFsVmlldyk7XG5cblx0XHRpZiAoTW9kYWxWaWV3Ll9fdm0gJiYgTW9kYWxWaWV3Ll9fZG9tKSB7XG5cdFx0XHRkZWxlZ2F0ZVJ1bihNb2RhbFZpZXcuX192bSwgJ29uV2FybVVwJyk7XG5cdFx0fVxuXHR9XG59XG5cbi8qKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gVmlld01vZGVsQ2xhc3NUb1Nob3dcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQb3B1cFZpc2libGUoVmlld01vZGVsQ2xhc3NUb1Nob3cpIHtcblx0Y29uc3QgTW9kYWxWaWV3ID0gZ2V0U2NyZWVuUG9wdXAoVmlld01vZGVsQ2xhc3NUb1Nob3cpO1xuXHRyZXR1cm4gTW9kYWxWaWV3ICYmIE1vZGFsVmlldy5fX3ZtID8gTW9kYWxWaWV3Ll9fdm0ubW9kYWxWaXNpYmlsaXR5KCkgOiBmYWxzZTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gc2NyZWVuTmFtZVxuICogQHBhcmFtIHtzdHJpbmd9IHN1YlBhcnRcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2NyZWVuT25Sb3V0ZShzY3JlZW5OYW1lLCBzdWJQYXJ0KSB7XG5cdGxldCB2bVNjcmVlbiA9IG51bGwsXG5cdFx0aXNTYW1lU2NyZWVuID0gZmFsc2UsXG5cdFx0Y3Jvc3MgPSBudWxsO1xuXG5cdGlmICgnJyA9PT0gcFN0cmluZyhzY3JlZW5OYW1lKSkge1xuXHRcdHNjcmVlbk5hbWUgPSBkZWZhdWx0U2NyZWVuTmFtZTtcblx0fVxuXG5cdGlmICgnJyAhPT0gc2NyZWVuTmFtZSkge1xuXHRcdHZtU2NyZWVuID0gc2NyZWVuKHNjcmVlbk5hbWUpO1xuXHRcdGlmICghdm1TY3JlZW4pIHtcblx0XHRcdHZtU2NyZWVuID0gc2NyZWVuKGRlZmF1bHRTY3JlZW5OYW1lKTtcblx0XHRcdGlmICh2bVNjcmVlbikge1xuXHRcdFx0XHRzdWJQYXJ0ID0gc2NyZWVuTmFtZSArICcvJyArIHN1YlBhcnQ7XG5cdFx0XHRcdHNjcmVlbk5hbWUgPSBkZWZhdWx0U2NyZWVuTmFtZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAodm1TY3JlZW4gJiYgdm1TY3JlZW4uX19zdGFydGVkKSB7XG5cdFx0XHRpc1NhbWVTY3JlZW4gPSBjdXJyZW50U2NyZWVuICYmIHZtU2NyZWVuID09PSBjdXJyZW50U2NyZWVuO1xuXG5cdFx0XHRpZiAoIXZtU2NyZWVuLl9fYnVpbGRlZCkge1xuXHRcdFx0XHR2bVNjcmVlbi5fX2J1aWxkZWQgPSB0cnVlO1xuXG5cdFx0XHRcdGlmIChpc05vbkVtcHR5QXJyYXkodm1TY3JlZW4udmlld01vZGVscygpKSkge1xuXHRcdFx0XHRcdF8uZWFjaCh2bVNjcmVlbi52aWV3TW9kZWxzKCksIChWaWV3TW9kZWxDbGFzcykgPT4ge1xuXHRcdFx0XHRcdFx0YnVpbGRWaWV3TW9kZWwoVmlld01vZGVsQ2xhc3MsIHZtU2NyZWVuKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGRlbGVnYXRlUnVuKHZtU2NyZWVuLCAnb25CdWlsZCcpO1xuXHRcdFx0fVxuXG5cdFx0XHRfLmRlZmVyKCgpID0+IHtcblx0XHRcdFx0Ly8gaGlkZSBzY3JlZW5cblx0XHRcdFx0aWYgKGN1cnJlbnRTY3JlZW4gJiYgIWlzU2FtZVNjcmVlbikge1xuXHRcdFx0XHRcdGRlbGVnYXRlUnVuKGN1cnJlbnRTY3JlZW4sICdvbkhpZGUnKTtcblx0XHRcdFx0XHRkZWxlZ2F0ZVJ1bihjdXJyZW50U2NyZWVuLCAnb25IaWRlV2l0aERlbGF5JywgW10sIDUwMCk7XG5cblx0XHRcdFx0XHRpZiAoY3VycmVudFNjcmVlbi5vbkhpZGVUcmlnZ2VyKSB7XG5cdFx0XHRcdFx0XHRjdXJyZW50U2NyZWVuLm9uSGlkZVRyaWdnZXIoIWN1cnJlbnRTY3JlZW4ub25IaWRlVHJpZ2dlcigpKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpZiAoaXNOb25FbXB0eUFycmF5KGN1cnJlbnRTY3JlZW4udmlld01vZGVscygpKSkge1xuXHRcdFx0XHRcdFx0Xy5lYWNoKGN1cnJlbnRTY3JlZW4udmlld01vZGVscygpLCAoVmlld01vZGVsQ2xhc3MpID0+IHtcblx0XHRcdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0XHRcdFZpZXdNb2RlbENsYXNzLl9fdm0gJiZcblx0XHRcdFx0XHRcdFx0XHRWaWV3TW9kZWxDbGFzcy5fX2RvbSAmJlxuXHRcdFx0XHRcdFx0XHRcdFZpZXdUeXBlLlBvcHVwICE9PSBWaWV3TW9kZWxDbGFzcy5fX3ZtLnZpZXdNb2RlbFBvc2l0aW9uXG5cdFx0XHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0XHRcdFZpZXdNb2RlbENsYXNzLl9fZG9tLmhpZGUoKTtcblx0XHRcdFx0XHRcdFx0XHRWaWV3TW9kZWxDbGFzcy5fX3ZtLnZpZXdNb2RlbFZpc2liaWxpdHkoZmFsc2UpO1xuXG5cdFx0XHRcdFx0XHRcdFx0ZGVsZWdhdGVSdW4oVmlld01vZGVsQ2xhc3MuX192bSwgJ29uSGlkZScpO1xuXHRcdFx0XHRcdFx0XHRcdGRlbGVnYXRlUnVuKFZpZXdNb2RlbENsYXNzLl9fdm0sICdvbkhpZGVXaXRoRGVsYXknLCBbXSwgNTAwKTtcblxuXHRcdFx0XHRcdFx0XHRcdGlmIChWaWV3TW9kZWxDbGFzcy5fX3ZtLm9uSGlkZVRyaWdnZXIpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFZpZXdNb2RlbENsYXNzLl9fdm0ub25IaWRlVHJpZ2dlcighVmlld01vZGVsQ2xhc3MuX192bS5vbkhpZGVUcmlnZ2VyKCkpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIC0tXG5cblx0XHRcdFx0Y3VycmVudFNjcmVlbiA9IHZtU2NyZWVuO1xuXG5cdFx0XHRcdC8vIHNob3cgc2NyZWVuXG5cdFx0XHRcdGlmIChjdXJyZW50U2NyZWVuICYmICFpc1NhbWVTY3JlZW4pIHtcblx0XHRcdFx0XHRkZWxlZ2F0ZVJ1bihjdXJyZW50U2NyZWVuLCAnb25TaG93Jyk7XG5cdFx0XHRcdFx0aWYgKGN1cnJlbnRTY3JlZW4ub25TaG93VHJpZ2dlcikge1xuXHRcdFx0XHRcdFx0Y3VycmVudFNjcmVlbi5vblNob3dUcmlnZ2VyKCFjdXJyZW50U2NyZWVuLm9uU2hvd1RyaWdnZXIoKSk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0cnVuSG9vaygnc2NyZWVuLW9uLXNob3cnLCBbY3VycmVudFNjcmVlbi5zY3JlZW5OYW1lKCksIGN1cnJlbnRTY3JlZW5dKTtcblxuXHRcdFx0XHRcdGlmIChpc05vbkVtcHR5QXJyYXkoY3VycmVudFNjcmVlbi52aWV3TW9kZWxzKCkpKSB7XG5cdFx0XHRcdFx0XHRfLmVhY2goY3VycmVudFNjcmVlbi52aWV3TW9kZWxzKCksIChWaWV3TW9kZWxDbGFzcykgPT4ge1xuXHRcdFx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHRcdFx0Vmlld01vZGVsQ2xhc3MuX192bSAmJlxuXHRcdFx0XHRcdFx0XHRcdFZpZXdNb2RlbENsYXNzLl9fZG9tICYmXG5cdFx0XHRcdFx0XHRcdFx0Vmlld1R5cGUuUG9wdXAgIT09IFZpZXdNb2RlbENsYXNzLl9fdm0udmlld01vZGVsUG9zaXRpb25cblx0XHRcdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRcdFx0ZGVsZWdhdGVSdW4oVmlld01vZGVsQ2xhc3MuX192bSwgJ29uQmVmb3JlU2hvdycpO1xuXG5cdFx0XHRcdFx0XHRcdFx0Vmlld01vZGVsQ2xhc3MuX19kb20uc2hvdygpO1xuXHRcdFx0XHRcdFx0XHRcdFZpZXdNb2RlbENsYXNzLl9fdm0udmlld01vZGVsVmlzaWJpbGl0eSh0cnVlKTtcblxuXHRcdFx0XHRcdFx0XHRcdGRlbGVnYXRlUnVuKFZpZXdNb2RlbENsYXNzLl9fdm0sICdvblNob3cnKTtcblx0XHRcdFx0XHRcdFx0XHRpZiAoVmlld01vZGVsQ2xhc3MuX192bS5vblNob3dUcmlnZ2VyKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRWaWV3TW9kZWxDbGFzcy5fX3ZtLm9uU2hvd1RyaWdnZXIoIVZpZXdNb2RlbENsYXNzLl9fdm0ub25TaG93VHJpZ2dlcigpKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRkZWxlZ2F0ZVJ1bihWaWV3TW9kZWxDbGFzcy5fX3ZtLCAnb25TaG93V2l0aERlbGF5JywgW10sIDIwMCk7XG5cdFx0XHRcdFx0XHRcdFx0dm1SdW5Ib29rKCd2aWV3LW1vZGVsLW9uLXNob3cnLCBWaWV3TW9kZWxDbGFzcyk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHQvLyAtLVxuXG5cdFx0XHRcdGNyb3NzID0gdm1TY3JlZW4gJiYgdm1TY3JlZW4uX19jcm9zcyA/IHZtU2NyZWVuLl9fY3Jvc3MoKSA6IG51bGw7XG5cdFx0XHRcdGlmIChjcm9zcykge1xuXHRcdFx0XHRcdGNyb3NzLnBhcnNlKHN1YlBhcnQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge0FycmF5fSBzY3JlZW5zQ2xhc3Nlc1xuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdGFydFNjcmVlbnMoc2NyZWVuc0NsYXNzZXMpIHtcblx0Xy5lYWNoKHNjcmVlbnNDbGFzc2VzLCAoQ1NjcmVlbikgPT4ge1xuXHRcdGlmIChDU2NyZWVuKSB7XG5cdFx0XHRjb25zdCB2bVNjcmVlbiA9IG5ldyBDU2NyZWVuKCksXG5cdFx0XHRcdHNjcmVlbk5hbWUgPSB2bVNjcmVlbiA/IHZtU2NyZWVuLnNjcmVlbk5hbWUoKSA6ICcnO1xuXG5cdFx0XHRpZiAodm1TY3JlZW4gJiYgJycgIT09IHNjcmVlbk5hbWUpIHtcblx0XHRcdFx0aWYgKCcnID09PSBkZWZhdWx0U2NyZWVuTmFtZSkge1xuXHRcdFx0XHRcdGRlZmF1bHRTY3JlZW5OYW1lID0gc2NyZWVuTmFtZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdFNDUkVFTlNbc2NyZWVuTmFtZV0gPSB2bVNjcmVlbjtcblx0XHRcdH1cblx0XHR9XG5cdH0pO1xuXG5cdF8uZWFjaChTQ1JFRU5TLCAodm1TY3JlZW4pID0+IHtcblx0XHRpZiAodm1TY3JlZW4gJiYgIXZtU2NyZWVuLl9fc3RhcnRlZCAmJiB2bVNjcmVlbi5fX3N0YXJ0KSB7XG5cdFx0XHR2bVNjcmVlbi5fX3N0YXJ0ZWQgPSB0cnVlO1xuXHRcdFx0dm1TY3JlZW4uX19zdGFydCgpO1xuXG5cdFx0XHRydW5Ib29rKCdzY3JlZW4tcHJlLXN0YXJ0JywgW3ZtU2NyZWVuLnNjcmVlbk5hbWUoKSwgdm1TY3JlZW5dKTtcblx0XHRcdGRlbGVnYXRlUnVuKHZtU2NyZWVuLCAnb25TdGFydCcpO1xuXHRcdFx0cnVuSG9vaygnc2NyZWVuLXBvc3Qtc3RhcnQnLCBbdm1TY3JlZW4uc2NyZWVuTmFtZSgpLCB2bVNjcmVlbl0pO1xuXHRcdH1cblx0fSk7XG5cblx0Y29uc3QgY3Jvc3MgPSBjcm9zc3JvYWRzLmNyZWF0ZSgpO1xuXHRjcm9zcy5hZGRSb3V0ZSgvXihbYS16QS1aMC05LV0qKVxcLz8oLiopJC8sIHNjcmVlbk9uUm91dGUpO1xuXG5cdGhhc2hlci5pbml0aWFsaXplZC5hZGQoY3Jvc3MucGFyc2UsIGNyb3NzKTtcblx0aGFzaGVyLmNoYW5nZWQuYWRkKGNyb3NzLnBhcnNlLCBjcm9zcyk7XG5cdGhhc2hlci5pbml0KCk7XG5cblx0Xy5kZWxheSgoKSA9PiAkaHRtbC5yZW1vdmVDbGFzcygncmwtc3RhcnRlZC10cmlnZ2VyJykuYWRkQ2xhc3MoJ3JsLXN0YXJ0ZWQnKSwgMTAwKTtcblx0Xy5kZWxheSgoKSA9PiAkaHRtbC5hZGRDbGFzcygncmwtc3RhcnRlZC1kZWxheScpLCAyMDApO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBzSGFzaFxuICogQHBhcmFtIHtib29sZWFuPX0gc2lsZW5jZSA9IGZhbHNlXG4gKiBAcGFyYW0ge2Jvb2xlYW49fSByZXBsYWNlID0gZmFsc2VcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0SGFzaChoYXNoLCBzaWxlbmNlID0gZmFsc2UsIHJlcGxhY2UgPSBmYWxzZSkge1xuXHRoYXNoID0gJyMnID09PSBoYXNoLnN1YnN0cigwLCAxKSA/IGhhc2guc3Vic3RyKDEpIDogaGFzaDtcblx0aGFzaCA9ICcvJyA9PT0gaGFzaC5zdWJzdHIoMCwgMSkgPyBoYXNoLnN1YnN0cigxKSA6IGhhc2g7XG5cblx0Y29uc3QgY21kID0gcmVwbGFjZSA/ICdyZXBsYWNlSGFzaCcgOiAnc2V0SGFzaCc7XG5cblx0aWYgKHNpbGVuY2UpIHtcblx0XHRoYXNoZXIuY2hhbmdlZC5hY3RpdmUgPSBmYWxzZTtcblx0XHRoYXNoZXJbY21kXShoYXNoKTtcblx0XHRoYXNoZXIuY2hhbmdlZC5hY3RpdmUgPSB0cnVlO1xuXHR9IGVsc2Uge1xuXHRcdGhhc2hlci5jaGFuZ2VkLmFjdGl2ZSA9IHRydWU7XG5cdFx0aGFzaGVyW2NtZF0oaGFzaCk7XG5cdFx0aGFzaGVyLnNldEhhc2goaGFzaCk7XG5cdH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259XG4gKi9cbmZ1bmN0aW9uIHZpZXdEZWNvcmF0b3IoeyBuYW1lLCB0eXBlLCB0ZW1wbGF0ZUlEIH0pIHtcblx0cmV0dXJuICh0YXJnZXQpID0+IHtcblx0XHRpZiAodGFyZ2V0KSB7XG5cdFx0XHRpZiAobmFtZSkge1xuXHRcdFx0XHRpZiAoaXNBcnJheShuYW1lKSkge1xuXHRcdFx0XHRcdHRhcmdldC5fX25hbWVzID0gbmFtZTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0YXJnZXQuX19uYW1lcyA9IFtuYW1lXTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHRhcmdldC5fX25hbWUgPSB0YXJnZXQuX19uYW1lc1swXTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHR5cGUpIHtcblx0XHRcdFx0dGFyZ2V0Ll9fdHlwZSA9IHR5cGU7XG5cdFx0XHR9XG5cblx0XHRcdGlmICh0ZW1wbGF0ZUlEKSB7XG5cdFx0XHRcdHRhcmdldC5fX3RlbXBsYXRlSUQgPSB0ZW1wbGF0ZUlEO1xuXHRcdFx0fVxuXHRcdH1cblx0fTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259XG4gKi9cbmZ1bmN0aW9uIHBvcHVwRGVjb3JhdG9yKHsgbmFtZSwgdGVtcGxhdGVJRCB9KSB7XG5cdHJldHVybiB2aWV3RGVjb3JhdG9yKHsgbmFtZSwgdHlwZTogVmlld1R5cGUuUG9wdXAsIHRlbXBsYXRlSUQgfSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gY2FuRXhlY3V0ZVxuICogQHJldHVybnMge0Z1bmN0aW9ufVxuICovXG5mdW5jdGlvbiBjb21tYW5kRGVjb3JhdG9yKGNhbkV4ZWN1dGUgPSB0cnVlKSB7XG5cdHJldHVybiAodGFyZ2V0LCBrZXksIGRlc2NyaXB0b3IpID0+IHtcblx0XHRpZiAoIWtleSB8fCAha2V5Lm1hdGNoKC9Db21tYW5kJC8pKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYG5hbWUgXCIke2tleX1cIiBzaG91bGQgZW5kIHdpdGggQ29tbWFuZCBzdWZmaXhgKTtcblx0XHR9XG5cblx0XHRjb25zdCB2YWx1ZSA9IGRlc2NyaXB0b3IudmFsdWUgfHwgZGVzY3JpcHRvci5pbml0aWFsaXplcigpLFxuXHRcdFx0bm9ybUNhbkV4ZWN1dGUgPSBpc0Z1bmMoY2FuRXhlY3V0ZSkgPyBjYW5FeGVjdXRlIDogKCkgPT4gISFjYW5FeGVjdXRlO1xuXG5cdFx0ZGVzY3JpcHRvci52YWx1ZSA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHtcblx0XHRcdGlmIChub3JtQ2FuRXhlY3V0ZS5jYWxsKHRoaXMsIHRoaXMpKSB7XG5cdFx0XHRcdHZhbHVlLmFwcGx5KHRoaXMsIGFyZ3MpO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fTtcblxuXHRcdGRlc2NyaXB0b3IudmFsdWUuX19yZWFsQ2FuRXhlY3V0ZSA9IG5vcm1DYW5FeGVjdXRlO1xuXHRcdGRlc2NyaXB0b3IudmFsdWUuaXNDb21tYW5kID0gdHJ1ZTtcblxuXHRcdHJldHVybiBkZXNjcmlwdG9yO1xuXHR9O1xufVxuXG4vKipcbiAqIEBwYXJhbSB7bWljZWR9ICRpdGVtc1xuICogQHJldHVybnMge0Z1bmN0aW9ufVxuICovXG5mdW5jdGlvbiBzZXR0aW5nc01lbnVLZXlzSGFuZGxlcigkaXRlbXMpIHtcblx0cmV0dXJuIF8udGhyb3R0bGUoKGV2ZW50LCBoYW5kbGVyKSA9PiB7XG5cdFx0Y29uc3QgdXAgPSBoYW5kbGVyICYmICd1cCcgPT09IGhhbmRsZXIuc2hvcnRjdXQ7XG5cblx0XHRpZiAoZXZlbnQgJiYgJGl0ZW1zLmxlbmd0aCkge1xuXHRcdFx0bGV0IGluZGV4ID0gJGl0ZW1zLmluZGV4KCRpdGVtcy5maWx0ZXIoJy5zZWxlY3RlZCcpKTtcblx0XHRcdGlmICh1cCAmJiAwIDwgaW5kZXgpIHtcblx0XHRcdFx0aW5kZXggLT0gMTtcblx0XHRcdH0gZWxzZSBpZiAoIXVwICYmIGluZGV4IDwgJGl0ZW1zLmxlbmd0aCAtIDEpIHtcblx0XHRcdFx0aW5kZXggKz0gMTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgcmVzdWx0SGFzaCA9ICRpdGVtcy5lcShpbmRleCkuYXR0cignaHJlZicpO1xuXHRcdFx0aWYgKHJlc3VsdEhhc2gpIHtcblx0XHRcdFx0c2V0SGFzaChyZXN1bHRIYXNoLCBmYWxzZSwgdHJ1ZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9LCBNYWdpY3MuVGltZTIwMG1zKTtcbn1cblxuZXhwb3J0IHtcblx0Y29tbWFuZERlY29yYXRvcixcblx0Y29tbWFuZERlY29yYXRvciBhcyBjb21tYW5kLFxuXHR2aWV3RGVjb3JhdG9yLFxuXHR2aWV3RGVjb3JhdG9yIGFzIHZpZXcsXG5cdHZpZXdEZWNvcmF0b3IgYXMgdmlld01vZGVsLFxuXHRwb3B1cERlY29yYXRvcixcblx0cG9wdXBEZWNvcmF0b3IgYXMgcG9wdXAsXG5cdHNldHRpbmdzTWVudUtleXNIYW5kbGVyXG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSB3aW5kb3cualF1ZXJ5OyIsImltcG9ydCB3aW5kb3cgZnJvbSAnd2luZG93JztcbmltcG9ydCBfIGZyb20gJ18nO1xuaW1wb3J0ICQgZnJvbSAnJCc7XG5pbXBvcnQga28gZnJvbSAna28nO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uLCBVcGxvYWRFcnJvckNvZGUgfSBmcm9tICdDb21tb24vRW51bXMnO1xuaW1wb3J0IHsgcEludCwgaXNVbmQsIGlzTnVsbCwgaGFzLCBtaWNyb3RpbWUsIGluQXJyYXkgfSBmcm9tICdDb21tb24vVXRpbHMnO1xuaW1wb3J0IHsgJGh0bWwsIGJBbmltYXRpb25TdXBwb3J0ZWQgfSBmcm9tICdDb21tb24vR2xvYmFscyc7XG5pbXBvcnQgeyByZWxvYWQgYXMgbW9tZW50b3JSZWxvYWQgfSBmcm9tICdDb21tb24vTW9tZW50b3InO1xuaW1wb3J0IHsgbGFuZ0xpbmsgfSBmcm9tICdDb21tb24vTGlua3MnO1xuXG5sZXQgSTE4Tl9EQVRBID0gd2luZG93LnJhaW5sb29wSTE4TiB8fCB7fTtcblxuY29uc3QgSTE4Tl9OT1RJRklDQVRJT05fREFUQSA9IHt9O1xuY29uc3QgSTE4Tl9OT1RJRklDQVRJT05fTUFQID0gW1xuXHRbTm90aWZpY2F0aW9uLkludmFsaWRUb2tlbiwgJ05PVElGSUNBVElPTlMvSU5WQUxJRF9UT0tFTiddLFxuXHRbTm90aWZpY2F0aW9uLkludmFsaWRUb2tlbiwgJ05PVElGSUNBVElPTlMvSU5WQUxJRF9UT0tFTiddLFxuXHRbTm90aWZpY2F0aW9uLkF1dGhFcnJvciwgJ05PVElGSUNBVElPTlMvQVVUSF9FUlJPUiddLFxuXHRbTm90aWZpY2F0aW9uLkFjY2Vzc0Vycm9yLCAnTk9USUZJQ0FUSU9OUy9BQ0NFU1NfRVJST1InXSxcblx0W05vdGlmaWNhdGlvbi5Db25uZWN0aW9uRXJyb3IsICdOT1RJRklDQVRJT05TL0NPTk5FQ1RJT05fRVJST1InXSxcblx0W05vdGlmaWNhdGlvbi5DYXB0Y2hhRXJyb3IsICdOT1RJRklDQVRJT05TL0NBUFRDSEFfRVJST1InXSxcblx0W05vdGlmaWNhdGlvbi5Tb2NpYWxGYWNlYm9va0xvZ2luQWNjZXNzRGlzYWJsZSwgJ05PVElGSUNBVElPTlMvU09DSUFMX0ZBQ0VCT09LX0xPR0lOX0FDQ0VTU19ESVNBQkxFJ10sXG5cdFtOb3RpZmljYXRpb24uU29jaWFsVHdpdHRlckxvZ2luQWNjZXNzRGlzYWJsZSwgJ05PVElGSUNBVElPTlMvU09DSUFMX1RXSVRURVJfTE9HSU5fQUNDRVNTX0RJU0FCTEUnXSxcblx0W05vdGlmaWNhdGlvbi5Tb2NpYWxHb29nbGVMb2dpbkFjY2Vzc0Rpc2FibGUsICdOT1RJRklDQVRJT05TL1NPQ0lBTF9HT09HTEVfTE9HSU5fQUNDRVNTX0RJU0FCTEUnXSxcblx0W05vdGlmaWNhdGlvbi5Eb21haW5Ob3RBbGxvd2VkLCAnTk9USUZJQ0FUSU9OUy9ET01BSU5fTk9UX0FMTE9XRUQnXSxcblx0W05vdGlmaWNhdGlvbi5BY2NvdW50Tm90QWxsb3dlZCwgJ05PVElGSUNBVElPTlMvQUNDT1VOVF9OT1RfQUxMT1dFRCddLFxuXG5cdFtOb3RpZmljYXRpb24uQWNjb3VudFR3b0ZhY3RvckF1dGhSZXF1aXJlZCwgJ05PVElGSUNBVElPTlMvQUNDT1VOVF9UV09fRkFDVE9SX0FVVEhfUkVRVUlSRUQnXSxcblx0W05vdGlmaWNhdGlvbi5BY2NvdW50VHdvRmFjdG9yQXV0aEVycm9yLCAnTk9USUZJQ0FUSU9OUy9BQ0NPVU5UX1RXT19GQUNUT1JfQVVUSF9FUlJPUiddLFxuXG5cdFtOb3RpZmljYXRpb24uQ291bGROb3RTYXZlTmV3UGFzc3dvcmQsICdOT1RJRklDQVRJT05TL0NPVUxEX05PVF9TQVZFX05FV19QQVNTV09SRCddLFxuXHRbTm90aWZpY2F0aW9uLkN1cnJlbnRQYXNzd29yZEluY29ycmVjdCwgJ05PVElGSUNBVElPTlMvQ1VSUkVOVF9QQVNTV09SRF9JTkNPUlJFQ1QnXSxcblx0W05vdGlmaWNhdGlvbi5OZXdQYXNzd29yZFNob3J0LCAnTk9USUZJQ0FUSU9OUy9ORVdfUEFTU1dPUkRfU0hPUlQnXSxcblx0W05vdGlmaWNhdGlvbi5OZXdQYXNzd29yZFdlYWssICdOT1RJRklDQVRJT05TL05FV19QQVNTV09SRF9XRUFLJ10sXG5cdFtOb3RpZmljYXRpb24uTmV3UGFzc3dvcmRGb3JiaWRkZW4sICdOT1RJRklDQVRJT05TL05FV19QQVNTV09SRF9GT1JCSURERU5UJ10sXG5cblx0W05vdGlmaWNhdGlvbi5Db250YWN0c1N5bmNFcnJvciwgJ05PVElGSUNBVElPTlMvQ09OVEFDVFNfU1lOQ19FUlJPUiddLFxuXG5cdFtOb3RpZmljYXRpb24uQ2FudEdldE1lc3NhZ2VMaXN0LCAnTk9USUZJQ0FUSU9OUy9DQU5UX0dFVF9NRVNTQUdFX0xJU1QnXSxcblx0W05vdGlmaWNhdGlvbi5DYW50R2V0TWVzc2FnZSwgJ05PVElGSUNBVElPTlMvQ0FOVF9HRVRfTUVTU0FHRSddLFxuXHRbTm90aWZpY2F0aW9uLkNhbnREZWxldGVNZXNzYWdlLCAnTk9USUZJQ0FUSU9OUy9DQU5UX0RFTEVURV9NRVNTQUdFJ10sXG5cdFtOb3RpZmljYXRpb24uQ2FudE1vdmVNZXNzYWdlLCAnTk9USUZJQ0FUSU9OUy9DQU5UX01PVkVfTUVTU0FHRSddLFxuXHRbTm90aWZpY2F0aW9uLkNhbnRDb3B5TWVzc2FnZSwgJ05PVElGSUNBVElPTlMvQ0FOVF9NT1ZFX01FU1NBR0UnXSxcblxuXHRbTm90aWZpY2F0aW9uLkNhbnRTYXZlTWVzc2FnZSwgJ05PVElGSUNBVElPTlMvQ0FOVF9TQVZFX01FU1NBR0UnXSxcblx0W05vdGlmaWNhdGlvbi5DYW50U2VuZE1lc3NhZ2UsICdOT1RJRklDQVRJT05TL0NBTlRfU0VORF9NRVNTQUdFJ10sXG5cdFtOb3RpZmljYXRpb24uSW52YWxpZFJlY2lwaWVudHMsICdOT1RJRklDQVRJT05TL0lOVkFMSURfUkVDSVBJRU5UUyddLFxuXG5cdFtOb3RpZmljYXRpb24uQ2FudFNhdmVGaWx0ZXJzLCAnTk9USUZJQ0FUSU9OUy9DQU5UX1NBVkVfRklMVEVSUyddLFxuXHRbTm90aWZpY2F0aW9uLkNhbnRHZXRGaWx0ZXJzLCAnTk9USUZJQ0FUSU9OUy9DQU5UX0dFVF9GSUxURVJTJ10sXG5cdFtOb3RpZmljYXRpb24uRmlsdGVyc0FyZU5vdENvcnJlY3QsICdOT1RJRklDQVRJT05TL0ZJTFRFUlNfQVJFX05PVF9DT1JSRUNUJ10sXG5cblx0W05vdGlmaWNhdGlvbi5DYW50Q3JlYXRlRm9sZGVyLCAnTk9USUZJQ0FUSU9OUy9DQU5UX0NSRUFURV9GT0xERVInXSxcblx0W05vdGlmaWNhdGlvbi5DYW50UmVuYW1lRm9sZGVyLCAnTk9USUZJQ0FUSU9OUy9DQU5UX1JFTkFNRV9GT0xERVInXSxcblx0W05vdGlmaWNhdGlvbi5DYW50RGVsZXRlRm9sZGVyLCAnTk9USUZJQ0FUSU9OUy9DQU5UX0RFTEVURV9GT0xERVInXSxcblx0W05vdGlmaWNhdGlvbi5DYW50RGVsZXRlTm9uRW1wdHlGb2xkZXIsICdOT1RJRklDQVRJT05TL0NBTlRfREVMRVRFX05PTl9FTVBUWV9GT0xERVInXSxcblx0W05vdGlmaWNhdGlvbi5DYW50U3Vic2NyaWJlRm9sZGVyLCAnTk9USUZJQ0FUSU9OUy9DQU5UX1NVQlNDUklCRV9GT0xERVInXSxcblx0W05vdGlmaWNhdGlvbi5DYW50VW5zdWJzY3JpYmVGb2xkZXIsICdOT1RJRklDQVRJT05TL0NBTlRfVU5TVUJTQ1JJQkVfRk9MREVSJ10sXG5cblx0W05vdGlmaWNhdGlvbi5DYW50U2F2ZVNldHRpbmdzLCAnTk9USUZJQ0FUSU9OUy9DQU5UX1NBVkVfU0VUVElOR1MnXSxcblx0W05vdGlmaWNhdGlvbi5DYW50U2F2ZVBsdWdpblNldHRpbmdzLCAnTk9USUZJQ0FUSU9OUy9DQU5UX1NBVkVfUExVR0lOX1NFVFRJTkdTJ10sXG5cblx0W05vdGlmaWNhdGlvbi5Eb21haW5BbHJlYWR5RXhpc3RzLCAnTk9USUZJQ0FUSU9OUy9ET01BSU5fQUxSRUFEWV9FWElTVFMnXSxcblxuXHRbTm90aWZpY2F0aW9uLkNhbnRJbnN0YWxsUGFja2FnZSwgJ05PVElGSUNBVElPTlMvQ0FOVF9JTlNUQUxMX1BBQ0tBR0UnXSxcblx0W05vdGlmaWNhdGlvbi5DYW50RGVsZXRlUGFja2FnZSwgJ05PVElGSUNBVElPTlMvQ0FOVF9ERUxFVEVfUEFDS0FHRSddLFxuXHRbTm90aWZpY2F0aW9uLkludmFsaWRQbHVnaW5QYWNrYWdlLCAnTk9USUZJQ0FUSU9OUy9JTlZBTElEX1BMVUdJTl9QQUNLQUdFJ10sXG5cdFtOb3RpZmljYXRpb24uVW5zdXBwb3J0ZWRQbHVnaW5QYWNrYWdlLCAnTk9USUZJQ0FUSU9OUy9VTlNVUFBPUlRFRF9QTFVHSU5fUEFDS0FHRSddLFxuXG5cdFtOb3RpZmljYXRpb24uTGljZW5zaW5nU2VydmVySXNVbmF2YWlsYWJsZSwgJ05PVElGSUNBVElPTlMvTElDRU5TSU5HX1NFUlZFUl9JU19VTkFWQUlMQUJMRSddLFxuXHRbTm90aWZpY2F0aW9uLkxpY2Vuc2luZ0V4cGlyZWQsICdOT1RJRklDQVRJT05TL0xJQ0VOU0lOR19FWFBJUkVEJ10sXG5cdFtOb3RpZmljYXRpb24uTGljZW5zaW5nQmFubmVkLCAnTk9USUZJQ0FUSU9OUy9MSUNFTlNJTkdfQkFOTkVEJ10sXG5cblx0W05vdGlmaWNhdGlvbi5EZW1vU2VuZE1lc3NhZ2VFcnJvciwgJ05PVElGSUNBVElPTlMvREVNT19TRU5EX01FU1NBR0VfRVJST1InXSxcblx0W05vdGlmaWNhdGlvbi5EZW1vQWNjb3VudEVycm9yLCAnTk9USUZJQ0FUSU9OUy9ERU1PX0FDQ09VTlRfRVJST1InXSxcblxuXHRbTm90aWZpY2F0aW9uLkFjY291bnRBbHJlYWR5RXhpc3RzLCAnTk9USUZJQ0FUSU9OUy9BQ0NPVU5UX0FMUkVBRFlfRVhJU1RTJ10sXG5cdFtOb3RpZmljYXRpb24uQWNjb3VudERvZXNOb3RFeGlzdCwgJ05PVElGSUNBVElPTlMvQUNDT1VOVF9ET0VTX05PVF9FWElTVCddLFxuXG5cdFtOb3RpZmljYXRpb24uTWFpbFNlcnZlckVycm9yLCAnTk9USUZJQ0FUSU9OUy9NQUlMX1NFUlZFUl9FUlJPUiddLFxuXHRbTm90aWZpY2F0aW9uLkludmFsaWRJbnB1dEFyZ3VtZW50LCAnTk9USUZJQ0FUSU9OUy9JTlZBTElEX0lOUFVUX0FSR1VNRU5UJ10sXG5cdFtOb3RpZmljYXRpb24uVW5rbm93bk5vdGlmaWNhdGlvbiwgJ05PVElGSUNBVElPTlMvVU5LTk9XTl9FUlJPUiddLFxuXHRbTm90aWZpY2F0aW9uLlVua25vd25FcnJvciwgJ05PVElGSUNBVElPTlMvVU5LTk9XTl9FUlJPUiddXG5dO1xuXG5leHBvcnQgY29uc3QgdHJpZ2dlciA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAqIEBwYXJhbSB7T2JqZWN0PX0gdmFsdWVMaXN0XG4gKiBAcGFyYW0ge3N0cmluZz19IGRlZmF1bFZhbHVlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaTE4bihrZXksIHZhbHVlTGlzdCwgZGVmYXVsVmFsdWUpIHtcblx0bGV0IHZhbHVlTmFtZSA9ICcnLFxuXHRcdHJlc3VsdCA9IEkxOE5fREFUQVtrZXldO1xuXG5cdGlmIChpc1VuZChyZXN1bHQpKSB7XG5cdFx0cmVzdWx0ID0gaXNVbmQoZGVmYXVsVmFsdWUpID8ga2V5IDogZGVmYXVsVmFsdWU7XG5cdH1cblxuXHRpZiAoIWlzVW5kKHZhbHVlTGlzdCkgJiYgIWlzTnVsbCh2YWx1ZUxpc3QpKSB7XG5cdFx0Zm9yICh2YWx1ZU5hbWUgaW4gdmFsdWVMaXN0KSB7XG5cdFx0XHRpZiAoaGFzKHZhbHVlTGlzdCwgdmFsdWVOYW1lKSkge1xuXHRcdFx0XHRyZXN1bHQgPSByZXN1bHQucmVwbGFjZSgnJScgKyB2YWx1ZU5hbWUgKyAnJScsIHZhbHVlTGlzdFt2YWx1ZU5hbWVdKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gcmVzdWx0O1xufVxuXG5jb25zdCBpMThuVG9Ob2RlID0gKGVsZW1lbnQpID0+IHtcblx0Y29uc3QgJGVsID0gJChlbGVtZW50KSxcblx0XHRrZXkgPSAkZWwuZGF0YSgnaTE4bicpO1xuXG5cdGlmIChrZXkpIHtcblx0XHRpZiAoJ1snID09PSBrZXkuc3Vic3RyKDAsIDEpKSB7XG5cdFx0XHRzd2l0Y2ggKGtleS5zdWJzdHIoMCwgNikpIHtcblx0XHRcdFx0Y2FzZSAnW2h0bWxdJzpcblx0XHRcdFx0XHQkZWwuaHRtbChpMThuKGtleS5zdWJzdHIoNikpKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSAnW3BsYWNlJzpcblx0XHRcdFx0XHQkZWwuYXR0cigncGxhY2Vob2xkZXInLCBpMThuKGtleS5zdWJzdHIoMTMpKSk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgJ1t0aXRsZSc6XG5cdFx0XHRcdFx0JGVsLmF0dHIoJ3RpdGxlJywgaTE4bihrZXkuc3Vic3RyKDcpKSk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdC8vIG5vIGRlZmF1bHRcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0JGVsLnRleHQoaTE4bihrZXkpKTtcblx0XHR9XG5cdH1cbn07XG5cbi8qKlxuICogQHBhcmFtIHtPYmplY3R9IGVsZW1lbnRzXG4gKiBAcGFyYW0ge2Jvb2xlYW49fSBhbmltYXRlID0gZmFsc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGkxOG5Ub05vZGVzKGVsZW1lbnRzLCBhbmltYXRlID0gZmFsc2UpIHtcblx0Xy5kZWZlcigoKSA9PiB7XG5cdFx0JCgnW2RhdGEtaTE4bl0nLCBlbGVtZW50cykuZWFjaCgoaW5kZXgsIGl0ZW0pID0+IHtcblx0XHRcdGkxOG5Ub05vZGUoaXRlbSk7XG5cdFx0fSk7XG5cblx0XHRpZiAoYW5pbWF0ZSAmJiBiQW5pbWF0aW9uU3VwcG9ydGVkKSB7XG5cdFx0XHQkKCcuaTE4bi1hbmltYXRpb25bZGF0YS1pMThuXScsIGVsZW1lbnRzKS5sZXR0ZXJmeCh7XG5cdFx0XHRcdCdmeCc6ICdmYWxsIGZhZGUnLFxuXHRcdFx0XHQnYmFja3dhcmRzJzogZmFsc2UsXG5cdFx0XHRcdCd0aW1pbmcnOiA1MCxcblx0XHRcdFx0J2Z4X2R1cmF0aW9uJzogJzUwbXMnLFxuXHRcdFx0XHQnbGV0dGVyX2VuZCc6ICdyZXN0b3JlJyxcblx0XHRcdFx0J2VsZW1lbnRfZW5kJzogJ3Jlc3RvcmUnXG5cdFx0XHR9KTtcblx0XHR9XG5cdH0pO1xufVxuXG5jb25zdCByZWxvYWREYXRhID0gKCkgPT4ge1xuXHRpZiAod2luZG93LnJhaW5sb29wSTE4Tikge1xuXHRcdEkxOE5fREFUQSA9IHdpbmRvdy5yYWlubG9vcEkxOE4gfHwge307XG5cblx0XHRpMThuVG9Ob2Rlcyh3aW5kb3cuZG9jdW1lbnQsIHRydWUpO1xuXG5cdFx0bW9tZW50b3JSZWxvYWQoKTtcblx0XHR0cmlnZ2VyKCF0cmlnZ2VyKCkpO1xuXHR9XG5cblx0d2luZG93LnJhaW5sb29wSTE4TiA9IG51bGw7XG59O1xuXG4vKipcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5pdE5vdGlmaWNhdGlvbkxhbmd1YWdlKCkge1xuXHRJMThOX05PVElGSUNBVElPTl9NQVAuZm9yRWFjaCgoaXRlbSkgPT4ge1xuXHRcdEkxOE5fTk9USUZJQ0FUSU9OX0RBVEFbaXRlbVswXV0gPSBpMThuKGl0ZW1bMV0pO1xuXHR9KTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBzdGFydENhbGxiYWNrXG4gKiBAcGFyYW0ge0Z1bmN0aW9uPX0gbGFuZ0NhbGxiYWNrID0gbnVsbFxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5pdE9uU3RhcnRPckxhbmdDaGFuZ2Uoc3RhcnRDYWxsYmFjaywgbGFuZ0NhbGxiYWNrID0gbnVsbCkge1xuXHRpZiAoc3RhcnRDYWxsYmFjaykge1xuXHRcdHN0YXJ0Q2FsbGJhY2soKTtcblx0fVxuXG5cdGlmIChsYW5nQ2FsbGJhY2spIHtcblx0XHR0cmlnZ2VyLnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHRpZiAoc3RhcnRDYWxsYmFjaykge1xuXHRcdFx0XHRzdGFydENhbGxiYWNrKCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAobGFuZ0NhbGxiYWNrKSB7XG5cdFx0XHRcdGxhbmdDYWxsYmFjaygpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9IGVsc2UgaWYgKHN0YXJ0Q2FsbGJhY2spIHtcblx0XHR0cmlnZ2VyLnN1YnNjcmliZShzdGFydENhbGxiYWNrKTtcblx0fVxufVxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSBjb2RlXG4gKiBAcGFyYW0geyo9fSBtZXNzYWdlID0gJydcbiAqIEBwYXJhbSB7Kj19IGRlZkNvZGUgPSBudWxsXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Tm90aWZpY2F0aW9uKGNvZGUsIG1lc3NhZ2UgPSAnJywgZGVmQ29kZSA9IG51bGwpIHtcblx0Y29kZSA9IHdpbmRvdy5wYXJzZUludChjb2RlLCAxMCkgfHwgMDtcblx0aWYgKE5vdGlmaWNhdGlvbi5DbGllbnRWaWV3RXJyb3IgPT09IGNvZGUgJiYgbWVzc2FnZSkge1xuXHRcdHJldHVybiBtZXNzYWdlO1xuXHR9XG5cblx0ZGVmQ29kZSA9IGRlZkNvZGUgPyB3aW5kb3cucGFyc2VJbnQoZGVmQ29kZSwgMTApIHx8IDAgOiAwO1xuXHRyZXR1cm4gaXNVbmQoSTE4Tl9OT1RJRklDQVRJT05fREFUQVtjb2RlXSlcblx0XHQ/IGRlZkNvZGUgJiYgaXNVbmQoSTE4Tl9OT1RJRklDQVRJT05fREFUQVtkZWZDb2RlXSlcblx0XHRcdD8gSTE4Tl9OT1RJRklDQVRJT05fREFUQVtkZWZDb2RlXVxuXHRcdFx0OiAnJ1xuXHRcdDogSTE4Tl9OT1RJRklDQVRJT05fREFUQVtjb2RlXTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gcmVzcG9uc2VcbiAqIEBwYXJhbSB7bnVtYmVyfSBkZWZDb2RlID0gTm90aWZpY2F0aW9uLlVua25vd25Ob3RpZmljYXRpb25cbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXROb3RpZmljYXRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UsIGRlZkNvZGUgPSBOb3RpZmljYXRpb24uVW5rbm93bk5vdGlmaWNhdGlvbikge1xuXHRyZXR1cm4gcmVzcG9uc2UgJiYgcmVzcG9uc2UuRXJyb3JDb2RlXG5cdFx0PyBnZXROb3RpZmljYXRpb24ocEludChyZXNwb25zZS5FcnJvckNvZGUpLCByZXNwb25zZS5FcnJvck1lc3NhZ2UgfHwgJycpXG5cdFx0OiBnZXROb3RpZmljYXRpb24oZGVmQ29kZSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHsqfSBjb2RlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VXBsb2FkRXJyb3JEZXNjQnlDb2RlKGNvZGUpIHtcblx0bGV0IHJlc3VsdCA9ICcnO1xuXHRzd2l0Y2ggKHdpbmRvdy5wYXJzZUludChjb2RlLCAxMCkgfHwgMCkge1xuXHRcdGNhc2UgVXBsb2FkRXJyb3JDb2RlLkZpbGVJc1Rvb0JpZzpcblx0XHRcdHJlc3VsdCA9IGkxOG4oJ1VQTE9BRC9FUlJPUl9GSUxFX0lTX1RPT19CSUcnKTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgVXBsb2FkRXJyb3JDb2RlLkZpbGVQYXJ0aWFsbHlVcGxvYWRlZDpcblx0XHRcdHJlc3VsdCA9IGkxOG4oJ1VQTE9BRC9FUlJPUl9GSUxFX1BBUlRJQUxMWV9VUExPQURFRCcpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBVcGxvYWRFcnJvckNvZGUuRmlsZU5vVXBsb2FkZWQ6XG5cdFx0XHRyZXN1bHQgPSBpMThuKCdVUExPQUQvRVJST1JfTk9fRklMRV9VUExPQURFRCcpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBVcGxvYWRFcnJvckNvZGUuTWlzc2luZ1RlbXBGb2xkZXI6XG5cdFx0XHRyZXN1bHQgPSBpMThuKCdVUExPQUQvRVJST1JfTUlTU0lOR19URU1QX0ZPTERFUicpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBVcGxvYWRFcnJvckNvZGUuRmlsZU9uU2F2ZWluZ0Vycm9yOlxuXHRcdFx0cmVzdWx0ID0gaTE4bignVVBMT0FEL0VSUk9SX09OX1NBVklOR19GSUxFJyk7XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIFVwbG9hZEVycm9yQ29kZS5GaWxlVHlwZTpcblx0XHRcdHJlc3VsdCA9IGkxOG4oJ1VQTE9BRC9FUlJPUl9GSUxFX1RZUEUnKTtcblx0XHRcdGJyZWFrO1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHRyZXN1bHQgPSBpMThuKCdVUExPQUQvRVJST1JfVU5LTk9XTicpO1xuXHRcdFx0YnJlYWs7XG5cdH1cblxuXHRyZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gYWRtaW5cbiAqIEBwYXJhbSB7c3RyaW5nfSBsYW5ndWFnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVsb2FkKGFkbWluLCBsYW5ndWFnZSkge1xuXHRjb25zdCBzdGFydCA9IG1pY3JvdGltZSgpO1xuXG5cdCRodG1sLmFkZENsYXNzKCdybC1jaGFuZ2luZy1sYW5ndWFnZScpO1xuXG5cdHJldHVybiBuZXcgd2luZG93LlByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdCQuYWpheCh7XG5cdFx0XHR1cmw6IGxhbmdMaW5rKGxhbmd1YWdlLCBhZG1pbiksXG5cdFx0XHRkYXRhVHlwZTogJ3NjcmlwdCcsXG5cdFx0XHRjYWNoZTogdHJ1ZVxuXHRcdH0pLnRoZW4oXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdF8uZGVsYXkoXG5cdFx0XHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRcdFx0cmVsb2FkRGF0YSgpO1xuXG5cdFx0XHRcdFx0XHRjb25zdCBpc1J0bCA9IC0xIDwgaW5BcnJheSgobGFuZ3VhZ2UgfHwgJycpLnRvTG93ZXJDYXNlKCksIFsnYXInLCAnYXJfc2EnLCAnaGUnLCAnaGVfaGUnLCAndXInLCAndXJfaXInXSk7XG5cblx0XHRcdFx0XHRcdCRodG1sXG5cdFx0XHRcdFx0XHRcdC5yZW1vdmVDbGFzcygncmwtY2hhbmdpbmctbGFuZ3VhZ2UnKVxuXHRcdFx0XHRcdFx0XHQucmVtb3ZlQ2xhc3MoJ3JsLXJ0bCBybC1sdHInKVxuXHRcdFx0XHRcdFx0XHQvLyAuYXR0cignZGlyJywgaXNSdGwgPyAncnRsJyA6ICdsdHInKVxuXHRcdFx0XHRcdFx0XHQuYWRkQ2xhc3MoaXNSdGwgPyAncmwtcnRsJyA6ICdybC1sdHInKTtcblxuXHRcdFx0XHRcdFx0cmVzb2x2ZSgpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0NTAwIDwgbWljcm90aW1lKCkgLSBzdGFydCA/IDEgOiA1MDBcblx0XHRcdFx0KTtcblx0XHRcdH0sXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdCRodG1sLnJlbW92ZUNsYXNzKCdybC1jaGFuZ2luZy1sYW5ndWFnZScpO1xuXHRcdFx0XHR3aW5kb3cucmFpbmxvb3BJMThOID0gbnVsbDtcblx0XHRcdFx0cmVqZWN0KCk7XG5cdFx0XHR9XG5cdFx0KTtcblx0fSk7XG59XG5cbi8vIGluaXQgc2VjdGlvblxuJGh0bWwuYWRkQ2xhc3MoJ3JsLScgKyAoJGh0bWwuYXR0cignZGlyJykgfHwgJ2x0cicpKTtcbiIsImltcG9ydCBfT2JqZWN0JGNyZWF0ZSBmcm9tIFwiQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9jb3JlLWpzL29iamVjdC9jcmVhdGVcIjtcbmltcG9ydCBzZXRQcm90b3R5cGVPZiBmcm9tIFwiLi9zZXRQcm90b3R5cGVPZi5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2luaGVyaXRzTG9vc2Uoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHtcbiAgc3ViQ2xhc3MucHJvdG90eXBlID0gX09iamVjdCRjcmVhdGUoc3VwZXJDbGFzcy5wcm90b3R5cGUpO1xuICBzdWJDbGFzcy5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBzdWJDbGFzcztcbiAgc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpO1xufSIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2UvZmluZFwiKTsiLCJpbXBvcnQgd2luZG93IGZyb20gJ3dpbmRvdyc7XG5pbXBvcnQgeyBwU3RyaW5nLCBwSW50LCBpc1VuZCwgaXNOb3JtYWwsIHRyaW0sIGVuY29kZVVSSUNvbXBvbmVudCB9IGZyb20gJ0NvbW1vbi9VdGlscyc7XG5pbXBvcnQgKiBhcyBTZXR0aW5ncyBmcm9tICdTdG9yYWdlL1NldHRpbmdzJztcblxuY29uc3QgUk9PVCA9ICcuLycsXG5cdEhBU0hfUFJFRklYID0gJyMvJyxcblx0U0VSVkVSX1BSRUZJWCA9ICcuLz8nLFxuXHRTVUJfUVVFUllfUFJFRklYID0gJyZxW109Jyxcblx0VkVSU0lPTiA9IFNldHRpbmdzLmFwcFNldHRpbmdzR2V0KCd2ZXJzaW9uJyksXG5cdFdFQl9QUkVGSVggPSBTZXR0aW5ncy5hcHBTZXR0aW5nc0dldCgnd2ViUGF0aCcpIHx8ICcnLFxuXHRWRVJTSU9OX1BSRUZJWCA9IFNldHRpbmdzLmFwcFNldHRpbmdzR2V0KCd3ZWJWZXJzaW9uUGF0aCcpIHx8ICdyYWlubG9vcC92LycgKyBWRVJTSU9OICsgJy8nLFxuXHRTVEFUSUNfUFJFRklYID0gVkVSU0lPTl9QUkVGSVggKyAnc3RhdGljLycsXG5cdEFETUlOX0hPU1RfVVNFID0gISFTZXR0aW5ncy5hcHBTZXR0aW5nc0dldCgnYWRtaW5Ib3N0VXNlJyksXG5cdEFETUlOX1BBVEggPSBTZXR0aW5ncy5hcHBTZXR0aW5nc0dldCgnYWRtaW5QYXRoJykgfHwgJ2FkbWluJztcblxubGV0IEFVVEhfUFJFRklYID0gU2V0dGluZ3Muc2V0dGluZ3NHZXQoJ0F1dGhBY2NvdW50SGFzaCcpIHx8ICcwJztcblxuLyoqXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBvcHVsYXRlQXV0aFN1ZmZpeCgpIHtcblx0QVVUSF9QUkVGSVggPSBTZXR0aW5ncy5zZXR0aW5nc0dldCgnQXV0aEFjY291bnRIYXNoJykgfHwgJzAnO1xufVxuXG4vKipcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdWJRdWVyeVByZWZpeCgpIHtcblx0cmV0dXJuIFNVQl9RVUVSWV9QUkVGSVg7XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmc9fSBzdGFydHVwVXJsXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcm9vdChzdGFydHVwVXJsID0gJycpIHtcblx0cmV0dXJuIEhBU0hfUFJFRklYICsgcFN0cmluZyhzdGFydHVwVXJsKTtcbn1cblxuLyoqXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcm9vdEFkbWluKCkge1xuXHRyZXR1cm4gQURNSU5fSE9TVF9VU0UgPyBST09UIDogU0VSVkVSX1BSRUZJWCArIEFETUlOX1BBVEg7XG59XG5cbi8qKlxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJvb3RVc2VyKCkge1xuXHRyZXR1cm4gUk9PVDtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdHlwZVxuICogQHBhcmFtIHtzdHJpbmd9IGRvd25sb2FkXG4gKiBAcGFyYW0ge3N0cmluZz19IGN1c3RvbVNwZWNTdWZmaXhcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhdHRhY2htZW50UmF3KHR5cGUsIGRvd25sb2FkLCBjdXN0b21TcGVjU3VmZml4KSB7XG5cdGN1c3RvbVNwZWNTdWZmaXggPSBpc1VuZChjdXN0b21TcGVjU3VmZml4KSA/IEFVVEhfUFJFRklYIDogY3VzdG9tU3BlY1N1ZmZpeDtcblx0cmV0dXJuIChcblx0XHRTRVJWRVJfUFJFRklYICtcblx0XHQnL1Jhdy8nICtcblx0XHRTVUJfUVVFUllfUFJFRklYICtcblx0XHQnLycgK1xuXHRcdGN1c3RvbVNwZWNTdWZmaXggK1xuXHRcdCcvJyArXG5cdFx0dHlwZSArXG5cdFx0Jy8nICtcblx0XHRTVUJfUVVFUllfUFJFRklYICtcblx0XHQnLycgK1xuXHRcdGRvd25sb2FkXG5cdCk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGRvd25sb2FkXG4gKiBAcGFyYW0ge3N0cmluZz19IGN1c3RvbVNwZWNTdWZmaXhcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhdHRhY2htZW50RG93bmxvYWQoZG93bmxvYWQsIGN1c3RvbVNwZWNTdWZmaXgpIHtcblx0cmV0dXJuIGF0dGFjaG1lbnRSYXcoJ0Rvd25sb2FkJywgZG93bmxvYWQsIGN1c3RvbVNwZWNTdWZmaXgpO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBkb3dubG9hZFxuICogQHBhcmFtIHtzdHJpbmc9fSBjdXN0b21TcGVjU3VmZml4XG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gYXR0YWNobWVudFByZXZpZXcoZG93bmxvYWQsIGN1c3RvbVNwZWNTdWZmaXgpIHtcblx0cmV0dXJuIGF0dGFjaG1lbnRSYXcoJ1ZpZXcnLCBkb3dubG9hZCwgY3VzdG9tU3BlY1N1ZmZpeCk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGRvd25sb2FkXG4gKiBAcGFyYW0ge3N0cmluZz19IGN1c3RvbVNwZWNTdWZmaXhcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhdHRhY2htZW50VGh1bWJuYWlsUHJldmlldyhkb3dubG9hZCwgY3VzdG9tU3BlY1N1ZmZpeCkge1xuXHRyZXR1cm4gYXR0YWNobWVudFJhdygnVmlld1RodW1ibmFpbCcsIGRvd25sb2FkLCBjdXN0b21TcGVjU3VmZml4KTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gZG93bmxvYWRcbiAqIEBwYXJhbSB7c3RyaW5nPX0gY3VzdG9tU3BlY1N1ZmZpeFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGF0dGFjaG1lbnRQcmV2aWV3QXNQbGFpbihkb3dubG9hZCwgY3VzdG9tU3BlY1N1ZmZpeCkge1xuXHRyZXR1cm4gYXR0YWNobWVudFJhdygnVmlld0FzUGxhaW4nLCBkb3dubG9hZCwgY3VzdG9tU3BlY1N1ZmZpeCk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGRvd25sb2FkXG4gKiBAcGFyYW0ge3N0cmluZz19IGN1c3RvbVNwZWNTdWZmaXhcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhdHRhY2htZW50RnJhbWVkKGRvd25sb2FkLCBjdXN0b21TcGVjU3VmZml4KSB7XG5cdHJldHVybiBhdHRhY2htZW50UmF3KCdGcmFtZWRWaWV3JywgZG93bmxvYWQsIGN1c3RvbVNwZWNTdWZmaXgpO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VydmVyUmVxdWVzdCh0eXBlKSB7XG5cdHJldHVybiBTRVJWRVJfUFJFRklYICsgJy8nICsgdHlwZSArICcvJyArIFNVQl9RVUVSWV9QUkVGSVggKyAnLycgKyBBVVRIX1BSRUZJWCArICcvJztcbn1cblxuLyoqXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXBsb2FkKCkge1xuXHRyZXR1cm4gc2VydmVyUmVxdWVzdCgnVXBsb2FkJyk7XG59XG5cbi8qKlxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwbG9hZENvbnRhY3RzKCkge1xuXHRyZXR1cm4gc2VydmVyUmVxdWVzdCgnVXBsb2FkQ29udGFjdHMnKTtcbn1cblxuLyoqXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXBsb2FkQmFja2dyb3VuZCgpIHtcblx0cmV0dXJuIHNlcnZlclJlcXVlc3QoJ1VwbG9hZEJhY2tncm91bmQnKTtcbn1cblxuLyoqXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kKCkge1xuXHRyZXR1cm4gc2VydmVyUmVxdWVzdCgnQXBwZW5kJyk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGVtYWlsXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hhbmdlKGVtYWlsKSB7XG5cdHJldHVybiBzZXJ2ZXJSZXF1ZXN0KCdDaGFuZ2UnKSArIGVuY29kZVVSSUNvbXBvbmVudChlbWFpbCkgKyAnLyc7XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGFkZFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFqYXgoYWRkKSB7XG5cdHJldHVybiBzZXJ2ZXJSZXF1ZXN0KCdBamF4JykgKyBhZGQ7XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHJlcXVlc3RIYXNoXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVzc2FnZVZpZXdMaW5rKHJlcXVlc3RIYXNoKSB7XG5cdHJldHVybiAoXG5cdFx0U0VSVkVSX1BSRUZJWCArXG5cdFx0Jy9SYXcvJyArXG5cdFx0U1VCX1FVRVJZX1BSRUZJWCArXG5cdFx0Jy8nICtcblx0XHRBVVRIX1BSRUZJWCArXG5cdFx0Jy9WaWV3QXNQbGFpbi8nICtcblx0XHRTVUJfUVVFUllfUFJFRklYICtcblx0XHQnLycgK1xuXHRcdHJlcXVlc3RIYXNoXG5cdCk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHJlcXVlc3RIYXNoXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVzc2FnZURvd25sb2FkTGluayhyZXF1ZXN0SGFzaCkge1xuXHRyZXR1cm4gKFxuXHRcdFNFUlZFUl9QUkVGSVggKyAnL1Jhdy8nICsgU1VCX1FVRVJZX1BSRUZJWCArICcvJyArIEFVVEhfUFJFRklYICsgJy9Eb3dubG9hZC8nICsgU1VCX1FVRVJZX1BSRUZJWCArICcvJyArIHJlcXVlc3RIYXNoXG5cdCk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGVtYWlsXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gYXZhdGFyTGluayhlbWFpbCkge1xuXHRyZXR1cm4gU0VSVkVSX1BSRUZJWCArICcvUmF3LzAvQXZhdGFyLycgKyBlbmNvZGVVUklDb21wb25lbnQoZW1haWwpICsgJy8nO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBoYXNoXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHVibGljTGluayhoYXNoKSB7XG5cdHJldHVybiBTRVJWRVJfUFJFRklYICsgJy9SYXcvMC9QdWJsaWMvJyArIGhhc2ggKyAnLyc7XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGhhc2hcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VyQmFja2dyb3VuZChoYXNoKSB7XG5cdHJldHVybiAoXG5cdFx0U0VSVkVSX1BSRUZJWCArICcvUmF3LycgKyBTVUJfUVVFUllfUFJFRklYICsgJy8nICsgQVVUSF9QUkVGSVggKyAnL1VzZXJCYWNrZ3JvdW5kLycgKyBTVUJfUVVFUllfUFJFRklYICsgJy8nICsgaGFzaFxuXHQpO1xufVxuXG4vKipcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwaHBJbmZvKCkge1xuXHRyZXR1cm4gU0VSVkVSX1BSRUZJWCArICcvSW5mbyc7XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGxhbmdcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNBZG1pblxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxhbmdMaW5rKGxhbmcsIGlzQWRtaW4pIHtcblx0cmV0dXJuIFNFUlZFUl9QUkVGSVggKyAnL0xhbmcvMC8nICsgKGlzQWRtaW4gPyAnQWRtaW4nIDogJ0FwcCcpICsgJy8nICsgd2luZG93LmVuY29kZVVSSShsYW5nKSArICcvJyArIFZFUlNJT04gKyAnLyc7XG59XG5cbi8qKlxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4cG9ydENvbnRhY3RzVmNmKCkge1xuXHRyZXR1cm4gU0VSVkVSX1BSRUZJWCArICcvUmF3LycgKyBTVUJfUVVFUllfUFJFRklYICsgJy8nICsgQVVUSF9QUkVGSVggKyAnL0NvbnRhY3RzVmNmLyc7XG59XG5cbi8qKlxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4cG9ydENvbnRhY3RzQ3N2KCkge1xuXHRyZXR1cm4gU0VSVkVSX1BSRUZJWCArICcvUmF3LycgKyBTVUJfUVVFUllfUFJFRklYICsgJy8nICsgQVVUSF9QUkVGSVggKyAnL0NvbnRhY3RzQ3N2Lyc7XG59XG5cbi8qKlxuICogQHBhcmFtIHtib29sZWFufSB4YXV0aCA9IGZhbHNlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc29jaWFsR29vZ2xlKHhhdXRoID0gZmFsc2UpIHtcblx0cmV0dXJuIChcblx0XHRTRVJWRVJfUFJFRklYICtcblx0XHQnU29jaWFsR29vZ2xlJyArXG5cdFx0KCcnICE9PSBBVVRIX1BSRUZJWCA/ICcvJyArIFNVQl9RVUVSWV9QUkVGSVggKyAnLycgKyBBVVRIX1BSRUZJWCArICcvJyA6ICcnKSArXG5cdFx0KHhhdXRoID8gJyZ4YXV0aD0xJyA6ICcnKVxuXHQpO1xufVxuXG4vKipcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzb2NpYWxUd2l0dGVyKCkge1xuXHRyZXR1cm4gU0VSVkVSX1BSRUZJWCArICdTb2NpYWxUd2l0dGVyJyArICgnJyAhPT0gQVVUSF9QUkVGSVggPyAnLycgKyBTVUJfUVVFUllfUFJFRklYICsgJy8nICsgQVVUSF9QUkVGSVggKyAnLycgOiAnJyk7XG59XG5cbi8qKlxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNvY2lhbEZhY2Vib29rKCkge1xuXHRyZXR1cm4gKFxuXHRcdFNFUlZFUl9QUkVGSVggKyAnU29jaWFsRmFjZWJvb2snICsgKCcnICE9PSBBVVRIX1BSRUZJWCA/ICcvJyArIFNVQl9RVUVSWV9QUkVGSVggKyAnLycgKyBBVVRIX1BSRUZJWCArICcvJyA6ICcnKVxuXHQpO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RhdGljUHJlZml4KHBhdGgpIHtcblx0cmV0dXJuIFNUQVRJQ19QUkVGSVggKyBwYXRoO1xufVxuXG4vKipcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbXB0eUNvbnRhY3RQaWMoKSB7XG5cdHJldHVybiBzdGF0aWNQcmVmaXgoJ2Nzcy9pbWFnZXMvZW1wdHktY29udGFjdC5wbmcnKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gZmlsZU5hbWVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzb3VuZChmaWxlTmFtZSkge1xuXHRyZXR1cm4gc3RhdGljUHJlZml4KCdzb3VuZHMvJyArIGZpbGVOYW1lKTtcbn1cblxuLyoqXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gbm90aWZpY2F0aW9uTWFpbEljb24oKSB7XG5cdHJldHVybiBzdGF0aWNQcmVmaXgoJ2Nzcy9pbWFnZXMvaWNvbS1tZXNzYWdlLW5vdGlmaWNhdGlvbi5wbmcnKTtcbn1cblxuLyoqXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gb3BlblBncEpzKCkge1xuXHRyZXR1cm4gc3RhdGljUHJlZml4KCdqcy9taW4vb3BlbnBncC5taW4uanMnKTtcbn1cblxuLyoqXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gb3BlblBncFdvcmtlckpzKCkge1xuXHRyZXR1cm4gc3RhdGljUHJlZml4KCdqcy9taW4vb3BlbnBncC53b3JrZXIubWluLmpzJyk7XG59XG5cbi8qKlxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9wZW5QZ3BXb3JrZXJQYXRoKCkge1xuXHRyZXR1cm4gc3RhdGljUHJlZml4KCdqcy9taW4vJyk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHRoZW1lXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdGhlbWVQcmV2aWV3TGluayh0aGVtZSkge1xuXHRsZXQgcHJlZml4ID0gVkVSU0lPTl9QUkVGSVg7XG5cdGlmICgnQGN1c3RvbScgPT09IHRoZW1lLnN1YnN0cigtNykpIHtcblx0XHR0aGVtZSA9IHRyaW0odGhlbWUuc3Vic3RyaW5nKDAsIHRoZW1lLmxlbmd0aCAtIDcpKTtcblx0XHRwcmVmaXggPSBXRUJfUFJFRklYO1xuXHR9XG5cblx0cmV0dXJuIHByZWZpeCArICd0aGVtZXMvJyArIHdpbmRvdy5lbmNvZGVVUkkodGhlbWUpICsgJy9pbWFnZXMvcHJldmlldy5wbmcnO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBpbmJveEZvbGRlck5hbWUgPSAnSU5CT1gnXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5ib3goaW5ib3hGb2xkZXJOYW1lID0gJ0lOQk9YJykge1xuXHRyZXR1cm4gSEFTSF9QUkVGSVggKyAnbWFpbGJveC8nICsgaW5ib3hGb2xkZXJOYW1lO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nPX0gc2NyZWVuTmFtZSA9ICcnXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0dGluZ3Moc2NyZWVuTmFtZSA9ICcnKSB7XG5cdHJldHVybiBIQVNIX1BSRUZJWCArICdzZXR0aW5ncycgKyAoc2NyZWVuTmFtZSA/ICcvJyArIHNjcmVlbk5hbWUgOiAnJyk7XG59XG5cbi8qKlxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFib3V0KCkge1xuXHRyZXR1cm4gSEFTSF9QUkVGSVggKyAnYWJvdXQnO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBzY3JlZW5OYW1lXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRtaW4oc2NyZWVuTmFtZSkge1xuXHRsZXQgcmVzdWx0ID0gSEFTSF9QUkVGSVg7XG5cdHN3aXRjaCAoc2NyZWVuTmFtZSkge1xuXHRcdGNhc2UgJ0FkbWluRG9tYWlucyc6XG5cdFx0XHRyZXN1bHQgKz0gJ2RvbWFpbnMnO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSAnQWRtaW5TZWN1cml0eSc6XG5cdFx0XHRyZXN1bHQgKz0gJ3NlY3VyaXR5Jztcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgJ0FkbWluTGljZW5zaW5nJzpcblx0XHRcdHJlc3VsdCArPSAnbGljZW5zaW5nJztcblx0XHRcdGJyZWFrO1xuXHRcdC8vIG5vIGRlZmF1bHRcblx0fVxuXG5cdHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGZvbGRlclxuICogQHBhcmFtIHtudW1iZXI9fSBwYWdlID0gMVxuICogQHBhcmFtIHtzdHJpbmc9fSBzZWFyY2ggPSAnJ1xuICogQHBhcmFtIHtzdHJpbmc9fSB0aHJlYWRVaWQgPSAnJ1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1haWxCb3goZm9sZGVyLCBwYWdlID0gMSwgc2VhcmNoID0gJycsIHRocmVhZFVpZCA9ICcnKSB7XG5cdHBhZ2UgPSBpc05vcm1hbChwYWdlKSA/IHBJbnQocGFnZSkgOiAxO1xuXHRzZWFyY2ggPSBwU3RyaW5nKHNlYXJjaCk7XG5cblx0bGV0IHJlc3VsdCA9IEhBU0hfUFJFRklYICsgJ21haWxib3gvJztcblxuXHRpZiAoJycgIT09IGZvbGRlcikge1xuXHRcdGNvbnN0IHJlc3VsdFRocmVhZFVpZCA9IHBJbnQodGhyZWFkVWlkKTtcblx0XHRyZXN1bHQgKz0gd2luZG93LmVuY29kZVVSSShmb2xkZXIpICsgKDAgPCByZXN1bHRUaHJlYWRVaWQgPyAnficgKyByZXN1bHRUaHJlYWRVaWQgOiAnJyk7XG5cdH1cblxuXHRpZiAoMSA8IHBhZ2UpIHtcblx0XHRyZXN1bHQgPSByZXN1bHQucmVwbGFjZSgvWy9dKyQvLCAnJyk7XG5cdFx0cmVzdWx0ICs9ICcvcCcgKyBwYWdlO1xuXHR9XG5cblx0aWYgKCcnICE9PSBzZWFyY2gpIHtcblx0XHRyZXN1bHQgPSByZXN1bHQucmVwbGFjZSgvWy9dKyQvLCAnJyk7XG5cdFx0cmVzdWx0ICs9ICcvJyArIHdpbmRvdy5lbmNvZGVVUkkoc2VhcmNoKTtcblx0fVxuXG5cdHJldHVybiByZXN1bHQ7XG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzLXB1cmUvc3RhYmxlL2luc3RhbmNlL21hcFwiKTsiLCJpbXBvcnQgX2ZvckVhY2hJbnN0YW5jZVByb3BlcnR5IGZyb20gXCJAYmFiZWwvcnVudGltZS1jb3JlanMzL2NvcmUtanMvaW5zdGFuY2UvZm9yLWVhY2hcIjtcbmltcG9ydCBfT2JqZWN0JGtleXMgZnJvbSBcIkBiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy9vYmplY3Qva2V5c1wiO1xuaW1wb3J0IF9yZWR1Y2VJbnN0YW5jZVByb3BlcnR5IGZyb20gXCJAYmFiZWwvcnVudGltZS1jb3JlanMzL2NvcmUtanMvaW5zdGFuY2UvcmVkdWNlXCI7XG5pbXBvcnQgX3JldmVyc2VJbnN0YW5jZVByb3BlcnR5IGZyb20gXCJAYmFiZWwvcnVudGltZS1jb3JlanMzL2NvcmUtanMvaW5zdGFuY2UvcmV2ZXJzZVwiO1xuaW1wb3J0IF9zbGljZUluc3RhbmNlUHJvcGVydHkgZnJvbSBcIkBiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy9pbnN0YW5jZS9zbGljZVwiO1xuaW1wb3J0IF9PYmplY3QkZGVmaW5lUHJvcGVydHkgZnJvbSBcIkBiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy9vYmplY3QvZGVmaW5lLXByb3BlcnR5XCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yKHRhcmdldCwgcHJvcGVydHksIGRlY29yYXRvcnMsIGRlc2NyaXB0b3IsIGNvbnRleHQpIHtcbiAgdmFyIF9jb250ZXh0LCBfY29udGV4dDIsIF9jb250ZXh0MztcblxuICB2YXIgZGVzYyA9IHt9O1xuXG4gIF9mb3JFYWNoSW5zdGFuY2VQcm9wZXJ0eShfY29udGV4dCA9IF9PYmplY3Qka2V5cyhkZXNjcmlwdG9yKSkuY2FsbChfY29udGV4dCwgZnVuY3Rpb24gKGtleSkge1xuICAgIGRlc2Nba2V5XSA9IGRlc2NyaXB0b3Jba2V5XTtcbiAgfSk7XG5cbiAgZGVzYy5lbnVtZXJhYmxlID0gISFkZXNjLmVudW1lcmFibGU7XG4gIGRlc2MuY29uZmlndXJhYmxlID0gISFkZXNjLmNvbmZpZ3VyYWJsZTtcblxuICBpZiAoJ3ZhbHVlJyBpbiBkZXNjIHx8IGRlc2MuaW5pdGlhbGl6ZXIpIHtcbiAgICBkZXNjLndyaXRhYmxlID0gdHJ1ZTtcbiAgfVxuXG4gIGRlc2MgPSBfcmVkdWNlSW5zdGFuY2VQcm9wZXJ0eShfY29udGV4dDIgPSBfcmV2ZXJzZUluc3RhbmNlUHJvcGVydHkoX2NvbnRleHQzID0gX3NsaWNlSW5zdGFuY2VQcm9wZXJ0eShkZWNvcmF0b3JzKS5jYWxsKGRlY29yYXRvcnMpKS5jYWxsKF9jb250ZXh0MykpLmNhbGwoX2NvbnRleHQyLCBmdW5jdGlvbiAoZGVzYywgZGVjb3JhdG9yKSB7XG4gICAgcmV0dXJuIGRlY29yYXRvcih0YXJnZXQsIHByb3BlcnR5LCBkZXNjKSB8fCBkZXNjO1xuICB9LCBkZXNjKTtcblxuICBpZiAoY29udGV4dCAmJiBkZXNjLmluaXRpYWxpemVyICE9PSB2b2lkIDApIHtcbiAgICBkZXNjLnZhbHVlID0gZGVzYy5pbml0aWFsaXplciA/IGRlc2MuaW5pdGlhbGl6ZXIuY2FsbChjb250ZXh0KSA6IHZvaWQgMDtcbiAgICBkZXNjLmluaXRpYWxpemVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKGRlc2MuaW5pdGlhbGl6ZXIgPT09IHZvaWQgMCkge1xuICAgIF9PYmplY3QkZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBwcm9wZXJ0eSwgZGVzYyk7XG5cbiAgICBkZXNjID0gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBkZXNjO1xufSIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMtcHVyZS9zdGFibGUvb2JqZWN0L2dldC1vd24tcHJvcGVydHktZGVzY3JpcHRvclwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHdpbmRvdy5rZXk7IiwiaW1wb3J0IHsgQWJzdHJhY3RBamF4UmVtb3RlIH0gZnJvbSAnUmVtb3RlL0Fic3RyYWN0QWpheCc7XG5cbmNsYXNzIFJlbW90ZUFkbWluQWpheCBleHRlbmRzIEFic3RyYWN0QWpheFJlbW90ZSB7XG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cblx0XHR0aGlzLm9SZXF1ZXN0cyA9IHt9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwYXJhbSB7P0Z1bmN0aW9ufSBmQ2FsbGJhY2tcblx0ICogQHBhcmFtIHtzdHJpbmd9IHNMb2dpblxuXHQgKiBAcGFyYW0ge3N0cmluZ30gc1Bhc3N3b3JkXG5cdCAqL1xuXHRhZG1pbkxvZ2luKGZDYWxsYmFjaywgc0xvZ2luLCBzUGFzc3dvcmQpIHtcblx0XHR0aGlzLmRlZmF1bHRSZXF1ZXN0KGZDYWxsYmFjaywgJ0FkbWluTG9naW4nLCB7XG5cdFx0XHQnTG9naW4nOiBzTG9naW4sXG5cdFx0XHQnUGFzc3dvcmQnOiBzUGFzc3dvcmRcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcGFyYW0gez9GdW5jdGlvbn0gZkNhbGxiYWNrXG5cdCAqL1xuXHRhZG1pbkxvZ291dChmQ2FsbGJhY2spIHtcblx0XHR0aGlzLmRlZmF1bHRSZXF1ZXN0KGZDYWxsYmFjaywgJ0FkbWluTG9nb3V0Jyk7XG5cdH1cblxuXHQvKipcblx0ICogQHBhcmFtIHs/RnVuY3Rpb259IGZDYWxsYmFja1xuXHQgKiBAcGFyYW0gez99IG9EYXRhXG5cdCAqL1xuXHRzYXZlQWRtaW5Db25maWcoZkNhbGxiYWNrLCBvRGF0YSkge1xuXHRcdHRoaXMuZGVmYXVsdFJlcXVlc3QoZkNhbGxiYWNrLCAnQWRtaW5TZXR0aW5nc1VwZGF0ZScsIG9EYXRhKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcGFyYW0ge3N0cmluZ30ga2V5XG5cdCAqIEBwYXJhbSB7P0Z1bmN0aW9ufSB2YWx1ZUZuXG5cdCAqIEBwYXJhbSB7P0Z1bmN0aW9ufSBmblxuXHQgKi9cblx0c2F2ZUFkbWluQ29uZmlnSGVscGVyKGtleSwgdmFsdWVGbiwgZm4pIHtcblx0XHRyZXR1cm4gKHZhbHVlKSA9PiB7XG5cdFx0XHRjb25zdCBkYXRhID0ge307XG5cdFx0XHRkYXRhW2tleV0gPSB2YWx1ZUZuID8gdmFsdWVGbih2YWx1ZSkgOiB2YWx1ZTtcblx0XHRcdHRoaXMuc2F2ZUFkbWluQ29uZmlnKGZuIHx8IG51bGwsIGRhdGEpO1xuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQHBhcmFtIHs/RnVuY3Rpb259IGZDYWxsYmFja1xuXHQgKiBAcGFyYW0ge2Jvb2xlYW49fSBiSW5jbHVkZUFsaWFzZXMgPSB0cnVlXG5cdCAqL1xuXHRkb21haW5MaXN0KGZDYWxsYmFjaywgYkluY2x1ZGVBbGlhc2VzID0gdHJ1ZSkge1xuXHRcdHRoaXMuZGVmYXVsdFJlcXVlc3QoZkNhbGxiYWNrLCAnQWRtaW5Eb21haW5MaXN0Jywge1xuXHRcdFx0J0luY2x1ZGVBbGlhc2VzJzogYkluY2x1ZGVBbGlhc2VzID8gJzEnIDogJzAnXG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogQHBhcmFtIHs/RnVuY3Rpb259IGZDYWxsYmFja1xuXHQgKi9cblx0cGx1Z2luTGlzdChmQ2FsbGJhY2spIHtcblx0XHR0aGlzLmRlZmF1bHRSZXF1ZXN0KGZDYWxsYmFjaywgJ0FkbWluUGx1Z2luTGlzdCcpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwYXJhbSB7P0Z1bmN0aW9ufSBmQ2FsbGJhY2tcblx0ICovXG5cdHBhY2thZ2VzTGlzdChmQ2FsbGJhY2spIHtcblx0XHR0aGlzLmRlZmF1bHRSZXF1ZXN0KGZDYWxsYmFjaywgJ0FkbWluUGFja2FnZXNMaXN0Jyk7XG5cdH1cblxuXHQvKipcblx0ICogQHBhcmFtIHs/RnVuY3Rpb259IGZDYWxsYmFja1xuXHQgKi9cblx0Y29yZURhdGEoZkNhbGxiYWNrKSB7XG5cdFx0dGhpcy5kZWZhdWx0UmVxdWVzdChmQ2FsbGJhY2ssICdBZG1pbkNvcmVEYXRhJyk7XG5cdH1cblxuXHQvKipcblx0ICogQHBhcmFtIHs/RnVuY3Rpb259IGZDYWxsYmFja1xuXHQgKi9cblx0dXBkYXRlQ29yZURhdGEoZkNhbGxiYWNrKSB7XG5cdFx0dGhpcy5kZWZhdWx0UmVxdWVzdChmQ2FsbGJhY2ssICdBZG1pblVwZGF0ZUNvcmVEYXRhJywge30sIDkwMDAwKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcGFyYW0gez9GdW5jdGlvbn0gZkNhbGxiYWNrXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBvUGFja2FnZVxuXHQgKi9cblx0cGFja2FnZUluc3RhbGwoZkNhbGxiYWNrLCBvUGFja2FnZSkge1xuXHRcdHRoaXMuZGVmYXVsdFJlcXVlc3QoXG5cdFx0XHRmQ2FsbGJhY2ssXG5cdFx0XHQnQWRtaW5QYWNrYWdlSW5zdGFsbCcsXG5cdFx0XHR7XG5cdFx0XHRcdCdJZCc6IG9QYWNrYWdlLmlkLFxuXHRcdFx0XHQnVHlwZSc6IG9QYWNrYWdlLnR5cGUsXG5cdFx0XHRcdCdGaWxlJzogb1BhY2thZ2UuZmlsZVxuXHRcdFx0fSxcblx0XHRcdDYwMDAwXG5cdFx0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcGFyYW0gez9GdW5jdGlvbn0gZkNhbGxiYWNrXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBvUGFja2FnZVxuXHQgKi9cblx0cGFja2FnZURlbGV0ZShmQ2FsbGJhY2ssIG9QYWNrYWdlKSB7XG5cdFx0dGhpcy5kZWZhdWx0UmVxdWVzdChmQ2FsbGJhY2ssICdBZG1pblBhY2thZ2VEZWxldGUnLCB7XG5cdFx0XHQnSWQnOiBvUGFja2FnZS5pZFxuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwYXJhbSB7P0Z1bmN0aW9ufSBmQ2FsbGJhY2tcblx0ICogQHBhcmFtIHtzdHJpbmd9IHNOYW1lXG5cdCAqL1xuXHRkb21haW4oZkNhbGxiYWNrLCBzTmFtZSkge1xuXHRcdHRoaXMuZGVmYXVsdFJlcXVlc3QoZkNhbGxiYWNrLCAnQWRtaW5Eb21haW5Mb2FkJywge1xuXHRcdFx0J05hbWUnOiBzTmFtZVxuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwYXJhbSB7P0Z1bmN0aW9ufSBmQ2FsbGJhY2tcblx0ICogQHBhcmFtIHtzdHJpbmd9IHNOYW1lXG5cdCAqL1xuXHRwbHVnaW4oZkNhbGxiYWNrLCBzTmFtZSkge1xuXHRcdHRoaXMuZGVmYXVsdFJlcXVlc3QoZkNhbGxiYWNrLCAnQWRtaW5QbHVnaW5Mb2FkJywge1xuXHRcdFx0J05hbWUnOiBzTmFtZVxuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwYXJhbSB7P0Z1bmN0aW9ufSBmQ2FsbGJhY2tcblx0ICogQHBhcmFtIHtzdHJpbmd9IHNOYW1lXG5cdCAqL1xuXHRkb21haW5EZWxldGUoZkNhbGxiYWNrLCBzTmFtZSkge1xuXHRcdHRoaXMuZGVmYXVsdFJlcXVlc3QoZkNhbGxiYWNrLCAnQWRtaW5Eb21haW5EZWxldGUnLCB7XG5cdFx0XHQnTmFtZSc6IHNOYW1lXG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogQHBhcmFtIHs/RnVuY3Rpb259IGZDYWxsYmFja1xuXHQgKiBAcGFyYW0ge3N0cmluZ30gc05hbWVcblx0ICogQHBhcmFtIHtib29sZWFufSBiRGlzYWJsZWRcblx0ICovXG5cdGRvbWFpbkRpc2FibGUoZkNhbGxiYWNrLCBzTmFtZSwgYkRpc2FibGVkKSB7XG5cdFx0cmV0dXJuIHRoaXMuZGVmYXVsdFJlcXVlc3QoZkNhbGxiYWNrLCAnQWRtaW5Eb21haW5EaXNhYmxlJywge1xuXHRcdFx0TmFtZTogc05hbWUsXG5cdFx0XHREaXNhYmxlZDogYkRpc2FibGVkID8gJzEnIDogJzAnXG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogQHBhcmFtIHs/RnVuY3Rpb259IGZDYWxsYmFja1xuXHQgKiBAcGFyYW0ge09iamVjdH0gb0NvbmZpZ1xuXHQgKi9cblx0cGx1Z2luU2V0dGluZ3NVcGRhdGUoZkNhbGxiYWNrLCBvQ29uZmlnKSB7XG5cdFx0cmV0dXJuIHRoaXMuZGVmYXVsdFJlcXVlc3QoZkNhbGxiYWNrLCAnQWRtaW5QbHVnaW5TZXR0aW5nc1VwZGF0ZScsIG9Db25maWcpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwYXJhbSB7P0Z1bmN0aW9ufSBmQ2FsbGJhY2tcblx0ICogQHBhcmFtIHtib29sZWFufSBiRm9yY2Vcblx0ICovXG5cdGxpY2Vuc2luZyhmQ2FsbGJhY2ssIGJGb3JjZSkge1xuXHRcdHJldHVybiB0aGlzLmRlZmF1bHRSZXF1ZXN0KGZDYWxsYmFjaywgJ0FkbWluTGljZW5zaW5nJywge1xuXHRcdFx0Rm9yY2U6IGJGb3JjZSA/ICcxJyA6ICcwJ1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwYXJhbSB7P0Z1bmN0aW9ufSBmQ2FsbGJhY2tcblx0ICogQHBhcmFtIHtzdHJpbmd9IHNEb21haW5cblx0ICogQHBhcmFtIHtzdHJpbmd9IHNLZXlcblx0ICovXG5cdGxpY2Vuc2luZ0FjdGl2YXRlKGZDYWxsYmFjaywgc0RvbWFpbiwgc0tleSkge1xuXHRcdHJldHVybiB0aGlzLmRlZmF1bHRSZXF1ZXN0KGZDYWxsYmFjaywgJ0FkbWluTGljZW5zaW5nQWN0aXZhdGUnLCB7XG5cdFx0XHREb21haW46IHNEb21haW4sXG5cdFx0XHRLZXk6IHNLZXlcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcGFyYW0gez9GdW5jdGlvbn0gZkNhbGxiYWNrXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBzTmFtZVxuXHQgKiBAcGFyYW0ge2Jvb2xlYW59IGJEaXNhYmxlZFxuXHQgKi9cblx0cGx1Z2luRGlzYWJsZShmQ2FsbGJhY2ssIHNOYW1lLCBiRGlzYWJsZWQpIHtcblx0XHRyZXR1cm4gdGhpcy5kZWZhdWx0UmVxdWVzdChmQ2FsbGJhY2ssICdBZG1pblBsdWdpbkRpc2FibGUnLCB7XG5cdFx0XHROYW1lOiBzTmFtZSxcblx0XHRcdERpc2FibGVkOiBiRGlzYWJsZWQgPyAnMScgOiAnMCdcblx0XHR9KTtcblx0fVxuXG5cdGNyZWF0ZURvbWFpbkFsaWFzKGZDYWxsYmFjaywgc05hbWUsIHNBbGlhcykge1xuXHRcdHRoaXMuZGVmYXVsdFJlcXVlc3QoZkNhbGxiYWNrLCAnQWRtaW5Eb21haW5BbGlhc1NhdmUnLCB7XG5cdFx0XHROYW1lOiBzTmFtZSxcblx0XHRcdEFsaWFzOiBzQWxpYXNcblx0XHR9KTtcblx0fVxuXG5cdGNyZWF0ZU9yVXBkYXRlRG9tYWluKFxuXHRcdGZDYWxsYmFjayxcblx0XHRiQ3JlYXRlLFxuXHRcdHNOYW1lLFxuXHRcdHNJbmNIb3N0LFxuXHRcdGlJbmNQb3J0LFxuXHRcdHNJbmNTZWN1cmUsXG5cdFx0YkluY1Nob3J0TG9naW4sXG5cdFx0YlVzZVNpZXZlLFxuXHRcdHNTaWV2ZUFsbG93UmF3LFxuXHRcdHNTaWV2ZUhvc3QsXG5cdFx0aVNpZXZlUG9ydCxcblx0XHRzU2lldmVTZWN1cmUsXG5cdFx0c091dEhvc3QsXG5cdFx0aU91dFBvcnQsXG5cdFx0c091dFNlY3VyZSxcblx0XHRiT3V0U2hvcnRMb2dpbixcblx0XHRiT3V0QXV0aCxcblx0XHRiT3V0UGhwTWFpbCxcblx0XHRzV2hpdGVMaXN0XG5cdCkge1xuXHRcdHRoaXMuZGVmYXVsdFJlcXVlc3QoZkNhbGxiYWNrLCAnQWRtaW5Eb21haW5TYXZlJywge1xuXHRcdFx0J0NyZWF0ZSc6IGJDcmVhdGUgPyAnMScgOiAnMCcsXG5cdFx0XHQnTmFtZSc6IHNOYW1lLFxuXG5cdFx0XHQnSW5jSG9zdCc6IHNJbmNIb3N0LFxuXHRcdFx0J0luY1BvcnQnOiBpSW5jUG9ydCxcblx0XHRcdCdJbmNTZWN1cmUnOiBzSW5jU2VjdXJlLFxuXHRcdFx0J0luY1Nob3J0TG9naW4nOiBiSW5jU2hvcnRMb2dpbiA/ICcxJyA6ICcwJyxcblxuXHRcdFx0J1VzZVNpZXZlJzogYlVzZVNpZXZlID8gJzEnIDogJzAnLFxuXHRcdFx0J1NpZXZlQWxsb3dSYXcnOiBzU2lldmVBbGxvd1JhdyA/ICcxJyA6ICcwJyxcblx0XHRcdCdTaWV2ZUhvc3QnOiBzU2lldmVIb3N0LFxuXHRcdFx0J1NpZXZlUG9ydCc6IGlTaWV2ZVBvcnQsXG5cdFx0XHQnU2lldmVTZWN1cmUnOiBzU2lldmVTZWN1cmUsXG5cblx0XHRcdCdPdXRIb3N0Jzogc091dEhvc3QsXG5cdFx0XHQnT3V0UG9ydCc6IGlPdXRQb3J0LFxuXHRcdFx0J091dFNlY3VyZSc6IHNPdXRTZWN1cmUsXG5cdFx0XHQnT3V0U2hvcnRMb2dpbic6IGJPdXRTaG9ydExvZ2luID8gJzEnIDogJzAnLFxuXHRcdFx0J091dEF1dGgnOiBiT3V0QXV0aCA/ICcxJyA6ICcwJyxcblx0XHRcdCdPdXRVc2VQaHBNYWlsJzogYk91dFBocE1haWwgPyAnMScgOiAnMCcsXG5cblx0XHRcdCdXaGl0ZUxpc3QnOiBzV2hpdGVMaXN0XG5cdFx0fSk7XG5cdH1cblxuXHR0ZXN0Q29ubmVjdGlvbkZvckRvbWFpbihcblx0XHRmQ2FsbGJhY2ssXG5cdFx0c05hbWUsXG5cdFx0c0luY0hvc3QsXG5cdFx0aUluY1BvcnQsXG5cdFx0c0luY1NlY3VyZSxcblx0XHRiVXNlU2lldmUsXG5cdFx0c1NpZXZlSG9zdCxcblx0XHRpU2lldmVQb3J0LFxuXHRcdHNTaWV2ZVNlY3VyZSxcblx0XHRzT3V0SG9zdCxcblx0XHRpT3V0UG9ydCxcblx0XHRzT3V0U2VjdXJlLFxuXHRcdGJPdXRBdXRoLFxuXHRcdGJPdXRQaHBNYWlsXG5cdCkge1xuXHRcdHRoaXMuZGVmYXVsdFJlcXVlc3QoZkNhbGxiYWNrLCAnQWRtaW5Eb21haW5UZXN0Jywge1xuXHRcdFx0J05hbWUnOiBzTmFtZSxcblx0XHRcdCdJbmNIb3N0Jzogc0luY0hvc3QsXG5cdFx0XHQnSW5jUG9ydCc6IGlJbmNQb3J0LFxuXHRcdFx0J0luY1NlY3VyZSc6IHNJbmNTZWN1cmUsXG5cdFx0XHQnVXNlU2lldmUnOiBiVXNlU2lldmUgPyAnMScgOiAnMCcsXG5cdFx0XHQnU2lldmVIb3N0Jzogc1NpZXZlSG9zdCxcblx0XHRcdCdTaWV2ZVBvcnQnOiBpU2lldmVQb3J0LFxuXHRcdFx0J1NpZXZlU2VjdXJlJzogc1NpZXZlU2VjdXJlLFxuXHRcdFx0J091dEhvc3QnOiBzT3V0SG9zdCxcblx0XHRcdCdPdXRQb3J0JzogaU91dFBvcnQsXG5cdFx0XHQnT3V0U2VjdXJlJzogc091dFNlY3VyZSxcblx0XHRcdCdPdXRBdXRoJzogYk91dEF1dGggPyAnMScgOiAnMCcsXG5cdFx0XHQnT3V0VXNlUGhwTWFpbCc6IGJPdXRQaHBNYWlsID8gJzEnIDogJzAnXG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogQHBhcmFtIHs/RnVuY3Rpb259IGZDYWxsYmFja1xuXHQgKiBAcGFyYW0gez99IG9EYXRhXG5cdCAqL1xuXHR0ZXN0Q29udGFjdHMoZkNhbGxiYWNrLCBvRGF0YSkge1xuXHRcdHRoaXMuZGVmYXVsdFJlcXVlc3QoZkNhbGxiYWNrLCAnQWRtaW5Db250YWN0c1Rlc3QnLCBvRGF0YSk7XG5cdH1cblxuXHQvKipcblx0ICogQHBhcmFtIHs/RnVuY3Rpb259IGZDYWxsYmFja1xuXHQgKiBAcGFyYW0gez99IG9EYXRhXG5cdCAqL1xuXHRzYXZlTmV3QWRtaW5QYXNzd29yZChmQ2FsbGJhY2ssIG9EYXRhKSB7XG5cdFx0dGhpcy5kZWZhdWx0UmVxdWVzdChmQ2FsbGJhY2ssICdBZG1pblBhc3N3b3JkVXBkYXRlJywgb0RhdGEpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwYXJhbSB7P0Z1bmN0aW9ufSBmQ2FsbGJhY2tcblx0ICovXG5cdGFkbWluUGluZyhmQ2FsbGJhY2spIHtcblx0XHR0aGlzLmRlZmF1bHRSZXF1ZXN0KGZDYWxsYmFjaywgJ0FkbWluUGluZycpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IG5ldyBSZW1vdGVBZG1pbkFqYXgoKTtcbiIsImltcG9ydCBfIGZyb20gJ18nO1xuaW1wb3J0IHsgaXNPYmplY3QsIGlzVW5kIH0gZnJvbSAnQ29tbW9uL1V0aWxzJztcbmltcG9ydCAqIGFzIFBsdWdpbnMgZnJvbSAnQ29tbW9uL1BsdWdpbnMnO1xuXG5jb25zdCBTVUJTID0ge307XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd8T2JqZWN0fSBuYW1lXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jXG4gKiBAcGFyYW0ge09iamVjdD19IGNvbnRleHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1YihuYW1lLCBmdW5jLCBjb250ZXh0KSB7XG5cdGlmIChpc09iamVjdChuYW1lKSkge1xuXHRcdGNvbnRleHQgPSBmdW5jIHx8IG51bGw7XG5cdFx0ZnVuYyA9IG51bGw7XG5cblx0XHRfLmVhY2gobmFtZSwgKHN1YkZ1bmMsIHN1Yk5hbWUpID0+IHtcblx0XHRcdHN1YihzdWJOYW1lLCBzdWJGdW5jLCBjb250ZXh0KTtcblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHRpZiAoaXNVbmQoU1VCU1tuYW1lXSkpIHtcblx0XHRcdFNVQlNbbmFtZV0gPSBbXTtcblx0XHR9XG5cblx0XHRTVUJTW25hbWVdLnB1c2goW2Z1bmMsIGNvbnRleHRdKTtcblx0fVxufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gKiBAcGFyYW0ge0FycmF5PX0gYXJnc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHViKG5hbWUsIGFyZ3MpIHtcblx0UGx1Z2lucy5ydW5Ib29rKCdybC1wdWInLCBbbmFtZSwgYXJnc10pO1xuXG5cdGlmICghaXNVbmQoU1VCU1tuYW1lXSkpIHtcblx0XHRfLmVhY2goU1VCU1tuYW1lXSwgKGl0ZW1zKSA9PiB7XG5cdFx0XHRpZiAoaXRlbXNbMF0pIHtcblx0XHRcdFx0aXRlbXNbMF0uYXBwbHkoaXRlbXNbMV0gfHwgbnVsbCwgYXJncyB8fCBbXSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cbiIsImV4cG9ydCBjb25zdCBNRVNTQUdFU19QRVJfUEFHRSA9IDIwO1xuXG5leHBvcnQgY29uc3QgTUVTU0FHRVNfUEVSX1BBR0VfVkFMVUVTID0gWzEwLCAyMCwgMzAsIDUwLCAxMDBdO1xuXG5leHBvcnQgY29uc3QgQ09OVEFDVFNfUEVSX1BBR0UgPSA1MDtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQUpBWF9USU1FT1VUID0gMzAwMDA7XG5cbmV4cG9ydCBjb25zdCBTRUFSQ0hfQUpBWF9USU1FT1VUID0gMzAwMDAwO1xuXG5leHBvcnQgY29uc3QgU0VORF9NRVNTQUdFX0FKQVhfVElNRU9VVCA9IDMwMDAwMDtcblxuZXhwb3J0IGNvbnN0IFNBVkVfTUVTU0FHRV9BSkFYX1RJTUVPVVQgPSAyMDAwMDA7XG5cbmV4cG9ydCBjb25zdCBDT05UQUNUU19TWU5DX0FKQVhfVElNRU9VVCA9IDIwMDAwMDtcblxuZXhwb3J0IGNvbnN0IFVOVVNFRF9PUFRJT05fVkFMVUUgPSAnX19VTlVTRV9fJztcblxuZXhwb3J0IGNvbnN0IENMSUVOVF9TSURFX1NUT1JBR0VfSU5ERVhfTkFNRSA9ICdybGNzYyc7XG5cbmV4cG9ydCBjb25zdCBJTUFQX0RFRkFVTFRfUE9SVCA9IDE0MztcblxuZXhwb3J0IGNvbnN0IElNQVBfREVGQVVMVF9TRUNVUkVfUE9SVCA9IDk5MztcblxuZXhwb3J0IGNvbnN0IFNNVFBfREVGQVVMVF9QT1JUID0gMjU7XG5cbmV4cG9ydCBjb25zdCBTTVRQX0RFRkFVTFRfU0VDVVJFX1BPUlQgPSA0NjU7XG5cbmV4cG9ydCBjb25zdCBTSUVWRV9ERUZBVUxUX1BPUlQgPSA0MTkwO1xuXG5leHBvcnQgY29uc3QgTUVTU0FHRV9CT0RZX0NBQ0hFX0xJTUlUID0gMTU7XG5cbmV4cG9ydCBjb25zdCBBSkFYX0VSUk9SX0xJTUlUID0gNztcblxuZXhwb3J0IGNvbnN0IFRPS0VOX0VSUk9SX0xJTUlUID0gMTA7XG5cbmV4cG9ydCBjb25zdCBSQUlOTE9PUF9UUklBTF9LRVkgPSAnUkFJTkxPT1AtVFJJQUwtS0VZJztcblxuLyogZXNsaW50IG1heC1sZW46IDAgKi9cbmV4cG9ydCBjb25zdCBEQVRBX0lNQUdFX1VTRVJfRE9UX1BJQyA9XG5cdCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUM0QUFBQXVDQVlBQUFCWHVTczNBQUFISGtsRVFWUm9RN1ZaVzA4YlZ4Q2VYUnV3SWJUR1hJd050QkJhcWp3Z1ZVaVI4bERsYnphOXFlMURwVlo5YU5RLzBLcFBlYUpLMDdTcGN1RWVDRW1VQU9ibTIxYmZyTDlsT05qZXhTWXJXZmJ1bmozN3pYZG12cGt6OW9JZ0NLVEQwV2cweFBkOTRURFA4M1EwenZXYTUwdnprbFNyZGFuVmFucWY0L0Q4NEdCR3IrRitPcDNTOGZxb0p4TE9kblpnVHZzTy9uWWhlbkhBK1VDN0NXRjF1WHdrYjkrK2xkUFRVd1ZlclZiVnFGUXFwUjhZUGpRMEpDTWpJNUxORGlqb1JnUDNQUVZ1NSs1RW9yMlhHTGc3SVY0R2tJZEhKL0xtelJzNU9EaUl3TmJyZFIwTzBHQ2NxNFh6NGVGaG1aeWNsUDcrdERRYUlpay9CRzVYS1FuNFN3RzN6SlRMWlhuOStyVWNsSThVSEQ1WVZvREROOGJTelhoT053TDQ4ZkZ4R1I0ZWlsekZaVDF1RlJJQjV5VDhCcUNkblIzWjNkMFZQOVVuNlhSYXdZSnBnZ1ZyWkJ2MzhNRTRYS3RVS25MdDJqVXBsVW95MVBSL2wzVTdUNnNWU0FRY2dNQWtqOFBEUTluZTNwYWpveU1STDd6ZUtzWVpXSGdXWURHbXY3OC9tbWR3Y0ZBK21KbFNnemlIRFdyRVJyc2pFWERYZWdUaTF0WlcrREx4STJieElycUZOWVRYeUR5Q0Z3ZU1BSEN3YjhlNFJuVE51T3NxZTN0N3NyYTIxcFREMEtjdDY2NkU4WGxjWnl6dzkvUlVVWEs1bks1b1VpblVRSTZUUTNjeW5PL3Y3OHZxNnFyS1hDTndsVGlKSnB5TkdjM25aSHA2dXFWMmR3clFXT0N0WkJEQVYxWld3c1FrN2Ywd2lRbjVrZmZiQXUvMC9LV0JZeklDMStYdWtmR3gwUkdabXBwS2xDMnRJVjBCaDRhRGNaVzdIaGtmSDh1ckxMWkw3VDJwaWh2bGtNTm56NTZGaWFkSHhpY0w0MUlzRnBONDFia3hzWXhiUmRGbzlqd0I4S2RQbjE0SjhLblNwQlFLaFFzNjNuUG1iQ1ZSY0JVQVIyTHExVlZtcGtzeU1URnhBWGpjRXNReWJpZWdFU2lvbmp4NW9zQ1pPZU5lMU80K0VoQ0FYN2JRU2dRY3hSSFRNZ0FnY3o1Ky9EaXMvaEw0dUhVMy9CNFlHTkFTR0hJS3h1RXFsMGsrbDA1QWVJQUYxdlBuejVWeEZGbWREbGFKck10WklUSmVTc1hDT1RsTXVuS3hqTHRNWU9LTmpRMTU4ZUpGdUF1S2tVT2I1c0V3Z2ZmMTlTa0pVQlZrVGhaVWJuWFpydENLQlE2Z2JuV0lralpweW5lM2VqQVdvR25BN0ljejZpcnZCTGdiT01pY0NNNlRreFB4L0xBa2JYZmdXY3NhenVFMmtGUnNLRDVaK0NpcUR1bUtuY3BadmllV2NTNmREVkQ4eGlZQ05mbHBKZHdjZHdKT2Y5YWlyTG1WUTdEUHpNeElZV0xzWEdYb1ZxTHQ1azBNM0szSlVWUERaZGJXTnpzQ3A0OFRQRmR2ZG5aV1V6MzJuRGhhN2JKNjNrZ0FKUHpTZFJrczkvS2Y5eE1KQVExZ3EyTnBhVW15Mll6NHphcjRuUUMzeGI5OUFRd0NjR3pMQUF3dWhHOFlpV3ZjT0t0cytyNEdPZTVuTWhtNWVmT205bFVBM0UzdlNaSlJyS3ZFMGZuUHYvL0p5NWN2bzVjVEhJUFFiU2poT29xcTY5ZXZTMTlmNmx4REtLNCtzVmhpZ1pQdEtKcWJyUWVxeGQ1K1dSNCtmS2dxZ1QwazJYWDNuaGlQZ0VUV1hGaFlrRnp1UFoyeVZxMUdUU09YcEU0Ny9WamdObkQ0bTRHRzcvTGhzVHg2OUVpd0Q0VnIyTXdJSXhnYkFIMThmS3gxeWZ6OHZFb2dOdkd0V25DdWhMWmE5VVRBcmVWV0ZzSHkvYi8rVnJiZGw3RTVSRU1RRDJqRG9VYkJ5dHkrL1puVTY0R2tVMkh6eUpMaGt0VTFjTHY4bkFSZ2tZUzJkM2FqQWd3RzhxVTJvTG1EWjkyQ01hT2pvN0s0dUNpWmdiRFdhUldnblpoUHhMaHJNVUN2cjY5cml3S1prMUxIRjdYcXJXQU85aEp4SDZvek56Y25DeC9QcXp0Wmc5bWY2U1FNc2NDdG0yQzVrZTRCR01sSFdUVXAzNjAzNkFKYWpEVnJGTXpCcmhoV3NsUXNTckZZaU9xVnBNcmlOWUlncUZScTJqM0ZBYi96ZmZUNnp1eEZYeHNOenMzTlRYbjE2bFc0Z1lpVzk2dzFGeWVkRis4M3hHLzJGTkdDUnBVNE5qYW1Nc24rT1o5eEU1UlhxZGFEZFBwaWI2UldDenV3S0Y5UnhxSTJBVk5RQndRWUpvSzB3ZEJlam5xdEVpa1AzcGZQNTFYalVURVNsMTJGcUpFS3hzRW9yQVJZREQ0NE9OVGVJRDdZcHNFbnJSdlFmV0FJMmU4V2ZEYVRVU0l3SjBpQkNtRk90T1VBSHZWTVBwL1RQd3ZZRlZZRkl1UDhsK0RCZ3dkYWEyTWlxd2EwR2dZd2ZlTWx0b3ZiRGZoNmMxdklnTVljbGlTc0t2NElXRnI2VkRIeHZsZHZCQUgrMXNBK2NubDVXWU9QbW1yOWlyKzFsOUkwQ2d6MHlqaFhqZkpKMEpST25tZXpXYmwxNjVheXIvNWZxd2NCTnI3SWZoak1xS2N2RVNTTTRlUmNDYXNRM2JETk9ibUtQTGRHVUdwWnNOMjRjVU5MQm05emF6dTRkKytlNnFwTkJGYVR1VVMyNlU1ZHB1UjFDeHlBN0o5ZGRyTVJxbHo0cHdMTFlhd3ltUGQrKy8yUEFEdDJ1Z2NHd3E5Z0NDZGhROTZDNnhXd2E2ajFjZXVxK0kwRWhXMGk4TUFJVkpmZUwzZC9EVkQ4RUtpMTJQNi8yUzJqVi9FY2NWQjU0Ty9lanovOUhHQ3BvQkJNdGE1clhNWEx1NTNEMVhBd2poWHd2dnYraDRCQVhWZTRiT3UzTzNDaHhGMDhMaVpGRzNmZWwxOTlHOUNIM2ZMeXF2MjROY0I0NE1SaHBkSzc4OFUzQ3B5S3dzQ3c1OTB4bWZTcHpzQnQwRnFjM3VkM3Z0WmlneFdjVlpDa2xWcFNpTjB3M3E1RS9oOVRHTUlVdUEzK0VRQUFBQUJKUlU1RXJrSmdnZz09JztcblxuZXhwb3J0IGNvbnN0IERBVEFfSU1BR0VfVFJBTlNQX1BJQyA9XG5cdCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFFQUFBQUJDQVlBQUFBZkZjU0pBQUFBQzBsRVFWUUlXMk5rQUFJQUFBb0FBZ2dBOUdrQUFBQUFTVVZPUks1Q1lJST0nO1xuXG5leHBvcnQgY29uc3QgREFUQV9JTUFHRV9MQVpZX1BMQUNFSE9MREVSX1BJQyA9XG5cdCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFFQUFBQUJDQVlBQUFBZkZjU0pBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFBSmNFaFpjd0FBRHNRQUFBN0VBWlVyRGhzQUFBQU5TVVJCVkJoWFl6aDgrUEIvQUFmZkEwbk5QdUNMQUFBQUFFbEZUa1N1UW1DQyc7XG4iLCJpbXBvcnQga28gZnJvbSAna28nO1xuXG5pbXBvcnQgeyBkZWxlZ2F0ZVJ1biwgaW5Gb2N1cyB9IGZyb20gJ0NvbW1vbi9VdGlscyc7XG5pbXBvcnQgeyBLZXlTdGF0ZSwgRXZlbnRLZXlDb2RlIH0gZnJvbSAnQ29tbW9uL0VudW1zJztcbmltcG9ydCB7ICR3aW4sIGtleVNjb3BlIH0gZnJvbSAnQ29tbW9uL0dsb2JhbHMnO1xuXG5leHBvcnQgY2xhc3MgQWJzdHJhY3RWaWV3TmV4dCB7XG5cdGJEaXNhYmVDbG9zZU9uRXNjID0gZmFsc2U7XG5cdHNEZWZhdWx0S2V5U2NvcGUgPSBLZXlTdGF0ZS5Ob25lO1xuXHRzQ3VycmVudEtleVNjb3BlID0gS2V5U3RhdGUuTm9uZTtcblxuXHR2aWV3TW9kZWxWaXNpYmlsaXR5ID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cdG1vZGFsVmlzaWJpbGl0eSA9IGtvLm9ic2VydmFibGUoZmFsc2UpLmV4dGVuZCh7IHJhdGVMaW1pdDogMCB9KTtcblxuXHR2aWV3TW9kZWxOYW1lID0gJyc7XG5cdHZpZXdNb2RlbE5hbWVzID0gW107XG5cdHZpZXdNb2RlbERvbSA9IG51bGw7XG5cblx0LyoqXG5cdCAqIEByZXR1cm5zIHt2b2lkfVxuXHQgKi9cblx0c3RvcmVBbmRTZXRLZXlTY29wZSgpIHtcblx0XHR0aGlzLnNDdXJyZW50S2V5U2NvcGUgPSBrZXlTY29wZSgpO1xuXHRcdGtleVNjb3BlKHRoaXMuc0RlZmF1bHRLZXlTY29wZSk7XG5cdH1cblxuXHQvKipcblx0ICogQHJldHVybnMge3ZvaWR9XG5cdCAqL1xuXHRyZXN0b3JlS2V5U2NvcGUoKSB7XG5cdFx0a2V5U2NvcGUodGhpcy5zQ3VycmVudEtleVNjb3BlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcmV0dXJucyB7dm9pZH1cblx0ICovXG5cdHJlZ2lzdGVyUG9wdXBLZXlEb3duKCkge1xuXHRcdCR3aW4ub24oJ2tleWRvd24nLCAoZXZlbnQpID0+IHtcblx0XHRcdGlmIChldmVudCAmJiB0aGlzLm1vZGFsVmlzaWJpbGl0eSAmJiB0aGlzLm1vZGFsVmlzaWJpbGl0eSgpKSB7XG5cdFx0XHRcdGlmICghdGhpcy5iRGlzYWJlQ2xvc2VPbkVzYyAmJiBFdmVudEtleUNvZGUuRXNjID09PSBldmVudC5rZXlDb2RlKSB7XG5cdFx0XHRcdFx0ZGVsZWdhdGVSdW4odGhpcywgJ2NhbmNlbENvbW1hbmQnKTtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH0gZWxzZSBpZiAoRXZlbnRLZXlDb2RlLkJhY2tzcGFjZSA9PT0gZXZlbnQua2V5Q29kZSAmJiAhaW5Gb2N1cygpKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH0pO1xuXHR9XG5cblx0Y2FuY2VsQ29tbWFuZCgpIHt9IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tZW1wdHktZnVuY3Rpb25cblx0Y2xvc2VDb21tYW5kKCkge30gLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1lbXB0eS1mdW5jdGlvblxufVxuIiwiaW1wb3J0IHdpbmRvdyBmcm9tICd3aW5kb3cnO1xuaW1wb3J0IGtvIGZyb20gJ2tvJztcbmltcG9ydCAkIGZyb20gJyQnO1xuaW1wb3J0ICogYXMgU2V0dGluZ3MgZnJvbSAnU3RvcmFnZS9TZXR0aW5ncyc7XG5cbmNsYXNzIFNvY2lhbFN0b3JlIHtcblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5nb29nbGUgPSB7fTtcblx0XHR0aGlzLnR3aXR0ZXIgPSB7fTtcblx0XHR0aGlzLmZhY2Vib29rID0ge307XG5cdFx0dGhpcy5kcm9wYm94ID0ge307XG5cblx0XHQvLyBHb29nbGVcblx0XHR0aGlzLmdvb2dsZS5lbmFibGVkID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cblx0XHR0aGlzLmdvb2dsZS5jbGllbnRJRCA9IGtvLm9ic2VydmFibGUoJycpO1xuXHRcdHRoaXMuZ29vZ2xlLmNsaWVudFNlY3JldCA9IGtvLm9ic2VydmFibGUoJycpO1xuXHRcdHRoaXMuZ29vZ2xlLmFwaUtleSA9IGtvLm9ic2VydmFibGUoJycpO1xuXG5cdFx0dGhpcy5nb29nbGUubG9hZGluZyA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXHRcdHRoaXMuZ29vZ2xlLnVzZXJOYW1lID0ga28ub2JzZXJ2YWJsZSgnJyk7XG5cblx0XHR0aGlzLmdvb2dsZS5sb2dnaW5lZCA9IGtvLmNvbXB1dGVkKCgpID0+ICcnICE9PSB0aGlzLmdvb2dsZS51c2VyTmFtZSgpKTtcblxuXHRcdHRoaXMuZ29vZ2xlLmNhcGEgPSB7fTtcblx0XHR0aGlzLmdvb2dsZS5jYXBhLmF1dGggPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblx0XHR0aGlzLmdvb2dsZS5jYXBhLmF1dGhHbWFpbCA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXHRcdHRoaXMuZ29vZ2xlLmNhcGEuZHJpdmUgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblx0XHR0aGlzLmdvb2dsZS5jYXBhLnByZXZpZXcgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblxuXHRcdHRoaXMuZ29vZ2xlLnJlcXVpcmUgPSB7fTtcblx0XHR0aGlzLmdvb2dsZS5yZXF1aXJlLmNsaWVudFNldHRpbmdzID0ga28uY29tcHV0ZWQoXG5cdFx0XHQoKSA9PlxuXHRcdFx0XHR0aGlzLmdvb2dsZS5lbmFibGVkKCkgJiYgKHRoaXMuZ29vZ2xlLmNhcGEuYXV0aCgpIHx8IHRoaXMuZ29vZ2xlLmNhcGEuYXV0aEdtYWlsKCkgfHwgdGhpcy5nb29nbGUuY2FwYS5kcml2ZSgpKVxuXHRcdCk7XG5cblx0XHR0aGlzLmdvb2dsZS5yZXF1aXJlLmFwaUtleVNldHRpbmdzID0ga28uY29tcHV0ZWQoKCkgPT4gdGhpcy5nb29nbGUuZW5hYmxlZCgpICYmIHRoaXMuZ29vZ2xlLmNhcGEuZHJpdmUoKSk7XG5cblx0XHQvLyBGYWNlYm9va1xuXHRcdHRoaXMuZmFjZWJvb2suZW5hYmxlZCA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXHRcdHRoaXMuZmFjZWJvb2suYXBwSUQgPSBrby5vYnNlcnZhYmxlKCcnKTtcblx0XHR0aGlzLmZhY2Vib29rLmFwcFNlY3JldCA9IGtvLm9ic2VydmFibGUoJycpO1xuXHRcdHRoaXMuZmFjZWJvb2subG9hZGluZyA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXHRcdHRoaXMuZmFjZWJvb2sudXNlck5hbWUgPSBrby5vYnNlcnZhYmxlKCcnKTtcblx0XHR0aGlzLmZhY2Vib29rLnN1cHBvcnRlZCA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXG5cdFx0dGhpcy5mYWNlYm9vay5sb2dnaW5lZCA9IGtvLmNvbXB1dGVkKCgpID0+ICcnICE9PSB0aGlzLmZhY2Vib29rLnVzZXJOYW1lKCkpO1xuXG5cdFx0Ly8gVHdpdHRlclxuXHRcdHRoaXMudHdpdHRlci5lbmFibGVkID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cdFx0dGhpcy50d2l0dGVyLmNvbnN1bWVyS2V5ID0ga28ub2JzZXJ2YWJsZSgnJyk7XG5cdFx0dGhpcy50d2l0dGVyLmNvbnN1bWVyU2VjcmV0ID0ga28ub2JzZXJ2YWJsZSgnJyk7XG5cdFx0dGhpcy50d2l0dGVyLmxvYWRpbmcgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblx0XHR0aGlzLnR3aXR0ZXIudXNlck5hbWUgPSBrby5vYnNlcnZhYmxlKCcnKTtcblxuXHRcdHRoaXMudHdpdHRlci5sb2dnaW5lZCA9IGtvLmNvbXB1dGVkKCgpID0+ICcnICE9PSB0aGlzLnR3aXR0ZXIudXNlck5hbWUoKSk7XG5cblx0XHQvLyBEcm9wYm94XG5cdFx0dGhpcy5kcm9wYm94LmVuYWJsZWQgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblx0XHR0aGlzLmRyb3Bib3guYXBpS2V5ID0ga28ub2JzZXJ2YWJsZSgnJyk7XG5cdH1cblxuXHRwb3B1bGF0ZSgpIHtcblx0XHR0aGlzLmdvb2dsZS5lbmFibGVkKCEhU2V0dGluZ3Muc2V0dGluZ3NHZXQoJ0FsbG93R29vZ2xlU29jaWFsJykpO1xuXHRcdHRoaXMuZ29vZ2xlLmNsaWVudElEKFNldHRpbmdzLnNldHRpbmdzR2V0KCdHb29nbGVDbGllbnRJRCcpKTtcblx0XHR0aGlzLmdvb2dsZS5jbGllbnRTZWNyZXQoU2V0dGluZ3Muc2V0dGluZ3NHZXQoJ0dvb2dsZUNsaWVudFNlY3JldCcpKTtcblx0XHR0aGlzLmdvb2dsZS5hcGlLZXkoU2V0dGluZ3Muc2V0dGluZ3NHZXQoJ0dvb2dsZUFwaUtleScpKTtcblxuXHRcdHRoaXMuZ29vZ2xlLmNhcGEuYXV0aCghIVNldHRpbmdzLnNldHRpbmdzR2V0KCdBbGxvd0dvb2dsZVNvY2lhbEF1dGgnKSk7XG5cdFx0dGhpcy5nb29nbGUuY2FwYS5hdXRoR21haWwoISFTZXR0aW5ncy5zZXR0aW5nc0dldCgnQWxsb3dHb29nbGVTb2NpYWxBdXRoR21haWwnKSk7XG5cdFx0dGhpcy5nb29nbGUuY2FwYS5kcml2ZSghIVNldHRpbmdzLnNldHRpbmdzR2V0KCdBbGxvd0dvb2dsZVNvY2lhbERyaXZlJykpO1xuXHRcdHRoaXMuZ29vZ2xlLmNhcGEucHJldmlldyghIVNldHRpbmdzLnNldHRpbmdzR2V0KCdBbGxvd0dvb2dsZVNvY2lhbFByZXZpZXcnKSk7XG5cblx0XHR0aGlzLmZhY2Vib29rLmVuYWJsZWQoISFTZXR0aW5ncy5zZXR0aW5nc0dldCgnQWxsb3dGYWNlYm9va1NvY2lhbCcpKTtcblx0XHR0aGlzLmZhY2Vib29rLmFwcElEKFNldHRpbmdzLnNldHRpbmdzR2V0KCdGYWNlYm9va0FwcElEJykpO1xuXHRcdHRoaXMuZmFjZWJvb2suYXBwU2VjcmV0KFNldHRpbmdzLnNldHRpbmdzR2V0KCdGYWNlYm9va0FwcFNlY3JldCcpKTtcblx0XHR0aGlzLmZhY2Vib29rLnN1cHBvcnRlZCghIVNldHRpbmdzLnNldHRpbmdzR2V0KCdTdXBwb3J0ZWRGYWNlYm9va1NvY2lhbCcpKTtcblxuXHRcdHRoaXMudHdpdHRlci5lbmFibGVkID0ga28ub2JzZXJ2YWJsZSghIVNldHRpbmdzLnNldHRpbmdzR2V0KCdBbGxvd1R3aXR0ZXJTb2NpYWwnKSk7XG5cdFx0dGhpcy50d2l0dGVyLmNvbnN1bWVyS2V5ID0ga28ub2JzZXJ2YWJsZShTZXR0aW5ncy5zZXR0aW5nc0dldCgnVHdpdHRlckNvbnN1bWVyS2V5JykpO1xuXHRcdHRoaXMudHdpdHRlci5jb25zdW1lclNlY3JldCA9IGtvLm9ic2VydmFibGUoU2V0dGluZ3Muc2V0dGluZ3NHZXQoJ1R3aXR0ZXJDb25zdW1lclNlY3JldCcpKTtcblxuXHRcdHRoaXMuZHJvcGJveC5lbmFibGVkKCEhU2V0dGluZ3Muc2V0dGluZ3NHZXQoJ0FsbG93RHJvcGJveFNvY2lhbCcpKTtcblx0XHR0aGlzLmRyb3Bib3guYXBpS2V5KFNldHRpbmdzLnNldHRpbmdzR2V0KCdEcm9wYm94QXBpS2V5JykpO1xuXHR9XG5cblx0YXBwZW5kRHJvcGJveCgpIHtcblx0XHRpZiAoIXdpbmRvdy5Ecm9wYm94ICYmIHRoaXMuZHJvcGJveC5lbmFibGVkKCkgJiYgdGhpcy5kcm9wYm94LmFwaUtleSgpKSB7XG5cdFx0XHRpZiAoIXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHJvcGJveGpzJykpIHtcblx0XHRcdFx0Y29uc3Qgc2NyaXB0ID0gd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuXHRcdFx0XHRzY3JpcHQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuXHRcdFx0XHRzY3JpcHQuc3JjID0gJ2h0dHBzOi8vd3d3LmRyb3Bib3guY29tL3N0YXRpYy9hcGkvMi9kcm9waW5zLmpzJztcblx0XHRcdFx0JChzY3JpcHQpXG5cdFx0XHRcdFx0LmF0dHIoJ2lkJywgJ2Ryb3Bib3hqcycpXG5cdFx0XHRcdFx0LmF0dHIoJ2RhdGEtYXBwLWtleScsIHRoaXMuZHJvcGJveC5hcGlLZXkoKSk7XG5cblx0XHRcdFx0d2luZG93LmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbmV3IFNvY2lhbFN0b3JlKCk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzLXB1cmUvc3RhYmxlL2luc3RhbmNlL2ZpbHRlclwiKTsiLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXNzZXJ0VGhpc0luaXRpYWxpemVkKHNlbGYpIHtcbiAgaWYgKHNlbGYgPT09IHZvaWQgMCkge1xuICAgIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtcbiAgfVxuXG4gIHJldHVybiBzZWxmO1xufSIsInZhciBjaGVjayA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgJiYgaXQuTWF0aCA9PSBNYXRoICYmIGl0O1xufTtcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzg2I2lzc3VlY29tbWVudC0xMTU3NTkwMjhcbm1vZHVsZS5leHBvcnRzID1cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLWdsb2JhbC10aGlzIC0tIHNhZmVcbiAgY2hlY2sodHlwZW9mIGdsb2JhbFRoaXMgPT0gJ29iamVjdCcgJiYgZ2xvYmFsVGhpcykgfHxcbiAgY2hlY2sodHlwZW9mIHdpbmRvdyA9PSAnb2JqZWN0JyAmJiB3aW5kb3cpIHx8XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWdsb2JhbHMgLS0gc2FmZVxuICBjaGVjayh0eXBlb2Ygc2VsZiA9PSAnb2JqZWN0JyAmJiBzZWxmKSB8fFxuICBjaGVjayh0eXBlb2YgZ2xvYmFsID09ICdvYmplY3QnICYmIGdsb2JhbCkgfHxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5ldy1mdW5jIC0tIGZhbGxiYWNrXG4gIChmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9KSgpIHx8IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG4iLCJ2YXIgY2hlY2sgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ICYmIGl0Lk1hdGggPT0gTWF0aCAmJiBpdDtcbn07XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy84NiNpc3N1ZWNvbW1lbnQtMTE1NzU5MDI4XG5tb2R1bGUuZXhwb3J0cyA9XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICBjaGVjayh0eXBlb2YgZ2xvYmFsVGhpcyA9PSAnb2JqZWN0JyAmJiBnbG9iYWxUaGlzKSB8fFxuICBjaGVjayh0eXBlb2Ygd2luZG93ID09ICdvYmplY3QnICYmIHdpbmRvdykgfHxcbiAgY2hlY2sodHlwZW9mIHNlbGYgPT0gJ29iamVjdCcgJiYgc2VsZikgfHxcbiAgY2hlY2sodHlwZW9mIGdsb2JhbCA9PSAnb2JqZWN0JyAmJiBnbG9iYWwpIHx8XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXctZnVuY1xuICAoZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSkoKSB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuIiwiaW1wb3J0ICQgZnJvbSAnJCc7XG5pbXBvcnQga28gZnJvbSAna28nO1xuXG5pbXBvcnQgeyBpc1VuZCB9IGZyb20gJ0NvbW1vbi9VdGlscyc7XG5pbXBvcnQgeyBpMThuVG9Ob2RlcyB9IGZyb20gJ0NvbW1vbi9UcmFuc2xhdG9yJztcblxuY2xhc3MgQWJzdHJhY3RDb21wb25lbnQge1xuXHRkaXNwb3NhYmxlID0gW107XG5cblx0ZGlzcG9zZSgpIHtcblx0XHR0aGlzLmRpc3Bvc2FibGUuZm9yRWFjaCgoZnVuY1RvRGlzcG9zZSkgPT4ge1xuXHRcdFx0aWYgKGZ1bmNUb0Rpc3Bvc2UgJiYgZnVuY1RvRGlzcG9zZS5kaXNwb3NlKSB7XG5cdFx0XHRcdGZ1bmNUb0Rpc3Bvc2UuZGlzcG9zZSgpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG5cbi8qKlxuICogQHBhcmFtIHsqfSBDbGFzc09iamVjdFxuICogQHBhcmFtIHtzdHJpbmd9IHRlbXBsYXRlSUQgPSAnJ1xuICogQHJldHVybnMge09iamVjdH1cbiAqL1xuY29uc3QgY29tcG9uZW50RXhwb3J0SGVscGVyID0gKENsYXNzT2JqZWN0LCB0ZW1wbGF0ZUlEID0gJycpID0+ICh7XG5cdHRlbXBsYXRlOiB0ZW1wbGF0ZUlEID8geyBlbGVtZW50OiB0ZW1wbGF0ZUlEIH0gOiAnPGI+PC9iPicsXG5cdHZpZXdNb2RlbDoge1xuXHRcdGNyZWF0ZVZpZXdNb2RlbDogKHBhcmFtcywgY29tcG9uZW50SW5mbykgPT4ge1xuXHRcdFx0cGFyYW1zID0gcGFyYW1zIHx8IHt9O1xuXHRcdFx0cGFyYW1zLmVsZW1lbnQgPSBudWxsO1xuXG5cdFx0XHRpZiAoY29tcG9uZW50SW5mbyAmJiBjb21wb25lbnRJbmZvLmVsZW1lbnQpIHtcblx0XHRcdFx0cGFyYW1zLmNvbXBvbmVudCA9IGNvbXBvbmVudEluZm87XG5cdFx0XHRcdHBhcmFtcy5lbGVtZW50ID0gJChjb21wb25lbnRJbmZvLmVsZW1lbnQpO1xuXG5cdFx0XHRcdGkxOG5Ub05vZGVzKHBhcmFtcy5lbGVtZW50KTtcblxuXHRcdFx0XHRpZiAoIWlzVW5kKHBhcmFtcy5pbmxpbmUpICYmIGtvLnVud3JhcChwYXJhbXMuaW5saW5lKSkge1xuXHRcdFx0XHRcdHBhcmFtcy5lbGVtZW50LmNzcygnZGlzcGxheScsICdpbmxpbmUtYmxvY2snKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gbmV3IENsYXNzT2JqZWN0KHBhcmFtcyk7XG5cdFx0fVxuXHR9XG59KTtcblxuZXhwb3J0IHsgQWJzdHJhY3RDb21wb25lbnQsIGNvbXBvbmVudEV4cG9ydEhlbHBlciB9O1xuIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy1wdXJlL3N0YWJsZS9zZXQtdGltZW91dFwiKTsiLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJykuZjtcbnZhciBpc0ZvcmNlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1mb3JjZWQnKTtcbnZhciBwYXRoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3BhdGgnKTtcbnZhciBiaW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtY29udGV4dCcpO1xudmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHknKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzJyk7XG5cbnZhciB3cmFwQ29uc3RydWN0b3IgPSBmdW5jdGlvbiAoTmF0aXZlQ29uc3RydWN0b3IpIHtcbiAgdmFyIFdyYXBwZXIgPSBmdW5jdGlvbiAoYSwgYiwgYykge1xuICAgIGlmICh0aGlzIGluc3RhbmNlb2YgTmF0aXZlQ29uc3RydWN0b3IpIHtcbiAgICAgIHN3aXRjaCAoYXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgICBjYXNlIDA6IHJldHVybiBuZXcgTmF0aXZlQ29uc3RydWN0b3IoKTtcbiAgICAgICAgY2FzZSAxOiByZXR1cm4gbmV3IE5hdGl2ZUNvbnN0cnVjdG9yKGEpO1xuICAgICAgICBjYXNlIDI6IHJldHVybiBuZXcgTmF0aXZlQ29uc3RydWN0b3IoYSwgYik7XG4gICAgICB9IHJldHVybiBuZXcgTmF0aXZlQ29uc3RydWN0b3IoYSwgYiwgYyk7XG4gICAgfSByZXR1cm4gTmF0aXZlQ29uc3RydWN0b3IuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbiAgV3JhcHBlci5wcm90b3R5cGUgPSBOYXRpdmVDb25zdHJ1Y3Rvci5wcm90b3R5cGU7XG4gIHJldHVybiBXcmFwcGVyO1xufTtcblxuLypcbiAgb3B0aW9ucy50YXJnZXQgICAgICAtIG5hbWUgb2YgdGhlIHRhcmdldCBvYmplY3RcbiAgb3B0aW9ucy5nbG9iYWwgICAgICAtIHRhcmdldCBpcyB0aGUgZ2xvYmFsIG9iamVjdFxuICBvcHRpb25zLnN0YXQgICAgICAgIC0gZXhwb3J0IGFzIHN0YXRpYyBtZXRob2RzIG9mIHRhcmdldFxuICBvcHRpb25zLnByb3RvICAgICAgIC0gZXhwb3J0IGFzIHByb3RvdHlwZSBtZXRob2RzIG9mIHRhcmdldFxuICBvcHRpb25zLnJlYWwgICAgICAgIC0gcmVhbCBwcm90b3R5cGUgbWV0aG9kIGZvciB0aGUgYHB1cmVgIHZlcnNpb25cbiAgb3B0aW9ucy5mb3JjZWQgICAgICAtIGV4cG9ydCBldmVuIGlmIHRoZSBuYXRpdmUgZmVhdHVyZSBpcyBhdmFpbGFibGVcbiAgb3B0aW9ucy5iaW5kICAgICAgICAtIGJpbmQgbWV0aG9kcyB0byB0aGUgdGFyZ2V0LCByZXF1aXJlZCBmb3IgdGhlIGBwdXJlYCB2ZXJzaW9uXG4gIG9wdGlvbnMud3JhcCAgICAgICAgLSB3cmFwIGNvbnN0cnVjdG9ycyB0byBwcmV2ZW50aW5nIGdsb2JhbCBwb2xsdXRpb24sIHJlcXVpcmVkIGZvciB0aGUgYHB1cmVgIHZlcnNpb25cbiAgb3B0aW9ucy51bnNhZmUgICAgICAtIHVzZSB0aGUgc2ltcGxlIGFzc2lnbm1lbnQgb2YgcHJvcGVydHkgaW5zdGVhZCBvZiBkZWxldGUgKyBkZWZpbmVQcm9wZXJ0eVxuICBvcHRpb25zLnNoYW0gICAgICAgIC0gYWRkIGEgZmxhZyB0byBub3QgY29tcGxldGVseSBmdWxsIHBvbHlmaWxsc1xuICBvcHRpb25zLmVudW1lcmFibGUgIC0gZXhwb3J0IGFzIGVudW1lcmFibGUgcHJvcGVydHlcbiAgb3B0aW9ucy5ub1RhcmdldEdldCAtIHByZXZlbnQgY2FsbGluZyBhIGdldHRlciBvbiB0YXJnZXRcbiovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvcHRpb25zLCBzb3VyY2UpIHtcbiAgdmFyIFRBUkdFVCA9IG9wdGlvbnMudGFyZ2V0O1xuICB2YXIgR0xPQkFMID0gb3B0aW9ucy5nbG9iYWw7XG4gIHZhciBTVEFUSUMgPSBvcHRpb25zLnN0YXQ7XG4gIHZhciBQUk9UTyA9IG9wdGlvbnMucHJvdG87XG5cbiAgdmFyIG5hdGl2ZVNvdXJjZSA9IEdMT0JBTCA/IGdsb2JhbCA6IFNUQVRJQyA/IGdsb2JhbFtUQVJHRVRdIDogKGdsb2JhbFtUQVJHRVRdIHx8IHt9KS5wcm90b3R5cGU7XG5cbiAgdmFyIHRhcmdldCA9IEdMT0JBTCA/IHBhdGggOiBwYXRoW1RBUkdFVF0gfHwgKHBhdGhbVEFSR0VUXSA9IHt9KTtcbiAgdmFyIHRhcmdldFByb3RvdHlwZSA9IHRhcmdldC5wcm90b3R5cGU7XG5cbiAgdmFyIEZPUkNFRCwgVVNFX05BVElWRSwgVklSVFVBTF9QUk9UT1RZUEU7XG4gIHZhciBrZXksIHNvdXJjZVByb3BlcnR5LCB0YXJnZXRQcm9wZXJ0eSwgbmF0aXZlUHJvcGVydHksIHJlc3VsdFByb3BlcnR5LCBkZXNjcmlwdG9yO1xuXG4gIGZvciAoa2V5IGluIHNvdXJjZSkge1xuICAgIEZPUkNFRCA9IGlzRm9yY2VkKEdMT0JBTCA/IGtleSA6IFRBUkdFVCArIChTVEFUSUMgPyAnLicgOiAnIycpICsga2V5LCBvcHRpb25zLmZvcmNlZCk7XG4gICAgLy8gY29udGFpbnMgaW4gbmF0aXZlXG4gICAgVVNFX05BVElWRSA9ICFGT1JDRUQgJiYgbmF0aXZlU291cmNlICYmIGhhcyhuYXRpdmVTb3VyY2UsIGtleSk7XG5cbiAgICB0YXJnZXRQcm9wZXJ0eSA9IHRhcmdldFtrZXldO1xuXG4gICAgaWYgKFVTRV9OQVRJVkUpIGlmIChvcHRpb25zLm5vVGFyZ2V0R2V0KSB7XG4gICAgICBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG5hdGl2ZVNvdXJjZSwga2V5KTtcbiAgICAgIG5hdGl2ZVByb3BlcnR5ID0gZGVzY3JpcHRvciAmJiBkZXNjcmlwdG9yLnZhbHVlO1xuICAgIH0gZWxzZSBuYXRpdmVQcm9wZXJ0eSA9IG5hdGl2ZVNvdXJjZVtrZXldO1xuXG4gICAgLy8gZXhwb3J0IG5hdGl2ZSBvciBpbXBsZW1lbnRhdGlvblxuICAgIHNvdXJjZVByb3BlcnR5ID0gKFVTRV9OQVRJVkUgJiYgbmF0aXZlUHJvcGVydHkpID8gbmF0aXZlUHJvcGVydHkgOiBzb3VyY2Vba2V5XTtcblxuICAgIGlmIChVU0VfTkFUSVZFICYmIHR5cGVvZiB0YXJnZXRQcm9wZXJ0eSA9PT0gdHlwZW9mIHNvdXJjZVByb3BlcnR5KSBjb250aW51ZTtcblxuICAgIC8vIGJpbmQgdGltZXJzIHRvIGdsb2JhbCBmb3IgY2FsbCBmcm9tIGV4cG9ydCBjb250ZXh0XG4gICAgaWYgKG9wdGlvbnMuYmluZCAmJiBVU0VfTkFUSVZFKSByZXN1bHRQcm9wZXJ0eSA9IGJpbmQoc291cmNlUHJvcGVydHksIGdsb2JhbCk7XG4gICAgLy8gd3JhcCBnbG9iYWwgY29uc3RydWN0b3JzIGZvciBwcmV2ZW50IGNoYW5ncyBpbiB0aGlzIHZlcnNpb25cbiAgICBlbHNlIGlmIChvcHRpb25zLndyYXAgJiYgVVNFX05BVElWRSkgcmVzdWx0UHJvcGVydHkgPSB3cmFwQ29uc3RydWN0b3Ioc291cmNlUHJvcGVydHkpO1xuICAgIC8vIG1ha2Ugc3RhdGljIHZlcnNpb25zIGZvciBwcm90b3R5cGUgbWV0aG9kc1xuICAgIGVsc2UgaWYgKFBST1RPICYmIHR5cGVvZiBzb3VyY2VQcm9wZXJ0eSA9PSAnZnVuY3Rpb24nKSByZXN1bHRQcm9wZXJ0eSA9IGJpbmQoRnVuY3Rpb24uY2FsbCwgc291cmNlUHJvcGVydHkpO1xuICAgIC8vIGRlZmF1bHQgY2FzZVxuICAgIGVsc2UgcmVzdWx0UHJvcGVydHkgPSBzb3VyY2VQcm9wZXJ0eTtcblxuICAgIC8vIGFkZCBhIGZsYWcgdG8gbm90IGNvbXBsZXRlbHkgZnVsbCBwb2x5ZmlsbHNcbiAgICBpZiAob3B0aW9ucy5zaGFtIHx8IChzb3VyY2VQcm9wZXJ0eSAmJiBzb3VyY2VQcm9wZXJ0eS5zaGFtKSB8fCAodGFyZ2V0UHJvcGVydHkgJiYgdGFyZ2V0UHJvcGVydHkuc2hhbSkpIHtcbiAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShyZXN1bHRQcm9wZXJ0eSwgJ3NoYW0nLCB0cnVlKTtcbiAgICB9XG5cbiAgICB0YXJnZXRba2V5XSA9IHJlc3VsdFByb3BlcnR5O1xuXG4gICAgaWYgKFBST1RPKSB7XG4gICAgICBWSVJUVUFMX1BST1RPVFlQRSA9IFRBUkdFVCArICdQcm90b3R5cGUnO1xuICAgICAgaWYgKCFoYXMocGF0aCwgVklSVFVBTF9QUk9UT1RZUEUpKSB7XG4gICAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShwYXRoLCBWSVJUVUFMX1BST1RPVFlQRSwge30pO1xuICAgICAgfVxuICAgICAgLy8gZXhwb3J0IHZpcnR1YWwgcHJvdG90eXBlIG1ldGhvZHNcbiAgICAgIHBhdGhbVklSVFVBTF9QUk9UT1RZUEVdW2tleV0gPSBzb3VyY2VQcm9wZXJ0eTtcbiAgICAgIC8vIGV4cG9ydCByZWFsIHByb3RvdHlwZSBtZXRob2RzXG4gICAgICBpZiAob3B0aW9ucy5yZWFsICYmIHRhcmdldFByb3RvdHlwZSAmJiAhdGFyZ2V0UHJvdG90eXBlW2tleV0pIHtcbiAgICAgICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KHRhcmdldFByb3RvdHlwZSwga2V5LCBzb3VyY2VQcm9wZXJ0eSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuIiwiaW1wb3J0IF8gZnJvbSAnXyc7XG5pbXBvcnQgeyBpc0Z1bmMsIGlzQXJyYXksIGlzVW5kIH0gZnJvbSAnQ29tbW9uL1V0aWxzJztcbmltcG9ydCB7IGRhdGEgYXMgR2xvYmFsc0RhdGEgfSBmcm9tICdDb21tb24vR2xvYmFscyc7XG5pbXBvcnQgKiBhcyBTZXR0aW5ncyBmcm9tICdTdG9yYWdlL1NldHRpbmdzJztcblxuY29uc3QgU0lNUExFX0hPT0tTID0ge30sXG5cdFVTRVJfVklFV19NT0RFTFNfSE9PS1MgPSBbXSxcblx0QURNSU5fVklFV19NT0RFTFNfSE9PS1MgPSBbXTtcblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZEhvb2sobmFtZSwgY2FsbGJhY2spIHtcblx0aWYgKGlzRnVuYyhjYWxsYmFjaykpIHtcblx0XHRpZiAoIWlzQXJyYXkoU0lNUExFX0hPT0tTW25hbWVdKSkge1xuXHRcdFx0U0lNUExFX0hPT0tTW25hbWVdID0gW107XG5cdFx0fVxuXG5cdFx0U0lNUExFX0hPT0tTW25hbWVdLnB1c2goY2FsbGJhY2spO1xuXHR9XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqIEBwYXJhbSB7QXJyYXk9fSBhcmdzID0gW11cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1bkhvb2sobmFtZSwgYXJncyA9IFtdKSB7XG5cdGlmIChpc0FycmF5KFNJTVBMRV9IT09LU1tuYW1lXSkpIHtcblx0XHRfLmVhY2goU0lNUExFX0hPT0tTW25hbWVdLCAoY2FsbGJhY2spID0+IHtcblx0XHRcdGNhbGxiYWNrKC4uLmFyZ3MpO1xuXHRcdH0pO1xuXHR9XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqIEByZXR1cm5zIHs/fVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFpblNldHRpbmdzR2V0KG5hbWUpIHtcblx0cmV0dXJuIFNldHRpbmdzLnNldHRpbmdzR2V0KG5hbWUpO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXG4gKiBAcGFyYW0ge3N0cmluZ30gYWN0aW9uXG4gKiBAcGFyYW0ge09iamVjdD19IHBhcmFtZXRlcnNcbiAqIEBwYXJhbSB7P251bWJlcj19IHRpbWVvdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW90ZVJlcXVlc3QoY2FsbGJhY2ssIGFjdGlvbiwgcGFyYW1ldGVycywgdGltZW91dCkge1xuXHRpZiAoR2xvYmFsc0RhdGEuX19BUFBfXykge1xuXHRcdEdsb2JhbHNEYXRhLl9fQVBQX18ucmVtb3RlKCkuZGVmYXVsdFJlcXVlc3QoY2FsbGJhY2ssICdQbHVnaW4nICsgYWN0aW9uLCBwYXJhbWV0ZXJzLCB0aW1lb3V0KTtcblx0fVxufVxuXG4vKipcbiAqIEBwYXJhbSB7RnVuY3Rpb259IFNldHRpbmdzVmlld01vZGVsQ2xhc3NcbiAqIEBwYXJhbSB7c3RyaW5nfSBsYWJlbE5hbWVcbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZW1wbGF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IHJvdXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRTZXR0aW5nc1ZpZXdNb2RlbChTZXR0aW5nc1ZpZXdNb2RlbENsYXNzLCB0ZW1wbGF0ZSwgbGFiZWxOYW1lLCByb3V0ZSkge1xuXHRVU0VSX1ZJRVdfTU9ERUxTX0hPT0tTLnB1c2goW1NldHRpbmdzVmlld01vZGVsQ2xhc3MsIHRlbXBsYXRlLCBsYWJlbE5hbWUsIHJvdXRlXSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gU2V0dGluZ3NWaWV3TW9kZWxDbGFzc1xuICogQHBhcmFtIHtzdHJpbmd9IGxhYmVsTmFtZVxuICogQHBhcmFtIHtzdHJpbmd9IHRlbXBsYXRlXG4gKiBAcGFyYW0ge3N0cmluZ30gcm91dGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFNldHRpbmdzVmlld01vZGVsRm9yQWRtaW4oU2V0dGluZ3NWaWV3TW9kZWxDbGFzcywgdGVtcGxhdGUsIGxhYmVsTmFtZSwgcm91dGUpIHtcblx0QURNSU5fVklFV19NT0RFTFNfSE9PS1MucHVzaChbU2V0dGluZ3NWaWV3TW9kZWxDbGFzcywgdGVtcGxhdGUsIGxhYmVsTmFtZSwgcm91dGVdKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGFkbWluXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5TZXR0aW5nc1ZpZXdNb2RlbEhvb2tzKGFkbWluKSB7XG5cdGNvbnN0IEtub2luID0gcmVxdWlyZSgnS25vaW4vS25vaW4nKTtcblx0Xy5lYWNoKGFkbWluID8gQURNSU5fVklFV19NT0RFTFNfSE9PS1MgOiBVU0VSX1ZJRVdfTU9ERUxTX0hPT0tTLCAodmlldykgPT4ge1xuXHRcdEtub2luLmFkZFNldHRpbmdzVmlld01vZGVsKHZpZXdbMF0sIHZpZXdbMV0sIHZpZXdbMl0sIHZpZXdbM10pO1xuXHR9KTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGx1Z2luU2VjdGlvblxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAqIEByZXR1cm5zIHs/fVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0dGluZ3NHZXQocGx1Z2luU2VjdGlvbiwgbmFtZSkge1xuXHRsZXQgcGx1Z2lucyA9IFNldHRpbmdzLnNldHRpbmdzR2V0KCdQbHVnaW5zJyk7XG5cdHBsdWdpbnMgPSBwbHVnaW5zICYmICFpc1VuZChwbHVnaW5zW3BsdWdpblNlY3Rpb25dKSA/IHBsdWdpbnNbcGx1Z2luU2VjdGlvbl0gOiBudWxsO1xuXHRyZXR1cm4gcGx1Z2lucyA/IChpc1VuZChwbHVnaW5zW25hbWVdKSA/IG51bGwgOiBwbHVnaW5zW25hbWVdKSA6IG51bGw7XG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChleGVjKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuICEhZXhlYygpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59O1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkJyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcycpO1xudmFyIHVpZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy91aWQnKTtcbnZhciBOQVRJVkVfU1lNQk9MID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25hdGl2ZS1zeW1ib2wnKTtcbnZhciBVU0VfU1lNQk9MX0FTX1VJRCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy91c2Utc3ltYm9sLWFzLXVpZCcpO1xuXG52YXIgV2VsbEtub3duU3ltYm9sc1N0b3JlID0gc2hhcmVkKCd3a3MnKTtcbnZhciBTeW1ib2wgPSBnbG9iYWwuU3ltYm9sO1xudmFyIGNyZWF0ZVdlbGxLbm93blN5bWJvbCA9IFVTRV9TWU1CT0xfQVNfVUlEID8gU3ltYm9sIDogU3ltYm9sICYmIFN5bWJvbC53aXRob3V0U2V0dGVyIHx8IHVpZDtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobmFtZSkge1xuICBpZiAoIWhhcyhXZWxsS25vd25TeW1ib2xzU3RvcmUsIG5hbWUpKSB7XG4gICAgaWYgKE5BVElWRV9TWU1CT0wgJiYgaGFzKFN5bWJvbCwgbmFtZSkpIFdlbGxLbm93blN5bWJvbHNTdG9yZVtuYW1lXSA9IFN5bWJvbFtuYW1lXTtcbiAgICBlbHNlIFdlbGxLbm93blN5bWJvbHNTdG9yZVtuYW1lXSA9IGNyZWF0ZVdlbGxLbm93blN5bWJvbCgnU3ltYm9sLicgKyBuYW1lKTtcbiAgfSByZXR1cm4gV2VsbEtub3duU3ltYm9sc1N0b3JlW25hbWVdO1xufTtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgc2hhcmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZCcpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdWlkJyk7XG52YXIgTkFUSVZFX1NZTUJPTCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9uYXRpdmUtc3ltYm9sJyk7XG52YXIgVVNFX1NZTUJPTF9BU19VSUQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdXNlLXN5bWJvbC1hcy11aWQnKTtcblxudmFyIFdlbGxLbm93blN5bWJvbHNTdG9yZSA9IHNoYXJlZCgnd2tzJyk7XG52YXIgU3ltYm9sID0gZ2xvYmFsLlN5bWJvbDtcbnZhciBjcmVhdGVXZWxsS25vd25TeW1ib2wgPSBVU0VfU1lNQk9MX0FTX1VJRCA/IFN5bWJvbCA6IFN5bWJvbCAmJiBTeW1ib2wud2l0aG91dFNldHRlciB8fCB1aWQ7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgaWYgKCFoYXMoV2VsbEtub3duU3ltYm9sc1N0b3JlLCBuYW1lKSB8fCAhKE5BVElWRV9TWU1CT0wgfHwgdHlwZW9mIFdlbGxLbm93blN5bWJvbHNTdG9yZVtuYW1lXSA9PSAnc3RyaW5nJykpIHtcbiAgICBpZiAoTkFUSVZFX1NZTUJPTCAmJiBoYXMoU3ltYm9sLCBuYW1lKSkge1xuICAgICAgV2VsbEtub3duU3ltYm9sc1N0b3JlW25hbWVdID0gU3ltYm9sW25hbWVdO1xuICAgIH0gZWxzZSB7XG4gICAgICBXZWxsS25vd25TeW1ib2xzU3RvcmVbbmFtZV0gPSBjcmVhdGVXZWxsS25vd25TeW1ib2woJ1N5bWJvbC4nICsgbmFtZSk7XG4gICAgfVxuICB9IHJldHVybiBXZWxsS25vd25TeW1ib2xzU3RvcmVbbmFtZV07XG59O1xuIiwiaW1wb3J0IGtvIGZyb20gJ2tvJztcblxuY2xhc3MgQ29yZUFkbWluU3RvcmUge1xuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLmNvcmVSZWFsID0ga28ub2JzZXJ2YWJsZSh0cnVlKTtcblx0XHR0aGlzLmNvcmVDaGFubmVsID0ga28ub2JzZXJ2YWJsZSgnc3RhYmxlJyk7XG5cdFx0dGhpcy5jb3JlVHlwZSA9IGtvLm9ic2VydmFibGUoJ3N0YWJsZScpO1xuXHRcdHRoaXMuY29yZVVwZGF0YWJsZSA9IGtvLm9ic2VydmFibGUodHJ1ZSk7XG5cdFx0dGhpcy5jb3JlQWNjZXNzID0ga28ub2JzZXJ2YWJsZSh0cnVlKTtcblx0XHR0aGlzLmNvcmVXYXJuaW5nID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cdFx0dGhpcy5jb3JlQ2hlY2tpbmcgPSBrby5vYnNlcnZhYmxlKGZhbHNlKS5leHRlbmQoeyB0aHJvdHRsZTogMTAwIH0pO1xuXHRcdHRoaXMuY29yZVVwZGF0aW5nID0ga28ub2JzZXJ2YWJsZShmYWxzZSkuZXh0ZW5kKHsgdGhyb3R0bGU6IDEwMCB9KTtcblx0XHR0aGlzLmNvcmVWZXJzaW9uID0ga28ub2JzZXJ2YWJsZSgnJyk7XG5cdFx0dGhpcy5jb3JlUmVtb3RlVmVyc2lvbiA9IGtvLm9ic2VydmFibGUoJycpO1xuXHRcdHRoaXMuY29yZVJlbW90ZVJlbGVhc2UgPSBrby5vYnNlcnZhYmxlKCcnKTtcblx0XHR0aGlzLmNvcmVWZXJzaW9uQ29tcGFyZSA9IGtvLm9ic2VydmFibGUoLTIpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IG5ldyBDb3JlQWRtaW5TdG9yZSgpO1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoIWlzT2JqZWN0KGl0KSkge1xuICAgIHRocm93IFR5cGVFcnJvcihTdHJpbmcoaXQpICsgJyBpcyBub3QgYW4gb2JqZWN0Jyk7XG4gIH0gcmV0dXJuIGl0O1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGV4ZWMpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gISFleGVjKCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG4iLCJ2YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG5cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IHt9Lmhhc093blByb3BlcnR5O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGhhc093bihpdCwga2V5KSB7XG4gIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKHRvT2JqZWN0KGl0KSwga2V5KTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBleGVjID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZ2V4cC1leGVjJyk7XG5cbi8vIGBSZWdFeHAucHJvdG90eXBlLmV4ZWNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1yZWdleHAucHJvdG90eXBlLmV4ZWNcbiQoeyB0YXJnZXQ6ICdSZWdFeHAnLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiAvLi8uZXhlYyAhPT0gZXhlYyB9LCB7XG4gIGV4ZWM6IGV4ZWNcbn0pO1xuIiwidmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xudmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvcicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IERFU0NSSVBUT1JTID8gZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICByZXR1cm4gZGVmaW5lUHJvcGVydHlNb2R1bGUuZihvYmplY3QsIGtleSwgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDEsIHZhbHVlKSk7XG59IDogZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICByZXR1cm4gb2JqZWN0O1xufTtcbiIsInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKS5mO1xuXG52YXIgRnVuY3Rpb25Qcm90b3R5cGUgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG52YXIgRnVuY3Rpb25Qcm90b3R5cGVUb1N0cmluZyA9IEZ1bmN0aW9uUHJvdG90eXBlLnRvU3RyaW5nO1xudmFyIG5hbWVSRSA9IC9eXFxzKmZ1bmN0aW9uIChbXiAoXSopLztcbnZhciBOQU1FID0gJ25hbWUnO1xuXG4vLyBGdW5jdGlvbiBpbnN0YW5jZXMgYC5uYW1lYCBwcm9wZXJ0eVxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1mdW5jdGlvbi1pbnN0YW5jZXMtbmFtZVxuaWYgKERFU0NSSVBUT1JTICYmICEoTkFNRSBpbiBGdW5jdGlvblByb3RvdHlwZSkpIHtcbiAgZGVmaW5lUHJvcGVydHkoRnVuY3Rpb25Qcm90b3R5cGUsIE5BTUUsIHtcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gRnVuY3Rpb25Qcm90b3R5cGVUb1N0cmluZy5jYWxsKHRoaXMpLm1hdGNoKG5hbWVSRSlbMV07XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0eXBlb2YgaXQgPT09ICdvYmplY3QnID8gaXQgIT09IG51bGwgOiB0eXBlb2YgaXQgPT09ICdmdW5jdGlvbic7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHR5cGVvZiBpdCA9PT0gJ29iamVjdCcgPyBpdCAhPT0gbnVsbCA6IHR5cGVvZiBpdCA9PT0gJ2Z1bmN0aW9uJztcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHt9O1xuIiwidmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xudmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvcicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IERFU0NSSVBUT1JTID8gZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICByZXR1cm4gZGVmaW5lUHJvcGVydHlNb2R1bGUuZihvYmplY3QsIGtleSwgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDEsIHZhbHVlKSk7XG59IDogZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICByZXR1cm4gb2JqZWN0O1xufTtcbiIsInZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG4vLyBEZXRlY3QgSUU4J3MgaW5jb21wbGV0ZSBkZWZpbmVQcm9wZXJ0eSBpbXBsZW1lbnRhdGlvblxubW9kdWxlLmV4cG9ydHMgPSAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAxLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KVsxXSAhPSA3O1xufSk7XG4iLCJ2YXIgaGFzT3duUHJvcGVydHkgPSB7fS5oYXNPd25Qcm9wZXJ0eTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIGtleSkge1xuICByZXR1cm4gaGFzT3duUHJvcGVydHkuY2FsbChpdCwga2V5KTtcbn07XG4iLCJ2YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxuLy8gRGV0ZWN0IElFOCdzIGluY29tcGxldGUgZGVmaW5lUHJvcGVydHkgaW1wbGVtZW50YXRpb25cbm1vZHVsZS5leHBvcnRzID0gIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAxLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KVsxXSAhPSA3O1xufSk7XG4iLCIvLyBgUmVxdWlyZU9iamVjdENvZXJjaWJsZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXJlcXVpcmVvYmplY3Rjb2VyY2libGVcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmIChpdCA9PSB1bmRlZmluZWQpIHRocm93IFR5cGVFcnJvcihcIkNhbid0IGNhbGwgbWV0aG9kIG9uIFwiICsgaXQpO1xuICByZXR1cm4gaXQ7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy1wdXJlL3N0YWJsZS9zZXQtaW50ZXJ2YWxcIik7IiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoIWlzT2JqZWN0KGl0KSkge1xuICAgIHRocm93IFR5cGVFcnJvcihTdHJpbmcoaXQpICsgJyBpcyBub3QgYW4gb2JqZWN0Jyk7XG4gIH0gcmV0dXJuIGl0O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmaXhSZWdFeHBXZWxsS25vd25TeW1ib2xMb2dpYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9maXgtcmVnZXhwLXdlbGwta25vd24tc3ltYm9sLWxvZ2ljJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG52YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXInKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xudmFyIGFkdmFuY2VTdHJpbmdJbmRleCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hZHZhbmNlLXN0cmluZy1pbmRleCcpO1xudmFyIGdldFN1YnN0aXR1dGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtc3Vic3RpdHV0aW9uJyk7XG52YXIgcmVnRXhwRXhlYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZXhlYy1hYnN0cmFjdCcpO1xuXG52YXIgbWF4ID0gTWF0aC5tYXg7XG52YXIgbWluID0gTWF0aC5taW47XG5cbnZhciBtYXliZVRvU3RyaW5nID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpdCA9PT0gdW5kZWZpbmVkID8gaXQgOiBTdHJpbmcoaXQpO1xufTtcblxuLy8gQEByZXBsYWNlIGxvZ2ljXG5maXhSZWdFeHBXZWxsS25vd25TeW1ib2xMb2dpYygncmVwbGFjZScsIDIsIGZ1bmN0aW9uIChSRVBMQUNFLCBuYXRpdmVSZXBsYWNlLCBtYXliZUNhbGxOYXRpdmUsIHJlYXNvbikge1xuICB2YXIgUkVHRVhQX1JFUExBQ0VfU1VCU1RJVFVURVNfVU5ERUZJTkVEX0NBUFRVUkUgPSByZWFzb24uUkVHRVhQX1JFUExBQ0VfU1VCU1RJVFVURVNfVU5ERUZJTkVEX0NBUFRVUkU7XG4gIHZhciBSRVBMQUNFX0tFRVBTXyQwID0gcmVhc29uLlJFUExBQ0VfS0VFUFNfJDA7XG4gIHZhciBVTlNBRkVfU1VCU1RJVFVURSA9IFJFR0VYUF9SRVBMQUNFX1NVQlNUSVRVVEVTX1VOREVGSU5FRF9DQVBUVVJFID8gJyQnIDogJyQwJztcblxuICByZXR1cm4gW1xuICAgIC8vIGBTdHJpbmcucHJvdG90eXBlLnJlcGxhY2VgIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlXG4gICAgZnVuY3Rpb24gcmVwbGFjZShzZWFyY2hWYWx1ZSwgcmVwbGFjZVZhbHVlKSB7XG4gICAgICB2YXIgTyA9IHJlcXVpcmVPYmplY3RDb2VyY2libGUodGhpcyk7XG4gICAgICB2YXIgcmVwbGFjZXIgPSBzZWFyY2hWYWx1ZSA9PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBzZWFyY2hWYWx1ZVtSRVBMQUNFXTtcbiAgICAgIHJldHVybiByZXBsYWNlciAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gcmVwbGFjZXIuY2FsbChzZWFyY2hWYWx1ZSwgTywgcmVwbGFjZVZhbHVlKVxuICAgICAgICA6IG5hdGl2ZVJlcGxhY2UuY2FsbChTdHJpbmcoTyksIHNlYXJjaFZhbHVlLCByZXBsYWNlVmFsdWUpO1xuICAgIH0sXG4gICAgLy8gYFJlZ0V4cC5wcm90b3R5cGVbQEByZXBsYWNlXWAgbWV0aG9kXG4gICAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1yZWdleHAucHJvdG90eXBlLUBAcmVwbGFjZVxuICAgIGZ1bmN0aW9uIChyZWdleHAsIHJlcGxhY2VWYWx1ZSkge1xuICAgICAgaWYgKFxuICAgICAgICAoIVJFR0VYUF9SRVBMQUNFX1NVQlNUSVRVVEVTX1VOREVGSU5FRF9DQVBUVVJFICYmIFJFUExBQ0VfS0VFUFNfJDApIHx8XG4gICAgICAgICh0eXBlb2YgcmVwbGFjZVZhbHVlID09PSAnc3RyaW5nJyAmJiByZXBsYWNlVmFsdWUuaW5kZXhPZihVTlNBRkVfU1VCU1RJVFVURSkgPT09IC0xKVxuICAgICAgKSB7XG4gICAgICAgIHZhciByZXMgPSBtYXliZUNhbGxOYXRpdmUobmF0aXZlUmVwbGFjZSwgcmVnZXhwLCB0aGlzLCByZXBsYWNlVmFsdWUpO1xuICAgICAgICBpZiAocmVzLmRvbmUpIHJldHVybiByZXMudmFsdWU7XG4gICAgICB9XG5cbiAgICAgIHZhciByeCA9IGFuT2JqZWN0KHJlZ2V4cCk7XG4gICAgICB2YXIgUyA9IFN0cmluZyh0aGlzKTtcblxuICAgICAgdmFyIGZ1bmN0aW9uYWxSZXBsYWNlID0gdHlwZW9mIHJlcGxhY2VWYWx1ZSA9PT0gJ2Z1bmN0aW9uJztcbiAgICAgIGlmICghZnVuY3Rpb25hbFJlcGxhY2UpIHJlcGxhY2VWYWx1ZSA9IFN0cmluZyhyZXBsYWNlVmFsdWUpO1xuXG4gICAgICB2YXIgZ2xvYmFsID0gcnguZ2xvYmFsO1xuICAgICAgaWYgKGdsb2JhbCkge1xuICAgICAgICB2YXIgZnVsbFVuaWNvZGUgPSByeC51bmljb2RlO1xuICAgICAgICByeC5sYXN0SW5kZXggPSAwO1xuICAgICAgfVxuICAgICAgdmFyIHJlc3VsdHMgPSBbXTtcbiAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSByZWdFeHBFeGVjKHJ4LCBTKTtcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gbnVsbCkgYnJlYWs7XG5cbiAgICAgICAgcmVzdWx0cy5wdXNoKHJlc3VsdCk7XG4gICAgICAgIGlmICghZ2xvYmFsKSBicmVhaztcblxuICAgICAgICB2YXIgbWF0Y2hTdHIgPSBTdHJpbmcocmVzdWx0WzBdKTtcbiAgICAgICAgaWYgKG1hdGNoU3RyID09PSAnJykgcngubGFzdEluZGV4ID0gYWR2YW5jZVN0cmluZ0luZGV4KFMsIHRvTGVuZ3RoKHJ4Lmxhc3RJbmRleCksIGZ1bGxVbmljb2RlKTtcbiAgICAgIH1cblxuICAgICAgdmFyIGFjY3VtdWxhdGVkUmVzdWx0ID0gJyc7XG4gICAgICB2YXIgbmV4dFNvdXJjZVBvc2l0aW9uID0gMDtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICByZXN1bHQgPSByZXN1bHRzW2ldO1xuXG4gICAgICAgIHZhciBtYXRjaGVkID0gU3RyaW5nKHJlc3VsdFswXSk7XG4gICAgICAgIHZhciBwb3NpdGlvbiA9IG1heChtaW4odG9JbnRlZ2VyKHJlc3VsdC5pbmRleCksIFMubGVuZ3RoKSwgMCk7XG4gICAgICAgIHZhciBjYXB0dXJlcyA9IFtdO1xuICAgICAgICAvLyBOT1RFOiBUaGlzIGlzIGVxdWl2YWxlbnQgdG9cbiAgICAgICAgLy8gICBjYXB0dXJlcyA9IHJlc3VsdC5zbGljZSgxKS5tYXAobWF5YmVUb1N0cmluZylcbiAgICAgICAgLy8gYnV0IGZvciBzb21lIHJlYXNvbiBgbmF0aXZlU2xpY2UuY2FsbChyZXN1bHQsIDEsIHJlc3VsdC5sZW5ndGgpYCAoY2FsbGVkIGluXG4gICAgICAgIC8vIHRoZSBzbGljZSBwb2x5ZmlsbCB3aGVuIHNsaWNpbmcgbmF0aXZlIGFycmF5cykgXCJkb2Vzbid0IHdvcmtcIiBpbiBzYWZhcmkgOSBhbmRcbiAgICAgICAgLy8gY2F1c2VzIGEgY3Jhc2ggKGh0dHBzOi8vcGFzdGViaW4uY29tL04yMVF6ZVFBKSB3aGVuIHRyeWluZyB0byBkZWJ1ZyBpdC5cbiAgICAgICAgZm9yICh2YXIgaiA9IDE7IGogPCByZXN1bHQubGVuZ3RoOyBqKyspIGNhcHR1cmVzLnB1c2gobWF5YmVUb1N0cmluZyhyZXN1bHRbal0pKTtcbiAgICAgICAgdmFyIG5hbWVkQ2FwdHVyZXMgPSByZXN1bHQuZ3JvdXBzO1xuICAgICAgICBpZiAoZnVuY3Rpb25hbFJlcGxhY2UpIHtcbiAgICAgICAgICB2YXIgcmVwbGFjZXJBcmdzID0gW21hdGNoZWRdLmNvbmNhdChjYXB0dXJlcywgcG9zaXRpb24sIFMpO1xuICAgICAgICAgIGlmIChuYW1lZENhcHR1cmVzICE9PSB1bmRlZmluZWQpIHJlcGxhY2VyQXJncy5wdXNoKG5hbWVkQ2FwdHVyZXMpO1xuICAgICAgICAgIHZhciByZXBsYWNlbWVudCA9IFN0cmluZyhyZXBsYWNlVmFsdWUuYXBwbHkodW5kZWZpbmVkLCByZXBsYWNlckFyZ3MpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXBsYWNlbWVudCA9IGdldFN1YnN0aXR1dGlvbihtYXRjaGVkLCBTLCBwb3NpdGlvbiwgY2FwdHVyZXMsIG5hbWVkQ2FwdHVyZXMsIHJlcGxhY2VWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBvc2l0aW9uID49IG5leHRTb3VyY2VQb3NpdGlvbikge1xuICAgICAgICAgIGFjY3VtdWxhdGVkUmVzdWx0ICs9IFMuc2xpY2UobmV4dFNvdXJjZVBvc2l0aW9uLCBwb3NpdGlvbikgKyByZXBsYWNlbWVudDtcbiAgICAgICAgICBuZXh0U291cmNlUG9zaXRpb24gPSBwb3NpdGlvbiArIG1hdGNoZWQubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjdW11bGF0ZWRSZXN1bHQgKyBTLnNsaWNlKG5leHRTb3VyY2VQb3NpdGlvbik7XG4gICAgfVxuICBdO1xufSk7XG4iLCJpbXBvcnQgd2luZG93IGZyb20gJ3dpbmRvdyc7XG5pbXBvcnQgXyBmcm9tICdfJztcbmltcG9ydCAkIGZyb20gJyQnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgaTE4biB9IGZyb20gJ0NvbW1vbi9UcmFuc2xhdG9yJztcblxubGV0IF9tb21lbnQgPSBudWxsO1xubGV0IF9tb21lbnROb3cgPSAwO1xuXG5jb25zdCB1cGRhdGVNb21lbnROb3cgPSBfLmRlYm91bmNlKFxuXHQoKSA9PiB7XG5cdFx0X21vbWVudCA9IG1vbWVudCgpO1xuXHR9LFxuXHQ1MDAsXG5cdHRydWVcbik7XG5cbmNvbnN0IHVwZGF0ZU1vbWVudE5vd1VuaXggPSBfLmRlYm91bmNlKFxuXHQoKSA9PiB7XG5cdFx0X21vbWVudE5vdyA9IG1vbWVudCgpLnVuaXgoKTtcblx0fSxcblx0NTAwLFxuXHR0cnVlXG4pO1xuXG4vKipcbiAqIEByZXR1cm5zIHttb21lbnR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtb21lbnROb3coKSB7XG5cdHVwZGF0ZU1vbWVudE5vdygpO1xuXHRyZXR1cm4gX21vbWVudCB8fCBtb21lbnQoKTtcbn1cblxuLyoqXG4gKiBAcmV0dXJucyB7bnVtYmVyfVxuICovXG5leHBvcnQgZnVuY3Rpb24gbW9tZW50Tm93VW5peCgpIHtcblx0dXBkYXRlTW9tZW50Tm93VW5peCgpO1xuXHRyZXR1cm4gX21vbWVudE5vdyB8fCAwO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7bnVtYmVyfSBkYXRlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VhcmNoU3VidHJhY3RGb3JtYXREYXRlSGVscGVyKGRhdGUpIHtcblx0cmV0dXJuIG1vbWVudE5vdygpXG5cdFx0LmNsb25lKClcblx0XHQuc3VidHJhY3QoZGF0ZSwgJ2RheXMnKVxuXHRcdC5mb3JtYXQoJ1lZWVkuTU0uREQnKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge09iamVjdH0gbVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gZm9ybWF0Q3VzdG9tU2hvcnREYXRlKG0pIHtcblx0Y29uc3Qgbm93ID0gbW9tZW50Tm93KCk7XG5cdGlmIChtICYmIG5vdykge1xuXHRcdHN3aXRjaCAodHJ1ZSkge1xuXHRcdFx0Y2FzZSA0ID49IG5vdy5kaWZmKG0sICdob3VycycpOlxuXHRcdFx0XHRyZXR1cm4gbS5mcm9tTm93KCk7XG5cdFx0XHRjYXNlIG5vdy5mb3JtYXQoJ0wnKSA9PT0gbS5mb3JtYXQoJ0wnKTpcblx0XHRcdFx0cmV0dXJuIGkxOG4oJ01FU1NBR0VfTElTVC9UT0RBWV9BVCcsIHtcblx0XHRcdFx0XHRUSU1FOiBtLmZvcm1hdCgnTFQnKVxuXHRcdFx0XHR9KTtcblx0XHRcdGNhc2Ugbm93XG5cdFx0XHRcdC5jbG9uZSgpXG5cdFx0XHRcdC5zdWJ0cmFjdCgxLCAnZGF5cycpXG5cdFx0XHRcdC5mb3JtYXQoJ0wnKSA9PT0gbS5mb3JtYXQoJ0wnKTpcblx0XHRcdFx0cmV0dXJuIGkxOG4oJ01FU1NBR0VfTElTVC9ZRVNURVJEQVlfQVQnLCB7XG5cdFx0XHRcdFx0VElNRTogbS5mb3JtYXQoJ0xUJylcblx0XHRcdFx0fSk7XG5cdFx0XHRjYXNlIG5vdy55ZWFyKCkgPT09IG0ueWVhcigpOlxuXHRcdFx0XHRyZXR1cm4gbS5mb3JtYXQoJ0QgTU1NLicpO1xuXHRcdFx0Ly8gbm8gZGVmYXVsdFxuXHRcdH1cblx0fVxuXG5cdHJldHVybiBtID8gbS5mb3JtYXQoJ0xMJykgOiAnJztcbn1cblxuLyoqXG4gKiBAcGFyYW0ge251bWJlcn0gdGltZVN0YW1wSW5VVENcbiAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtYXRTdHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXQodGltZVN0YW1wSW5VVEMsIGZvcm1hdFN0cikge1xuXHRsZXQgbSA9IG51bGwsXG5cdFx0cmVzdWx0ID0gJyc7XG5cblx0Y29uc3Qgbm93ID0gbW9tZW50Tm93VW5peCgpO1xuXG5cdHRpbWVTdGFtcEluVVRDID0gMCA8IHRpbWVTdGFtcEluVVRDID8gdGltZVN0YW1wSW5VVEMgOiAwID09PSB0aW1lU3RhbXBJblVUQyA/IG5vdyA6IDA7XG5cdHRpbWVTdGFtcEluVVRDID0gbm93IDwgdGltZVN0YW1wSW5VVEMgPyBub3cgOiB0aW1lU3RhbXBJblVUQztcblxuXHRtID0gMCA8IHRpbWVTdGFtcEluVVRDID8gbW9tZW50LnVuaXgodGltZVN0YW1wSW5VVEMpIDogbnVsbDtcblxuXHRpZiAobSAmJiAxOTcwID09PSBtLnllYXIoKSkge1xuXHRcdG0gPSBudWxsO1xuXHR9XG5cblx0aWYgKG0pIHtcblx0XHRzd2l0Y2ggKGZvcm1hdFN0cikge1xuXHRcdFx0Y2FzZSAnRlJPTU5PVyc6XG5cdFx0XHRcdHJlc3VsdCA9IG0uZnJvbU5vdygpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgJ1NIT1JUJzpcblx0XHRcdFx0cmVzdWx0ID0gZm9ybWF0Q3VzdG9tU2hvcnREYXRlKG0pO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgJ0ZVTEwnOlxuXHRcdFx0XHRyZXN1bHQgPSBtLmZvcm1hdCgnTExMJyk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0cmVzdWx0ID0gbS5mb3JtYXQoZm9ybWF0U3RyKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge09iamVjdH0gZWxlbWVudFxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtb21lbnRUb05vZGUoZWxlbWVudCkge1xuXHRsZXQga2V5ID0gJycsXG5cdFx0dGltZSA9IDA7XG5cdGNvbnN0ICRlbCA9ICQoZWxlbWVudCk7XG5cblx0dGltZSA9ICRlbC5kYXRhKCdtb21lbnQtdGltZScpO1xuXHRpZiAodGltZSkge1xuXHRcdGtleSA9ICRlbC5kYXRhKCdtb21lbnQtZm9ybWF0Jyk7XG5cdFx0aWYgKGtleSkge1xuXHRcdFx0JGVsLnRleHQoZm9ybWF0KHRpbWUsIGtleSkpO1xuXHRcdH1cblxuXHRcdGtleSA9ICRlbC5kYXRhKCdtb21lbnQtZm9ybWF0LXRpdGxlJyk7XG5cdFx0aWYgKGtleSkge1xuXHRcdFx0JGVsLmF0dHIoJ3RpdGxlJywgZm9ybWF0KHRpbWUsIGtleSkpO1xuXHRcdH1cblx0fVxufVxuXG4vKipcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVsb2FkKCkge1xuXHRfLmRlZmVyKCgpID0+IHtcblx0XHQkKCcubW9tZW50Jywgd2luZG93LmRvY3VtZW50KS5lYWNoKChpbmRleCwgaXRlbSkgPT4ge1xuXHRcdFx0bW9tZW50VG9Ob2RlKGl0ZW0pO1xuXHRcdH0pO1xuXHR9KTtcbn1cbiIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMtcHVyZS9zdGFibGUvcHJvbWlzZVwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHdpbmRvdy5oYXNoZXI7IiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcicpLmY7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZGVmaW5lJyk7XG52YXIgc2V0R2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NldC1nbG9iYWwnKTtcbnZhciBjb3B5Q29uc3RydWN0b3JQcm9wZXJ0aWVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NvcHktY29uc3RydWN0b3ItcHJvcGVydGllcycpO1xudmFyIGlzRm9yY2VkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWZvcmNlZCcpO1xuXG4vKlxuICBvcHRpb25zLnRhcmdldCAgICAgIC0gbmFtZSBvZiB0aGUgdGFyZ2V0IG9iamVjdFxuICBvcHRpb25zLmdsb2JhbCAgICAgIC0gdGFyZ2V0IGlzIHRoZSBnbG9iYWwgb2JqZWN0XG4gIG9wdGlvbnMuc3RhdCAgICAgICAgLSBleHBvcnQgYXMgc3RhdGljIG1ldGhvZHMgb2YgdGFyZ2V0XG4gIG9wdGlvbnMucHJvdG8gICAgICAgLSBleHBvcnQgYXMgcHJvdG90eXBlIG1ldGhvZHMgb2YgdGFyZ2V0XG4gIG9wdGlvbnMucmVhbCAgICAgICAgLSByZWFsIHByb3RvdHlwZSBtZXRob2QgZm9yIHRoZSBgcHVyZWAgdmVyc2lvblxuICBvcHRpb25zLmZvcmNlZCAgICAgIC0gZXhwb3J0IGV2ZW4gaWYgdGhlIG5hdGl2ZSBmZWF0dXJlIGlzIGF2YWlsYWJsZVxuICBvcHRpb25zLmJpbmQgICAgICAgIC0gYmluZCBtZXRob2RzIHRvIHRoZSB0YXJnZXQsIHJlcXVpcmVkIGZvciB0aGUgYHB1cmVgIHZlcnNpb25cbiAgb3B0aW9ucy53cmFwICAgICAgICAtIHdyYXAgY29uc3RydWN0b3JzIHRvIHByZXZlbnRpbmcgZ2xvYmFsIHBvbGx1dGlvbiwgcmVxdWlyZWQgZm9yIHRoZSBgcHVyZWAgdmVyc2lvblxuICBvcHRpb25zLnVuc2FmZSAgICAgIC0gdXNlIHRoZSBzaW1wbGUgYXNzaWdubWVudCBvZiBwcm9wZXJ0eSBpbnN0ZWFkIG9mIGRlbGV0ZSArIGRlZmluZVByb3BlcnR5XG4gIG9wdGlvbnMuc2hhbSAgICAgICAgLSBhZGQgYSBmbGFnIHRvIG5vdCBjb21wbGV0ZWx5IGZ1bGwgcG9seWZpbGxzXG4gIG9wdGlvbnMuZW51bWVyYWJsZSAgLSBleHBvcnQgYXMgZW51bWVyYWJsZSBwcm9wZXJ0eVxuICBvcHRpb25zLm5vVGFyZ2V0R2V0IC0gcHJldmVudCBjYWxsaW5nIGEgZ2V0dGVyIG9uIHRhcmdldFxuKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9wdGlvbnMsIHNvdXJjZSkge1xuICB2YXIgVEFSR0VUID0gb3B0aW9ucy50YXJnZXQ7XG4gIHZhciBHTE9CQUwgPSBvcHRpb25zLmdsb2JhbDtcbiAgdmFyIFNUQVRJQyA9IG9wdGlvbnMuc3RhdDtcbiAgdmFyIEZPUkNFRCwgdGFyZ2V0LCBrZXksIHRhcmdldFByb3BlcnR5LCBzb3VyY2VQcm9wZXJ0eSwgZGVzY3JpcHRvcjtcbiAgaWYgKEdMT0JBTCkge1xuICAgIHRhcmdldCA9IGdsb2JhbDtcbiAgfSBlbHNlIGlmIChTVEFUSUMpIHtcbiAgICB0YXJnZXQgPSBnbG9iYWxbVEFSR0VUXSB8fCBzZXRHbG9iYWwoVEFSR0VULCB7fSk7XG4gIH0gZWxzZSB7XG4gICAgdGFyZ2V0ID0gKGdsb2JhbFtUQVJHRVRdIHx8IHt9KS5wcm90b3R5cGU7XG4gIH1cbiAgaWYgKHRhcmdldCkgZm9yIChrZXkgaW4gc291cmNlKSB7XG4gICAgc291cmNlUHJvcGVydHkgPSBzb3VyY2Vba2V5XTtcbiAgICBpZiAob3B0aW9ucy5ub1RhcmdldEdldCkge1xuICAgICAgZGVzY3JpcHRvciA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSk7XG4gICAgICB0YXJnZXRQcm9wZXJ0eSA9IGRlc2NyaXB0b3IgJiYgZGVzY3JpcHRvci52YWx1ZTtcbiAgICB9IGVsc2UgdGFyZ2V0UHJvcGVydHkgPSB0YXJnZXRba2V5XTtcbiAgICBGT1JDRUQgPSBpc0ZvcmNlZChHTE9CQUwgPyBrZXkgOiBUQVJHRVQgKyAoU1RBVElDID8gJy4nIDogJyMnKSArIGtleSwgb3B0aW9ucy5mb3JjZWQpO1xuICAgIC8vIGNvbnRhaW5lZCBpbiB0YXJnZXRcbiAgICBpZiAoIUZPUkNFRCAmJiB0YXJnZXRQcm9wZXJ0eSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodHlwZW9mIHNvdXJjZVByb3BlcnR5ID09PSB0eXBlb2YgdGFyZ2V0UHJvcGVydHkpIGNvbnRpbnVlO1xuICAgICAgY29weUNvbnN0cnVjdG9yUHJvcGVydGllcyhzb3VyY2VQcm9wZXJ0eSwgdGFyZ2V0UHJvcGVydHkpO1xuICAgIH1cbiAgICAvLyBhZGQgYSBmbGFnIHRvIG5vdCBjb21wbGV0ZWx5IGZ1bGwgcG9seWZpbGxzXG4gICAgaWYgKG9wdGlvbnMuc2hhbSB8fCAodGFyZ2V0UHJvcGVydHkgJiYgdGFyZ2V0UHJvcGVydHkuc2hhbSkpIHtcbiAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShzb3VyY2VQcm9wZXJ0eSwgJ3NoYW0nLCB0cnVlKTtcbiAgICB9XG4gICAgLy8gZXh0ZW5kIGdsb2JhbFxuICAgIHJlZGVmaW5lKHRhcmdldCwga2V5LCBzb3VyY2VQcm9wZXJ0eSwgb3B0aW9ucyk7XG4gIH1cbn07XG4iLCJ2YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBJRThfRE9NX0RFRklORSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pZTgtZG9tLWRlZmluZScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXByaW1pdGl2ZScpO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHNhZmVcbnZhciAkZGVmaW5lUHJvcGVydHkgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG5cbi8vIGBPYmplY3QuZGVmaW5lUHJvcGVydHlgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZGVmaW5lcHJvcGVydHlcbmV4cG9ydHMuZiA9IERFU0NSSVBUT1JTID8gJGRlZmluZVByb3BlcnR5IDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcykge1xuICBhbk9iamVjdChPKTtcbiAgUCA9IHRvUHJpbWl0aXZlKFAsIHRydWUpO1xuICBhbk9iamVjdChBdHRyaWJ1dGVzKTtcbiAgaWYgKElFOF9ET01fREVGSU5FKSB0cnkge1xuICAgIHJldHVybiAkZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKCdnZXQnIGluIEF0dHJpYnV0ZXMgfHwgJ3NldCcgaW4gQXR0cmlidXRlcykgdGhyb3cgVHlwZUVycm9yKCdBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCcpO1xuICBpZiAoJ3ZhbHVlJyBpbiBBdHRyaWJ1dGVzKSBPW1BdID0gQXR0cmlidXRlcy52YWx1ZTtcbiAgcmV0dXJuIE87XG59O1xuIiwiLyoqXG4gKiBAcmV0dXJucyB7QXBwQWRtaW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBcHAoKSB7XG5cdHJldHVybiByZXF1aXJlKCdBcHAvQWRtaW4nKS5kZWZhdWx0O1xufVxuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcycpO1xudmFyIHNldEdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtZ2xvYmFsJyk7XG52YXIgaW5zcGVjdFNvdXJjZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnNwZWN0LXNvdXJjZScpO1xudmFyIEludGVybmFsU3RhdGVNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUnKTtcblxudmFyIGdldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLmdldDtcbnZhciBlbmZvcmNlSW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZW5mb3JjZTtcbnZhciBURU1QTEFURSA9IFN0cmluZyhTdHJpbmcpLnNwbGl0KCdTdHJpbmcnKTtcblxuKG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE8sIGtleSwgdmFsdWUsIG9wdGlvbnMpIHtcbiAgdmFyIHVuc2FmZSA9IG9wdGlvbnMgPyAhIW9wdGlvbnMudW5zYWZlIDogZmFsc2U7XG4gIHZhciBzaW1wbGUgPSBvcHRpb25zID8gISFvcHRpb25zLmVudW1lcmFibGUgOiBmYWxzZTtcbiAgdmFyIG5vVGFyZ2V0R2V0ID0gb3B0aW9ucyA/ICEhb3B0aW9ucy5ub1RhcmdldEdldCA6IGZhbHNlO1xuICB2YXIgc3RhdGU7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ2Z1bmN0aW9uJykge1xuICAgIGlmICh0eXBlb2Yga2V5ID09ICdzdHJpbmcnICYmICFoYXModmFsdWUsICduYW1lJykpIHtcbiAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSh2YWx1ZSwgJ25hbWUnLCBrZXkpO1xuICAgIH1cbiAgICBzdGF0ZSA9IGVuZm9yY2VJbnRlcm5hbFN0YXRlKHZhbHVlKTtcbiAgICBpZiAoIXN0YXRlLnNvdXJjZSkge1xuICAgICAgc3RhdGUuc291cmNlID0gVEVNUExBVEUuam9pbih0eXBlb2Yga2V5ID09ICdzdHJpbmcnID8ga2V5IDogJycpO1xuICAgIH1cbiAgfVxuICBpZiAoTyA9PT0gZ2xvYmFsKSB7XG4gICAgaWYgKHNpbXBsZSkgT1trZXldID0gdmFsdWU7XG4gICAgZWxzZSBzZXRHbG9iYWwoa2V5LCB2YWx1ZSk7XG4gICAgcmV0dXJuO1xuICB9IGVsc2UgaWYgKCF1bnNhZmUpIHtcbiAgICBkZWxldGUgT1trZXldO1xuICB9IGVsc2UgaWYgKCFub1RhcmdldEdldCAmJiBPW2tleV0pIHtcbiAgICBzaW1wbGUgPSB0cnVlO1xuICB9XG4gIGlmIChzaW1wbGUpIE9ba2V5XSA9IHZhbHVlO1xuICBlbHNlIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShPLCBrZXksIHZhbHVlKTtcbi8vIGFkZCBmYWtlIEZ1bmN0aW9uI3RvU3RyaW5nIGZvciBjb3JyZWN0IHdvcmsgd3JhcHBlZCBtZXRob2RzIC8gY29uc3RydWN0b3JzIHdpdGggbWV0aG9kcyBsaWtlIExvRGFzaCBpc05hdGl2ZVxufSkoRnVuY3Rpb24ucHJvdG90eXBlLCAndG9TdHJpbmcnLCBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgcmV0dXJuIHR5cGVvZiB0aGlzID09ICdmdW5jdGlvbicgJiYgZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKS5zb3VyY2UgfHwgaW5zcGVjdFNvdXJjZSh0aGlzKTtcbn0pO1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKHR5cGVvZiBpdCAhPSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKFN0cmluZyhpdCkgKyAnIGlzIG5vdCBhIGZ1bmN0aW9uJyk7XG4gIH0gcmV0dXJuIGl0O1xufTtcbiIsInZhciBwYXRoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3BhdGgnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoQ09OU1RSVUNUT1IpIHtcbiAgcmV0dXJuIHBhdGhbQ09OU1RSVUNUT1IgKyAnUHJvdG90eXBlJ107XG59O1xuIiwiaW1wb3J0IGtvIGZyb20gJ2tvJztcbmltcG9ydCB7IGlzQXJyYXkgfSBmcm9tICdDb21tb24vVXRpbHMnO1xuaW1wb3J0ICogYXMgU2V0dGluZ3MgZnJvbSAnU3RvcmFnZS9TZXR0aW5ncyc7XG5cbmNsYXNzIExhbmd1YWdlU3RvcmUge1xuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLmxhbmd1YWdlcyA9IGtvLm9ic2VydmFibGVBcnJheShbXSk7XG5cdFx0dGhpcy5sYW5ndWFnZXNBZG1pbiA9IGtvLm9ic2VydmFibGVBcnJheShbXSk7XG5cblx0XHR0aGlzLmxhbmd1YWdlID0ga29cblx0XHRcdC5vYnNlcnZhYmxlKCcnKVxuXHRcdFx0LmV4dGVuZCh7IGxpbWl0ZWRMaXN0OiB0aGlzLmxhbmd1YWdlcyB9KVxuXHRcdFx0LmV4dGVuZCh7IHJldmVyc2libGU6IHRydWUgfSk7XG5cblx0XHR0aGlzLmxhbmd1YWdlQWRtaW4gPSBrb1xuXHRcdFx0Lm9ic2VydmFibGUoJycpXG5cdFx0XHQuZXh0ZW5kKHsgbGltaXRlZExpc3Q6IHRoaXMubGFuZ3VhZ2VzQWRtaW4gfSlcblx0XHRcdC5leHRlbmQoeyByZXZlcnNpYmxlOiB0cnVlIH0pO1xuXG5cdFx0dGhpcy51c2VyTGFuZ3VhZ2UgPSBrby5vYnNlcnZhYmxlKCcnKTtcblx0XHR0aGlzLnVzZXJMYW5ndWFnZUFkbWluID0ga28ub2JzZXJ2YWJsZSgnJyk7XG5cdH1cblxuXHRwb3B1bGF0ZSgpIHtcblx0XHRjb25zdCBhTGFuZ3VhZ2VzID0gU2V0dGluZ3MuYXBwU2V0dGluZ3NHZXQoJ2xhbmd1YWdlcycpLFxuXHRcdFx0YUxhbmd1YWdlc0FkbWluID0gU2V0dGluZ3MuYXBwU2V0dGluZ3NHZXQoJ2xhbmd1YWdlc0FkbWluJyk7XG5cblx0XHR0aGlzLmxhbmd1YWdlcyhpc0FycmF5KGFMYW5ndWFnZXMpID8gYUxhbmd1YWdlcyA6IFtdKTtcblx0XHR0aGlzLmxhbmd1YWdlc0FkbWluKGlzQXJyYXkoYUxhbmd1YWdlc0FkbWluKSA/IGFMYW5ndWFnZXNBZG1pbiA6IFtdKTtcblxuXHRcdHRoaXMubGFuZ3VhZ2UoU2V0dGluZ3Muc2V0dGluZ3NHZXQoJ0xhbmd1YWdlJykpO1xuXHRcdHRoaXMubGFuZ3VhZ2VBZG1pbihTZXR0aW5ncy5zZXR0aW5nc0dldCgnTGFuZ3VhZ2VBZG1pbicpKTtcblxuXHRcdHRoaXMudXNlckxhbmd1YWdlKFNldHRpbmdzLnNldHRpbmdzR2V0KCdVc2VyTGFuZ3VhZ2UnKSk7XG5cdFx0dGhpcy51c2VyTGFuZ3VhZ2VBZG1pbihTZXR0aW5ncy5zZXR0aW5nc0dldCgnVXNlckxhbmd1YWdlQWRtaW4nKSk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbmV3IExhbmd1YWdlU3RvcmUoKTtcbiIsIi8vIHRvT2JqZWN0IHdpdGggZmFsbGJhY2sgZm9yIG5vbi1hcnJheS1saWtlIEVTMyBzdHJpbmdzXG52YXIgSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmRleGVkLW9iamVjdCcpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBJbmRleGVkT2JqZWN0KHJlcXVpcmVPYmplY3RDb2VyY2libGUoaXQpKTtcbn07XG4iLCJ2YXIgdG9TdHJpbmcgPSB7fS50b1N0cmluZztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHRvU3RyaW5nLmNhbGwoaXQpLnNsaWNlKDgsIC0xKTtcbn07XG4iLCJ2YXIgcGF0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9wYXRoJyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xuXG52YXIgYUZ1bmN0aW9uID0gZnVuY3Rpb24gKHZhcmlhYmxlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFyaWFibGUgPT0gJ2Z1bmN0aW9uJyA/IHZhcmlhYmxlIDogdW5kZWZpbmVkO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobmFtZXNwYWNlLCBtZXRob2QpIHtcbiAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPCAyID8gYUZ1bmN0aW9uKHBhdGhbbmFtZXNwYWNlXSkgfHwgYUZ1bmN0aW9uKGdsb2JhbFtuYW1lc3BhY2VdKVxuICAgIDogcGF0aFtuYW1lc3BhY2VdICYmIHBhdGhbbmFtZXNwYWNlXVttZXRob2RdIHx8IGdsb2JhbFtuYW1lc3BhY2VdICYmIGdsb2JhbFtuYW1lc3BhY2VdW21ldGhvZF07XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSB7fTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIEluZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW5kZXhlZC1vYmplY3QnKTtcbnZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciBhcnJheU1ldGhvZElzU3RyaWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LW1ldGhvZC1pcy1zdHJpY3QnKTtcblxudmFyIG5hdGl2ZUpvaW4gPSBbXS5qb2luO1xuXG52YXIgRVMzX1NUUklOR1MgPSBJbmRleGVkT2JqZWN0ICE9IE9iamVjdDtcbnZhciBTVFJJQ1RfTUVUSE9EID0gYXJyYXlNZXRob2RJc1N0cmljdCgnam9pbicsICcsJyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuam9pbmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5qb2luXG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiBFUzNfU1RSSU5HUyB8fCAhU1RSSUNUX01FVEhPRCB9LCB7XG4gIGpvaW46IGZ1bmN0aW9uIGpvaW4oc2VwYXJhdG9yKSB7XG4gICAgcmV0dXJuIG5hdGl2ZUpvaW4uY2FsbCh0b0luZGV4ZWRPYmplY3QodGhpcyksIHNlcGFyYXRvciA9PT0gdW5kZWZpbmVkID8gJywnIDogc2VwYXJhdG9yKTtcbiAgfVxufSk7XG4iLCJpbXBvcnQgd2luZG93IGZyb20gJ3dpbmRvdyc7XG5pbXBvcnQgJCBmcm9tICckJztcbmltcG9ydCBrbyBmcm9tICdrbyc7XG5pbXBvcnQgeyBzZXR0aW5nc0dldCB9IGZyb20gJ1N0b3JhZ2UvU2V0dGluZ3MnO1xuaW1wb3J0IHsgQWJzdHJhY3RBcHBTdG9yZSB9IGZyb20gJ1N0b3Jlcy9BYnN0cmFjdEFwcCc7XG5cbmNsYXNzIEFwcEFkbWluU3RvcmUgZXh0ZW5kcyBBYnN0cmFjdEFwcFN0b3JlIHtcblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblxuXHRcdHRoaXMuZGV0ZXJtaW5lVXNlckxhbmd1YWdlID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cdFx0dGhpcy5kZXRlcm1pbmVVc2VyRG9tYWluID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cblx0XHR0aGlzLndlYWtQYXNzd29yZCA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXHRcdHRoaXMudXNlTG9jYWxQcm94eUZvckV4dGVybmFsSW1hZ2VzID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cblx0XHR0aGlzLmRhdGFGb2xkZXJBY2Nlc3MgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblx0fVxuXG5cdHBvcHVsYXRlKCkge1xuXHRcdHN1cGVyLnBvcHVsYXRlKCk7XG5cblx0XHR0aGlzLmRldGVybWluZVVzZXJMYW5ndWFnZSghIXNldHRpbmdzR2V0KCdEZXRlcm1pbmVVc2VyTGFuZ3VhZ2UnKSk7XG5cdFx0dGhpcy5kZXRlcm1pbmVVc2VyRG9tYWluKCEhc2V0dGluZ3NHZXQoJ0RldGVybWluZVVzZXJEb21haW4nKSk7XG5cblx0XHR0aGlzLndlYWtQYXNzd29yZCghIXNldHRpbmdzR2V0KCdXZWFrUGFzc3dvcmQnKSk7XG5cdFx0dGhpcy51c2VMb2NhbFByb3h5Rm9yRXh0ZXJuYWxJbWFnZXMoISFzZXR0aW5nc0dldCgnVXNlTG9jYWxQcm94eUZvckV4dGVybmFsSW1hZ2VzJykpO1xuXG5cdFx0aWYgKHNldHRpbmdzR2V0KCdBdXRoJykpIHtcblx0XHRcdCQuZ2V0KCcuL2RhdGEvVkVSU0lPTj8nICsgd2luZG93Lk1hdGgucmFuZG9tKCkpLnRoZW4oKCkgPT4gdGhpcy5kYXRhRm9sZGVyQWNjZXNzKHRydWUpKTtcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbmV3IEFwcEFkbWluU3RvcmUoKTtcbiIsInZhciBwYXRoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3BhdGgnKTtcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG5cbnZhciBhRnVuY3Rpb24gPSBmdW5jdGlvbiAodmFyaWFibGUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YXJpYWJsZSA9PSAnZnVuY3Rpb24nID8gdmFyaWFibGUgOiB1bmRlZmluZWQ7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lc3BhY2UsIG1ldGhvZCkge1xuICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA8IDIgPyBhRnVuY3Rpb24ocGF0aFtuYW1lc3BhY2VdKSB8fCBhRnVuY3Rpb24oZ2xvYmFsW25hbWVzcGFjZV0pXG4gICAgOiBwYXRoW25hbWVzcGFjZV0gJiYgcGF0aFtuYW1lc3BhY2VdW21ldGhvZF0gfHwgZ2xvYmFsW25hbWVzcGFjZV0gJiYgZ2xvYmFsW25hbWVzcGFjZV1bbWV0aG9kXTtcbn07XG4iLCJ2YXIgY2VpbCA9IE1hdGguY2VpbDtcbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG5cbi8vIGBUb0ludGVnZXJgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10b2ludGVnZXJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHJldHVybiBpc05hTihhcmd1bWVudCA9ICthcmd1bWVudCkgPyAwIDogKGFyZ3VtZW50ID4gMCA/IGZsb29yIDogY2VpbCkoYXJndW1lbnQpO1xufTtcbiIsIi8vIHRvT2JqZWN0IHdpdGggZmFsbGJhY2sgZm9yIG5vbi1hcnJheS1saWtlIEVTMyBzdHJpbmdzXG52YXIgSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmRleGVkLW9iamVjdCcpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBJbmRleGVkT2JqZWN0KHJlcXVpcmVPYmplY3RDb2VyY2libGUoaXQpKTtcbn07XG4iLCJ2YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBJRThfRE9NX0RFRklORSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pZTgtZG9tLWRlZmluZScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXByaW1pdGl2ZScpO1xuXG52YXIgbmF0aXZlRGVmaW5lUHJvcGVydHkgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG5cbi8vIGBPYmplY3QuZGVmaW5lUHJvcGVydHlgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZGVmaW5lcHJvcGVydHlcbmV4cG9ydHMuZiA9IERFU0NSSVBUT1JTID8gbmF0aXZlRGVmaW5lUHJvcGVydHkgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBQID0gdG9QcmltaXRpdmUoUCwgdHJ1ZSk7XG4gIGFuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuIG5hdGl2ZURlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIGlmICgnZ2V0JyBpbiBBdHRyaWJ1dGVzIHx8ICdzZXQnIGluIEF0dHJpYnV0ZXMpIHRocm93IFR5cGVFcnJvcignQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQnKTtcbiAgaWYgKCd2YWx1ZScgaW4gQXR0cmlidXRlcykgT1tQXSA9IEF0dHJpYnV0ZXMudmFsdWU7XG4gIHJldHVybiBPO1xufTtcbiIsImltcG9ydCBfIGZyb20gJ18nO1xuaW1wb3J0IGFkZHJlc3NwYXJzZXIgZnJvbSAnZW1haWxqcy1hZGRyZXNzcGFyc2VyJztcbmltcG9ydCB7IHRyaW0sIGVuY29kZUh0bWwsIGlzTm9uRW1wdHlBcnJheSB9IGZyb20gJ0NvbW1vbi9VdGlscyc7XG5cbmNsYXNzIEVtYWlsTW9kZWwge1xuXHRlbWFpbCA9ICcnO1xuXHRuYW1lID0gJyc7XG5cdGRraW1TdGF0dXMgPSAnJztcblx0ZGtpbVZhbHVlID0gJyc7XG5cblx0LyoqXG5cdCAqIEBwYXJhbSB7c3RyaW5nPX0gZW1haWwgPSAnJ1xuXHQgKiBAcGFyYW0ge3N0cmluZz19IG5hbWUgPSAnJ1xuXHQgKiBAcGFyYW0ge3N0cmluZz19IGRraW1TdGF0dXMgPSAnbm9uZSdcblx0ICogQHBhcmFtIHtzdHJpbmc9fSBka2ltVmFsdWUgPSAnJ1xuXHQgKi9cblx0Y29uc3RydWN0b3IoZW1haWwgPSAnJywgbmFtZSA9ICcnLCBka2ltU3RhdHVzID0gJ25vbmUnLCBka2ltVmFsdWUgPSAnJykge1xuXHRcdHRoaXMuZW1haWwgPSBlbWFpbDtcblx0XHR0aGlzLm5hbWUgPSBuYW1lO1xuXHRcdHRoaXMuZGtpbVN0YXR1cyA9IGRraW1TdGF0dXM7XG5cdFx0dGhpcy5ka2ltVmFsdWUgPSBka2ltVmFsdWU7XG5cblx0XHR0aGlzLmNsZWFyRHVwbGljYXRlTmFtZSgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBzdGF0aWNcblx0ICogQHBhcmFtIHtBamF4SnNvbkVtYWlsfSBqc29uXG5cdCAqIEByZXR1cm5zIHs/RW1haWxNb2RlbH1cblx0ICovXG5cdHN0YXRpYyBuZXdJbnN0YW5jZUZyb21Kc29uKGpzb24pIHtcblx0XHRjb25zdCBlbWFpbCA9IG5ldyBFbWFpbE1vZGVsKCk7XG5cdFx0cmV0dXJuIGVtYWlsLmluaXRCeUpzb24oanNvbikgPyBlbWFpbCA6IG51bGw7XG5cdH1cblxuXHQvKipcblx0ICogQHJldHVybnMge3ZvaWR9XG5cdCAqL1xuXHRjbGVhcigpIHtcblx0XHR0aGlzLmVtYWlsID0gJyc7XG5cdFx0dGhpcy5uYW1lID0gJyc7XG5cblx0XHR0aGlzLmRraW1TdGF0dXMgPSAnbm9uZSc7XG5cdFx0dGhpcy5ka2ltVmFsdWUgPSAnJztcblx0fVxuXG5cdC8qKlxuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn1cblx0ICovXG5cdHZhbGlkYXRlKCkge1xuXHRcdHJldHVybiAnJyAhPT0gdGhpcy5uYW1lIHx8ICcnICE9PSB0aGlzLmVtYWlsO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwYXJhbSB7Ym9vbGVhbn0gd2l0aG91dE5hbWUgPSBmYWxzZVxuXHQgKiBAcmV0dXJucyB7c3RyaW5nfVxuXHQgKi9cblx0aGFzaCh3aXRob3V0TmFtZSA9IGZhbHNlKSB7XG5cdFx0cmV0dXJuICcjJyArICh3aXRob3V0TmFtZSA/ICcnIDogdGhpcy5uYW1lKSArICcjJyArIHRoaXMuZW1haWwgKyAnIyc7XG5cdH1cblxuXHQvKipcblx0ICogQHJldHVybnMge3ZvaWR9XG5cdCAqL1xuXHRjbGVhckR1cGxpY2F0ZU5hbWUoKSB7XG5cdFx0aWYgKHRoaXMubmFtZSA9PT0gdGhpcy5lbWFpbCkge1xuXHRcdFx0dGhpcy5uYW1lID0gJyc7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBxdWVyeVxuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn1cblx0ICovXG5cdHNlYXJjaChxdWVyeSkge1xuXHRcdHJldHVybiAtMSA8ICh0aGlzLm5hbWUgKyAnICcgKyB0aGlzLmVtYWlsKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YocXVlcnkudG9Mb3dlckNhc2UoKSk7XG5cdH1cblxuXHQvKipcblx0ICogQHBhcmFtIHtBamF4SnNvbkVtYWlsfSBvSnNvbkVtYWlsXG5cdCAqIEByZXR1cm5zIHtib29sZWFufVxuXHQgKi9cblx0aW5pdEJ5SnNvbihqc29uKSB7XG5cdFx0bGV0IHJlc3VsdCA9IGZhbHNlO1xuXHRcdGlmIChqc29uICYmICdPYmplY3QvRW1haWwnID09PSBqc29uWydAT2JqZWN0J10pIHtcblx0XHRcdHRoaXMubmFtZSA9IHRyaW0oanNvbi5OYW1lKTtcblx0XHRcdHRoaXMuZW1haWwgPSB0cmltKGpzb24uRW1haWwpO1xuXHRcdFx0dGhpcy5ka2ltU3RhdHVzID0gdHJpbShqc29uLkRraW1TdGF0dXMgfHwgJycpO1xuXHRcdFx0dGhpcy5ka2ltVmFsdWUgPSB0cmltKGpzb24uRGtpbVZhbHVlIHx8ICcnKTtcblxuXHRcdFx0cmVzdWx0ID0gJycgIT09IHRoaXMuZW1haWw7XG5cdFx0XHR0aGlzLmNsZWFyRHVwbGljYXRlTmFtZSgpO1xuXHRcdH1cblxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH1cblxuXHQvKipcblx0ICogQHBhcmFtIHtib29sZWFufSBmcmllbmRseVZpZXdcblx0ICogQHBhcmFtIHtib29sZWFuPX0gd3JhcFdpdGhMaW5rID0gZmFsc2Vcblx0ICogQHBhcmFtIHtib29sZWFuPX0gdXNlRW5jb2RlSHRtbCA9IGZhbHNlXG5cdCAqIEByZXR1cm5zIHtzdHJpbmd9XG5cdCAqL1xuXHR0b0xpbmUoZnJpZW5kbHlWaWV3LCB3cmFwV2l0aExpbmsgPSBmYWxzZSwgdXNlRW5jb2RlSHRtbCA9IGZhbHNlKSB7XG5cdFx0bGV0IHJlc3VsdCA9ICcnO1xuXHRcdGlmICgnJyAhPT0gdGhpcy5lbWFpbCkge1xuXHRcdFx0aWYgKGZyaWVuZGx5VmlldyAmJiAnJyAhPT0gdGhpcy5uYW1lKSB7XG5cdFx0XHRcdHJlc3VsdCA9IHdyYXBXaXRoTGlua1xuXHRcdFx0XHRcdD8gJzxhIGhyZWY9XCJtYWlsdG86JyArXG5cdFx0XHRcdFx0ICBlbmNvZGVIdG1sKHRoaXMuZW1haWwpICtcblx0XHRcdFx0XHQgICc/dG89JyArXG5cdFx0XHRcdFx0ICBlbmNvZGVIdG1sKCdcIicgKyB0aGlzLm5hbWUgKyAnXCIgPCcgKyB0aGlzLmVtYWlsICsgJz4nKSArXG5cdFx0XHRcdFx0ICAnXCIgdGFyZ2V0PVwiX2JsYW5rXCIgdGFiaW5kZXg9XCItMVwiPicgK1xuXHRcdFx0XHRcdCAgZW5jb2RlSHRtbCh0aGlzLm5hbWUpICtcblx0XHRcdFx0XHQgICc8L2E+J1xuXHRcdFx0XHRcdDogdXNlRW5jb2RlSHRtbFxuXHRcdFx0XHRcdD8gZW5jb2RlSHRtbCh0aGlzLm5hbWUpXG5cdFx0XHRcdFx0OiB0aGlzLm5hbWU7XG5cdFx0XHRcdC8vIHJlc3VsdCA9IHdyYXBXaXRoTGluayA/ICc8YSBocmVmPVwibWFpbHRvOicgKyBlbmNvZGVIdG1sKCdcIicgKyB0aGlzLm5hbWUgKyAnXCIgPCcgKyB0aGlzLmVtYWlsICsgJz4nKSArXG5cdFx0XHRcdC8vIFx0J1wiIHRhcmdldD1cIl9ibGFua1wiIHRhYmluZGV4PVwiLTFcIj4nICsgZW5jb2RlSHRtbCh0aGlzLm5hbWUpICsgJzwvYT4nIDogKHVzZUVuY29kZUh0bWwgPyBlbmNvZGVIdG1sKHRoaXMubmFtZSkgOiB0aGlzLm5hbWUpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmVzdWx0ID0gdGhpcy5lbWFpbDtcblx0XHRcdFx0aWYgKCcnICE9PSB0aGlzLm5hbWUpIHtcblx0XHRcdFx0XHRpZiAod3JhcFdpdGhMaW5rKSB7XG5cdFx0XHRcdFx0XHRyZXN1bHQgPVxuXHRcdFx0XHRcdFx0XHRlbmNvZGVIdG1sKCdcIicgKyB0aGlzLm5hbWUgKyAnXCIgPCcpICtcblx0XHRcdFx0XHRcdFx0JzxhIGhyZWY9XCJtYWlsdG86JyArXG5cdFx0XHRcdFx0XHRcdGVuY29kZUh0bWwodGhpcy5lbWFpbCkgK1xuXHRcdFx0XHRcdFx0XHQnP3RvPScgK1xuXHRcdFx0XHRcdFx0XHRlbmNvZGVIdG1sKCdcIicgKyB0aGlzLm5hbWUgKyAnXCIgPCcgKyB0aGlzLmVtYWlsICsgJz4nKSArXG5cdFx0XHRcdFx0XHRcdCdcIiB0YXJnZXQ9XCJfYmxhbmtcIiB0YWJpbmRleD1cIi0xXCI+JyArXG5cdFx0XHRcdFx0XHRcdGVuY29kZUh0bWwocmVzdWx0KSArXG5cdFx0XHRcdFx0XHRcdCc8L2E+JyArXG5cdFx0XHRcdFx0XHRcdGVuY29kZUh0bWwoJz4nKTtcblx0XHRcdFx0XHRcdC8vIHJlc3VsdCA9IGVuY29kZUh0bWwoJ1wiJyArIHRoaXMubmFtZSArICdcIiA8JykgKyAnPGEgaHJlZj1cIm1haWx0bzonICtcblx0XHRcdFx0XHRcdC8vIFx0ZW5jb2RlSHRtbCgnXCInICsgdGhpcy5uYW1lICsgJ1wiIDwnICsgdGhpcy5lbWFpbCArICc+JykgK1xuXHRcdFx0XHRcdFx0Ly8gXHQnXCIgdGFyZ2V0PVwiX2JsYW5rXCIgdGFiaW5kZXg9XCItMVwiPicgK1xuXHRcdFx0XHRcdFx0Ly8gXHRlbmNvZGVIdG1sKHJlc3VsdCkgK1xuXHRcdFx0XHRcdFx0Ly8gXHQnPC9hPicgK1xuXHRcdFx0XHRcdFx0Ly8gXHRlbmNvZGVIdG1sKCc+Jyk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHJlc3VsdCA9ICdcIicgKyB0aGlzLm5hbWUgKyAnXCIgPCcgKyByZXN1bHQgKyAnPic7XG5cdFx0XHRcdFx0XHRpZiAodXNlRW5jb2RlSHRtbCkge1xuXHRcdFx0XHRcdFx0XHRyZXN1bHQgPSBlbmNvZGVIdG1sKHJlc3VsdCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2UgaWYgKHdyYXBXaXRoTGluaykge1xuXHRcdFx0XHRcdHJlc3VsdCA9XG5cdFx0XHRcdFx0XHQnPGEgaHJlZj1cIm1haWx0bzonICtcblx0XHRcdFx0XHRcdGVuY29kZUh0bWwodGhpcy5lbWFpbCkgK1xuXHRcdFx0XHRcdFx0J1wiIHRhcmdldD1cIl9ibGFua1wiIHRhYmluZGV4PVwiLTFcIj4nICtcblx0XHRcdFx0XHRcdGVuY29kZUh0bWwodGhpcy5lbWFpbCkgK1xuXHRcdFx0XHRcdFx0JzwvYT4nO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fVxuXG5cdHN0YXRpYyBzcGxpdEVtYWlsTGluZShsaW5lKSB7XG5cdFx0Y29uc3QgcGFyc2VkUmVzdWx0ID0gYWRkcmVzc3BhcnNlcihsaW5lKTtcblx0XHRpZiAoaXNOb25FbXB0eUFycmF5KHBhcnNlZFJlc3VsdCkpIHtcblx0XHRcdGNvbnN0IHJlc3VsdCA9IFtdO1xuXHRcdFx0bGV0IGV4aXN0cyA9IGZhbHNlO1xuXHRcdFx0cGFyc2VkUmVzdWx0LmZvckVhY2goKGl0ZW0pID0+IHtcblx0XHRcdFx0Y29uc3QgYWRkcmVzcyA9IGl0ZW0uYWRkcmVzc1xuXHRcdFx0XHRcdD8gbmV3IEVtYWlsTW9kZWwoaXRlbS5hZGRyZXNzLnJlcGxhY2UoL15bPF0rKC4qKVs+XSskL2csICckMScpLCBpdGVtLm5hbWUgfHwgJycpXG5cdFx0XHRcdFx0OiBudWxsO1xuXG5cdFx0XHRcdGlmIChhZGRyZXNzICYmIGFkZHJlc3MuZW1haWwpIHtcblx0XHRcdFx0XHRleGlzdHMgPSB0cnVlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmVzdWx0LnB1c2goYWRkcmVzcyA/IGFkZHJlc3MudG9MaW5lKGZhbHNlKSA6IGl0ZW0ubmFtZSk7XG5cdFx0XHR9KTtcblxuXHRcdFx0cmV0dXJuIGV4aXN0cyA/IHJlc3VsdCA6IG51bGw7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblxuXHRzdGF0aWMgcGFyc2VFbWFpbExpbmUobGluZSkge1xuXHRcdGNvbnN0IHBhcnNlZFJlc3VsdCA9IGFkZHJlc3NwYXJzZXIobGluZSk7XG5cdFx0aWYgKGlzTm9uRW1wdHlBcnJheShwYXJzZWRSZXN1bHQpKSB7XG5cdFx0XHRyZXR1cm4gXy5jb21wYWN0KFxuXHRcdFx0XHRfLm1hcChwYXJzZWRSZXN1bHQsIChpdGVtKSA9PlxuXHRcdFx0XHRcdGl0ZW0uYWRkcmVzcyA/IG5ldyBFbWFpbE1vZGVsKGl0ZW0uYWRkcmVzcy5yZXBsYWNlKC9eWzxdKyguKilbPl0rJC9nLCAnJDEnKSwgaXRlbS5uYW1lIHx8ICcnKSA6IG51bGxcblx0XHRcdFx0KVxuXHRcdFx0KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gW107XG5cdH1cblxuXHQvKipcblx0ICogQHBhcmFtIHtzdHJpbmd9IGVtYWlsQWRkcmVzc1xuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn1cblx0ICovXG5cdHBhcnNlKGVtYWlsQWRkcmVzcykge1xuXHRcdGVtYWlsQWRkcmVzcyA9IHRyaW0oZW1haWxBZGRyZXNzKTtcblx0XHRpZiAoJycgPT09IGVtYWlsQWRkcmVzcykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdGNvbnN0IHJlc3VsdCA9IGFkZHJlc3NwYXJzZXIoZW1haWxBZGRyZXNzKTtcblx0XHRpZiAoaXNOb25FbXB0eUFycmF5KHJlc3VsdCkgJiYgcmVzdWx0WzBdKSB7XG5cdFx0XHR0aGlzLm5hbWUgPSByZXN1bHRbMF0ubmFtZSB8fCAnJztcblx0XHRcdHRoaXMuZW1haWwgPSByZXN1bHRbMF0uYWRkcmVzcyB8fCAnJztcblx0XHRcdHRoaXMuY2xlYXJEdXBsaWNhdGVOYW1lKCk7XG5cblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufVxuXG5leHBvcnQgeyBFbWFpbE1vZGVsLCBFbWFpbE1vZGVsIGFzIGRlZmF1bHQgfTtcbiIsInZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlcicpO1xuXG52YXIgbWluID0gTWF0aC5taW47XG5cbi8vIGBUb0xlbmd0aGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvbGVuZ3RoXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICByZXR1cm4gYXJndW1lbnQgPiAwID8gbWluKHRvSW50ZWdlcihhcmd1bWVudCksIDB4MUZGRkZGRkZGRkZGRkYpIDogMDsgLy8gMiAqKiA1MyAtIDEgPT0gOTAwNzE5OTI1NDc0MDk5MVxufTtcbiIsInZhciBUT19TVFJJTkdfVEFHX1NVUFBPUlQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nLXRhZy1zdXBwb3J0Jyk7XG52YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVkZWZpbmUnKTtcbnZhciB0b1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtdG8tc3RyaW5nJyk7XG5cbi8vIGBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZ1xuaWYgKCFUT19TVFJJTkdfVEFHX1NVUFBPUlQpIHtcbiAgcmVkZWZpbmUoT2JqZWN0LnByb3RvdHlwZSwgJ3RvU3RyaW5nJywgdG9TdHJpbmcsIHsgdW5zYWZlOiB0cnVlIH0pO1xufVxuIiwibW9kdWxlLmV4cG9ydHMgPSB0cnVlO1xuIiwiaW1wb3J0IGtvIGZyb20gJ2tvJztcbmltcG9ydCB7IGlzVW5kLCB0cmltLCBwSW50IH0gZnJvbSAnQ29tbW9uL1V0aWxzJztcbmltcG9ydCB7IFNhdmVTZXR0aW5nc1N0ZXAgfSBmcm9tICdDb21tb24vRW51bXMnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb21wb25lbnQgfSBmcm9tICdDb21wb25lbnQvQWJzdHJhY3QnO1xuXG5jbGFzcyBBYnN0cmFjdElucHV0IGV4dGVuZHMgQWJzdHJhY3RDb21wb25lbnQge1xuXHQvKipcblx0ICogQHBhcmFtIHtPYmplY3R9IHBhcmFtc1xuXHQgKi9cblx0Y29uc3RydWN0b3IocGFyYW1zKSB7XG5cdFx0c3VwZXIoKTtcblxuXHRcdHRoaXMudmFsdWUgPSBwYXJhbXMudmFsdWUgfHwgJyc7XG5cdFx0dGhpcy5zaXplID0gcGFyYW1zLnNpemUgfHwgMDtcblx0XHR0aGlzLmxhYmVsID0gcGFyYW1zLmxhYmVsIHx8ICcnO1xuXHRcdHRoaXMucHJlTGFiZWwgPSBwYXJhbXMucHJlTGFiZWwgfHwgJyc7XG5cdFx0dGhpcy5lbmFibGUgPSBpc1VuZChwYXJhbXMuZW5hYmxlKSA/IHRydWUgOiBwYXJhbXMuZW5hYmxlO1xuXHRcdHRoaXMudHJpZ2dlciA9IHBhcmFtcy50cmlnZ2VyICYmIHBhcmFtcy50cmlnZ2VyLnN1YnNjcmliZSA/IHBhcmFtcy50cmlnZ2VyIDogbnVsbDtcblx0XHR0aGlzLnBsYWNlaG9sZGVyID0gcGFyYW1zLnBsYWNlaG9sZGVyIHx8ICcnO1xuXG5cdFx0dGhpcy5sYWJlbGVkID0gIWlzVW5kKHBhcmFtcy5sYWJlbCk7XG5cdFx0dGhpcy5wcmVMYWJlbGVkID0gIWlzVW5kKHBhcmFtcy5wcmVMYWJlbCk7XG5cdFx0dGhpcy50cmlnZ2VyZWQgPSAhaXNVbmQocGFyYW1zLnRyaWdnZXIpICYmICEhdGhpcy50cmlnZ2VyO1xuXG5cdFx0dGhpcy5jbGFzc0ZvclRyaWdnZXIgPSBrby5vYnNlcnZhYmxlKCcnKTtcblxuXHRcdHRoaXMuY2xhc3NOYW1lID0ga28uY29tcHV0ZWQoKCkgPT4ge1xuXHRcdFx0Y29uc3Qgc2l6ZSA9IGtvLnVud3JhcCh0aGlzLnNpemUpLFxuXHRcdFx0XHRzdWZmaXhWYWx1ZSA9IHRoaXMudHJpZ2dlciA/ICcgJyArIHRyaW0oJ3NldHRpbmdzLXNhdmVkLXRyaWdnZXItaW5wdXQgJyArIHRoaXMuY2xhc3NGb3JUcmlnZ2VyKCkpIDogJyc7XG5cdFx0XHRyZXR1cm4gKDAgPCBzaXplID8gJ3NwYW4nICsgc2l6ZSA6ICcnKSArIHN1ZmZpeFZhbHVlO1xuXHRcdH0pO1xuXG5cdFx0aWYgKCFpc1VuZChwYXJhbXMud2lkdGgpICYmIHBhcmFtcy5lbGVtZW50KSB7XG5cdFx0XHRwYXJhbXMuZWxlbWVudC5maW5kKCdpbnB1dCxzZWxlY3QsdGV4dGFyZWEnKS5jc3MoJ3dpZHRoJywgcGFyYW1zLndpZHRoKTtcblx0XHR9XG5cblx0XHR0aGlzLmRpc3Bvc2FibGUucHVzaCh0aGlzLmNsYXNzTmFtZSk7XG5cblx0XHRpZiAodGhpcy50cmlnZ2VyKSB7XG5cdFx0XHR0aGlzLnNldFRyaWdnZXJTdGF0ZSh0aGlzLnRyaWdnZXIoKSk7XG5cblx0XHRcdHRoaXMuZGlzcG9zYWJsZS5wdXNoKHRoaXMudHJpZ2dlci5zdWJzY3JpYmUodGhpcy5zZXRUcmlnZ2VyU3RhdGUsIHRoaXMpKTtcblx0XHR9XG5cdH1cblxuXHRzZXRUcmlnZ2VyU3RhdGUodmFsdWUpIHtcblx0XHRzd2l0Y2ggKHBJbnQodmFsdWUpKSB7XG5cdFx0XHRjYXNlIFNhdmVTZXR0aW5nc1N0ZXAuVHJ1ZVJlc3VsdDpcblx0XHRcdFx0dGhpcy5jbGFzc0ZvclRyaWdnZXIoJ3N1Y2Nlc3MnKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFNhdmVTZXR0aW5nc1N0ZXAuRmFsc2VSZXN1bHQ6XG5cdFx0XHRcdHRoaXMuY2xhc3NGb3JUcmlnZ2VyKCdlcnJvcicpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdHRoaXMuY2xhc3NGb3JUcmlnZ2VyKCcnKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXHR9XG59XG5cbmV4cG9ydCB7IEFic3RyYWN0SW5wdXQsIEFic3RyYWN0SW5wdXQgYXMgZGVmYXVsdCB9O1xuIiwiaW1wb3J0IGtvIGZyb20gJ2tvJztcbmltcG9ydCB7IENhcGEgfSBmcm9tICdDb21tb24vRW51bXMnO1xuaW1wb3J0ICogYXMgU2V0dGluZ3MgZnJvbSAnU3RvcmFnZS9TZXR0aW5ncyc7XG5cbmNsYXNzIENhcGFBZG1pblN0b3JlIHtcblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5hZGRpdGlvbmFsQWNjb3VudHMgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblx0XHR0aGlzLmlkZW50aXRpZXMgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblx0XHR0aGlzLmdyYXZhdGFyID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cdFx0dGhpcy5hdHRhY2htZW50VGh1bWJuYWlscyA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXHRcdHRoaXMuc2lldmUgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblx0XHR0aGlzLmZpbHRlcnMgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblx0XHR0aGlzLnRoZW1lcyA9IGtvLm9ic2VydmFibGUodHJ1ZSk7XG5cdFx0dGhpcy51c2VyQmFja2dyb3VuZCA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXHRcdHRoaXMub3BlblBHUCA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXHRcdHRoaXMudHdvRmFjdG9yQXV0aCA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXHRcdHRoaXMudHdvRmFjdG9yQXV0aEZvcmNlID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cdFx0dGhpcy50ZW1wbGF0ZXMgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblx0fVxuXG5cdHBvcHVsYXRlKCkge1xuXHRcdHRoaXMuYWRkaXRpb25hbEFjY291bnRzKFNldHRpbmdzLmNhcGEoQ2FwYS5BZGRpdGlvbmFsQWNjb3VudHMpKTtcblx0XHR0aGlzLmlkZW50aXRpZXMoU2V0dGluZ3MuY2FwYShDYXBhLklkZW50aXRpZXMpKTtcblx0XHR0aGlzLmdyYXZhdGFyKFNldHRpbmdzLmNhcGEoQ2FwYS5HcmF2YXRhcikpO1xuXHRcdHRoaXMuYXR0YWNobWVudFRodW1ibmFpbHMoU2V0dGluZ3MuY2FwYShDYXBhLkF0dGFjaG1lbnRUaHVtYm5haWxzKSk7XG5cdFx0dGhpcy5zaWV2ZShTZXR0aW5ncy5jYXBhKENhcGEuU2lldmUpKTtcblx0XHR0aGlzLmZpbHRlcnMoU2V0dGluZ3MuY2FwYShDYXBhLkZpbHRlcnMpKTtcblx0XHR0aGlzLnRoZW1lcyhTZXR0aW5ncy5jYXBhKENhcGEuVGhlbWVzKSk7XG5cdFx0dGhpcy51c2VyQmFja2dyb3VuZChTZXR0aW5ncy5jYXBhKENhcGEuVXNlckJhY2tncm91bmQpKTtcblx0XHR0aGlzLm9wZW5QR1AoU2V0dGluZ3MuY2FwYShDYXBhLk9wZW5QR1ApKTtcblx0XHR0aGlzLnR3b0ZhY3RvckF1dGgoU2V0dGluZ3MuY2FwYShDYXBhLlR3b0ZhY3RvcikpO1xuXHRcdHRoaXMudHdvRmFjdG9yQXV0aEZvcmNlKFNldHRpbmdzLmNhcGEoQ2FwYS5Ud29GYWN0b3JGb3JjZSkpO1xuXHRcdHRoaXMudGVtcGxhdGVzKFNldHRpbmdzLmNhcGEoQ2FwYS5UZW1wbGF0ZXMpKTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBuZXcgQ2FwYUFkbWluU3RvcmUoKTtcbiIsInZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xuXG4vLyBgVG9PYmplY3RgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10b29iamVjdFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuIE9iamVjdChyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KSk7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYml0bWFwLCB2YWx1ZSkge1xuICByZXR1cm4ge1xuICAgIGVudW1lcmFibGU6ICEoYml0bWFwICYgMSksXG4gICAgY29uZmlndXJhYmxlOiAhKGJpdG1hcCAmIDIpLFxuICAgIHdyaXRhYmxlOiAhKGJpdG1hcCAmIDQpLFxuICAgIHZhbHVlOiB2YWx1ZVxuICB9O1xufTtcbiIsInZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlcicpO1xuXG52YXIgbWluID0gTWF0aC5taW47XG5cbi8vIGBUb0xlbmd0aGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvbGVuZ3RoXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICByZXR1cm4gYXJndW1lbnQgPiAwID8gbWluKHRvSW50ZWdlcihhcmd1bWVudCksIDB4MUZGRkZGRkZGRkZGRkYpIDogMDsgLy8gMiAqKiA1MyAtIDEgPT0gOTAwNzE5OTI1NDc0MDk5MVxufTtcbiIsInZhciBUT19TVFJJTkdfVEFHX1NVUFBPUlQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nLXRhZy1zdXBwb3J0Jyk7XG52YXIgY2xhc3NvZlJhdyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgVE9fU1RSSU5HX1RBRyA9IHdlbGxLbm93blN5bWJvbCgndG9TdHJpbmdUYWcnKTtcbi8vIEVTMyB3cm9uZyBoZXJlXG52YXIgQ09SUkVDVF9BUkdVTUVOVFMgPSBjbGFzc29mUmF3KGZ1bmN0aW9uICgpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSgpKSA9PSAnQXJndW1lbnRzJztcblxuLy8gZmFsbGJhY2sgZm9yIElFMTEgU2NyaXB0IEFjY2VzcyBEZW5pZWQgZXJyb3JcbnZhciB0cnlHZXQgPSBmdW5jdGlvbiAoaXQsIGtleSkge1xuICB0cnkge1xuICAgIHJldHVybiBpdFtrZXldO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG59O1xuXG4vLyBnZXR0aW5nIHRhZyBmcm9tIEVTNisgYE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdgXG5tb2R1bGUuZXhwb3J0cyA9IFRPX1NUUklOR19UQUdfU1VQUE9SVCA/IGNsYXNzb2ZSYXcgOiBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIE8sIHRhZywgcmVzdWx0O1xuICByZXR1cm4gaXQgPT09IHVuZGVmaW5lZCA/ICdVbmRlZmluZWQnIDogaXQgPT09IG51bGwgPyAnTnVsbCdcbiAgICAvLyBAQHRvU3RyaW5nVGFnIGNhc2VcbiAgICA6IHR5cGVvZiAodGFnID0gdHJ5R2V0KE8gPSBPYmplY3QoaXQpLCBUT19TVFJJTkdfVEFHKSkgPT0gJ3N0cmluZycgPyB0YWdcbiAgICAvLyBidWlsdGluVGFnIGNhc2VcbiAgICA6IENPUlJFQ1RfQVJHVU1FTlRTID8gY2xhc3NvZlJhdyhPKVxuICAgIC8vIEVTMyBhcmd1bWVudHMgZmFsbGJhY2tcbiAgICA6IChyZXN1bHQgPSBjbGFzc29mUmF3KE8pKSA9PSAnT2JqZWN0JyAmJiB0eXBlb2YgTy5jYWxsZWUgPT0gJ2Z1bmN0aW9uJyA/ICdBcmd1bWVudHMnIDogcmVzdWx0O1xufTtcbiIsImltcG9ydCBrbyBmcm9tICdrbyc7XG5cbmNsYXNzIFBhY2thZ2VBZG1pblN0b3JlIHtcblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5wYWNrYWdlcyA9IGtvLm9ic2VydmFibGVBcnJheShbXSk7XG5cdFx0dGhpcy5wYWNrYWdlcy5sb2FkaW5nID0ga28ub2JzZXJ2YWJsZShmYWxzZSkuZXh0ZW5kKHsgdGhyb3R0bGU6IDEwMCB9KTtcblxuXHRcdHRoaXMucGFja2FnZXNSZWFsID0ga28ub2JzZXJ2YWJsZSh0cnVlKTtcblx0XHR0aGlzLnBhY2thZ2VzTWFpblVwZGF0YWJsZSA9IGtvLm9ic2VydmFibGUodHJ1ZSk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbmV3IFBhY2thZ2VBZG1pblN0b3JlKCk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChiaXRtYXAsIHZhbHVlKSB7XG4gIHJldHVybiB7XG4gICAgZW51bWVyYWJsZTogIShiaXRtYXAgJiAxKSxcbiAgICBjb25maWd1cmFibGU6ICEoYml0bWFwICYgMiksXG4gICAgd3JpdGFibGU6ICEoYml0bWFwICYgNCksXG4gICAgdmFsdWU6IHZhbHVlXG4gIH07XG59O1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgdHJ5IHtcbiAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoZ2xvYmFsLCBrZXksIHZhbHVlKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBnbG9iYWxba2V5XSA9IHZhbHVlO1xuICB9IHJldHVybiB2YWx1ZTtcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIHNldEdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtZ2xvYmFsJyk7XG5cbnZhciBTSEFSRUQgPSAnX19jb3JlLWpzX3NoYXJlZF9fJztcbnZhciBzdG9yZSA9IGdsb2JhbFtTSEFSRURdIHx8IHNldEdsb2JhbChTSEFSRUQsIHt9KTtcblxubW9kdWxlLmV4cG9ydHMgPSBzdG9yZTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZmFsc2U7XG4iLCJ2YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBUT19TVFJJTkdfVEFHID0gd2VsbEtub3duU3ltYm9sKCd0b1N0cmluZ1RhZycpO1xudmFyIHRlc3QgPSB7fTtcblxudGVzdFtUT19TVFJJTkdfVEFHXSA9ICd6JztcblxubW9kdWxlLmV4cG9ydHMgPSBTdHJpbmcodGVzdCkgPT09ICdbb2JqZWN0IHpdJztcbiIsIm1vZHVsZS5leHBvcnRzID0gd2luZG93Lm1vbWVudDsiLCJtb2R1bGUuZXhwb3J0cyA9IHdpbmRvdy5wcm9ncmVzc0pzOyIsInZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBzdG9yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQtc3RvcmUnKTtcblxuKG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIHN0b3JlW2tleV0gfHwgKHN0b3JlW2tleV0gPSB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gdmFsdWUgOiB7fSk7XG59KSgndmVyc2lvbnMnLCBbXSkucHVzaCh7XG4gIHZlcnNpb246ICczLjEyLjAnLFxuICBtb2RlOiBJU19QVVJFID8gJ3B1cmUnIDogJ2dsb2JhbCcsXG4gIGNvcHlyaWdodDogJ8KpIDIwMjEgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSknXG59KTtcbiIsIm1vZHVsZS5leHBvcnRzID0ge307XG4iLCJ2YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRCdWlsdEluKCduYXZpZ2F0b3InLCAndXNlckFnZW50JykgfHwgJyc7XG4iLCJ2YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgaXNBcnJheUl0ZXJhdG9yTWV0aG9kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWFycmF5LWl0ZXJhdG9yLW1ldGhvZCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xudmFyIGJpbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1jb250ZXh0Jyk7XG52YXIgZ2V0SXRlcmF0b3JNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWl0ZXJhdG9yLW1ldGhvZCcpO1xudmFyIGl0ZXJhdG9yQ2xvc2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3ItY2xvc2UnKTtcblxudmFyIFJlc3VsdCA9IGZ1bmN0aW9uIChzdG9wcGVkLCByZXN1bHQpIHtcbiAgdGhpcy5zdG9wcGVkID0gc3RvcHBlZDtcbiAgdGhpcy5yZXN1bHQgPSByZXN1bHQ7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdGVyYWJsZSwgdW5ib3VuZEZ1bmN0aW9uLCBvcHRpb25zKSB7XG4gIHZhciB0aGF0ID0gb3B0aW9ucyAmJiBvcHRpb25zLnRoYXQ7XG4gIHZhciBBU19FTlRSSUVTID0gISEob3B0aW9ucyAmJiBvcHRpb25zLkFTX0VOVFJJRVMpO1xuICB2YXIgSVNfSVRFUkFUT1IgPSAhIShvcHRpb25zICYmIG9wdGlvbnMuSVNfSVRFUkFUT1IpO1xuICB2YXIgSU5URVJSVVBURUQgPSAhIShvcHRpb25zICYmIG9wdGlvbnMuSU5URVJSVVBURUQpO1xuICB2YXIgZm4gPSBiaW5kKHVuYm91bmRGdW5jdGlvbiwgdGhhdCwgMSArIEFTX0VOVFJJRVMgKyBJTlRFUlJVUFRFRCk7XG4gIHZhciBpdGVyYXRvciwgaXRlckZuLCBpbmRleCwgbGVuZ3RoLCByZXN1bHQsIG5leHQsIHN0ZXA7XG5cbiAgdmFyIHN0b3AgPSBmdW5jdGlvbiAoY29uZGl0aW9uKSB7XG4gICAgaWYgKGl0ZXJhdG9yKSBpdGVyYXRvckNsb3NlKGl0ZXJhdG9yKTtcbiAgICByZXR1cm4gbmV3IFJlc3VsdCh0cnVlLCBjb25kaXRpb24pO1xuICB9O1xuXG4gIHZhciBjYWxsRm4gPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICBpZiAoQVNfRU5UUklFUykge1xuICAgICAgYW5PYmplY3QodmFsdWUpO1xuICAgICAgcmV0dXJuIElOVEVSUlVQVEVEID8gZm4odmFsdWVbMF0sIHZhbHVlWzFdLCBzdG9wKSA6IGZuKHZhbHVlWzBdLCB2YWx1ZVsxXSk7XG4gICAgfSByZXR1cm4gSU5URVJSVVBURUQgPyBmbih2YWx1ZSwgc3RvcCkgOiBmbih2YWx1ZSk7XG4gIH07XG5cbiAgaWYgKElTX0lURVJBVE9SKSB7XG4gICAgaXRlcmF0b3IgPSBpdGVyYWJsZTtcbiAgfSBlbHNlIHtcbiAgICBpdGVyRm4gPSBnZXRJdGVyYXRvck1ldGhvZChpdGVyYWJsZSk7XG4gICAgaWYgKHR5cGVvZiBpdGVyRm4gIT0gJ2Z1bmN0aW9uJykgdGhyb3cgVHlwZUVycm9yKCdUYXJnZXQgaXMgbm90IGl0ZXJhYmxlJyk7XG4gICAgLy8gb3B0aW1pc2F0aW9uIGZvciBhcnJheSBpdGVyYXRvcnNcbiAgICBpZiAoaXNBcnJheUl0ZXJhdG9yTWV0aG9kKGl0ZXJGbikpIHtcbiAgICAgIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSB0b0xlbmd0aChpdGVyYWJsZS5sZW5ndGgpOyBsZW5ndGggPiBpbmRleDsgaW5kZXgrKykge1xuICAgICAgICByZXN1bHQgPSBjYWxsRm4oaXRlcmFibGVbaW5kZXhdKTtcbiAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQgaW5zdGFuY2VvZiBSZXN1bHQpIHJldHVybiByZXN1bHQ7XG4gICAgICB9IHJldHVybiBuZXcgUmVzdWx0KGZhbHNlKTtcbiAgICB9XG4gICAgaXRlcmF0b3IgPSBpdGVyRm4uY2FsbChpdGVyYWJsZSk7XG4gIH1cblxuICBuZXh0ID0gaXRlcmF0b3IubmV4dDtcbiAgd2hpbGUgKCEoc3RlcCA9IG5leHQuY2FsbChpdGVyYXRvcikpLmRvbmUpIHtcbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gY2FsbEZuKHN0ZXAudmFsdWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpdGVyYXRvckNsb3NlKGl0ZXJhdG9yKTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHJlc3VsdCA9PSAnb2JqZWN0JyAmJiByZXN1bHQgJiYgcmVzdWx0IGluc3RhbmNlb2YgUmVzdWx0KSByZXR1cm4gcmVzdWx0O1xuICB9IHJldHVybiBuZXcgUmVzdWx0KGZhbHNlKTtcbn07XG4iLCJ2YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh0YXJnZXQsIGtleSwgdmFsdWUsIG9wdGlvbnMpIHtcbiAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5lbnVtZXJhYmxlKSB0YXJnZXRba2V5XSA9IHZhbHVlO1xuICBlbHNlIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgdmFsdWUpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1mdW5jdGlvbicpO1xuXG52YXIgUHJvbWlzZUNhcGFiaWxpdHkgPSBmdW5jdGlvbiAoQykge1xuICB2YXIgcmVzb2x2ZSwgcmVqZWN0O1xuICB0aGlzLnByb21pc2UgPSBuZXcgQyhmdW5jdGlvbiAoJCRyZXNvbHZlLCAkJHJlamVjdCkge1xuICAgIGlmIChyZXNvbHZlICE9PSB1bmRlZmluZWQgfHwgcmVqZWN0ICE9PSB1bmRlZmluZWQpIHRocm93IFR5cGVFcnJvcignQmFkIFByb21pc2UgY29uc3RydWN0b3InKTtcbiAgICByZXNvbHZlID0gJCRyZXNvbHZlO1xuICAgIHJlamVjdCA9ICQkcmVqZWN0O1xuICB9KTtcbiAgdGhpcy5yZXNvbHZlID0gYUZ1bmN0aW9uKHJlc29sdmUpO1xuICB0aGlzLnJlamVjdCA9IGFGdW5jdGlvbihyZWplY3QpO1xufTtcblxuLy8gMjUuNC4xLjUgTmV3UHJvbWlzZUNhcGFiaWxpdHkoQylcbm1vZHVsZS5leHBvcnRzLmYgPSBmdW5jdGlvbiAoQykge1xuICByZXR1cm4gbmV3IFByb21pc2VDYXBhYmlsaXR5KEMpO1xufTtcbiIsInZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VpZCcpO1xuXG52YXIga2V5cyA9IHNoYXJlZCgna2V5cycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgcmV0dXJuIGtleXNba2V5XSB8fCAoa2V5c1trZXldID0gdWlkKGtleSkpO1xufTtcbiIsIi8vIElFOC0gZG9uJ3QgZW51bSBidWcga2V5c1xubW9kdWxlLmV4cG9ydHMgPSBbXG4gICdjb25zdHJ1Y3RvcicsXG4gICdoYXNPd25Qcm9wZXJ0eScsXG4gICdpc1Byb3RvdHlwZU9mJyxcbiAgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJyxcbiAgJ3RvTG9jYWxlU3RyaW5nJyxcbiAgJ3RvU3RyaW5nJyxcbiAgJ3ZhbHVlT2YnXG5dO1xuIiwibW9kdWxlLmV4cG9ydHMgPSB7fTtcbiIsInZhciB0b1N0cmluZyA9IHt9LnRvU3RyaW5nO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdG9TdHJpbmcuY2FsbChpdCkuc2xpY2UoOCwgLTEpO1xufTtcbiIsIi8vIGBSZXF1aXJlT2JqZWN0Q29lcmNpYmxlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVxdWlyZW9iamVjdGNvZXJjaWJsZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKGl0ID09IHVuZGVmaW5lZCkgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gXCIgKyBpdCk7XG4gIHJldHVybiBpdDtcbn07XG4iLCJ2YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtZnVuY3Rpb24nKTtcblxuLy8gb3B0aW9uYWwgLyBzaW1wbGUgY29udGV4dCBiaW5kaW5nXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChmbiwgdGhhdCwgbGVuZ3RoKSB7XG4gIGFGdW5jdGlvbihmbik7XG4gIGlmICh0aGF0ID09PSB1bmRlZmluZWQpIHJldHVybiBmbjtcbiAgc3dpdGNoIChsZW5ndGgpIHtcbiAgICBjYXNlIDA6IHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0KTtcbiAgICB9O1xuICAgIGNhc2UgMTogcmV0dXJuIGZ1bmN0aW9uIChhKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhKTtcbiAgICB9O1xuICAgIGNhc2UgMjogcmV0dXJuIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhLCBiKTtcbiAgICB9O1xuICAgIGNhc2UgMzogcmV0dXJuIGZ1bmN0aW9uIChhLCBiLCBjKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhLCBiLCBjKTtcbiAgICB9O1xuICB9XG4gIHJldHVybiBmdW5jdGlvbiAoLyogLi4uYXJncyAqLykge1xuICAgIHJldHVybiBmbi5hcHBseSh0aGF0LCBhcmd1bWVudHMpO1xuICB9O1xufTtcbiIsInZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xuXG4vLyBgVG9PYmplY3RgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10b29iamVjdFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuIE9iamVjdChyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KSk7XG59O1xuIiwidmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gY2xhc3NvZihnbG9iYWwucHJvY2VzcykgPT0gJ3Byb2Nlc3MnO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZGVmaW5lJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBmbGFncyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZmxhZ3MnKTtcblxudmFyIFRPX1NUUklORyA9ICd0b1N0cmluZyc7XG52YXIgUmVnRXhwUHJvdG90eXBlID0gUmVnRXhwLnByb3RvdHlwZTtcbnZhciBuYXRpdmVUb1N0cmluZyA9IFJlZ0V4cFByb3RvdHlwZVtUT19TVFJJTkddO1xuXG52YXIgTk9UX0dFTkVSSUMgPSBmYWlscyhmdW5jdGlvbiAoKSB7IHJldHVybiBuYXRpdmVUb1N0cmluZy5jYWxsKHsgc291cmNlOiAnYScsIGZsYWdzOiAnYicgfSkgIT0gJy9hL2InOyB9KTtcbi8vIEZGNDQtIFJlZ0V4cCN0b1N0cmluZyBoYXMgYSB3cm9uZyBuYW1lXG52YXIgSU5DT1JSRUNUX05BTUUgPSBuYXRpdmVUb1N0cmluZy5uYW1lICE9IFRPX1NUUklORztcblxuLy8gYFJlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmdgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1yZWdleHAucHJvdG90eXBlLnRvc3RyaW5nXG5pZiAoTk9UX0dFTkVSSUMgfHwgSU5DT1JSRUNUX05BTUUpIHtcbiAgcmVkZWZpbmUoUmVnRXhwLnByb3RvdHlwZSwgVE9fU1RSSU5HLCBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICB2YXIgUiA9IGFuT2JqZWN0KHRoaXMpO1xuICAgIHZhciBwID0gU3RyaW5nKFIuc291cmNlKTtcbiAgICB2YXIgcmYgPSBSLmZsYWdzO1xuICAgIHZhciBmID0gU3RyaW5nKHJmID09PSB1bmRlZmluZWQgJiYgUiBpbnN0YW5jZW9mIFJlZ0V4cCAmJiAhKCdmbGFncycgaW4gUmVnRXhwUHJvdG90eXBlKSA/IGZsYWdzLmNhbGwoUikgOiByZik7XG4gICAgcmV0dXJuICcvJyArIHAgKyAnLycgKyBmO1xuICB9LCB7IHVuc2FmZTogdHJ1ZSB9KTtcbn1cbiIsInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcycpO1xuXG52YXIgZGVmaW5lUHJvcGVydHkgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgY2FjaGUgPSB7fTtcblxudmFyIHRocm93ZXIgPSBmdW5jdGlvbiAoaXQpIHsgdGhyb3cgaXQ7IH07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE1FVEhPRF9OQU1FLCBvcHRpb25zKSB7XG4gIGlmIChoYXMoY2FjaGUsIE1FVEhPRF9OQU1FKSkgcmV0dXJuIGNhY2hlW01FVEhPRF9OQU1FXTtcbiAgaWYgKCFvcHRpb25zKSBvcHRpb25zID0ge307XG4gIHZhciBtZXRob2QgPSBbXVtNRVRIT0RfTkFNRV07XG4gIHZhciBBQ0NFU1NPUlMgPSBoYXMob3B0aW9ucywgJ0FDQ0VTU09SUycpID8gb3B0aW9ucy5BQ0NFU1NPUlMgOiBmYWxzZTtcbiAgdmFyIGFyZ3VtZW50MCA9IGhhcyhvcHRpb25zLCAwKSA/IG9wdGlvbnNbMF0gOiB0aHJvd2VyO1xuICB2YXIgYXJndW1lbnQxID0gaGFzKG9wdGlvbnMsIDEpID8gb3B0aW9uc1sxXSA6IHVuZGVmaW5lZDtcblxuICByZXR1cm4gY2FjaGVbTUVUSE9EX05BTUVdID0gISFtZXRob2QgJiYgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoQUNDRVNTT1JTICYmICFERVNDUklQVE9SUykgcmV0dXJuIHRydWU7XG4gICAgdmFyIE8gPSB7IGxlbmd0aDogLTEgfTtcblxuICAgIGlmIChBQ0NFU1NPUlMpIGRlZmluZVByb3BlcnR5KE8sIDEsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiB0aHJvd2VyIH0pO1xuICAgIGVsc2UgT1sxXSA9IDE7XG5cbiAgICBtZXRob2QuY2FsbChPLCBhcmd1bWVudDAsIGFyZ3VtZW50MSk7XG4gIH0pO1xufTtcbiIsImltcG9ydCB3aW5kb3cgZnJvbSAnd2luZG93JztcblxuLy8gbGV0IHJhaW5sb29wQ2FjaGVzID0gd2luZG93LmNhY2hlcyAmJiB3aW5kb3cuY2FjaGVzLm9wZW4gPyB3aW5kb3cuY2FjaGVzIDogbnVsbDtcblxuLyoqXG4gKiBAcGFyYW0ge3NyY30gc3JjXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGFzeW5jID0gZmFsc2VcbiAqIEByZXR1cm5zIHtQcm9taXNlfVxuICovXG5leHBvcnQgZnVuY3Rpb24gamFzc2woc3JjLCBhc3luYyA9IGZhbHNlKSB7XG5cdGlmICghd2luZG93LlByb21pc2UgfHwgIXdpbmRvdy5Qcm9taXNlLmFsbCkge1xuXHRcdHRocm93IG5ldyBFcnJvcignUHJvbWlzZXMgYXJlIG5vdCBhdmFpbGFibGUgeW91ciBlbnZpcm9ubWVudC4nKTtcblx0fVxuXG5cdGlmICghc3JjKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdzcmMgc2hvdWxkIG5vdCBiZSBlbXB0eS4nKTtcblx0fVxuXG5cdHJldHVybiBuZXcgd2luZG93LlByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdGNvbnN0IGVsZW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG5cblx0XHRlbGVtZW50Lm9ubG9hZCA9ICgpID0+IHtcblx0XHRcdHJlc29sdmUoc3JjKTtcblx0XHR9O1xuXG5cdFx0ZWxlbWVudC5vbmVycm9yID0gKCkgPT4ge1xuXHRcdFx0cmVqZWN0KG5ldyBFcnJvcihzcmMpKTtcblx0XHR9O1xuXG5cdFx0ZWxlbWVudC5hc3luYyA9IHRydWUgPT09IGFzeW5jO1xuXHRcdGVsZW1lbnQuc3JjID0gc3JjO1xuXG5cdFx0d2luZG93LmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7XG5cdH0pIC8qIC50aGVuKChzKSA9PiB7XG5cblx0XHRjb25zdCBmb3VuZCA9IHMgJiYgcmFpbmxvb3BDYWNoZXMgPyBzLm1hdGNoKC9yYWlubG9vcFxcL3ZcXC8oW15cXC9dKylcXC9zdGF0aWNcXC8vKSA6IG51bGw7XG5cdFx0aWYgKGZvdW5kICYmIGZvdW5kWzFdKVxuXHRcdHtcblx0XHRcdHJhaW5sb29wQ2FjaGVzLm9wZW4oJ3JhaW5sb29wLW9mZmxpbmUtJyArIGZvdW5kWzFdKS50aGVuKFxuXHRcdFx0XHQoY2FjaGUpID0+IGNhY2hlLmFkZChzKVxuXHRcdFx0KS5jYXRjaCgoKSA9PiB7XG5cdFx0XHRcdHJhaW5sb29wQ2FjaGVzID0gbnVsbDtcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdHJldHVybiBzO1xuXHR9KSovO1xufVxuIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy1wdXJlL3N0YWJsZS9pbnN0YW5jZS92YWx1ZXNcIik7IiwiaW1wb3J0IGtvIGZyb20gJ2tvJztcbmltcG9ydCB7IGlzQXJyYXkgfSBmcm9tICdDb21tb24vVXRpbHMnO1xuaW1wb3J0ICogYXMgU2V0dGluZ3MgZnJvbSAnU3RvcmFnZS9TZXR0aW5ncyc7XG5cbmNsYXNzIFRoZW1lU3RvcmUge1xuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLnRoZW1lcyA9IGtvLm9ic2VydmFibGVBcnJheShbXSk7XG5cdFx0dGhpcy50aGVtZUJhY2tncm91bmROYW1lID0ga28ub2JzZXJ2YWJsZSgnJyk7XG5cdFx0dGhpcy50aGVtZUJhY2tncm91bmRIYXNoID0ga28ub2JzZXJ2YWJsZSgnJyk7XG5cblx0XHR0aGlzLnRoZW1lID0ga28ub2JzZXJ2YWJsZSgnJykuZXh0ZW5kKHsgbGltaXRlZExpc3Q6IHRoaXMudGhlbWVzIH0pO1xuXHR9XG5cblx0cG9wdWxhdGUoKSB7XG5cdFx0Y29uc3QgdGhlbWVzID0gU2V0dGluZ3MuYXBwU2V0dGluZ3NHZXQoJ3RoZW1lcycpO1xuXG5cdFx0dGhpcy50aGVtZXMoaXNBcnJheSh0aGVtZXMpID8gdGhlbWVzIDogW10pO1xuXHRcdHRoaXMudGhlbWUoU2V0dGluZ3Muc2V0dGluZ3NHZXQoJ1RoZW1lJykpO1xuXHRcdHRoaXMudGhlbWVCYWNrZ3JvdW5kTmFtZShTZXR0aW5ncy5zZXR0aW5nc0dldCgnVXNlckJhY2tncm91bmROYW1lJykpO1xuXHRcdHRoaXMudGhlbWVCYWNrZ3JvdW5kSGFzaChTZXR0aW5ncy5zZXR0aW5nc0dldCgnVXNlckJhY2tncm91bmRIYXNoJykpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IG5ldyBUaGVtZVN0b3JlKCk7XG4iLCJpbXBvcnQga28gZnJvbSAna28nO1xuXG5jbGFzcyBQbHVnaW5BZG1pblN0b3JlIHtcblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5wbHVnaW5zID0ga28ub2JzZXJ2YWJsZUFycmF5KFtdKTtcblx0XHR0aGlzLnBsdWdpbnMubG9hZGluZyA9IGtvLm9ic2VydmFibGUoZmFsc2UpLmV4dGVuZCh7IHRocm90dGxlOiAxMDAgfSk7XG5cdFx0dGhpcy5wbHVnaW5zLmVycm9yID0ga28ub2JzZXJ2YWJsZSgnJyk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbmV3IFBsdWdpbkFkbWluU3RvcmUoKTtcbiIsImltcG9ydCBrbyBmcm9tICdrbyc7XG5cbmNsYXNzIExpY2Vuc2VBZG1pblN0b3JlIHtcblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5saWNlbnNpbmcgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblx0XHR0aGlzLmxpY2Vuc2luZ1Byb2Nlc3MgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblx0XHR0aGlzLmxpY2Vuc2VWYWxpZCA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXHRcdHRoaXMubGljZW5zZUV4cGlyZWQgPSBrby5vYnNlcnZhYmxlKDApO1xuXHRcdHRoaXMubGljZW5zZUVycm9yID0ga28ub2JzZXJ2YWJsZSgnJyk7XG5cblx0XHR0aGlzLmxpY2Vuc2VUcmlnZ2VyID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbmV3IExpY2Vuc2VBZG1pblN0b3JlKCk7XG4iLCJ2YXIgZztcblxuLy8gVGhpcyB3b3JrcyBpbiBub24tc3RyaWN0IG1vZGVcbmcgPSAoZnVuY3Rpb24oKSB7XG5cdHJldHVybiB0aGlzO1xufSkoKTtcblxudHJ5IHtcblx0Ly8gVGhpcyB3b3JrcyBpZiBldmFsIGlzIGFsbG93ZWQgKHNlZSBDU1ApXG5cdGcgPSBnIHx8IG5ldyBGdW5jdGlvbihcInJldHVybiB0aGlzXCIpKCk7XG59IGNhdGNoIChlKSB7XG5cdC8vIFRoaXMgd29ya3MgaWYgdGhlIHdpbmRvdyByZWZlcmVuY2UgaXMgYXZhaWxhYmxlXG5cdGlmICh0eXBlb2Ygd2luZG93ID09PSBcIm9iamVjdFwiKSBnID0gd2luZG93O1xufVxuXG4vLyBnIGNhbiBzdGlsbCBiZSB1bmRlZmluZWQsIGJ1dCBub3RoaW5nIHRvIGRvIGFib3V0IGl0Li4uXG4vLyBXZSByZXR1cm4gdW5kZWZpbmVkLCBpbnN0ZWFkIG9mIG5vdGhpbmcgaGVyZSwgc28gaXQnc1xuLy8gZWFzaWVyIHRvIGhhbmRsZSB0aGlzIGNhc2UuIGlmKCFnbG9iYWwpIHsgLi4ufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGc7XG4iLCJ2YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBwcm9wZXJ0eUlzRW51bWVyYWJsZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtcHJvcGVydHktaXMtZW51bWVyYWJsZScpO1xudmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvcicpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXByaW1pdGl2ZScpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciBJRThfRE9NX0RFRklORSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pZTgtZG9tLWRlZmluZScpO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5ZGVzY3JpcHRvciAtLSBzYWZlXG52YXIgJGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbi8vIGBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmdldG93bnByb3BlcnR5ZGVzY3JpcHRvclxuZXhwb3J0cy5mID0gREVTQ1JJUFRPUlMgPyAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIDogZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApIHtcbiAgTyA9IHRvSW5kZXhlZE9iamVjdChPKTtcbiAgUCA9IHRvUHJpbWl0aXZlKFAsIHRydWUpO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKGhhcyhPLCBQKSkgcmV0dXJuIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcighcHJvcGVydHlJc0VudW1lcmFibGVNb2R1bGUuZi5jYWxsKE8sIFApLCBPW1BdKTtcbn07XG4iLCJ2YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG5cbnZhciBzcGxpdCA9ICcnLnNwbGl0O1xuXG4vLyBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIGFuZCBub24tZW51bWVyYWJsZSBvbGQgVjggc3RyaW5nc1xubW9kdWxlLmV4cG9ydHMgPSBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIHRocm93cyBhbiBlcnJvciBpbiByaGlubywgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL3JoaW5vL2lzc3Vlcy8zNDZcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGlucyAtLSBzYWZlXG4gIHJldHVybiAhT2JqZWN0KCd6JykucHJvcGVydHlJc0VudW1lcmFibGUoMCk7XG59KSA/IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gY2xhc3NvZihpdCkgPT0gJ1N0cmluZycgPyBzcGxpdC5jYWxsKGl0LCAnJykgOiBPYmplY3QoaXQpO1xufSA6IE9iamVjdDtcbiIsInZhciBzdG9yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQtc3RvcmUnKTtcblxudmFyIGZ1bmN0aW9uVG9TdHJpbmcgPSBGdW5jdGlvbi50b1N0cmluZztcblxuLy8gdGhpcyBoZWxwZXIgYnJva2VuIGluIGAzLjQuMS0zLjQuNGAsIHNvIHdlIGNhbid0IHVzZSBgc2hhcmVkYCBoZWxwZXJcbmlmICh0eXBlb2Ygc3RvcmUuaW5zcGVjdFNvdXJjZSAhPSAnZnVuY3Rpb24nKSB7XG4gIHN0b3JlLmluc3BlY3RTb3VyY2UgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gZnVuY3Rpb25Ub1N0cmluZy5jYWxsKGl0KTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzdG9yZS5pbnNwZWN0U291cmNlO1xuIiwidmFyIE5BVElWRV9XRUFLX01BUCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9uYXRpdmUtd2Vhay1tYXAnKTtcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIG9iamVjdEhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLXN0b3JlJyk7XG52YXIgc2hhcmVkS2V5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1rZXknKTtcbnZhciBoaWRkZW5LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGRlbi1rZXlzJyk7XG5cbnZhciBPQkpFQ1RfQUxSRUFEWV9JTklUSUFMSVpFRCA9ICdPYmplY3QgYWxyZWFkeSBpbml0aWFsaXplZCc7XG52YXIgV2Vha01hcCA9IGdsb2JhbC5XZWFrTWFwO1xudmFyIHNldCwgZ2V0LCBoYXM7XG5cbnZhciBlbmZvcmNlID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBoYXMoaXQpID8gZ2V0KGl0KSA6IHNldChpdCwge30pO1xufTtcblxudmFyIGdldHRlckZvciA9IGZ1bmN0aW9uIChUWVBFKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoaXQpIHtcbiAgICB2YXIgc3RhdGU7XG4gICAgaWYgKCFpc09iamVjdChpdCkgfHwgKHN0YXRlID0gZ2V0KGl0KSkudHlwZSAhPT0gVFlQRSkge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICcgKyBUWVBFICsgJyByZXF1aXJlZCcpO1xuICAgIH0gcmV0dXJuIHN0YXRlO1xuICB9O1xufTtcblxuaWYgKE5BVElWRV9XRUFLX01BUCkge1xuICB2YXIgc3RvcmUgPSBzaGFyZWQuc3RhdGUgfHwgKHNoYXJlZC5zdGF0ZSA9IG5ldyBXZWFrTWFwKCkpO1xuICB2YXIgd21nZXQgPSBzdG9yZS5nZXQ7XG4gIHZhciB3bWhhcyA9IHN0b3JlLmhhcztcbiAgdmFyIHdtc2V0ID0gc3RvcmUuc2V0O1xuICBzZXQgPSBmdW5jdGlvbiAoaXQsIG1ldGFkYXRhKSB7XG4gICAgaWYgKHdtaGFzLmNhbGwoc3RvcmUsIGl0KSkgdGhyb3cgbmV3IFR5cGVFcnJvcihPQkpFQ1RfQUxSRUFEWV9JTklUSUFMSVpFRCk7XG4gICAgbWV0YWRhdGEuZmFjYWRlID0gaXQ7XG4gICAgd21zZXQuY2FsbChzdG9yZSwgaXQsIG1ldGFkYXRhKTtcbiAgICByZXR1cm4gbWV0YWRhdGE7XG4gIH07XG4gIGdldCA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiB3bWdldC5jYWxsKHN0b3JlLCBpdCkgfHwge307XG4gIH07XG4gIGhhcyA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiB3bWhhcy5jYWxsKHN0b3JlLCBpdCk7XG4gIH07XG59IGVsc2Uge1xuICB2YXIgU1RBVEUgPSBzaGFyZWRLZXkoJ3N0YXRlJyk7XG4gIGhpZGRlbktleXNbU1RBVEVdID0gdHJ1ZTtcbiAgc2V0ID0gZnVuY3Rpb24gKGl0LCBtZXRhZGF0YSkge1xuICAgIGlmIChvYmplY3RIYXMoaXQsIFNUQVRFKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihPQkpFQ1RfQUxSRUFEWV9JTklUSUFMSVpFRCk7XG4gICAgbWV0YWRhdGEuZmFjYWRlID0gaXQ7XG4gICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KGl0LCBTVEFURSwgbWV0YWRhdGEpO1xuICAgIHJldHVybiBtZXRhZGF0YTtcbiAgfTtcbiAgZ2V0ID0gZnVuY3Rpb24gKGl0KSB7XG4gICAgcmV0dXJuIG9iamVjdEhhcyhpdCwgU1RBVEUpID8gaXRbU1RBVEVdIDoge307XG4gIH07XG4gIGhhcyA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiBvYmplY3RIYXMoaXQsIFNUQVRFKTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHNldDogc2V0LFxuICBnZXQ6IGdldCxcbiAgaGFzOiBoYXMsXG4gIGVuZm9yY2U6IGVuZm9yY2UsXG4gIGdldHRlckZvcjogZ2V0dGVyRm9yXG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKHR5cGVvZiBpdCAhPSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKFN0cmluZyhpdCkgKyAnIGlzIG5vdCBhIGZ1bmN0aW9uJyk7XG4gIH0gcmV0dXJuIGl0O1xufTtcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcblxuLy8gYFRvUHJpbWl0aXZlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdG9wcmltaXRpdmVcbi8vIGluc3RlYWQgb2YgdGhlIEVTNiBzcGVjIHZlcnNpb24sIHdlIGRpZG4ndCBpbXBsZW1lbnQgQEB0b1ByaW1pdGl2ZSBjYXNlXG4vLyBhbmQgdGhlIHNlY29uZCBhcmd1bWVudCAtIGZsYWcgLSBwcmVmZXJyZWQgdHlwZSBpcyBhIHN0cmluZ1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaW5wdXQsIFBSRUZFUlJFRF9TVFJJTkcpIHtcbiAgaWYgKCFpc09iamVjdChpbnB1dCkpIHJldHVybiBpbnB1dDtcbiAgdmFyIGZuLCB2YWw7XG4gIGlmIChQUkVGRVJSRURfU1RSSU5HICYmIHR5cGVvZiAoZm4gPSBpbnB1dC50b1N0cmluZykgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNPYmplY3QodmFsID0gZm4uY2FsbChpbnB1dCkpKSByZXR1cm4gdmFsO1xuICBpZiAodHlwZW9mIChmbiA9IGlucHV0LnZhbHVlT2YpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaW5wdXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKCFQUkVGRVJSRURfU1RSSU5HICYmIHR5cGVvZiAoZm4gPSBpbnB1dC50b1N0cmluZykgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNPYmplY3QodmFsID0gZm4uY2FsbChpbnB1dCkpKSByZXR1cm4gdmFsO1xuICB0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIik7XG59O1xuIiwidmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBjcmVhdGVFbGVtZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RvY3VtZW50LWNyZWF0ZS1lbGVtZW50Jyk7XG5cbi8vIFRoYW5rJ3MgSUU4IGZvciBoaXMgZnVubnkgZGVmaW5lUHJvcGVydHlcbm1vZHVsZS5leHBvcnRzID0gIURFU0NSSVBUT1JTICYmICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gcmVxdWllZCBmb3IgdGVzdGluZ1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGNyZWF0ZUVsZW1lbnQoJ2RpdicpLCAnYScsIHtcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH1cbiAgfSkuYSAhPSA3O1xufSk7XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xuXG52YXIgZG9jdW1lbnQgPSBnbG9iYWwuZG9jdW1lbnQ7XG4vLyB0eXBlb2YgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBpcyAnb2JqZWN0JyBpbiBvbGQgSUVcbnZhciBFWElTVFMgPSBpc09iamVjdChkb2N1bWVudCkgJiYgaXNPYmplY3QoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBFWElTVFMgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGl0KSA6IHt9O1xufTtcbiIsInZhciBpZCA9IDA7XG52YXIgcG9zdGZpeCA9IE1hdGgucmFuZG9tKCk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gJ1N5bWJvbCgnICsgU3RyaW5nKGtleSA9PT0gdW5kZWZpbmVkID8gJycgOiBrZXkpICsgJylfJyArICgrK2lkICsgcG9zdGZpeCkudG9TdHJpbmcoMzYpO1xufTtcbiIsIi8qIGVzbGludC1kaXNhYmxlIGVzL25vLXN5bWJvbCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZyAqL1xudmFyIFY4X1ZFUlNJT04gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW5naW5lLXY4LXZlcnNpb24nKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5c3ltYm9scyAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xubW9kdWxlLmV4cG9ydHMgPSAhIU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgJiYgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuICFTdHJpbmcoU3ltYm9sKCkpIHx8XG4gICAgLy8gQ2hyb21lIDM4IFN5bWJvbCBoYXMgaW5jb3JyZWN0IHRvU3RyaW5nIGNvbnZlcnNpb25cbiAgICAvLyBDaHJvbWUgMzgtNDAgc3ltYm9scyBhcmUgbm90IGluaGVyaXRlZCBmcm9tIERPTSBjb2xsZWN0aW9ucyBwcm90b3R5cGVzIHRvIGluc3RhbmNlc1xuICAgICFTeW1ib2wuc2hhbSAmJiBWOF9WRVJTSU9OICYmIFY4X1ZFUlNJT04gPCA0MTtcbn0pO1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcblxudmFyIGRvY3VtZW50ID0gZ2xvYmFsLmRvY3VtZW50O1xuLy8gdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgaXMgJ29iamVjdCcgaW4gb2xkIElFXG52YXIgRVhJU1RTID0gaXNPYmplY3QoZG9jdW1lbnQpICYmIGlzT2JqZWN0KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gRVhJU1RTID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdCkgOiB7fTtcbn07XG4iLCJ2YXIgaGFzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcycpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIHNoYXJlZEtleSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQta2V5Jyk7XG52YXIgQ09SUkVDVF9QUk9UT1RZUEVfR0VUVEVSID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NvcnJlY3QtcHJvdG90eXBlLWdldHRlcicpO1xuXG52YXIgSUVfUFJPVE8gPSBzaGFyZWRLZXkoJ0lFX1BST1RPJyk7XG52YXIgT2JqZWN0UHJvdG90eXBlID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLy8gYE9iamVjdC5nZXRQcm90b3R5cGVPZmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5nZXRwcm90b3R5cGVvZlxubW9kdWxlLmV4cG9ydHMgPSBDT1JSRUNUX1BST1RPVFlQRV9HRVRURVIgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiAoTykge1xuICBPID0gdG9PYmplY3QoTyk7XG4gIGlmIChoYXMoTywgSUVfUFJPVE8pKSByZXR1cm4gT1tJRV9QUk9UT107XG4gIGlmICh0eXBlb2YgTy5jb25zdHJ1Y3RvciA9PSAnZnVuY3Rpb24nICYmIE8gaW5zdGFuY2VvZiBPLmNvbnN0cnVjdG9yKSB7XG4gICAgcmV0dXJuIE8uY29uc3RydWN0b3IucHJvdG90eXBlO1xuICB9IHJldHVybiBPIGluc3RhbmNlb2YgT2JqZWN0ID8gT2JqZWN0UHJvdG90eXBlIDogbnVsbDtcbn07XG4iLCJ2YXIgc2hhcmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZCcpO1xudmFyIHVpZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy91aWQnKTtcblxudmFyIGtleXMgPSBzaGFyZWQoJ2tleXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5KSB7XG4gIHJldHVybiBrZXlzW2tleV0gfHwgKGtleXNba2V5XSA9IHVpZChrZXkpKTtcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIHNldEdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtZ2xvYmFsJyk7XG5cbnZhciBTSEFSRUQgPSAnX19jb3JlLWpzX3NoYXJlZF9fJztcbnZhciBzdG9yZSA9IGdsb2JhbFtTSEFSRURdIHx8IHNldEdsb2JhbChTSEFSRUQsIHt9KTtcblxubW9kdWxlLmV4cG9ydHMgPSBzdG9yZTtcbiIsInZhciBjZWlsID0gTWF0aC5jZWlsO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcblxuLy8gYFRvSW50ZWdlcmAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvaW50ZWdlclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuIGlzTmFOKGFyZ3VtZW50ID0gK2FyZ3VtZW50KSA/IDAgOiAoYXJndW1lbnQgPiAwID8gZmxvb3IgOiBjZWlsKShhcmd1bWVudCk7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSB7fTtcbiIsInZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG52YXIgdGVzdCA9IHt9O1xuXG50ZXN0W1RPX1NUUklOR19UQUddID0gJ3onO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFN0cmluZyh0ZXN0KSA9PT0gJ1tvYmplY3Qgel0nO1xuIiwidmFyIFRPX1NUUklOR19UQUdfU1VQUE9SVCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmctdGFnLXN1cHBvcnQnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5JykuZjtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcycpO1xudmFyIHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC10by1zdHJpbmcnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCBUQUcsIFNUQVRJQywgU0VUX01FVEhPRCkge1xuICBpZiAoaXQpIHtcbiAgICB2YXIgdGFyZ2V0ID0gU1RBVElDID8gaXQgOiBpdC5wcm90b3R5cGU7XG4gICAgaWYgKCFoYXModGFyZ2V0LCBUT19TVFJJTkdfVEFHKSkge1xuICAgICAgZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBUT19TVFJJTkdfVEFHLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IFRBRyB9KTtcbiAgICB9XG4gICAgaWYgKFNFVF9NRVRIT0QgJiYgIVRPX1NUUklOR19UQUdfU1VQUE9SVCkge1xuICAgICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KHRhcmdldCwgJ3RvU3RyaW5nJywgdG9TdHJpbmcpO1xuICAgIH1cbiAgfVxufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGV4ZWMpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4geyBlcnJvcjogZmFsc2UsIHZhbHVlOiBleGVjKCkgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4geyBlcnJvcjogdHJ1ZSwgdmFsdWU6IGVycm9yIH07XG4gIH1cbn07XG4iLCJ2YXIgTkFUSVZFX1dFQUtfTUFQID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25hdGl2ZS13ZWFrLW1hcCcpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgb2JqZWN0SGFzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcycpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQtc3RvcmUnKTtcbnZhciBzaGFyZWRLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLWtleScpO1xudmFyIGhpZGRlbktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGlkZGVuLWtleXMnKTtcblxudmFyIFdlYWtNYXAgPSBnbG9iYWwuV2Vha01hcDtcbnZhciBzZXQsIGdldCwgaGFzO1xuXG52YXIgZW5mb3JjZSA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaGFzKGl0KSA/IGdldChpdCkgOiBzZXQoaXQsIHt9KTtcbn07XG5cbnZhciBnZXR0ZXJGb3IgPSBmdW5jdGlvbiAoVFlQRSkge1xuICByZXR1cm4gZnVuY3Rpb24gKGl0KSB7XG4gICAgdmFyIHN0YXRlO1xuICAgIGlmICghaXNPYmplY3QoaXQpIHx8IChzdGF0ZSA9IGdldChpdCkpLnR5cGUgIT09IFRZUEUpIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcignSW5jb21wYXRpYmxlIHJlY2VpdmVyLCAnICsgVFlQRSArICcgcmVxdWlyZWQnKTtcbiAgICB9IHJldHVybiBzdGF0ZTtcbiAgfTtcbn07XG5cbmlmIChOQVRJVkVfV0VBS19NQVApIHtcbiAgdmFyIHN0b3JlID0gc2hhcmVkLnN0YXRlIHx8IChzaGFyZWQuc3RhdGUgPSBuZXcgV2Vha01hcCgpKTtcbiAgdmFyIHdtZ2V0ID0gc3RvcmUuZ2V0O1xuICB2YXIgd21oYXMgPSBzdG9yZS5oYXM7XG4gIHZhciB3bXNldCA9IHN0b3JlLnNldDtcbiAgc2V0ID0gZnVuY3Rpb24gKGl0LCBtZXRhZGF0YSkge1xuICAgIG1ldGFkYXRhLmZhY2FkZSA9IGl0O1xuICAgIHdtc2V0LmNhbGwoc3RvcmUsIGl0LCBtZXRhZGF0YSk7XG4gICAgcmV0dXJuIG1ldGFkYXRhO1xuICB9O1xuICBnZXQgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gd21nZXQuY2FsbChzdG9yZSwgaXQpIHx8IHt9O1xuICB9O1xuICBoYXMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gd21oYXMuY2FsbChzdG9yZSwgaXQpO1xuICB9O1xufSBlbHNlIHtcbiAgdmFyIFNUQVRFID0gc2hhcmVkS2V5KCdzdGF0ZScpO1xuICBoaWRkZW5LZXlzW1NUQVRFXSA9IHRydWU7XG4gIHNldCA9IGZ1bmN0aW9uIChpdCwgbWV0YWRhdGEpIHtcbiAgICBtZXRhZGF0YS5mYWNhZGUgPSBpdDtcbiAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoaXQsIFNUQVRFLCBtZXRhZGF0YSk7XG4gICAgcmV0dXJuIG1ldGFkYXRhO1xuICB9O1xuICBnZXQgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gb2JqZWN0SGFzKGl0LCBTVEFURSkgPyBpdFtTVEFURV0gOiB7fTtcbiAgfTtcbiAgaGFzID0gZnVuY3Rpb24gKGl0KSB7XG4gICAgcmV0dXJuIG9iamVjdEhhcyhpdCwgU1RBVEUpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgc2V0OiBzZXQsXG4gIGdldDogZ2V0LFxuICBoYXM6IGhhcyxcbiAgZW5mb3JjZTogZW5mb3JjZSxcbiAgZ2V0dGVyRm9yOiBnZXR0ZXJGb3Jcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIHVzZXJBZ2VudCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtdXNlci1hZ2VudCcpO1xuXG52YXIgcHJvY2VzcyA9IGdsb2JhbC5wcm9jZXNzO1xudmFyIHZlcnNpb25zID0gcHJvY2VzcyAmJiBwcm9jZXNzLnZlcnNpb25zO1xudmFyIHY4ID0gdmVyc2lvbnMgJiYgdmVyc2lvbnMudjg7XG52YXIgbWF0Y2gsIHZlcnNpb247XG5cbmlmICh2OCkge1xuICBtYXRjaCA9IHY4LnNwbGl0KCcuJyk7XG4gIHZlcnNpb24gPSBtYXRjaFswXSArIG1hdGNoWzFdO1xufSBlbHNlIGlmICh1c2VyQWdlbnQpIHtcbiAgbWF0Y2ggPSB1c2VyQWdlbnQubWF0Y2goL0VkZ2VcXC8oXFxkKykvKTtcbiAgaWYgKCFtYXRjaCB8fCBtYXRjaFsxXSA+PSA3NCkge1xuICAgIG1hdGNoID0gdXNlckFnZW50Lm1hdGNoKC9DaHJvbWVcXC8oXFxkKykvKTtcbiAgICBpZiAobWF0Y2gpIHZlcnNpb24gPSBtYXRjaFsxXTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHZlcnNpb24gJiYgK3ZlcnNpb247XG4iLCIndXNlIHN0cmljdCc7XG4vLyBUT0RPOiBSZW1vdmUgZnJvbSBgY29yZS1qc0A0YCBzaW5jZSBpdCdzIG1vdmVkIHRvIGVudHJ5IHBvaW50c1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5yZWdleHAuZXhlYycpO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZGVmaW5lJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG5cbnZhciBTUEVDSUVTID0gd2VsbEtub3duU3ltYm9sKCdzcGVjaWVzJyk7XG5cbnZhciBSRVBMQUNFX1NVUFBPUlRTX05BTUVEX0dST1VQUyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vICNyZXBsYWNlIG5lZWRzIGJ1aWx0LWluIHN1cHBvcnQgZm9yIG5hbWVkIGdyb3Vwcy5cbiAgLy8gI21hdGNoIHdvcmtzIGZpbmUgYmVjYXVzZSBpdCBqdXN0IHJldHVybiB0aGUgZXhlYyByZXN1bHRzLCBldmVuIGlmIGl0IGhhc1xuICAvLyBhIFwiZ3JvcHNcIiBwcm9wZXJ0eS5cbiAgdmFyIHJlID0gLy4vO1xuICByZS5leGVjID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICByZXN1bHQuZ3JvdXBzID0geyBhOiAnNycgfTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuICByZXR1cm4gJycucmVwbGFjZShyZSwgJyQ8YT4nKSAhPT0gJzcnO1xufSk7XG5cbi8vIElFIDw9IDExIHJlcGxhY2VzICQwIHdpdGggdGhlIHdob2xlIG1hdGNoLCBhcyBpZiBpdCB3YXMgJCZcbi8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzYwMjQ2NjYvZ2V0dGluZy1pZS10by1yZXBsYWNlLWEtcmVnZXgtd2l0aC10aGUtbGl0ZXJhbC1zdHJpbmctMFxudmFyIFJFUExBQ0VfS0VFUFNfJDAgPSAoZnVuY3Rpb24gKCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVnZXhwL3ByZWZlci1lc2NhcGUtcmVwbGFjZW1lbnQtZG9sbGFyLWNoYXIgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgcmV0dXJuICdhJy5yZXBsYWNlKC8uLywgJyQwJykgPT09ICckMCc7XG59KSgpO1xuXG52YXIgUkVQTEFDRSA9IHdlbGxLbm93blN5bWJvbCgncmVwbGFjZScpO1xuLy8gU2FmYXJpIDw9IDEzLjAuMyg/KSBzdWJzdGl0dXRlcyBudGggY2FwdHVyZSB3aGVyZSBuPm0gd2l0aCBhbiBlbXB0eSBzdHJpbmdcbnZhciBSRUdFWFBfUkVQTEFDRV9TVUJTVElUVVRFU19VTkRFRklORURfQ0FQVFVSRSA9IChmdW5jdGlvbiAoKSB7XG4gIGlmICgvLi9bUkVQTEFDRV0pIHtcbiAgICByZXR1cm4gLy4vW1JFUExBQ0VdKCdhJywgJyQwJykgPT09ICcnO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn0pKCk7XG5cbi8vIENocm9tZSA1MSBoYXMgYSBidWdneSBcInNwbGl0XCIgaW1wbGVtZW50YXRpb24gd2hlbiBSZWdFeHAjZXhlYyAhPT0gbmF0aXZlRXhlY1xuLy8gV2VleCBKUyBoYXMgZnJvemVuIGJ1aWx0LWluIHByb3RvdHlwZXMsIHNvIHVzZSB0cnkgLyBjYXRjaCB3cmFwcGVyXG52YXIgU1BMSVRfV09SS1NfV0lUSF9PVkVSV1JJVFRFTl9FWEVDID0gIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlZ2V4cC9uby1lbXB0eS1ncm91cCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xuICB2YXIgcmUgPSAvKD86KS87XG4gIHZhciBvcmlnaW5hbEV4ZWMgPSByZS5leGVjO1xuICByZS5leGVjID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gb3JpZ2luYWxFeGVjLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH07XG4gIHZhciByZXN1bHQgPSAnYWInLnNwbGl0KHJlKTtcbiAgcmV0dXJuIHJlc3VsdC5sZW5ndGggIT09IDIgfHwgcmVzdWx0WzBdICE9PSAnYScgfHwgcmVzdWx0WzFdICE9PSAnYic7XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoS0VZLCBsZW5ndGgsIGV4ZWMsIHNoYW0pIHtcbiAgdmFyIFNZTUJPTCA9IHdlbGxLbm93blN5bWJvbChLRVkpO1xuXG4gIHZhciBERUxFR0FURVNfVE9fU1lNQk9MID0gIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICAvLyBTdHJpbmcgbWV0aG9kcyBjYWxsIHN5bWJvbC1uYW1lZCBSZWdFcCBtZXRob2RzXG4gICAgdmFyIE8gPSB7fTtcbiAgICBPW1NZTUJPTF0gPSBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9O1xuICAgIHJldHVybiAnJ1tLRVldKE8pICE9IDc7XG4gIH0pO1xuXG4gIHZhciBERUxFR0FURVNfVE9fRVhFQyA9IERFTEVHQVRFU19UT19TWU1CT0wgJiYgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICAvLyBTeW1ib2wtbmFtZWQgUmVnRXhwIG1ldGhvZHMgY2FsbCAuZXhlY1xuICAgIHZhciBleGVjQ2FsbGVkID0gZmFsc2U7XG4gICAgdmFyIHJlID0gL2EvO1xuXG4gICAgaWYgKEtFWSA9PT0gJ3NwbGl0Jykge1xuICAgICAgLy8gV2UgY2FuJ3QgdXNlIHJlYWwgcmVnZXggaGVyZSBzaW5jZSBpdCBjYXVzZXMgZGVvcHRpbWl6YXRpb25cbiAgICAgIC8vIGFuZCBzZXJpb3VzIHBlcmZvcm1hbmNlIGRlZ3JhZGF0aW9uIGluIFY4XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvMzA2XG4gICAgICByZSA9IHt9O1xuICAgICAgLy8gUmVnRXhwW0BAc3BsaXRdIGRvZXNuJ3QgY2FsbCB0aGUgcmVnZXgncyBleGVjIG1ldGhvZCwgYnV0IGZpcnN0IGNyZWF0ZXNcbiAgICAgIC8vIGEgbmV3IG9uZS4gV2UgbmVlZCB0byByZXR1cm4gdGhlIHBhdGNoZWQgcmVnZXggd2hlbiBjcmVhdGluZyB0aGUgbmV3IG9uZS5cbiAgICAgIHJlLmNvbnN0cnVjdG9yID0ge307XG4gICAgICByZS5jb25zdHJ1Y3RvcltTUEVDSUVTXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHJlOyB9O1xuICAgICAgcmUuZmxhZ3MgPSAnJztcbiAgICAgIHJlW1NZTUJPTF0gPSAvLi9bU1lNQk9MXTtcbiAgICB9XG5cbiAgICByZS5leGVjID0gZnVuY3Rpb24gKCkgeyBleGVjQ2FsbGVkID0gdHJ1ZTsgcmV0dXJuIG51bGw7IH07XG5cbiAgICByZVtTWU1CT0xdKCcnKTtcbiAgICByZXR1cm4gIWV4ZWNDYWxsZWQ7XG4gIH0pO1xuXG4gIGlmIChcbiAgICAhREVMRUdBVEVTX1RPX1NZTUJPTCB8fFxuICAgICFERUxFR0FURVNfVE9fRVhFQyB8fFxuICAgIChLRVkgPT09ICdyZXBsYWNlJyAmJiAhKFxuICAgICAgUkVQTEFDRV9TVVBQT1JUU19OQU1FRF9HUk9VUFMgJiZcbiAgICAgIFJFUExBQ0VfS0VFUFNfJDAgJiZcbiAgICAgICFSRUdFWFBfUkVQTEFDRV9TVUJTVElUVVRFU19VTkRFRklORURfQ0FQVFVSRVxuICAgICkpIHx8XG4gICAgKEtFWSA9PT0gJ3NwbGl0JyAmJiAhU1BMSVRfV09SS1NfV0lUSF9PVkVSV1JJVFRFTl9FWEVDKVxuICApIHtcbiAgICB2YXIgbmF0aXZlUmVnRXhwTWV0aG9kID0gLy4vW1NZTUJPTF07XG4gICAgdmFyIG1ldGhvZHMgPSBleGVjKFNZTUJPTCwgJydbS0VZXSwgZnVuY3Rpb24gKG5hdGl2ZU1ldGhvZCwgcmVnZXhwLCBzdHIsIGFyZzIsIGZvcmNlU3RyaW5nTWV0aG9kKSB7XG4gICAgICBpZiAocmVnZXhwLmV4ZWMgPT09IFJlZ0V4cC5wcm90b3R5cGUuZXhlYykge1xuICAgICAgICBpZiAoREVMRUdBVEVTX1RPX1NZTUJPTCAmJiAhZm9yY2VTdHJpbmdNZXRob2QpIHtcbiAgICAgICAgICAvLyBUaGUgbmF0aXZlIFN0cmluZyBtZXRob2QgYWxyZWFkeSBkZWxlZ2F0ZXMgdG8gQEBtZXRob2QgKHRoaXNcbiAgICAgICAgICAvLyBwb2x5ZmlsbGVkIGZ1bmN0aW9uKSwgbGVhc2luZyB0byBpbmZpbml0ZSByZWN1cnNpb24uXG4gICAgICAgICAgLy8gV2UgYXZvaWQgaXQgYnkgZGlyZWN0bHkgY2FsbGluZyB0aGUgbmF0aXZlIEBAbWV0aG9kIG1ldGhvZC5cbiAgICAgICAgICByZXR1cm4geyBkb25lOiB0cnVlLCB2YWx1ZTogbmF0aXZlUmVnRXhwTWV0aG9kLmNhbGwocmVnZXhwLCBzdHIsIGFyZzIpIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IG5hdGl2ZU1ldGhvZC5jYWxsKHN0ciwgcmVnZXhwLCBhcmcyKSB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgZG9uZTogZmFsc2UgfTtcbiAgICB9LCB7XG4gICAgICBSRVBMQUNFX0tFRVBTXyQwOiBSRVBMQUNFX0tFRVBTXyQwLFxuICAgICAgUkVHRVhQX1JFUExBQ0VfU1VCU1RJVFVURVNfVU5ERUZJTkVEX0NBUFRVUkU6IFJFR0VYUF9SRVBMQUNFX1NVQlNUSVRVVEVTX1VOREVGSU5FRF9DQVBUVVJFXG4gICAgfSk7XG4gICAgdmFyIHN0cmluZ01ldGhvZCA9IG1ldGhvZHNbMF07XG4gICAgdmFyIHJlZ2V4TWV0aG9kID0gbWV0aG9kc1sxXTtcblxuICAgIHJlZGVmaW5lKFN0cmluZy5wcm90b3R5cGUsIEtFWSwgc3RyaW5nTWV0aG9kKTtcbiAgICByZWRlZmluZShSZWdFeHAucHJvdG90eXBlLCBTWU1CT0wsIGxlbmd0aCA9PSAyXG4gICAgICAvLyAyMS4yLjUuOCBSZWdFeHAucHJvdG90eXBlW0BAcmVwbGFjZV0oc3RyaW5nLCByZXBsYWNlVmFsdWUpXG4gICAgICAvLyAyMS4yLjUuMTEgUmVnRXhwLnByb3RvdHlwZVtAQHNwbGl0XShzdHJpbmcsIGxpbWl0KVxuICAgICAgPyBmdW5jdGlvbiAoc3RyaW5nLCBhcmcpIHsgcmV0dXJuIHJlZ2V4TWV0aG9kLmNhbGwoc3RyaW5nLCB0aGlzLCBhcmcpOyB9XG4gICAgICAvLyAyMS4yLjUuNiBSZWdFeHAucHJvdG90eXBlW0BAbWF0Y2hdKHN0cmluZylcbiAgICAgIC8vIDIxLjIuNS45IFJlZ0V4cC5wcm90b3R5cGVbQEBzZWFyY2hdKHN0cmluZylcbiAgICAgIDogZnVuY3Rpb24gKHN0cmluZykgeyByZXR1cm4gcmVnZXhNZXRob2QuY2FsbChzdHJpbmcsIHRoaXMpOyB9XG4gICAgKTtcbiAgfVxuXG4gIGlmIChzaGFtKSBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoUmVnRXhwLnByb3RvdHlwZVtTWU1CT0xdLCAnc2hhbScsIHRydWUpO1xufTtcbiIsInZhciBjbGFzc29mID0gcmVxdWlyZSgnLi9jbGFzc29mLXJhdycpO1xudmFyIHJlZ2V4cEV4ZWMgPSByZXF1aXJlKCcuL3JlZ2V4cC1leGVjJyk7XG5cbi8vIGBSZWdFeHBFeGVjYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVnZXhwZXhlY1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoUiwgUykge1xuICB2YXIgZXhlYyA9IFIuZXhlYztcbiAgaWYgKHR5cGVvZiBleGVjID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdmFyIHJlc3VsdCA9IGV4ZWMuY2FsbChSLCBTKTtcbiAgICBpZiAodHlwZW9mIHJlc3VsdCAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcignUmVnRXhwIGV4ZWMgbWV0aG9kIHJldHVybmVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGFuIE9iamVjdCBvciBudWxsJyk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBpZiAoY2xhc3NvZihSKSAhPT0gJ1JlZ0V4cCcpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoJ1JlZ0V4cCNleGVjIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgcmVjZWl2ZXInKTtcbiAgfVxuXG4gIHJldHVybiByZWdleHBFeGVjLmNhbGwoUiwgUyk7XG59O1xuXG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIERPTUl0ZXJhYmxlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kb20taXRlcmFibGVzJyk7XG52YXIgZm9yRWFjaCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1mb3ItZWFjaCcpO1xudmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHknKTtcblxuZm9yICh2YXIgQ09MTEVDVElPTl9OQU1FIGluIERPTUl0ZXJhYmxlcykge1xuICB2YXIgQ29sbGVjdGlvbiA9IGdsb2JhbFtDT0xMRUNUSU9OX05BTUVdO1xuICB2YXIgQ29sbGVjdGlvblByb3RvdHlwZSA9IENvbGxlY3Rpb24gJiYgQ29sbGVjdGlvbi5wcm90b3R5cGU7XG4gIC8vIHNvbWUgQ2hyb21lIHZlcnNpb25zIGhhdmUgbm9uLWNvbmZpZ3VyYWJsZSBtZXRob2RzIG9uIERPTVRva2VuTGlzdFxuICBpZiAoQ29sbGVjdGlvblByb3RvdHlwZSAmJiBDb2xsZWN0aW9uUHJvdG90eXBlLmZvckVhY2ggIT09IGZvckVhY2gpIHRyeSB7XG4gICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KENvbGxlY3Rpb25Qcm90b3R5cGUsICdmb3JFYWNoJywgZm9yRWFjaCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgQ29sbGVjdGlvblByb3RvdHlwZS5mb3JFYWNoID0gZm9yRWFjaDtcbiAgfVxufVxuIiwiaW1wb3J0IF8gZnJvbSAnXyc7XG5pbXBvcnQgY3Jvc3Nyb2FkcyBmcm9tICdjcm9zc3JvYWRzJztcbmltcG9ydCB7IGlzQXJyYXksIGlzTm9uRW1wdHlBcnJheSwgbm9vcCB9IGZyb20gJ0NvbW1vbi9VdGlscyc7XG5cbmV4cG9ydCBjbGFzcyBBYnN0cmFjdFNjcmVlbiB7XG5cdG9Dcm9zcyA9IG51bGw7XG5cdHNTY3JlZW5OYW1lO1xuXHRhVmlld01vZGVscztcblxuXHRjb25zdHJ1Y3RvcihzY3JlZW5OYW1lLCB2aWV3TW9kZWxzID0gW10pIHtcblx0XHR0aGlzLnNTY3JlZW5OYW1lID0gc2NyZWVuTmFtZTtcblx0XHR0aGlzLmFWaWV3TW9kZWxzID0gaXNBcnJheSh2aWV3TW9kZWxzKSA/IHZpZXdNb2RlbHMgOiBbXTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcmV0dXJucyB7QXJyYXl9XG5cdCAqL1xuXHR2aWV3TW9kZWxzKCkge1xuXHRcdHJldHVybiB0aGlzLmFWaWV3TW9kZWxzO1xuXHR9XG5cblx0LyoqXG5cdCAqIEByZXR1cm5zIHtzdHJpbmd9XG5cdCAqL1xuXHRzY3JlZW5OYW1lKCkge1xuXHRcdHJldHVybiB0aGlzLnNTY3JlZW5OYW1lO1xuXHR9XG5cblx0LyoqXG5cdCAqIEByZXR1cm5zIHs/QXJyYXkpfVxuXHQgKi9cblx0cm91dGVzKCkge1xuXHRcdHJldHVybiBudWxsO1xuXHR9XG5cblx0LyoqXG5cdCAqIEByZXR1cm5zIHs/T2JqZWN0fVxuXHQgKi9cblx0X19jcm9zcygpIHtcblx0XHRyZXR1cm4gdGhpcy5vQ3Jvc3M7XG5cdH1cblxuXHQvKipcblx0ICogQHJldHVybnMge3ZvaWR9XG5cdCAqL1xuXHRfX3N0YXJ0KCkge1xuXHRcdGxldCByb3V0ZSA9IG51bGwsXG5cdFx0XHRmTWF0Y2hlciA9IG51bGw7XG5cdFx0Y29uc3Qgcm91dGVzID0gdGhpcy5yb3V0ZXMoKTtcblxuXHRcdGlmIChpc05vbkVtcHR5QXJyYXkocm91dGVzKSkge1xuXHRcdFx0Zk1hdGNoZXIgPSBfLmJpbmQodGhpcy5vblJvdXRlIHx8IG5vb3AsIHRoaXMpO1xuXHRcdFx0cm91dGUgPSBjcm9zc3JvYWRzLmNyZWF0ZSgpO1xuXG5cdFx0XHRyb3V0ZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuXHRcdFx0XHRpZiAoaXRlbSAmJiByb3V0ZSkge1xuXHRcdFx0XHRcdHJvdXRlLmFkZFJvdXRlKGl0ZW1bMF0sIGZNYXRjaGVyKS5ydWxlcyA9IGl0ZW1bMV07XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXG5cdFx0XHR0aGlzLm9Dcm9zcyA9IHJvdXRlO1xuXHRcdH1cblx0fVxufVxuIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy1wdXJlL3N0YWJsZS9pbnN0YW5jZS90cmltXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gd2luZG93LnNzbTsiLCJ2YXIgaGFzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcycpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIGluZGV4T2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaW5jbHVkZXMnKS5pbmRleE9mO1xudmFyIGhpZGRlbktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGlkZGVuLWtleXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lcykge1xuICB2YXIgTyA9IHRvSW5kZXhlZE9iamVjdChvYmplY3QpO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gTykgIWhhcyhoaWRkZW5LZXlzLCBrZXkpICYmIGhhcyhPLCBrZXkpICYmIHJlc3VsdC5wdXNoKGtleSk7XG4gIC8vIERvbid0IGVudW0gYnVnICYgaGlkZGVuIGtleXNcbiAgd2hpbGUgKG5hbWVzLmxlbmd0aCA+IGkpIGlmIChoYXMoTywga2V5ID0gbmFtZXNbaSsrXSkpIHtcbiAgICB+aW5kZXhPZihyZXN1bHQsIGtleSkgfHwgcmVzdWx0LnB1c2goa2V5KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgdXNlckFnZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VuZ2luZS11c2VyLWFnZW50Jyk7XG5cbnZhciBwcm9jZXNzID0gZ2xvYmFsLnByb2Nlc3M7XG52YXIgdmVyc2lvbnMgPSBwcm9jZXNzICYmIHByb2Nlc3MudmVyc2lvbnM7XG52YXIgdjggPSB2ZXJzaW9ucyAmJiB2ZXJzaW9ucy52ODtcbnZhciBtYXRjaCwgdmVyc2lvbjtcblxuaWYgKHY4KSB7XG4gIG1hdGNoID0gdjguc3BsaXQoJy4nKTtcbiAgdmVyc2lvbiA9IG1hdGNoWzBdIDwgNCA/IDEgOiBtYXRjaFswXSArIG1hdGNoWzFdO1xufSBlbHNlIGlmICh1c2VyQWdlbnQpIHtcbiAgbWF0Y2ggPSB1c2VyQWdlbnQubWF0Y2goL0VkZ2VcXC8oXFxkKykvKTtcbiAgaWYgKCFtYXRjaCB8fCBtYXRjaFsxXSA+PSA3NCkge1xuICAgIG1hdGNoID0gdXNlckFnZW50Lm1hdGNoKC9DaHJvbWVcXC8oXFxkKykvKTtcbiAgICBpZiAobWF0Y2gpIHZlcnNpb24gPSBtYXRjaFsxXTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHZlcnNpb24gJiYgK3ZlcnNpb247XG4iLCJ2YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBwcm9wZXJ0eUlzRW51bWVyYWJsZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtcHJvcGVydHktaXMtZW51bWVyYWJsZScpO1xudmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvcicpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXByaW1pdGl2ZScpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciBJRThfRE9NX0RFRklORSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pZTgtZG9tLWRlZmluZScpO1xuXG52YXIgbmF0aXZlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcblxuLy8gYE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yXG5leHBvcnRzLmYgPSBERVNDUklQVE9SUyA/IG5hdGl2ZUdldE93blByb3BlcnR5RGVzY3JpcHRvciA6IGZ1bmN0aW9uIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihPLCBQKSB7XG4gIE8gPSB0b0luZGV4ZWRPYmplY3QoTyk7XG4gIFAgPSB0b1ByaW1pdGl2ZShQLCB0cnVlKTtcbiAgaWYgKElFOF9ET01fREVGSU5FKSB0cnkge1xuICAgIHJldHVybiBuYXRpdmVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKGhhcyhPLCBQKSkgcmV0dXJuIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcighcHJvcGVydHlJc0VudW1lcmFibGVNb2R1bGUuZi5jYWxsKE8sIFApLCBPW1BdKTtcbn07XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG5cbi8vIGBUb1ByaW1pdGl2ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvcHJpbWl0aXZlXG4vLyBpbnN0ZWFkIG9mIHRoZSBFUzYgc3BlYyB2ZXJzaW9uLCB3ZSBkaWRuJ3QgaW1wbGVtZW50IEBAdG9QcmltaXRpdmUgY2FzZVxuLy8gYW5kIHRoZSBzZWNvbmQgYXJndW1lbnQgLSBmbGFnIC0gcHJlZmVycmVkIHR5cGUgaXMgYSBzdHJpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGlucHV0LCBQUkVGRVJSRURfU1RSSU5HKSB7XG4gIGlmICghaXNPYmplY3QoaW5wdXQpKSByZXR1cm4gaW5wdXQ7XG4gIHZhciBmbiwgdmFsO1xuICBpZiAoUFJFRkVSUkVEX1NUUklORyAmJiB0eXBlb2YgKGZuID0gaW5wdXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaW5wdXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKHR5cGVvZiAoZm4gPSBpbnB1dC52YWx1ZU9mKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGlucHV0KSkpIHJldHVybiB2YWw7XG4gIGlmICghUFJFRkVSUkVEX1NUUklORyAmJiB0eXBlb2YgKGZuID0gaW5wdXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaW5wdXQpKSkgcmV0dXJuIHZhbDtcbiAgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpO1xufTtcbiIsInZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBhUG9zc2libGVQcm90b3R5cGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1wb3NzaWJsZS1wcm90b3R5cGUnKTtcblxuLy8gYE9iamVjdC5zZXRQcm90b3R5cGVPZmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5zZXRwcm90b3R5cGVvZlxuLy8gV29ya3Mgd2l0aCBfX3Byb3RvX18gb25seS4gT2xkIHY4IGNhbid0IHdvcmsgd2l0aCBudWxsIHByb3RvIG9iamVjdHMuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90byAqL1xubW9kdWxlLmV4cG9ydHMgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgKCdfX3Byb3RvX18nIGluIHt9ID8gZnVuY3Rpb24gKCkge1xuICB2YXIgQ09SUkVDVF9TRVRURVIgPSBmYWxzZTtcbiAgdmFyIHRlc3QgPSB7fTtcbiAgdmFyIHNldHRlcjtcbiAgdHJ5IHtcbiAgICBzZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE9iamVjdC5wcm90b3R5cGUsICdfX3Byb3RvX18nKS5zZXQ7XG4gICAgc2V0dGVyLmNhbGwodGVzdCwgW10pO1xuICAgIENPUlJFQ1RfU0VUVEVSID0gdGVzdCBpbnN0YW5jZW9mIEFycmF5O1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIHJldHVybiBmdW5jdGlvbiBzZXRQcm90b3R5cGVPZihPLCBwcm90bykge1xuICAgIGFuT2JqZWN0KE8pO1xuICAgIGFQb3NzaWJsZVByb3RvdHlwZShwcm90byk7XG4gICAgaWYgKENPUlJFQ1RfU0VUVEVSKSBzZXR0ZXIuY2FsbChPLCBwcm90byk7XG4gICAgZWxzZSBPLl9fcHJvdG9fXyA9IHByb3RvO1xuICAgIHJldHVybiBPO1xuICB9O1xufSgpIDogdW5kZWZpbmVkKTtcbiIsInZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBkZWZpbmVQcm9wZXJ0aWVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydGllcycpO1xudmFyIGVudW1CdWdLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VudW0tYnVnLWtleXMnKTtcbnZhciBoaWRkZW5LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGRlbi1rZXlzJyk7XG52YXIgaHRtbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9odG1sJyk7XG52YXIgZG9jdW1lbnRDcmVhdGVFbGVtZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RvY3VtZW50LWNyZWF0ZS1lbGVtZW50Jyk7XG52YXIgc2hhcmVkS2V5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1rZXknKTtcblxudmFyIEdUID0gJz4nO1xudmFyIExUID0gJzwnO1xudmFyIFBST1RPVFlQRSA9ICdwcm90b3R5cGUnO1xudmFyIFNDUklQVCA9ICdzY3JpcHQnO1xudmFyIElFX1BST1RPID0gc2hhcmVkS2V5KCdJRV9QUk9UTycpO1xuXG52YXIgRW1wdHlDb25zdHJ1Y3RvciA9IGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfTtcblxudmFyIHNjcmlwdFRhZyA9IGZ1bmN0aW9uIChjb250ZW50KSB7XG4gIHJldHVybiBMVCArIFNDUklQVCArIEdUICsgY29udGVudCArIExUICsgJy8nICsgU0NSSVBUICsgR1Q7XG59O1xuXG4vLyBDcmVhdGUgb2JqZWN0IHdpdGggZmFrZSBgbnVsbGAgcHJvdG90eXBlOiB1c2UgQWN0aXZlWCBPYmplY3Qgd2l0aCBjbGVhcmVkIHByb3RvdHlwZVxudmFyIE51bGxQcm90b09iamVjdFZpYUFjdGl2ZVggPSBmdW5jdGlvbiAoYWN0aXZlWERvY3VtZW50KSB7XG4gIGFjdGl2ZVhEb2N1bWVudC53cml0ZShzY3JpcHRUYWcoJycpKTtcbiAgYWN0aXZlWERvY3VtZW50LmNsb3NlKCk7XG4gIHZhciB0ZW1wID0gYWN0aXZlWERvY3VtZW50LnBhcmVudFdpbmRvdy5PYmplY3Q7XG4gIGFjdGl2ZVhEb2N1bWVudCA9IG51bGw7IC8vIGF2b2lkIG1lbW9yeSBsZWFrXG4gIHJldHVybiB0ZW1wO1xufTtcblxuLy8gQ3JlYXRlIG9iamVjdCB3aXRoIGZha2UgYG51bGxgIHByb3RvdHlwZTogdXNlIGlmcmFtZSBPYmplY3Qgd2l0aCBjbGVhcmVkIHByb3RvdHlwZVxudmFyIE51bGxQcm90b09iamVjdFZpYUlGcmFtZSA9IGZ1bmN0aW9uICgpIHtcbiAgLy8gVGhyYXNoLCB3YXN0ZSBhbmQgc29kb215OiBJRSBHQyBidWdcbiAgdmFyIGlmcmFtZSA9IGRvY3VtZW50Q3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7XG4gIHZhciBKUyA9ICdqYXZhJyArIFNDUklQVCArICc6JztcbiAgdmFyIGlmcmFtZURvY3VtZW50O1xuICBpZnJhbWUuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgaHRtbC5hcHBlbmRDaGlsZChpZnJhbWUpO1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvNDc1XG4gIGlmcmFtZS5zcmMgPSBTdHJpbmcoSlMpO1xuICBpZnJhbWVEb2N1bWVudCA9IGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50O1xuICBpZnJhbWVEb2N1bWVudC5vcGVuKCk7XG4gIGlmcmFtZURvY3VtZW50LndyaXRlKHNjcmlwdFRhZygnZG9jdW1lbnQuRj1PYmplY3QnKSk7XG4gIGlmcmFtZURvY3VtZW50LmNsb3NlKCk7XG4gIHJldHVybiBpZnJhbWVEb2N1bWVudC5GO1xufTtcblxuLy8gQ2hlY2sgZm9yIGRvY3VtZW50LmRvbWFpbiBhbmQgYWN0aXZlIHggc3VwcG9ydFxuLy8gTm8gbmVlZCB0byB1c2UgYWN0aXZlIHggYXBwcm9hY2ggd2hlbiBkb2N1bWVudC5kb21haW4gaXMgbm90IHNldFxuLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9lcy1zaGltcy9lczUtc2hpbS9pc3N1ZXMvMTUwXG4vLyB2YXJpYXRpb24gb2YgaHR0cHM6Ly9naXRodWIuY29tL2tpdGNhbWJyaWRnZS9lczUtc2hpbS9jb21taXQvNGY3MzhhYzA2NjM0NlxuLy8gYXZvaWQgSUUgR0MgYnVnXG52YXIgYWN0aXZlWERvY3VtZW50O1xudmFyIE51bGxQcm90b09iamVjdCA9IGZ1bmN0aW9uICgpIHtcbiAgdHJ5IHtcbiAgICAvKiBnbG9iYWwgQWN0aXZlWE9iamVjdCAqL1xuICAgIGFjdGl2ZVhEb2N1bWVudCA9IGRvY3VtZW50LmRvbWFpbiAmJiBuZXcgQWN0aXZlWE9iamVjdCgnaHRtbGZpbGUnKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLyogaWdub3JlICovIH1cbiAgTnVsbFByb3RvT2JqZWN0ID0gYWN0aXZlWERvY3VtZW50ID8gTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWChhY3RpdmVYRG9jdW1lbnQpIDogTnVsbFByb3RvT2JqZWN0VmlhSUZyYW1lKCk7XG4gIHZhciBsZW5ndGggPSBlbnVtQnVnS2V5cy5sZW5ndGg7XG4gIHdoaWxlIChsZW5ndGgtLSkgZGVsZXRlIE51bGxQcm90b09iamVjdFtQUk9UT1RZUEVdW2VudW1CdWdLZXlzW2xlbmd0aF1dO1xuICByZXR1cm4gTnVsbFByb3RvT2JqZWN0KCk7XG59O1xuXG5oaWRkZW5LZXlzW0lFX1BST1RPXSA9IHRydWU7XG5cbi8vIGBPYmplY3QuY3JlYXRlYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmNyZWF0ZVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuY3JlYXRlIHx8IGZ1bmN0aW9uIGNyZWF0ZShPLCBQcm9wZXJ0aWVzKSB7XG4gIHZhciByZXN1bHQ7XG4gIGlmIChPICE9PSBudWxsKSB7XG4gICAgRW1wdHlDb25zdHJ1Y3RvcltQUk9UT1RZUEVdID0gYW5PYmplY3QoTyk7XG4gICAgcmVzdWx0ID0gbmV3IEVtcHR5Q29uc3RydWN0b3IoKTtcbiAgICBFbXB0eUNvbnN0cnVjdG9yW1BST1RPVFlQRV0gPSBudWxsO1xuICAgIC8vIGFkZCBcIl9fcHJvdG9fX1wiIGZvciBPYmplY3QuZ2V0UHJvdG90eXBlT2YgcG9seWZpbGxcbiAgICByZXN1bHRbSUVfUFJPVE9dID0gTztcbiAgfSBlbHNlIHJlc3VsdCA9IE51bGxQcm90b09iamVjdCgpO1xuICByZXR1cm4gUHJvcGVydGllcyA9PT0gdW5kZWZpbmVkID8gcmVzdWx0IDogZGVmaW5lUHJvcGVydGllcyhyZXN1bHQsIFByb3BlcnRpZXMpO1xufTtcbiIsInJlcXVpcmUoJy4vZXMuYXJyYXkuaXRlcmF0b3InKTtcbnZhciBET01JdGVyYWJsZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZG9tLWl0ZXJhYmxlcycpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdG9ycycpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgVE9fU1RSSU5HX1RBRyA9IHdlbGxLbm93blN5bWJvbCgndG9TdHJpbmdUYWcnKTtcblxuZm9yICh2YXIgQ09MTEVDVElPTl9OQU1FIGluIERPTUl0ZXJhYmxlcykge1xuICB2YXIgQ29sbGVjdGlvbiA9IGdsb2JhbFtDT0xMRUNUSU9OX05BTUVdO1xuICB2YXIgQ29sbGVjdGlvblByb3RvdHlwZSA9IENvbGxlY3Rpb24gJiYgQ29sbGVjdGlvbi5wcm90b3R5cGU7XG4gIGlmIChDb2xsZWN0aW9uUHJvdG90eXBlICYmIGNsYXNzb2YoQ29sbGVjdGlvblByb3RvdHlwZSkgIT09IFRPX1NUUklOR19UQUcpIHtcbiAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoQ29sbGVjdGlvblByb3RvdHlwZSwgVE9fU1RSSU5HX1RBRywgQ09MTEVDVElPTl9OQU1FKTtcbiAgfVxuICBJdGVyYXRvcnNbQ09MTEVDVElPTl9OQU1FXSA9IEl0ZXJhdG9ycy5BcnJheTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcbnZhciByZWdleHBGbGFncyA9IHJlcXVpcmUoJy4vcmVnZXhwLWZsYWdzJyk7XG52YXIgc3RpY2t5SGVscGVycyA9IHJlcXVpcmUoJy4vcmVnZXhwLXN0aWNreS1oZWxwZXJzJyk7XG52YXIgc2hhcmVkID0gcmVxdWlyZSgnLi9zaGFyZWQnKTtcblxudmFyIG5hdGl2ZUV4ZWMgPSBSZWdFeHAucHJvdG90eXBlLmV4ZWM7XG52YXIgbmF0aXZlUmVwbGFjZSA9IHNoYXJlZCgnbmF0aXZlLXN0cmluZy1yZXBsYWNlJywgU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlKTtcblxudmFyIHBhdGNoZWRFeGVjID0gbmF0aXZlRXhlYztcblxudmFyIFVQREFURVNfTEFTVF9JTkRFWF9XUk9ORyA9IChmdW5jdGlvbiAoKSB7XG4gIHZhciByZTEgPSAvYS87XG4gIHZhciByZTIgPSAvYiovZztcbiAgbmF0aXZlRXhlYy5jYWxsKHJlMSwgJ2EnKTtcbiAgbmF0aXZlRXhlYy5jYWxsKHJlMiwgJ2EnKTtcbiAgcmV0dXJuIHJlMS5sYXN0SW5kZXggIT09IDAgfHwgcmUyLmxhc3RJbmRleCAhPT0gMDtcbn0pKCk7XG5cbnZhciBVTlNVUFBPUlRFRF9ZID0gc3RpY2t5SGVscGVycy5VTlNVUFBPUlRFRF9ZIHx8IHN0aWNreUhlbHBlcnMuQlJPS0VOX0NBUkVUO1xuXG4vLyBub25wYXJ0aWNpcGF0aW5nIGNhcHR1cmluZyBncm91cCwgY29waWVkIGZyb20gZXM1LXNoaW0ncyBTdHJpbmcjc3BsaXQgcGF0Y2guXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVnZXhwL25vLWFzc2VydGlvbi1jYXB0dXJpbmctZ3JvdXAsIHJlZ2V4cC9uby1lbXB0eS1ncm91cCwgcmVnZXhwL25vLWxhenktZW5kcyAtLSB0ZXN0aW5nXG52YXIgTlBDR19JTkNMVURFRCA9IC8oKT8/Ly5leGVjKCcnKVsxXSAhPT0gdW5kZWZpbmVkO1xuXG52YXIgUEFUQ0ggPSBVUERBVEVTX0xBU1RfSU5ERVhfV1JPTkcgfHwgTlBDR19JTkNMVURFRCB8fCBVTlNVUFBPUlRFRF9ZO1xuXG5pZiAoUEFUQ0gpIHtcbiAgcGF0Y2hlZEV4ZWMgPSBmdW5jdGlvbiBleGVjKHN0cikge1xuICAgIHZhciByZSA9IHRoaXM7XG4gICAgdmFyIGxhc3RJbmRleCwgcmVDb3B5LCBtYXRjaCwgaTtcbiAgICB2YXIgc3RpY2t5ID0gVU5TVVBQT1JURURfWSAmJiByZS5zdGlja3k7XG4gICAgdmFyIGZsYWdzID0gcmVnZXhwRmxhZ3MuY2FsbChyZSk7XG4gICAgdmFyIHNvdXJjZSA9IHJlLnNvdXJjZTtcbiAgICB2YXIgY2hhcnNBZGRlZCA9IDA7XG4gICAgdmFyIHN0ckNvcHkgPSBzdHI7XG5cbiAgICBpZiAoc3RpY2t5KSB7XG4gICAgICBmbGFncyA9IGZsYWdzLnJlcGxhY2UoJ3knLCAnJyk7XG4gICAgICBpZiAoZmxhZ3MuaW5kZXhPZignZycpID09PSAtMSkge1xuICAgICAgICBmbGFncyArPSAnZyc7XG4gICAgICB9XG5cbiAgICAgIHN0ckNvcHkgPSBTdHJpbmcoc3RyKS5zbGljZShyZS5sYXN0SW5kZXgpO1xuICAgICAgLy8gU3VwcG9ydCBhbmNob3JlZCBzdGlja3kgYmVoYXZpb3IuXG4gICAgICBpZiAocmUubGFzdEluZGV4ID4gMCAmJiAoIXJlLm11bHRpbGluZSB8fCByZS5tdWx0aWxpbmUgJiYgc3RyW3JlLmxhc3RJbmRleCAtIDFdICE9PSAnXFxuJykpIHtcbiAgICAgICAgc291cmNlID0gJyg/OiAnICsgc291cmNlICsgJyknO1xuICAgICAgICBzdHJDb3B5ID0gJyAnICsgc3RyQ29weTtcbiAgICAgICAgY2hhcnNBZGRlZCsrO1xuICAgICAgfVxuICAgICAgLy8gXig/ICsgcnggKyApIGlzIG5lZWRlZCwgaW4gY29tYmluYXRpb24gd2l0aCBzb21lIHN0ciBzbGljaW5nLCB0b1xuICAgICAgLy8gc2ltdWxhdGUgdGhlICd5JyBmbGFnLlxuICAgICAgcmVDb3B5ID0gbmV3IFJlZ0V4cCgnXig/OicgKyBzb3VyY2UgKyAnKScsIGZsYWdzKTtcbiAgICB9XG5cbiAgICBpZiAoTlBDR19JTkNMVURFRCkge1xuICAgICAgcmVDb3B5ID0gbmV3IFJlZ0V4cCgnXicgKyBzb3VyY2UgKyAnJCg/IVxcXFxzKScsIGZsYWdzKTtcbiAgICB9XG4gICAgaWYgKFVQREFURVNfTEFTVF9JTkRFWF9XUk9ORykgbGFzdEluZGV4ID0gcmUubGFzdEluZGV4O1xuXG4gICAgbWF0Y2ggPSBuYXRpdmVFeGVjLmNhbGwoc3RpY2t5ID8gcmVDb3B5IDogcmUsIHN0ckNvcHkpO1xuXG4gICAgaWYgKHN0aWNreSkge1xuICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgIG1hdGNoLmlucHV0ID0gbWF0Y2guaW5wdXQuc2xpY2UoY2hhcnNBZGRlZCk7XG4gICAgICAgIG1hdGNoWzBdID0gbWF0Y2hbMF0uc2xpY2UoY2hhcnNBZGRlZCk7XG4gICAgICAgIG1hdGNoLmluZGV4ID0gcmUubGFzdEluZGV4O1xuICAgICAgICByZS5sYXN0SW5kZXggKz0gbWF0Y2hbMF0ubGVuZ3RoO1xuICAgICAgfSBlbHNlIHJlLmxhc3RJbmRleCA9IDA7XG4gICAgfSBlbHNlIGlmIChVUERBVEVTX0xBU1RfSU5ERVhfV1JPTkcgJiYgbWF0Y2gpIHtcbiAgICAgIHJlLmxhc3RJbmRleCA9IHJlLmdsb2JhbCA/IG1hdGNoLmluZGV4ICsgbWF0Y2hbMF0ubGVuZ3RoIDogbGFzdEluZGV4O1xuICAgIH1cbiAgICBpZiAoTlBDR19JTkNMVURFRCAmJiBtYXRjaCAmJiBtYXRjaC5sZW5ndGggPiAxKSB7XG4gICAgICAvLyBGaXggYnJvd3NlcnMgd2hvc2UgYGV4ZWNgIG1ldGhvZHMgZG9uJ3QgY29uc2lzdGVudGx5IHJldHVybiBgdW5kZWZpbmVkYFxuICAgICAgLy8gZm9yIE5QQ0csIGxpa2UgSUU4LiBOT1RFOiBUaGlzIGRvZXNuJyB3b3JrIGZvciAvKC4/KT8vXG4gICAgICBuYXRpdmVSZXBsYWNlLmNhbGwobWF0Y2hbMF0sIHJlQ29weSwgZnVuY3Rpb24gKCkge1xuICAgICAgICBmb3IgKGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aCAtIDI7IGkrKykge1xuICAgICAgICAgIGlmIChhcmd1bWVudHNbaV0gPT09IHVuZGVmaW5lZCkgbWF0Y2hbaV0gPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBtYXRjaDtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwYXRjaGVkRXhlYztcbiIsImltcG9ydCBfIGZyb20gJ18nO1xuaW1wb3J0IGtvIGZyb20gJ2tvJztcblxuY2xhc3MgRG9tYWluQWRtaW5TdG9yZSB7XG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHRoaXMuZG9tYWlucyA9IGtvLm9ic2VydmFibGVBcnJheShbXSk7XG5cdFx0dGhpcy5kb21haW5zLmxvYWRpbmcgPSBrby5vYnNlcnZhYmxlKGZhbHNlKS5leHRlbmQoeyAndGhyb3R0bGUnOiAxMDAgfSk7XG5cdFx0dGhpcy5kb21haW5zV2l0aG91dEFsaWFzZXMgPSBrby5jb21wdXRlZCgoKSA9PiBfLmZpbHRlcih0aGlzLmRvbWFpbnMoKSwgKGl0ZW0pID0+IGl0ZW0gJiYgIWl0ZW0uYWxpYXMpKTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBuZXcgRG9tYWluQWRtaW5TdG9yZSgpO1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBnbG9iYWw7XG4iLCJ2YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRCdWlsdEluKCduYXZpZ2F0b3InLCAndXNlckFnZW50JykgfHwgJyc7XG4iLCJ2YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgZGVmaW5lUHJvcGVydGllcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnRpZXMnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnVtLWJ1Zy1rZXlzJyk7XG52YXIgaGlkZGVuS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oaWRkZW4ta2V5cycpO1xudmFyIGh0bWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaHRtbCcpO1xudmFyIGRvY3VtZW50Q3JlYXRlRWxlbWVudCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kb2N1bWVudC1jcmVhdGUtZWxlbWVudCcpO1xudmFyIHNoYXJlZEtleSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQta2V5Jyk7XG5cbnZhciBHVCA9ICc+JztcbnZhciBMVCA9ICc8JztcbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcbnZhciBTQ1JJUFQgPSAnc2NyaXB0JztcbnZhciBJRV9QUk9UTyA9IHNoYXJlZEtleSgnSUVfUFJPVE8nKTtcblxudmFyIEVtcHR5Q29uc3RydWN0b3IgPSBmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH07XG5cbnZhciBzY3JpcHRUYWcgPSBmdW5jdGlvbiAoY29udGVudCkge1xuICByZXR1cm4gTFQgKyBTQ1JJUFQgKyBHVCArIGNvbnRlbnQgKyBMVCArICcvJyArIFNDUklQVCArIEdUO1xufTtcblxuLy8gQ3JlYXRlIG9iamVjdCB3aXRoIGZha2UgYG51bGxgIHByb3RvdHlwZTogdXNlIEFjdGl2ZVggT2JqZWN0IHdpdGggY2xlYXJlZCBwcm90b3R5cGVcbnZhciBOdWxsUHJvdG9PYmplY3RWaWFBY3RpdmVYID0gZnVuY3Rpb24gKGFjdGl2ZVhEb2N1bWVudCkge1xuICBhY3RpdmVYRG9jdW1lbnQud3JpdGUoc2NyaXB0VGFnKCcnKSk7XG4gIGFjdGl2ZVhEb2N1bWVudC5jbG9zZSgpO1xuICB2YXIgdGVtcCA9IGFjdGl2ZVhEb2N1bWVudC5wYXJlbnRXaW5kb3cuT2JqZWN0O1xuICBhY3RpdmVYRG9jdW1lbnQgPSBudWxsOyAvLyBhdm9pZCBtZW1vcnkgbGVha1xuICByZXR1cm4gdGVtcDtcbn07XG5cbi8vIENyZWF0ZSBvYmplY3Qgd2l0aCBmYWtlIGBudWxsYCBwcm90b3R5cGU6IHVzZSBpZnJhbWUgT2JqZWN0IHdpdGggY2xlYXJlZCBwcm90b3R5cGVcbnZhciBOdWxsUHJvdG9PYmplY3RWaWFJRnJhbWUgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIFRocmFzaCwgd2FzdGUgYW5kIHNvZG9teTogSUUgR0MgYnVnXG4gIHZhciBpZnJhbWUgPSBkb2N1bWVudENyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO1xuICB2YXIgSlMgPSAnamF2YScgKyBTQ1JJUFQgKyAnOic7XG4gIHZhciBpZnJhbWVEb2N1bWVudDtcbiAgaWZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gIGh0bWwuYXBwZW5kQ2hpbGQoaWZyYW1lKTtcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzQ3NVxuICBpZnJhbWUuc3JjID0gU3RyaW5nKEpTKTtcbiAgaWZyYW1lRG9jdW1lbnQgPSBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudDtcbiAgaWZyYW1lRG9jdW1lbnQub3BlbigpO1xuICBpZnJhbWVEb2N1bWVudC53cml0ZShzY3JpcHRUYWcoJ2RvY3VtZW50LkY9T2JqZWN0JykpO1xuICBpZnJhbWVEb2N1bWVudC5jbG9zZSgpO1xuICByZXR1cm4gaWZyYW1lRG9jdW1lbnQuRjtcbn07XG5cbi8vIENoZWNrIGZvciBkb2N1bWVudC5kb21haW4gYW5kIGFjdGl2ZSB4IHN1cHBvcnRcbi8vIE5vIG5lZWQgdG8gdXNlIGFjdGl2ZSB4IGFwcHJvYWNoIHdoZW4gZG9jdW1lbnQuZG9tYWluIGlzIG5vdCBzZXRcbi8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZXMtc2hpbXMvZXM1LXNoaW0vaXNzdWVzLzE1MFxuLy8gdmFyaWF0aW9uIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9raXRjYW1icmlkZ2UvZXM1LXNoaW0vY29tbWl0LzRmNzM4YWMwNjYzNDZcbi8vIGF2b2lkIElFIEdDIGJ1Z1xudmFyIGFjdGl2ZVhEb2N1bWVudDtcbnZhciBOdWxsUHJvdG9PYmplY3QgPSBmdW5jdGlvbiAoKSB7XG4gIHRyeSB7XG4gICAgLyogZ2xvYmFsIEFjdGl2ZVhPYmplY3QgLS0gb2xkIElFICovXG4gICAgYWN0aXZlWERvY3VtZW50ID0gZG9jdW1lbnQuZG9tYWluICYmIG5ldyBBY3RpdmVYT2JqZWN0KCdodG1sZmlsZScpO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBpZ25vcmUgKi8gfVxuICBOdWxsUHJvdG9PYmplY3QgPSBhY3RpdmVYRG9jdW1lbnQgPyBOdWxsUHJvdG9PYmplY3RWaWFBY3RpdmVYKGFjdGl2ZVhEb2N1bWVudCkgOiBOdWxsUHJvdG9PYmplY3RWaWFJRnJhbWUoKTtcbiAgdmFyIGxlbmd0aCA9IGVudW1CdWdLZXlzLmxlbmd0aDtcbiAgd2hpbGUgKGxlbmd0aC0tKSBkZWxldGUgTnVsbFByb3RvT2JqZWN0W1BST1RPVFlQRV1bZW51bUJ1Z0tleXNbbGVuZ3RoXV07XG4gIHJldHVybiBOdWxsUHJvdG9PYmplY3QoKTtcbn07XG5cbmhpZGRlbktleXNbSUVfUFJPVE9dID0gdHJ1ZTtcblxuLy8gYE9iamVjdC5jcmVhdGVgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuY3JlYXRlXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5jcmVhdGUgfHwgZnVuY3Rpb24gY3JlYXRlKE8sIFByb3BlcnRpZXMpIHtcbiAgdmFyIHJlc3VsdDtcbiAgaWYgKE8gIT09IG51bGwpIHtcbiAgICBFbXB0eUNvbnN0cnVjdG9yW1BST1RPVFlQRV0gPSBhbk9iamVjdChPKTtcbiAgICByZXN1bHQgPSBuZXcgRW1wdHlDb25zdHJ1Y3RvcigpO1xuICAgIEVtcHR5Q29uc3RydWN0b3JbUFJPVE9UWVBFXSA9IG51bGw7XG4gICAgLy8gYWRkIFwiX19wcm90b19fXCIgZm9yIE9iamVjdC5nZXRQcm90b3R5cGVPZiBwb2x5ZmlsbFxuICAgIHJlc3VsdFtJRV9QUk9UT10gPSBPO1xuICB9IGVsc2UgcmVzdWx0ID0gTnVsbFByb3RvT2JqZWN0KCk7XG4gIHJldHVybiBQcm9wZXJ0aWVzID09PSB1bmRlZmluZWQgPyByZXN1bHQgOiBkZWZpbmVQcm9wZXJ0aWVzKHJlc3VsdCwgUHJvcGVydGllcyk7XG59O1xuIiwidmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciBzaGFyZWRLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLWtleScpO1xudmFyIENPUlJFQ1RfUFJPVE9UWVBFX0dFVFRFUiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jb3JyZWN0LXByb3RvdHlwZS1nZXR0ZXInKTtcblxudmFyIElFX1BST1RPID0gc2hhcmVkS2V5KCdJRV9QUk9UTycpO1xudmFyIE9iamVjdFByb3RvdHlwZSA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8vIGBPYmplY3QuZ2V0UHJvdG90eXBlT2ZgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZ2V0cHJvdG90eXBlb2Zcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZ2V0cHJvdG90eXBlb2YgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBDT1JSRUNUX1BST1RPVFlQRV9HRVRURVIgPyBPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiAoTykge1xuICBPID0gdG9PYmplY3QoTyk7XG4gIGlmIChoYXMoTywgSUVfUFJPVE8pKSByZXR1cm4gT1tJRV9QUk9UT107XG4gIGlmICh0eXBlb2YgTy5jb25zdHJ1Y3RvciA9PSAnZnVuY3Rpb24nICYmIE8gaW5zdGFuY2VvZiBPLmNvbnN0cnVjdG9yKSB7XG4gICAgcmV0dXJuIE8uY29uc3RydWN0b3IucHJvdG90eXBlO1xuICB9IHJldHVybiBPIGluc3RhbmNlb2YgT2JqZWN0ID8gT2JqZWN0UHJvdG90eXBlIDogbnVsbDtcbn07XG4iLCJ2YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpLmY7XG52YXIgaGFzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcycpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgVE9fU1RSSU5HX1RBRyA9IHdlbGxLbm93blN5bWJvbCgndG9TdHJpbmdUYWcnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIFRBRywgU1RBVElDKSB7XG4gIGlmIChpdCAmJiAhaGFzKGl0ID0gU1RBVElDID8gaXQgOiBpdC5wcm90b3R5cGUsIFRPX1NUUklOR19UQUcpKSB7XG4gICAgZGVmaW5lUHJvcGVydHkoaXQsIFRPX1NUUklOR19UQUcsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogVEFHIH0pO1xuICB9XG59O1xuIiwidmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xuXG52YXIgc3BsaXQgPSAnJy5zcGxpdDtcblxuLy8gZmFsbGJhY2sgZm9yIG5vbi1hcnJheS1saWtlIEVTMyBhbmQgbm9uLWVudW1lcmFibGUgb2xkIFY4IHN0cmluZ3Ncbm1vZHVsZS5leHBvcnRzID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyB0aHJvd3MgYW4gZXJyb3IgaW4gcmhpbm8sIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9yaGluby9pc3N1ZXMvMzQ2XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnNcbiAgcmV0dXJuICFPYmplY3QoJ3onKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKTtcbn0pID8gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBjbGFzc29mKGl0KSA9PSAnU3RyaW5nJyA/IHNwbGl0LmNhbGwoaXQsICcnKSA6IE9iamVjdChpdCk7XG59IDogT2JqZWN0O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNoYXJBdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctbXVsdGlieXRlJykuY2hhckF0O1xuXG4vLyBgQWR2YW5jZVN0cmluZ0luZGV4YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYWR2YW5jZXN0cmluZ2luZGV4XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChTLCBpbmRleCwgdW5pY29kZSkge1xuICByZXR1cm4gaW5kZXggKyAodW5pY29kZSA/IGNoYXJBdChTLCBpbmRleCkubGVuZ3RoIDogMSk7XG59O1xuIiwidmFyIGJpbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1jb250ZXh0Jyk7XG52YXIgSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xudmFyIGFycmF5U3BlY2llc0NyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1zcGVjaWVzLWNyZWF0ZScpO1xuXG52YXIgcHVzaCA9IFtdLnB1c2g7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUueyBmb3JFYWNoLCBtYXAsIGZpbHRlciwgc29tZSwgZXZlcnksIGZpbmQsIGZpbmRJbmRleCwgZmlsdGVyT3V0IH1gIG1ldGhvZHMgaW1wbGVtZW50YXRpb25cbnZhciBjcmVhdGVNZXRob2QgPSBmdW5jdGlvbiAoVFlQRSkge1xuICB2YXIgSVNfTUFQID0gVFlQRSA9PSAxO1xuICB2YXIgSVNfRklMVEVSID0gVFlQRSA9PSAyO1xuICB2YXIgSVNfU09NRSA9IFRZUEUgPT0gMztcbiAgdmFyIElTX0VWRVJZID0gVFlQRSA9PSA0O1xuICB2YXIgSVNfRklORF9JTkRFWCA9IFRZUEUgPT0gNjtcbiAgdmFyIElTX0ZJTFRFUl9PVVQgPSBUWVBFID09IDc7XG4gIHZhciBOT19IT0xFUyA9IFRZUEUgPT0gNSB8fCBJU19GSU5EX0lOREVYO1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBjYWxsYmFja2ZuLCB0aGF0LCBzcGVjaWZpY0NyZWF0ZSkge1xuICAgIHZhciBPID0gdG9PYmplY3QoJHRoaXMpO1xuICAgIHZhciBzZWxmID0gSW5kZXhlZE9iamVjdChPKTtcbiAgICB2YXIgYm91bmRGdW5jdGlvbiA9IGJpbmQoY2FsbGJhY2tmbiwgdGhhdCwgMyk7XG4gICAgdmFyIGxlbmd0aCA9IHRvTGVuZ3RoKHNlbGYubGVuZ3RoKTtcbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIHZhciBjcmVhdGUgPSBzcGVjaWZpY0NyZWF0ZSB8fCBhcnJheVNwZWNpZXNDcmVhdGU7XG4gICAgdmFyIHRhcmdldCA9IElTX01BUCA/IGNyZWF0ZSgkdGhpcywgbGVuZ3RoKSA6IElTX0ZJTFRFUiB8fCBJU19GSUxURVJfT1VUID8gY3JlYXRlKCR0aGlzLCAwKSA6IHVuZGVmaW5lZDtcbiAgICB2YXIgdmFsdWUsIHJlc3VsdDtcbiAgICBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykgaWYgKE5PX0hPTEVTIHx8IGluZGV4IGluIHNlbGYpIHtcbiAgICAgIHZhbHVlID0gc2VsZltpbmRleF07XG4gICAgICByZXN1bHQgPSBib3VuZEZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgTyk7XG4gICAgICBpZiAoVFlQRSkge1xuICAgICAgICBpZiAoSVNfTUFQKSB0YXJnZXRbaW5kZXhdID0gcmVzdWx0OyAvLyBtYXBcbiAgICAgICAgZWxzZSBpZiAocmVzdWx0KSBzd2l0Y2ggKFRZUEUpIHtcbiAgICAgICAgICBjYXNlIDM6IHJldHVybiB0cnVlOyAgICAgICAgICAgICAgLy8gc29tZVxuICAgICAgICAgIGNhc2UgNTogcmV0dXJuIHZhbHVlOyAgICAgICAgICAgICAvLyBmaW5kXG4gICAgICAgICAgY2FzZSA2OiByZXR1cm4gaW5kZXg7ICAgICAgICAgICAgIC8vIGZpbmRJbmRleFxuICAgICAgICAgIGNhc2UgMjogcHVzaC5jYWxsKHRhcmdldCwgdmFsdWUpOyAvLyBmaWx0ZXJcbiAgICAgICAgfSBlbHNlIHN3aXRjaCAoVFlQRSkge1xuICAgICAgICAgIGNhc2UgNDogcmV0dXJuIGZhbHNlOyAgICAgICAgICAgICAvLyBldmVyeVxuICAgICAgICAgIGNhc2UgNzogcHVzaC5jYWxsKHRhcmdldCwgdmFsdWUpOyAvLyBmaWx0ZXJPdXRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gSVNfRklORF9JTkRFWCA/IC0xIDogSVNfU09NRSB8fCBJU19FVkVSWSA/IElTX0VWRVJZIDogdGFyZ2V0O1xuICB9O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZm9yRWFjaGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZvcmVhY2hcbiAgZm9yRWFjaDogY3JlYXRlTWV0aG9kKDApLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLm1hcGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLm1hcFxuICBtYXA6IGNyZWF0ZU1ldGhvZCgxKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5maWx0ZXJgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5maWx0ZXJcbiAgZmlsdGVyOiBjcmVhdGVNZXRob2QoMiksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuc29tZWAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLnNvbWVcbiAgc29tZTogY3JlYXRlTWV0aG9kKDMpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmV2ZXJ5YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZXZlcnlcbiAgZXZlcnk6IGNyZWF0ZU1ldGhvZCg0KSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5maW5kYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZmluZFxuICBmaW5kOiBjcmVhdGVNZXRob2QoNSksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZmluZEluZGV4YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZmluZEluZGV4XG4gIGZpbmRJbmRleDogY3JlYXRlTWV0aG9kKDYpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmZpbHRlck91dGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWFycmF5LWZpbHRlcmluZ1xuICBmaWx0ZXJPdXQ6IGNyZWF0ZU1ldGhvZCg3KVxufTtcbiIsInZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG5cbi8vIGBJc0FycmF5YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtaXNhcnJheVxubW9kdWxlLmV4cG9ydHMgPSBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uIGlzQXJyYXkoYXJnKSB7XG4gIHJldHVybiBjbGFzc29mKGFyZykgPT0gJ0FycmF5Jztcbn07XG4iLCJ2YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBWOF9WRVJTSU9OID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VuZ2luZS12OC12ZXJzaW9uJyk7XG5cbnZhciBTUEVDSUVTID0gd2VsbEtub3duU3ltYm9sKCdzcGVjaWVzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE1FVEhPRF9OQU1FKSB7XG4gIC8vIFdlIGNhbid0IHVzZSB0aGlzIGZlYXR1cmUgZGV0ZWN0aW9uIGluIFY4IHNpbmNlIGl0IGNhdXNlc1xuICAvLyBkZW9wdGltaXphdGlvbiBhbmQgc2VyaW91cyBwZXJmb3JtYW5jZSBkZWdyYWRhdGlvblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvNjc3XG4gIHJldHVybiBWOF9WRVJTSU9OID49IDUxIHx8ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGFycmF5ID0gW107XG4gICAgdmFyIGNvbnN0cnVjdG9yID0gYXJyYXkuY29uc3RydWN0b3IgPSB7fTtcbiAgICBjb25zdHJ1Y3RvcltTUEVDSUVTXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB7IGZvbzogMSB9O1xuICAgIH07XG4gICAgcmV0dXJuIGFycmF5W01FVEhPRF9OQU1FXShCb29sZWFuKS5mb28gIT09IDE7XG4gIH0pO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2UvY29uY2F0XCIpOyIsIm1vZHVsZS5leHBvcnRzID0gd2luZG93LmNyb3Nzcm9hZHM7IiwiaW1wb3J0IGtvIGZyb20gJ2tvJztcbmltcG9ydCB7IGlzVW5kIH0gZnJvbSAnQ29tbW9uL1V0aWxzJztcbmltcG9ydCB7IEFic3RyYWN0Q29tcG9uZW50IH0gZnJvbSAnQ29tcG9uZW50L0Fic3RyYWN0JztcblxuY2xhc3MgQWJzdHJhY3RDaGVja2JveCBleHRlbmRzIEFic3RyYWN0Q29tcG9uZW50IHtcblx0LyoqXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXMgPSB7fVxuXHQgKi9cblx0Y29uc3RydWN0b3IocGFyYW1zID0ge30pIHtcblx0XHRzdXBlcigpO1xuXG5cdFx0dGhpcy52YWx1ZSA9IHBhcmFtcy52YWx1ZTtcblx0XHRpZiAoaXNVbmQodGhpcy52YWx1ZSkgfHwgIXRoaXMudmFsdWUuc3Vic2NyaWJlKSB7XG5cdFx0XHR0aGlzLnZhbHVlID0ga28ub2JzZXJ2YWJsZShpc1VuZCh0aGlzLnZhbHVlKSA/IGZhbHNlIDogISF0aGlzLnZhbHVlKTtcblx0XHR9XG5cblx0XHR0aGlzLmVuYWJsZSA9IHBhcmFtcy5lbmFibGU7XG5cdFx0aWYgKGlzVW5kKHRoaXMuZW5hYmxlKSB8fCAhdGhpcy5lbmFibGUuc3Vic2NyaWJlKSB7XG5cdFx0XHR0aGlzLmVuYWJsZSA9IGtvLm9ic2VydmFibGUoaXNVbmQodGhpcy5lbmFibGUpID8gdHJ1ZSA6ICEhdGhpcy5lbmFibGUpO1xuXHRcdH1cblxuXHRcdHRoaXMuZGlzYWJsZSA9IHBhcmFtcy5kaXNhYmxlO1xuXHRcdGlmIChpc1VuZCh0aGlzLmRpc2FibGUpIHx8ICF0aGlzLmRpc2FibGUuc3Vic2NyaWJlKSB7XG5cdFx0XHR0aGlzLmRpc2FibGUgPSBrby5vYnNlcnZhYmxlKGlzVW5kKHRoaXMuZGlzYWJsZSkgPyBmYWxzZSA6ICEhdGhpcy5kaXNhYmxlKTtcblx0XHR9XG5cblx0XHR0aGlzLmxhYmVsID0gcGFyYW1zLmxhYmVsIHx8ICcnO1xuXHRcdHRoaXMuaW5saW5lID0gaXNVbmQocGFyYW1zLmlubGluZSkgPyBmYWxzZSA6IHBhcmFtcy5pbmxpbmU7XG5cblx0XHR0aGlzLnJlYWRPbmx5ID0gaXNVbmQocGFyYW1zLnJlYWRPbmx5KSA/IGZhbHNlIDogISFwYXJhbXMucmVhZE9ubHk7XG5cdFx0dGhpcy5pbnZlcnRlZCA9IGlzVW5kKHBhcmFtcy5pbnZlcnRlZCkgPyBmYWxzZSA6ICEhcGFyYW1zLmludmVydGVkO1xuXG5cdFx0dGhpcy5sYWJlbGVkID0gIWlzVW5kKHBhcmFtcy5sYWJlbCk7XG5cdFx0dGhpcy5sYWJlbEFuaW1hdGVkID0gISFwYXJhbXMubGFiZWxBbmltYXRlZDtcblx0fVxuXG5cdGNsaWNrKCkge1xuXHRcdGlmICghdGhpcy5yZWFkT25seSAmJiB0aGlzLmVuYWJsZSgpICYmICF0aGlzLmRpc2FibGUoKSkge1xuXHRcdFx0dGhpcy52YWx1ZSghdGhpcy52YWx1ZSgpKTtcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IHsgQWJzdHJhY3RDaGVja2JveCwgQWJzdHJhY3RDaGVja2JveCBhcyBkZWZhdWx0IH07XG4iLCIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSBmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KCk7XG5cbmV4cG9ydHMuZGVmYXVsdCA9IHBhcnNlO1xuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG4vKipcbiAqIFBhcnNlcyBzdHJ1Y3R1cmVkIGUtbWFpbCBhZGRyZXNzZXMgZnJvbSBhbiBhZGRyZXNzIGZpZWxkXG4gKlxuICogRXhhbXBsZTpcbiAqXG4gKiAgICBcIk5hbWUgPGFkZHJlc3NAZG9tYWluPlwiXG4gKlxuICogd2lsbCBiZSBjb252ZXJ0ZWQgdG9cbiAqXG4gKiAgICAgW3tuYW1lOiBcIk5hbWVcIiwgYWRkcmVzczogXCJhZGRyZXNzQGRvbWFpblwifV1cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyIEFkZHJlc3MgZmllbGRcbiAqIEByZXR1cm4ge0FycmF5fSBBbiBhcnJheSBvZiBhZGRyZXNzIG9iamVjdHNcbiAqL1xuZnVuY3Rpb24gcGFyc2Uoc3RyKSB7XG4gIHZhciB0b2tlbml6ZXIgPSBuZXcgVG9rZW5pemVyKHN0cik7XG4gIHZhciB0b2tlbnMgPSB0b2tlbml6ZXIudG9rZW5pemUoKTtcblxuICB2YXIgYWRkcmVzc2VzID0gW107XG4gIHZhciBhZGRyZXNzID0gW107XG4gIHZhciBwYXJzZWRBZGRyZXNzZXMgPSBbXTtcblxuICB0b2tlbnMuZm9yRWFjaChmdW5jdGlvbiAodG9rZW4pIHtcbiAgICBpZiAodG9rZW4udHlwZSA9PT0gJ29wZXJhdG9yJyAmJiAodG9rZW4udmFsdWUgPT09ICcsJyB8fCB0b2tlbi52YWx1ZSA9PT0gJzsnKSkge1xuICAgICAgaWYgKGFkZHJlc3MubGVuZ3RoKSB7XG4gICAgICAgIGFkZHJlc3Nlcy5wdXNoKGFkZHJlc3MpO1xuICAgICAgfVxuICAgICAgYWRkcmVzcyA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICBhZGRyZXNzLnB1c2godG9rZW4pO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKGFkZHJlc3MubGVuZ3RoKSB7XG4gICAgYWRkcmVzc2VzLnB1c2goYWRkcmVzcyk7XG4gIH1cblxuICBhZGRyZXNzZXMuZm9yRWFjaChmdW5jdGlvbiAoYWRkcmVzcykge1xuICAgIGFkZHJlc3MgPSBfaGFuZGxlQWRkcmVzcyhhZGRyZXNzKTtcbiAgICBpZiAoYWRkcmVzcy5sZW5ndGgpIHtcbiAgICAgIHBhcnNlZEFkZHJlc3NlcyA9IHBhcnNlZEFkZHJlc3Nlcy5jb25jYXQoYWRkcmVzcyk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcGFyc2VkQWRkcmVzc2VzO1xufTtcblxuLyoqXG4gKiBDb252ZXJ0cyB0b2tlbnMgZm9yIGEgc2luZ2xlIGFkZHJlc3MgaW50byBhbiBhZGRyZXNzIG9iamVjdFxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IHRva2VucyBUb2tlbnMgb2JqZWN0XG4gKiBAcmV0dXJuIHtPYmplY3R9IEFkZHJlc3Mgb2JqZWN0XG4gKi9cbmZ1bmN0aW9uIF9oYW5kbGVBZGRyZXNzKHRva2Vucykge1xuICB2YXIgaXNHcm91cCA9IGZhbHNlO1xuICB2YXIgc3RhdGUgPSAndGV4dCc7XG4gIHZhciBhZGRyZXNzID0gdm9pZCAwO1xuICB2YXIgYWRkcmVzc2VzID0gW107XG4gIHZhciBkYXRhID0ge1xuICAgIGFkZHJlc3M6IFtdLFxuICAgIGNvbW1lbnQ6IFtdLFxuICAgIGdyb3VwOiBbXSxcbiAgICB0ZXh0OiBbXVxuXG4gICAgLy8gRmlsdGVyIG91dCA8YWRkcmVzc2VzPiwgKGNvbW1lbnRzKSBhbmQgcmVndWxhciB0ZXh0XG4gIH07Zm9yICh2YXIgaSA9IDAsIGxlbiA9IHRva2Vucy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIHZhciB0b2tlbiA9IHRva2Vuc1tpXTtcblxuICAgIGlmICh0b2tlbi50eXBlID09PSAnb3BlcmF0b3InKSB7XG4gICAgICBzd2l0Y2ggKHRva2VuLnZhbHVlKSB7XG4gICAgICAgIGNhc2UgJzwnOlxuICAgICAgICAgIHN0YXRlID0gJ2FkZHJlc3MnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICcoJzpcbiAgICAgICAgICBzdGF0ZSA9ICdjb21tZW50JztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnOic6XG4gICAgICAgICAgc3RhdGUgPSAnZ3JvdXAnO1xuICAgICAgICAgIGlzR3JvdXAgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHN0YXRlID0gJ3RleHQnO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodG9rZW4udmFsdWUpIHtcbiAgICAgICAgZGF0YVtzdGF0ZV0ucHVzaCh0b2tlbi52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGhlcmUgaXMgbm8gdGV4dCBidXQgYSBjb21tZW50LCByZXBsYWNlIHRoZSB0d29cbiAgaWYgKCFkYXRhLnRleHQubGVuZ3RoICYmIGRhdGEuY29tbWVudC5sZW5ndGgpIHtcbiAgICBkYXRhLnRleHQgPSBkYXRhLmNvbW1lbnQ7XG4gICAgZGF0YS5jb21tZW50ID0gW107XG4gIH1cblxuICBpZiAoaXNHcm91cCkge1xuICAgIC8vIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzI4MjIjYXBwZW5kaXgtQS4xLjNcbiAgICBkYXRhLnRleHQgPSBkYXRhLnRleHQuam9pbignICcpO1xuICAgIGFkZHJlc3Nlcy5wdXNoKHtcbiAgICAgIG5hbWU6IGRhdGEudGV4dCB8fCBhZGRyZXNzICYmIGFkZHJlc3MubmFtZSxcbiAgICAgIGdyb3VwOiBkYXRhLmdyb3VwLmxlbmd0aCA/IHBhcnNlKGRhdGEuZ3JvdXAuam9pbignLCcpKSA6IFtdXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgLy8gSWYgbm8gYWRkcmVzcyB3YXMgZm91bmQsIHRyeSB0byBkZXRlY3Qgb25lIGZyb20gcmVndWxhciB0ZXh0XG4gICAgaWYgKCFkYXRhLmFkZHJlc3MubGVuZ3RoICYmIGRhdGEudGV4dC5sZW5ndGgpIHtcbiAgICAgIGZvciAodmFyIF9pID0gZGF0YS50ZXh0Lmxlbmd0aCAtIDE7IF9pID49IDA7IF9pLS0pIHtcbiAgICAgICAgaWYgKGRhdGEudGV4dFtfaV0ubWF0Y2goL15bXkBcXHNdK0BbXkBcXHNdKyQvKSkge1xuICAgICAgICAgIGRhdGEuYWRkcmVzcyA9IGRhdGEudGV4dC5zcGxpY2UoX2ksIDEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHZhciBfcmVnZXhIYW5kbGVyID0gZnVuY3Rpb24gX3JlZ2V4SGFuZGxlcihhZGRyZXNzKSB7XG4gICAgICAgIGlmICghZGF0YS5hZGRyZXNzLmxlbmd0aCkge1xuICAgICAgICAgIGRhdGEuYWRkcmVzcyA9IFthZGRyZXNzLnRyaW0oKV07XG4gICAgICAgICAgcmV0dXJuICcgJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gYWRkcmVzcztcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgLy8gc3RpbGwgbm8gYWRkcmVzc1xuICAgICAgaWYgKCFkYXRhLmFkZHJlc3MubGVuZ3RoKSB7XG4gICAgICAgIGZvciAodmFyIF9pMiA9IGRhdGEudGV4dC5sZW5ndGggLSAxOyBfaTIgPj0gMDsgX2kyLS0pIHtcbiAgICAgICAgICBkYXRhLnRleHRbX2kyXSA9IGRhdGEudGV4dFtfaTJdLnJlcGxhY2UoL1xccypcXGJbXkBcXHNdK0BbXkBcXHNdK1xcYlxccyovLCBfcmVnZXhIYW5kbGVyKS50cmltKCk7XG4gICAgICAgICAgaWYgKGRhdGEuYWRkcmVzcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHRoZXJlJ3Mgc3RpbGwgaXMgbm8gdGV4dCBidXQgYSBjb21tZW50IGV4aXh0cywgcmVwbGFjZSB0aGUgdHdvXG4gICAgaWYgKCFkYXRhLnRleHQubGVuZ3RoICYmIGRhdGEuY29tbWVudC5sZW5ndGgpIHtcbiAgICAgIGRhdGEudGV4dCA9IGRhdGEuY29tbWVudDtcbiAgICAgIGRhdGEuY29tbWVudCA9IFtdO1xuICAgIH1cblxuICAgIC8vIEtlZXAgb25seSB0aGUgZmlyc3QgYWRkcmVzcyBvY2N1cmVuY2UsIHB1c2ggb3RoZXJzIHRvIHJlZ3VsYXIgdGV4dFxuICAgIGlmIChkYXRhLmFkZHJlc3MubGVuZ3RoID4gMSkge1xuICAgICAgZGF0YS50ZXh0ID0gZGF0YS50ZXh0LmNvbmNhdChkYXRhLmFkZHJlc3Muc3BsaWNlKDEpKTtcbiAgICB9XG5cbiAgICAvLyBKb2luIHZhbHVlcyB3aXRoIHNwYWNlc1xuICAgIGRhdGEudGV4dCA9IGRhdGEudGV4dC5qb2luKCcgJyk7XG4gICAgZGF0YS5hZGRyZXNzID0gZGF0YS5hZGRyZXNzLmpvaW4oJyAnKTtcblxuICAgIGlmICghZGF0YS5hZGRyZXNzICYmIGlzR3JvdXApIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgYWRkcmVzcyA9IHtcbiAgICAgICAgYWRkcmVzczogZGF0YS5hZGRyZXNzIHx8IGRhdGEudGV4dCB8fCAnJyxcbiAgICAgICAgbmFtZTogZGF0YS50ZXh0IHx8IGRhdGEuYWRkcmVzcyB8fCAnJ1xuICAgICAgfTtcblxuICAgICAgaWYgKGFkZHJlc3MuYWRkcmVzcyA9PT0gYWRkcmVzcy5uYW1lKSB7XG4gICAgICAgIGlmICgoYWRkcmVzcy5hZGRyZXNzIHx8ICcnKS5tYXRjaCgvQC8pKSB7XG4gICAgICAgICAgYWRkcmVzcy5uYW1lID0gJyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWRkcmVzcy5hZGRyZXNzID0gJyc7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYWRkcmVzc2VzLnB1c2goYWRkcmVzcyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGFkZHJlc3Nlcztcbn07XG5cbi8qXG4gKiBPcGVyYXRvciB0b2tlbnMgYW5kIHdoaWNoIHRva2VucyBhcmUgZXhwZWN0ZWQgdG8gZW5kIHRoZSBzZXF1ZW5jZVxuICovXG52YXIgT1BFUkFUT1JTID0ge1xuICAnXCInOiAnXCInLFxuICAnKCc6ICcpJyxcbiAgJzwnOiAnPicsXG4gICcsJzogJycsXG4gIC8vIEdyb3VwcyBhcmUgZW5kZWQgYnkgc2VtaWNvbG9uc1xuICAnOic6ICc7JyxcbiAgLy8gU2VtaWNvbG9ucyBhcmUgbm90IGEgbGVnYWwgZGVsaW1pdGVyIHBlciB0aGUgUkZDMjgyMiBncmFtbWFyIG90aGVyXG4gIC8vIHRoYW4gZm9yIHRlcm1pbmF0aW5nIGEgZ3JvdXAsIGJ1dCB0aGV5IGFyZSBhbHNvIG5vdCB2YWxpZCBmb3IgYW55XG4gIC8vIG90aGVyIHVzZSBpbiB0aGlzIGNvbnRleHQuICBHaXZlbiB0aGF0IHNvbWUgbWFpbCBjbGllbnRzIGhhdmVcbiAgLy8gaGlzdG9yaWNhbGx5IGFsbG93ZWQgdGhlIHNlbWljb2xvbiBhcyBhIGRlbGltaXRlciBlcXVpdmFsZW50IHRvIHRoZVxuICAvLyBjb21tYSBpbiB0aGVpciBVSSwgaXQgbWFrZXMgc2Vuc2UgdG8gdHJlYXQgdGhlbSB0aGUgc2FtZSBhcyBhIGNvbW1hXG4gIC8vIHdoZW4gdXNlZCBvdXRzaWRlIG9mIGEgZ3JvdXAuXG4gICc7JzogJydcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFRva2VuaXplciBvYmplY3QgZm9yIHRva2VuaXppbmcgYWRkcmVzcyBmaWVsZCBzdHJpbmdzXG4gICAqXG4gICAqIEBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0ge1N0cmluZ30gc3RyIEFkZHJlc3MgZmllbGQgc3RyaW5nXG4gICAqL1xufTtcbnZhciBUb2tlbml6ZXIgPSBmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIFRva2VuaXplcihzdHIpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVG9rZW5pemVyKTtcblxuICAgIHRoaXMuc3RyID0gKHN0ciB8fCAnJykudG9TdHJpbmcoKTtcbiAgICB0aGlzLm9wZXJhdG9yQ3VycmVudCA9ICcnO1xuICAgIHRoaXMub3BlcmF0b3JFeHBlY3RpbmcgPSAnJztcbiAgICB0aGlzLm5vZGUgPSBudWxsO1xuICAgIHRoaXMuZXNjYXBlZCA9IGZhbHNlO1xuICAgIHRoaXMubGlzdCA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFRva2VuaXplcyB0aGUgb3JpZ2luYWwgaW5wdXQgc3RyaW5nXG4gICAqXG4gICAqIEByZXR1cm4ge0FycmF5fSBBbiBhcnJheSBvZiBvcGVyYXRvcnx0ZXh0IHRva2Vuc1xuICAgKi9cblxuXG4gIF9jcmVhdGVDbGFzcyhUb2tlbml6ZXIsIFt7XG4gICAga2V5OiAndG9rZW5pemUnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiB0b2tlbml6ZSgpIHtcbiAgICAgIHZhciBjaHIgPSB2b2lkIDA7XG4gICAgICB2YXIgbGlzdCA9IFtdO1xuICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHRoaXMuc3RyLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgIGNociA9IHRoaXMuc3RyLmNoYXJBdChpKTtcbiAgICAgICAgdGhpcy5jaGVja0NoYXIoY2hyKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5saXN0LmZvckVhY2goZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgICAgbm9kZS52YWx1ZSA9IChub2RlLnZhbHVlIHx8ICcnKS50b1N0cmluZygpLnRyaW0oKTtcbiAgICAgICAgaWYgKG5vZGUudmFsdWUpIHtcbiAgICAgICAgICBsaXN0LnB1c2gobm9kZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gbGlzdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYSBjaGFyYWN0ZXIgaXMgYW4gb3BlcmF0b3Igb3IgdGV4dCBhbmQgYWN0cyBhY2NvcmRpbmdseVxuICAgICAqXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IGNociBDaGFyYWN0ZXIgZnJvbSB0aGUgYWRkcmVzcyBmaWVsZFxuICAgICAqL1xuXG4gIH0sIHtcbiAgICBrZXk6ICdjaGVja0NoYXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjaGVja0NoYXIoY2hyKSB7XG4gICAgICBpZiAoKGNociBpbiBPUEVSQVRPUlMgfHwgY2hyID09PSAnXFxcXCcpICYmIHRoaXMuZXNjYXBlZCkge1xuICAgICAgICB0aGlzLmVzY2FwZWQgPSBmYWxzZTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5vcGVyYXRvckV4cGVjdGluZyAmJiBjaHIgPT09IHRoaXMub3BlcmF0b3JFeHBlY3RpbmcpIHtcbiAgICAgICAgdGhpcy5ub2RlID0ge1xuICAgICAgICAgIHR5cGU6ICdvcGVyYXRvcicsXG4gICAgICAgICAgdmFsdWU6IGNoclxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmxpc3QucHVzaCh0aGlzLm5vZGUpO1xuICAgICAgICB0aGlzLm5vZGUgPSBudWxsO1xuICAgICAgICB0aGlzLm9wZXJhdG9yRXhwZWN0aW5nID0gJyc7XG4gICAgICAgIHRoaXMuZXNjYXBlZCA9IGZhbHNlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLm9wZXJhdG9yRXhwZWN0aW5nICYmIGNociBpbiBPUEVSQVRPUlMpIHtcbiAgICAgICAgdGhpcy5ub2RlID0ge1xuICAgICAgICAgIHR5cGU6ICdvcGVyYXRvcicsXG4gICAgICAgICAgdmFsdWU6IGNoclxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmxpc3QucHVzaCh0aGlzLm5vZGUpO1xuICAgICAgICB0aGlzLm5vZGUgPSBudWxsO1xuICAgICAgICB0aGlzLm9wZXJhdG9yRXhwZWN0aW5nID0gT1BFUkFUT1JTW2Nocl07XG4gICAgICAgIHRoaXMuZXNjYXBlZCA9IGZhbHNlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5lc2NhcGVkICYmIGNociA9PT0gJ1xcXFwnKSB7XG4gICAgICAgIHRoaXMuZXNjYXBlZCA9IHRydWU7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLm5vZGUpIHtcbiAgICAgICAgdGhpcy5ub2RlID0ge1xuICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICB2YWx1ZTogJydcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5saXN0LnB1c2godGhpcy5ub2RlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuZXNjYXBlZCAmJiBjaHIgIT09ICdcXFxcJykge1xuICAgICAgICB0aGlzLm5vZGUudmFsdWUgKz0gJ1xcXFwnO1xuICAgICAgfVxuXG4gICAgICB0aGlzLm5vZGUudmFsdWUgKz0gY2hyO1xuICAgICAgdGhpcy5lc2NhcGVkID0gZmFsc2U7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFRva2VuaXplcjtcbn0oKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYklpNHVMM055WXk5aFpHUnlaWE56Y0dGeWMyVnlMbXB6SWwwc0ltNWhiV1Z6SWpwYkluQmhjbk5sSWl3aWMzUnlJaXdpZEc5clpXNXBlbVZ5SWl3aVZHOXJaVzVwZW1WeUlpd2lkRzlyWlc1eklpd2lkRzlyWlc1cGVtVWlMQ0poWkdSeVpYTnpaWE1pTENKaFpHUnlaWE56SWl3aWNHRnljMlZrUVdSa2NtVnpjMlZ6SWl3aVptOXlSV0ZqYUNJc0luUnZhMlZ1SWl3aWRIbHdaU0lzSW5aaGJIVmxJaXdpYkdWdVozUm9JaXdpY0hWemFDSXNJbDlvWVc1a2JHVkJaR1J5WlhOeklpd2lZMjl1WTJGMElpd2lhWE5IY205MWNDSXNJbk4wWVhSbElpd2laR0YwWVNJc0ltTnZiVzFsYm5RaUxDSm5jbTkxY0NJc0luUmxlSFFpTENKcElpd2liR1Z1SWl3aWFtOXBiaUlzSW01aGJXVWlMQ0p0WVhSamFDSXNJbk53YkdsalpTSXNJbDl5WldkbGVFaGhibVJzWlhJaUxDSjBjbWx0SWl3aWNtVndiR0ZqWlNJc0lrOVFSVkpCVkU5U1V5SXNJblJ2VTNSeWFXNW5JaXdpYjNCbGNtRjBiM0pEZFhKeVpXNTBJaXdpYjNCbGNtRjBiM0pGZUhCbFkzUnBibWNpTENKdWIyUmxJaXdpWlhOallYQmxaQ0lzSW14cGMzUWlMQ0pqYUhJaUxDSmphR0Z5UVhRaUxDSmphR1ZqYTBOb1lYSWlYU3dpYldGd2NHbHVaM01pT2lJN096czdPenM3TzJ0Q1FXTjNRa0VzU3pzN096dEJRV1I0UWpzN096czdPenM3T3pzN096czdRVUZqWlN4VFFVRlRRU3hMUVVGVUxFTkJRV2RDUXl4SFFVRm9RaXhGUVVGeFFqdEJRVU5zUXl4TlFVRk5ReXhaUVVGWkxFbEJRVWxETEZOQlFVb3NRMEZCWTBZc1IwRkJaQ3hEUVVGc1FqdEJRVU5CTEUxQlFVMUhMRk5CUVZOR0xGVkJRVlZITEZGQlFWWXNSVUZCWmpzN1FVRkZRU3hOUVVGTlF5eFpRVUZaTEVWQlFXeENPMEZCUTBFc1RVRkJTVU1zVlVGQlZTeEZRVUZrTzBGQlEwRXNUVUZCU1VNc2EwSkJRV3RDTEVWQlFYUkNPenRCUVVWQlNpeFRRVUZQU3l4UFFVRlFMRU5CUVdVc1ZVRkJWVU1zUzBGQlZpeEZRVUZwUWp0QlFVTTVRaXhSUVVGSlFTeE5RVUZOUXl4SlFVRk9MRXRCUVdVc1ZVRkJaaXhMUVVFNFFrUXNUVUZCVFVVc1MwRkJUaXhMUVVGblFpeEhRVUZvUWl4SlFVRjFRa1lzVFVGQlRVVXNTMEZCVGl4TFFVRm5RaXhIUVVGeVJTeERRVUZLTEVWQlFTdEZPMEZCUXpkRkxGVkJRVWxNTEZGQlFWRk5MRTFCUVZvc1JVRkJiMEk3UVVGRGJFSlFMR3RDUVVGVlVTeEpRVUZXTEVOQlFXVlFMRTlCUVdZN1FVRkRSRHRCUVVORVFTeG5Ra0ZCVlN4RlFVRldPMEZCUTBRc1MwRk1SQ3hOUVV0UE8wRkJRMHhCTEdOQlFWRlBMRWxCUVZJc1EwRkJZVW9zUzBGQllqdEJRVU5FTzBGQlEwWXNSMEZVUkRzN1FVRlhRU3hOUVVGSlNDeFJRVUZSVFN4TlFVRmFMRVZCUVc5Q08wRkJRMnhDVUN4alFVRlZVU3hKUVVGV0xFTkJRV1ZRTEU5QlFXWTdRVUZEUkRzN1FVRkZSRVFzV1VGQlZVY3NUMEZCVml4RFFVRnJRaXhWUVVGVlJpeFBRVUZXTEVWQlFXMUNPMEZCUTI1RFFTeGpRVUZWVVN4bFFVRmxVaXhQUVVGbUxFTkJRVlk3UVVGRFFTeFJRVUZKUVN4UlFVRlJUU3hOUVVGYUxFVkJRVzlDTzBGQlEyeENUQ3gzUWtGQmEwSkJMR2RDUVVGblFsRXNUVUZCYUVJc1EwRkJkVUpVTEU5QlFYWkNMRU5CUVd4Q08wRkJRMFE3UVVGRFJpeEhRVXhFT3p0QlFVOUJMRk5CUVU5RExHVkJRVkE3UVVGRFJEczdRVUZGUkRzN096czdPMEZCVFVFc1UwRkJVMDhzWTBGQlZDeERRVUY1UWxnc1RVRkJla0lzUlVGQmFVTTdRVUZETDBJc1RVRkJTV0VzVlVGQlZTeExRVUZrTzBGQlEwRXNUVUZCU1VNc1VVRkJVU3hOUVVGYU8wRkJRMEVzVFVGQlNWZ3NaMEpCUVVvN1FVRkRRU3hOUVVGTlJDeFpRVUZaTEVWQlFXeENPMEZCUTBFc1RVRkJUV0VzVDBGQlR6dEJRVU5ZV2l4aFFVRlRMRVZCUkVVN1FVRkZXR0VzWVVGQlV5eEZRVVpGTzBGQlIxaERMRmRCUVU4c1JVRklTVHRCUVVsWVF5eFZRVUZOT3p0QlFVZFNPMEZCVUdFc1IwRkJZaXhEUVZGQkxFdEJRVXNzU1VGQlNVTXNTVUZCU1N4RFFVRlNMRVZCUVZkRExFMUJRVTF3UWl4UFFVRlBVeXhOUVVFM1FpeEZRVUZ4UTFVc1NVRkJTVU1zUjBGQmVrTXNSVUZCT0VORUxFZEJRVGxETEVWQlFXMUVPMEZCUTJwRUxGRkJRVTFpTEZGQlFWRk9MRTlCUVU5dFFpeERRVUZRTEVOQlFXUTdPMEZCUlVFc1VVRkJTV0lzVFVGQlRVTXNTVUZCVGl4TFFVRmxMRlZCUVc1Q0xFVkJRU3RDTzBGQlF6ZENMR05CUVZGRUxFMUJRVTFGTEV0QlFXUTdRVUZEUlN4aFFVRkxMRWRCUVV3N1FVRkRSVTBzYTBKQlFWRXNVMEZCVWp0QlFVTkJPMEZCUTBZc1lVRkJTeXhIUVVGTU8wRkJRMFZCTEd0Q1FVRlJMRk5CUVZJN1FVRkRRVHRCUVVOR0xHRkJRVXNzUjBGQlREdEJRVU5GUVN4clFrRkJVU3hQUVVGU08wRkJRMEZFTEc5Q1FVRlZMRWxCUVZZN1FVRkRRVHRCUVVOR08wRkJRMFZETEd0Q1FVRlJMRTFCUVZJN1FVRmFTanRCUVdORUxFdEJaa1FzVFVGbFR6dEJRVU5NTEZWQlFVbFNMRTFCUVUxRkxFdEJRVllzUlVGQmFVSTdRVUZEWms4c1lVRkJTMFFzUzBGQlRDeEZRVUZaU2l4SlFVRmFMRU5CUVdsQ1NpeE5RVUZOUlN4TFFVRjJRanRCUVVORU8wRkJRMFk3UVVGRFJqczdRVUZGUkR0QlFVTkJMRTFCUVVrc1EwRkJRMDhzUzBGQlMwY3NTVUZCVEN4RFFVRlZWQ3hOUVVGWUxFbEJRWEZDVFN4TFFVRkxReXhQUVVGTUxFTkJRV0ZRTEUxQlFYUkRMRVZCUVRoRE8wRkJRelZEVFN4VFFVRkxSeXhKUVVGTUxFZEJRVmxJTEV0QlFVdERMRTlCUVdwQ08wRkJRMEZFTEZOQlFVdERMRTlCUVV3c1IwRkJaU3hGUVVGbU8wRkJRMFE3TzBGQlJVUXNUVUZCU1Vnc1QwRkJTaXhGUVVGaE8wRkJRMWc3UVVGRFFVVXNVMEZCUzBjc1NVRkJUQ3hIUVVGWlNDeExRVUZMUnl4SlFVRk1MRU5CUVZWSExFbEJRVllzUTBGQlpTeEhRVUZtTEVOQlFWbzdRVUZEUVc1Q0xHTkJRVlZSTEVsQlFWWXNRMEZCWlR0QlFVTmlXU3haUVVGTlVDeExRVUZMUnl4SlFVRk1MRWxCUVdObUxGZEJRVmRCTEZGQlFWRnRRaXhKUVVReFFqdEJRVVZpVEN4aFFVRlBSaXhMUVVGTFJTeExRVUZNTEVOQlFWZFNMRTFCUVZnc1IwRkJiMEppTEUxQlFVMXRRaXhMUVVGTFJTeExRVUZNTEVOQlFWZEpMRWxCUVZnc1EwRkJaMElzUjBGQmFFSXNRMEZCVGl4RFFVRndRaXhIUVVGclJEdEJRVVkxUXl4TFFVRm1PMEZCU1VRc1IwRlFSQ3hOUVU5UE8wRkJRMHc3UVVGRFFTeFJRVUZKTEVOQlFVTk9MRXRCUVV0YUxFOUJRVXdzUTBGQllVMHNUVUZCWkN4SlFVRjNRazBzUzBGQlMwY3NTVUZCVEN4RFFVRlZWQ3hOUVVGMFF5eEZRVUU0UXp0QlFVTTFReXhYUVVGTExFbEJRVWxWTEV0QlFVbEtMRXRCUVV0SExFbEJRVXdzUTBGQlZWUXNUVUZCVml4SFFVRnRRaXhEUVVGb1F5eEZRVUZ0UTFVc1RVRkJTeXhEUVVGNFF5eEZRVUV5UTBFc1NVRkJNME1zUlVGQlowUTdRVUZET1VNc1dVRkJTVW9zUzBGQlMwY3NTVUZCVEN4RFFVRlZReXhGUVVGV0xFVkJRV0ZKTEV0QlFXSXNRMEZCYlVJc2JVSkJRVzVDTEVOQlFVb3NSVUZCTmtNN1FVRkRNME5TTEdWQlFVdGFMRTlCUVV3c1IwRkJaVmtzUzBGQlMwY3NTVUZCVEN4RFFVRlZUU3hOUVVGV0xFTkJRV2xDVEN4RlFVRnFRaXhGUVVGdlFpeERRVUZ3UWl4RFFVRm1PMEZCUTBFN1FVRkRSRHRCUVVOR096dEJRVVZFTEZWQlFVbE5MR2RDUVVGblFpeFRRVUZvUWtFc1lVRkJaMElzUTBGQlZYUkNMRTlCUVZZc1JVRkJiVUk3UVVGRGNrTXNXVUZCU1N4RFFVRkRXU3hMUVVGTFdpeFBRVUZNTEVOQlFXRk5MRTFCUVd4Q0xFVkJRVEJDTzBGQlEzaENUU3hsUVVGTFdpeFBRVUZNTEVkQlFXVXNRMEZCUTBFc1VVRkJVWFZDTEVsQlFWSXNSVUZCUkN4RFFVRm1PMEZCUTBFc2FVSkJRVThzUjBGQlVEdEJRVU5FTEZOQlNFUXNUVUZIVHp0QlFVTk1MR2xDUVVGUGRrSXNUMEZCVUR0QlFVTkVPMEZCUTBZc1QwRlFSRHM3UVVGVFFUdEJRVU5CTEZWQlFVa3NRMEZCUTFrc1MwRkJTMW9zVDBGQlRDeERRVUZoVFN4TlFVRnNRaXhGUVVFd1FqdEJRVU40UWl4aFFVRkxMRWxCUVVsVkxFMUJRVWxLTEV0QlFVdEhMRWxCUVV3c1EwRkJWVlFzVFVGQlZpeEhRVUZ0UWl4RFFVRm9ReXhGUVVGdFExVXNUMEZCU3l4RFFVRjRReXhGUVVFeVEwRXNTMEZCTTBNc1JVRkJaMFE3UVVGRE9VTktMR1ZCUVV0SExFbEJRVXdzUTBGQlZVTXNSMEZCVml4SlFVRmxTaXhMUVVGTFJ5eEpRVUZNTEVOQlFWVkRMRWRCUVZZc1JVRkJZVkVzVDBGQllpeERRVUZ4UWl3eVFrRkJja0lzUlVGQmEwUkdMR0ZCUVd4RUxFVkJRV2xGUXl4SlFVRnFSU3hGUVVGbU8wRkJRMEVzWTBGQlNWZ3NTMEZCUzFvc1QwRkJUQ3hEUVVGaFRTeE5RVUZxUWl4RlFVRjVRanRCUVVOMlFqdEJRVU5FTzBGQlEwWTdRVUZEUmp0QlFVTkdPenRCUVVWRU8wRkJRMEVzVVVGQlNTeERRVUZEVFN4TFFVRkxSeXhKUVVGTUxFTkJRVlZVTEUxQlFWZ3NTVUZCY1VKTkxFdEJRVXRETEU5QlFVd3NRMEZCWVZBc1RVRkJkRU1zUlVGQk9FTTdRVUZETlVOTkxGZEJRVXRITEVsQlFVd3NSMEZCV1Vnc1MwRkJTME1zVDBGQmFrSTdRVUZEUVVRc1YwRkJTME1zVDBGQlRDeEhRVUZsTEVWQlFXWTdRVUZEUkRzN1FVRkZSRHRCUVVOQkxGRkJRVWxFTEV0QlFVdGFMRTlCUVV3c1EwRkJZVTBzVFVGQllpeEhRVUZ6UWl4RFFVRXhRaXhGUVVFMlFqdEJRVU16UWswc1YwRkJTMGNzU1VGQlRDeEhRVUZaU0N4TFFVRkxSeXhKUVVGTUxFTkJRVlZPTEUxQlFWWXNRMEZCYVVKSExFdEJRVXRhTEU5QlFVd3NRMEZCWVhGQ0xFMUJRV0lzUTBGQmIwSXNRMEZCY0VJc1EwRkJha0lzUTBGQldqdEJRVU5FT3p0QlFVVkVPMEZCUTBGVUxGTkJRVXRITEVsQlFVd3NSMEZCV1Vnc1MwRkJTMGNzU1VGQlRDeERRVUZWUnl4SlFVRldMRU5CUVdVc1IwRkJaaXhEUVVGYU8wRkJRMEZPTEZOQlFVdGFMRTlCUVV3c1IwRkJaVmtzUzBGQlMxb3NUMEZCVEN4RFFVRmhhMElzU1VGQllpeERRVUZyUWl4SFFVRnNRaXhEUVVGbU96dEJRVVZCTEZGQlFVa3NRMEZCUTA0c1MwRkJTMW9zVDBGQlRpeEpRVUZwUWxVc1QwRkJja0lzUlVGQk9FSTdRVUZETlVJc1lVRkJUeXhGUVVGUU8wRkJRMFFzUzBGR1JDeE5RVVZQTzBGQlEweFdMR2RDUVVGVk8wRkJRMUpCTEdsQ1FVRlRXU3hMUVVGTFdpeFBRVUZNTEVsQlFXZENXU3hMUVVGTFJ5eEpRVUZ5UWl4SlFVRTJRaXhGUVVRNVFqdEJRVVZTU1N4alFVRk5VQ3hMUVVGTFJ5eEpRVUZNTEVsQlFXRklMRXRCUVV0YUxFOUJRV3hDTEVsQlFUWkNPMEZCUmpOQ0xFOUJRVlk3TzBGQlMwRXNWVUZCU1VFc1VVRkJVVUVzVDBGQlVpeExRVUZ2UWtFc1VVRkJVVzFDTEVsQlFXaERMRVZCUVhORE8wRkJRM0JETEZsQlFVa3NRMEZCUTI1Q0xGRkJRVkZCTEU5QlFWSXNTVUZCYlVJc1JVRkJjRUlzUlVGQmQwSnZRaXhMUVVGNFFpeERRVUU0UWl4SFFVRTVRaXhEUVVGS0xFVkJRWGRETzBGQlEzUkRjRUlzYTBKQlFWRnRRaXhKUVVGU0xFZEJRV1VzUlVGQlpqdEJRVU5FTEZOQlJrUXNUVUZGVHp0QlFVTk1ia0lzYTBKQlFWRkJMRTlCUVZJc1IwRkJhMElzUlVGQmJFSTdRVUZEUkR0QlFVTkdPenRCUVVWRVJDeG5Ra0ZCVlZFc1NVRkJWaXhEUVVGbFVDeFBRVUZtTzBGQlEwUTdRVUZEUmpzN1FVRkZSQ3hUUVVGUFJDeFRRVUZRTzBGQlEwUTdPMEZCUlVRN096dEJRVWRCTEVsQlFVMHdRaXhaUVVGWk8wRkJRMmhDTEU5QlFVc3NSMEZFVnp0QlFVVm9RaXhQUVVGTExFZEJSbGM3UVVGSGFFSXNUMEZCU3l4SFFVaFhPMEZCU1doQ0xFOUJRVXNzUlVGS1Z6dEJRVXRvUWp0QlFVTkJMRTlCUVVzc1IwRk9WenRCUVU5b1FqdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRU3hQUVVGTE96dEJRVWRRT3pzN096czdRVUZvUW10Q0xFTkJRV3hDTzBsQmMwSk5OMElzVXp0QlFVTktMSEZDUVVGaFJpeEhRVUZpTEVWQlFXdENPMEZCUVVFN08wRkJRMmhDTEZOQlFVdEJMRWRCUVV3c1IwRkJWeXhEUVVGRFFTeFBRVUZQTEVWQlFWSXNSVUZCV1dkRExGRkJRVm9zUlVGQldEdEJRVU5CTEZOQlFVdERMR1ZCUVV3c1IwRkJkVUlzUlVGQmRrSTdRVUZEUVN4VFFVRkxReXhwUWtGQlRDeEhRVUY1UWl4RlFVRjZRanRCUVVOQkxGTkJRVXRETEVsQlFVd3NSMEZCV1N4SlFVRmFPMEZCUTBFc1UwRkJTME1zVDBGQlRDeEhRVUZsTEV0QlFXWTdRVUZEUVN4VFFVRkxReXhKUVVGTUxFZEJRVmtzUlVGQldqdEJRVU5FT3p0QlFVVkVPenM3T3pzN096czdLMEpCUzFrN1FVRkRWaXhWUVVGSlF5eFpRVUZLTzBGQlEwRXNWVUZCU1VRc1QwRkJUeXhGUVVGWU8wRkJRMEVzVjBGQlN5eEpRVUZKWml4SlFVRkpMRU5CUVZJc1JVRkJWME1zVFVGQlRTeExRVUZMZGtJc1IwRkJUQ3hEUVVGVFdTeE5RVUV2UWl4RlFVRjFRMVVzU1VGQlNVTXNSMEZCTTBNc1JVRkJaMFJFTEVkQlFXaEVMRVZCUVhGRU8wRkJRMjVFWjBJc1kwRkJUU3hMUVVGTGRFTXNSMEZCVEN4RFFVRlRkVU1zVFVGQlZDeERRVUZuUW1wQ0xFTkJRV2hDTEVOQlFVNDdRVUZEUVN4aFFVRkxhMElzVTBGQlRDeERRVUZsUml4SFFVRm1PMEZCUTBRN08wRkJSVVFzVjBGQlMwUXNTVUZCVEN4RFFVRlZOMElzVDBGQlZpeERRVUZyUWl4VlFVRlZNa0lzU1VGQlZpeEZRVUZuUWp0QlFVTm9RMEVzWVVGQlMzaENMRXRCUVV3c1IwRkJZU3hEUVVGRGQwSXNTMEZCUzNoQ0xFdEJRVXdzU1VGQll5eEZRVUZtTEVWQlFXMUNjVUlzVVVGQmJrSXNSMEZCT0VKSUxFbEJRVGxDTEVWQlFXSTdRVUZEUVN4WlFVRkpUU3hMUVVGTGVFSXNTMEZCVkN4RlFVRm5RanRCUVVOa01FSXNaVUZCUzNoQ0xFbEJRVXdzUTBGQlZYTkNMRWxCUVZZN1FVRkRSRHRCUVVOR0xFOUJURVE3TzBGQlQwRXNZVUZCVDBVc1NVRkJVRHRCUVVORU96dEJRVVZFT3pzN096czdPenM0UWtGTFYwTXNSeXhGUVVGTE8wRkJRMlFzVlVGQlNTeERRVUZEUVN4UFFVRlBVQ3hUUVVGUUxFbEJRVzlDVHl4UlFVRlJMRWxCUVRkQ0xFdEJRWE5ETEV0QlFVdEdMRTlCUVM5RExFVkJRWGRFTzBGQlEzUkVMR0ZCUVV0QkxFOUJRVXdzUjBGQlpTeExRVUZtTzBGQlEwUXNUMEZHUkN4TlFVVlBMRWxCUVVrc1MwRkJTMFlzYVVKQlFVd3NTVUZCTUVKSkxGRkJRVkVzUzBGQlMwb3NhVUpCUVRORExFVkJRVGhFTzBGQlEyNUZMR0ZCUVV0RExFbEJRVXdzUjBGQldUdEJRVU5XZWtJc1owSkJRVTBzVlVGRVNUdEJRVVZXUXl4cFFrRkJUekpDTzBGQlJrY3NVMEZCV2p0QlFVbEJMR0ZCUVV0RUxFbEJRVXdzUTBGQlZYaENMRWxCUVZZc1EwRkJaU3hMUVVGTGMwSXNTVUZCY0VJN1FVRkRRU3hoUVVGTFFTeEpRVUZNTEVkQlFWa3NTVUZCV2p0QlFVTkJMR0ZCUVV0RUxHbENRVUZNTEVkQlFYbENMRVZCUVhwQ08wRkJRMEVzWVVGQlMwVXNUMEZCVEN4SFFVRmxMRXRCUVdZN1FVRkRRVHRCUVVORUxFOUJWazBzVFVGVlFTeEpRVUZKTEVOQlFVTXNTMEZCUzBZc2FVSkJRVTRzU1VGQk1rSkpMRTlCUVU5UUxGTkJRWFJETEVWQlFXbEVPMEZCUTNSRUxHRkJRVXRKTEVsQlFVd3NSMEZCV1R0QlFVTldla0lzWjBKQlFVMHNWVUZFU1R0QlFVVldReXhwUWtGQlR6SkNPMEZCUmtjc1UwRkJXanRCUVVsQkxHRkJRVXRFTEVsQlFVd3NRMEZCVlhoQ0xFbEJRVllzUTBGQlpTeExRVUZMYzBJc1NVRkJjRUk3UVVGRFFTeGhRVUZMUVN4SlFVRk1MRWRCUVZrc1NVRkJXanRCUVVOQkxHRkJRVXRFTEdsQ1FVRk1MRWRCUVhsQ1NDeFZRVUZWVHl4SFFVRldMRU5CUVhwQ08wRkJRMEVzWVVGQlMwWXNUMEZCVEN4SFFVRmxMRXRCUVdZN1FVRkRRVHRCUVVORU96dEJRVVZFTEZWQlFVa3NRMEZCUXl4TFFVRkxRU3hQUVVGT0xFbEJRV2xDUlN4UlFVRlJMRWxCUVRkQ0xFVkJRVzFETzBGQlEycERMR0ZCUVV0R0xFOUJRVXdzUjBGQlpTeEpRVUZtTzBGQlEwRTdRVUZEUkRzN1FVRkZSQ3hWUVVGSkxFTkJRVU1zUzBGQlMwUXNTVUZCVml4RlFVRm5RanRCUVVOa0xHRkJRVXRCTEVsQlFVd3NSMEZCV1R0QlFVTldla0lzWjBKQlFVMHNUVUZFU1R0QlFVVldReXhwUWtGQlR6dEJRVVpITEZOQlFWbzdRVUZKUVN4aFFVRkxNRUlzU1VGQlRDeERRVUZWZUVJc1NVRkJWaXhEUVVGbExFdEJRVXR6UWl4SlFVRndRanRCUVVORU96dEJRVVZFTEZWQlFVa3NTMEZCUzBNc1QwRkJUQ3hKUVVGblFrVXNVVUZCVVN4SlFVRTFRaXhGUVVGclF6dEJRVU5vUXl4aFFVRkxTQ3hKUVVGTUxFTkJRVlY0UWl4TFFVRldMRWxCUVcxQ0xFbEJRVzVDTzBGQlEwUTdPMEZCUlVRc1YwRkJTM2RDTEVsQlFVd3NRMEZCVlhoQ0xFdEJRVllzU1VGQmJVSXlRaXhIUVVGdVFqdEJRVU5CTEZkQlFVdEdMRTlCUVV3c1IwRkJaU3hMUVVGbU8wRkJRMFFpTENKbWFXeGxJam9pWVdSa2NtVnpjM0JoY25ObGNpNXFjeUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUtseHVJQ29nVUdGeWMyVnpJSE4wY25WamRIVnlaV1FnWlMxdFlXbHNJR0ZrWkhKbGMzTmxjeUJtY205dElHRnVJR0ZrWkhKbGMzTWdabWxsYkdSY2JpQXFYRzRnS2lCRmVHRnRjR3hsT2x4dUlDcGNiaUFxSUNBZ0lGd2lUbUZ0WlNBOFlXUmtjbVZ6YzBCa2IyMWhhVzQrWENKY2JpQXFYRzRnS2lCM2FXeHNJR0psSUdOdmJuWmxjblJsWkNCMGIxeHVJQ3BjYmlBcUlDQWdJQ0JiZTI1aGJXVTZJRndpVG1GdFpWd2lMQ0JoWkdSeVpYTnpPaUJjSW1Ga1pISmxjM05BWkc5dFlXbHVYQ0o5WFZ4dUlDcGNiaUFxSUVCd1lYSmhiU0I3VTNSeWFXNW5mU0J6ZEhJZ1FXUmtjbVZ6Y3lCbWFXVnNaRnh1SUNvZ1FISmxkSFZ5YmlCN1FYSnlZWGw5SUVGdUlHRnljbUY1SUc5bUlHRmtaSEpsYzNNZ2IySnFaV04wYzF4dUlDb3ZYRzVsZUhCdmNuUWdaR1ZtWVhWc2RDQm1kVzVqZEdsdmJpQndZWEp6WlNBb2MzUnlLU0I3WEc0Z0lHTnZibk4wSUhSdmEyVnVhWHBsY2lBOUlHNWxkeUJVYjJ0bGJtbDZaWElvYzNSeUtWeHVJQ0JqYjI1emRDQjBiMnRsYm5NZ1BTQjBiMnRsYm1sNlpYSXVkRzlyWlc1cGVtVW9LVnh1WEc0Z0lHTnZibk4wSUdGa1pISmxjM05sY3lBOUlGdGRYRzRnSUd4bGRDQmhaR1J5WlhOeklEMGdXMTFjYmlBZ2JHVjBJSEJoY25ObFpFRmtaSEpsYzNObGN5QTlJRnRkWEc1Y2JpQWdkRzlyWlc1ekxtWnZja1ZoWTJnb1puVnVZM1JwYjI0Z0tIUnZhMlZ1S1NCN1hHNGdJQ0FnYVdZZ0tIUnZhMlZ1TG5SNWNHVWdQVDA5SUNkdmNHVnlZWFJ2Y2ljZ0ppWWdLSFJ2YTJWdUxuWmhiSFZsSUQwOVBTQW5MQ2NnZkh3Z2RHOXJaVzR1ZG1Gc2RXVWdQVDA5SUNjN0p5a3BJSHRjYmlBZ0lDQWdJR2xtSUNoaFpHUnlaWE56TG14bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNCaFpHUnlaWE56WlhNdWNIVnphQ2hoWkdSeVpYTnpLVnh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdZV1JrY21WemN5QTlJRnRkWEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lHRmtaSEpsYzNNdWNIVnphQ2gwYjJ0bGJpbGNiaUFnSUNCOVhHNGdJSDBwWEc1Y2JpQWdhV1lnS0dGa1pISmxjM011YkdWdVozUm9LU0I3WEc0Z0lDQWdZV1JrY21WemMyVnpMbkIxYzJnb1lXUmtjbVZ6Y3lsY2JpQWdmVnh1WEc0Z0lHRmtaSEpsYzNObGN5NW1iM0pGWVdOb0tHWjFibU4wYVc5dUlDaGhaR1J5WlhOektTQjdYRzRnSUNBZ1lXUmtjbVZ6Y3lBOUlGOW9ZVzVrYkdWQlpHUnlaWE56S0dGa1pISmxjM01wWEc0Z0lDQWdhV1lnS0dGa1pISmxjM011YkdWdVozUm9LU0I3WEc0Z0lDQWdJQ0J3WVhKelpXUkJaR1J5WlhOelpYTWdQU0J3WVhKelpXUkJaR1J5WlhOelpYTXVZMjl1WTJGMEtHRmtaSEpsYzNNcFhHNGdJQ0FnZlZ4dUlDQjlLVnh1WEc0Z0lISmxkSFZ5YmlCd1lYSnpaV1JCWkdSeVpYTnpaWE5jYm4wN1hHNWNiaThxS2x4dUlDb2dRMjl1ZG1WeWRITWdkRzlyWlc1eklHWnZjaUJoSUhOcGJtZHNaU0JoWkdSeVpYTnpJR2x1ZEc4Z1lXNGdZV1JrY21WemN5QnZZbXBsWTNSY2JpQXFYRzRnS2lCQWNHRnlZVzBnZTBGeWNtRjVmU0IwYjJ0bGJuTWdWRzlyWlc1eklHOWlhbVZqZEZ4dUlDb2dRSEpsZEhWeWJpQjdUMkpxWldOMGZTQkJaR1J5WlhOeklHOWlhbVZqZEZ4dUlDb3ZYRzVtZFc1amRHbHZiaUJmYUdGdVpHeGxRV1JrY21WemN5QW9kRzlyWlc1ektTQjdYRzRnSUd4bGRDQnBjMGR5YjNWd0lEMGdabUZzYzJWY2JpQWdiR1YwSUhOMFlYUmxJRDBnSjNSbGVIUW5YRzRnSUd4bGRDQmhaR1J5WlhOelhHNGdJR052Ym5OMElHRmtaSEpsYzNObGN5QTlJRnRkWEc0Z0lHTnZibk4wSUdSaGRHRWdQU0I3WEc0Z0lDQWdZV1JrY21WemN6b2dXMTBzWEc0Z0lDQWdZMjl0YldWdWREb2dXMTBzWEc0Z0lDQWdaM0p2ZFhBNklGdGRMRnh1SUNBZ0lIUmxlSFE2SUZ0ZFhHNGdJSDFjYmx4dUlDQXZMeUJHYVd4MFpYSWdiM1YwSUR4aFpHUnlaWE56WlhNK0xDQW9ZMjl0YldWdWRITXBJR0Z1WkNCeVpXZDFiR0Z5SUhSbGVIUmNiaUFnWm05eUlDaHNaWFFnYVNBOUlEQXNJR3hsYmlBOUlIUnZhMlZ1Y3k1c1pXNW5kR2c3SUdrZ1BDQnNaVzQ3SUdrckt5a2dlMXh1SUNBZ0lHTnZibk4wSUhSdmEyVnVJRDBnZEc5clpXNXpXMmxkWEc1Y2JpQWdJQ0JwWmlBb2RHOXJaVzR1ZEhsd1pTQTlQVDBnSjI5d1pYSmhkRzl5SnlrZ2UxeHVJQ0FnSUNBZ2MzZHBkR05vSUNoMGIydGxiaTUyWVd4MVpTa2dlMXh1SUNBZ0lDQWdJQ0JqWVhObElDYzhKenBjYmlBZ0lDQWdJQ0FnSUNCemRHRjBaU0E5SUNkaFpHUnlaWE56SjF4dUlDQWdJQ0FnSUNBZ0lHSnlaV0ZyWEc0Z0lDQWdJQ0FnSUdOaGMyVWdKeWduT2x4dUlDQWdJQ0FnSUNBZ0lITjBZWFJsSUQwZ0oyTnZiVzFsYm5RblhHNGdJQ0FnSUNBZ0lDQWdZbkpsWVd0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0FuT2ljNlhHNGdJQ0FnSUNBZ0lDQWdjM1JoZEdVZ1BTQW5aM0p2ZFhBblhHNGdJQ0FnSUNBZ0lDQWdhWE5IY205MWNDQTlJSFJ5ZFdWY2JpQWdJQ0FnSUNBZ0lDQmljbVZoYTF4dUlDQWdJQ0FnSUNCa1pXWmhkV3gwT2x4dUlDQWdJQ0FnSUNBZ0lITjBZWFJsSUQwZ0ozUmxlSFFuWEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lHbG1JQ2gwYjJ0bGJpNTJZV3gxWlNrZ2UxeHVJQ0FnSUNBZ0lDQmtZWFJoVzNOMFlYUmxYUzV3ZFhOb0tIUnZhMlZ1TG5aaGJIVmxLVnh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJQzh2SUVsbUlIUm9aWEpsSUdseklHNXZJSFJsZUhRZ1luVjBJR0VnWTI5dGJXVnVkQ3dnY21Wd2JHRmpaU0IwYUdVZ2RIZHZYRzRnSUdsbUlDZ2haR0YwWVM1MFpYaDBMbXhsYm1kMGFDQW1KaUJrWVhSaExtTnZiVzFsYm5RdWJHVnVaM1JvS1NCN1hHNGdJQ0FnWkdGMFlTNTBaWGgwSUQwZ1pHRjBZUzVqYjIxdFpXNTBYRzRnSUNBZ1pHRjBZUzVqYjIxdFpXNTBJRDBnVzExY2JpQWdmVnh1WEc0Z0lHbG1JQ2hwYzBkeWIzVndLU0I3WEc0Z0lDQWdMeThnYUhSMGNEb3ZMM1J2YjJ4ekxtbGxkR1l1YjNKbkwyaDBiV3d2Y21aak1qZ3lNaU5oY0hCbGJtUnBlQzFCTGpFdU0xeHVJQ0FnSUdSaGRHRXVkR1Y0ZENBOUlHUmhkR0V1ZEdWNGRDNXFiMmx1S0NjZ0p5bGNiaUFnSUNCaFpHUnlaWE56WlhNdWNIVnphQ2g3WEc0Z0lDQWdJQ0J1WVcxbE9pQmtZWFJoTG5SbGVIUWdmSHdnS0dGa1pISmxjM01nSmlZZ1lXUmtjbVZ6Y3k1dVlXMWxLU3hjYmlBZ0lDQWdJR2R5YjNWd09pQmtZWFJoTG1keWIzVndMbXhsYm1kMGFDQS9JSEJoY25ObEtHUmhkR0V1WjNKdmRYQXVhbTlwYmlnbkxDY3BLU0E2SUZ0ZFhHNGdJQ0FnZlNsY2JpQWdmU0JsYkhObElIdGNiaUFnSUNBdkx5QkpaaUJ1YnlCaFpHUnlaWE56SUhkaGN5Qm1iM1Z1WkN3Z2RISjVJSFJ2SUdSbGRHVmpkQ0J2Ym1VZ1puSnZiU0J5WldkMWJHRnlJSFJsZUhSY2JpQWdJQ0JwWmlBb0lXUmhkR0V1WVdSa2NtVnpjeTVzWlc1bmRHZ2dKaVlnWkdGMFlTNTBaWGgwTG14bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnWm05eUlDaHNaWFFnYVNBOUlHUmhkR0V1ZEdWNGRDNXNaVzVuZEdnZ0xTQXhPeUJwSUQ0OUlEQTdJR2t0TFNrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvWkdGMFlTNTBaWGgwVzJsZExtMWhkR05vS0M5ZVcxNUFYRnh6WFN0QVcxNUFYRnh6WFNza0x5a3BJSHRjYmlBZ0lDQWdJQ0FnSUNCa1lYUmhMbUZrWkhKbGMzTWdQU0JrWVhSaExuUmxlSFF1YzNCc2FXTmxLR2tzSURFcFhHNGdJQ0FnSUNBZ0lDQWdZbkpsWVd0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQjJZWElnWDNKbFoyVjRTR0Z1Wkd4bGNpQTlJR1oxYm1OMGFXOXVJQ2hoWkdSeVpYTnpLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDZ2haR0YwWVM1aFpHUnlaWE56TG14bGJtZDBhQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lHUmhkR0V1WVdSa2NtVnpjeUE5SUZ0aFpHUnlaWE56TG5SeWFXMG9LVjFjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnSnlBblhHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHRmtaSEpsYzNOY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQXZMeUJ6ZEdsc2JDQnVieUJoWkdSeVpYTnpYRzRnSUNBZ0lDQnBaaUFvSVdSaGRHRXVZV1JrY21WemN5NXNaVzVuZEdncElIdGNiaUFnSUNBZ0lDQWdabTl5SUNoc1pYUWdhU0E5SUdSaGRHRXVkR1Y0ZEM1c1pXNW5kR2dnTFNBeE95QnBJRDQ5SURBN0lHa3RMU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHUmhkR0V1ZEdWNGRGdHBYU0E5SUdSaGRHRXVkR1Y0ZEZ0cFhTNXlaWEJzWVdObEtDOWNYSE1xWEZ4aVcxNUFYRnh6WFN0QVcxNUFYRnh6WFN0Y1hHSmNYSE1xTHl3Z1gzSmxaMlY0U0dGdVpHeGxjaWt1ZEhKcGJTZ3BYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tHUmhkR0V1WVdSa2NtVnpjeTVzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHSnlaV0ZyWEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5OGdTV1lnZEdobGNtVW5jeUJ6ZEdsc2JDQnBjeUJ1YnlCMFpYaDBJR0oxZENCaElHTnZiVzFsYm5RZ1pYaHBlSFJ6TENCeVpYQnNZV05sSUhSb1pTQjBkMjljYmlBZ0lDQnBaaUFvSVdSaGRHRXVkR1Y0ZEM1c1pXNW5kR2dnSmlZZ1pHRjBZUzVqYjIxdFpXNTBMbXhsYm1kMGFDa2dlMXh1SUNBZ0lDQWdaR0YwWVM1MFpYaDBJRDBnWkdGMFlTNWpiMjF0Wlc1MFhHNGdJQ0FnSUNCa1lYUmhMbU52YlcxbGJuUWdQU0JiWFZ4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUV0bFpYQWdiMjVzZVNCMGFHVWdabWx5YzNRZ1lXUmtjbVZ6Y3lCdlkyTjFjbVZ1WTJVc0lIQjFjMmdnYjNSb1pYSnpJSFJ2SUhKbFozVnNZWElnZEdWNGRGeHVJQ0FnSUdsbUlDaGtZWFJoTG1Ga1pISmxjM011YkdWdVozUm9JRDRnTVNrZ2UxeHVJQ0FnSUNBZ1pHRjBZUzUwWlhoMElEMGdaR0YwWVM1MFpYaDBMbU52Ym1OaGRDaGtZWFJoTG1Ga1pISmxjM011YzNCc2FXTmxLREVwS1Z4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUVwdmFXNGdkbUZzZFdWeklIZHBkR2dnYzNCaFkyVnpYRzRnSUNBZ1pHRjBZUzUwWlhoMElEMGdaR0YwWVM1MFpYaDBMbXB2YVc0b0p5QW5LVnh1SUNBZ0lHUmhkR0V1WVdSa2NtVnpjeUE5SUdSaGRHRXVZV1JrY21WemN5NXFiMmx1S0NjZ0p5bGNibHh1SUNBZ0lHbG1JQ2doWkdGMFlTNWhaR1J5WlhOeklDWW1JR2x6UjNKdmRYQXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmJYVnh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCaFpHUnlaWE56SUQwZ2UxeHVJQ0FnSUNBZ0lDQmhaR1J5WlhOek9pQmtZWFJoTG1Ga1pISmxjM01nZkh3Z1pHRjBZUzUwWlhoMElIeDhJQ2NuTEZ4dUlDQWdJQ0FnSUNCdVlXMWxPaUJrWVhSaExuUmxlSFFnZkh3Z1pHRjBZUzVoWkdSeVpYTnpJSHg4SUNjblhHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHbG1JQ2hoWkdSeVpYTnpMbUZrWkhKbGMzTWdQVDA5SUdGa1pISmxjM011Ym1GdFpTa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb0tHRmtaSEpsYzNNdVlXUmtjbVZ6Y3lCOGZDQW5KeWt1YldGMFkyZ29MMEF2S1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJR0ZrWkhKbGMzTXVibUZ0WlNBOUlDY25YRzRnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnWVdSa2NtVnpjeTVoWkdSeVpYTnpJRDBnSnlkY2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQmhaR1J5WlhOelpYTXVjSFZ6YUNoaFpHUnlaWE56S1Z4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUJoWkdSeVpYTnpaWE5jYm4wN1hHNWNiaThxWEc0Z0tpQlBjR1Z5WVhSdmNpQjBiMnRsYm5NZ1lXNWtJSGRvYVdOb0lIUnZhMlZ1Y3lCaGNtVWdaWGh3WldOMFpXUWdkRzhnWlc1a0lIUm9aU0J6WlhGMVpXNWpaVnh1SUNvdlhHNWpiMjV6ZENCUFVFVlNRVlJQVWxNZ1BTQjdYRzRnSUNkY0lpYzZJQ2RjSWljc1hHNGdJQ2NvSnpvZ0p5a25MRnh1SUNBblBDYzZJQ2MrSnl4Y2JpQWdKeXduT2lBbkp5eGNiaUFnTHk4Z1IzSnZkWEJ6SUdGeVpTQmxibVJsWkNCaWVTQnpaVzFwWTI5c2IyNXpYRzRnSUNjNkp6b2dKenNuTEZ4dUlDQXZMeUJUWlcxcFkyOXNiMjV6SUdGeVpTQnViM1FnWVNCc1pXZGhiQ0JrWld4cGJXbDBaWElnY0dWeUlIUm9aU0JTUmtNeU9ESXlJR2R5WVcxdFlYSWdiM1JvWlhKY2JpQWdMeThnZEdoaGJpQm1iM0lnZEdWeWJXbHVZWFJwYm1jZ1lTQm5jbTkxY0N3Z1luVjBJSFJvWlhrZ1lYSmxJR0ZzYzI4Z2JtOTBJSFpoYkdsa0lHWnZjaUJoYm5sY2JpQWdMeThnYjNSb1pYSWdkWE5sSUdsdUlIUm9hWE1nWTI5dWRHVjRkQzRnSUVkcGRtVnVJSFJvWVhRZ2MyOXRaU0J0WVdsc0lHTnNhV1Z1ZEhNZ2FHRjJaVnh1SUNBdkx5Qm9hWE4wYjNKcFkyRnNiSGtnWVd4c2IzZGxaQ0IwYUdVZ2MyVnRhV052Ykc5dUlHRnpJR0VnWkdWc2FXMXBkR1Z5SUdWeGRXbDJZV3hsYm5RZ2RHOGdkR2hsWEc0Z0lDOHZJR052YlcxaElHbHVJSFJvWldseUlGVkpMQ0JwZENCdFlXdGxjeUJ6Wlc1elpTQjBieUIwY21WaGRDQjBhR1Z0SUhSb1pTQnpZVzFsSUdGeklHRWdZMjl0YldGY2JpQWdMeThnZDJobGJpQjFjMlZrSUc5MWRITnBaR1VnYjJZZ1lTQm5jbTkxY0M1Y2JpQWdKenNuT2lBbkoxeHVmVnh1WEc0dktpcGNiaUFxSUVOeVpXRjBaWE1nWVNCVWIydGxibWw2WlhJZ2IySnFaV04wSUdadmNpQjBiMnRsYm1sNmFXNW5JR0ZrWkhKbGMzTWdabWxsYkdRZ2MzUnlhVzVuYzF4dUlDcGNiaUFxSUVCamIyNXpkSEoxWTNSdmNseHVJQ29nUUhCaGNtRnRJSHRUZEhKcGJtZDlJSE4wY2lCQlpHUnlaWE56SUdacFpXeGtJSE4wY21sdVoxeHVJQ292WEc1amJHRnpjeUJVYjJ0bGJtbDZaWElnZTF4dUlDQmpiMjV6ZEhKMVkzUnZjaUFvYzNSeUtTQjdYRzRnSUNBZ2RHaHBjeTV6ZEhJZ1BTQW9jM1J5SUh4OElDY25LUzUwYjFOMGNtbHVaeWdwWEc0Z0lDQWdkR2hwY3k1dmNHVnlZWFJ2Y2tOMWNuSmxiblFnUFNBbkoxeHVJQ0FnSUhSb2FYTXViM0JsY21GMGIzSkZlSEJsWTNScGJtY2dQU0FuSjF4dUlDQWdJSFJvYVhNdWJtOWtaU0E5SUc1MWJHeGNiaUFnSUNCMGFHbHpMbVZ6WTJGd1pXUWdQU0JtWVd4elpWeHVJQ0FnSUhSb2FYTXViR2x6ZENBOUlGdGRYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVkc5clpXNXBlbVZ6SUhSb1pTQnZjbWxuYVc1aGJDQnBibkIxZENCemRISnBibWRjYmlBZ0lDcGNiaUFnSUNvZ1FISmxkSFZ5YmlCN1FYSnlZWGw5SUVGdUlHRnljbUY1SUc5bUlHOXdaWEpoZEc5eWZIUmxlSFFnZEc5clpXNXpYRzRnSUNBcUwxeHVJQ0IwYjJ0bGJtbDZaU0FvS1NCN1hHNGdJQ0FnYkdWMElHTm9jbHh1SUNBZ0lHeGxkQ0JzYVhOMElEMGdXMTFjYmlBZ0lDQm1iM0lnS0haaGNpQnBJRDBnTUN3Z2JHVnVJRDBnZEdocGN5NXpkSEl1YkdWdVozUm9PeUJwSUR3Z2JHVnVPeUJwS3lzcElIdGNiaUFnSUNBZ0lHTm9jaUE5SUhSb2FYTXVjM1J5TG1Ob1lYSkJkQ2hwS1Z4dUlDQWdJQ0FnZEdocGN5NWphR1ZqYTBOb1lYSW9ZMmh5S1Z4dUlDQWdJSDFjYmx4dUlDQWdJSFJvYVhNdWJHbHpkQzVtYjNKRllXTm9LR1oxYm1OMGFXOXVJQ2h1YjJSbEtTQjdYRzRnSUNBZ0lDQnViMlJsTG5aaGJIVmxJRDBnS0c1dlpHVXVkbUZzZFdVZ2ZId2dKeWNwTG5SdlUzUnlhVzVuS0NrdWRISnBiU2dwWEc0Z0lDQWdJQ0JwWmlBb2JtOWtaUzUyWVd4MVpTa2dlMXh1SUNBZ0lDQWdJQ0JzYVhOMExuQjFjMmdvYm05a1pTbGNiaUFnSUNBZ0lIMWNiaUFnSUNCOUtWeHVYRzRnSUNBZ2NtVjBkWEp1SUd4cGMzUmNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJEYUdWamEzTWdhV1lnWVNCamFHRnlZV04wWlhJZ2FYTWdZVzRnYjNCbGNtRjBiM0lnYjNJZ2RHVjRkQ0JoYm1RZ1lXTjBjeUJoWTJOdmNtUnBibWRzZVZ4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UxTjBjbWx1WjMwZ1kyaHlJRU5vWVhKaFkzUmxjaUJtY205dElIUm9aU0JoWkdSeVpYTnpJR1pwWld4a1hHNGdJQ0FxTDF4dUlDQmphR1ZqYTBOb1lYSWdLR05vY2lrZ2UxeHVJQ0FnSUdsbUlDZ29ZMmh5SUdsdUlFOVFSVkpCVkU5U1V5QjhmQ0JqYUhJZ1BUMDlJQ2RjWEZ4Y0p5a2dKaVlnZEdocGN5NWxjMk5oY0dWa0tTQjdYRzRnSUNBZ0lDQjBhR2x6TG1WelkyRndaV1FnUFNCbVlXeHpaVnh1SUNBZ0lIMGdaV3h6WlNCcFppQW9kR2hwY3k1dmNHVnlZWFJ2Y2tWNGNHVmpkR2x1WnlBbUppQmphSElnUFQwOUlIUm9hWE11YjNCbGNtRjBiM0pGZUhCbFkzUnBibWNwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVibTlrWlNBOUlIdGNiaUFnSUNBZ0lDQWdkSGx3WlRvZ0oyOXdaWEpoZEc5eUp5eGNiaUFnSUNBZ0lDQWdkbUZzZFdVNklHTm9jbHh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdkR2hwY3k1c2FYTjBMbkIxYzJnb2RHaHBjeTV1YjJSbEtWeHVJQ0FnSUNBZ2RHaHBjeTV1YjJSbElEMGdiblZzYkZ4dUlDQWdJQ0FnZEdocGN5NXZjR1Z5WVhSdmNrVjRjR1ZqZEdsdVp5QTlJQ2NuWEc0Z0lDQWdJQ0IwYUdsekxtVnpZMkZ3WldRZ1BTQm1ZV3h6WlZ4dUlDQWdJQ0FnY21WMGRYSnVYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDZ2hkR2hwY3k1dmNHVnlZWFJ2Y2tWNGNHVmpkR2x1WnlBbUppQmphSElnYVc0Z1QxQkZVa0ZVVDFKVEtTQjdYRzRnSUNBZ0lDQjBhR2x6TG01dlpHVWdQU0I3WEc0Z0lDQWdJQ0FnSUhSNWNHVTZJQ2R2Y0dWeVlYUnZjaWNzWEc0Z0lDQWdJQ0FnSUhaaGJIVmxPaUJqYUhKY2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhSb2FYTXViR2x6ZEM1d2RYTm9LSFJvYVhNdWJtOWtaU2xjYmlBZ0lDQWdJSFJvYVhNdWJtOWtaU0E5SUc1MWJHeGNiaUFnSUNBZ0lIUm9hWE11YjNCbGNtRjBiM0pGZUhCbFkzUnBibWNnUFNCUFVFVlNRVlJQVWxOYlkyaHlYVnh1SUNBZ0lDQWdkR2hwY3k1bGMyTmhjR1ZrSUQwZ1ptRnNjMlZjYmlBZ0lDQWdJSEpsZEhWeWJseHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDZ2hkR2hwY3k1bGMyTmhjR1ZrSUNZbUlHTm9jaUE5UFQwZ0oxeGNYRnduS1NCN1hHNGdJQ0FnSUNCMGFHbHpMbVZ6WTJGd1pXUWdQU0IwY25WbFhHNGdJQ0FnSUNCeVpYUjFjbTVjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvSVhSb2FYTXVibTlrWlNrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTV1YjJSbElEMGdlMXh1SUNBZ0lDQWdJQ0IwZVhCbE9pQW5kR1Y0ZENjc1hHNGdJQ0FnSUNBZ0lIWmhiSFZsT2lBbkoxeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2RHaHBjeTVzYVhOMExuQjFjMmdvZEdocGN5NXViMlJsS1Z4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNoMGFHbHpMbVZ6WTJGd1pXUWdKaVlnWTJoeUlDRTlQU0FuWEZ4Y1hDY3BJSHRjYmlBZ0lDQWdJSFJvYVhNdWJtOWtaUzUyWVd4MVpTQXJQU0FuWEZ4Y1hDZGNiaUFnSUNCOVhHNWNiaUFnSUNCMGFHbHpMbTV2WkdVdWRtRnNkV1VnS3owZ1kyaHlYRzRnSUNBZ2RHaHBjeTVsYzJOaGNHVmtJRDBnWm1Gc2MyVmNiaUFnZlZ4dWZWeHVJbDE5IiwiJ3VzZSBzdHJpY3QnO1xudmFyICRwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3IgLS0gc2FmZVxudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbi8vIE5hc2hvcm4gfiBKREs4IGJ1Z1xudmFyIE5BU0hPUk5fQlVHID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yICYmICEkcHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh7IDE6IDIgfSwgMSk7XG5cbi8vIGBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlYCBtZXRob2QgaW1wbGVtZW50YXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eWlzZW51bWVyYWJsZVxuZXhwb3J0cy5mID0gTkFTSE9STl9CVUcgPyBmdW5jdGlvbiBwcm9wZXJ0eUlzRW51bWVyYWJsZShWKSB7XG4gIHZhciBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMsIFYpO1xuICByZXR1cm4gISFkZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IuZW51bWVyYWJsZTtcbn0gOiAkcHJvcGVydHlJc0VudW1lcmFibGU7XG4iLCJ2YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4Jyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUueyBpbmRleE9mLCBpbmNsdWRlcyB9YCBtZXRob2RzIGltcGxlbWVudGF0aW9uXG52YXIgY3JlYXRlTWV0aG9kID0gZnVuY3Rpb24gKElTX0lOQ0xVREVTKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoJHRoaXMsIGVsLCBmcm9tSW5kZXgpIHtcbiAgICB2YXIgTyA9IHRvSW5kZXhlZE9iamVjdCgkdGhpcyk7XG4gICAgdmFyIGxlbmd0aCA9IHRvTGVuZ3RoKE8ubGVuZ3RoKTtcbiAgICB2YXIgaW5kZXggPSB0b0Fic29sdXRlSW5kZXgoZnJvbUluZGV4LCBsZW5ndGgpO1xuICAgIHZhciB2YWx1ZTtcbiAgICAvLyBBcnJheSNpbmNsdWRlcyB1c2VzIFNhbWVWYWx1ZVplcm8gZXF1YWxpdHkgYWxnb3JpdGhtXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgICBpZiAoSVNfSU5DTFVERVMgJiYgZWwgIT0gZWwpIHdoaWxlIChsZW5ndGggPiBpbmRleCkge1xuICAgICAgdmFsdWUgPSBPW2luZGV4KytdO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgICAgIGlmICh2YWx1ZSAhPSB2YWx1ZSkgcmV0dXJuIHRydWU7XG4gICAgLy8gQXJyYXkjaW5kZXhPZiBpZ25vcmVzIGhvbGVzLCBBcnJheSNpbmNsdWRlcyAtIG5vdFxuICAgIH0gZWxzZSBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykge1xuICAgICAgaWYgKChJU19JTkNMVURFUyB8fCBpbmRleCBpbiBPKSAmJiBPW2luZGV4XSA9PT0gZWwpIHJldHVybiBJU19JTkNMVURFUyB8fCBpbmRleCB8fCAwO1xuICAgIH0gcmV0dXJuICFJU19JTkNMVURFUyAmJiAtMTtcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgQXJyYXkucHJvdG90eXBlLmluY2x1ZGVzYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuaW5jbHVkZXNcbiAgaW5jbHVkZXM6IGNyZWF0ZU1ldGhvZCh0cnVlKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5pbmRleE9mYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuaW5kZXhvZlxuICBpbmRleE9mOiBjcmVhdGVNZXRob2QoZmFsc2UpXG59O1xuIiwiLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eXN5bWJvbHMgLS0gc2FmZVxuZXhwb3J0cy5mID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbiIsInZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG52YXIgcmVwbGFjZW1lbnQgPSAvI3xcXC5wcm90b3R5cGVcXC4vO1xuXG52YXIgaXNGb3JjZWQgPSBmdW5jdGlvbiAoZmVhdHVyZSwgZGV0ZWN0aW9uKSB7XG4gIHZhciB2YWx1ZSA9IGRhdGFbbm9ybWFsaXplKGZlYXR1cmUpXTtcbiAgcmV0dXJuIHZhbHVlID09IFBPTFlGSUxMID8gdHJ1ZVxuICAgIDogdmFsdWUgPT0gTkFUSVZFID8gZmFsc2VcbiAgICA6IHR5cGVvZiBkZXRlY3Rpb24gPT0gJ2Z1bmN0aW9uJyA/IGZhaWxzKGRldGVjdGlvbilcbiAgICA6ICEhZGV0ZWN0aW9uO1xufTtcblxudmFyIG5vcm1hbGl6ZSA9IGlzRm9yY2VkLm5vcm1hbGl6ZSA9IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgcmV0dXJuIFN0cmluZyhzdHJpbmcpLnJlcGxhY2UocmVwbGFjZW1lbnQsICcuJykudG9Mb3dlckNhc2UoKTtcbn07XG5cbnZhciBkYXRhID0gaXNGb3JjZWQuZGF0YSA9IHt9O1xudmFyIE5BVElWRSA9IGlzRm9yY2VkLk5BVElWRSA9ICdOJztcbnZhciBQT0xZRklMTCA9IGlzRm9yY2VkLlBPTFlGSUxMID0gJ1AnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzRm9yY2VkO1xuIiwidmFyIFRPX1NUUklOR19UQUdfU1VQUE9SVCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmctdGFnLXN1cHBvcnQnKTtcbnZhciBjbGFzc29mUmF3ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBUT19TVFJJTkdfVEFHID0gd2VsbEtub3duU3ltYm9sKCd0b1N0cmluZ1RhZycpO1xuLy8gRVMzIHdyb25nIGhlcmVcbnZhciBDT1JSRUNUX0FSR1VNRU5UUyA9IGNsYXNzb2ZSYXcoZnVuY3Rpb24gKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpID09ICdBcmd1bWVudHMnO1xuXG4vLyBmYWxsYmFjayBmb3IgSUUxMSBTY3JpcHQgQWNjZXNzIERlbmllZCBlcnJvclxudmFyIHRyeUdldCA9IGZ1bmN0aW9uIChpdCwga2V5KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGl0W2tleV07XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbn07XG5cbi8vIGdldHRpbmcgdGFnIGZyb20gRVM2KyBgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ2Bcbm1vZHVsZS5leHBvcnRzID0gVE9fU1RSSU5HX1RBR19TVVBQT1JUID8gY2xhc3NvZlJhdyA6IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgTywgdGFnLCByZXN1bHQ7XG4gIHJldHVybiBpdCA9PT0gdW5kZWZpbmVkID8gJ1VuZGVmaW5lZCcgOiBpdCA9PT0gbnVsbCA/ICdOdWxsJ1xuICAgIC8vIEBAdG9TdHJpbmdUYWcgY2FzZVxuICAgIDogdHlwZW9mICh0YWcgPSB0cnlHZXQoTyA9IE9iamVjdChpdCksIFRPX1NUUklOR19UQUcpKSA9PSAnc3RyaW5nJyA/IHRhZ1xuICAgIC8vIGJ1aWx0aW5UYWcgY2FzZVxuICAgIDogQ09SUkVDVF9BUkdVTUVOVFMgPyBjbGFzc29mUmF3KE8pXG4gICAgLy8gRVMzIGFyZ3VtZW50cyBmYWxsYmFja1xuICAgIDogKHJlc3VsdCA9IGNsYXNzb2ZSYXcoTykpID09ICdPYmplY3QnICYmIHR5cGVvZiBPLmNhbGxlZSA9PSAnZnVuY3Rpb24nID8gJ0FyZ3VtZW50cycgOiByZXN1bHQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1wcm90b3R5cGUtb2YnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcycpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xuXG52YXIgSVRFUkFUT1IgPSB3ZWxsS25vd25TeW1ib2woJ2l0ZXJhdG9yJyk7XG52YXIgQlVHR1lfU0FGQVJJX0lURVJBVE9SUyA9IGZhbHNlO1xuXG52YXIgcmV0dXJuVGhpcyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH07XG5cbi8vIGAlSXRlcmF0b3JQcm90b3R5cGUlYCBvYmplY3Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJWl0ZXJhdG9ycHJvdG90eXBlJS1vYmplY3RcbnZhciBJdGVyYXRvclByb3RvdHlwZSwgUHJvdG90eXBlT2ZBcnJheUl0ZXJhdG9yUHJvdG90eXBlLCBhcnJheUl0ZXJhdG9yO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBlcy9uby1hcnJheS1wcm90b3R5cGUta2V5cyAtLSBzYWZlICovXG5pZiAoW10ua2V5cykge1xuICBhcnJheUl0ZXJhdG9yID0gW10ua2V5cygpO1xuICAvLyBTYWZhcmkgOCBoYXMgYnVnZ3kgaXRlcmF0b3JzIHcvbyBgbmV4dGBcbiAgaWYgKCEoJ25leHQnIGluIGFycmF5SXRlcmF0b3IpKSBCVUdHWV9TQUZBUklfSVRFUkFUT1JTID0gdHJ1ZTtcbiAgZWxzZSB7XG4gICAgUHJvdG90eXBlT2ZBcnJheUl0ZXJhdG9yUHJvdG90eXBlID0gZ2V0UHJvdG90eXBlT2YoZ2V0UHJvdG90eXBlT2YoYXJyYXlJdGVyYXRvcikpO1xuICAgIGlmIChQcm90b3R5cGVPZkFycmF5SXRlcmF0b3JQcm90b3R5cGUgIT09IE9iamVjdC5wcm90b3R5cGUpIEl0ZXJhdG9yUHJvdG90eXBlID0gUHJvdG90eXBlT2ZBcnJheUl0ZXJhdG9yUHJvdG90eXBlO1xuICB9XG59XG5cbnZhciBORVdfSVRFUkFUT1JfUFJPVE9UWVBFID0gSXRlcmF0b3JQcm90b3R5cGUgPT0gdW5kZWZpbmVkIHx8IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHRlc3QgPSB7fTtcbiAgLy8gRkY0NC0gbGVnYWN5IGl0ZXJhdG9ycyBjYXNlXG4gIHJldHVybiBJdGVyYXRvclByb3RvdHlwZVtJVEVSQVRPUl0uY2FsbCh0ZXN0KSAhPT0gdGVzdDtcbn0pO1xuXG5pZiAoTkVXX0lURVJBVE9SX1BST1RPVFlQRSkgSXRlcmF0b3JQcm90b3R5cGUgPSB7fTtcblxuLy8gMjUuMS4yLjEuMSAlSXRlcmF0b3JQcm90b3R5cGUlW0BAaXRlcmF0b3JdKClcbmlmICgoIUlTX1BVUkUgfHwgTkVXX0lURVJBVE9SX1BST1RPVFlQRSkgJiYgIWhhcyhJdGVyYXRvclByb3RvdHlwZSwgSVRFUkFUT1IpKSB7XG4gIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShJdGVyYXRvclByb3RvdHlwZSwgSVRFUkFUT1IsIHJldHVyblRoaXMpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgSXRlcmF0b3JQcm90b3R5cGU6IEl0ZXJhdG9yUHJvdG90eXBlLFxuICBCVUdHWV9TQUZBUklfSVRFUkFUT1JTOiBCVUdHWV9TQUZBUklfSVRFUkFUT1JTXG59O1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIHVzZXJBZ2VudCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtdXNlci1hZ2VudCcpO1xuXG52YXIgc2xpY2UgPSBbXS5zbGljZTtcbnZhciBNU0lFID0gL01TSUUgLlxcLi8udGVzdCh1c2VyQWdlbnQpOyAvLyA8LSBkaXJ0eSBpZTktIGNoZWNrXG5cbnZhciB3cmFwID0gZnVuY3Rpb24gKHNjaGVkdWxlcikge1xuICByZXR1cm4gZnVuY3Rpb24gKGhhbmRsZXIsIHRpbWVvdXQgLyogLCAuLi5hcmd1bWVudHMgKi8pIHtcbiAgICB2YXIgYm91bmRBcmdzID0gYXJndW1lbnRzLmxlbmd0aCA+IDI7XG4gICAgdmFyIGFyZ3MgPSBib3VuZEFyZ3MgPyBzbGljZS5jYWxsKGFyZ3VtZW50cywgMikgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHNjaGVkdWxlcihib3VuZEFyZ3MgPyBmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmNcbiAgICAgICh0eXBlb2YgaGFuZGxlciA9PSAnZnVuY3Rpb24nID8gaGFuZGxlciA6IEZ1bmN0aW9uKGhhbmRsZXIpKS5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICB9IDogaGFuZGxlciwgdGltZW91dCk7XG4gIH07XG59O1xuXG4vLyBpZTktIHNldFRpbWVvdXQgJiBzZXRJbnRlcnZhbCBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgZml4XG4vLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS90aW1lcnMtYW5kLXVzZXItcHJvbXB0cy5odG1sI3RpbWVyc1xuJCh7IGdsb2JhbDogdHJ1ZSwgYmluZDogdHJ1ZSwgZm9yY2VkOiBNU0lFIH0sIHtcbiAgLy8gYHNldFRpbWVvdXRgIG1ldGhvZFxuICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS90aW1lcnMtYW5kLXVzZXItcHJvbXB0cy5odG1sI2RvbS1zZXR0aW1lb3V0XG4gIHNldFRpbWVvdXQ6IHdyYXAoZ2xvYmFsLnNldFRpbWVvdXQpLFxuICAvLyBgc2V0SW50ZXJ2YWxgIG1ldGhvZFxuICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS90aW1lcnMtYW5kLXVzZXItcHJvbXB0cy5odG1sI2RvbS1zZXRpbnRlcnZhbFxuICBzZXRJbnRlcnZhbDogd3JhcChnbG9iYWwuc2V0SW50ZXJ2YWwpXG59KTtcbiIsInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgY3JlYXRlRWxlbWVudCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kb2N1bWVudC1jcmVhdGUtZWxlbWVudCcpO1xuXG4vLyBUaGFuaydzIElFOCBmb3IgaGlzIGZ1bm55IGRlZmluZVByb3BlcnR5XG5tb2R1bGUuZXhwb3J0cyA9ICFERVNDUklQVE9SUyAmJiAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGNyZWF0ZUVsZW1lbnQoJ2RpdicpLCAnYScsIHtcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH1cbiAgfSkuYSAhPSA3O1xufSk7XG4iLCJ2YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxudmFyIHJlcGxhY2VtZW50ID0gLyN8XFwucHJvdG90eXBlXFwuLztcblxudmFyIGlzRm9yY2VkID0gZnVuY3Rpb24gKGZlYXR1cmUsIGRldGVjdGlvbikge1xuICB2YXIgdmFsdWUgPSBkYXRhW25vcm1hbGl6ZShmZWF0dXJlKV07XG4gIHJldHVybiB2YWx1ZSA9PSBQT0xZRklMTCA/IHRydWVcbiAgICA6IHZhbHVlID09IE5BVElWRSA/IGZhbHNlXG4gICAgOiB0eXBlb2YgZGV0ZWN0aW9uID09ICdmdW5jdGlvbicgPyBmYWlscyhkZXRlY3Rpb24pXG4gICAgOiAhIWRldGVjdGlvbjtcbn07XG5cbnZhciBub3JtYWxpemUgPSBpc0ZvcmNlZC5ub3JtYWxpemUgPSBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gIHJldHVybiBTdHJpbmcoc3RyaW5nKS5yZXBsYWNlKHJlcGxhY2VtZW50LCAnLicpLnRvTG93ZXJDYXNlKCk7XG59O1xuXG52YXIgZGF0YSA9IGlzRm9yY2VkLmRhdGEgPSB7fTtcbnZhciBOQVRJVkUgPSBpc0ZvcmNlZC5OQVRJVkUgPSAnTic7XG52YXIgUE9MWUZJTEwgPSBpc0ZvcmNlZC5QT0xZRklMTCA9ICdQJztcblxubW9kdWxlLmV4cG9ydHMgPSBpc0ZvcmNlZDtcbiIsInZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBzdG9yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQtc3RvcmUnKTtcblxuKG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIHN0b3JlW2tleV0gfHwgKHN0b3JlW2tleV0gPSB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gdmFsdWUgOiB7fSk7XG59KSgndmVyc2lvbnMnLCBbXSkucHVzaCh7XG4gIHZlcnNpb246ICczLjguMicsXG4gIG1vZGU6IElTX1BVUkUgPyAncHVyZScgOiAnZ2xvYmFsJyxcbiAgY29weXJpZ2h0OiAnwqkgMjAyMSBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSdcbn0pO1xuIiwidmFyIGlkID0gMDtcbnZhciBwb3N0Zml4ID0gTWF0aC5yYW5kb20oKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5KSB7XG4gIHJldHVybiAnU3ltYm9sKCcgKyBTdHJpbmcoa2V5ID09PSB1bmRlZmluZWQgPyAnJyA6IGtleSkgKyAnKV8nICsgKCsraWQgKyBwb3N0Zml4KS50b1N0cmluZygzNik7XG59O1xuIiwiLy8gSUU4LSBkb24ndCBlbnVtIGJ1ZyBrZXlzXG5tb2R1bGUuZXhwb3J0cyA9IFtcbiAgJ2NvbnN0cnVjdG9yJyxcbiAgJ2hhc093blByb3BlcnR5JyxcbiAgJ2lzUHJvdG90eXBlT2YnLFxuICAncHJvcGVydHlJc0VudW1lcmFibGUnLFxuICAndG9Mb2NhbGVTdHJpbmcnLFxuICAndG9TdHJpbmcnLFxuICAndmFsdWVPZidcbl07XG4iLCJ2YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRCdWlsdEluKCdkb2N1bWVudCcsICdkb2N1bWVudEVsZW1lbnQnKTtcbiIsInZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9ICEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyAmJiAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBDaHJvbWUgMzggU3ltYm9sIGhhcyBpbmNvcnJlY3QgdG9TdHJpbmcgY29udmVyc2lvblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgcmV0dXJuICFTdHJpbmcoU3ltYm9sKCkpO1xufSk7XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdsb2JhbC5Qcm9taXNlO1xuIiwidmFyIHN0b3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1zdG9yZScpO1xuXG52YXIgZnVuY3Rpb25Ub1N0cmluZyA9IEZ1bmN0aW9uLnRvU3RyaW5nO1xuXG4vLyB0aGlzIGhlbHBlciBicm9rZW4gaW4gYDMuNC4xLTMuNC40YCwgc28gd2UgY2FuJ3QgdXNlIGBzaGFyZWRgIGhlbHBlclxuaWYgKHR5cGVvZiBzdG9yZS5pbnNwZWN0U291cmNlICE9ICdmdW5jdGlvbicpIHtcbiAgc3RvcmUuaW5zcGVjdFNvdXJjZSA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiBmdW5jdGlvblRvU3RyaW5nLmNhbGwoaXQpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN0b3JlLmluc3BlY3RTb3VyY2U7XG4iLCJ2YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtZnVuY3Rpb24nKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFNQRUNJRVMgPSB3ZWxsS25vd25TeW1ib2woJ3NwZWNpZXMnKTtcblxuLy8gYFNwZWNpZXNDb25zdHJ1Y3RvcmAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXNwZWNpZXNjb25zdHJ1Y3RvclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTywgZGVmYXVsdENvbnN0cnVjdG9yKSB7XG4gIHZhciBDID0gYW5PYmplY3QoTykuY29uc3RydWN0b3I7XG4gIHZhciBTO1xuICByZXR1cm4gQyA9PT0gdW5kZWZpbmVkIHx8IChTID0gYW5PYmplY3QoQylbU1BFQ0lFU10pID09IHVuZGVmaW5lZCA/IGRlZmF1bHRDb25zdHJ1Y3RvciA6IGFGdW5jdGlvbihTKTtcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgYmluZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLWNvbnRleHQnKTtcbnZhciBodG1sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2h0bWwnKTtcbnZhciBjcmVhdGVFbGVtZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RvY3VtZW50LWNyZWF0ZS1lbGVtZW50Jyk7XG52YXIgSVNfSU9TID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VuZ2luZS1pcy1pb3MnKTtcbnZhciBJU19OT0RFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VuZ2luZS1pcy1ub2RlJyk7XG5cbnZhciBsb2NhdGlvbiA9IGdsb2JhbC5sb2NhdGlvbjtcbnZhciBzZXQgPSBnbG9iYWwuc2V0SW1tZWRpYXRlO1xudmFyIGNsZWFyID0gZ2xvYmFsLmNsZWFySW1tZWRpYXRlO1xudmFyIHByb2Nlc3MgPSBnbG9iYWwucHJvY2VzcztcbnZhciBNZXNzYWdlQ2hhbm5lbCA9IGdsb2JhbC5NZXNzYWdlQ2hhbm5lbDtcbnZhciBEaXNwYXRjaCA9IGdsb2JhbC5EaXNwYXRjaDtcbnZhciBjb3VudGVyID0gMDtcbnZhciBxdWV1ZSA9IHt9O1xudmFyIE9OUkVBRFlTVEFURUNIQU5HRSA9ICdvbnJlYWR5c3RhdGVjaGFuZ2UnO1xudmFyIGRlZmVyLCBjaGFubmVsLCBwb3J0O1xuXG52YXIgcnVuID0gZnVuY3Rpb24gKGlkKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnNcbiAgaWYgKHF1ZXVlLmhhc093blByb3BlcnR5KGlkKSkge1xuICAgIHZhciBmbiA9IHF1ZXVlW2lkXTtcbiAgICBkZWxldGUgcXVldWVbaWRdO1xuICAgIGZuKCk7XG4gIH1cbn07XG5cbnZhciBydW5uZXIgPSBmdW5jdGlvbiAoaWQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICBydW4oaWQpO1xuICB9O1xufTtcblxudmFyIGxpc3RlbmVyID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gIHJ1bihldmVudC5kYXRhKTtcbn07XG5cbnZhciBwb3N0ID0gZnVuY3Rpb24gKGlkKSB7XG4gIC8vIG9sZCBlbmdpbmVzIGhhdmUgbm90IGxvY2F0aW9uLm9yaWdpblxuICBnbG9iYWwucG9zdE1lc3NhZ2UoaWQgKyAnJywgbG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nICsgbG9jYXRpb24uaG9zdCk7XG59O1xuXG4vLyBOb2RlLmpzIDAuOSsgJiBJRTEwKyBoYXMgc2V0SW1tZWRpYXRlLCBvdGhlcndpc2U6XG5pZiAoIXNldCB8fCAhY2xlYXIpIHtcbiAgc2V0ID0gZnVuY3Rpb24gc2V0SW1tZWRpYXRlKGZuKSB7XG4gICAgdmFyIGFyZ3MgPSBbXTtcbiAgICB2YXIgaSA9IDE7XG4gICAgd2hpbGUgKGFyZ3VtZW50cy5sZW5ndGggPiBpKSBhcmdzLnB1c2goYXJndW1lbnRzW2krK10pO1xuICAgIHF1ZXVlWysrY291bnRlcl0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmNcbiAgICAgICh0eXBlb2YgZm4gPT0gJ2Z1bmN0aW9uJyA/IGZuIDogRnVuY3Rpb24oZm4pKS5hcHBseSh1bmRlZmluZWQsIGFyZ3MpO1xuICAgIH07XG4gICAgZGVmZXIoY291bnRlcik7XG4gICAgcmV0dXJuIGNvdW50ZXI7XG4gIH07XG4gIGNsZWFyID0gZnVuY3Rpb24gY2xlYXJJbW1lZGlhdGUoaWQpIHtcbiAgICBkZWxldGUgcXVldWVbaWRdO1xuICB9O1xuICAvLyBOb2RlLmpzIDAuOC1cbiAgaWYgKElTX05PREUpIHtcbiAgICBkZWZlciA9IGZ1bmN0aW9uIChpZCkge1xuICAgICAgcHJvY2Vzcy5uZXh0VGljayhydW5uZXIoaWQpKTtcbiAgICB9O1xuICAvLyBTcGhlcmUgKEpTIGdhbWUgZW5naW5lKSBEaXNwYXRjaCBBUElcbiAgfSBlbHNlIGlmIChEaXNwYXRjaCAmJiBEaXNwYXRjaC5ub3cpIHtcbiAgICBkZWZlciA9IGZ1bmN0aW9uIChpZCkge1xuICAgICAgRGlzcGF0Y2gubm93KHJ1bm5lcihpZCkpO1xuICAgIH07XG4gIC8vIEJyb3dzZXJzIHdpdGggTWVzc2FnZUNoYW5uZWwsIGluY2x1ZGVzIFdlYldvcmtlcnNcbiAgLy8gZXhjZXB0IGlPUyAtIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy82MjRcbiAgfSBlbHNlIGlmIChNZXNzYWdlQ2hhbm5lbCAmJiAhSVNfSU9TKSB7XG4gICAgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpO1xuICAgIHBvcnQgPSBjaGFubmVsLnBvcnQyO1xuICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gbGlzdGVuZXI7XG4gICAgZGVmZXIgPSBiaW5kKHBvcnQucG9zdE1lc3NhZ2UsIHBvcnQsIDEpO1xuICAvLyBCcm93c2VycyB3aXRoIHBvc3RNZXNzYWdlLCBza2lwIFdlYldvcmtlcnNcbiAgLy8gSUU4IGhhcyBwb3N0TWVzc2FnZSwgYnV0IGl0J3Mgc3luYyAmIHR5cGVvZiBpdHMgcG9zdE1lc3NhZ2UgaXMgJ29iamVjdCdcbiAgfSBlbHNlIGlmIChcbiAgICBnbG9iYWwuYWRkRXZlbnRMaXN0ZW5lciAmJlxuICAgIHR5cGVvZiBwb3N0TWVzc2FnZSA9PSAnZnVuY3Rpb24nICYmXG4gICAgIWdsb2JhbC5pbXBvcnRTY3JpcHRzICYmXG4gICAgbG9jYXRpb24gJiYgbG9jYXRpb24ucHJvdG9jb2wgIT09ICdmaWxlOicgJiZcbiAgICAhZmFpbHMocG9zdClcbiAgKSB7XG4gICAgZGVmZXIgPSBwb3N0O1xuICAgIGdsb2JhbC5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgbGlzdGVuZXIsIGZhbHNlKTtcbiAgLy8gSUU4LVxuICB9IGVsc2UgaWYgKE9OUkVBRFlTVEFURUNIQU5HRSBpbiBjcmVhdGVFbGVtZW50KCdzY3JpcHQnKSkge1xuICAgIGRlZmVyID0gZnVuY3Rpb24gKGlkKSB7XG4gICAgICBodG1sLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpKVtPTlJFQURZU1RBVEVDSEFOR0VdID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBodG1sLnJlbW92ZUNoaWxkKHRoaXMpO1xuICAgICAgICBydW4oaWQpO1xuICAgICAgfTtcbiAgICB9O1xuICAvLyBSZXN0IG9sZCBicm93c2Vyc1xuICB9IGVsc2Uge1xuICAgIGRlZmVyID0gZnVuY3Rpb24gKGlkKSB7XG4gICAgICBzZXRUaW1lb3V0KHJ1bm5lcihpZCksIDApO1xuICAgIH07XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHNldDogc2V0LFxuICBjbGVhcjogY2xlYXJcbn07XG4iLCJ2YXIgdXNlckFnZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VuZ2luZS11c2VyLWFnZW50Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gLyhpcGhvbmV8aXBvZHxpcGFkKS4qYXBwbGV3ZWJraXQvaS50ZXN0KHVzZXJBZ2VudCk7XG4iLCJ2YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgbmV3UHJvbWlzZUNhcGFiaWxpdHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbmV3LXByb21pc2UtY2FwYWJpbGl0eScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChDLCB4KSB7XG4gIGFuT2JqZWN0KEMpO1xuICBpZiAoaXNPYmplY3QoeCkgJiYgeC5jb25zdHJ1Y3RvciA9PT0gQykgcmV0dXJuIHg7XG4gIHZhciBwcm9taXNlQ2FwYWJpbGl0eSA9IG5ld1Byb21pc2VDYXBhYmlsaXR5LmYoQyk7XG4gIHZhciByZXNvbHZlID0gcHJvbWlzZUNhcGFiaWxpdHkucmVzb2x2ZTtcbiAgcmVzb2x2ZSh4KTtcbiAgcmV0dXJuIHByb21pc2VDYXBhYmlsaXR5LnByb21pc2U7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgY3JlYXRlSXRlcmF0b3JDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtaXRlcmF0b3ItY29uc3RydWN0b3InKTtcbnZhciBnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LXByb3RvdHlwZS1vZicpO1xudmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1zZXQtcHJvdG90eXBlLW9mJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVkZWZpbmUnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3JzJyk7XG52YXIgSXRlcmF0b3JzQ29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMtY29yZScpO1xuXG52YXIgSXRlcmF0b3JQcm90b3R5cGUgPSBJdGVyYXRvcnNDb3JlLkl0ZXJhdG9yUHJvdG90eXBlO1xudmFyIEJVR0dZX1NBRkFSSV9JVEVSQVRPUlMgPSBJdGVyYXRvcnNDb3JlLkJVR0dZX1NBRkFSSV9JVEVSQVRPUlM7XG52YXIgSVRFUkFUT1IgPSB3ZWxsS25vd25TeW1ib2woJ2l0ZXJhdG9yJyk7XG52YXIgS0VZUyA9ICdrZXlzJztcbnZhciBWQUxVRVMgPSAndmFsdWVzJztcbnZhciBFTlRSSUVTID0gJ2VudHJpZXMnO1xuXG52YXIgcmV0dXJuVGhpcyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKEl0ZXJhYmxlLCBOQU1FLCBJdGVyYXRvckNvbnN0cnVjdG9yLCBuZXh0LCBERUZBVUxULCBJU19TRVQsIEZPUkNFRCkge1xuICBjcmVhdGVJdGVyYXRvckNvbnN0cnVjdG9yKEl0ZXJhdG9yQ29uc3RydWN0b3IsIE5BTUUsIG5leHQpO1xuXG4gIHZhciBnZXRJdGVyYXRpb25NZXRob2QgPSBmdW5jdGlvbiAoS0lORCkge1xuICAgIGlmIChLSU5EID09PSBERUZBVUxUICYmIGRlZmF1bHRJdGVyYXRvcikgcmV0dXJuIGRlZmF1bHRJdGVyYXRvcjtcbiAgICBpZiAoIUJVR0dZX1NBRkFSSV9JVEVSQVRPUlMgJiYgS0lORCBpbiBJdGVyYWJsZVByb3RvdHlwZSkgcmV0dXJuIEl0ZXJhYmxlUHJvdG90eXBlW0tJTkRdO1xuICAgIHN3aXRjaCAoS0lORCkge1xuICAgICAgY2FzZSBLRVlTOiByZXR1cm4gZnVuY3Rpb24ga2V5cygpIHsgcmV0dXJuIG5ldyBJdGVyYXRvckNvbnN0cnVjdG9yKHRoaXMsIEtJTkQpOyB9O1xuICAgICAgY2FzZSBWQUxVRVM6IHJldHVybiBmdW5jdGlvbiB2YWx1ZXMoKSB7IHJldHVybiBuZXcgSXRlcmF0b3JDb25zdHJ1Y3Rvcih0aGlzLCBLSU5EKTsgfTtcbiAgICAgIGNhc2UgRU5UUklFUzogcmV0dXJuIGZ1bmN0aW9uIGVudHJpZXMoKSB7IHJldHVybiBuZXcgSXRlcmF0b3JDb25zdHJ1Y3Rvcih0aGlzLCBLSU5EKTsgfTtcbiAgICB9IHJldHVybiBmdW5jdGlvbiAoKSB7IHJldHVybiBuZXcgSXRlcmF0b3JDb25zdHJ1Y3Rvcih0aGlzKTsgfTtcbiAgfTtcblxuICB2YXIgVE9fU1RSSU5HX1RBRyA9IE5BTUUgKyAnIEl0ZXJhdG9yJztcbiAgdmFyIElOQ09SUkVDVF9WQUxVRVNfTkFNRSA9IGZhbHNlO1xuICB2YXIgSXRlcmFibGVQcm90b3R5cGUgPSBJdGVyYWJsZS5wcm90b3R5cGU7XG4gIHZhciBuYXRpdmVJdGVyYXRvciA9IEl0ZXJhYmxlUHJvdG90eXBlW0lURVJBVE9SXVxuICAgIHx8IEl0ZXJhYmxlUHJvdG90eXBlWydAQGl0ZXJhdG9yJ11cbiAgICB8fCBERUZBVUxUICYmIEl0ZXJhYmxlUHJvdG90eXBlW0RFRkFVTFRdO1xuICB2YXIgZGVmYXVsdEl0ZXJhdG9yID0gIUJVR0dZX1NBRkFSSV9JVEVSQVRPUlMgJiYgbmF0aXZlSXRlcmF0b3IgfHwgZ2V0SXRlcmF0aW9uTWV0aG9kKERFRkFVTFQpO1xuICB2YXIgYW55TmF0aXZlSXRlcmF0b3IgPSBOQU1FID09ICdBcnJheScgPyBJdGVyYWJsZVByb3RvdHlwZS5lbnRyaWVzIHx8IG5hdGl2ZUl0ZXJhdG9yIDogbmF0aXZlSXRlcmF0b3I7XG4gIHZhciBDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUsIG1ldGhvZHMsIEtFWTtcblxuICAvLyBmaXggbmF0aXZlXG4gIGlmIChhbnlOYXRpdmVJdGVyYXRvcikge1xuICAgIEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSA9IGdldFByb3RvdHlwZU9mKGFueU5hdGl2ZUl0ZXJhdG9yLmNhbGwobmV3IEl0ZXJhYmxlKCkpKTtcbiAgICBpZiAoSXRlcmF0b3JQcm90b3R5cGUgIT09IE9iamVjdC5wcm90b3R5cGUgJiYgQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlLm5leHQpIHtcbiAgICAgIGlmICghSVNfUFVSRSAmJiBnZXRQcm90b3R5cGVPZihDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUpICE9PSBJdGVyYXRvclByb3RvdHlwZSkge1xuICAgICAgICBpZiAoc2V0UHJvdG90eXBlT2YpIHtcbiAgICAgICAgICBzZXRQcm90b3R5cGVPZihDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUsIEl0ZXJhdG9yUHJvdG90eXBlKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlW0lURVJBVE9SXSAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSwgSVRFUkFUT1IsIHJldHVyblRoaXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBTZXQgQEB0b1N0cmluZ1RhZyB0byBuYXRpdmUgaXRlcmF0b3JzXG4gICAgICBzZXRUb1N0cmluZ1RhZyhDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUsIFRPX1NUUklOR19UQUcsIHRydWUsIHRydWUpO1xuICAgICAgaWYgKElTX1BVUkUpIEl0ZXJhdG9yc1tUT19TVFJJTkdfVEFHXSA9IHJldHVyblRoaXM7XG4gICAgfVxuICB9XG5cbiAgLy8gZml4IEFycmF5I3t2YWx1ZXMsIEBAaXRlcmF0b3J9Lm5hbWUgaW4gVjggLyBGRlxuICBpZiAoREVGQVVMVCA9PSBWQUxVRVMgJiYgbmF0aXZlSXRlcmF0b3IgJiYgbmF0aXZlSXRlcmF0b3IubmFtZSAhPT0gVkFMVUVTKSB7XG4gICAgSU5DT1JSRUNUX1ZBTFVFU19OQU1FID0gdHJ1ZTtcbiAgICBkZWZhdWx0SXRlcmF0b3IgPSBmdW5jdGlvbiB2YWx1ZXMoKSB7IHJldHVybiBuYXRpdmVJdGVyYXRvci5jYWxsKHRoaXMpOyB9O1xuICB9XG5cbiAgLy8gZGVmaW5lIGl0ZXJhdG9yXG4gIGlmICgoIUlTX1BVUkUgfHwgRk9SQ0VEKSAmJiBJdGVyYWJsZVByb3RvdHlwZVtJVEVSQVRPUl0gIT09IGRlZmF1bHRJdGVyYXRvcikge1xuICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShJdGVyYWJsZVByb3RvdHlwZSwgSVRFUkFUT1IsIGRlZmF1bHRJdGVyYXRvcik7XG4gIH1cbiAgSXRlcmF0b3JzW05BTUVdID0gZGVmYXVsdEl0ZXJhdG9yO1xuXG4gIC8vIGV4cG9ydCBhZGRpdGlvbmFsIG1ldGhvZHNcbiAgaWYgKERFRkFVTFQpIHtcbiAgICBtZXRob2RzID0ge1xuICAgICAgdmFsdWVzOiBnZXRJdGVyYXRpb25NZXRob2QoVkFMVUVTKSxcbiAgICAgIGtleXM6IElTX1NFVCA/IGRlZmF1bHRJdGVyYXRvciA6IGdldEl0ZXJhdGlvbk1ldGhvZChLRVlTKSxcbiAgICAgIGVudHJpZXM6IGdldEl0ZXJhdGlvbk1ldGhvZChFTlRSSUVTKVxuICAgIH07XG4gICAgaWYgKEZPUkNFRCkgZm9yIChLRVkgaW4gbWV0aG9kcykge1xuICAgICAgaWYgKEJVR0dZX1NBRkFSSV9JVEVSQVRPUlMgfHwgSU5DT1JSRUNUX1ZBTFVFU19OQU1FIHx8ICEoS0VZIGluIEl0ZXJhYmxlUHJvdG90eXBlKSkge1xuICAgICAgICByZWRlZmluZShJdGVyYWJsZVByb3RvdHlwZSwgS0VZLCBtZXRob2RzW0tFWV0pO1xuICAgICAgfVxuICAgIH0gZWxzZSAkKHsgdGFyZ2V0OiBOQU1FLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiBCVUdHWV9TQUZBUklfSVRFUkFUT1JTIHx8IElOQ09SUkVDVF9WQUxVRVNfTkFNRSB9LCBtZXRob2RzKTtcbiAgfVxuXG4gIHJldHVybiBtZXRob2RzO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LXByb3RvdHlwZS1vZicpO1xudmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHknKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG5cbnZhciBJVEVSQVRPUiA9IHdlbGxLbm93blN5bWJvbCgnaXRlcmF0b3InKTtcbnZhciBCVUdHWV9TQUZBUklfSVRFUkFUT1JTID0gZmFsc2U7XG5cbnZhciByZXR1cm5UaGlzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfTtcblxuLy8gYCVJdGVyYXRvclByb3RvdHlwZSVgIG9iamVjdFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0laXRlcmF0b3Jwcm90b3R5cGUlLW9iamVjdFxudmFyIEl0ZXJhdG9yUHJvdG90eXBlLCBQcm90b3R5cGVPZkFycmF5SXRlcmF0b3JQcm90b3R5cGUsIGFycmF5SXRlcmF0b3I7XG5cbmlmIChbXS5rZXlzKSB7XG4gIGFycmF5SXRlcmF0b3IgPSBbXS5rZXlzKCk7XG4gIC8vIFNhZmFyaSA4IGhhcyBidWdneSBpdGVyYXRvcnMgdy9vIGBuZXh0YFxuICBpZiAoISgnbmV4dCcgaW4gYXJyYXlJdGVyYXRvcikpIEJVR0dZX1NBRkFSSV9JVEVSQVRPUlMgPSB0cnVlO1xuICBlbHNlIHtcbiAgICBQcm90b3R5cGVPZkFycmF5SXRlcmF0b3JQcm90b3R5cGUgPSBnZXRQcm90b3R5cGVPZihnZXRQcm90b3R5cGVPZihhcnJheUl0ZXJhdG9yKSk7XG4gICAgaWYgKFByb3RvdHlwZU9mQXJyYXlJdGVyYXRvclByb3RvdHlwZSAhPT0gT2JqZWN0LnByb3RvdHlwZSkgSXRlcmF0b3JQcm90b3R5cGUgPSBQcm90b3R5cGVPZkFycmF5SXRlcmF0b3JQcm90b3R5cGU7XG4gIH1cbn1cblxuaWYgKEl0ZXJhdG9yUHJvdG90eXBlID09IHVuZGVmaW5lZCkgSXRlcmF0b3JQcm90b3R5cGUgPSB7fTtcblxuLy8gMjUuMS4yLjEuMSAlSXRlcmF0b3JQcm90b3R5cGUlW0BAaXRlcmF0b3JdKClcbmlmICghSVNfUFVSRSAmJiAhaGFzKEl0ZXJhdG9yUHJvdG90eXBlLCBJVEVSQVRPUikpIHtcbiAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KEl0ZXJhdG9yUHJvdG90eXBlLCBJVEVSQVRPUiwgcmV0dXJuVGhpcyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBJdGVyYXRvclByb3RvdHlwZTogSXRlcmF0b3JQcm90b3R5cGUsXG4gIEJVR0dZX1NBRkFSSV9JVEVSQVRPUlM6IEJVR0dZX1NBRkFSSV9JVEVSQVRPUlNcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0Jyk7XG52YXIgYWRkVG9VbnNjb3BhYmxlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hZGQtdG8tdW5zY29wYWJsZXMnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3JzJyk7XG52YXIgSW50ZXJuYWxTdGF0ZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnRlcm5hbC1zdGF0ZScpO1xudmFyIGRlZmluZUl0ZXJhdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1pdGVyYXRvcicpO1xuXG52YXIgQVJSQVlfSVRFUkFUT1IgPSAnQXJyYXkgSXRlcmF0b3InO1xudmFyIHNldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLnNldDtcbnZhciBnZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5nZXR0ZXJGb3IoQVJSQVlfSVRFUkFUT1IpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLmVudHJpZXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZW50cmllc1xuLy8gYEFycmF5LnByb3RvdHlwZS5rZXlzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmtleXNcbi8vIGBBcnJheS5wcm90b3R5cGUudmFsdWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLnZhbHVlc1xuLy8gYEFycmF5LnByb3RvdHlwZVtAQGl0ZXJhdG9yXWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS1AQGl0ZXJhdG9yXG4vLyBgQ3JlYXRlQXJyYXlJdGVyYXRvcmAgaW50ZXJuYWwgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWNyZWF0ZWFycmF5aXRlcmF0b3Jcbm1vZHVsZS5leHBvcnRzID0gZGVmaW5lSXRlcmF0b3IoQXJyYXksICdBcnJheScsIGZ1bmN0aW9uIChpdGVyYXRlZCwga2luZCkge1xuICBzZXRJbnRlcm5hbFN0YXRlKHRoaXMsIHtcbiAgICB0eXBlOiBBUlJBWV9JVEVSQVRPUixcbiAgICB0YXJnZXQ6IHRvSW5kZXhlZE9iamVjdChpdGVyYXRlZCksIC8vIHRhcmdldFxuICAgIGluZGV4OiAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbmV4dCBpbmRleFxuICAgIGtpbmQ6IGtpbmQgICAgICAgICAgICAgICAgICAgICAgICAgLy8ga2luZFxuICB9KTtcbi8vIGAlQXJyYXlJdGVyYXRvclByb3RvdHlwZSUubmV4dGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSVhcnJheWl0ZXJhdG9ycHJvdG90eXBlJS5uZXh0XG59LCBmdW5jdGlvbiAoKSB7XG4gIHZhciBzdGF0ZSA9IGdldEludGVybmFsU3RhdGUodGhpcyk7XG4gIHZhciB0YXJnZXQgPSBzdGF0ZS50YXJnZXQ7XG4gIHZhciBraW5kID0gc3RhdGUua2luZDtcbiAgdmFyIGluZGV4ID0gc3RhdGUuaW5kZXgrKztcbiAgaWYgKCF0YXJnZXQgfHwgaW5kZXggPj0gdGFyZ2V0Lmxlbmd0aCkge1xuICAgIHN0YXRlLnRhcmdldCA9IHVuZGVmaW5lZDtcbiAgICByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIH1cbiAgaWYgKGtpbmQgPT0gJ2tleXMnKSByZXR1cm4geyB2YWx1ZTogaW5kZXgsIGRvbmU6IGZhbHNlIH07XG4gIGlmIChraW5kID09ICd2YWx1ZXMnKSByZXR1cm4geyB2YWx1ZTogdGFyZ2V0W2luZGV4XSwgZG9uZTogZmFsc2UgfTtcbiAgcmV0dXJuIHsgdmFsdWU6IFtpbmRleCwgdGFyZ2V0W2luZGV4XV0sIGRvbmU6IGZhbHNlIH07XG59LCAndmFsdWVzJyk7XG5cbi8vIGFyZ3VtZW50c0xpc3RbQEBpdGVyYXRvcl0gaXMgJUFycmF5UHJvdG9fdmFsdWVzJVxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1jcmVhdGV1bm1hcHBlZGFyZ3VtZW50c29iamVjdFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1jcmVhdGVtYXBwZWRhcmd1bWVudHNvYmplY3Rcbkl0ZXJhdG9ycy5Bcmd1bWVudHMgPSBJdGVyYXRvcnMuQXJyYXk7XG5cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLUBAdW5zY29wYWJsZXNcbmFkZFRvVW5zY29wYWJsZXMoJ2tleXMnKTtcbmFkZFRvVW5zY29wYWJsZXMoJ3ZhbHVlcycpO1xuYWRkVG9VbnNjb3BhYmxlcygnZW50cmllcycpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xuXG4vLyBgUmVnRXhwLnByb3RvdHlwZS5mbGFnc2AgZ2V0dGVyIGltcGxlbWVudGF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWdldC1yZWdleHAucHJvdG90eXBlLmZsYWdzXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIHRoYXQgPSBhbk9iamVjdCh0aGlzKTtcbiAgdmFyIHJlc3VsdCA9ICcnO1xuICBpZiAodGhhdC5nbG9iYWwpIHJlc3VsdCArPSAnZyc7XG4gIGlmICh0aGF0Lmlnbm9yZUNhc2UpIHJlc3VsdCArPSAnaSc7XG4gIGlmICh0aGF0Lm11bHRpbGluZSkgcmVzdWx0ICs9ICdtJztcbiAgaWYgKHRoYXQuZG90QWxsKSByZXN1bHQgKz0gJ3MnO1xuICBpZiAodGhhdC51bmljb2RlKSByZXN1bHQgKz0gJ3UnO1xuICBpZiAodGhhdC5zdGlja3kpIHJlc3VsdCArPSAneSc7XG4gIHJldHVybiByZXN1bHQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGZpeFJlZ0V4cFdlbGxLbm93blN5bWJvbExvZ2ljID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZpeC1yZWdleHAtd2VsbC1rbm93bi1zeW1ib2wtbG9naWMnKTtcbnZhciBpc1JlZ0V4cCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1yZWdleHAnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xudmFyIHNwZWNpZXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG52YXIgYWR2YW5jZVN0cmluZ0luZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FkdmFuY2Utc3RyaW5nLWluZGV4Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG52YXIgY2FsbFJlZ0V4cEV4ZWMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLWV4ZWMtYWJzdHJhY3QnKTtcbnZhciByZWdleHBFeGVjID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZ2V4cC1leGVjJyk7XG52YXIgc3RpY2t5SGVscGVycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtc3RpY2t5LWhlbHBlcnMnKTtcblxudmFyIFVOU1VQUE9SVEVEX1kgPSBzdGlja3lIZWxwZXJzLlVOU1VQUE9SVEVEX1k7XG52YXIgYXJyYXlQdXNoID0gW10ucHVzaDtcbnZhciBtaW4gPSBNYXRoLm1pbjtcbnZhciBNQVhfVUlOVDMyID0gMHhGRkZGRkZGRjtcblxuLy8gQEBzcGxpdCBsb2dpY1xuZml4UmVnRXhwV2VsbEtub3duU3ltYm9sTG9naWMoJ3NwbGl0JywgMiwgZnVuY3Rpb24gKFNQTElULCBuYXRpdmVTcGxpdCwgbWF5YmVDYWxsTmF0aXZlKSB7XG4gIHZhciBpbnRlcm5hbFNwbGl0O1xuICBpZiAoXG4gICAgJ2FiYmMnLnNwbGl0KC8oYikqLylbMV0gPT0gJ2MnIHx8XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlZ2V4cC9uby1lbXB0eS1ncm91cCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xuICAgICd0ZXN0Jy5zcGxpdCgvKD86KS8sIC0xKS5sZW5ndGggIT0gNCB8fFxuICAgICdhYicuc3BsaXQoLyg/OmFiKSovKS5sZW5ndGggIT0gMiB8fFxuICAgICcuJy5zcGxpdCgvKC4/KSguPykvKS5sZW5ndGggIT0gNCB8fFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWdleHAvbm8tYXNzZXJ0aW9uLWNhcHR1cmluZy1ncm91cCwgcmVnZXhwL25vLWVtcHR5LWdyb3VwIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gICAgJy4nLnNwbGl0KC8oKSgpLykubGVuZ3RoID4gMSB8fFxuICAgICcnLnNwbGl0KC8uPy8pLmxlbmd0aFxuICApIHtcbiAgICAvLyBiYXNlZCBvbiBlczUtc2hpbSBpbXBsZW1lbnRhdGlvbiwgbmVlZCB0byByZXdvcmsgaXRcbiAgICBpbnRlcm5hbFNwbGl0ID0gZnVuY3Rpb24gKHNlcGFyYXRvciwgbGltaXQpIHtcbiAgICAgIHZhciBzdHJpbmcgPSBTdHJpbmcocmVxdWlyZU9iamVjdENvZXJjaWJsZSh0aGlzKSk7XG4gICAgICB2YXIgbGltID0gbGltaXQgPT09IHVuZGVmaW5lZCA/IE1BWF9VSU5UMzIgOiBsaW1pdCA+Pj4gMDtcbiAgICAgIGlmIChsaW0gPT09IDApIHJldHVybiBbXTtcbiAgICAgIGlmIChzZXBhcmF0b3IgPT09IHVuZGVmaW5lZCkgcmV0dXJuIFtzdHJpbmddO1xuICAgICAgLy8gSWYgYHNlcGFyYXRvcmAgaXMgbm90IGEgcmVnZXgsIHVzZSBuYXRpdmUgc3BsaXRcbiAgICAgIGlmICghaXNSZWdFeHAoc2VwYXJhdG9yKSkge1xuICAgICAgICByZXR1cm4gbmF0aXZlU3BsaXQuY2FsbChzdHJpbmcsIHNlcGFyYXRvciwgbGltKTtcbiAgICAgIH1cbiAgICAgIHZhciBvdXRwdXQgPSBbXTtcbiAgICAgIHZhciBmbGFncyA9IChzZXBhcmF0b3IuaWdub3JlQ2FzZSA/ICdpJyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAoc2VwYXJhdG9yLm11bHRpbGluZSA/ICdtJyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAoc2VwYXJhdG9yLnVuaWNvZGUgPyAndScgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgKHNlcGFyYXRvci5zdGlja3kgPyAneScgOiAnJyk7XG4gICAgICB2YXIgbGFzdExhc3RJbmRleCA9IDA7XG4gICAgICAvLyBNYWtlIGBnbG9iYWxgIGFuZCBhdm9pZCBgbGFzdEluZGV4YCBpc3N1ZXMgYnkgd29ya2luZyB3aXRoIGEgY29weVxuICAgICAgdmFyIHNlcGFyYXRvckNvcHkgPSBuZXcgUmVnRXhwKHNlcGFyYXRvci5zb3VyY2UsIGZsYWdzICsgJ2cnKTtcbiAgICAgIHZhciBtYXRjaCwgbGFzdEluZGV4LCBsYXN0TGVuZ3RoO1xuICAgICAgd2hpbGUgKG1hdGNoID0gcmVnZXhwRXhlYy5jYWxsKHNlcGFyYXRvckNvcHksIHN0cmluZykpIHtcbiAgICAgICAgbGFzdEluZGV4ID0gc2VwYXJhdG9yQ29weS5sYXN0SW5kZXg7XG4gICAgICAgIGlmIChsYXN0SW5kZXggPiBsYXN0TGFzdEluZGV4KSB7XG4gICAgICAgICAgb3V0cHV0LnB1c2goc3RyaW5nLnNsaWNlKGxhc3RMYXN0SW5kZXgsIG1hdGNoLmluZGV4KSk7XG4gICAgICAgICAgaWYgKG1hdGNoLmxlbmd0aCA+IDEgJiYgbWF0Y2guaW5kZXggPCBzdHJpbmcubGVuZ3RoKSBhcnJheVB1c2guYXBwbHkob3V0cHV0LCBtYXRjaC5zbGljZSgxKSk7XG4gICAgICAgICAgbGFzdExlbmd0aCA9IG1hdGNoWzBdLmxlbmd0aDtcbiAgICAgICAgICBsYXN0TGFzdEluZGV4ID0gbGFzdEluZGV4O1xuICAgICAgICAgIGlmIChvdXRwdXQubGVuZ3RoID49IGxpbSkgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlcGFyYXRvckNvcHkubGFzdEluZGV4ID09PSBtYXRjaC5pbmRleCkgc2VwYXJhdG9yQ29weS5sYXN0SW5kZXgrKzsgLy8gQXZvaWQgYW4gaW5maW5pdGUgbG9vcFxuICAgICAgfVxuICAgICAgaWYgKGxhc3RMYXN0SW5kZXggPT09IHN0cmluZy5sZW5ndGgpIHtcbiAgICAgICAgaWYgKGxhc3RMZW5ndGggfHwgIXNlcGFyYXRvckNvcHkudGVzdCgnJykpIG91dHB1dC5wdXNoKCcnKTtcbiAgICAgIH0gZWxzZSBvdXRwdXQucHVzaChzdHJpbmcuc2xpY2UobGFzdExhc3RJbmRleCkpO1xuICAgICAgcmV0dXJuIG91dHB1dC5sZW5ndGggPiBsaW0gPyBvdXRwdXQuc2xpY2UoMCwgbGltKSA6IG91dHB1dDtcbiAgICB9O1xuICAvLyBDaGFrcmEsIFY4XG4gIH0gZWxzZSBpZiAoJzAnLnNwbGl0KHVuZGVmaW5lZCwgMCkubGVuZ3RoKSB7XG4gICAgaW50ZXJuYWxTcGxpdCA9IGZ1bmN0aW9uIChzZXBhcmF0b3IsIGxpbWl0KSB7XG4gICAgICByZXR1cm4gc2VwYXJhdG9yID09PSB1bmRlZmluZWQgJiYgbGltaXQgPT09IDAgPyBbXSA6IG5hdGl2ZVNwbGl0LmNhbGwodGhpcywgc2VwYXJhdG9yLCBsaW1pdCk7XG4gICAgfTtcbiAgfSBlbHNlIGludGVybmFsU3BsaXQgPSBuYXRpdmVTcGxpdDtcblxuICByZXR1cm4gW1xuICAgIC8vIGBTdHJpbmcucHJvdG90eXBlLnNwbGl0YCBtZXRob2RcbiAgICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUuc3BsaXRcbiAgICBmdW5jdGlvbiBzcGxpdChzZXBhcmF0b3IsIGxpbWl0KSB7XG4gICAgICB2YXIgTyA9IHJlcXVpcmVPYmplY3RDb2VyY2libGUodGhpcyk7XG4gICAgICB2YXIgc3BsaXR0ZXIgPSBzZXBhcmF0b3IgPT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogc2VwYXJhdG9yW1NQTElUXTtcbiAgICAgIHJldHVybiBzcGxpdHRlciAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gc3BsaXR0ZXIuY2FsbChzZXBhcmF0b3IsIE8sIGxpbWl0KVxuICAgICAgICA6IGludGVybmFsU3BsaXQuY2FsbChTdHJpbmcoTyksIHNlcGFyYXRvciwgbGltaXQpO1xuICAgIH0sXG4gICAgLy8gYFJlZ0V4cC5wcm90b3R5cGVbQEBzcGxpdF1gIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVnZXhwLnByb3RvdHlwZS1AQHNwbGl0XG4gICAgLy9cbiAgICAvLyBOT1RFOiBUaGlzIGNhbm5vdCBiZSBwcm9wZXJseSBwb2x5ZmlsbGVkIGluIGVuZ2luZXMgdGhhdCBkb24ndCBzdXBwb3J0XG4gICAgLy8gdGhlICd5JyBmbGFnLlxuICAgIGZ1bmN0aW9uIChyZWdleHAsIGxpbWl0KSB7XG4gICAgICB2YXIgcmVzID0gbWF5YmVDYWxsTmF0aXZlKGludGVybmFsU3BsaXQsIHJlZ2V4cCwgdGhpcywgbGltaXQsIGludGVybmFsU3BsaXQgIT09IG5hdGl2ZVNwbGl0KTtcbiAgICAgIGlmIChyZXMuZG9uZSkgcmV0dXJuIHJlcy52YWx1ZTtcblxuICAgICAgdmFyIHJ4ID0gYW5PYmplY3QocmVnZXhwKTtcbiAgICAgIHZhciBTID0gU3RyaW5nKHRoaXMpO1xuICAgICAgdmFyIEMgPSBzcGVjaWVzQ29uc3RydWN0b3IocngsIFJlZ0V4cCk7XG5cbiAgICAgIHZhciB1bmljb2RlTWF0Y2hpbmcgPSByeC51bmljb2RlO1xuICAgICAgdmFyIGZsYWdzID0gKHJ4Lmlnbm9yZUNhc2UgPyAnaScgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgKHJ4Lm11bHRpbGluZSA/ICdtJyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAocngudW5pY29kZSA/ICd1JyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAoVU5TVVBQT1JURURfWSA/ICdnJyA6ICd5Jyk7XG5cbiAgICAgIC8vIF4oPyArIHJ4ICsgKSBpcyBuZWVkZWQsIGluIGNvbWJpbmF0aW9uIHdpdGggc29tZSBTIHNsaWNpbmcsIHRvXG4gICAgICAvLyBzaW11bGF0ZSB0aGUgJ3knIGZsYWcuXG4gICAgICB2YXIgc3BsaXR0ZXIgPSBuZXcgQyhVTlNVUFBPUlRFRF9ZID8gJ14oPzonICsgcnguc291cmNlICsgJyknIDogcngsIGZsYWdzKTtcbiAgICAgIHZhciBsaW0gPSBsaW1pdCA9PT0gdW5kZWZpbmVkID8gTUFYX1VJTlQzMiA6IGxpbWl0ID4+PiAwO1xuICAgICAgaWYgKGxpbSA9PT0gMCkgcmV0dXJuIFtdO1xuICAgICAgaWYgKFMubGVuZ3RoID09PSAwKSByZXR1cm4gY2FsbFJlZ0V4cEV4ZWMoc3BsaXR0ZXIsIFMpID09PSBudWxsID8gW1NdIDogW107XG4gICAgICB2YXIgcCA9IDA7XG4gICAgICB2YXIgcSA9IDA7XG4gICAgICB2YXIgQSA9IFtdO1xuICAgICAgd2hpbGUgKHEgPCBTLmxlbmd0aCkge1xuICAgICAgICBzcGxpdHRlci5sYXN0SW5kZXggPSBVTlNVUFBPUlRFRF9ZID8gMCA6IHE7XG4gICAgICAgIHZhciB6ID0gY2FsbFJlZ0V4cEV4ZWMoc3BsaXR0ZXIsIFVOU1VQUE9SVEVEX1kgPyBTLnNsaWNlKHEpIDogUyk7XG4gICAgICAgIHZhciBlO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgeiA9PT0gbnVsbCB8fFxuICAgICAgICAgIChlID0gbWluKHRvTGVuZ3RoKHNwbGl0dGVyLmxhc3RJbmRleCArIChVTlNVUFBPUlRFRF9ZID8gcSA6IDApKSwgUy5sZW5ndGgpKSA9PT0gcFxuICAgICAgICApIHtcbiAgICAgICAgICBxID0gYWR2YW5jZVN0cmluZ0luZGV4KFMsIHEsIHVuaWNvZGVNYXRjaGluZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgQS5wdXNoKFMuc2xpY2UocCwgcSkpO1xuICAgICAgICAgIGlmIChBLmxlbmd0aCA9PT0gbGltKSByZXR1cm4gQTtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSB6Lmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICAgICAgQS5wdXNoKHpbaV0pO1xuICAgICAgICAgICAgaWYgKEEubGVuZ3RoID09PSBsaW0pIHJldHVybiBBO1xuICAgICAgICAgIH1cbiAgICAgICAgICBxID0gcCA9IGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEEucHVzaChTLnNsaWNlKHApKTtcbiAgICAgIHJldHVybiBBO1xuICAgIH1cbiAgXTtcbn0sIFVOU1VQUE9SVEVEX1kpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgY3JlYXRlSFRNTCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtaHRtbCcpO1xudmFyIGZvcmNlZFN0cmluZ0hUTUxNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLWh0bWwtZm9yY2VkJyk7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlLmxpbmtgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLmxpbmtcbiQoeyB0YXJnZXQ6ICdTdHJpbmcnLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiBmb3JjZWRTdHJpbmdIVE1MTWV0aG9kKCdsaW5rJykgfSwge1xuICBsaW5rOiBmdW5jdGlvbiBsaW5rKHVybCkge1xuICAgIHJldHVybiBjcmVhdGVIVE1MKHRoaXMsICdhJywgJ2hyZWYnLCB1cmwpO1xuICB9XG59KTtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgaW5zcGVjdFNvdXJjZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnNwZWN0LXNvdXJjZScpO1xuXG52YXIgV2Vha01hcCA9IGdsb2JhbC5XZWFrTWFwO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHR5cGVvZiBXZWFrTWFwID09PSAnZnVuY3Rpb24nICYmIC9uYXRpdmUgY29kZS8udGVzdChpbnNwZWN0U291cmNlKFdlYWtNYXApKTtcbiIsInZhciBoYXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzJyk7XG52YXIgb3duS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vd24ta2V5cycpO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh0YXJnZXQsIHNvdXJjZSkge1xuICB2YXIga2V5cyA9IG93bktleXMoc291cmNlKTtcbiAgdmFyIGRlZmluZVByb3BlcnR5ID0gZGVmaW5lUHJvcGVydHlNb2R1bGUuZjtcbiAgdmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZS5mO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIga2V5ID0ga2V5c1tpXTtcbiAgICBpZiAoIWhhcyh0YXJnZXQsIGtleSkpIGRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc291cmNlLCBrZXkpKTtcbiAgfVxufTtcbiIsInZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIGdldE93blByb3BlcnR5TmFtZXNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktc3ltYm9scycpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xuXG4vLyBhbGwgb2JqZWN0IGtleXMsIGluY2x1ZGVzIG5vbi1lbnVtZXJhYmxlIGFuZCBzeW1ib2xzXG5tb2R1bGUuZXhwb3J0cyA9IGdldEJ1aWx0SW4oJ1JlZmxlY3QnLCAnb3duS2V5cycpIHx8IGZ1bmN0aW9uIG93bktleXMoaXQpIHtcbiAgdmFyIGtleXMgPSBnZXRPd25Qcm9wZXJ0eU5hbWVzTW9kdWxlLmYoYW5PYmplY3QoaXQpKTtcbiAgdmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9sc01vZHVsZS5mO1xuICByZXR1cm4gZ2V0T3duUHJvcGVydHlTeW1ib2xzID8ga2V5cy5jb25jYXQoZ2V0T3duUHJvcGVydHlTeW1ib2xzKGl0KSkgOiBrZXlzO1xufTtcbiIsInZhciBpbnRlcm5hbE9iamVjdEtleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWtleXMtaW50ZXJuYWwnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnVtLWJ1Zy1rZXlzJyk7XG5cbnZhciBoaWRkZW5LZXlzID0gZW51bUJ1Z0tleXMuY29uY2F0KCdsZW5ndGgnLCAncHJvdG90eXBlJyk7XG5cbi8vIGBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5nZXRvd25wcm9wZXJ0eW5hbWVzXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5bmFtZXMgLS0gc2FmZVxuZXhwb3J0cy5mID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhPKSB7XG4gIHJldHVybiBpbnRlcm5hbE9iamVjdEtleXMoTywgaGlkZGVuS2V5cyk7XG59O1xuIiwidmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbnRlZ2VyJyk7XG5cbnZhciBtYXggPSBNYXRoLm1heDtcbnZhciBtaW4gPSBNYXRoLm1pbjtcblxuLy8gSGVscGVyIGZvciBhIHBvcHVsYXIgcmVwZWF0aW5nIGNhc2Ugb2YgdGhlIHNwZWM6XG4vLyBMZXQgaW50ZWdlciBiZSA/IFRvSW50ZWdlcihpbmRleCkuXG4vLyBJZiBpbnRlZ2VyIDwgMCwgbGV0IHJlc3VsdCBiZSBtYXgoKGxlbmd0aCArIGludGVnZXIpLCAwKTsgZWxzZSBsZXQgcmVzdWx0IGJlIG1pbihpbnRlZ2VyLCBsZW5ndGgpLlxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaW5kZXgsIGxlbmd0aCkge1xuICB2YXIgaW50ZWdlciA9IHRvSW50ZWdlcihpbmRleCk7XG4gIHJldHVybiBpbnRlZ2VyIDwgMCA/IG1heChpbnRlZ2VyICsgbGVuZ3RoLCAwKSA6IG1pbihpbnRlZ2VyLCBsZW5ndGgpO1xufTtcbiIsIi8qIGVzbGludC1kaXNhYmxlIGVzL25vLXN5bWJvbCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZyAqL1xudmFyIE5BVElWRV9TWU1CT0wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbmF0aXZlLXN5bWJvbCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE5BVElWRV9TWU1CT0xcbiAgJiYgIVN5bWJvbC5zaGFtXG4gICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT0gJ3N5bWJvbCc7XG4iLCJ2YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtZnVuY3Rpb24nKTtcblxuLy8gb3B0aW9uYWwgLyBzaW1wbGUgY29udGV4dCBiaW5kaW5nXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChmbiwgdGhhdCwgbGVuZ3RoKSB7XG4gIGFGdW5jdGlvbihmbik7XG4gIGlmICh0aGF0ID09PSB1bmRlZmluZWQpIHJldHVybiBmbjtcbiAgc3dpdGNoIChsZW5ndGgpIHtcbiAgICBjYXNlIDA6IHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0KTtcbiAgICB9O1xuICAgIGNhc2UgMTogcmV0dXJuIGZ1bmN0aW9uIChhKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhKTtcbiAgICB9O1xuICAgIGNhc2UgMjogcmV0dXJuIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhLCBiKTtcbiAgICB9O1xuICAgIGNhc2UgMzogcmV0dXJuIGZ1bmN0aW9uIChhLCBiLCBjKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhLCBiLCBjKTtcbiAgICB9O1xuICB9XG4gIHJldHVybiBmdW5jdGlvbiAoLyogLi4uYXJncyAqLykge1xuICAgIHJldHVybiBmbi5hcHBseSh0aGF0LCBhcmd1bWVudHMpO1xuICB9O1xufTtcbiIsIi8qIGVzbGludC1kaXNhYmxlIG5vLXByb3RvIC0tIHNhZmUgKi9cbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBhUG9zc2libGVQcm90b3R5cGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1wb3NzaWJsZS1wcm90b3R5cGUnKTtcblxuLy8gYE9iamVjdC5zZXRQcm90b3R5cGVPZmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5zZXRwcm90b3R5cGVvZlxuLy8gV29ya3Mgd2l0aCBfX3Byb3RvX18gb25seS4gT2xkIHY4IGNhbid0IHdvcmsgd2l0aCBudWxsIHByb3RvIG9iamVjdHMuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LXNldHByb3RvdHlwZW9mIC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8ICgnX19wcm90b19fJyBpbiB7fSA/IGZ1bmN0aW9uICgpIHtcbiAgdmFyIENPUlJFQ1RfU0VUVEVSID0gZmFsc2U7XG4gIHZhciB0ZXN0ID0ge307XG4gIHZhciBzZXR0ZXI7XG4gIHRyeSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3IgLS0gc2FmZVxuICAgIHNldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoT2JqZWN0LnByb3RvdHlwZSwgJ19fcHJvdG9fXycpLnNldDtcbiAgICBzZXR0ZXIuY2FsbCh0ZXN0LCBbXSk7XG4gICAgQ09SUkVDVF9TRVRURVIgPSB0ZXN0IGluc3RhbmNlb2YgQXJyYXk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgcmV0dXJuIGZ1bmN0aW9uIHNldFByb3RvdHlwZU9mKE8sIHByb3RvKSB7XG4gICAgYW5PYmplY3QoTyk7XG4gICAgYVBvc3NpYmxlUHJvdG90eXBlKHByb3RvKTtcbiAgICBpZiAoQ09SUkVDVF9TRVRURVIpIHNldHRlci5jYWxsKE8sIHByb3RvKTtcbiAgICBlbHNlIE8uX19wcm90b19fID0gcHJvdG87XG4gICAgcmV0dXJuIE87XG4gIH07XG59KCkgOiB1bmRlZmluZWQpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIFRPX1NUUklOR19UQUdfU1VQUE9SVCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmctdGFnLXN1cHBvcnQnKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YnKTtcblxuLy8gYE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdgIG1ldGhvZCBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nXG5tb2R1bGUuZXhwb3J0cyA9IFRPX1NUUklOR19UQUdfU1VQUE9SVCA/IHt9LnRvU3RyaW5nIDogZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gIHJldHVybiAnW29iamVjdCAnICsgY2xhc3NvZih0aGlzKSArICddJztcbn07XG4iLCJ2YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXInKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xuXG4vLyBgU3RyaW5nLnByb3RvdHlwZS57IGNvZGVQb2ludEF0LCBhdCB9YCBtZXRob2RzIGltcGxlbWVudGF0aW9uXG52YXIgY3JlYXRlTWV0aG9kID0gZnVuY3Rpb24gKENPTlZFUlRfVE9fU1RSSU5HKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoJHRoaXMsIHBvcykge1xuICAgIHZhciBTID0gU3RyaW5nKHJlcXVpcmVPYmplY3RDb2VyY2libGUoJHRoaXMpKTtcbiAgICB2YXIgcG9zaXRpb24gPSB0b0ludGVnZXIocG9zKTtcbiAgICB2YXIgc2l6ZSA9IFMubGVuZ3RoO1xuICAgIHZhciBmaXJzdCwgc2Vjb25kO1xuICAgIGlmIChwb3NpdGlvbiA8IDAgfHwgcG9zaXRpb24gPj0gc2l6ZSkgcmV0dXJuIENPTlZFUlRfVE9fU1RSSU5HID8gJycgOiB1bmRlZmluZWQ7XG4gICAgZmlyc3QgPSBTLmNoYXJDb2RlQXQocG9zaXRpb24pO1xuICAgIHJldHVybiBmaXJzdCA8IDB4RDgwMCB8fCBmaXJzdCA+IDB4REJGRiB8fCBwb3NpdGlvbiArIDEgPT09IHNpemVcbiAgICAgIHx8IChzZWNvbmQgPSBTLmNoYXJDb2RlQXQocG9zaXRpb24gKyAxKSkgPCAweERDMDAgfHwgc2Vjb25kID4gMHhERkZGXG4gICAgICAgID8gQ09OVkVSVF9UT19TVFJJTkcgPyBTLmNoYXJBdChwb3NpdGlvbikgOiBmaXJzdFxuICAgICAgICA6IENPTlZFUlRfVE9fU1RSSU5HID8gUy5zbGljZShwb3NpdGlvbiwgcG9zaXRpb24gKyAyKSA6IChmaXJzdCAtIDB4RDgwMCA8PCAxMCkgKyAoc2Vjb25kIC0gMHhEQzAwKSArIDB4MTAwMDA7XG4gIH07XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgLy8gYFN0cmluZy5wcm90b3R5cGUuY29kZVBvaW50QXRgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUuY29kZXBvaW50YXRcbiAgY29kZUF0OiBjcmVhdGVNZXRob2QoZmFsc2UpLFxuICAvLyBgU3RyaW5nLnByb3RvdHlwZS5hdGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXRoaWFzYnluZW5zL1N0cmluZy5wcm90b3R5cGUuYXRcbiAgY2hhckF0OiBjcmVhdGVNZXRob2QodHJ1ZSlcbn07XG4iLCIvLyBpdGVyYWJsZSBET00gY29sbGVjdGlvbnNcbi8vIGZsYWcgLSBgaXRlcmFibGVgIGludGVyZmFjZSAtICdlbnRyaWVzJywgJ2tleXMnLCAndmFsdWVzJywgJ2ZvckVhY2gnIG1ldGhvZHNcbm1vZHVsZS5leHBvcnRzID0ge1xuICBDU1NSdWxlTGlzdDogMCxcbiAgQ1NTU3R5bGVEZWNsYXJhdGlvbjogMCxcbiAgQ1NTVmFsdWVMaXN0OiAwLFxuICBDbGllbnRSZWN0TGlzdDogMCxcbiAgRE9NUmVjdExpc3Q6IDAsXG4gIERPTVN0cmluZ0xpc3Q6IDAsXG4gIERPTVRva2VuTGlzdDogMSxcbiAgRGF0YVRyYW5zZmVySXRlbUxpc3Q6IDAsXG4gIEZpbGVMaXN0OiAwLFxuICBIVE1MQWxsQ29sbGVjdGlvbjogMCxcbiAgSFRNTENvbGxlY3Rpb246IDAsXG4gIEhUTUxGb3JtRWxlbWVudDogMCxcbiAgSFRNTFNlbGVjdEVsZW1lbnQ6IDAsXG4gIE1lZGlhTGlzdDogMCxcbiAgTWltZVR5cGVBcnJheTogMCxcbiAgTmFtZWROb2RlTWFwOiAwLFxuICBOb2RlTGlzdDogMSxcbiAgUGFpbnRSZXF1ZXN0TGlzdDogMCxcbiAgUGx1Z2luOiAwLFxuICBQbHVnaW5BcnJheTogMCxcbiAgU1ZHTGVuZ3RoTGlzdDogMCxcbiAgU1ZHTnVtYmVyTGlzdDogMCxcbiAgU1ZHUGF0aFNlZ0xpc3Q6IDAsXG4gIFNWR1BvaW50TGlzdDogMCxcbiAgU1ZHU3RyaW5nTGlzdDogMCxcbiAgU1ZHVHJhbnNmb3JtTGlzdDogMCxcbiAgU291cmNlQnVmZmVyTGlzdDogMCxcbiAgU3R5bGVTaGVldExpc3Q6IDAsXG4gIFRleHRUcmFja0N1ZUxpc3Q6IDAsXG4gIFRleHRUcmFja0xpc3Q6IDAsXG4gIFRvdWNoTGlzdDogMFxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciBhZGRUb1Vuc2NvcGFibGVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FkZC10by11bnNjb3BhYmxlcycpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMnKTtcbnZhciBJbnRlcm5hbFN0YXRlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJyk7XG52YXIgZGVmaW5lSXRlcmF0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWl0ZXJhdG9yJyk7XG5cbnZhciBBUlJBWV9JVEVSQVRPUiA9ICdBcnJheSBJdGVyYXRvcic7XG52YXIgc2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuc2V0O1xudmFyIGdldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLmdldHRlckZvcihBUlJBWV9JVEVSQVRPUik7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuZW50cmllc2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5lbnRyaWVzXG4vLyBgQXJyYXkucHJvdG90eXBlLmtleXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUua2V5c1xuLy8gYEFycmF5LnByb3RvdHlwZS52YWx1ZXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUudmFsdWVzXG4vLyBgQXJyYXkucHJvdG90eXBlW0BAaXRlcmF0b3JdYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLUBAaXRlcmF0b3Jcbi8vIGBDcmVhdGVBcnJheUl0ZXJhdG9yYCBpbnRlcm5hbCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtY3JlYXRlYXJyYXlpdGVyYXRvclxubW9kdWxlLmV4cG9ydHMgPSBkZWZpbmVJdGVyYXRvcihBcnJheSwgJ0FycmF5JywgZnVuY3Rpb24gKGl0ZXJhdGVkLCBraW5kKSB7XG4gIHNldEludGVybmFsU3RhdGUodGhpcywge1xuICAgIHR5cGU6IEFSUkFZX0lURVJBVE9SLFxuICAgIHRhcmdldDogdG9JbmRleGVkT2JqZWN0KGl0ZXJhdGVkKSwgLy8gdGFyZ2V0XG4gICAgaW5kZXg6IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBuZXh0IGluZGV4XG4gICAga2luZDoga2luZCAgICAgICAgICAgICAgICAgICAgICAgICAvLyBraW5kXG4gIH0pO1xuLy8gYCVBcnJheUl0ZXJhdG9yUHJvdG90eXBlJS5uZXh0YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJWFycmF5aXRlcmF0b3Jwcm90b3R5cGUlLm5leHRcbn0sIGZ1bmN0aW9uICgpIHtcbiAgdmFyIHN0YXRlID0gZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKTtcbiAgdmFyIHRhcmdldCA9IHN0YXRlLnRhcmdldDtcbiAgdmFyIGtpbmQgPSBzdGF0ZS5raW5kO1xuICB2YXIgaW5kZXggPSBzdGF0ZS5pbmRleCsrO1xuICBpZiAoIXRhcmdldCB8fCBpbmRleCA+PSB0YXJnZXQubGVuZ3RoKSB7XG4gICAgc3RhdGUudGFyZ2V0ID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiB7IHZhbHVlOiB1bmRlZmluZWQsIGRvbmU6IHRydWUgfTtcbiAgfVxuICBpZiAoa2luZCA9PSAna2V5cycpIHJldHVybiB7IHZhbHVlOiBpbmRleCwgZG9uZTogZmFsc2UgfTtcbiAgaWYgKGtpbmQgPT0gJ3ZhbHVlcycpIHJldHVybiB7IHZhbHVlOiB0YXJnZXRbaW5kZXhdLCBkb25lOiBmYWxzZSB9O1xuICByZXR1cm4geyB2YWx1ZTogW2luZGV4LCB0YXJnZXRbaW5kZXhdXSwgZG9uZTogZmFsc2UgfTtcbn0sICd2YWx1ZXMnKTtcblxuLy8gYXJndW1lbnRzTGlzdFtAQGl0ZXJhdG9yXSBpcyAlQXJyYXlQcm90b192YWx1ZXMlXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWNyZWF0ZXVubWFwcGVkYXJndW1lbnRzb2JqZWN0XG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWNyZWF0ZW1hcHBlZGFyZ3VtZW50c29iamVjdFxuSXRlcmF0b3JzLkFyZ3VtZW50cyA9IEl0ZXJhdG9ycy5BcnJheTtcblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUtQEB1bnNjb3BhYmxlc1xuYWRkVG9VbnNjb3BhYmxlcygna2V5cycpO1xuYWRkVG9VbnNjb3BhYmxlcygndmFsdWVzJyk7XG5hZGRUb1Vuc2NvcGFibGVzKCdlbnRyaWVzJyk7XG4iLCJ2YXIgaW50ZXJuYWxPYmplY3RLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1rZXlzLWludGVybmFsJyk7XG52YXIgZW51bUJ1Z0tleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW51bS1idWcta2V5cycpO1xuXG4vLyBgT2JqZWN0LmtleXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3Qua2V5c1xubW9kdWxlLmV4cG9ydHMgPSBPYmplY3Qua2V5cyB8fCBmdW5jdGlvbiBrZXlzKE8pIHtcbiAgcmV0dXJuIGludGVybmFsT2JqZWN0S2V5cyhPLCBlbnVtQnVnS2V5cyk7XG59O1xuIiwidmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbnRlZ2VyJyk7XG5cbnZhciBtYXggPSBNYXRoLm1heDtcbnZhciBtaW4gPSBNYXRoLm1pbjtcblxuLy8gSGVscGVyIGZvciBhIHBvcHVsYXIgcmVwZWF0aW5nIGNhc2Ugb2YgdGhlIHNwZWM6XG4vLyBMZXQgaW50ZWdlciBiZSA/IFRvSW50ZWdlcihpbmRleCkuXG4vLyBJZiBpbnRlZ2VyIDwgMCwgbGV0IHJlc3VsdCBiZSBtYXgoKGxlbmd0aCArIGludGVnZXIpLCAwKTsgZWxzZSBsZXQgcmVzdWx0IGJlIG1pbihpbnRlZ2VyLCBsZW5ndGgpLlxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaW5kZXgsIGxlbmd0aCkge1xuICB2YXIgaW50ZWdlciA9IHRvSW50ZWdlcihpbmRleCk7XG4gIHJldHVybiBpbnRlZ2VyIDwgMCA/IG1heChpbnRlZ2VyICsgbGVuZ3RoLCAwKSA6IG1pbihpbnRlZ2VyLCBsZW5ndGgpO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgZmFpbHMgPSByZXF1aXJlKCcuL2ZhaWxzJyk7XG5cbi8vIGJhYmVsLW1pbmlmeSB0cmFuc3BpbGVzIFJlZ0V4cCgnYScsICd5JykgLT4gL2EveSBhbmQgaXQgY2F1c2VzIFN5bnRheEVycm9yLFxuLy8gc28gd2UgdXNlIGFuIGludGVybWVkaWF0ZSBmdW5jdGlvbi5cbmZ1bmN0aW9uIFJFKHMsIGYpIHtcbiAgcmV0dXJuIFJlZ0V4cChzLCBmKTtcbn1cblxuZXhwb3J0cy5VTlNVUFBPUlRFRF9ZID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBiYWJlbC1taW5pZnkgdHJhbnNwaWxlcyBSZWdFeHAoJ2EnLCAneScpIC0+IC9hL3kgYW5kIGl0IGNhdXNlcyBTeW50YXhFcnJvclxuICB2YXIgcmUgPSBSRSgnYScsICd5Jyk7XG4gIHJlLmxhc3RJbmRleCA9IDI7XG4gIHJldHVybiByZS5leGVjKCdhYmNkJykgIT0gbnVsbDtcbn0pO1xuXG5leHBvcnRzLkJST0tFTl9DQVJFVCA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczNjg3XG4gIHZhciByZSA9IFJFKCdecicsICdneScpO1xuICByZS5sYXN0SW5kZXggPSAyO1xuICByZXR1cm4gcmUuZXhlYygnc3RyJykgIT0gbnVsbDtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGZpeFJlZ0V4cFdlbGxLbm93blN5bWJvbExvZ2ljID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZpeC1yZWdleHAtd2VsbC1rbm93bi1zeW1ib2wtbG9naWMnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1sZW5ndGgnKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xudmFyIGFkdmFuY2VTdHJpbmdJbmRleCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hZHZhbmNlLXN0cmluZy1pbmRleCcpO1xudmFyIHJlZ0V4cEV4ZWMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLWV4ZWMtYWJzdHJhY3QnKTtcblxuLy8gQEBtYXRjaCBsb2dpY1xuZml4UmVnRXhwV2VsbEtub3duU3ltYm9sTG9naWMoJ21hdGNoJywgMSwgZnVuY3Rpb24gKE1BVENILCBuYXRpdmVNYXRjaCwgbWF5YmVDYWxsTmF0aXZlKSB7XG4gIHJldHVybiBbXG4gICAgLy8gYFN0cmluZy5wcm90b3R5cGUubWF0Y2hgIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS5tYXRjaFxuICAgIGZ1bmN0aW9uIG1hdGNoKHJlZ2V4cCkge1xuICAgICAgdmFyIE8gPSByZXF1aXJlT2JqZWN0Q29lcmNpYmxlKHRoaXMpO1xuICAgICAgdmFyIG1hdGNoZXIgPSByZWdleHAgPT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogcmVnZXhwW01BVENIXTtcbiAgICAgIHJldHVybiBtYXRjaGVyICE9PSB1bmRlZmluZWQgPyBtYXRjaGVyLmNhbGwocmVnZXhwLCBPKSA6IG5ldyBSZWdFeHAocmVnZXhwKVtNQVRDSF0oU3RyaW5nKE8pKTtcbiAgICB9LFxuICAgIC8vIGBSZWdFeHAucHJvdG90eXBlW0BAbWF0Y2hdYCBtZXRob2RcbiAgICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXJlZ2V4cC5wcm90b3R5cGUtQEBtYXRjaFxuICAgIGZ1bmN0aW9uIChyZWdleHApIHtcbiAgICAgIHZhciByZXMgPSBtYXliZUNhbGxOYXRpdmUobmF0aXZlTWF0Y2gsIHJlZ2V4cCwgdGhpcyk7XG4gICAgICBpZiAocmVzLmRvbmUpIHJldHVybiByZXMudmFsdWU7XG5cbiAgICAgIHZhciByeCA9IGFuT2JqZWN0KHJlZ2V4cCk7XG4gICAgICB2YXIgUyA9IFN0cmluZyh0aGlzKTtcblxuICAgICAgaWYgKCFyeC5nbG9iYWwpIHJldHVybiByZWdFeHBFeGVjKHJ4LCBTKTtcblxuICAgICAgdmFyIGZ1bGxVbmljb2RlID0gcngudW5pY29kZTtcbiAgICAgIHJ4Lmxhc3RJbmRleCA9IDA7XG4gICAgICB2YXIgQSA9IFtdO1xuICAgICAgdmFyIG4gPSAwO1xuICAgICAgdmFyIHJlc3VsdDtcbiAgICAgIHdoaWxlICgocmVzdWx0ID0gcmVnRXhwRXhlYyhyeCwgUykpICE9PSBudWxsKSB7XG4gICAgICAgIHZhciBtYXRjaFN0ciA9IFN0cmluZyhyZXN1bHRbMF0pO1xuICAgICAgICBBW25dID0gbWF0Y2hTdHI7XG4gICAgICAgIGlmIChtYXRjaFN0ciA9PT0gJycpIHJ4Lmxhc3RJbmRleCA9IGFkdmFuY2VTdHJpbmdJbmRleChTLCB0b0xlbmd0aChyeC5sYXN0SW5kZXgpLCBmdWxsVW5pY29kZSk7XG4gICAgICAgIG4rKztcbiAgICAgIH1cbiAgICAgIHJldHVybiBuID09PSAwID8gbnVsbCA6IEE7XG4gICAgfVxuICBdO1xufSk7XG4iLCJpbXBvcnQgeyBjb21wb25lbnRFeHBvcnRIZWxwZXIgfSBmcm9tICdDb21wb25lbnQvQWJzdHJhY3QnO1xuaW1wb3J0IHsgQWJzdHJhY3RDaGVja2JveCB9IGZyb20gJ0NvbXBvbmVudC9BYnN0cmFjdENoZWNrYm94JztcblxuY2xhc3MgQ2hlY2tib3hDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdENoZWNrYm94IHt9XG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudEV4cG9ydEhlbHBlcihDaGVja2JveENvbXBvbmVudCwgJ0NoZWNrYm94Q29tcG9uZW50Jyk7XG4iLCJpbXBvcnQgd2luZG93IGZyb20gJ3dpbmRvdyc7XG5pbXBvcnQgXyBmcm9tICdfJztcbmltcG9ydCAkIGZyb20gJyQnO1xuaW1wb3J0IHsgaHRtbEVkaXRvckRlZmF1bHRDb25maWcsIGh0bWxFZGl0b3JMYW5nc01hcCB9IGZyb20gJ0NvbW1vbi9HbG9iYWxzJztcbmltcG9ydCB7IEV2ZW50S2V5Q29kZSwgTWFnaWNzIH0gZnJvbSAnQ29tbW9uL0VudW1zJztcbmltcG9ydCAqIGFzIFNldHRpbmdzIGZyb20gJ1N0b3JhZ2UvU2V0dGluZ3MnO1xuXG5jbGFzcyBIdG1sRWRpdG9yIHtcblx0ZWRpdG9yO1xuXHRibHVyVGltZXIgPSAwO1xuXG5cdF9fcmVzaXphYmxlID0gZmFsc2U7XG5cdF9faW5pdGVkID0gZmFsc2U7XG5cblx0b25CbHVyID0gbnVsbDtcblx0b25SZWFkeSA9IG51bGw7XG5cdG9uTW9kZUNoYW5nZSA9IG51bGw7XG5cblx0ZWxlbWVudDtcblx0JGVsZW1lbnQ7XG5cblx0cmVzaXplO1xuXG5cdC8qKlxuXHQgKiBAcGFyYW0ge09iamVjdH0gZWxlbWVudFxuXHQgKiBAcGFyYW0ge0Z1bmN0aW9uPX0gb25CbHVyXG5cdCAqIEBwYXJhbSB7RnVuY3Rpb249fSBvblJlYWR5XG5cdCAqIEBwYXJhbSB7RnVuY3Rpb249fSBvbk1vZGVDaGFuZ2Vcblx0ICovXG5cdGNvbnN0cnVjdG9yKGVsZW1lbnQsIG9uQmx1ciA9IG51bGwsIG9uUmVhZHkgPSBudWxsLCBvbk1vZGVDaGFuZ2UgPSBudWxsKSB7XG5cdFx0dGhpcy5vbkJsdXIgPSBvbkJsdXI7XG5cdFx0dGhpcy5vblJlYWR5ID0gb25SZWFkeTtcblx0XHR0aGlzLm9uTW9kZUNoYW5nZSA9IG9uTW9kZUNoYW5nZTtcblxuXHRcdHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7XG5cdFx0dGhpcy4kZWxlbWVudCA9ICQoZWxlbWVudCk7XG5cblx0XHR0aGlzLnJlc2l6ZSA9IF8udGhyb3R0bGUoXy5iaW5kKHRoaXMucmVzaXplRWRpdG9yLCB0aGlzKSwgMTAwKTtcblxuXHRcdHRoaXMuaW5pdCgpO1xuXHR9XG5cblx0cnVuT25CbHVyKCkge1xuXHRcdGlmICh0aGlzLm9uQmx1cikge1xuXHRcdFx0dGhpcy5vbkJsdXIoKTtcblx0XHR9XG5cdH1cblxuXHRibHVyVHJpZ2dlcigpIHtcblx0XHRpZiAodGhpcy5vbkJsdXIpIHtcblx0XHRcdHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5ibHVyVGltZXIpO1xuXHRcdFx0dGhpcy5ibHVyVGltZXIgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdHRoaXMucnVuT25CbHVyKCk7XG5cdFx0XHR9LCBNYWdpY3MuVGltZTIwMG1zKTtcblx0XHR9XG5cdH1cblxuXHRmb2N1c1RyaWdnZXIoKSB7XG5cdFx0aWYgKHRoaXMub25CbHVyKSB7XG5cdFx0XHR3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuYmx1clRpbWVyKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQHJldHVybnMge2Jvb2xlYW59XG5cdCAqL1xuXHRpc0h0bWwoKSB7XG5cdFx0cmV0dXJuIHRoaXMuZWRpdG9yID8gJ3d5c2l3eWcnID09PSB0aGlzLmVkaXRvci5tb2RlIDogZmFsc2U7XG5cdH1cblxuXHQvKipcblx0ICogQHJldHVybnMge3ZvaWR9XG5cdCAqL1xuXHRjbGVhckNhY2hlZFNpZ25hdHVyZSgpIHtcblx0XHRpZiAodGhpcy5lZGl0b3IpIHtcblx0XHRcdHRoaXMuZWRpdG9yLmV4ZWNDb21tYW5kKCdpbnNlcnRTaWduYXR1cmUnLCB7XG5cdFx0XHRcdGNsZWFyQ2FjaGU6IHRydWVcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBAcGFyYW0ge3N0cmluZ30gc2lnbmF0dXJlXG5cdCAqIEBwYXJhbSB7Ym9vbH0gaHRtbFxuXHQgKiBAcGFyYW0ge2Jvb2x9IGluc2VydEJlZm9yZVxuXHQgKiBAcmV0dXJucyB7dm9pZH1cblx0ICovXG5cdHNldFNpZ25hdHVyZShzaWduYXR1cmUsIGh0bWwsIGluc2VydEJlZm9yZSA9IGZhbHNlKSB7XG5cdFx0aWYgKHRoaXMuZWRpdG9yKSB7XG5cdFx0XHR0aGlzLmVkaXRvci5leGVjQ29tbWFuZCgnaW5zZXJ0U2lnbmF0dXJlJywge1xuXHRcdFx0XHRpc0h0bWw6IGh0bWwsXG5cdFx0XHRcdGluc2VydEJlZm9yZTogaW5zZXJ0QmVmb3JlLFxuXHRcdFx0XHRzaWduYXR1cmU6IHNpZ25hdHVyZVxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEByZXR1cm5zIHtib29sZWFufVxuXHQgKi9cblx0Y2hlY2tEaXJ0eSgpIHtcblx0XHRyZXR1cm4gdGhpcy5lZGl0b3IgPyB0aGlzLmVkaXRvci5jaGVja0RpcnR5KCkgOiBmYWxzZTtcblx0fVxuXG5cdHJlc2V0RGlydHkoKSB7XG5cdFx0aWYgKHRoaXMuZWRpdG9yKSB7XG5cdFx0XHR0aGlzLmVkaXRvci5yZXNldERpcnR5KCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEBwYXJhbSB7Ym9vbGVhbj19IHdyYXBJc0h0bWwgPSBmYWxzZVxuXHQgKiBAcmV0dXJucyB7c3RyaW5nfVxuXHQgKi9cblx0Z2V0RGF0YSh3cmFwSXNIdG1sID0gZmFsc2UpIHtcblx0XHRsZXQgcmVzdWx0ID0gJyc7XG5cdFx0aWYgKHRoaXMuZWRpdG9yKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRpZiAoJ3BsYWluJyA9PT0gdGhpcy5lZGl0b3IubW9kZSAmJiB0aGlzLmVkaXRvci5wbHVnaW5zLnBsYWluICYmIHRoaXMuZWRpdG9yLl9fcGxhaW4pIHtcblx0XHRcdFx0XHRyZXN1bHQgPSB0aGlzLmVkaXRvci5fX3BsYWluLmdldFJhd0RhdGEoKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRyZXN1bHQgPSB3cmFwSXNIdG1sXG5cdFx0XHRcdFx0XHQ/ICc8ZGl2IGRhdGEtaHRtbC1lZGl0b3ItZm9udC13cmFwcGVyPVwidHJ1ZVwiIHN0eWxlPVwiZm9udC1mYW1pbHk6IGFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDEzcHg7XCI+JyArXG5cdFx0XHRcdFx0XHQgIHRoaXMuZWRpdG9yLmdldERhdGEoKSArXG5cdFx0XHRcdFx0XHQgICc8L2Rpdj4nXG5cdFx0XHRcdFx0XHQ6IHRoaXMuZWRpdG9yLmdldERhdGEoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBjYXRjaCAoZSkge30gLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1lbXB0eVxuXHRcdH1cblxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH1cblxuXHQvKipcblx0ICogQHBhcmFtIHtib29sZWFuPX0gd3JhcElzSHRtbCA9IGZhbHNlXG5cdCAqIEByZXR1cm5zIHtzdHJpbmd9XG5cdCAqL1xuXHRnZXREYXRhV2l0aEh0bWxNYXJrKHdyYXBJc0h0bWwgPSBmYWxzZSkge1xuXHRcdHJldHVybiAodGhpcy5pc0h0bWwoKSA/ICc6SFRNTDonIDogJycpICsgdGhpcy5nZXREYXRhKHdyYXBJc0h0bWwpO1xuXHR9XG5cblx0bW9kZVRvZ2dsZShwbGFpbiwgcmVzaXplKSB7XG5cdFx0aWYgKHRoaXMuZWRpdG9yKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRpZiAocGxhaW4pIHtcblx0XHRcdFx0XHRpZiAoJ3BsYWluJyA9PT0gdGhpcy5lZGl0b3IubW9kZSkge1xuXHRcdFx0XHRcdFx0dGhpcy5lZGl0b3Iuc2V0TW9kZSgnd3lzaXd5ZycpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIGlmICgnd3lzaXd5ZycgPT09IHRoaXMuZWRpdG9yLm1vZGUpIHtcblx0XHRcdFx0XHR0aGlzLmVkaXRvci5zZXRNb2RlKCdwbGFpbicpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGNhdGNoIChlKSB7fSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWVtcHR5XG5cblx0XHRcdGlmIChyZXNpemUpIHtcblx0XHRcdFx0dGhpcy5yZXNpemUoKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRzZXRIdG1sT3JQbGFpbih0ZXh0LCBmb2N1cykge1xuXHRcdGlmICgnOkhUTUw6JyA9PT0gdGV4dC5zdWJzdHIoMCwgNikpIHtcblx0XHRcdHRoaXMuc2V0SHRtbCh0ZXh0LnN1YnN0cig2KSwgZm9jdXMpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnNldFBsYWluKHRleHQsIGZvY3VzKTtcblx0XHR9XG5cdH1cblxuXHRzZXRIdG1sKGh0bWwsIGZvY3VzKSB7XG5cdFx0aWYgKHRoaXMuZWRpdG9yICYmIHRoaXMuX19pbml0ZWQpIHtcblx0XHRcdHRoaXMuY2xlYXJDYWNoZWRTaWduYXR1cmUoKTtcblxuXHRcdFx0dGhpcy5tb2RlVG9nZ2xlKHRydWUpO1xuXG5cdFx0XHRodG1sID0gaHRtbC5yZXBsYWNlKC88cFtePl0qPjxcXC9wPi9naSwgJycpO1xuXG5cdFx0XHR0cnkge1xuXHRcdFx0XHR0aGlzLmVkaXRvci5zZXREYXRhKGh0bWwpO1xuXHRcdFx0fSBjYXRjaCAoZSkge30gLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1lbXB0eVxuXG5cdFx0XHRpZiAoZm9jdXMpIHtcblx0XHRcdFx0dGhpcy5mb2N1cygpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJlcGxhY2VIdG1sKGZpbmQsIHJlcGxhY2VIdG1sKSB7XG5cdFx0aWYgKHRoaXMuZWRpdG9yICYmIHRoaXMuX19pbml0ZWQgJiYgJ3d5c2l3eWcnID09PSB0aGlzLmVkaXRvci5tb2RlKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHR0aGlzLmVkaXRvci5zZXREYXRhKHRoaXMuZWRpdG9yLmdldERhdGEoKS5yZXBsYWNlKGZpbmQsIHJlcGxhY2VIdG1sKSk7XG5cdFx0XHR9IGNhdGNoIChlKSB7fSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWVtcHR5XG5cdFx0fVxuXHR9XG5cblx0c2V0UGxhaW4ocGxhaW4sIGZvY3VzKSB7XG5cdFx0aWYgKHRoaXMuZWRpdG9yICYmIHRoaXMuX19pbml0ZWQpIHtcblx0XHRcdHRoaXMuY2xlYXJDYWNoZWRTaWduYXR1cmUoKTtcblxuXHRcdFx0dGhpcy5tb2RlVG9nZ2xlKGZhbHNlKTtcblx0XHRcdGlmICgncGxhaW4nID09PSB0aGlzLmVkaXRvci5tb2RlICYmIHRoaXMuZWRpdG9yLnBsdWdpbnMucGxhaW4gJiYgdGhpcy5lZGl0b3IuX19wbGFpbikge1xuXHRcdFx0XHR0aGlzLmVkaXRvci5fX3BsYWluLnNldFJhd0RhdGEocGxhaW4pO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHR0aGlzLmVkaXRvci5zZXREYXRhKHBsYWluKTtcblx0XHRcdFx0fSBjYXRjaCAoZSkge30gLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1lbXB0eVxuXHRcdFx0fVxuXG5cdFx0XHRpZiAoZm9jdXMpIHtcblx0XHRcdFx0dGhpcy5mb2N1cygpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGluaXQoKSB7XG5cdFx0aWYgKHRoaXMuZWxlbWVudCAmJiAhdGhpcy5lZGl0b3IpIHtcblx0XHRcdGNvbnN0IGluaXRGdW5jID0gKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBjb25maWcgPSBodG1sRWRpdG9yRGVmYXVsdENvbmZpZyxcblx0XHRcdFx0XHRsYW5ndWFnZSA9IFNldHRpbmdzLnNldHRpbmdzR2V0KCdMYW5ndWFnZScpLFxuXHRcdFx0XHRcdGFsbG93U291cmNlID0gISFTZXR0aW5ncy5hcHBTZXR0aW5nc0dldCgnYWxsb3dIdG1sRWRpdG9yU291cmNlQnV0dG9uJyksXG5cdFx0XHRcdFx0Yml0aSA9ICEhU2V0dGluZ3MuYXBwU2V0dGluZ3NHZXQoJ2FsbG93SHRtbEVkaXRvckJpdGlCdXR0b25zJyk7XG5cblx0XHRcdFx0aWYgKChhbGxvd1NvdXJjZSB8fCAhYml0aSkgJiYgIWNvbmZpZy50b29sYmFyR3JvdXBzLl9fY2ZnSW5pdGVkKSB7XG5cdFx0XHRcdFx0Y29uZmlnLnRvb2xiYXJHcm91cHMuX19jZmdJbml0ZWQgPSB0cnVlO1xuXG5cdFx0XHRcdFx0aWYgKGFsbG93U291cmNlKSB7XG5cdFx0XHRcdFx0XHRjb25maWcucmVtb3ZlQnV0dG9ucyA9IGNvbmZpZy5yZW1vdmVCdXR0b25zLnJlcGxhY2UoJyxTb3VyY2UnLCAnJyk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0aWYgKCFiaXRpKSB7XG5cdFx0XHRcdFx0XHRjb25maWcucmVtb3ZlUGx1Z2lucyArPSAoY29uZmlnLnJlbW92ZVBsdWdpbnMgPyAnLCcgOiAnJykgKyAnYmlkaSc7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Y29uZmlnLmVudGVyTW9kZSA9IHdpbmRvdy5DS0VESVRPUi5FTlRFUl9CUjtcblx0XHRcdFx0Y29uZmlnLnNoaWZ0RW50ZXJNb2RlID0gd2luZG93LkNLRURJVE9SLkVOVEVSX1A7XG5cblx0XHRcdFx0Y29uZmlnLmxhbmd1YWdlID0gaHRtbEVkaXRvckxhbmdzTWFwWyhsYW5ndWFnZSB8fCAnZW4nKS50b0xvd2VyQ2FzZSgpXSB8fCAnZW4nO1xuXHRcdFx0XHRpZiAod2luZG93LkNLRURJVE9SLmVudikge1xuXHRcdFx0XHRcdHdpbmRvdy5DS0VESVRPUi5lbnYuaXNDb21wYXRpYmxlID0gdHJ1ZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHRoaXMuZWRpdG9yID0gd2luZG93LkNLRURJVE9SLmFwcGVuZFRvKHRoaXMuZWxlbWVudCwgY29uZmlnKTtcblxuXHRcdFx0XHR0aGlzLmVkaXRvci5vbigna2V5JywgKGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0aWYgKGV2ZW50ICYmIGV2ZW50LmRhdGEgJiYgRXZlbnRLZXlDb2RlLlRhYiA9PT0gZXZlbnQuZGF0YS5rZXlDb2RlKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdHRoaXMuZWRpdG9yLm9uKCdibHVyJywgKCkgPT4ge1xuXHRcdFx0XHRcdHRoaXMuYmx1clRyaWdnZXIoKTtcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0dGhpcy5lZGl0b3Iub24oJ21vZGUnLCAoKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5ibHVyVHJpZ2dlcigpO1xuXHRcdFx0XHRcdGlmICh0aGlzLm9uTW9kZUNoYW5nZSkge1xuXHRcdFx0XHRcdFx0dGhpcy5vbk1vZGVDaGFuZ2UoJ3BsYWluJyAhPT0gdGhpcy5lZGl0b3IubW9kZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHR0aGlzLmVkaXRvci5vbignZm9jdXMnLCAoKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5mb2N1c1RyaWdnZXIoKTtcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0aWYgKHdpbmRvdy5GaWxlUmVhZGVyKSB7XG5cdFx0XHRcdFx0dGhpcy5lZGl0b3Iub24oJ2Ryb3AnLCAoZXZlbnQpID0+IHtcblx0XHRcdFx0XHRcdGlmICgwIDwgZXZlbnQuZGF0YS5kYXRhVHJhbnNmZXIuZ2V0RmlsZXNDb3VudCgpKSB7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IGZpbGUgPSBldmVudC5kYXRhLmRhdGFUcmFuc2Zlci5nZXRGaWxlKDApO1xuXHRcdFx0XHRcdFx0XHRpZiAoZmlsZSAmJiB3aW5kb3cuRmlsZVJlYWRlciAmJiBldmVudC5kYXRhLmRhdGFUcmFuc2Zlci5pZCAmJiBmaWxlLnR5cGUgJiYgZmlsZS50eXBlLm1hdGNoKC9eaW1hZ2UvaSkpIHtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBpZCA9IGV2ZW50LmRhdGEuZGF0YVRyYW5zZmVyLmlkLFxuXHRcdFx0XHRcdFx0XHRcdFx0aW1hZ2VJZCA9IGBbaW1nPSR7aWR9XWAsXG5cdFx0XHRcdFx0XHRcdFx0XHRyZWFkZXIgPSBuZXcgd2luZG93LkZpbGVSZWFkZXIoKTtcblxuXHRcdFx0XHRcdFx0XHRcdHJlYWRlci5vbmxvYWRlbmQgPSAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAocmVhZGVyLnJlc3VsdCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnJlcGxhY2VIdG1sKGltYWdlSWQsIGA8aW1nIHNyYz1cIiR7cmVhZGVyLnJlc3VsdH1cIiAvPmApO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHRcdFx0XHRyZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcblxuXHRcdFx0XHRcdFx0XHRcdGV2ZW50LmRhdGEuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQvaHRtbCcsIGltYWdlSWQpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR0aGlzLmVkaXRvci5vbignaW5zdGFuY2VSZWFkeScsICgpID0+IHtcblx0XHRcdFx0XHRpZiAodGhpcy5lZGl0b3IucmVtb3ZlTWVudUl0ZW0pIHtcblx0XHRcdFx0XHRcdHRoaXMuZWRpdG9yLnJlbW92ZU1lbnVJdGVtKCdjdXQnKTtcblx0XHRcdFx0XHRcdHRoaXMuZWRpdG9yLnJlbW92ZU1lbnVJdGVtKCdjb3B5Jyk7XG5cdFx0XHRcdFx0XHR0aGlzLmVkaXRvci5yZW1vdmVNZW51SXRlbSgncGFzdGUnKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHR0aGlzLl9fcmVzaXphYmxlID0gdHJ1ZTtcblx0XHRcdFx0XHR0aGlzLl9faW5pdGVkID0gdHJ1ZTtcblxuXHRcdFx0XHRcdHRoaXMucmVzaXplKCk7XG5cblx0XHRcdFx0XHRpZiAodGhpcy5vblJlYWR5KSB7XG5cdFx0XHRcdFx0XHR0aGlzLm9uUmVhZHkoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fTtcblxuXHRcdFx0aWYgKHdpbmRvdy5DS0VESVRPUikge1xuXHRcdFx0XHRpbml0RnVuYygpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0d2luZG93Ll9faW5pdEVkaXRvciA9IGluaXRGdW5jO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGZvY3VzKCkge1xuXHRcdGlmICh0aGlzLmVkaXRvcikge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0dGhpcy5lZGl0b3IuZm9jdXMoKTtcblx0XHRcdH0gY2F0Y2ggKGUpIHt9IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tZW1wdHlcblx0XHR9XG5cdH1cblxuXHRoYXNGb2N1cygpIHtcblx0XHRpZiAodGhpcy5lZGl0b3IpIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdHJldHVybiAhIXRoaXMuZWRpdG9yLmZvY3VzTWFuYWdlci5oYXNGb2N1cztcblx0XHRcdH0gY2F0Y2ggKGUpIHt9IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tZW1wdHlcblx0XHR9XG5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRibHVyKCkge1xuXHRcdGlmICh0aGlzLmVkaXRvcikge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0dGhpcy5lZGl0b3IuZm9jdXNNYW5hZ2VyLmJsdXIodHJ1ZSk7XG5cdFx0XHR9IGNhdGNoIChlKSB7fSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWVtcHR5XG5cdFx0fVxuXHR9XG5cblx0cmVzaXplRWRpdG9yKCkge1xuXHRcdGlmICh0aGlzLmVkaXRvciAmJiB0aGlzLl9fcmVzaXphYmxlKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHR0aGlzLmVkaXRvci5yZXNpemUodGhpcy4kZWxlbWVudC53aWR0aCgpLCB0aGlzLiRlbGVtZW50LmlubmVySGVpZ2h0KCkpO1xuXHRcdFx0fSBjYXRjaCAoZSkge30gLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1lbXB0eVxuXHRcdH1cblx0fVxuXG5cdHNldFJlYWRPbmx5KHZhbHVlKSB7XG5cdFx0aWYgKHRoaXMuZWRpdG9yKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHR0aGlzLmVkaXRvci5zZXRSZWFkT25seSghIXZhbHVlKTtcblx0XHRcdH0gY2F0Y2ggKGUpIHt9IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tZW1wdHlcblx0XHR9XG5cdH1cblxuXHRjbGVhcihmb2N1cykge1xuXHRcdHRoaXMuc2V0SHRtbCgnJywgZm9jdXMpO1xuXHR9XG59XG5cbmV4cG9ydCB7IEh0bWxFZGl0b3IsIEh0bWxFZGl0b3IgYXMgZGVmYXVsdCB9O1xuIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy1wdXJlL3N0YWJsZS9pbnN0YW5jZS9yZWR1Y2VcIik7IiwiaW1wb3J0IHdpbmRvdyBmcm9tICd3aW5kb3cnO1xuXG5jb25zdCBPcGVudGlwID0gd2luZG93Lk9wZW50aXAgfHwge307XG5cbk9wZW50aXAuc3R5bGVzID0gT3BlbnRpcC5zdHlsZXMgfHwge307XG5cbk9wZW50aXAuc3R5bGVzLnJhaW5sb29wID0ge1xuXHQnZXh0ZW5kcyc6ICdzdGFuZGFyZCcsXG5cblx0J2ZpeGVkJzogdHJ1ZSxcblx0J3RhcmdldCc6IHRydWUsXG5cblx0J2RlbGF5JzogMC4yLFxuXHQnaGlkZURlbGF5JzogMCxcblxuXHQnaGlkZUVmZmVjdCc6ICdmYWRlJyxcblx0J2hpZGVFZmZlY3REdXJhdGlvbic6IDAuMixcblxuXHQnc2hvd0VmZmVjdCc6ICdmYWRlJyxcblx0J3Nob3dFZmZlY3REdXJhdGlvbic6IDAuMixcblxuXHQnc2hvd09uJzogJ21vdXNlb3ZlciBjbGljaycsXG5cdCdyZW1vdmVFbGVtZW50c09uSGlkZSc6IHRydWUsXG5cblx0J2JhY2tncm91bmQnOiAnI2ZmZicsXG5cdCdzaGFkb3cnOiBmYWxzZSxcblxuXHQnYm9yZGVyQ29sb3InOiAnIzk5OScsXG5cdCdib3JkZXJSYWRpdXMnOiAyLFxuXHQnYm9yZGVyV2lkdGgnOiAxXG59O1xuXG5PcGVudGlwLnN0eWxlcy5yYWlubG9vcFRpcCA9IHtcblx0J2V4dGVuZHMnOiAncmFpbmxvb3AnLFxuXHQnZGVsYXknOiAwLjQsXG5cdCdncm91cCc6ICdyYWlubG9vcFRpcHMnXG59O1xuXG5PcGVudGlwLnN0eWxlcy5yYWlubG9vcEVycm9yVGlwID0ge1xuXHQnZXh0ZW5kcyc6ICdyYWlubG9vcCcsXG5cdCdjbGFzc05hbWUnOiAncmFpbmxvb3BFcnJvclRpcCdcbn07XG5cbmV4cG9ydCB7IE9wZW50aXAsIE9wZW50aXAgYXMgZGVmYXVsdCB9O1xuIiwiLyohXG4gKiBQaWthZGF5XG4gKlxuICogQ29weXJpZ2h0IMKpIDIwMTQgRGF2aWQgQnVzaGVsbCB8IEJTRCAmIE1JVCBsaWNlbnNlIHwgaHR0cHM6Ly9naXRodWIuY29tL1Bpa2FkYXkvUGlrYWRheVxuICovXG5cbihmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSlcbntcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICB2YXIgbW9tZW50O1xuICAgIGlmICh0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgLy8gQ29tbW9uSlMgbW9kdWxlXG4gICAgICAgIC8vIExvYWQgbW9tZW50LmpzIGFzIGFuIG9wdGlvbmFsIGRlcGVuZGVuY3lcbiAgICAgICAgdHJ5IHsgbW9tZW50ID0gcmVxdWlyZSgnbW9tZW50Jyk7IH0gY2F0Y2ggKGUpIHt9XG4gICAgICAgIG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeShtb21lbnQpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XG4gICAgICAgIC8vIEFNRC4gUmVnaXN0ZXIgYXMgYW4gYW5vbnltb3VzIG1vZHVsZS5cbiAgICAgICAgZGVmaW5lKGZ1bmN0aW9uIChyZXEpXG4gICAgICAgIHtcbiAgICAgICAgICAgIC8vIExvYWQgbW9tZW50LmpzIGFzIGFuIG9wdGlvbmFsIGRlcGVuZGVuY3lcbiAgICAgICAgICAgIHZhciBpZCA9ICdtb21lbnQnO1xuICAgICAgICAgICAgdHJ5IHsgbW9tZW50ID0gcmVxKGlkKTsgfSBjYXRjaCAoZSkge31cbiAgICAgICAgICAgIHJldHVybiBmYWN0b3J5KG1vbWVudCk7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJvb3QuUGlrYWRheSA9IGZhY3Rvcnkocm9vdC5tb21lbnQpO1xuICAgIH1cbn0odGhpcywgZnVuY3Rpb24gKG1vbWVudClcbntcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKipcbiAgICAgKiBmZWF0dXJlIGRldGVjdGlvbiBhbmQgaGVscGVyIGZ1bmN0aW9uc1xuICAgICAqL1xuICAgIHZhciBoYXNNb21lbnQgPSB0eXBlb2YgbW9tZW50ID09PSAnZnVuY3Rpb24nLFxuXG4gICAgaGFzRXZlbnRMaXN0ZW5lcnMgPSAhIXdpbmRvdy5hZGRFdmVudExpc3RlbmVyLFxuXG4gICAgZG9jdW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQsXG5cbiAgICBzdG8gPSB3aW5kb3cuc2V0VGltZW91dCxcblxuICAgIGFkZEV2ZW50ID0gZnVuY3Rpb24oZWwsIGUsIGNhbGxiYWNrLCBjYXB0dXJlKVxuICAgIHtcbiAgICAgICAgaWYgKGhhc0V2ZW50TGlzdGVuZXJzKSB7XG4gICAgICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKGUsIGNhbGxiYWNrLCAhIWNhcHR1cmUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZWwuYXR0YWNoRXZlbnQoJ29uJyArIGUsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICByZW1vdmVFdmVudCA9IGZ1bmN0aW9uKGVsLCBlLCBjYWxsYmFjaywgY2FwdHVyZSlcbiAgICB7XG4gICAgICAgIGlmIChoYXNFdmVudExpc3RlbmVycykge1xuICAgICAgICAgICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLCBjYWxsYmFjaywgISFjYXB0dXJlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVsLmRldGFjaEV2ZW50KCdvbicgKyBlLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgdHJpbSA9IGZ1bmN0aW9uKHN0cilcbiAgICB7XG4gICAgICAgIHJldHVybiBzdHIudHJpbSA/IHN0ci50cmltKCkgOiBzdHIucmVwbGFjZSgvXlxccyt8XFxzKyQvZywnJyk7XG4gICAgfSxcblxuICAgIGhhc0NsYXNzID0gZnVuY3Rpb24oZWwsIGNuKVxuICAgIHtcbiAgICAgICAgcmV0dXJuICgnICcgKyBlbC5jbGFzc05hbWUgKyAnICcpLmluZGV4T2YoJyAnICsgY24gKyAnICcpICE9PSAtMTtcbiAgICB9LFxuXG4gICAgYWRkQ2xhc3MgPSBmdW5jdGlvbihlbCwgY24pXG4gICAge1xuICAgICAgICBpZiAoIWhhc0NsYXNzKGVsLCBjbikpIHtcbiAgICAgICAgICAgIGVsLmNsYXNzTmFtZSA9IChlbC5jbGFzc05hbWUgPT09ICcnKSA/IGNuIDogZWwuY2xhc3NOYW1lICsgJyAnICsgY247XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgcmVtb3ZlQ2xhc3MgPSBmdW5jdGlvbihlbCwgY24pXG4gICAge1xuICAgICAgICBlbC5jbGFzc05hbWUgPSB0cmltKCgnICcgKyBlbC5jbGFzc05hbWUgKyAnICcpLnJlcGxhY2UoJyAnICsgY24gKyAnICcsICcgJykpO1xuICAgIH0sXG5cbiAgICBpc0FycmF5ID0gZnVuY3Rpb24ob2JqKVxuICAgIHtcbiAgICAgICAgcmV0dXJuICgvQXJyYXkvKS50ZXN0KE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopKTtcbiAgICB9LFxuXG4gICAgaXNEYXRlID0gZnVuY3Rpb24ob2JqKVxuICAgIHtcbiAgICAgICAgcmV0dXJuICgvRGF0ZS8pLnRlc3QoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikpICYmICFpc05hTihvYmouZ2V0VGltZSgpKTtcbiAgICB9LFxuXG4gICAgaXNXZWVrZW5kID0gZnVuY3Rpb24oZGF0ZSlcbiAgICB7XG4gICAgICAgIHZhciBkYXkgPSBkYXRlLmdldERheSgpO1xuICAgICAgICByZXR1cm4gZGF5ID09PSAwIHx8IGRheSA9PT0gNjtcbiAgICB9LFxuXG4gICAgaXNMZWFwWWVhciA9IGZ1bmN0aW9uKHllYXIpXG4gICAge1xuICAgICAgICAvLyBzb2x1dGlvbiBsaWZ0ZWQgZnJvbSBkYXRlLmpzIChNSVQgbGljZW5zZSk6IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlanMvRGF0ZWpzXG4gICAgICAgIHJldHVybiAoKHllYXIgJSA0ID09PSAwICYmIHllYXIgJSAxMDAgIT09IDApIHx8IHllYXIgJSA0MDAgPT09IDApO1xuICAgIH0sXG5cbiAgICBnZXREYXlzSW5Nb250aCA9IGZ1bmN0aW9uKHllYXIsIG1vbnRoKVxuICAgIHtcbiAgICAgICAgcmV0dXJuIFszMSwgaXNMZWFwWWVhcih5ZWFyKSA/IDI5IDogMjgsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzEsIDMwLCAzMSwgMzAsIDMxXVttb250aF07XG4gICAgfSxcblxuICAgIHNldFRvU3RhcnRPZkRheSA9IGZ1bmN0aW9uKGRhdGUpXG4gICAge1xuICAgICAgICBpZiAoaXNEYXRlKGRhdGUpKSBkYXRlLnNldEhvdXJzKDAsMCwwLDApO1xuICAgIH0sXG5cbiAgICBjb21wYXJlRGF0ZXMgPSBmdW5jdGlvbihhLGIpXG4gICAge1xuICAgICAgICAvLyB3ZWFrIGRhdGUgY29tcGFyaXNvbiAodXNlIHNldFRvU3RhcnRPZkRheShkYXRlKSB0byBlbnN1cmUgY29ycmVjdCByZXN1bHQpXG4gICAgICAgIHJldHVybiBhLmdldFRpbWUoKSA9PT0gYi5nZXRUaW1lKCk7XG4gICAgfSxcblxuICAgIGV4dGVuZCA9IGZ1bmN0aW9uKHRvLCBmcm9tLCBvdmVyd3JpdGUpXG4gICAge1xuICAgICAgICB2YXIgcHJvcCwgaGFzUHJvcDtcbiAgICAgICAgZm9yIChwcm9wIGluIGZyb20pIHtcbiAgICAgICAgICAgIGhhc1Byb3AgPSB0b1twcm9wXSAhPT0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKGhhc1Byb3AgJiYgdHlwZW9mIGZyb21bcHJvcF0gPT09ICdvYmplY3QnICYmIGZyb21bcHJvcF0gIT09IG51bGwgJiYgZnJvbVtwcm9wXS5ub2RlTmFtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzRGF0ZShmcm9tW3Byb3BdKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAob3ZlcndyaXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b1twcm9wXSA9IG5ldyBEYXRlKGZyb21bcHJvcF0uZ2V0VGltZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChpc0FycmF5KGZyb21bcHJvcF0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvdmVyd3JpdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvW3Byb3BdID0gZnJvbVtwcm9wXS5zbGljZSgwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRvW3Byb3BdID0gZXh0ZW5kKHt9LCBmcm9tW3Byb3BdLCBvdmVyd3JpdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAob3ZlcndyaXRlIHx8ICFoYXNQcm9wKSB7XG4gICAgICAgICAgICAgICAgdG9bcHJvcF0gPSBmcm9tW3Byb3BdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0bztcbiAgICB9LFxuXG4gICAgZmlyZUV2ZW50ID0gZnVuY3Rpb24oZWwsIGV2ZW50TmFtZSwgZGF0YSlcbiAgICB7XG4gICAgICAgIHZhciBldjtcblxuICAgICAgICBpZiAoZG9jdW1lbnQuY3JlYXRlRXZlbnQpIHtcbiAgICAgICAgICAgIGV2ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0hUTUxFdmVudHMnKTtcbiAgICAgICAgICAgIGV2LmluaXRFdmVudChldmVudE5hbWUsIHRydWUsIGZhbHNlKTtcbiAgICAgICAgICAgIGV2ID0gZXh0ZW5kKGV2LCBkYXRhKTtcbiAgICAgICAgICAgIGVsLmRpc3BhdGNoRXZlbnQoZXYpO1xuICAgICAgICB9IGVsc2UgaWYgKGRvY3VtZW50LmNyZWF0ZUV2ZW50T2JqZWN0KSB7XG4gICAgICAgICAgICBldiA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50T2JqZWN0KCk7XG4gICAgICAgICAgICBldiA9IGV4dGVuZChldiwgZGF0YSk7XG4gICAgICAgICAgICBlbC5maXJlRXZlbnQoJ29uJyArIGV2ZW50TmFtZSwgZXYpO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIGFkanVzdENhbGVuZGFyID0gZnVuY3Rpb24oY2FsZW5kYXIpIHtcbiAgICAgICAgaWYgKGNhbGVuZGFyLm1vbnRoIDwgMCkge1xuICAgICAgICAgICAgY2FsZW5kYXIueWVhciAtPSBNYXRoLmNlaWwoTWF0aC5hYnMoY2FsZW5kYXIubW9udGgpLzEyKTtcbiAgICAgICAgICAgIGNhbGVuZGFyLm1vbnRoICs9IDEyO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjYWxlbmRhci5tb250aCA+IDExKSB7XG4gICAgICAgICAgICBjYWxlbmRhci55ZWFyICs9IE1hdGguZmxvb3IoTWF0aC5hYnMoY2FsZW5kYXIubW9udGgpLzEyKTtcbiAgICAgICAgICAgIGNhbGVuZGFyLm1vbnRoIC09IDEyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjYWxlbmRhcjtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogZGVmYXVsdHMgYW5kIGxvY2FsaXNhdGlvblxuICAgICAqL1xuICAgIGRlZmF1bHRzID0ge1xuXG4gICAgICAgIC8vIGJpbmQgdGhlIHBpY2tlciB0byBhIGZvcm0gZmllbGRcbiAgICAgICAgZmllbGQ6IG51bGwsXG5cbiAgICAgICAgLy8gYXV0b21hdGljYWxseSBzaG93L2hpZGUgdGhlIHBpY2tlciBvbiBgZmllbGRgIGZvY3VzIChkZWZhdWx0IGB0cnVlYCBpZiBgZmllbGRgIGlzIHNldClcbiAgICAgICAgYm91bmQ6IHVuZGVmaW5lZCxcblxuICAgICAgICAvLyBkYXRhLWF0dHJpYnV0ZSBvbiB0aGUgaW5wdXQgZmllbGQgd2l0aCBhbiBhcmlhIGFzc2lzdGFuY2UgdGV4dCAob25seSBhcHBsaWVkIHdoZW4gYGJvdW5kYCBpcyBzZXQpXG4gICAgICAgIGFyaWFMYWJlbDogJ1VzZSB0aGUgYXJyb3cga2V5cyB0byBwaWNrIGEgZGF0ZScsXG5cbiAgICAgICAgLy8gcG9zaXRpb24gb2YgdGhlIGRhdGVwaWNrZXIsIHJlbGF0aXZlIHRvIHRoZSBmaWVsZCAoZGVmYXVsdCB0byBib3R0b20gJiBsZWZ0KVxuICAgICAgICAvLyAoJ2JvdHRvbScgJiAnbGVmdCcga2V5d29yZHMgYXJlIG5vdCB1c2VkLCAndG9wJyAmICdyaWdodCcgYXJlIG1vZGlmaWVyIG9uIHRoZSBib3R0b20vbGVmdCBwb3NpdGlvbilcbiAgICAgICAgcG9zaXRpb246ICdib3R0b20gbGVmdCcsXG5cbiAgICAgICAgLy8gYXV0b21hdGljYWxseSBmaXQgaW4gdGhlIHZpZXdwb3J0IGV2ZW4gaWYgaXQgbWVhbnMgcmVwb3NpdGlvbmluZyBmcm9tIHRoZSBwb3NpdGlvbiBvcHRpb25cbiAgICAgICAgcmVwb3NpdGlvbjogdHJ1ZSxcblxuICAgICAgICAvLyB0aGUgZGVmYXVsdCBvdXRwdXQgZm9ybWF0IGZvciBgLnRvU3RyaW5nKClgIGFuZCBgZmllbGRgIHZhbHVlXG4gICAgICAgIGZvcm1hdDogJ1lZWVktTU0tREQnLFxuXG4gICAgICAgIC8vIHRoZSB0b1N0cmluZyBmdW5jdGlvbiB3aGljaCBnZXRzIHBhc3NlZCBhIGN1cnJlbnQgZGF0ZSBvYmplY3QgYW5kIGZvcm1hdFxuICAgICAgICAvLyBhbmQgcmV0dXJucyBhIHN0cmluZ1xuICAgICAgICB0b1N0cmluZzogbnVsbCxcblxuICAgICAgICAvLyB1c2VkIHRvIGNyZWF0ZSBkYXRlIG9iamVjdCBmcm9tIGN1cnJlbnQgaW5wdXQgc3RyaW5nXG4gICAgICAgIHBhcnNlOiBudWxsLFxuXG4gICAgICAgIC8vIHRoZSBpbml0aWFsIGRhdGUgdG8gdmlldyB3aGVuIGZpcnN0IG9wZW5lZFxuICAgICAgICBkZWZhdWx0RGF0ZTogbnVsbCxcblxuICAgICAgICAvLyBtYWtlIHRoZSBgZGVmYXVsdERhdGVgIHRoZSBpbml0aWFsIHNlbGVjdGVkIHZhbHVlXG4gICAgICAgIHNldERlZmF1bHREYXRlOiBmYWxzZSxcblxuICAgICAgICAvLyBmaXJzdCBkYXkgb2Ygd2VlayAoMDogU3VuZGF5LCAxOiBNb25kYXkgZXRjKVxuICAgICAgICBmaXJzdERheTogMCxcblxuICAgICAgICAvLyBtaW5pbXVtIG51bWJlciBvZiBkYXlzIGluIHRoZSB3ZWVrIHRoYXQgZ2V0cyB3ZWVrIG51bWJlciBvbmVcbiAgICAgICAgLy8gZGVmYXVsdCBJU08gODYwMSwgd2VlayAwMSBpcyB0aGUgd2VlayB3aXRoIHRoZSBmaXJzdCBUaHVyc2RheSAoNClcbiAgICAgICAgZmlyc3RXZWVrT2ZZZWFyTWluRGF5czogNCxcblxuICAgICAgICAvLyB0aGUgZGVmYXVsdCBmbGFnIGZvciBtb21lbnQncyBzdHJpY3QgZGF0ZSBwYXJzaW5nXG4gICAgICAgIGZvcm1hdFN0cmljdDogZmFsc2UsXG5cbiAgICAgICAgLy8gdGhlIG1pbmltdW0vZWFybGllc3QgZGF0ZSB0aGF0IGNhbiBiZSBzZWxlY3RlZFxuICAgICAgICBtaW5EYXRlOiBudWxsLFxuICAgICAgICAvLyB0aGUgbWF4aW11bS9sYXRlc3QgZGF0ZSB0aGF0IGNhbiBiZSBzZWxlY3RlZFxuICAgICAgICBtYXhEYXRlOiBudWxsLFxuXG4gICAgICAgIC8vIG51bWJlciBvZiB5ZWFycyBlaXRoZXIgc2lkZSwgb3IgYXJyYXkgb2YgdXBwZXIvbG93ZXIgcmFuZ2VcbiAgICAgICAgeWVhclJhbmdlOiAxMCxcblxuICAgICAgICAvLyBzaG93IHdlZWsgbnVtYmVycyBhdCBoZWFkIG9mIHJvd1xuICAgICAgICBzaG93V2Vla051bWJlcjogZmFsc2UsXG5cbiAgICAgICAgLy8gV2VlayBwaWNrZXIgbW9kZVxuICAgICAgICBwaWNrV2hvbGVXZWVrOiBmYWxzZSxcblxuICAgICAgICAvLyB1c2VkIGludGVybmFsbHkgKGRvbid0IGNvbmZpZyBvdXRzaWRlKVxuICAgICAgICBtaW5ZZWFyOiAwLFxuICAgICAgICBtYXhZZWFyOiA5OTk5LFxuICAgICAgICBtaW5Nb250aDogdW5kZWZpbmVkLFxuICAgICAgICBtYXhNb250aDogdW5kZWZpbmVkLFxuXG4gICAgICAgIHN0YXJ0UmFuZ2U6IG51bGwsXG4gICAgICAgIGVuZFJhbmdlOiBudWxsLFxuXG4gICAgICAgIGlzUlRMOiBmYWxzZSxcblxuICAgICAgICAvLyBBZGRpdGlvbmFsIHRleHQgdG8gYXBwZW5kIHRvIHRoZSB5ZWFyIGluIHRoZSBjYWxlbmRhciB0aXRsZVxuICAgICAgICB5ZWFyU3VmZml4OiAnJyxcblxuICAgICAgICAvLyBSZW5kZXIgdGhlIG1vbnRoIGFmdGVyIHllYXIgaW4gdGhlIGNhbGVuZGFyIHRpdGxlXG4gICAgICAgIHNob3dNb250aEFmdGVyWWVhcjogZmFsc2UsXG5cbiAgICAgICAgLy8gUmVuZGVyIGRheXMgb2YgdGhlIGNhbGVuZGFyIGdyaWQgdGhhdCBmYWxsIGluIHRoZSBuZXh0IG9yIHByZXZpb3VzIG1vbnRoXG4gICAgICAgIHNob3dEYXlzSW5OZXh0QW5kUHJldmlvdXNNb250aHM6IGZhbHNlLFxuXG4gICAgICAgIC8vIEFsbG93cyB1c2VyIHRvIHNlbGVjdCBkYXlzIHRoYXQgZmFsbCBpbiB0aGUgbmV4dCBvciBwcmV2aW91cyBtb250aFxuICAgICAgICBlbmFibGVTZWxlY3Rpb25EYXlzSW5OZXh0QW5kUHJldmlvdXNNb250aHM6IGZhbHNlLFxuXG4gICAgICAgIC8vIGhvdyBtYW55IG1vbnRocyBhcmUgdmlzaWJsZVxuICAgICAgICBudW1iZXJPZk1vbnRoczogMSxcblxuICAgICAgICAvLyB3aGVuIG51bWJlck9mTW9udGhzIGlzIHVzZWQsIHRoaXMgd2lsbCBoZWxwIHlvdSB0byBjaG9vc2Ugd2hlcmUgdGhlIG1haW4gY2FsZW5kYXIgd2lsbCBiZSAoZGVmYXVsdCBgbGVmdGAsIGNhbiBiZSBzZXQgdG8gYHJpZ2h0YClcbiAgICAgICAgLy8gb25seSB1c2VkIGZvciB0aGUgZmlyc3QgZGlzcGxheSBvciB3aGVuIGEgc2VsZWN0ZWQgZGF0ZSBpcyBub3QgdmlzaWJsZVxuICAgICAgICBtYWluQ2FsZW5kYXI6ICdsZWZ0JyxcblxuICAgICAgICAvLyBTcGVjaWZ5IGEgRE9NIGVsZW1lbnQgdG8gcmVuZGVyIHRoZSBjYWxlbmRhciBpblxuICAgICAgICBjb250YWluZXI6IHVuZGVmaW5lZCxcblxuICAgICAgICAvLyBCbHVyIGZpZWxkIHdoZW4gZGF0ZSBpcyBzZWxlY3RlZFxuICAgICAgICBibHVyRmllbGRPblNlbGVjdCA6IHRydWUsXG5cbiAgICAgICAgLy8gaW50ZXJuYXRpb25hbGl6YXRpb25cbiAgICAgICAgaTE4bjoge1xuICAgICAgICAgICAgcHJldmlvdXNNb250aCA6ICdQcmV2aW91cyBNb250aCcsXG4gICAgICAgICAgICBuZXh0TW9udGggICAgIDogJ05leHQgTW9udGgnLFxuICAgICAgICAgICAgbW9udGhzICAgICAgICA6IFsnSmFudWFyeScsJ0ZlYnJ1YXJ5JywnTWFyY2gnLCdBcHJpbCcsJ01heScsJ0p1bmUnLCdKdWx5JywnQXVndXN0JywnU2VwdGVtYmVyJywnT2N0b2JlcicsJ05vdmVtYmVyJywnRGVjZW1iZXInXSxcbiAgICAgICAgICAgIHdlZWtkYXlzICAgICAgOiBbJ1N1bmRheScsJ01vbmRheScsJ1R1ZXNkYXknLCdXZWRuZXNkYXknLCdUaHVyc2RheScsJ0ZyaWRheScsJ1NhdHVyZGF5J10sXG4gICAgICAgICAgICB3ZWVrZGF5c1Nob3J0IDogWydTdW4nLCdNb24nLCdUdWUnLCdXZWQnLCdUaHUnLCdGcmknLCdTYXQnXVxuICAgICAgICB9LFxuXG4gICAgICAgIC8vIFRoZW1lIENsYXNzbmFtZVxuICAgICAgICB0aGVtZTogbnVsbCxcblxuICAgICAgICAvLyBldmVudHMgYXJyYXlcbiAgICAgICAgZXZlbnRzOiBbXSxcblxuICAgICAgICAvLyBjYWxsYmFjayBmdW5jdGlvblxuICAgICAgICBvblNlbGVjdDogbnVsbCxcbiAgICAgICAgb25PcGVuOiBudWxsLFxuICAgICAgICBvbkNsb3NlOiBudWxsLFxuICAgICAgICBvbkRyYXc6IG51bGwsXG5cbiAgICAgICAgLy8gRW5hYmxlIGtleWJvYXJkIGlucHV0XG4gICAgICAgIGtleWJvYXJkSW5wdXQ6IHRydWVcbiAgICB9LFxuXG5cbiAgICAvKipcbiAgICAgKiB0ZW1wbGF0aW5nIGZ1bmN0aW9ucyB0byBhYnN0cmFjdCBIVE1MIHJlbmRlcmluZ1xuICAgICAqL1xuICAgIHJlbmRlckRheU5hbWUgPSBmdW5jdGlvbihvcHRzLCBkYXksIGFiYnIpXG4gICAge1xuICAgICAgICBkYXkgKz0gb3B0cy5maXJzdERheTtcbiAgICAgICAgd2hpbGUgKGRheSA+PSA3KSB7XG4gICAgICAgICAgICBkYXkgLT0gNztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWJiciA/IG9wdHMuaTE4bi53ZWVrZGF5c1Nob3J0W2RheV0gOiBvcHRzLmkxOG4ud2Vla2RheXNbZGF5XTtcbiAgICB9LFxuXG4gICAgcmVuZGVyRGF5ID0gZnVuY3Rpb24ob3B0cylcbiAgICB7XG4gICAgICAgIHZhciBhcnIgPSBbXTtcbiAgICAgICAgdmFyIGFyaWFTZWxlY3RlZCA9ICdmYWxzZSc7XG4gICAgICAgIGlmIChvcHRzLmlzRW1wdHkpIHtcbiAgICAgICAgICAgIGlmIChvcHRzLnNob3dEYXlzSW5OZXh0QW5kUHJldmlvdXNNb250aHMpIHtcbiAgICAgICAgICAgICAgICBhcnIucHVzaCgnaXMtb3V0c2lkZS1jdXJyZW50LW1vbnRoJyk7XG5cbiAgICAgICAgICAgICAgICBpZighb3B0cy5lbmFibGVTZWxlY3Rpb25EYXlzSW5OZXh0QW5kUHJldmlvdXNNb250aHMpIHtcbiAgICAgICAgICAgICAgICAgICAgYXJyLnB1c2goJ2lzLXNlbGVjdGlvbi1kaXNhYmxlZCcpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJzx0ZCBjbGFzcz1cImlzLWVtcHR5XCI+PC90ZD4nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRzLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGFyci5wdXNoKCdpcy1kaXNhYmxlZCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRzLmlzVG9kYXkpIHtcbiAgICAgICAgICAgIGFyci5wdXNoKCdpcy10b2RheScpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRzLmlzU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIGFyci5wdXNoKCdpcy1zZWxlY3RlZCcpO1xuICAgICAgICAgICAgYXJpYVNlbGVjdGVkID0gJ3RydWUnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRzLmhhc0V2ZW50KSB7XG4gICAgICAgICAgICBhcnIucHVzaCgnaGFzLWV2ZW50Jyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdHMuaXNJblJhbmdlKSB7XG4gICAgICAgICAgICBhcnIucHVzaCgnaXMtaW5yYW5nZScpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRzLmlzU3RhcnRSYW5nZSkge1xuICAgICAgICAgICAgYXJyLnB1c2goJ2lzLXN0YXJ0cmFuZ2UnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0cy5pc0VuZFJhbmdlKSB7XG4gICAgICAgICAgICBhcnIucHVzaCgnaXMtZW5kcmFuZ2UnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJzx0ZCBkYXRhLWRheT1cIicgKyBvcHRzLmRheSArICdcIiBjbGFzcz1cIicgKyBhcnIuam9pbignICcpICsgJ1wiIGFyaWEtc2VsZWN0ZWQ9XCInICsgYXJpYVNlbGVjdGVkICsgJ1wiPicgK1xuICAgICAgICAgICAgICAgICAnPGJ1dHRvbiBjbGFzcz1cInBpa2EtYnV0dG9uIHBpa2EtZGF5XCIgdHlwZT1cImJ1dHRvblwiICcgK1xuICAgICAgICAgICAgICAgICAgICAnZGF0YS1waWthLXllYXI9XCInICsgb3B0cy55ZWFyICsgJ1wiIGRhdGEtcGlrYS1tb250aD1cIicgKyBvcHRzLm1vbnRoICsgJ1wiIGRhdGEtcGlrYS1kYXk9XCInICsgb3B0cy5kYXkgKyAnXCI+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRzLmRheSArXG4gICAgICAgICAgICAgICAgICc8L2J1dHRvbj4nICtcbiAgICAgICAgICAgICAgICc8L3RkPic7XG4gICAgfSxcblxuICAgIGlzb1dlZWsgPSBmdW5jdGlvbihkYXRlLCBmaXJzdFdlZWtPZlllYXJNaW5EYXlzKSB7XG4gICAgICAgIC8vIEVuc3VyZSB3ZSdyZSBhdCB0aGUgc3RhcnQgb2YgdGhlIGRheS5cbiAgICAgICAgZGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcblxuICAgICAgICAvLyBUaHVyc2RheSBpbiBjdXJyZW50IHdlZWsgZGVjaWRlcyB0aGUgeWVhciBiZWNhdXNlIEphbnVhcnkgNHRoXG4gICAgICAgIC8vIGlzIGFsd2F5cyBpbiB0aGUgZmlyc3Qgd2VlayBhY2NvcmRpbmcgdG8gSVNPODYwMS5cbiAgICAgICAgdmFyIHllYXJEYXkgICAgICAgID0gZGF0ZS5nZXREYXRlKCksXG4gICAgICAgICAgICB3ZWVrRGF5ICAgICAgICA9IGRhdGUuZ2V0RGF5KCksXG4gICAgICAgICAgICBkYXlJbkZpcnN0V2VlayA9IGZpcnN0V2Vla09mWWVhck1pbkRheXMsXG4gICAgICAgICAgICBkYXlTaGlmdCAgICAgICA9IGRheUluRmlyc3RXZWVrIC0gMSwgLy8gY291bnRpbmcgc3RhcnRzIGF0IDBcbiAgICAgICAgICAgIGRheXNQZXJXZWVrICAgID0gNyxcbiAgICAgICAgICAgIHByZXZXZWVrRGF5ICAgID0gZnVuY3Rpb24oZGF5KSB7IHJldHVybiAoZGF5ICsgZGF5c1BlcldlZWsgLSAxKSAlIGRheXNQZXJXZWVrOyB9O1xuXG4gICAgICAgIC8vIEFkanVzdCB0byBUaHVyc2RheSBpbiB3ZWVrIDEgYW5kIGNvdW50IG51bWJlciBvZiB3ZWVrcyBmcm9tIGRhdGUgdG8gd2VlayAxLlxuICAgICAgICBkYXRlLnNldERhdGUoeWVhckRheSArIGRheVNoaWZ0IC0gcHJldldlZWtEYXkod2Vla0RheSkpO1xuXG4gICAgICAgIHZhciBqYW40dGggICAgICA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgMCwgZGF5SW5GaXJzdFdlZWspLFxuICAgICAgICAgICAgbXNQZXJEYXkgICAgPSAyNCAqIDYwICogNjAgKiAxMDAwLFxuICAgICAgICAgICAgZGF5c0JldHdlZW4gPSAoZGF0ZS5nZXRUaW1lKCkgLSBqYW40dGguZ2V0VGltZSgpKSAvIG1zUGVyRGF5LFxuICAgICAgICAgICAgd2Vla051bSAgICAgPSAxICsgTWF0aC5yb3VuZCgoZGF5c0JldHdlZW4gLSBkYXlTaGlmdCArIHByZXZXZWVrRGF5KGphbjR0aC5nZXREYXkoKSkpIC8gZGF5c1BlcldlZWspO1xuXG4gICAgICAgIHJldHVybiB3ZWVrTnVtO1xuICAgIH0sXG5cbiAgICByZW5kZXJXZWVrID0gZnVuY3Rpb24gKGQsIG0sIHksIGZpcnN0V2Vla09mWWVhck1pbkRheXMpIHtcbiAgICAgICAgdmFyIGRhdGUgPSBuZXcgRGF0ZSh5LCBtLCBkKSxcbiAgICAgICAgICAgIHdlZWsgPSBoYXNNb21lbnQgPyBtb21lbnQoZGF0ZSkuaXNvV2VlaygpIDogaXNvV2VlayhkYXRlLCBmaXJzdFdlZWtPZlllYXJNaW5EYXlzKTtcblxuICAgICAgICByZXR1cm4gJzx0ZCBjbGFzcz1cInBpa2Etd2Vla1wiPicgKyB3ZWVrICsgJzwvdGQ+JztcbiAgICB9LFxuXG4gICAgcmVuZGVyUm93ID0gZnVuY3Rpb24oZGF5cywgaXNSVEwsIHBpY2tXaG9sZVdlZWssIGlzUm93U2VsZWN0ZWQpXG4gICAge1xuICAgICAgICByZXR1cm4gJzx0ciBjbGFzcz1cInBpa2Etcm93JyArIChwaWNrV2hvbGVXZWVrID8gJyBwaWNrLXdob2xlLXdlZWsnIDogJycpICsgKGlzUm93U2VsZWN0ZWQgPyAnIGlzLXNlbGVjdGVkJyA6ICcnKSArICdcIj4nICsgKGlzUlRMID8gZGF5cy5yZXZlcnNlKCkgOiBkYXlzKS5qb2luKCcnKSArICc8L3RyPic7XG4gICAgfSxcblxuICAgIHJlbmRlckJvZHkgPSBmdW5jdGlvbihyb3dzKVxuICAgIHtcbiAgICAgICAgcmV0dXJuICc8dGJvZHk+JyArIHJvd3Muam9pbignJykgKyAnPC90Ym9keT4nO1xuICAgIH0sXG5cbiAgICByZW5kZXJIZWFkID0gZnVuY3Rpb24ob3B0cylcbiAgICB7XG4gICAgICAgIHZhciBpLCBhcnIgPSBbXTtcbiAgICAgICAgaWYgKG9wdHMuc2hvd1dlZWtOdW1iZXIpIHtcbiAgICAgICAgICAgIGFyci5wdXNoKCc8dGg+PC90aD4nKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNzsgaSsrKSB7XG4gICAgICAgICAgICBhcnIucHVzaCgnPHRoIHNjb3BlPVwiY29sXCI+PGFiYnIgdGl0bGU9XCInICsgcmVuZGVyRGF5TmFtZShvcHRzLCBpKSArICdcIj4nICsgcmVuZGVyRGF5TmFtZShvcHRzLCBpLCB0cnVlKSArICc8L2FiYnI+PC90aD4nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJzx0aGVhZD48dHI+JyArIChvcHRzLmlzUlRMID8gYXJyLnJldmVyc2UoKSA6IGFycikuam9pbignJykgKyAnPC90cj48L3RoZWFkPic7XG4gICAgfSxcblxuICAgIHJlbmRlclRpdGxlID0gZnVuY3Rpb24oaW5zdGFuY2UsIGMsIHllYXIsIG1vbnRoLCByZWZZZWFyLCByYW5kSWQpXG4gICAge1xuICAgICAgICB2YXIgaSwgaiwgYXJyLFxuICAgICAgICAgICAgb3B0cyA9IGluc3RhbmNlLl9vLFxuICAgICAgICAgICAgaXNNaW5ZZWFyID0geWVhciA9PT0gb3B0cy5taW5ZZWFyLFxuICAgICAgICAgICAgaXNNYXhZZWFyID0geWVhciA9PT0gb3B0cy5tYXhZZWFyLFxuICAgICAgICAgICAgaHRtbCA9ICc8ZGl2IGlkPVwiJyArIHJhbmRJZCArICdcIiBjbGFzcz1cInBpa2EtdGl0bGVcIiByb2xlPVwiaGVhZGluZ1wiIGFyaWEtbGl2ZT1cImFzc2VydGl2ZVwiPicsXG4gICAgICAgICAgICBtb250aEh0bWwsXG4gICAgICAgICAgICB5ZWFySHRtbCxcbiAgICAgICAgICAgIHByZXYgPSB0cnVlLFxuICAgICAgICAgICAgbmV4dCA9IHRydWU7XG5cbiAgICAgICAgZm9yIChhcnIgPSBbXSwgaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgICAgICAgICBhcnIucHVzaCgnPG9wdGlvbiB2YWx1ZT1cIicgKyAoeWVhciA9PT0gcmVmWWVhciA/IGkgLSBjIDogMTIgKyBpIC0gYykgKyAnXCInICtcbiAgICAgICAgICAgICAgICAoaSA9PT0gbW9udGggPyAnIHNlbGVjdGVkPVwic2VsZWN0ZWRcIic6ICcnKSArXG4gICAgICAgICAgICAgICAgKChpc01pblllYXIgJiYgaSA8IG9wdHMubWluTW9udGgpIHx8IChpc01heFllYXIgJiYgaSA+IG9wdHMubWF4TW9udGgpID8gJyBkaXNhYmxlZD1cImRpc2FibGVkXCInIDogJycpICsgJz4nICtcbiAgICAgICAgICAgICAgICBvcHRzLmkxOG4ubW9udGhzW2ldICsgJzwvb3B0aW9uPicpO1xuICAgICAgICB9XG5cbiAgICAgICAgbW9udGhIdG1sID0gJzxkaXYgY2xhc3M9XCJwaWthLWxhYmVsXCI+JyArIG9wdHMuaTE4bi5tb250aHNbbW9udGhdICsgJzxzZWxlY3QgY2xhc3M9XCJwaWthLXNlbGVjdCBwaWthLXNlbGVjdC1tb250aFwiIHRhYmluZGV4PVwiLTFcIj4nICsgYXJyLmpvaW4oJycpICsgJzwvc2VsZWN0PjwvZGl2Pic7XG5cbiAgICAgICAgaWYgKGlzQXJyYXkob3B0cy55ZWFyUmFuZ2UpKSB7XG4gICAgICAgICAgICBpID0gb3B0cy55ZWFyUmFuZ2VbMF07XG4gICAgICAgICAgICBqID0gb3B0cy55ZWFyUmFuZ2VbMV0gKyAxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaSA9IHllYXIgLSBvcHRzLnllYXJSYW5nZTtcbiAgICAgICAgICAgIGogPSAxICsgeWVhciArIG9wdHMueWVhclJhbmdlO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChhcnIgPSBbXTsgaSA8IGogJiYgaSA8PSBvcHRzLm1heFllYXI7IGkrKykge1xuICAgICAgICAgICAgaWYgKGkgPj0gb3B0cy5taW5ZZWFyKSB7XG4gICAgICAgICAgICAgICAgYXJyLnB1c2goJzxvcHRpb24gdmFsdWU9XCInICsgaSArICdcIicgKyAoaSA9PT0geWVhciA/ICcgc2VsZWN0ZWQ9XCJzZWxlY3RlZFwiJzogJycpICsgJz4nICsgKGkpICsgJzwvb3B0aW9uPicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHllYXJIdG1sID0gJzxkaXYgY2xhc3M9XCJwaWthLWxhYmVsXCI+JyArIHllYXIgKyBvcHRzLnllYXJTdWZmaXggKyAnPHNlbGVjdCBjbGFzcz1cInBpa2Etc2VsZWN0IHBpa2Etc2VsZWN0LXllYXJcIiB0YWJpbmRleD1cIi0xXCI+JyArIGFyci5qb2luKCcnKSArICc8L3NlbGVjdD48L2Rpdj4nO1xuXG4gICAgICAgIGlmIChvcHRzLnNob3dNb250aEFmdGVyWWVhcikge1xuICAgICAgICAgICAgaHRtbCArPSB5ZWFySHRtbCArIG1vbnRoSHRtbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGh0bWwgKz0gbW9udGhIdG1sICsgeWVhckh0bWw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNNaW5ZZWFyICYmIChtb250aCA9PT0gMCB8fCBvcHRzLm1pbk1vbnRoID49IG1vbnRoKSkge1xuICAgICAgICAgICAgcHJldiA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzTWF4WWVhciAmJiAobW9udGggPT09IDExIHx8IG9wdHMubWF4TW9udGggPD0gbW9udGgpKSB7XG4gICAgICAgICAgICBuZXh0ID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYyA9PT0gMCkge1xuICAgICAgICAgICAgaHRtbCArPSAnPGJ1dHRvbiBjbGFzcz1cInBpa2EtcHJldicgKyAocHJldiA/ICcnIDogJyBpcy1kaXNhYmxlZCcpICsgJ1wiIHR5cGU9XCJidXR0b25cIj4nICsgb3B0cy5pMThuLnByZXZpb3VzTW9udGggKyAnPC9idXR0b24+JztcbiAgICAgICAgfVxuICAgICAgICBpZiAoYyA9PT0gKGluc3RhbmNlLl9vLm51bWJlck9mTW9udGhzIC0gMSkgKSB7XG4gICAgICAgICAgICBodG1sICs9ICc8YnV0dG9uIGNsYXNzPVwicGlrYS1uZXh0JyArIChuZXh0ID8gJycgOiAnIGlzLWRpc2FibGVkJykgKyAnXCIgdHlwZT1cImJ1dHRvblwiPicgKyBvcHRzLmkxOG4ubmV4dE1vbnRoICsgJzwvYnV0dG9uPic7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaHRtbCArPSAnPC9kaXY+JztcbiAgICB9LFxuXG4gICAgcmVuZGVyVGFibGUgPSBmdW5jdGlvbihvcHRzLCBkYXRhLCByYW5kSWQpXG4gICAge1xuICAgICAgICByZXR1cm4gJzx0YWJsZSBjZWxscGFkZGluZz1cIjBcIiBjZWxsc3BhY2luZz1cIjBcIiBjbGFzcz1cInBpa2EtdGFibGVcIiByb2xlPVwiZ3JpZFwiIGFyaWEtbGFiZWxsZWRieT1cIicgKyByYW5kSWQgKyAnXCI+JyArIHJlbmRlckhlYWQob3B0cykgKyByZW5kZXJCb2R5KGRhdGEpICsgJzwvdGFibGU+JztcbiAgICB9LFxuXG5cbiAgICAvKipcbiAgICAgKiBQaWthZGF5IGNvbnN0cnVjdG9yXG4gICAgICovXG4gICAgUGlrYWRheSA9IGZ1bmN0aW9uKG9wdGlvbnMpXG4gICAge1xuICAgICAgICB2YXIgc2VsZiA9IHRoaXMsXG4gICAgICAgICAgICBvcHRzID0gc2VsZi5jb25maWcob3B0aW9ucyk7XG5cbiAgICAgICAgc2VsZi5fb25Nb3VzZURvd24gPSBmdW5jdGlvbihlKVxuICAgICAgICB7XG4gICAgICAgICAgICBpZiAoIXNlbGYuX3YpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlID0gZSB8fCB3aW5kb3cuZXZlbnQ7XG4gICAgICAgICAgICB2YXIgdGFyZ2V0ID0gZS50YXJnZXQgfHwgZS5zcmNFbGVtZW50O1xuICAgICAgICAgICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghaGFzQ2xhc3ModGFyZ2V0LCAnaXMtZGlzYWJsZWQnKSkge1xuICAgICAgICAgICAgICAgIGlmIChoYXNDbGFzcyh0YXJnZXQsICdwaWthLWJ1dHRvbicpICYmICFoYXNDbGFzcyh0YXJnZXQsICdpcy1lbXB0eScpICYmICFoYXNDbGFzcyh0YXJnZXQucGFyZW50Tm9kZSwgJ2lzLWRpc2FibGVkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXREYXRlKG5ldyBEYXRlKHRhcmdldC5nZXRBdHRyaWJ1dGUoJ2RhdGEtcGlrYS15ZWFyJyksIHRhcmdldC5nZXRBdHRyaWJ1dGUoJ2RhdGEtcGlrYS1tb250aCcpLCB0YXJnZXQuZ2V0QXR0cmlidXRlKCdkYXRhLXBpa2EtZGF5JykpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdHMuYm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0byhmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3B0cy5ibHVyRmllbGRPblNlbGVjdCAmJiBvcHRzLmZpZWxkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMuZmllbGQuYmx1cigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoaGFzQ2xhc3ModGFyZ2V0LCAncGlrYS1wcmV2JykpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5wcmV2TW9udGgoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoaGFzQ2xhc3ModGFyZ2V0LCAncGlrYS1uZXh0JykpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5uZXh0TW9udGgoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWhhc0NsYXNzKHRhcmdldCwgJ3Bpa2Etc2VsZWN0JykpIHtcbiAgICAgICAgICAgICAgICAvLyBpZiB0aGlzIGlzIHRvdWNoIGV2ZW50IHByZXZlbnQgbW91c2UgZXZlbnRzIGVtdWxhdGlvblxuICAgICAgICAgICAgICAgIGlmIChlLnByZXZlbnREZWZhdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBlLnJldHVyblZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNlbGYuX2MgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHNlbGYuX29uQ2hhbmdlID0gZnVuY3Rpb24oZSlcbiAgICAgICAge1xuICAgICAgICAgICAgZSA9IGUgfHwgd2luZG93LmV2ZW50O1xuICAgICAgICAgICAgdmFyIHRhcmdldCA9IGUudGFyZ2V0IHx8IGUuc3JjRWxlbWVudDtcbiAgICAgICAgICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGhhc0NsYXNzKHRhcmdldCwgJ3Bpa2Etc2VsZWN0LW1vbnRoJykpIHtcbiAgICAgICAgICAgICAgICBzZWxmLmdvdG9Nb250aCh0YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaGFzQ2xhc3ModGFyZ2V0LCAncGlrYS1zZWxlY3QteWVhcicpKSB7XG4gICAgICAgICAgICAgICAgc2VsZi5nb3RvWWVhcih0YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHNlbGYuX29uS2V5Q2hhbmdlID0gZnVuY3Rpb24oZSlcbiAgICAgICAge1xuICAgICAgICAgICAgZSA9IGUgfHwgd2luZG93LmV2ZW50O1xuXG4gICAgICAgICAgICBpZiAoc2VsZi5pc1Zpc2libGUoKSkge1xuXG4gICAgICAgICAgICAgICAgc3dpdGNoKGUua2V5Q29kZSl7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob3B0cy5maWVsZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMuZmllbGQuYmx1cigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzc6XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFkanVzdERhdGUoJ3N1YnRyYWN0JywgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzODpcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYWRqdXN0RGF0ZSgnc3VidHJhY3QnLCA3KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM5OlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hZGp1c3REYXRlKCdhZGQnLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDQwOlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hZGp1c3REYXRlKCdhZGQnLCA3KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDY6XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNldERhdGUobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgc2VsZi5fcGFyc2VGaWVsZFZhbHVlID0gZnVuY3Rpb24oKVxuICAgICAgICB7XG4gICAgICAgICAgICBpZiAob3B0cy5wYXJzZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRzLnBhcnNlKG9wdHMuZmllbGQudmFsdWUsIG9wdHMuZm9ybWF0KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaGFzTW9tZW50KSB7XG4gICAgICAgICAgICAgICAgdmFyIGRhdGUgPSBtb21lbnQob3B0cy5maWVsZC52YWx1ZSwgb3B0cy5mb3JtYXQsIG9wdHMuZm9ybWF0U3RyaWN0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKGRhdGUgJiYgZGF0ZS5pc1ZhbGlkKCkpID8gZGF0ZS50b0RhdGUoKSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShEYXRlLnBhcnNlKG9wdHMuZmllbGQudmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBzZWxmLl9vbklucHV0Q2hhbmdlID0gZnVuY3Rpb24oZSlcbiAgICAgICAge1xuICAgICAgICAgICAgdmFyIGRhdGU7XG5cbiAgICAgICAgICAgIGlmIChlLmZpcmVkQnkgPT09IHNlbGYpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXRlID0gc2VsZi5fcGFyc2VGaWVsZFZhbHVlKCk7XG4gICAgICAgICAgICBpZiAoaXNEYXRlKGRhdGUpKSB7XG4gICAgICAgICAgICAgIHNlbGYuc2V0RGF0ZShkYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghc2VsZi5fdikge1xuICAgICAgICAgICAgICAgIHNlbGYuc2hvdygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHNlbGYuX29uSW5wdXRGb2N1cyA9IGZ1bmN0aW9uKClcbiAgICAgICAge1xuICAgICAgICAgICAgc2VsZi5zaG93KCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgc2VsZi5fb25JbnB1dENsaWNrID0gZnVuY3Rpb24oKVxuICAgICAgICB7XG4gICAgICAgICAgICBzZWxmLnNob3coKTtcbiAgICAgICAgfTtcblxuICAgICAgICBzZWxmLl9vbklucHV0Qmx1ciA9IGZ1bmN0aW9uKClcbiAgICAgICAge1xuICAgICAgICAgICAgLy8gSUUgYWxsb3dzIHBpa2EgZGl2IHRvIGdhaW4gZm9jdXM7IGNhdGNoIGJsdXIgdGhlIGlucHV0IGZpZWxkXG4gICAgICAgICAgICB2YXIgcEVsID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICBpZiAoaGFzQ2xhc3MocEVsLCAncGlrYS1zaW5nbGUnKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd2hpbGUgKChwRWwgPSBwRWwucGFyZW50Tm9kZSkpO1xuXG4gICAgICAgICAgICBpZiAoIXNlbGYuX2MpIHtcbiAgICAgICAgICAgICAgICBzZWxmLl9iID0gc3RvKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICBzZWxmLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9LCA1MCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZWxmLl9jID0gZmFsc2U7XG4gICAgICAgIH07XG5cbiAgICAgICAgc2VsZi5fb25DbGljayA9IGZ1bmN0aW9uKGUpXG4gICAgICAgIHtcbiAgICAgICAgICAgIGUgPSBlIHx8IHdpbmRvdy5ldmVudDtcbiAgICAgICAgICAgIHZhciB0YXJnZXQgPSBlLnRhcmdldCB8fCBlLnNyY0VsZW1lbnQsXG4gICAgICAgICAgICAgICAgcEVsID0gdGFyZ2V0O1xuICAgICAgICAgICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWhhc0V2ZW50TGlzdGVuZXJzICYmIGhhc0NsYXNzKHRhcmdldCwgJ3Bpa2Etc2VsZWN0JykpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRhcmdldC5vbmNoYW5nZSkge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQuc2V0QXR0cmlidXRlKCdvbmNoYW5nZScsICdyZXR1cm47Jyk7XG4gICAgICAgICAgICAgICAgICAgIGFkZEV2ZW50KHRhcmdldCwgJ2NoYW5nZScsIHNlbGYuX29uQ2hhbmdlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgaWYgKGhhc0NsYXNzKHBFbCwgJ3Bpa2Etc2luZ2xlJykgfHwgcEVsID09PSBvcHRzLnRyaWdnZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdoaWxlICgocEVsID0gcEVsLnBhcmVudE5vZGUpKTtcbiAgICAgICAgICAgIGlmIChzZWxmLl92ICYmIHRhcmdldCAhPT0gb3B0cy50cmlnZ2VyICYmIHBFbCAhPT0gb3B0cy50cmlnZ2VyKSB7XG4gICAgICAgICAgICAgICAgc2VsZi5oaWRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgc2VsZi5lbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBzZWxmLmVsLmNsYXNzTmFtZSA9ICdwaWthLXNpbmdsZScgKyAob3B0cy5pc1JUTCA/ICcgaXMtcnRsJyA6ICcnKSArIChvcHRzLnRoZW1lID8gJyAnICsgb3B0cy50aGVtZSA6ICcnKTtcblxuICAgICAgICBhZGRFdmVudChzZWxmLmVsLCAnbW91c2Vkb3duJywgc2VsZi5fb25Nb3VzZURvd24sIHRydWUpO1xuICAgICAgICBhZGRFdmVudChzZWxmLmVsLCAndG91Y2hlbmQnLCBzZWxmLl9vbk1vdXNlRG93biwgdHJ1ZSk7XG4gICAgICAgIGFkZEV2ZW50KHNlbGYuZWwsICdjaGFuZ2UnLCBzZWxmLl9vbkNoYW5nZSk7XG5cbiAgICAgICAgaWYgKG9wdHMua2V5Ym9hcmRJbnB1dCkge1xuICAgICAgICAgICAgYWRkRXZlbnQoZG9jdW1lbnQsICdrZXlkb3duJywgc2VsZi5fb25LZXlDaGFuZ2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdHMuZmllbGQpIHtcbiAgICAgICAgICAgIGlmIChvcHRzLmNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgIG9wdHMuY29udGFpbmVyLmFwcGVuZENoaWxkKHNlbGYuZWwpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChvcHRzLmJvdW5kKSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzZWxmLmVsKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgb3B0cy5maWVsZC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShzZWxmLmVsLCBvcHRzLmZpZWxkLm5leHRTaWJsaW5nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFkZEV2ZW50KG9wdHMuZmllbGQsICdjaGFuZ2UnLCBzZWxmLl9vbklucHV0Q2hhbmdlKTtcblxuICAgICAgICAgICAgaWYgKCFvcHRzLmRlZmF1bHREYXRlKSB7XG4gICAgICAgICAgICAgICAgb3B0cy5kZWZhdWx0RGF0ZSA9IHNlbGYuX3BhcnNlRmllbGRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIG9wdHMuc2V0RGVmYXVsdERhdGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGRlZkRhdGUgPSBvcHRzLmRlZmF1bHREYXRlO1xuXG4gICAgICAgIGlmIChpc0RhdGUoZGVmRGF0ZSkpIHtcbiAgICAgICAgICAgIGlmIChvcHRzLnNldERlZmF1bHREYXRlKSB7XG4gICAgICAgICAgICAgICAgc2VsZi5zZXREYXRlKGRlZkRhdGUsIHRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzZWxmLmdvdG9EYXRlKGRlZkRhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2VsZi5nb3RvRGF0ZShuZXcgRGF0ZSgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRzLmJvdW5kKSB7XG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgIHNlbGYuZWwuY2xhc3NOYW1lICs9ICcgaXMtYm91bmQnO1xuICAgICAgICAgICAgYWRkRXZlbnQob3B0cy50cmlnZ2VyLCAnY2xpY2snLCBzZWxmLl9vbklucHV0Q2xpY2spO1xuICAgICAgICAgICAgYWRkRXZlbnQob3B0cy50cmlnZ2VyLCAnZm9jdXMnLCBzZWxmLl9vbklucHV0Rm9jdXMpO1xuICAgICAgICAgICAgYWRkRXZlbnQob3B0cy50cmlnZ2VyLCAnYmx1cicsIHNlbGYuX29uSW5wdXRCbHVyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2hvdygpO1xuICAgICAgICB9XG4gICAgfTtcblxuXG4gICAgLyoqXG4gICAgICogcHVibGljIFBpa2FkYXkgQVBJXG4gICAgICovXG4gICAgUGlrYWRheS5wcm90b3R5cGUgPSB7XG5cblxuICAgICAgICAvKipcbiAgICAgICAgICogY29uZmlndXJlIGZ1bmN0aW9uYWxpdHlcbiAgICAgICAgICovXG4gICAgICAgIGNvbmZpZzogZnVuY3Rpb24ob3B0aW9ucylcbiAgICAgICAge1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9vKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbyA9IGV4dGVuZCh7fSwgZGVmYXVsdHMsIHRydWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgb3B0cyA9IGV4dGVuZCh0aGlzLl9vLCBvcHRpb25zLCB0cnVlKTtcblxuICAgICAgICAgICAgb3B0cy5pc1JUTCA9ICEhb3B0cy5pc1JUTDtcblxuICAgICAgICAgICAgb3B0cy5maWVsZCA9IChvcHRzLmZpZWxkICYmIG9wdHMuZmllbGQubm9kZU5hbWUpID8gb3B0cy5maWVsZCA6IG51bGw7XG5cbiAgICAgICAgICAgIG9wdHMudGhlbWUgPSAodHlwZW9mIG9wdHMudGhlbWUpID09PSAnc3RyaW5nJyAmJiBvcHRzLnRoZW1lID8gb3B0cy50aGVtZSA6IG51bGw7XG5cbiAgICAgICAgICAgIG9wdHMuYm91bmQgPSAhIShvcHRzLmJvdW5kICE9PSB1bmRlZmluZWQgPyBvcHRzLmZpZWxkICYmIG9wdHMuYm91bmQgOiBvcHRzLmZpZWxkKTtcblxuICAgICAgICAgICAgb3B0cy50cmlnZ2VyID0gKG9wdHMudHJpZ2dlciAmJiBvcHRzLnRyaWdnZXIubm9kZU5hbWUpID8gb3B0cy50cmlnZ2VyIDogb3B0cy5maWVsZDtcblxuICAgICAgICAgICAgb3B0cy5kaXNhYmxlV2Vla2VuZHMgPSAhIW9wdHMuZGlzYWJsZVdlZWtlbmRzO1xuXG4gICAgICAgICAgICBvcHRzLmRpc2FibGVEYXlGbiA9ICh0eXBlb2Ygb3B0cy5kaXNhYmxlRGF5Rm4pID09PSAnZnVuY3Rpb24nID8gb3B0cy5kaXNhYmxlRGF5Rm4gOiBudWxsO1xuXG4gICAgICAgICAgICB2YXIgbm9tID0gcGFyc2VJbnQob3B0cy5udW1iZXJPZk1vbnRocywgMTApIHx8IDE7XG4gICAgICAgICAgICBvcHRzLm51bWJlck9mTW9udGhzID0gbm9tID4gNCA/IDQgOiBub207XG5cbiAgICAgICAgICAgIGlmICghaXNEYXRlKG9wdHMubWluRGF0ZSkpIHtcbiAgICAgICAgICAgICAgICBvcHRzLm1pbkRhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghaXNEYXRlKG9wdHMubWF4RGF0ZSkpIHtcbiAgICAgICAgICAgICAgICBvcHRzLm1heERhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgob3B0cy5taW5EYXRlICYmIG9wdHMubWF4RGF0ZSkgJiYgb3B0cy5tYXhEYXRlIDwgb3B0cy5taW5EYXRlKSB7XG4gICAgICAgICAgICAgICAgb3B0cy5tYXhEYXRlID0gb3B0cy5taW5EYXRlID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3B0cy5taW5EYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRNaW5EYXRlKG9wdHMubWluRGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3B0cy5tYXhEYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRNYXhEYXRlKG9wdHMubWF4RGF0ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpc0FycmF5KG9wdHMueWVhclJhbmdlKSkge1xuICAgICAgICAgICAgICAgIHZhciBmYWxsYmFjayA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSAtIDEwO1xuICAgICAgICAgICAgICAgIG9wdHMueWVhclJhbmdlWzBdID0gcGFyc2VJbnQob3B0cy55ZWFyUmFuZ2VbMF0sIDEwKSB8fCBmYWxsYmFjaztcbiAgICAgICAgICAgICAgICBvcHRzLnllYXJSYW5nZVsxXSA9IHBhcnNlSW50KG9wdHMueWVhclJhbmdlWzFdLCAxMCkgfHwgZmFsbGJhY2s7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG9wdHMueWVhclJhbmdlID0gTWF0aC5hYnMocGFyc2VJbnQob3B0cy55ZWFyUmFuZ2UsIDEwKSkgfHwgZGVmYXVsdHMueWVhclJhbmdlO1xuICAgICAgICAgICAgICAgIGlmIChvcHRzLnllYXJSYW5nZSA+IDEwMCkge1xuICAgICAgICAgICAgICAgICAgICBvcHRzLnllYXJSYW5nZSA9IDEwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBvcHRzO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiByZXR1cm4gYSBmb3JtYXR0ZWQgc3RyaW5nIG9mIHRoZSBjdXJyZW50IHNlbGVjdGlvbiAodXNpbmcgTW9tZW50LmpzIGlmIGF2YWlsYWJsZSlcbiAgICAgICAgICovXG4gICAgICAgIHRvU3RyaW5nOiBmdW5jdGlvbihmb3JtYXQpXG4gICAgICAgIHtcbiAgICAgICAgICAgIGZvcm1hdCA9IGZvcm1hdCB8fCB0aGlzLl9vLmZvcm1hdDtcbiAgICAgICAgICAgIGlmICghaXNEYXRlKHRoaXMuX2QpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuX28udG9TdHJpbmcpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX28udG9TdHJpbmcodGhpcy5fZCwgZm9ybWF0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoYXNNb21lbnQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG1vbWVudCh0aGlzLl9kKS5mb3JtYXQoZm9ybWF0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kLnRvRGF0ZVN0cmluZygpO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiByZXR1cm4gYSBNb21lbnQuanMgb2JqZWN0IG9mIHRoZSBjdXJyZW50IHNlbGVjdGlvbiAoaWYgYXZhaWxhYmxlKVxuICAgICAgICAgKi9cbiAgICAgICAgZ2V0TW9tZW50OiBmdW5jdGlvbigpXG4gICAgICAgIHtcbiAgICAgICAgICAgIHJldHVybiBoYXNNb21lbnQgPyBtb21lbnQodGhpcy5fZCkgOiBudWxsO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBzZXQgdGhlIGN1cnJlbnQgc2VsZWN0aW9uIGZyb20gYSBNb21lbnQuanMgb2JqZWN0IChpZiBhdmFpbGFibGUpXG4gICAgICAgICAqL1xuICAgICAgICBzZXRNb21lbnQ6IGZ1bmN0aW9uKGRhdGUsIHByZXZlbnRPblNlbGVjdClcbiAgICAgICAge1xuICAgICAgICAgICAgaWYgKGhhc01vbWVudCAmJiBtb21lbnQuaXNNb21lbnQoZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldERhdGUoZGF0ZS50b0RhdGUoKSwgcHJldmVudE9uU2VsZWN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICAvKipcbiAgICAgICAgICogcmV0dXJuIGEgRGF0ZSBvYmplY3Qgb2YgdGhlIGN1cnJlbnQgc2VsZWN0aW9uXG4gICAgICAgICAqL1xuICAgICAgICBnZXREYXRlOiBmdW5jdGlvbigpXG4gICAgICAgIHtcbiAgICAgICAgICAgIHJldHVybiBpc0RhdGUodGhpcy5fZCkgPyBuZXcgRGF0ZSh0aGlzLl9kLmdldFRpbWUoKSkgOiBudWxsO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBzZXQgdGhlIGN1cnJlbnQgc2VsZWN0aW9uXG4gICAgICAgICAqL1xuICAgICAgICBzZXREYXRlOiBmdW5jdGlvbihkYXRlLCBwcmV2ZW50T25TZWxlY3QpXG4gICAgICAgIHtcbiAgICAgICAgICAgIGlmICghZGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2QgPSBudWxsO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX28uZmllbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fby5maWVsZC52YWx1ZSA9ICcnO1xuICAgICAgICAgICAgICAgICAgICBmaXJlRXZlbnQodGhpcy5fby5maWVsZCwgJ2NoYW5nZScsIHsgZmlyZWRCeTogdGhpcyB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kcmF3KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgZGF0ZSA9IG5ldyBEYXRlKERhdGUucGFyc2UoZGF0ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFpc0RhdGUoZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBtaW4gPSB0aGlzLl9vLm1pbkRhdGUsXG4gICAgICAgICAgICAgICAgbWF4ID0gdGhpcy5fby5tYXhEYXRlO1xuXG4gICAgICAgICAgICBpZiAoaXNEYXRlKG1pbikgJiYgZGF0ZSA8IG1pbikge1xuICAgICAgICAgICAgICAgIGRhdGUgPSBtaW47XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzRGF0ZShtYXgpICYmIGRhdGUgPiBtYXgpIHtcbiAgICAgICAgICAgICAgICBkYXRlID0gbWF4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9kID0gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkpO1xuICAgICAgICAgICAgc2V0VG9TdGFydE9mRGF5KHRoaXMuX2QpO1xuICAgICAgICAgICAgdGhpcy5nb3RvRGF0ZSh0aGlzLl9kKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuX28uZmllbGQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vLmZpZWxkLnZhbHVlID0gdGhpcy50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgIGZpcmVFdmVudCh0aGlzLl9vLmZpZWxkLCAnY2hhbmdlJywgeyBmaXJlZEJ5OiB0aGlzIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFwcmV2ZW50T25TZWxlY3QgJiYgdHlwZW9mIHRoaXMuX28ub25TZWxlY3QgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vLm9uU2VsZWN0LmNhbGwodGhpcywgdGhpcy5nZXREYXRlKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBjbGVhciBhbmQgcmVzZXQgdGhlIGRhdGVcbiAgICAgICAgICovXG4gICAgICAgIGNsZWFyOiBmdW5jdGlvbigpXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRoaXMuc2V0RGF0ZShudWxsKTtcbiAgICAgICAgfSxcblxuICAgICAgICAvKipcbiAgICAgICAgICogY2hhbmdlIHZpZXcgdG8gYSBzcGVjaWZpYyBkYXRlXG4gICAgICAgICAqL1xuICAgICAgICBnb3RvRGF0ZTogZnVuY3Rpb24oZGF0ZSlcbiAgICAgICAge1xuICAgICAgICAgICAgdmFyIG5ld0NhbGVuZGFyID0gdHJ1ZTtcblxuICAgICAgICAgICAgaWYgKCFpc0RhdGUoZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmNhbGVuZGFycykge1xuICAgICAgICAgICAgICAgIHZhciBmaXJzdFZpc2libGVEYXRlID0gbmV3IERhdGUodGhpcy5jYWxlbmRhcnNbMF0ueWVhciwgdGhpcy5jYWxlbmRhcnNbMF0ubW9udGgsIDEpLFxuICAgICAgICAgICAgICAgICAgICBsYXN0VmlzaWJsZURhdGUgPSBuZXcgRGF0ZSh0aGlzLmNhbGVuZGFyc1t0aGlzLmNhbGVuZGFycy5sZW5ndGgtMV0ueWVhciwgdGhpcy5jYWxlbmRhcnNbdGhpcy5jYWxlbmRhcnMubGVuZ3RoLTFdLm1vbnRoLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJsZURhdGUgPSBkYXRlLmdldFRpbWUoKTtcbiAgICAgICAgICAgICAgICAvLyBnZXQgdGhlIGVuZCBvZiB0aGUgbW9udGhcbiAgICAgICAgICAgICAgICBsYXN0VmlzaWJsZURhdGUuc2V0TW9udGgobGFzdFZpc2libGVEYXRlLmdldE1vbnRoKCkrMSk7XG4gICAgICAgICAgICAgICAgbGFzdFZpc2libGVEYXRlLnNldERhdGUobGFzdFZpc2libGVEYXRlLmdldERhdGUoKS0xKTtcbiAgICAgICAgICAgICAgICBuZXdDYWxlbmRhciA9ICh2aXNpYmxlRGF0ZSA8IGZpcnN0VmlzaWJsZURhdGUuZ2V0VGltZSgpIHx8IGxhc3RWaXNpYmxlRGF0ZS5nZXRUaW1lKCkgPCB2aXNpYmxlRGF0ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChuZXdDYWxlbmRhcikge1xuICAgICAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJzID0gW3tcbiAgICAgICAgICAgICAgICAgICAgbW9udGg6IGRhdGUuZ2V0TW9udGgoKSxcbiAgICAgICAgICAgICAgICAgICAgeWVhcjogZGF0ZS5nZXRGdWxsWWVhcigpXG4gICAgICAgICAgICAgICAgfV07XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX28ubWFpbkNhbGVuZGFyID09PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJzWzBdLm1vbnRoICs9IDEgLSB0aGlzLl9vLm51bWJlck9mTW9udGhzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5hZGp1c3RDYWxlbmRhcnMoKTtcbiAgICAgICAgfSxcblxuICAgICAgICBhZGp1c3REYXRlOiBmdW5jdGlvbihzaWduLCBkYXlzKSB7XG5cbiAgICAgICAgICAgIHZhciBkYXkgPSB0aGlzLmdldERhdGUoKSB8fCBuZXcgRGF0ZSgpO1xuICAgICAgICAgICAgdmFyIGRpZmZlcmVuY2UgPSBwYXJzZUludChkYXlzKSoyNCo2MCo2MCoxMDAwO1xuXG4gICAgICAgICAgICB2YXIgbmV3RGF5O1xuXG4gICAgICAgICAgICBpZiAoc2lnbiA9PT0gJ2FkZCcpIHtcbiAgICAgICAgICAgICAgICBuZXdEYXkgPSBuZXcgRGF0ZShkYXkudmFsdWVPZigpICsgZGlmZmVyZW5jZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHNpZ24gPT09ICdzdWJ0cmFjdCcpIHtcbiAgICAgICAgICAgICAgICBuZXdEYXkgPSBuZXcgRGF0ZShkYXkudmFsdWVPZigpIC0gZGlmZmVyZW5jZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc2V0RGF0ZShuZXdEYXkpO1xuICAgICAgICB9LFxuXG4gICAgICAgIGFkanVzdENhbGVuZGFyczogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB0aGlzLmNhbGVuZGFyc1swXSA9IGFkanVzdENhbGVuZGFyKHRoaXMuY2FsZW5kYXJzWzBdKTtcbiAgICAgICAgICAgIGZvciAodmFyIGMgPSAxOyBjIDwgdGhpcy5fby5udW1iZXJPZk1vbnRoczsgYysrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYWxlbmRhcnNbY10gPSBhZGp1c3RDYWxlbmRhcih7XG4gICAgICAgICAgICAgICAgICAgIG1vbnRoOiB0aGlzLmNhbGVuZGFyc1swXS5tb250aCArIGMsXG4gICAgICAgICAgICAgICAgICAgIHllYXI6IHRoaXMuY2FsZW5kYXJzWzBdLnllYXJcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZHJhdygpO1xuICAgICAgICB9LFxuXG4gICAgICAgIGdvdG9Ub2RheTogZnVuY3Rpb24oKVxuICAgICAgICB7XG4gICAgICAgICAgICB0aGlzLmdvdG9EYXRlKG5ldyBEYXRlKCkpO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBjaGFuZ2UgdmlldyB0byBhIHNwZWNpZmljIG1vbnRoICh6ZXJvLWluZGV4LCBlLmcuIDA6IEphbnVhcnkpXG4gICAgICAgICAqL1xuICAgICAgICBnb3RvTW9udGg6IGZ1bmN0aW9uKG1vbnRoKVxuICAgICAgICB7XG4gICAgICAgICAgICBpZiAoIWlzTmFOKG1vbnRoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJzWzBdLm1vbnRoID0gcGFyc2VJbnQobW9udGgsIDEwKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFkanVzdENhbGVuZGFycygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIG5leHRNb250aDogZnVuY3Rpb24oKVxuICAgICAgICB7XG4gICAgICAgICAgICB0aGlzLmNhbGVuZGFyc1swXS5tb250aCsrO1xuICAgICAgICAgICAgdGhpcy5hZGp1c3RDYWxlbmRhcnMoKTtcbiAgICAgICAgfSxcblxuICAgICAgICBwcmV2TW9udGg6IGZ1bmN0aW9uKClcbiAgICAgICAge1xuICAgICAgICAgICAgdGhpcy5jYWxlbmRhcnNbMF0ubW9udGgtLTtcbiAgICAgICAgICAgIHRoaXMuYWRqdXN0Q2FsZW5kYXJzKCk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGNoYW5nZSB2aWV3IHRvIGEgc3BlY2lmaWMgZnVsbCB5ZWFyIChlLmcuIFwiMjAxMlwiKVxuICAgICAgICAgKi9cbiAgICAgICAgZ290b1llYXI6IGZ1bmN0aW9uKHllYXIpXG4gICAgICAgIHtcbiAgICAgICAgICAgIGlmICghaXNOYU4oeWVhcikpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGVuZGFyc1swXS55ZWFyID0gcGFyc2VJbnQoeWVhciwgMTApO1xuICAgICAgICAgICAgICAgIHRoaXMuYWRqdXN0Q2FsZW5kYXJzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIGNoYW5nZSB0aGUgbWluRGF0ZVxuICAgICAgICAgKi9cbiAgICAgICAgc2V0TWluRGF0ZTogZnVuY3Rpb24odmFsdWUpXG4gICAgICAgIHtcbiAgICAgICAgICAgIGlmKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgICAgIHNldFRvU3RhcnRPZkRheSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fby5taW5EYXRlID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgdGhpcy5fby5taW5ZZWFyICA9IHZhbHVlLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fby5taW5Nb250aCA9IHZhbHVlLmdldE1vbnRoKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX28ubWluRGF0ZSA9IGRlZmF1bHRzLm1pbkRhdGU7XG4gICAgICAgICAgICAgICAgdGhpcy5fby5taW5ZZWFyICA9IGRlZmF1bHRzLm1pblllYXI7XG4gICAgICAgICAgICAgICAgdGhpcy5fby5taW5Nb250aCA9IGRlZmF1bHRzLm1pbk1vbnRoO1xuICAgICAgICAgICAgICAgIHRoaXMuX28uc3RhcnRSYW5nZSA9IGRlZmF1bHRzLnN0YXJ0UmFuZ2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuZHJhdygpO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBjaGFuZ2UgdGhlIG1heERhdGVcbiAgICAgICAgICovXG4gICAgICAgIHNldE1heERhdGU6IGZ1bmN0aW9uKHZhbHVlKVxuICAgICAgICB7XG4gICAgICAgICAgICBpZih2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgICAgICBzZXRUb1N0YXJ0T2ZEYXkodmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX28ubWF4RGF0ZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIHRoaXMuX28ubWF4WWVhciA9IHZhbHVlLmdldEZ1bGxZZWFyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fby5tYXhNb250aCA9IHZhbHVlLmdldE1vbnRoKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX28ubWF4RGF0ZSA9IGRlZmF1bHRzLm1heERhdGU7XG4gICAgICAgICAgICAgICAgdGhpcy5fby5tYXhZZWFyID0gZGVmYXVsdHMubWF4WWVhcjtcbiAgICAgICAgICAgICAgICB0aGlzLl9vLm1heE1vbnRoID0gZGVmYXVsdHMubWF4TW9udGg7XG4gICAgICAgICAgICAgICAgdGhpcy5fby5lbmRSYW5nZSA9IGRlZmF1bHRzLmVuZFJhbmdlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmRyYXcoKTtcbiAgICAgICAgfSxcblxuICAgICAgICBzZXRTdGFydFJhbmdlOiBmdW5jdGlvbih2YWx1ZSlcbiAgICAgICAge1xuICAgICAgICAgICAgdGhpcy5fby5zdGFydFJhbmdlID0gdmFsdWU7XG4gICAgICAgIH0sXG5cbiAgICAgICAgc2V0RW5kUmFuZ2U6IGZ1bmN0aW9uKHZhbHVlKVxuICAgICAgICB7XG4gICAgICAgICAgICB0aGlzLl9vLmVuZFJhbmdlID0gdmFsdWU7XG4gICAgICAgIH0sXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIHJlZnJlc2ggdGhlIEhUTUxcbiAgICAgICAgICovXG4gICAgICAgIGRyYXc6IGZ1bmN0aW9uKGZvcmNlKVxuICAgICAgICB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX3YgJiYgIWZvcmNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIG9wdHMgPSB0aGlzLl9vLFxuICAgICAgICAgICAgICAgIG1pblllYXIgPSBvcHRzLm1pblllYXIsXG4gICAgICAgICAgICAgICAgbWF4WWVhciA9IG9wdHMubWF4WWVhcixcbiAgICAgICAgICAgICAgICBtaW5Nb250aCA9IG9wdHMubWluTW9udGgsXG4gICAgICAgICAgICAgICAgbWF4TW9udGggPSBvcHRzLm1heE1vbnRoLFxuICAgICAgICAgICAgICAgIGh0bWwgPSAnJyxcbiAgICAgICAgICAgICAgICByYW5kSWQ7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl95IDw9IG1pblllYXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl95ID0gbWluWWVhcjtcbiAgICAgICAgICAgICAgICBpZiAoIWlzTmFOKG1pbk1vbnRoKSAmJiB0aGlzLl9tIDwgbWluTW9udGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbSA9IG1pbk1vbnRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLl95ID49IG1heFllYXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl95ID0gbWF4WWVhcjtcbiAgICAgICAgICAgICAgICBpZiAoIWlzTmFOKG1heE1vbnRoKSAmJiB0aGlzLl9tID4gbWF4TW9udGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbSA9IG1heE1vbnRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yICh2YXIgYyA9IDA7IGMgPCBvcHRzLm51bWJlck9mTW9udGhzOyBjKyspIHtcbiAgICAgICAgICAgICAgICByYW5kSWQgPSAncGlrYS10aXRsZS0nICsgTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikucmVwbGFjZSgvW15hLXpdKy9nLCAnJykuc3Vic3RyKDAsIDIpO1xuICAgICAgICAgICAgICAgIGh0bWwgKz0gJzxkaXYgY2xhc3M9XCJwaWthLWxlbmRhclwiPicgKyByZW5kZXJUaXRsZSh0aGlzLCBjLCB0aGlzLmNhbGVuZGFyc1tjXS55ZWFyLCB0aGlzLmNhbGVuZGFyc1tjXS5tb250aCwgdGhpcy5jYWxlbmRhcnNbMF0ueWVhciwgcmFuZElkKSArIHRoaXMucmVuZGVyKHRoaXMuY2FsZW5kYXJzW2NdLnllYXIsIHRoaXMuY2FsZW5kYXJzW2NdLm1vbnRoLCByYW5kSWQpICsgJzwvZGl2Pic7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuZWwuaW5uZXJIVE1MID0gaHRtbDtcblxuICAgICAgICAgICAgaWYgKG9wdHMuYm91bmQpIHtcbiAgICAgICAgICAgICAgICBpZihvcHRzLmZpZWxkLnR5cGUgIT09ICdoaWRkZW4nKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0byhmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdHMudHJpZ2dlci5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICB9LCAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5fby5vbkRyYXcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vLm9uRHJhdyh0aGlzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG9wdHMuYm91bmQpIHtcbiAgICAgICAgICAgICAgICAvLyBsZXQgdGhlIHNjcmVlbiByZWFkZXIgdXNlciBrbm93IHRvIHVzZSBhcnJvdyBrZXlzXG4gICAgICAgICAgICAgICAgb3B0cy5maWVsZC5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLCBvcHRzLmFyaWFMYWJlbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgYWRqdXN0UG9zaXRpb246IGZ1bmN0aW9uKClcbiAgICAgICAge1xuICAgICAgICAgICAgdmFyIGZpZWxkLCBwRWwsIHdpZHRoLCBoZWlnaHQsIHZpZXdwb3J0V2lkdGgsIHZpZXdwb3J0SGVpZ2h0LCBzY3JvbGxUb3AsIGxlZnQsIHRvcCwgY2xpZW50UmVjdCwgbGVmdEFsaWduZWQsIGJvdHRvbUFsaWduZWQ7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9vLmNvbnRhaW5lcikgcmV0dXJuO1xuXG4gICAgICAgICAgICB0aGlzLmVsLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcblxuICAgICAgICAgICAgZmllbGQgPSB0aGlzLl9vLnRyaWdnZXI7XG4gICAgICAgICAgICBwRWwgPSBmaWVsZDtcbiAgICAgICAgICAgIHdpZHRoID0gdGhpcy5lbC5vZmZzZXRXaWR0aDtcbiAgICAgICAgICAgIGhlaWdodCA9IHRoaXMuZWwub2Zmc2V0SGVpZ2h0O1xuICAgICAgICAgICAgdmlld3BvcnRXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgIHZpZXdwb3J0SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gICAgICAgICAgICBzY3JvbGxUb3AgPSB3aW5kb3cucGFnZVlPZmZzZXQgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDtcbiAgICAgICAgICAgIGxlZnRBbGlnbmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGJvdHRvbUFsaWduZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGZpZWxkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIGNsaWVudFJlY3QgPSBmaWVsZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICBsZWZ0ID0gY2xpZW50UmVjdC5sZWZ0ICsgd2luZG93LnBhZ2VYT2Zmc2V0O1xuICAgICAgICAgICAgICAgIHRvcCA9IGNsaWVudFJlY3QuYm90dG9tICsgd2luZG93LnBhZ2VZT2Zmc2V0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZWZ0ID0gcEVsLm9mZnNldExlZnQ7XG4gICAgICAgICAgICAgICAgdG9wICA9IHBFbC5vZmZzZXRUb3AgKyBwRWwub2Zmc2V0SGVpZ2h0O1xuICAgICAgICAgICAgICAgIHdoaWxlKChwRWwgPSBwRWwub2Zmc2V0UGFyZW50KSkge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0ICs9IHBFbC5vZmZzZXRMZWZ0O1xuICAgICAgICAgICAgICAgICAgICB0b3AgICs9IHBFbC5vZmZzZXRUb3A7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBkZWZhdWx0IHBvc2l0aW9uIGlzIGJvdHRvbSAmIGxlZnRcbiAgICAgICAgICAgIGlmICgodGhpcy5fby5yZXBvc2l0aW9uICYmIGxlZnQgKyB3aWR0aCA+IHZpZXdwb3J0V2lkdGgpIHx8XG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vLnBvc2l0aW9uLmluZGV4T2YoJ3JpZ2h0JykgPiAtMSAmJlxuICAgICAgICAgICAgICAgICAgICBsZWZ0IC0gd2lkdGggKyBmaWVsZC5vZmZzZXRXaWR0aCA+IDBcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBsZWZ0ID0gbGVmdCAtIHdpZHRoICsgZmllbGQub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgICAgICAgbGVmdEFsaWduZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgodGhpcy5fby5yZXBvc2l0aW9uICYmIHRvcCArIGhlaWdodCA+IHZpZXdwb3J0SGVpZ2h0ICsgc2Nyb2xsVG9wKSB8fFxuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fby5wb3NpdGlvbi5pbmRleE9mKCd0b3AnKSA+IC0xICYmXG4gICAgICAgICAgICAgICAgICAgIHRvcCAtIGhlaWdodCAtIGZpZWxkLm9mZnNldEhlaWdodCA+IDBcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0b3AgPSB0b3AgLSBoZWlnaHQgLSBmaWVsZC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgICAgICAgICAgYm90dG9tQWxpZ25lZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmVsLnN0eWxlLmxlZnQgPSBsZWZ0ICsgJ3B4JztcbiAgICAgICAgICAgIHRoaXMuZWwuc3R5bGUudG9wID0gdG9wICsgJ3B4JztcblxuICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5lbCwgbGVmdEFsaWduZWQgPyAnbGVmdC1hbGlnbmVkJyA6ICdyaWdodC1hbGlnbmVkJyk7XG4gICAgICAgICAgICBhZGRDbGFzcyh0aGlzLmVsLCBib3R0b21BbGlnbmVkID8gJ2JvdHRvbS1hbGlnbmVkJyA6ICd0b3AtYWxpZ25lZCcpO1xuICAgICAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy5lbCwgIWxlZnRBbGlnbmVkID8gJ2xlZnQtYWxpZ25lZCcgOiAncmlnaHQtYWxpZ25lZCcpO1xuICAgICAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy5lbCwgIWJvdHRvbUFsaWduZWQgPyAnYm90dG9tLWFsaWduZWQnIDogJ3RvcC1hbGlnbmVkJyk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIHJlbmRlciBIVE1MIGZvciBhIHBhcnRpY3VsYXIgbW9udGhcbiAgICAgICAgICovXG4gICAgICAgIHJlbmRlcjogZnVuY3Rpb24oeWVhciwgbW9udGgsIHJhbmRJZClcbiAgICAgICAge1xuICAgICAgICAgICAgdmFyIG9wdHMgICA9IHRoaXMuX28sXG4gICAgICAgICAgICAgICAgbm93ICAgID0gbmV3IERhdGUoKSxcbiAgICAgICAgICAgICAgICBkYXlzICAgPSBnZXREYXlzSW5Nb250aCh5ZWFyLCBtb250aCksXG4gICAgICAgICAgICAgICAgYmVmb3JlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpLmdldERheSgpLFxuICAgICAgICAgICAgICAgIGRhdGEgICA9IFtdLFxuICAgICAgICAgICAgICAgIHJvdyAgICA9IFtdO1xuICAgICAgICAgICAgc2V0VG9TdGFydE9mRGF5KG5vdyk7XG4gICAgICAgICAgICBpZiAob3B0cy5maXJzdERheSA+IDApIHtcbiAgICAgICAgICAgICAgICBiZWZvcmUgLT0gb3B0cy5maXJzdERheTtcbiAgICAgICAgICAgICAgICBpZiAoYmVmb3JlIDwgMCkge1xuICAgICAgICAgICAgICAgICAgICBiZWZvcmUgKz0gNztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgcHJldmlvdXNNb250aCA9IG1vbnRoID09PSAwID8gMTEgOiBtb250aCAtIDEsXG4gICAgICAgICAgICAgICAgbmV4dE1vbnRoID0gbW9udGggPT09IDExID8gMCA6IG1vbnRoICsgMSxcbiAgICAgICAgICAgICAgICB5ZWFyT2ZQcmV2aW91c01vbnRoID0gbW9udGggPT09IDAgPyB5ZWFyIC0gMSA6IHllYXIsXG4gICAgICAgICAgICAgICAgeWVhck9mTmV4dE1vbnRoID0gbW9udGggPT09IDExID8geWVhciArIDEgOiB5ZWFyLFxuICAgICAgICAgICAgICAgIGRheXNJblByZXZpb3VzTW9udGggPSBnZXREYXlzSW5Nb250aCh5ZWFyT2ZQcmV2aW91c01vbnRoLCBwcmV2aW91c01vbnRoKTtcbiAgICAgICAgICAgIHZhciBjZWxscyA9IGRheXMgKyBiZWZvcmUsXG4gICAgICAgICAgICAgICAgYWZ0ZXIgPSBjZWxscztcbiAgICAgICAgICAgIHdoaWxlKGFmdGVyID4gNykge1xuICAgICAgICAgICAgICAgIGFmdGVyIC09IDc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjZWxscyArPSA3IC0gYWZ0ZXI7XG4gICAgICAgICAgICB2YXIgaXNXZWVrU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwLCByID0gMDsgaSA8IGNlbGxzOyBpKyspXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFyIGRheSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxICsgKGkgLSBiZWZvcmUpKSxcbiAgICAgICAgICAgICAgICAgICAgaXNTZWxlY3RlZCA9IGlzRGF0ZSh0aGlzLl9kKSA/IGNvbXBhcmVEYXRlcyhkYXksIHRoaXMuX2QpIDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGlzVG9kYXkgPSBjb21wYXJlRGF0ZXMoZGF5LCBub3cpLFxuICAgICAgICAgICAgICAgICAgICBoYXNFdmVudCA9IG9wdHMuZXZlbnRzLmluZGV4T2YoZGF5LnRvRGF0ZVN0cmluZygpKSAhPT0gLTEgPyB0cnVlIDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGlzRW1wdHkgPSBpIDwgYmVmb3JlIHx8IGkgPj0gKGRheXMgKyBiZWZvcmUpLFxuICAgICAgICAgICAgICAgICAgICBkYXlOdW1iZXIgPSAxICsgKGkgLSBiZWZvcmUpLFxuICAgICAgICAgICAgICAgICAgICBtb250aE51bWJlciA9IG1vbnRoLFxuICAgICAgICAgICAgICAgICAgICB5ZWFyTnVtYmVyID0geWVhcixcbiAgICAgICAgICAgICAgICAgICAgaXNTdGFydFJhbmdlID0gb3B0cy5zdGFydFJhbmdlICYmIGNvbXBhcmVEYXRlcyhvcHRzLnN0YXJ0UmFuZ2UsIGRheSksXG4gICAgICAgICAgICAgICAgICAgIGlzRW5kUmFuZ2UgPSBvcHRzLmVuZFJhbmdlICYmIGNvbXBhcmVEYXRlcyhvcHRzLmVuZFJhbmdlLCBkYXkpLFxuICAgICAgICAgICAgICAgICAgICBpc0luUmFuZ2UgPSBvcHRzLnN0YXJ0UmFuZ2UgJiYgb3B0cy5lbmRSYW5nZSAmJiBvcHRzLnN0YXJ0UmFuZ2UgPCBkYXkgJiYgZGF5IDwgb3B0cy5lbmRSYW5nZSxcbiAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZCA9IChvcHRzLm1pbkRhdGUgJiYgZGF5IDwgb3B0cy5taW5EYXRlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9wdHMubWF4RGF0ZSAmJiBkYXkgPiBvcHRzLm1heERhdGUpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3B0cy5kaXNhYmxlV2Vla2VuZHMgJiYgaXNXZWVrZW5kKGRheSkpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3B0cy5kaXNhYmxlRGF5Rm4gJiYgb3B0cy5kaXNhYmxlRGF5Rm4oZGF5KSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoaXNFbXB0eSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaSA8IGJlZm9yZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF5TnVtYmVyID0gZGF5c0luUHJldmlvdXNNb250aCArIGRheU51bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoTnVtYmVyID0gcHJldmlvdXNNb250aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHllYXJOdW1iZXIgPSB5ZWFyT2ZQcmV2aW91c01vbnRoO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF5TnVtYmVyID0gZGF5TnVtYmVyIC0gZGF5cztcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoTnVtYmVyID0gbmV4dE1vbnRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgeWVhck51bWJlciA9IHllYXJPZk5leHRNb250aDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHZhciBkYXlDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXk6IGRheU51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoOiBtb250aE51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHllYXI6IHllYXJOdW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNFdmVudDogaGFzRXZlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdGVkOiBpc1NlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNUb2RheTogaXNUb2RheSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IGlzRGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0VtcHR5OiBpc0VtcHR5LFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNTdGFydFJhbmdlOiBpc1N0YXJ0UmFuZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0VuZFJhbmdlOiBpc0VuZFJhbmdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNJblJhbmdlOiBpc0luUmFuZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93RGF5c0luTmV4dEFuZFByZXZpb3VzTW9udGhzOiBvcHRzLnNob3dEYXlzSW5OZXh0QW5kUHJldmlvdXNNb250aHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVTZWxlY3Rpb25EYXlzSW5OZXh0QW5kUHJldmlvdXNNb250aHM6IG9wdHMuZW5hYmxlU2VsZWN0aW9uRGF5c0luTmV4dEFuZFByZXZpb3VzTW9udGhzXG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBpZiAob3B0cy5waWNrV2hvbGVXZWVrICYmIGlzU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNXZWVrU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJvdy5wdXNoKHJlbmRlckRheShkYXlDb25maWcpKTtcblxuICAgICAgICAgICAgICAgIGlmICgrK3IgPT09IDcpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdHMuc2hvd1dlZWtOdW1iZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdy51bnNoaWZ0KHJlbmRlcldlZWsoaSAtIGJlZm9yZSwgbW9udGgsIHllYXIsIG9wdHMuZmlyc3RXZWVrT2ZZZWFyTWluRGF5cykpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGRhdGEucHVzaChyZW5kZXJSb3cocm93LCBvcHRzLmlzUlRMLCBvcHRzLnBpY2tXaG9sZVdlZWssIGlzV2Vla1NlbGVjdGVkKSk7XG4gICAgICAgICAgICAgICAgICAgIHJvdyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICByID0gMDtcbiAgICAgICAgICAgICAgICAgICAgaXNXZWVrU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVuZGVyVGFibGUob3B0cywgZGF0YSwgcmFuZElkKTtcbiAgICAgICAgfSxcblxuICAgICAgICBpc1Zpc2libGU6IGZ1bmN0aW9uKClcbiAgICAgICAge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Y7XG4gICAgICAgIH0sXG5cbiAgICAgICAgc2hvdzogZnVuY3Rpb24oKVxuICAgICAgICB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNWaXNpYmxlKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYXcoKTtcbiAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLmVsLCAnaXMtaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX28uYm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkRXZlbnQoZG9jdW1lbnQsICdjbGljaycsIHRoaXMuX29uQ2xpY2spO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkanVzdFBvc2l0aW9uKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5fby5vbk9wZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fby5vbk9wZW4uY2FsbCh0aGlzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgaGlkZTogZnVuY3Rpb24oKVxuICAgICAgICB7XG4gICAgICAgICAgICB2YXIgdiA9IHRoaXMuX3Y7XG4gICAgICAgICAgICBpZiAodiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fby5ib3VuZCkge1xuICAgICAgICAgICAgICAgICAgICByZW1vdmVFdmVudChkb2N1bWVudCwgJ2NsaWNrJywgdGhpcy5fb25DbGljayk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9vLmNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsLnN0eWxlLnBvc2l0aW9uID0gJ3N0YXRpYyc7IC8vIHJlc2V0XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWwuc3R5bGUubGVmdCA9ICdhdXRvJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbC5zdHlsZS50b3AgPSAnYXV0byc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGFkZENsYXNzKHRoaXMuZWwsICdpcy1oaWRkZW4nKTtcbiAgICAgICAgICAgICAgICB0aGlzLl92ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKHYgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgdGhpcy5fby5vbkNsb3NlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX28ub25DbG9zZS5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICAvKipcbiAgICAgICAgICogR0FNRSBPVkVSXG4gICAgICAgICAqL1xuICAgICAgICBkZXN0cm95OiBmdW5jdGlvbigpXG4gICAgICAgIHtcbiAgICAgICAgICAgIHZhciBvcHRzID0gdGhpcy5fbztcblxuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICByZW1vdmVFdmVudCh0aGlzLmVsLCAnbW91c2Vkb3duJywgdGhpcy5fb25Nb3VzZURvd24sIHRydWUpO1xuICAgICAgICAgICAgcmVtb3ZlRXZlbnQodGhpcy5lbCwgJ3RvdWNoZW5kJywgdGhpcy5fb25Nb3VzZURvd24sIHRydWUpO1xuICAgICAgICAgICAgcmVtb3ZlRXZlbnQodGhpcy5lbCwgJ2NoYW5nZScsIHRoaXMuX29uQ2hhbmdlKTtcbiAgICAgICAgICAgIGlmIChvcHRzLmtleWJvYXJkSW5wdXQpIHtcbiAgICAgICAgICAgICAgICByZW1vdmVFdmVudChkb2N1bWVudCwgJ2tleWRvd24nLCB0aGlzLl9vbktleUNoYW5nZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3B0cy5maWVsZCkge1xuICAgICAgICAgICAgICAgIHJlbW92ZUV2ZW50KG9wdHMuZmllbGQsICdjaGFuZ2UnLCB0aGlzLl9vbklucHV0Q2hhbmdlKTtcbiAgICAgICAgICAgICAgICBpZiAob3B0cy5ib3VuZCkge1xuICAgICAgICAgICAgICAgICAgICByZW1vdmVFdmVudChvcHRzLnRyaWdnZXIsICdjbGljaycsIHRoaXMuX29uSW5wdXRDbGljayk7XG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZUV2ZW50KG9wdHMudHJpZ2dlciwgJ2ZvY3VzJywgdGhpcy5fb25JbnB1dEZvY3VzKTtcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlRXZlbnQob3B0cy50cmlnZ2VyLCAnYmx1cicsIHRoaXMuX29uSW5wdXRCbHVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5lbC5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9O1xuXG4gICAgcmV0dXJuIFBpa2FkYXk7XG59KSk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHdpbmRvdy5BdXRvbGlua2VyOyIsIi8qIGVzbGludCBrZXktc3BhY2luZzogMCAqL1xuLyogZXNsaW50IHF1b3RlLXByb3BzOiAwICovXG5cbmNvbnN0IE1pbWUgPSB7XG5cdCdlbWwnOiAnbWVzc2FnZS9yZmM4MjInLFxuXHQnbWltZSc6ICdtZXNzYWdlL3JmYzgyMicsXG5cdCd0eHQnOiAndGV4dC9wbGFpbicsXG5cdCd0ZXh0JzogJ3RleHQvcGxhaW4nLFxuXHQnZGVmJzogJ3RleHQvcGxhaW4nLFxuXHQnbGlzdCc6ICd0ZXh0L3BsYWluJyxcblx0J2luJzogJ3RleHQvcGxhaW4nLFxuXHQnaW5pJzogJ3RleHQvcGxhaW4nLFxuXHQnbG9nJzogJ3RleHQvcGxhaW4nLFxuXHQnc3FsJzogJ3RleHQvcGxhaW4nLFxuXHQnY2ZnJzogJ3RleHQvcGxhaW4nLFxuXHQnY29uZic6ICd0ZXh0L3BsYWluJyxcblx0J2FzYyc6ICd0ZXh0L3BsYWluJyxcblx0J3J0eCc6ICd0ZXh0L3JpY2h0ZXh0Jyxcblx0J3ZjYXJkJzogJ3RleHQvdmNhcmQnLFxuXHQndmNmJzogJ3RleHQvdmNhcmQnLFxuXHQnaHRtJzogJ3RleHQvaHRtbCcsXG5cdCdodG1sJzogJ3RleHQvaHRtbCcsXG5cdCdjc3YnOiAndGV4dC9jc3YnLFxuXHQnaWNzJzogJ3RleHQvY2FsZW5kYXInLFxuXHQnaWZiJzogJ3RleHQvY2FsZW5kYXInLFxuXHQneG1sJzogJ3RleHQveG1sJyxcblx0J2pzb24nOiAnYXBwbGljYXRpb24vanNvbicsXG5cdCdzd2YnOiAnYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2gnLFxuXHQnaGxwJzogJ2FwcGxpY2F0aW9uL3dpbmhscCcsXG5cdCd3Z3QnOiAnYXBwbGljYXRpb24vd2lkZ2V0Jyxcblx0J2NobSc6ICdhcHBsaWNhdGlvbi92bmQubXMtaHRtbGhlbHAnLFxuXHQncDEwJzogJ2FwcGxpY2F0aW9uL3BrY3MxMCcsXG5cdCdwN2MnOiAnYXBwbGljYXRpb24vcGtjczctbWltZScsXG5cdCdwN20nOiAnYXBwbGljYXRpb24vcGtjczctbWltZScsXG5cdCdwN3MnOiAnYXBwbGljYXRpb24vcGtjczctc2lnbmF0dXJlJyxcblx0J3RvcnJlbnQnOiAnYXBwbGljYXRpb24veC1iaXR0b3JyZW50JyxcblxuXHQvLyBzY3JpcHRzXG5cdCdqcyc6ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Jyxcblx0J3BsJzogJ3RleHQvcGVybCcsXG5cdCdjc3MnOiAndGV4dC9jc3MnLFxuXHQnYXNwJzogJ3RleHQvYXNwJyxcblx0J3BocCc6ICdhcHBsaWNhdGlvbi94LWh0dHBkLXBocCcsXG5cdCdwaHAzJzogJ2FwcGxpY2F0aW9uL3gtaHR0cGQtcGhwJyxcblx0J3BocDQnOiAnYXBwbGljYXRpb24veC1odHRwZC1waHAnLFxuXHQncGhwNSc6ICdhcHBsaWNhdGlvbi94LWh0dHBkLXBocCcsXG5cdCdwaHRtbCc6ICdhcHBsaWNhdGlvbi94LWh0dHBkLXBocCcsXG5cblx0Ly8gaW1hZ2VzXG5cdCdwbmcnOiAnaW1hZ2UvcG5nJyxcblx0J2pwZyc6ICdpbWFnZS9qcGVnJyxcblx0J2pwZWcnOiAnaW1hZ2UvanBlZycsXG5cdCdqcGUnOiAnaW1hZ2UvanBlZycsXG5cdCdqZmlmJzogJ2ltYWdlL2pwZWcnLFxuXHQnZ2lmJzogJ2ltYWdlL2dpZicsXG5cdCdibXAnOiAnaW1hZ2UvYm1wJyxcblx0J2NnbSc6ICdpbWFnZS9jZ20nLFxuXHQnaWVmJzogJ2ltYWdlL2llZicsXG5cdCdpY28nOiAnaW1hZ2UveC1pY29uJyxcblx0J3RpZic6ICdpbWFnZS90aWZmJyxcblx0J3RpZmYnOiAnaW1hZ2UvdGlmZicsXG5cdCdzdmcnOiAnaW1hZ2Uvc3ZnK3htbCcsXG5cdCdzdmd6JzogJ2ltYWdlL3N2Zyt4bWwnLFxuXHQnZGp2JzogJ2ltYWdlL3ZuZC5kanZ1Jyxcblx0J2RqdnUnOiAnaW1hZ2Uvdm5kLmRqdnUnLFxuXHQnd2VicCc6ICdpbWFnZS93ZWJwJyxcblxuXHQvLyBhcmNoaXZlc1xuXHQnemlwJzogJ2FwcGxpY2F0aW9uL3ppcCcsXG5cdCc3eic6ICdhcHBsaWNhdGlvbi94LTd6LWNvbXByZXNzZWQnLFxuXHQncmFyJzogJ2FwcGxpY2F0aW9uL3gtcmFyLWNvbXByZXNzZWQnLFxuXHQnZXhlJzogJ2FwcGxpY2F0aW9uL3gtbXNkb3dubG9hZCcsXG5cdCdkbGwnOiAnYXBwbGljYXRpb24veC1tc2Rvd25sb2FkJyxcblx0J3Njcic6ICdhcHBsaWNhdGlvbi94LW1zZG93bmxvYWQnLFxuXHQnY29tJzogJ2FwcGxpY2F0aW9uL3gtbXNkb3dubG9hZCcsXG5cdCdiYXQnOiAnYXBwbGljYXRpb24veC1tc2Rvd25sb2FkJyxcblx0J21zaSc6ICdhcHBsaWNhdGlvbi94LW1zZG93bmxvYWQnLFxuXHQnY2FiJzogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1jYWItY29tcHJlc3NlZCcsXG5cdCdneic6ICdhcHBsaWNhdGlvbi94LWd6aXAnLFxuXHQndGd6JzogJ2FwcGxpY2F0aW9uL3gtZ3ppcCcsXG5cdCdieic6ICdhcHBsaWNhdGlvbi94LWJ6aXAnLFxuXHQnYnoyJzogJ2FwcGxpY2F0aW9uL3gtYnppcDInLFxuXHQnZGViJzogJ2FwcGxpY2F0aW9uL3gtZGViaWFuLXBhY2thZ2UnLFxuXG5cdC8vIGZvbnRzXG5cdCdwc2YnOiAnYXBwbGljYXRpb24veC1mb250LWxpbnV4LXBzZicsXG5cdCdvdGYnOiAnYXBwbGljYXRpb24veC1mb250LW90ZicsXG5cdCdwY2YnOiAnYXBwbGljYXRpb24veC1mb250LXBjZicsXG5cdCdzbmYnOiAnYXBwbGljYXRpb24veC1mb250LXNuZicsXG5cdCd0dGYnOiAnYXBwbGljYXRpb24veC1mb250LXR0ZicsXG5cdCd0dGMnOiAnYXBwbGljYXRpb24veC1mb250LXR0ZicsXG5cblx0Ly8gYXVkaW9cblx0J21wMyc6ICdhdWRpby9tcGVnJyxcblx0J2Ftcic6ICdhdWRpby9hbXInLFxuXHQnYWFjJzogJ2F1ZGlvL3gtYWFjJyxcblx0J2FpZic6ICdhdWRpby94LWFpZmYnLFxuXHQnYWlmYyc6ICdhdWRpby94LWFpZmYnLFxuXHQnYWlmZic6ICdhdWRpby94LWFpZmYnLFxuXHQnd2F2JzogJ2F1ZGlvL3gtd2F2Jyxcblx0J3dtYSc6ICdhdWRpby94LW1zLXdtYScsXG5cdCd3YXgnOiAnYXVkaW8veC1tcy13YXgnLFxuXHQnbWlkaSc6ICdhdWRpby9taWRpJyxcblx0J21wNGEnOiAnYXVkaW8vbXA0Jyxcblx0J29nZyc6ICdhdWRpby9vZ2cnLFxuXHQnd2ViYSc6ICdhdWRpby93ZWJtJyxcblx0J3JhJzogJ2F1ZGlvL3gtcG4tcmVhbGF1ZGlvJyxcblx0J3JhbSc6ICdhdWRpby94LXBuLXJlYWxhdWRpbycsXG5cdCdybXAnOiAnYXVkaW8veC1wbi1yZWFsYXVkaW8tcGx1Z2luJyxcblx0J20zdSc6ICdhdWRpby94LW1wZWd1cmwnLFxuXG5cdC8vIHZpZGVvXG5cdCdmbHYnOiAndmlkZW8veC1mbHYnLFxuXHQncXQnOiAndmlkZW8vcXVpY2t0aW1lJyxcblx0J21vdic6ICd2aWRlby9xdWlja3RpbWUnLFxuXHQnd212JzogJ3ZpZGVvL3dpbmRvd3MtbWVkaWEnLFxuXHQnYXZpJzogJ3ZpZGVvL3gtbXN2aWRlbycsXG5cdCdtcGcnOiAndmlkZW8vbXBlZycsXG5cdCdtcGVnJzogJ3ZpZGVvL21wZWcnLFxuXHQnbXBlJzogJ3ZpZGVvL21wZWcnLFxuXHQnbTF2JzogJ3ZpZGVvL21wZWcnLFxuXHQnbTJ2JzogJ3ZpZGVvL21wZWcnLFxuXHQnM2dwJzogJ3ZpZGVvLzNncHAnLFxuXHQnM2cyJzogJ3ZpZGVvLzNncHAyJyxcblx0J2gyNjEnOiAndmlkZW8vaDI2MScsXG5cdCdoMjYzJzogJ3ZpZGVvL2gyNjMnLFxuXHQnaDI2NCc6ICd2aWRlby9oMjY0Jyxcblx0J2pwZ3YnOiAndmlkZW8vanBndicsXG5cdCdtcDQnOiAndmlkZW8vbXA0Jyxcblx0J21wNHYnOiAndmlkZW8vbXA0Jyxcblx0J21wZzQnOiAndmlkZW8vbXA0Jyxcblx0J29ndic6ICd2aWRlby9vZ2cnLFxuXHQnd2VibSc6ICd2aWRlby93ZWJtJyxcblx0J200dic6ICd2aWRlby94LW00dicsXG5cdCdhc2YnOiAndmlkZW8veC1tcy1hc2YnLFxuXHQnYXN4JzogJ3ZpZGVvL3gtbXMtYXNmJyxcblx0J3dtJzogJ3ZpZGVvL3gtbXMtd20nLFxuXHQnd214JzogJ3ZpZGVvL3gtbXMtd214Jyxcblx0J3d2eCc6ICd2aWRlby94LW1zLXd2eCcsXG5cdCdtb3ZpZSc6ICd2aWRlby94LXNnaS1tb3ZpZScsXG5cblx0Ly8gYWRvYmVcblx0J3BkZic6ICdhcHBsaWNhdGlvbi9wZGYnLFxuXHQncHNkJzogJ2ltYWdlL3ZuZC5hZG9iZS5waG90b3Nob3AnLFxuXHQnYWknOiAnYXBwbGljYXRpb24vcG9zdHNjcmlwdCcsXG5cdCdlcHMnOiAnYXBwbGljYXRpb24vcG9zdHNjcmlwdCcsXG5cdCdwcyc6ICdhcHBsaWNhdGlvbi9wb3N0c2NyaXB0JyxcblxuXHQvLyBtcyBvZmZpY2Vcblx0J2RvYyc6ICdhcHBsaWNhdGlvbi9tc3dvcmQnLFxuXHQnZG90JzogJ2FwcGxpY2F0aW9uL21zd29yZCcsXG5cdCdydGYnOiAnYXBwbGljYXRpb24vcnRmJyxcblx0J3hscyc6ICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnLFxuXHQncHB0JzogJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50Jyxcblx0J2RvY3gnOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnLFxuXHQneGxzeCc6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcsXG5cdCdkb3R4JzogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLnRlbXBsYXRlJyxcblx0J3BwdHgnOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbicsXG5cblx0Ly8gb3BlbiBvZmZpY2Vcblx0J29kdCc6ICdhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnRleHQnLFxuXHQnb2RzJzogJ2FwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hlZXQnXG59O1xuXG5leHBvcnQgeyBNaW1lLCBNaW1lIGFzIGRlZmF1bHQgfTtcbiIsInZhciBpbnRlcm5hbE9iamVjdEtleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWtleXMtaW50ZXJuYWwnKTtcbnZhciBlbnVtQnVnS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnVtLWJ1Zy1rZXlzJyk7XG5cbi8vIGBPYmplY3Qua2V5c2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5rZXlzXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWtleXMgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3Qua2V5cyB8fCBmdW5jdGlvbiBrZXlzKE8pIHtcbiAgcmV0dXJuIGludGVybmFsT2JqZWN0S2V5cyhPLCBlbnVtQnVnS2V5cyk7XG59O1xuIiwidmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtY3JlYXRlJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xuXG52YXIgVU5TQ09QQUJMRVMgPSB3ZWxsS25vd25TeW1ib2woJ3Vuc2NvcGFibGVzJyk7XG52YXIgQXJyYXlQcm90b3R5cGUgPSBBcnJheS5wcm90b3R5cGU7XG5cbi8vIEFycmF5LnByb3RvdHlwZVtAQHVuc2NvcGFibGVzXVxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUtQEB1bnNjb3BhYmxlc1xuaWYgKEFycmF5UHJvdG90eXBlW1VOU0NPUEFCTEVTXSA9PSB1bmRlZmluZWQpIHtcbiAgZGVmaW5lUHJvcGVydHlNb2R1bGUuZihBcnJheVByb3RvdHlwZSwgVU5TQ09QQUJMRVMsIHtcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgdmFsdWU6IGNyZWF0ZShudWxsKVxuICB9KTtcbn1cblxuLy8gYWRkIGEga2V5IHRvIEFycmF5LnByb3RvdHlwZVtAQHVuc2NvcGFibGVzXVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5KSB7XG4gIEFycmF5UHJvdG90eXBlW1VOU0NPUEFCTEVTXVtrZXldID0gdHJ1ZTtcbn07XG4iLCJ2YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRCdWlsdEluKCdkb2N1bWVudCcsICdkb2N1bWVudEVsZW1lbnQnKTtcbiIsInZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1mdW5jdGlvbicpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgU1BFQ0lFUyA9IHdlbGxLbm93blN5bWJvbCgnc3BlY2llcycpO1xuXG4vLyBgU3BlY2llc0NvbnN0cnVjdG9yYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3BlY2llc2NvbnN0cnVjdG9yXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChPLCBkZWZhdWx0Q29uc3RydWN0b3IpIHtcbiAgdmFyIEMgPSBhbk9iamVjdChPKS5jb25zdHJ1Y3RvcjtcbiAgdmFyIFM7XG4gIHJldHVybiBDID09PSB1bmRlZmluZWQgfHwgKFMgPSBhbk9iamVjdChDKVtTUEVDSUVTXSkgPT0gdW5kZWZpbmVkID8gZGVmYXVsdENvbnN0cnVjdG9yIDogYUZ1bmN0aW9uKFMpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGNyZWF0ZUl0ZXJhdG9yQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLWl0ZXJhdG9yLWNvbnN0cnVjdG9yJyk7XG52YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1wcm90b3R5cGUtb2YnKTtcbnZhciBzZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qtc2V0LXByb3RvdHlwZS1vZicpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZGVmaW5lJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdG9ycycpO1xudmFyIEl0ZXJhdG9yc0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3JzLWNvcmUnKTtcblxudmFyIEl0ZXJhdG9yUHJvdG90eXBlID0gSXRlcmF0b3JzQ29yZS5JdGVyYXRvclByb3RvdHlwZTtcbnZhciBCVUdHWV9TQUZBUklfSVRFUkFUT1JTID0gSXRlcmF0b3JzQ29yZS5CVUdHWV9TQUZBUklfSVRFUkFUT1JTO1xudmFyIElURVJBVE9SID0gd2VsbEtub3duU3ltYm9sKCdpdGVyYXRvcicpO1xudmFyIEtFWVMgPSAna2V5cyc7XG52YXIgVkFMVUVTID0gJ3ZhbHVlcyc7XG52YXIgRU5UUklFUyA9ICdlbnRyaWVzJztcblxudmFyIHJldHVyblRoaXMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChJdGVyYWJsZSwgTkFNRSwgSXRlcmF0b3JDb25zdHJ1Y3RvciwgbmV4dCwgREVGQVVMVCwgSVNfU0VULCBGT1JDRUQpIHtcbiAgY3JlYXRlSXRlcmF0b3JDb25zdHJ1Y3RvcihJdGVyYXRvckNvbnN0cnVjdG9yLCBOQU1FLCBuZXh0KTtcblxuICB2YXIgZ2V0SXRlcmF0aW9uTWV0aG9kID0gZnVuY3Rpb24gKEtJTkQpIHtcbiAgICBpZiAoS0lORCA9PT0gREVGQVVMVCAmJiBkZWZhdWx0SXRlcmF0b3IpIHJldHVybiBkZWZhdWx0SXRlcmF0b3I7XG4gICAgaWYgKCFCVUdHWV9TQUZBUklfSVRFUkFUT1JTICYmIEtJTkQgaW4gSXRlcmFibGVQcm90b3R5cGUpIHJldHVybiBJdGVyYWJsZVByb3RvdHlwZVtLSU5EXTtcbiAgICBzd2l0Y2ggKEtJTkQpIHtcbiAgICAgIGNhc2UgS0VZUzogcmV0dXJuIGZ1bmN0aW9uIGtleXMoKSB7IHJldHVybiBuZXcgSXRlcmF0b3JDb25zdHJ1Y3Rvcih0aGlzLCBLSU5EKTsgfTtcbiAgICAgIGNhc2UgVkFMVUVTOiByZXR1cm4gZnVuY3Rpb24gdmFsdWVzKCkgeyByZXR1cm4gbmV3IEl0ZXJhdG9yQ29uc3RydWN0b3IodGhpcywgS0lORCk7IH07XG4gICAgICBjYXNlIEVOVFJJRVM6IHJldHVybiBmdW5jdGlvbiBlbnRyaWVzKCkgeyByZXR1cm4gbmV3IEl0ZXJhdG9yQ29uc3RydWN0b3IodGhpcywgS0lORCk7IH07XG4gICAgfSByZXR1cm4gZnVuY3Rpb24gKCkgeyByZXR1cm4gbmV3IEl0ZXJhdG9yQ29uc3RydWN0b3IodGhpcyk7IH07XG4gIH07XG5cbiAgdmFyIFRPX1NUUklOR19UQUcgPSBOQU1FICsgJyBJdGVyYXRvcic7XG4gIHZhciBJTkNPUlJFQ1RfVkFMVUVTX05BTUUgPSBmYWxzZTtcbiAgdmFyIEl0ZXJhYmxlUHJvdG90eXBlID0gSXRlcmFibGUucHJvdG90eXBlO1xuICB2YXIgbmF0aXZlSXRlcmF0b3IgPSBJdGVyYWJsZVByb3RvdHlwZVtJVEVSQVRPUl1cbiAgICB8fCBJdGVyYWJsZVByb3RvdHlwZVsnQEBpdGVyYXRvciddXG4gICAgfHwgREVGQVVMVCAmJiBJdGVyYWJsZVByb3RvdHlwZVtERUZBVUxUXTtcbiAgdmFyIGRlZmF1bHRJdGVyYXRvciA9ICFCVUdHWV9TQUZBUklfSVRFUkFUT1JTICYmIG5hdGl2ZUl0ZXJhdG9yIHx8IGdldEl0ZXJhdGlvbk1ldGhvZChERUZBVUxUKTtcbiAgdmFyIGFueU5hdGl2ZUl0ZXJhdG9yID0gTkFNRSA9PSAnQXJyYXknID8gSXRlcmFibGVQcm90b3R5cGUuZW50cmllcyB8fCBuYXRpdmVJdGVyYXRvciA6IG5hdGl2ZUl0ZXJhdG9yO1xuICB2YXIgQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlLCBtZXRob2RzLCBLRVk7XG5cbiAgLy8gZml4IG5hdGl2ZVxuICBpZiAoYW55TmF0aXZlSXRlcmF0b3IpIHtcbiAgICBDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUgPSBnZXRQcm90b3R5cGVPZihhbnlOYXRpdmVJdGVyYXRvci5jYWxsKG5ldyBJdGVyYWJsZSgpKSk7XG4gICAgaWYgKEl0ZXJhdG9yUHJvdG90eXBlICE9PSBPYmplY3QucHJvdG90eXBlICYmIEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZS5uZXh0KSB7XG4gICAgICBpZiAoIUlTX1BVUkUgJiYgZ2V0UHJvdG90eXBlT2YoQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlKSAhPT0gSXRlcmF0b3JQcm90b3R5cGUpIHtcbiAgICAgICAgaWYgKHNldFByb3RvdHlwZU9mKSB7XG4gICAgICAgICAgc2V0UHJvdG90eXBlT2YoQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlLCBJdGVyYXRvclByb3RvdHlwZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZVtJVEVSQVRPUl0gIT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUsIElURVJBVE9SLCByZXR1cm5UaGlzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gU2V0IEBAdG9TdHJpbmdUYWcgdG8gbmF0aXZlIGl0ZXJhdG9yc1xuICAgICAgc2V0VG9TdHJpbmdUYWcoQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlLCBUT19TVFJJTkdfVEFHLCB0cnVlLCB0cnVlKTtcbiAgICAgIGlmIChJU19QVVJFKSBJdGVyYXRvcnNbVE9fU1RSSU5HX1RBR10gPSByZXR1cm5UaGlzO1xuICAgIH1cbiAgfVxuXG4gIC8vIGZpeCBBcnJheSN7dmFsdWVzLCBAQGl0ZXJhdG9yfS5uYW1lIGluIFY4IC8gRkZcbiAgaWYgKERFRkFVTFQgPT0gVkFMVUVTICYmIG5hdGl2ZUl0ZXJhdG9yICYmIG5hdGl2ZUl0ZXJhdG9yLm5hbWUgIT09IFZBTFVFUykge1xuICAgIElOQ09SUkVDVF9WQUxVRVNfTkFNRSA9IHRydWU7XG4gICAgZGVmYXVsdEl0ZXJhdG9yID0gZnVuY3Rpb24gdmFsdWVzKCkgeyByZXR1cm4gbmF0aXZlSXRlcmF0b3IuY2FsbCh0aGlzKTsgfTtcbiAgfVxuXG4gIC8vIGRlZmluZSBpdGVyYXRvclxuICBpZiAoKCFJU19QVVJFIHx8IEZPUkNFRCkgJiYgSXRlcmFibGVQcm90b3R5cGVbSVRFUkFUT1JdICE9PSBkZWZhdWx0SXRlcmF0b3IpIHtcbiAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoSXRlcmFibGVQcm90b3R5cGUsIElURVJBVE9SLCBkZWZhdWx0SXRlcmF0b3IpO1xuICB9XG4gIEl0ZXJhdG9yc1tOQU1FXSA9IGRlZmF1bHRJdGVyYXRvcjtcblxuICAvLyBleHBvcnQgYWRkaXRpb25hbCBtZXRob2RzXG4gIGlmIChERUZBVUxUKSB7XG4gICAgbWV0aG9kcyA9IHtcbiAgICAgIHZhbHVlczogZ2V0SXRlcmF0aW9uTWV0aG9kKFZBTFVFUyksXG4gICAgICBrZXlzOiBJU19TRVQgPyBkZWZhdWx0SXRlcmF0b3IgOiBnZXRJdGVyYXRpb25NZXRob2QoS0VZUyksXG4gICAgICBlbnRyaWVzOiBnZXRJdGVyYXRpb25NZXRob2QoRU5UUklFUylcbiAgICB9O1xuICAgIGlmIChGT1JDRUQpIGZvciAoS0VZIGluIG1ldGhvZHMpIHtcbiAgICAgIGlmIChCVUdHWV9TQUZBUklfSVRFUkFUT1JTIHx8IElOQ09SUkVDVF9WQUxVRVNfTkFNRSB8fCAhKEtFWSBpbiBJdGVyYWJsZVByb3RvdHlwZSkpIHtcbiAgICAgICAgcmVkZWZpbmUoSXRlcmFibGVQcm90b3R5cGUsIEtFWSwgbWV0aG9kc1tLRVldKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgJCh7IHRhcmdldDogTkFNRSwgcHJvdG86IHRydWUsIGZvcmNlZDogQlVHR1lfU0FGQVJJX0lURVJBVE9SUyB8fCBJTkNPUlJFQ1RfVkFMVUVTX05BTUUgfSwgbWV0aG9kcyk7XG4gIH1cblxuICByZXR1cm4gbWV0aG9kcztcbn07XG4iLCJpbXBvcnQga28gZnJvbSAna28nO1xuaW1wb3J0IGtleSBmcm9tICdrZXknO1xuXG5pbXBvcnQgeyBLZXlTdGF0ZSB9IGZyb20gJ0NvbW1vbi9FbnVtcyc7XG5pbXBvcnQgeyBpc0Z1bmMgfSBmcm9tICdDb21tb24vVXRpbHMnO1xuaW1wb3J0IHsgaTE4biB9IGZyb20gJ0NvbW1vbi9UcmFuc2xhdG9yJztcblxuaW1wb3J0IHsgcG9wdXAgfSBmcm9tICdLbm9pbi9Lbm9pbic7XG5pbXBvcnQgeyBBYnN0cmFjdFZpZXdOZXh0IH0gZnJvbSAnS25vaW4vQWJzdHJhY3RWaWV3TmV4dCc7XG5cbkBwb3B1cCh7XG5cdG5hbWU6ICdWaWV3L1BvcHVwL0FzaycsXG5cdHRlbXBsYXRlSUQ6ICdQb3B1cHNBc2snXG59KVxuY2xhc3MgQXNrUG9wdXBWaWV3IGV4dGVuZHMgQWJzdHJhY3RWaWV3TmV4dCB7XG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cblx0XHR0aGlzLmFza0Rlc2MgPSBrby5vYnNlcnZhYmxlKCcnKTtcblx0XHR0aGlzLnllc0J1dHRvbiA9IGtvLm9ic2VydmFibGUoJycpO1xuXHRcdHRoaXMubm9CdXR0b24gPSBrby5vYnNlcnZhYmxlKCcnKTtcblxuXHRcdHRoaXMueWVzRm9jdXMgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblx0XHR0aGlzLm5vRm9jdXMgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblxuXHRcdHRoaXMuZlllc0FjdGlvbiA9IG51bGw7XG5cdFx0dGhpcy5mTm9BY3Rpb24gPSBudWxsO1xuXG5cdFx0dGhpcy5iRm9jdXNZZXNPblNob3cgPSB0cnVlO1xuXHRcdHRoaXMuYkRpc2FiZUNsb3NlT25Fc2MgPSB0cnVlO1xuXHRcdHRoaXMuc0RlZmF1bHRLZXlTY29wZSA9IEtleVN0YXRlLlBvcHVwQXNrO1xuXHR9XG5cblx0Y2xlYXJQb3B1cCgpIHtcblx0XHR0aGlzLmFza0Rlc2MoJycpO1xuXHRcdHRoaXMueWVzQnV0dG9uKGkxOG4oJ1BPUFVQU19BU0svQlVUVE9OX1lFUycpKTtcblx0XHR0aGlzLm5vQnV0dG9uKGkxOG4oJ1BPUFVQU19BU0svQlVUVE9OX05PJykpO1xuXG5cdFx0dGhpcy55ZXNGb2N1cyhmYWxzZSk7XG5cdFx0dGhpcy5ub0ZvY3VzKGZhbHNlKTtcblxuXHRcdHRoaXMuZlllc0FjdGlvbiA9IG51bGw7XG5cdFx0dGhpcy5mTm9BY3Rpb24gPSBudWxsO1xuXHR9XG5cblx0eWVzQ2xpY2soKSB7XG5cdFx0dGhpcy5jYW5jZWxDb21tYW5kKCk7XG5cblx0XHRpZiAoaXNGdW5jKHRoaXMuZlllc0FjdGlvbikpIHtcblx0XHRcdHRoaXMuZlllc0FjdGlvbi5jYWxsKG51bGwpO1xuXHRcdH1cblx0fVxuXG5cdG5vQ2xpY2soKSB7XG5cdFx0dGhpcy5jYW5jZWxDb21tYW5kKCk7XG5cblx0XHRpZiAoaXNGdW5jKHRoaXMuZk5vQWN0aW9uKSkge1xuXHRcdFx0dGhpcy5mTm9BY3Rpb24uY2FsbChudWxsKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQHBhcmFtIHtzdHJpbmd9IHNBc2tEZXNjXG5cdCAqIEBwYXJhbSB7RnVuY3Rpb249fSBmWWVzRnVuY1xuXHQgKiBAcGFyYW0ge0Z1bmN0aW9uPX0gZk5vRnVuY1xuXHQgKiBAcGFyYW0ge3N0cmluZz19IHNZZXNCdXR0b25cblx0ICogQHBhcmFtIHtzdHJpbmc9fSBzTm9CdXR0b25cblx0ICogQHBhcmFtIHtib29sZWFuPX0gYkZvY3VzWWVzT25TaG93ID0gdHJ1ZVxuXHQgKiBAcmV0dXJucyB7dm9pZH1cblx0ICovXG5cdG9uU2hvdyhhc2tEZXNjLCBmWWVzRnVuYyA9IG51bGwsIGZOb0Z1bmMgPSBudWxsLCB5ZXNCdXR0b24gPSAnJywgbm9CdXR0b24gPSAnJywgaXNGb2N1c1llc09uU2hvdyA9IHRydWUpIHtcblx0XHR0aGlzLmNsZWFyUG9wdXAoKTtcblxuXHRcdHRoaXMuZlllc0FjdGlvbiA9IGZZZXNGdW5jIHx8IG51bGw7XG5cdFx0dGhpcy5mTm9BY3Rpb24gPSBmTm9GdW5jIHx8IG51bGw7XG5cblx0XHR0aGlzLmFza0Rlc2MoYXNrRGVzYyB8fCAnJyk7XG5cblx0XHRpZiAoeWVzQnV0dG9uKSB7XG5cdFx0XHR0aGlzLnllc0J1dHRvbih5ZXNCdXR0b24pO1xuXHRcdH1cblxuXHRcdGlmIChub0J1dHRvbikge1xuXHRcdFx0dGhpcy5ub0J1dHRvbihub0J1dHRvbik7XG5cdFx0fVxuXG5cdFx0dGhpcy5iRm9jdXNZZXNPblNob3cgPSAhIWlzRm9jdXNZZXNPblNob3c7XG5cdH1cblxuXHRvblNob3dXaXRoRGVsYXkoKSB7XG5cdFx0aWYgKHRoaXMuYkZvY3VzWWVzT25TaG93KSB7XG5cdFx0XHR0aGlzLnllc0ZvY3VzKHRydWUpO1xuXHRcdH1cblx0fVxuXG5cdG9uQnVpbGQoKSB7XG5cdFx0a2V5KCd0YWIsIHNoaWZ0K3RhYiwgcmlnaHQsIGxlZnQnLCBLZXlTdGF0ZS5Qb3B1cEFzaywgKCkgPT4ge1xuXHRcdFx0aWYgKHRoaXMueWVzRm9jdXMoKSkge1xuXHRcdFx0XHR0aGlzLm5vRm9jdXModHJ1ZSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLnllc0ZvY3VzKHRydWUpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH0pO1xuXG5cdFx0a2V5KCdlc2MnLCBLZXlTdGF0ZS5Qb3B1cEFzaywgKCkgPT4ge1xuXHRcdFx0dGhpcy5ub0NsaWNrKCk7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fSk7XG5cdH1cbn1cblxuZXhwb3J0IHsgQXNrUG9wdXBWaWV3LCBBc2tQb3B1cFZpZXcgYXMgZGVmYXVsdCB9O1xuIiwidmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIG9iamVjdEtleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWtleXMnKTtcblxuLy8gYE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmRlZmluZXByb3BlcnRpZXNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydGllcyAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IERFU0NSSVBUT1JTID8gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKE8sIFByb3BlcnRpZXMpIHtcbiAgYW5PYmplY3QoTyk7XG4gIHZhciBrZXlzID0gb2JqZWN0S2V5cyhQcm9wZXJ0aWVzKTtcbiAgdmFyIGxlbmd0aCA9IGtleXMubGVuZ3RoO1xuICB2YXIgaW5kZXggPSAwO1xuICB2YXIga2V5O1xuICB3aGlsZSAobGVuZ3RoID4gaW5kZXgpIGRlZmluZVByb3BlcnR5TW9kdWxlLmYoTywga2V5ID0ga2V5c1tpbmRleCsrXSwgUHJvcGVydGllc1trZXldKTtcbiAgcmV0dXJuIE87XG59O1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIE1BVENIID0gd2VsbEtub3duU3ltYm9sKCdtYXRjaCcpO1xuXG4vLyBgSXNSZWdFeHBgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1pc3JlZ2V4cFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIGlzUmVnRXhwO1xuICByZXR1cm4gaXNPYmplY3QoaXQpICYmICgoaXNSZWdFeHAgPSBpdFtNQVRDSF0pICE9PSB1bmRlZmluZWQgPyAhIWlzUmVnRXhwIDogY2xhc3NvZihpdCkgPT0gJ1JlZ0V4cCcpO1xufTtcbiIsInZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIEYoKSB7IC8qIGVtcHR5ICovIH1cbiAgRi5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBudWxsO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWdldHByb3RvdHlwZW9mIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gIHJldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2YobmV3IEYoKSkgIT09IEYucHJvdG90eXBlO1xufSk7XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmICghaXNPYmplY3QoaXQpICYmIGl0ICE9PSBudWxsKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3Qgc2V0IFwiICsgU3RyaW5nKGl0KSArICcgYXMgYSBwcm90b3R5cGUnKTtcbiAgfSByZXR1cm4gaXQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEl0ZXJhdG9yUHJvdG90eXBlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdG9ycy1jb3JlJykuSXRlcmF0b3JQcm90b3R5cGU7XG52YXIgY3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1jcmVhdGUnKTtcbnZhciBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtdG8tc3RyaW5nLXRhZycpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMnKTtcblxudmFyIHJldHVyblRoaXMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChJdGVyYXRvckNvbnN0cnVjdG9yLCBOQU1FLCBuZXh0KSB7XG4gIHZhciBUT19TVFJJTkdfVEFHID0gTkFNRSArICcgSXRlcmF0b3InO1xuICBJdGVyYXRvckNvbnN0cnVjdG9yLnByb3RvdHlwZSA9IGNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSwgeyBuZXh0OiBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoMSwgbmV4dCkgfSk7XG4gIHNldFRvU3RyaW5nVGFnKEl0ZXJhdG9yQ29uc3RydWN0b3IsIFRPX1NUUklOR19UQUcsIGZhbHNlLCB0cnVlKTtcbiAgSXRlcmF0b3JzW1RPX1NUUklOR19UQUddID0gcmV0dXJuVGhpcztcbiAgcmV0dXJuIEl0ZXJhdG9yQ29uc3RydWN0b3I7XG59O1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBET01JdGVyYWJsZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZG9tLWl0ZXJhYmxlcycpO1xudmFyIEFycmF5SXRlcmF0b3JNZXRob2RzID0gcmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5hcnJheS5pdGVyYXRvcicpO1xudmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHknKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIElURVJBVE9SID0gd2VsbEtub3duU3ltYm9sKCdpdGVyYXRvcicpO1xudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG52YXIgQXJyYXlWYWx1ZXMgPSBBcnJheUl0ZXJhdG9yTWV0aG9kcy52YWx1ZXM7XG5cbmZvciAodmFyIENPTExFQ1RJT05fTkFNRSBpbiBET01JdGVyYWJsZXMpIHtcbiAgdmFyIENvbGxlY3Rpb24gPSBnbG9iYWxbQ09MTEVDVElPTl9OQU1FXTtcbiAgdmFyIENvbGxlY3Rpb25Qcm90b3R5cGUgPSBDb2xsZWN0aW9uICYmIENvbGxlY3Rpb24ucHJvdG90eXBlO1xuICBpZiAoQ29sbGVjdGlvblByb3RvdHlwZSkge1xuICAgIC8vIHNvbWUgQ2hyb21lIHZlcnNpb25zIGhhdmUgbm9uLWNvbmZpZ3VyYWJsZSBtZXRob2RzIG9uIERPTVRva2VuTGlzdFxuICAgIGlmIChDb2xsZWN0aW9uUHJvdG90eXBlW0lURVJBVE9SXSAhPT0gQXJyYXlWYWx1ZXMpIHRyeSB7XG4gICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoQ29sbGVjdGlvblByb3RvdHlwZSwgSVRFUkFUT1IsIEFycmF5VmFsdWVzKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgQ29sbGVjdGlvblByb3RvdHlwZVtJVEVSQVRPUl0gPSBBcnJheVZhbHVlcztcbiAgICB9XG4gICAgaWYgKCFDb2xsZWN0aW9uUHJvdG90eXBlW1RPX1NUUklOR19UQUddKSB7XG4gICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoQ29sbGVjdGlvblByb3RvdHlwZSwgVE9fU1RSSU5HX1RBRywgQ09MTEVDVElPTl9OQU1FKTtcbiAgICB9XG4gICAgaWYgKERPTUl0ZXJhYmxlc1tDT0xMRUNUSU9OX05BTUVdKSBmb3IgKHZhciBNRVRIT0RfTkFNRSBpbiBBcnJheUl0ZXJhdG9yTWV0aG9kcykge1xuICAgICAgLy8gc29tZSBDaHJvbWUgdmVyc2lvbnMgaGF2ZSBub24tY29uZmlndXJhYmxlIG1ldGhvZHMgb24gRE9NVG9rZW5MaXN0XG4gICAgICBpZiAoQ29sbGVjdGlvblByb3RvdHlwZVtNRVRIT0RfTkFNRV0gIT09IEFycmF5SXRlcmF0b3JNZXRob2RzW01FVEhPRF9OQU1FXSkgdHJ5IHtcbiAgICAgICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KENvbGxlY3Rpb25Qcm90b3R5cGUsIE1FVEhPRF9OQU1FLCBBcnJheUl0ZXJhdG9yTWV0aG9kc1tNRVRIT0RfTkFNRV0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgQ29sbGVjdGlvblByb3RvdHlwZVtNRVRIT0RfTkFNRV0gPSBBcnJheUl0ZXJhdG9yTWV0aG9kc1tNRVRIT0RfTkFNRV07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJyZXF1aXJlKCcuLi9tb2R1bGVzL3dlYi50aW1lcnMnKTtcbnZhciBwYXRoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3BhdGgnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXRoLnNldFRpbWVvdXQ7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgbmF0aXZlUHJvcGVydHlJc0VudW1lcmFibGUgPSB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuXG4vLyBOYXNob3JuIH4gSkRLOCBidWdcbnZhciBOQVNIT1JOX0JVRyA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvciAmJiAhbmF0aXZlUHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh7IDE6IDIgfSwgMSk7XG5cbi8vIGBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlYCBtZXRob2QgaW1wbGVtZW50YXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eWlzZW51bWVyYWJsZVxuZXhwb3J0cy5mID0gTkFTSE9STl9CVUcgPyBmdW5jdGlvbiBwcm9wZXJ0eUlzRW51bWVyYWJsZShWKSB7XG4gIHZhciBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMsIFYpO1xuICByZXR1cm4gISFkZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IuZW51bWVyYWJsZTtcbn0gOiBuYXRpdmVQcm9wZXJ0eUlzRW51bWVyYWJsZTtcbiIsInZhciBwYXJlbnQgPSByZXF1aXJlKCcuLi8uLi9lcy9wcm9taXNlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGFyZW50O1xuIiwicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lcy5hZ2dyZWdhdGUtZXJyb3InKTtcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZycpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lcy5wcm9taXNlJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzLnByb21pc2UuYWxsLXNldHRsZWQnKTtcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMucHJvbWlzZS5hbnknKTtcbnJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMucHJvbWlzZS5maW5hbGx5Jyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzLnN0cmluZy5pdGVyYXRvcicpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLml0ZXJhdG9yJyk7XG52YXIgcGF0aCA9IHJlcXVpcmUoJy4uLy4uL2ludGVybmFscy9wYXRoJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGF0aC5Qcm9taXNlO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1wcm90b3R5cGUtb2YnKTtcbnZhciBzZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qtc2V0LXByb3RvdHlwZS1vZicpO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtY3JlYXRlJyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvcicpO1xudmFyIGl0ZXJhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0ZScpO1xuXG52YXIgJEFnZ3JlZ2F0ZUVycm9yID0gZnVuY3Rpb24gQWdncmVnYXRlRXJyb3IoZXJyb3JzLCBtZXNzYWdlKSB7XG4gIHZhciB0aGF0ID0gdGhpcztcbiAgaWYgKCEodGhhdCBpbnN0YW5jZW9mICRBZ2dyZWdhdGVFcnJvcikpIHJldHVybiBuZXcgJEFnZ3JlZ2F0ZUVycm9yKGVycm9ycywgbWVzc2FnZSk7XG4gIGlmIChzZXRQcm90b3R5cGVPZikge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL2Vycm9yLW1lc3NhZ2VcbiAgICB0aGF0ID0gc2V0UHJvdG90eXBlT2YobmV3IEVycm9yKHVuZGVmaW5lZCksIGdldFByb3RvdHlwZU9mKHRoYXQpKTtcbiAgfVxuICBpZiAobWVzc2FnZSAhPT0gdW5kZWZpbmVkKSBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkodGhhdCwgJ21lc3NhZ2UnLCBTdHJpbmcobWVzc2FnZSkpO1xuICB2YXIgZXJyb3JzQXJyYXkgPSBbXTtcbiAgaXRlcmF0ZShlcnJvcnMsIGVycm9yc0FycmF5LnB1c2gsIHsgdGhhdDogZXJyb3JzQXJyYXkgfSk7XG4gIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSh0aGF0LCAnZXJyb3JzJywgZXJyb3JzQXJyYXkpO1xuICByZXR1cm4gdGhhdDtcbn07XG5cbiRBZ2dyZWdhdGVFcnJvci5wcm90b3R5cGUgPSBjcmVhdGUoRXJyb3IucHJvdG90eXBlLCB7XG4gIGNvbnN0cnVjdG9yOiBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoNSwgJEFnZ3JlZ2F0ZUVycm9yKSxcbiAgbWVzc2FnZTogY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDUsICcnKSxcbiAgbmFtZTogY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDUsICdBZ2dyZWdhdGVFcnJvcicpXG59KTtcblxuLy8gYEFnZ3JlZ2F0ZUVycm9yYCBjb25zdHJ1Y3RvclxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hZ2dyZWdhdGUtZXJyb3ItY29uc3RydWN0b3JcbiQoeyBnbG9iYWw6IHRydWUgfSwge1xuICBBZ2dyZWdhdGVFcnJvcjogJEFnZ3JlZ2F0ZUVycm9yXG59KTtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gIHRyeSB7XG4gICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KGdsb2JhbCwga2V5LCB2YWx1ZSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgZ2xvYmFsW2tleV0gPSB2YWx1ZTtcbiAgfSByZXR1cm4gdmFsdWU7XG59O1xuIiwidmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gRigpIHsgLyogZW1wdHkgKi8gfVxuICBGLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IG51bGw7XG4gIHJldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2YobmV3IEYoKSkgIT09IEYucHJvdG90eXBlO1xufSk7XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmICghaXNPYmplY3QoaXQpICYmIGl0ICE9PSBudWxsKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3Qgc2V0IFwiICsgU3RyaW5nKGl0KSArICcgYXMgYSBwcm90b3R5cGUnKTtcbiAgfSByZXR1cm4gaXQ7XG59O1xuIiwidmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIG9iamVjdEtleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWtleXMnKTtcblxuLy8gYE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmRlZmluZXByb3BlcnRpZXNcbm1vZHVsZS5leHBvcnRzID0gREVTQ1JJUFRPUlMgPyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyA6IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoTywgUHJvcGVydGllcykge1xuICBhbk9iamVjdChPKTtcbiAgdmFyIGtleXMgPSBvYmplY3RLZXlzKFByb3BlcnRpZXMpO1xuICB2YXIgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gIHZhciBpbmRleCA9IDA7XG4gIHZhciBrZXk7XG4gIHdoaWxlIChsZW5ndGggPiBpbmRleCkgZGVmaW5lUHJvcGVydHlNb2R1bGUuZihPLCBrZXkgPSBrZXlzW2luZGV4KytdLCBQcm9wZXJ0aWVzW2tleV0pO1xuICByZXR1cm4gTztcbn07XG4iLCJ2YXIgaGFzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcycpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIGluZGV4T2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaW5jbHVkZXMnKS5pbmRleE9mO1xudmFyIGhpZGRlbktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGlkZGVuLWtleXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lcykge1xuICB2YXIgTyA9IHRvSW5kZXhlZE9iamVjdChvYmplY3QpO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gTykgIWhhcyhoaWRkZW5LZXlzLCBrZXkpICYmIGhhcyhPLCBrZXkpICYmIHJlc3VsdC5wdXNoKGtleSk7XG4gIC8vIERvbid0IGVudW0gYnVnICYgaGlkZGVuIGtleXNcbiAgd2hpbGUgKG5hbWVzLmxlbmd0aCA+IGkpIGlmIChoYXMoTywga2V5ID0gbmFtZXNbaSsrXSkpIHtcbiAgICB+aW5kZXhPZihyZXN1bHQsIGtleSkgfHwgcmVzdWx0LnB1c2goa2V5KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcbiIsInZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1sZW5ndGgnKTtcbnZhciB0b0Fic29sdXRlSW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tYWJzb2x1dGUtaW5kZXgnKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS57IGluZGV4T2YsIGluY2x1ZGVzIH1gIG1ldGhvZHMgaW1wbGVtZW50YXRpb25cbnZhciBjcmVhdGVNZXRob2QgPSBmdW5jdGlvbiAoSVNfSU5DTFVERVMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgkdGhpcywgZWwsIGZyb21JbmRleCkge1xuICAgIHZhciBPID0gdG9JbmRleGVkT2JqZWN0KCR0aGlzKTtcbiAgICB2YXIgbGVuZ3RoID0gdG9MZW5ndGgoTy5sZW5ndGgpO1xuICAgIHZhciBpbmRleCA9IHRvQWJzb2x1dGVJbmRleChmcm9tSW5kZXgsIGxlbmd0aCk7XG4gICAgdmFyIHZhbHVlO1xuICAgIC8vIEFycmF5I2luY2x1ZGVzIHVzZXMgU2FtZVZhbHVlWmVybyBlcXVhbGl0eSBhbGdvcml0aG1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gICAgaWYgKElTX0lOQ0xVREVTICYmIGVsICE9IGVsKSB3aGlsZSAobGVuZ3RoID4gaW5kZXgpIHtcbiAgICAgIHZhbHVlID0gT1tpbmRleCsrXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcbiAgICAgIGlmICh2YWx1ZSAhPSB2YWx1ZSkgcmV0dXJuIHRydWU7XG4gICAgLy8gQXJyYXkjaW5kZXhPZiBpZ25vcmVzIGhvbGVzLCBBcnJheSNpbmNsdWRlcyAtIG5vdFxuICAgIH0gZWxzZSBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykge1xuICAgICAgaWYgKChJU19JTkNMVURFUyB8fCBpbmRleCBpbiBPKSAmJiBPW2luZGV4XSA9PT0gZWwpIHJldHVybiBJU19JTkNMVURFUyB8fCBpbmRleCB8fCAwO1xuICAgIH0gcmV0dXJuICFJU19JTkNMVURFUyAmJiAtMTtcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgQXJyYXkucHJvdG90eXBlLmluY2x1ZGVzYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuaW5jbHVkZXNcbiAgaW5jbHVkZXM6IGNyZWF0ZU1ldGhvZCh0cnVlKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5pbmRleE9mYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuaW5kZXhvZlxuICBpbmRleE9mOiBjcmVhdGVNZXRob2QoZmFsc2UpXG59O1xuIiwidmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMnKTtcblxudmFyIElURVJBVE9SID0gd2VsbEtub3duU3ltYm9sKCdpdGVyYXRvcicpO1xudmFyIEFycmF5UHJvdG90eXBlID0gQXJyYXkucHJvdG90eXBlO1xuXG4vLyBjaGVjayBvbiBkZWZhdWx0IEFycmF5IGl0ZXJhdG9yXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgIT09IHVuZGVmaW5lZCAmJiAoSXRlcmF0b3JzLkFycmF5ID09PSBpdCB8fCBBcnJheVByb3RvdHlwZVtJVEVSQVRPUl0gPT09IGl0KTtcbn07XG4iLCJ2YXIgTkFUSVZFX1NZTUJPTCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9uYXRpdmUtc3ltYm9sJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gTkFUSVZFX1NZTUJPTFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgJiYgIVN5bWJvbC5zaGFtXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09ICdzeW1ib2wnO1xuIiwidmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZicpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIElURVJBVE9SID0gd2VsbEtub3duU3ltYm9sKCdpdGVyYXRvcicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXQgIT0gdW5kZWZpbmVkKSByZXR1cm4gaXRbSVRFUkFUT1JdXG4gICAgfHwgaXRbJ0BAaXRlcmF0b3InXVxuICAgIHx8IEl0ZXJhdG9yc1tjbGFzc29mKGl0KV07XG59O1xuIiwidmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdGVyYXRvcikge1xuICB2YXIgcmV0dXJuTWV0aG9kID0gaXRlcmF0b3JbJ3JldHVybiddO1xuICBpZiAocmV0dXJuTWV0aG9kICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gYW5PYmplY3QocmV0dXJuTWV0aG9kLmNhbGwoaXRlcmF0b3IpKS52YWx1ZTtcbiAgfVxufTtcbiIsIi8vIGVtcHR5XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcbnZhciBOYXRpdmVQcm9taXNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25hdGl2ZS1wcm9taXNlLWNvbnN0cnVjdG9yJyk7XG52YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVkZWZpbmUnKTtcbnZhciByZWRlZmluZUFsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWRlZmluZS1hbGwnKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtdG8tc3RyaW5nLXRhZycpO1xudmFyIHNldFNwZWNpZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LXNwZWNpZXMnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1mdW5jdGlvbicpO1xudmFyIGFuSW5zdGFuY2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4taW5zdGFuY2UnKTtcbnZhciBpbnNwZWN0U291cmNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luc3BlY3Qtc291cmNlJyk7XG52YXIgaXRlcmF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRlJyk7XG52YXIgY2hlY2tDb3JyZWN0bmVzc09mSXRlcmF0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NoZWNrLWNvcnJlY3RuZXNzLW9mLWl0ZXJhdGlvbicpO1xudmFyIHNwZWNpZXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG52YXIgdGFzayA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90YXNrJykuc2V0O1xudmFyIG1pY3JvdGFzayA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9taWNyb3Rhc2snKTtcbnZhciBwcm9taXNlUmVzb2x2ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9wcm9taXNlLXJlc29sdmUnKTtcbnZhciBob3N0UmVwb3J0RXJyb3JzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hvc3QtcmVwb3J0LWVycm9ycycpO1xudmFyIG5ld1Byb21pc2VDYXBhYmlsaXR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25ldy1wcm9taXNlLWNhcGFiaWxpdHknKTtcbnZhciBwZXJmb3JtID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3BlcmZvcm0nKTtcbnZhciBJbnRlcm5hbFN0YXRlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJyk7XG52YXIgaXNGb3JjZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtZm9yY2VkJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgSVNfTk9ERSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtaXMtbm9kZScpO1xudmFyIFY4X1ZFUlNJT04gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW5naW5lLXY4LXZlcnNpb24nKTtcblxudmFyIFNQRUNJRVMgPSB3ZWxsS25vd25TeW1ib2woJ3NwZWNpZXMnKTtcbnZhciBQUk9NSVNFID0gJ1Byb21pc2UnO1xudmFyIGdldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLmdldDtcbnZhciBzZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5zZXQ7XG52YXIgZ2V0SW50ZXJuYWxQcm9taXNlU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLmdldHRlckZvcihQUk9NSVNFKTtcbnZhciBQcm9taXNlQ29uc3RydWN0b3IgPSBOYXRpdmVQcm9taXNlO1xudmFyIFR5cGVFcnJvciA9IGdsb2JhbC5UeXBlRXJyb3I7XG52YXIgZG9jdW1lbnQgPSBnbG9iYWwuZG9jdW1lbnQ7XG52YXIgcHJvY2VzcyA9IGdsb2JhbC5wcm9jZXNzO1xudmFyICRmZXRjaCA9IGdldEJ1aWx0SW4oJ2ZldGNoJyk7XG52YXIgbmV3UHJvbWlzZUNhcGFiaWxpdHkgPSBuZXdQcm9taXNlQ2FwYWJpbGl0eU1vZHVsZS5mO1xudmFyIG5ld0dlbmVyaWNQcm9taXNlQ2FwYWJpbGl0eSA9IG5ld1Byb21pc2VDYXBhYmlsaXR5O1xudmFyIERJU1BBVENIX0VWRU5UID0gISEoZG9jdW1lbnQgJiYgZG9jdW1lbnQuY3JlYXRlRXZlbnQgJiYgZ2xvYmFsLmRpc3BhdGNoRXZlbnQpO1xudmFyIE5BVElWRV9SRUpFQ1RJT05fRVZFTlQgPSB0eXBlb2YgUHJvbWlzZVJlamVjdGlvbkV2ZW50ID09ICdmdW5jdGlvbic7XG52YXIgVU5IQU5ETEVEX1JFSkVDVElPTiA9ICd1bmhhbmRsZWRyZWplY3Rpb24nO1xudmFyIFJFSkVDVElPTl9IQU5ETEVEID0gJ3JlamVjdGlvbmhhbmRsZWQnO1xudmFyIFBFTkRJTkcgPSAwO1xudmFyIEZVTEZJTExFRCA9IDE7XG52YXIgUkVKRUNURUQgPSAyO1xudmFyIEhBTkRMRUQgPSAxO1xudmFyIFVOSEFORExFRCA9IDI7XG52YXIgSW50ZXJuYWwsIE93blByb21pc2VDYXBhYmlsaXR5LCBQcm9taXNlV3JhcHBlciwgbmF0aXZlVGhlbjtcblxudmFyIEZPUkNFRCA9IGlzRm9yY2VkKFBST01JU0UsIGZ1bmN0aW9uICgpIHtcbiAgdmFyIEdMT0JBTF9DT1JFX0pTX1BST01JU0UgPSBpbnNwZWN0U291cmNlKFByb21pc2VDb25zdHJ1Y3RvcikgIT09IFN0cmluZyhQcm9taXNlQ29uc3RydWN0b3IpO1xuICBpZiAoIUdMT0JBTF9DT1JFX0pTX1BST01JU0UpIHtcbiAgICAvLyBWOCA2LjYgKE5vZGUgMTAgYW5kIENocm9tZSA2NikgaGF2ZSBhIGJ1ZyB3aXRoIHJlc29sdmluZyBjdXN0b20gdGhlbmFibGVzXG4gICAgLy8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9ODMwNTY1XG4gICAgLy8gV2UgY2FuJ3QgZGV0ZWN0IGl0IHN5bmNocm9ub3VzbHksIHNvIGp1c3QgY2hlY2sgdmVyc2lvbnNcbiAgICBpZiAoVjhfVkVSU0lPTiA9PT0gNjYpIHJldHVybiB0cnVlO1xuICAgIC8vIFVuaGFuZGxlZCByZWplY3Rpb25zIHRyYWNraW5nIHN1cHBvcnQsIE5vZGVKUyBQcm9taXNlIHdpdGhvdXQgaXQgZmFpbHMgQEBzcGVjaWVzIHRlc3RcbiAgICBpZiAoIUlTX05PREUgJiYgIU5BVElWRV9SRUpFQ1RJT05fRVZFTlQpIHJldHVybiB0cnVlO1xuICB9XG4gIC8vIFdlIG5lZWQgUHJvbWlzZSNmaW5hbGx5IGluIHRoZSBwdXJlIHZlcnNpb24gZm9yIHByZXZlbnRpbmcgcHJvdG90eXBlIHBvbGx1dGlvblxuICBpZiAoSVNfUFVSRSAmJiAhUHJvbWlzZUNvbnN0cnVjdG9yLnByb3RvdHlwZVsnZmluYWxseSddKSByZXR1cm4gdHJ1ZTtcbiAgLy8gV2UgY2FuJ3QgdXNlIEBAc3BlY2llcyBmZWF0dXJlIGRldGVjdGlvbiBpbiBWOCBzaW5jZSBpdCBjYXVzZXNcbiAgLy8gZGVvcHRpbWl6YXRpb24gYW5kIHBlcmZvcm1hbmNlIGRlZ3JhZGF0aW9uXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy82NzlcbiAgaWYgKFY4X1ZFUlNJT04gPj0gNTEgJiYgL25hdGl2ZSBjb2RlLy50ZXN0KFByb21pc2VDb25zdHJ1Y3RvcikpIHJldHVybiBmYWxzZTtcbiAgLy8gRGV0ZWN0IGNvcnJlY3RuZXNzIG9mIHN1YmNsYXNzaW5nIHdpdGggQEBzcGVjaWVzIHN1cHBvcnRcbiAgdmFyIHByb21pc2UgPSBQcm9taXNlQ29uc3RydWN0b3IucmVzb2x2ZSgxKTtcbiAgdmFyIEZha2VQcm9taXNlID0gZnVuY3Rpb24gKGV4ZWMpIHtcbiAgICBleGVjKGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfSwgZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9KTtcbiAgfTtcbiAgdmFyIGNvbnN0cnVjdG9yID0gcHJvbWlzZS5jb25zdHJ1Y3RvciA9IHt9O1xuICBjb25zdHJ1Y3RvcltTUEVDSUVTXSA9IEZha2VQcm9taXNlO1xuICByZXR1cm4gIShwcm9taXNlLnRoZW4oZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9KSBpbnN0YW5jZW9mIEZha2VQcm9taXNlKTtcbn0pO1xuXG52YXIgSU5DT1JSRUNUX0lURVJBVElPTiA9IEZPUkNFRCB8fCAhY2hlY2tDb3JyZWN0bmVzc09mSXRlcmF0aW9uKGZ1bmN0aW9uIChpdGVyYWJsZSkge1xuICBQcm9taXNlQ29uc3RydWN0b3IuYWxsKGl0ZXJhYmxlKVsnY2F0Y2gnXShmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH0pO1xufSk7XG5cbi8vIGhlbHBlcnNcbnZhciBpc1RoZW5hYmxlID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciB0aGVuO1xuICByZXR1cm4gaXNPYmplY3QoaXQpICYmIHR5cGVvZiAodGhlbiA9IGl0LnRoZW4pID09ICdmdW5jdGlvbicgPyB0aGVuIDogZmFsc2U7XG59O1xuXG52YXIgbm90aWZ5ID0gZnVuY3Rpb24gKHN0YXRlLCBpc1JlamVjdCkge1xuICBpZiAoc3RhdGUubm90aWZpZWQpIHJldHVybjtcbiAgc3RhdGUubm90aWZpZWQgPSB0cnVlO1xuICB2YXIgY2hhaW4gPSBzdGF0ZS5yZWFjdGlvbnM7XG4gIG1pY3JvdGFzayhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHZhbHVlID0gc3RhdGUudmFsdWU7XG4gICAgdmFyIG9rID0gc3RhdGUuc3RhdGUgPT0gRlVMRklMTEVEO1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgLy8gdmFyaWFibGUgbGVuZ3RoIC0gY2FuJ3QgdXNlIGZvckVhY2hcbiAgICB3aGlsZSAoY2hhaW4ubGVuZ3RoID4gaW5kZXgpIHtcbiAgICAgIHZhciByZWFjdGlvbiA9IGNoYWluW2luZGV4KytdO1xuICAgICAgdmFyIGhhbmRsZXIgPSBvayA/IHJlYWN0aW9uLm9rIDogcmVhY3Rpb24uZmFpbDtcbiAgICAgIHZhciByZXNvbHZlID0gcmVhY3Rpb24ucmVzb2x2ZTtcbiAgICAgIHZhciByZWplY3QgPSByZWFjdGlvbi5yZWplY3Q7XG4gICAgICB2YXIgZG9tYWluID0gcmVhY3Rpb24uZG9tYWluO1xuICAgICAgdmFyIHJlc3VsdCwgdGhlbiwgZXhpdGVkO1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKGhhbmRsZXIpIHtcbiAgICAgICAgICBpZiAoIW9rKSB7XG4gICAgICAgICAgICBpZiAoc3RhdGUucmVqZWN0aW9uID09PSBVTkhBTkRMRUQpIG9uSGFuZGxlVW5oYW5kbGVkKHN0YXRlKTtcbiAgICAgICAgICAgIHN0YXRlLnJlamVjdGlvbiA9IEhBTkRMRUQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChoYW5kbGVyID09PSB0cnVlKSByZXN1bHQgPSB2YWx1ZTtcbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChkb21haW4pIGRvbWFpbi5lbnRlcigpO1xuICAgICAgICAgICAgcmVzdWx0ID0gaGFuZGxlcih2YWx1ZSk7IC8vIGNhbiB0aHJvd1xuICAgICAgICAgICAgaWYgKGRvbWFpbikge1xuICAgICAgICAgICAgICBkb21haW4uZXhpdCgpO1xuICAgICAgICAgICAgICBleGl0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocmVzdWx0ID09PSByZWFjdGlvbi5wcm9taXNlKSB7XG4gICAgICAgICAgICByZWplY3QoVHlwZUVycm9yKCdQcm9taXNlLWNoYWluIGN5Y2xlJykpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhlbiA9IGlzVGhlbmFibGUocmVzdWx0KSkge1xuICAgICAgICAgICAgdGhlbi5jYWxsKHJlc3VsdCwgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICB9IGVsc2UgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICB9IGVsc2UgcmVqZWN0KHZhbHVlKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChkb21haW4gJiYgIWV4aXRlZCkgZG9tYWluLmV4aXQoKTtcbiAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG4gICAgc3RhdGUucmVhY3Rpb25zID0gW107XG4gICAgc3RhdGUubm90aWZpZWQgPSBmYWxzZTtcbiAgICBpZiAoaXNSZWplY3QgJiYgIXN0YXRlLnJlamVjdGlvbikgb25VbmhhbmRsZWQoc3RhdGUpO1xuICB9KTtcbn07XG5cbnZhciBkaXNwYXRjaEV2ZW50ID0gZnVuY3Rpb24gKG5hbWUsIHByb21pc2UsIHJlYXNvbikge1xuICB2YXIgZXZlbnQsIGhhbmRsZXI7XG4gIGlmIChESVNQQVRDSF9FVkVOVCkge1xuICAgIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0V2ZW50Jyk7XG4gICAgZXZlbnQucHJvbWlzZSA9IHByb21pc2U7XG4gICAgZXZlbnQucmVhc29uID0gcmVhc29uO1xuICAgIGV2ZW50LmluaXRFdmVudChuYW1lLCBmYWxzZSwgdHJ1ZSk7XG4gICAgZ2xvYmFsLmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICB9IGVsc2UgZXZlbnQgPSB7IHByb21pc2U6IHByb21pc2UsIHJlYXNvbjogcmVhc29uIH07XG4gIGlmICghTkFUSVZFX1JFSkVDVElPTl9FVkVOVCAmJiAoaGFuZGxlciA9IGdsb2JhbFsnb24nICsgbmFtZV0pKSBoYW5kbGVyKGV2ZW50KTtcbiAgZWxzZSBpZiAobmFtZSA9PT0gVU5IQU5ETEVEX1JFSkVDVElPTikgaG9zdFJlcG9ydEVycm9ycygnVW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9uJywgcmVhc29uKTtcbn07XG5cbnZhciBvblVuaGFuZGxlZCA9IGZ1bmN0aW9uIChzdGF0ZSkge1xuICB0YXNrLmNhbGwoZ2xvYmFsLCBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHByb21pc2UgPSBzdGF0ZS5mYWNhZGU7XG4gICAgdmFyIHZhbHVlID0gc3RhdGUudmFsdWU7XG4gICAgdmFyIElTX1VOSEFORExFRCA9IGlzVW5oYW5kbGVkKHN0YXRlKTtcbiAgICB2YXIgcmVzdWx0O1xuICAgIGlmIChJU19VTkhBTkRMRUQpIHtcbiAgICAgIHJlc3VsdCA9IHBlcmZvcm0oZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoSVNfTk9ERSkge1xuICAgICAgICAgIHByb2Nlc3MuZW1pdCgndW5oYW5kbGVkUmVqZWN0aW9uJywgdmFsdWUsIHByb21pc2UpO1xuICAgICAgICB9IGVsc2UgZGlzcGF0Y2hFdmVudChVTkhBTkRMRURfUkVKRUNUSU9OLCBwcm9taXNlLCB2YWx1ZSk7XG4gICAgICB9KTtcbiAgICAgIC8vIEJyb3dzZXJzIHNob3VsZCBub3QgdHJpZ2dlciBgcmVqZWN0aW9uSGFuZGxlZGAgZXZlbnQgaWYgaXQgd2FzIGhhbmRsZWQgaGVyZSwgTm9kZUpTIC0gc2hvdWxkXG4gICAgICBzdGF0ZS5yZWplY3Rpb24gPSBJU19OT0RFIHx8IGlzVW5oYW5kbGVkKHN0YXRlKSA/IFVOSEFORExFRCA6IEhBTkRMRUQ7XG4gICAgICBpZiAocmVzdWx0LmVycm9yKSB0aHJvdyByZXN1bHQudmFsdWU7XG4gICAgfVxuICB9KTtcbn07XG5cbnZhciBpc1VuaGFuZGxlZCA9IGZ1bmN0aW9uIChzdGF0ZSkge1xuICByZXR1cm4gc3RhdGUucmVqZWN0aW9uICE9PSBIQU5ETEVEICYmICFzdGF0ZS5wYXJlbnQ7XG59O1xuXG52YXIgb25IYW5kbGVVbmhhbmRsZWQgPSBmdW5jdGlvbiAoc3RhdGUpIHtcbiAgdGFzay5jYWxsKGdsb2JhbCwgZnVuY3Rpb24gKCkge1xuICAgIHZhciBwcm9taXNlID0gc3RhdGUuZmFjYWRlO1xuICAgIGlmIChJU19OT0RFKSB7XG4gICAgICBwcm9jZXNzLmVtaXQoJ3JlamVjdGlvbkhhbmRsZWQnLCBwcm9taXNlKTtcbiAgICB9IGVsc2UgZGlzcGF0Y2hFdmVudChSRUpFQ1RJT05fSEFORExFRCwgcHJvbWlzZSwgc3RhdGUudmFsdWUpO1xuICB9KTtcbn07XG5cbnZhciBiaW5kID0gZnVuY3Rpb24gKGZuLCBzdGF0ZSwgdW53cmFwKSB7XG4gIHJldHVybiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICBmbihzdGF0ZSwgdmFsdWUsIHVud3JhcCk7XG4gIH07XG59O1xuXG52YXIgaW50ZXJuYWxSZWplY3QgPSBmdW5jdGlvbiAoc3RhdGUsIHZhbHVlLCB1bndyYXApIHtcbiAgaWYgKHN0YXRlLmRvbmUpIHJldHVybjtcbiAgc3RhdGUuZG9uZSA9IHRydWU7XG4gIGlmICh1bndyYXApIHN0YXRlID0gdW53cmFwO1xuICBzdGF0ZS52YWx1ZSA9IHZhbHVlO1xuICBzdGF0ZS5zdGF0ZSA9IFJFSkVDVEVEO1xuICBub3RpZnkoc3RhdGUsIHRydWUpO1xufTtcblxudmFyIGludGVybmFsUmVzb2x2ZSA9IGZ1bmN0aW9uIChzdGF0ZSwgdmFsdWUsIHVud3JhcCkge1xuICBpZiAoc3RhdGUuZG9uZSkgcmV0dXJuO1xuICBzdGF0ZS5kb25lID0gdHJ1ZTtcbiAgaWYgKHVud3JhcCkgc3RhdGUgPSB1bndyYXA7XG4gIHRyeSB7XG4gICAgaWYgKHN0YXRlLmZhY2FkZSA9PT0gdmFsdWUpIHRocm93IFR5cGVFcnJvcihcIlByb21pc2UgY2FuJ3QgYmUgcmVzb2x2ZWQgaXRzZWxmXCIpO1xuICAgIHZhciB0aGVuID0gaXNUaGVuYWJsZSh2YWx1ZSk7XG4gICAgaWYgKHRoZW4pIHtcbiAgICAgIG1pY3JvdGFzayhmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB3cmFwcGVyID0geyBkb25lOiBmYWxzZSB9O1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHRoZW4uY2FsbCh2YWx1ZSxcbiAgICAgICAgICAgIGJpbmQoaW50ZXJuYWxSZXNvbHZlLCB3cmFwcGVyLCBzdGF0ZSksXG4gICAgICAgICAgICBiaW5kKGludGVybmFsUmVqZWN0LCB3cmFwcGVyLCBzdGF0ZSlcbiAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGludGVybmFsUmVqZWN0KHdyYXBwZXIsIGVycm9yLCBzdGF0ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdGF0ZS52YWx1ZSA9IHZhbHVlO1xuICAgICAgc3RhdGUuc3RhdGUgPSBGVUxGSUxMRUQ7XG4gICAgICBub3RpZnkoc3RhdGUsIGZhbHNlKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgaW50ZXJuYWxSZWplY3QoeyBkb25lOiBmYWxzZSB9LCBlcnJvciwgc3RhdGUpO1xuICB9XG59O1xuXG4vLyBjb25zdHJ1Y3RvciBwb2x5ZmlsbFxuaWYgKEZPUkNFRCkge1xuICAvLyAyNS40LjMuMSBQcm9taXNlKGV4ZWN1dG9yKVxuICBQcm9taXNlQ29uc3RydWN0b3IgPSBmdW5jdGlvbiBQcm9taXNlKGV4ZWN1dG9yKSB7XG4gICAgYW5JbnN0YW5jZSh0aGlzLCBQcm9taXNlQ29uc3RydWN0b3IsIFBST01JU0UpO1xuICAgIGFGdW5jdGlvbihleGVjdXRvcik7XG4gICAgSW50ZXJuYWwuY2FsbCh0aGlzKTtcbiAgICB2YXIgc3RhdGUgPSBnZXRJbnRlcm5hbFN0YXRlKHRoaXMpO1xuICAgIHRyeSB7XG4gICAgICBleGVjdXRvcihiaW5kKGludGVybmFsUmVzb2x2ZSwgc3RhdGUpLCBiaW5kKGludGVybmFsUmVqZWN0LCBzdGF0ZSkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpbnRlcm5hbFJlamVjdChzdGF0ZSwgZXJyb3IpO1xuICAgIH1cbiAgfTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gIEludGVybmFsID0gZnVuY3Rpb24gUHJvbWlzZShleGVjdXRvcikge1xuICAgIHNldEludGVybmFsU3RhdGUodGhpcywge1xuICAgICAgdHlwZTogUFJPTUlTRSxcbiAgICAgIGRvbmU6IGZhbHNlLFxuICAgICAgbm90aWZpZWQ6IGZhbHNlLFxuICAgICAgcGFyZW50OiBmYWxzZSxcbiAgICAgIHJlYWN0aW9uczogW10sXG4gICAgICByZWplY3Rpb246IGZhbHNlLFxuICAgICAgc3RhdGU6IFBFTkRJTkcsXG4gICAgICB2YWx1ZTogdW5kZWZpbmVkXG4gICAgfSk7XG4gIH07XG4gIEludGVybmFsLnByb3RvdHlwZSA9IHJlZGVmaW5lQWxsKFByb21pc2VDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHtcbiAgICAvLyBgUHJvbWlzZS5wcm90b3R5cGUudGhlbmAgbWV0aG9kXG4gICAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1wcm9taXNlLnByb3RvdHlwZS50aGVuXG4gICAgdGhlbjogZnVuY3Rpb24gdGhlbihvbkZ1bGZpbGxlZCwgb25SZWplY3RlZCkge1xuICAgICAgdmFyIHN0YXRlID0gZ2V0SW50ZXJuYWxQcm9taXNlU3RhdGUodGhpcyk7XG4gICAgICB2YXIgcmVhY3Rpb24gPSBuZXdQcm9taXNlQ2FwYWJpbGl0eShzcGVjaWVzQ29uc3RydWN0b3IodGhpcywgUHJvbWlzZUNvbnN0cnVjdG9yKSk7XG4gICAgICByZWFjdGlvbi5vayA9IHR5cGVvZiBvbkZ1bGZpbGxlZCA9PSAnZnVuY3Rpb24nID8gb25GdWxmaWxsZWQgOiB0cnVlO1xuICAgICAgcmVhY3Rpb24uZmFpbCA9IHR5cGVvZiBvblJlamVjdGVkID09ICdmdW5jdGlvbicgJiYgb25SZWplY3RlZDtcbiAgICAgIHJlYWN0aW9uLmRvbWFpbiA9IElTX05PREUgPyBwcm9jZXNzLmRvbWFpbiA6IHVuZGVmaW5lZDtcbiAgICAgIHN0YXRlLnBhcmVudCA9IHRydWU7XG4gICAgICBzdGF0ZS5yZWFjdGlvbnMucHVzaChyZWFjdGlvbik7XG4gICAgICBpZiAoc3RhdGUuc3RhdGUgIT0gUEVORElORykgbm90aWZ5KHN0YXRlLCBmYWxzZSk7XG4gICAgICByZXR1cm4gcmVhY3Rpb24ucHJvbWlzZTtcbiAgICB9LFxuICAgIC8vIGBQcm9taXNlLnByb3RvdHlwZS5jYXRjaGAgbWV0aG9kXG4gICAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1wcm9taXNlLnByb3RvdHlwZS5jYXRjaFxuICAgICdjYXRjaCc6IGZ1bmN0aW9uIChvblJlamVjdGVkKSB7XG4gICAgICByZXR1cm4gdGhpcy50aGVuKHVuZGVmaW5lZCwgb25SZWplY3RlZCk7XG4gICAgfVxuICB9KTtcbiAgT3duUHJvbWlzZUNhcGFiaWxpdHkgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHByb21pc2UgPSBuZXcgSW50ZXJuYWwoKTtcbiAgICB2YXIgc3RhdGUgPSBnZXRJbnRlcm5hbFN0YXRlKHByb21pc2UpO1xuICAgIHRoaXMucHJvbWlzZSA9IHByb21pc2U7XG4gICAgdGhpcy5yZXNvbHZlID0gYmluZChpbnRlcm5hbFJlc29sdmUsIHN0YXRlKTtcbiAgICB0aGlzLnJlamVjdCA9IGJpbmQoaW50ZXJuYWxSZWplY3QsIHN0YXRlKTtcbiAgfTtcbiAgbmV3UHJvbWlzZUNhcGFiaWxpdHlNb2R1bGUuZiA9IG5ld1Byb21pc2VDYXBhYmlsaXR5ID0gZnVuY3Rpb24gKEMpIHtcbiAgICByZXR1cm4gQyA9PT0gUHJvbWlzZUNvbnN0cnVjdG9yIHx8IEMgPT09IFByb21pc2VXcmFwcGVyXG4gICAgICA/IG5ldyBPd25Qcm9taXNlQ2FwYWJpbGl0eShDKVxuICAgICAgOiBuZXdHZW5lcmljUHJvbWlzZUNhcGFiaWxpdHkoQyk7XG4gIH07XG5cbiAgaWYgKCFJU19QVVJFICYmIHR5cGVvZiBOYXRpdmVQcm9taXNlID09ICdmdW5jdGlvbicpIHtcbiAgICBuYXRpdmVUaGVuID0gTmF0aXZlUHJvbWlzZS5wcm90b3R5cGUudGhlbjtcblxuICAgIC8vIHdyYXAgbmF0aXZlIFByb21pc2UjdGhlbiBmb3IgbmF0aXZlIGFzeW5jIGZ1bmN0aW9uc1xuICAgIHJlZGVmaW5lKE5hdGl2ZVByb21pc2UucHJvdG90eXBlLCAndGhlbicsIGZ1bmN0aW9uIHRoZW4ob25GdWxmaWxsZWQsIG9uUmVqZWN0ZWQpIHtcbiAgICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZUNvbnN0cnVjdG9yKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgbmF0aXZlVGhlbi5jYWxsKHRoYXQsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICB9KS50aGVuKG9uRnVsZmlsbGVkLCBvblJlamVjdGVkKTtcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvNjQwXG4gICAgfSwgeyB1bnNhZmU6IHRydWUgfSk7XG5cbiAgICAvLyB3cmFwIGZldGNoIHJlc3VsdFxuICAgIGlmICh0eXBlb2YgJGZldGNoID09ICdmdW5jdGlvbicpICQoeyBnbG9iYWw6IHRydWUsIGVudW1lcmFibGU6IHRydWUsIGZvcmNlZDogdHJ1ZSB9LCB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgICAgIGZldGNoOiBmdW5jdGlvbiBmZXRjaChpbnB1dCAvKiAsIGluaXQgKi8pIHtcbiAgICAgICAgcmV0dXJuIHByb21pc2VSZXNvbHZlKFByb21pc2VDb25zdHJ1Y3RvciwgJGZldGNoLmFwcGx5KGdsb2JhbCwgYXJndW1lbnRzKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuJCh7IGdsb2JhbDogdHJ1ZSwgd3JhcDogdHJ1ZSwgZm9yY2VkOiBGT1JDRUQgfSwge1xuICBQcm9taXNlOiBQcm9taXNlQ29uc3RydWN0b3Jcbn0pO1xuXG5zZXRUb1N0cmluZ1RhZyhQcm9taXNlQ29uc3RydWN0b3IsIFBST01JU0UsIGZhbHNlLCB0cnVlKTtcbnNldFNwZWNpZXMoUFJPTUlTRSk7XG5cblByb21pc2VXcmFwcGVyID0gZ2V0QnVpbHRJbihQUk9NSVNFKTtcblxuLy8gc3RhdGljc1xuJCh7IHRhcmdldDogUFJPTUlTRSwgc3RhdDogdHJ1ZSwgZm9yY2VkOiBGT1JDRUQgfSwge1xuICAvLyBgUHJvbWlzZS5yZWplY3RgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXByb21pc2UucmVqZWN0XG4gIHJlamVjdDogZnVuY3Rpb24gcmVqZWN0KHIpIHtcbiAgICB2YXIgY2FwYWJpbGl0eSA9IG5ld1Byb21pc2VDYXBhYmlsaXR5KHRoaXMpO1xuICAgIGNhcGFiaWxpdHkucmVqZWN0LmNhbGwodW5kZWZpbmVkLCByKTtcbiAgICByZXR1cm4gY2FwYWJpbGl0eS5wcm9taXNlO1xuICB9XG59KTtcblxuJCh7IHRhcmdldDogUFJPTUlTRSwgc3RhdDogdHJ1ZSwgZm9yY2VkOiBJU19QVVJFIHx8IEZPUkNFRCB9LCB7XG4gIC8vIGBQcm9taXNlLnJlc29sdmVgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXByb21pc2UucmVzb2x2ZVxuICByZXNvbHZlOiBmdW5jdGlvbiByZXNvbHZlKHgpIHtcbiAgICByZXR1cm4gcHJvbWlzZVJlc29sdmUoSVNfUFVSRSAmJiB0aGlzID09PSBQcm9taXNlV3JhcHBlciA/IFByb21pc2VDb25zdHJ1Y3RvciA6IHRoaXMsIHgpO1xuICB9XG59KTtcblxuJCh7IHRhcmdldDogUFJPTUlTRSwgc3RhdDogdHJ1ZSwgZm9yY2VkOiBJTkNPUlJFQ1RfSVRFUkFUSU9OIH0sIHtcbiAgLy8gYFByb21pc2UuYWxsYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1wcm9taXNlLmFsbFxuICBhbGw6IGZ1bmN0aW9uIGFsbChpdGVyYWJsZSkge1xuICAgIHZhciBDID0gdGhpcztcbiAgICB2YXIgY2FwYWJpbGl0eSA9IG5ld1Byb21pc2VDYXBhYmlsaXR5KEMpO1xuICAgIHZhciByZXNvbHZlID0gY2FwYWJpbGl0eS5yZXNvbHZlO1xuICAgIHZhciByZWplY3QgPSBjYXBhYmlsaXR5LnJlamVjdDtcbiAgICB2YXIgcmVzdWx0ID0gcGVyZm9ybShmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgJHByb21pc2VSZXNvbHZlID0gYUZ1bmN0aW9uKEMucmVzb2x2ZSk7XG4gICAgICB2YXIgdmFsdWVzID0gW107XG4gICAgICB2YXIgY291bnRlciA9IDA7XG4gICAgICB2YXIgcmVtYWluaW5nID0gMTtcbiAgICAgIGl0ZXJhdGUoaXRlcmFibGUsIGZ1bmN0aW9uIChwcm9taXNlKSB7XG4gICAgICAgIHZhciBpbmRleCA9IGNvdW50ZXIrKztcbiAgICAgICAgdmFyIGFscmVhZHlDYWxsZWQgPSBmYWxzZTtcbiAgICAgICAgdmFsdWVzLnB1c2godW5kZWZpbmVkKTtcbiAgICAgICAgcmVtYWluaW5nKys7XG4gICAgICAgICRwcm9taXNlUmVzb2x2ZS5jYWxsKEMsIHByb21pc2UpLnRoZW4oZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgaWYgKGFscmVhZHlDYWxsZWQpIHJldHVybjtcbiAgICAgICAgICBhbHJlYWR5Q2FsbGVkID0gdHJ1ZTtcbiAgICAgICAgICB2YWx1ZXNbaW5kZXhdID0gdmFsdWU7XG4gICAgICAgICAgLS1yZW1haW5pbmcgfHwgcmVzb2x2ZSh2YWx1ZXMpO1xuICAgICAgICB9LCByZWplY3QpO1xuICAgICAgfSk7XG4gICAgICAtLXJlbWFpbmluZyB8fCByZXNvbHZlKHZhbHVlcyk7XG4gICAgfSk7XG4gICAgaWYgKHJlc3VsdC5lcnJvcikgcmVqZWN0KHJlc3VsdC52YWx1ZSk7XG4gICAgcmV0dXJuIGNhcGFiaWxpdHkucHJvbWlzZTtcbiAgfSxcbiAgLy8gYFByb21pc2UucmFjZWAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcHJvbWlzZS5yYWNlXG4gIHJhY2U6IGZ1bmN0aW9uIHJhY2UoaXRlcmFibGUpIHtcbiAgICB2YXIgQyA9IHRoaXM7XG4gICAgdmFyIGNhcGFiaWxpdHkgPSBuZXdQcm9taXNlQ2FwYWJpbGl0eShDKTtcbiAgICB2YXIgcmVqZWN0ID0gY2FwYWJpbGl0eS5yZWplY3Q7XG4gICAgdmFyIHJlc3VsdCA9IHBlcmZvcm0oZnVuY3Rpb24gKCkge1xuICAgICAgdmFyICRwcm9taXNlUmVzb2x2ZSA9IGFGdW5jdGlvbihDLnJlc29sdmUpO1xuICAgICAgaXRlcmF0ZShpdGVyYWJsZSwgZnVuY3Rpb24gKHByb21pc2UpIHtcbiAgICAgICAgJHByb21pc2VSZXNvbHZlLmNhbGwoQywgcHJvbWlzZSkudGhlbihjYXBhYmlsaXR5LnJlc29sdmUsIHJlamVjdCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBpZiAocmVzdWx0LmVycm9yKSByZWplY3QocmVzdWx0LnZhbHVlKTtcbiAgICByZXR1cm4gY2FwYWJpbGl0eS5wcm9taXNlO1xuICB9XG59KTtcbiIsInZhciByZWRlZmluZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWRlZmluZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh0YXJnZXQsIHNyYywgb3B0aW9ucykge1xuICBmb3IgKHZhciBrZXkgaW4gc3JjKSB7XG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy51bnNhZmUgJiYgdGFyZ2V0W2tleV0pIHRhcmdldFtrZXldID0gc3JjW2tleV07XG4gICAgZWxzZSByZWRlZmluZSh0YXJnZXQsIGtleSwgc3JjW2tleV0sIG9wdGlvbnMpO1xuICB9IHJldHVybiB0YXJnZXQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIFRPX1NUUklOR19UQUdfU1VQUE9SVCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmctdGFnLXN1cHBvcnQnKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YnKTtcblxuLy8gYE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdgIG1ldGhvZCBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nXG5tb2R1bGUuZXhwb3J0cyA9IFRPX1NUUklOR19UQUdfU1VQUE9SVCA/IHt9LnRvU3RyaW5nIDogZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gIHJldHVybiAnW29iamVjdCAnICsgY2xhc3NvZih0aGlzKSArICddJztcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcbnZhciBkZWZpbmVQcm9wZXJ0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5Jyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcblxudmFyIFNQRUNJRVMgPSB3ZWxsS25vd25TeW1ib2woJ3NwZWNpZXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoQ09OU1RSVUNUT1JfTkFNRSkge1xuICB2YXIgQ29uc3RydWN0b3IgPSBnZXRCdWlsdEluKENPTlNUUlVDVE9SX05BTUUpO1xuICB2YXIgZGVmaW5lUHJvcGVydHkgPSBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mO1xuXG4gIGlmIChERVNDUklQVE9SUyAmJiBDb25zdHJ1Y3RvciAmJiAhQ29uc3RydWN0b3JbU1BFQ0lFU10pIHtcbiAgICBkZWZpbmVQcm9wZXJ0eShDb25zdHJ1Y3RvciwgU1BFQ0lFUywge1xuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9XG4gICAgfSk7XG4gIH1cbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCwgQ29uc3RydWN0b3IsIG5hbWUpIHtcbiAgaWYgKCEoaXQgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoJ0luY29ycmVjdCAnICsgKG5hbWUgPyBuYW1lICsgJyAnIDogJycpICsgJ2ludm9jYXRpb24nKTtcbiAgfSByZXR1cm4gaXQ7XG59O1xuIiwidmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgSVRFUkFUT1IgPSB3ZWxsS25vd25TeW1ib2woJ2l0ZXJhdG9yJyk7XG52YXIgU0FGRV9DTE9TSU5HID0gZmFsc2U7XG5cbnRyeSB7XG4gIHZhciBjYWxsZWQgPSAwO1xuICB2YXIgaXRlcmF0b3JXaXRoUmV0dXJuID0ge1xuICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB7IGRvbmU6ICEhY2FsbGVkKysgfTtcbiAgICB9LFxuICAgICdyZXR1cm4nOiBmdW5jdGlvbiAoKSB7XG4gICAgICBTQUZFX0NMT1NJTkcgPSB0cnVlO1xuICAgIH1cbiAgfTtcbiAgaXRlcmF0b3JXaXRoUmV0dXJuW0lURVJBVE9SXSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXRocm93LWxpdGVyYWxcbiAgQXJyYXkuZnJvbShpdGVyYXRvcldpdGhSZXR1cm4sIGZ1bmN0aW9uICgpIHsgdGhyb3cgMjsgfSk7XG59IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGV4ZWMsIFNLSVBfQ0xPU0lORykge1xuICBpZiAoIVNLSVBfQ0xPU0lORyAmJiAhU0FGRV9DTE9TSU5HKSByZXR1cm4gZmFsc2U7XG4gIHZhciBJVEVSQVRJT05fU1VQUE9SVCA9IGZhbHNlO1xuICB0cnkge1xuICAgIHZhciBvYmplY3QgPSB7fTtcbiAgICBvYmplY3RbSVRFUkFUT1JdID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmV4dDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiB7IGRvbmU6IElURVJBVElPTl9TVVBQT1JUID0gdHJ1ZSB9O1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH07XG4gICAgZXhlYyhvYmplY3QpO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIHJldHVybiBJVEVSQVRJT05fU1VQUE9SVDtcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJykuZjtcbnZhciBtYWNyb3Rhc2sgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdGFzaycpLnNldDtcbnZhciBJU19JT1MgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW5naW5lLWlzLWlvcycpO1xudmFyIElTX1dFQk9TX1dFQktJVCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtaXMtd2Vib3Mtd2Via2l0Jyk7XG52YXIgSVNfTk9ERSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtaXMtbm9kZScpO1xuXG52YXIgTXV0YXRpb25PYnNlcnZlciA9IGdsb2JhbC5NdXRhdGlvbk9ic2VydmVyIHx8IGdsb2JhbC5XZWJLaXRNdXRhdGlvbk9ic2VydmVyO1xudmFyIGRvY3VtZW50ID0gZ2xvYmFsLmRvY3VtZW50O1xudmFyIHByb2Nlc3MgPSBnbG9iYWwucHJvY2VzcztcbnZhciBQcm9taXNlID0gZ2xvYmFsLlByb21pc2U7XG4vLyBOb2RlLmpzIDExIHNob3dzIEV4cGVyaW1lbnRhbFdhcm5pbmcgb24gZ2V0dGluZyBgcXVldWVNaWNyb3Rhc2tgXG52YXIgcXVldWVNaWNyb3Rhc2tEZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ3F1ZXVlTWljcm90YXNrJyk7XG52YXIgcXVldWVNaWNyb3Rhc2sgPSBxdWV1ZU1pY3JvdGFza0Rlc2NyaXB0b3IgJiYgcXVldWVNaWNyb3Rhc2tEZXNjcmlwdG9yLnZhbHVlO1xuXG52YXIgZmx1c2gsIGhlYWQsIGxhc3QsIG5vdGlmeSwgdG9nZ2xlLCBub2RlLCBwcm9taXNlLCB0aGVuO1xuXG4vLyBtb2Rlcm4gZW5naW5lcyBoYXZlIHF1ZXVlTWljcm90YXNrIG1ldGhvZFxuaWYgKCFxdWV1ZU1pY3JvdGFzaykge1xuICBmbHVzaCA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcGFyZW50LCBmbjtcbiAgICBpZiAoSVNfTk9ERSAmJiAocGFyZW50ID0gcHJvY2Vzcy5kb21haW4pKSBwYXJlbnQuZXhpdCgpO1xuICAgIHdoaWxlIChoZWFkKSB7XG4gICAgICBmbiA9IGhlYWQuZm47XG4gICAgICBoZWFkID0gaGVhZC5uZXh0O1xuICAgICAgdHJ5IHtcbiAgICAgICAgZm4oKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChoZWFkKSBub3RpZnkoKTtcbiAgICAgICAgZWxzZSBsYXN0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9IGxhc3QgPSB1bmRlZmluZWQ7XG4gICAgaWYgKHBhcmVudCkgcGFyZW50LmVudGVyKCk7XG4gIH07XG5cbiAgLy8gYnJvd3NlcnMgd2l0aCBNdXRhdGlvbk9ic2VydmVyLCBleGNlcHQgaU9TIC0gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzMzOVxuICAvLyBhbHNvIGV4Y2VwdCBXZWJPUyBXZWJraXQgaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzg5OFxuICBpZiAoIUlTX0lPUyAmJiAhSVNfTk9ERSAmJiAhSVNfV0VCT1NfV0VCS0lUICYmIE11dGF0aW9uT2JzZXJ2ZXIgJiYgZG9jdW1lbnQpIHtcbiAgICB0b2dnbGUgPSB0cnVlO1xuICAgIG5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnJyk7XG4gICAgbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZmx1c2gpLm9ic2VydmUobm9kZSwgeyBjaGFyYWN0ZXJEYXRhOiB0cnVlIH0pO1xuICAgIG5vdGlmeSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIG5vZGUuZGF0YSA9IHRvZ2dsZSA9ICF0b2dnbGU7XG4gICAgfTtcbiAgLy8gZW52aXJvbm1lbnRzIHdpdGggbWF5YmUgbm9uLWNvbXBsZXRlbHkgY29ycmVjdCwgYnV0IGV4aXN0ZW50IFByb21pc2VcbiAgfSBlbHNlIGlmIChQcm9taXNlICYmIFByb21pc2UucmVzb2x2ZSkge1xuICAgIC8vIFByb21pc2UucmVzb2x2ZSB3aXRob3V0IGFuIGFyZ3VtZW50IHRocm93cyBhbiBlcnJvciBpbiBMRyBXZWJPUyAyXG4gICAgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpO1xuICAgIHRoZW4gPSBwcm9taXNlLnRoZW47XG4gICAgbm90aWZ5ID0gZnVuY3Rpb24gKCkge1xuICAgICAgdGhlbi5jYWxsKHByb21pc2UsIGZsdXNoKTtcbiAgICB9O1xuICAvLyBOb2RlLmpzIHdpdGhvdXQgcHJvbWlzZXNcbiAgfSBlbHNlIGlmIChJU19OT0RFKSB7XG4gICAgbm90aWZ5ID0gZnVuY3Rpb24gKCkge1xuICAgICAgcHJvY2Vzcy5uZXh0VGljayhmbHVzaCk7XG4gICAgfTtcbiAgLy8gZm9yIG90aGVyIGVudmlyb25tZW50cyAtIG1hY3JvdGFzayBiYXNlZCBvbjpcbiAgLy8gLSBzZXRJbW1lZGlhdGVcbiAgLy8gLSBNZXNzYWdlQ2hhbm5lbFxuICAvLyAtIHdpbmRvdy5wb3N0TWVzc2FnXG4gIC8vIC0gb25yZWFkeXN0YXRlY2hhbmdlXG4gIC8vIC0gc2V0VGltZW91dFxuICB9IGVsc2Uge1xuICAgIG5vdGlmeSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIHN0cmFuZ2UgSUUgKyB3ZWJwYWNrIGRldiBzZXJ2ZXIgYnVnIC0gdXNlIC5jYWxsKGdsb2JhbClcbiAgICAgIG1hY3JvdGFzay5jYWxsKGdsb2JhbCwgZmx1c2gpO1xuICAgIH07XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBxdWV1ZU1pY3JvdGFzayB8fCBmdW5jdGlvbiAoZm4pIHtcbiAgdmFyIHRhc2sgPSB7IGZuOiBmbiwgbmV4dDogdW5kZWZpbmVkIH07XG4gIGlmIChsYXN0KSBsYXN0Lm5leHQgPSB0YXNrO1xuICBpZiAoIWhlYWQpIHtcbiAgICBoZWFkID0gdGFzaztcbiAgICBub3RpZnkoKTtcbiAgfSBsYXN0ID0gdGFzaztcbn07XG4iLCJ2YXIgdXNlckFnZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VuZ2luZS11c2VyLWFnZW50Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gL3dlYjBzKD8hLipjaHJvbWUpL2kudGVzdCh1c2VyQWdlbnQpO1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYSwgYikge1xuICB2YXIgY29uc29sZSA9IGdsb2JhbC5jb25zb2xlO1xuICBpZiAoY29uc29sZSAmJiBjb25zb2xlLmVycm9yKSB7XG4gICAgYXJndW1lbnRzLmxlbmd0aCA9PT0gMSA/IGNvbnNvbGUuZXJyb3IoYSkgOiBjb25zb2xlLmVycm9yKGEsIGIpO1xuICB9XG59O1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBpbnNwZWN0U291cmNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luc3BlY3Qtc291cmNlJyk7XG5cbnZhciBXZWFrTWFwID0gZ2xvYmFsLldlYWtNYXA7XG5cbm1vZHVsZS5leHBvcnRzID0gdHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgJiYgL25hdGl2ZSBjb2RlLy50ZXN0KGluc3BlY3RTb3VyY2UoV2Vha01hcCkpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtZnVuY3Rpb24nKTtcbnZhciBuZXdQcm9taXNlQ2FwYWJpbGl0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9uZXctcHJvbWlzZS1jYXBhYmlsaXR5Jyk7XG52YXIgcGVyZm9ybSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9wZXJmb3JtJyk7XG52YXIgaXRlcmF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRlJyk7XG5cbi8vIGBQcm9taXNlLmFsbFNldHRsZWRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1wcm9taXNlLmFsbHNldHRsZWRcbiQoeyB0YXJnZXQ6ICdQcm9taXNlJywgc3RhdDogdHJ1ZSB9LCB7XG4gIGFsbFNldHRsZWQ6IGZ1bmN0aW9uIGFsbFNldHRsZWQoaXRlcmFibGUpIHtcbiAgICB2YXIgQyA9IHRoaXM7XG4gICAgdmFyIGNhcGFiaWxpdHkgPSBuZXdQcm9taXNlQ2FwYWJpbGl0eU1vZHVsZS5mKEMpO1xuICAgIHZhciByZXNvbHZlID0gY2FwYWJpbGl0eS5yZXNvbHZlO1xuICAgIHZhciByZWplY3QgPSBjYXBhYmlsaXR5LnJlamVjdDtcbiAgICB2YXIgcmVzdWx0ID0gcGVyZm9ybShmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgcHJvbWlzZVJlc29sdmUgPSBhRnVuY3Rpb24oQy5yZXNvbHZlKTtcbiAgICAgIHZhciB2YWx1ZXMgPSBbXTtcbiAgICAgIHZhciBjb3VudGVyID0gMDtcbiAgICAgIHZhciByZW1haW5pbmcgPSAxO1xuICAgICAgaXRlcmF0ZShpdGVyYWJsZSwgZnVuY3Rpb24gKHByb21pc2UpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gY291bnRlcisrO1xuICAgICAgICB2YXIgYWxyZWFkeUNhbGxlZCA9IGZhbHNlO1xuICAgICAgICB2YWx1ZXMucHVzaCh1bmRlZmluZWQpO1xuICAgICAgICByZW1haW5pbmcrKztcbiAgICAgICAgcHJvbWlzZVJlc29sdmUuY2FsbChDLCBwcm9taXNlKS50aGVuKGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgIGlmIChhbHJlYWR5Q2FsbGVkKSByZXR1cm47XG4gICAgICAgICAgYWxyZWFkeUNhbGxlZCA9IHRydWU7XG4gICAgICAgICAgdmFsdWVzW2luZGV4XSA9IHsgc3RhdHVzOiAnZnVsZmlsbGVkJywgdmFsdWU6IHZhbHVlIH07XG4gICAgICAgICAgLS1yZW1haW5pbmcgfHwgcmVzb2x2ZSh2YWx1ZXMpO1xuICAgICAgICB9LCBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICBpZiAoYWxyZWFkeUNhbGxlZCkgcmV0dXJuO1xuICAgICAgICAgIGFscmVhZHlDYWxsZWQgPSB0cnVlO1xuICAgICAgICAgIHZhbHVlc1tpbmRleF0gPSB7IHN0YXR1czogJ3JlamVjdGVkJywgcmVhc29uOiBlcnJvciB9O1xuICAgICAgICAgIC0tcmVtYWluaW5nIHx8IHJlc29sdmUodmFsdWVzKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIC0tcmVtYWluaW5nIHx8IHJlc29sdmUodmFsdWVzKTtcbiAgICB9KTtcbiAgICBpZiAocmVzdWx0LmVycm9yKSByZWplY3QocmVzdWx0LnZhbHVlKTtcbiAgICByZXR1cm4gY2FwYWJpbGl0eS5wcm9taXNlO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWZ1bmN0aW9uJyk7XG52YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcbnZhciBuZXdQcm9taXNlQ2FwYWJpbGl0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9uZXctcHJvbWlzZS1jYXBhYmlsaXR5Jyk7XG52YXIgcGVyZm9ybSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9wZXJmb3JtJyk7XG52YXIgaXRlcmF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRlJyk7XG5cbnZhciBQUk9NSVNFX0FOWV9FUlJPUiA9ICdObyBvbmUgcHJvbWlzZSByZXNvbHZlZCc7XG5cbi8vIGBQcm9taXNlLmFueWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXByb21pc2UuYW55XG4kKHsgdGFyZ2V0OiAnUHJvbWlzZScsIHN0YXQ6IHRydWUgfSwge1xuICBhbnk6IGZ1bmN0aW9uIGFueShpdGVyYWJsZSkge1xuICAgIHZhciBDID0gdGhpcztcbiAgICB2YXIgY2FwYWJpbGl0eSA9IG5ld1Byb21pc2VDYXBhYmlsaXR5TW9kdWxlLmYoQyk7XG4gICAgdmFyIHJlc29sdmUgPSBjYXBhYmlsaXR5LnJlc29sdmU7XG4gICAgdmFyIHJlamVjdCA9IGNhcGFiaWxpdHkucmVqZWN0O1xuICAgIHZhciByZXN1bHQgPSBwZXJmb3JtKGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBwcm9taXNlUmVzb2x2ZSA9IGFGdW5jdGlvbihDLnJlc29sdmUpO1xuICAgICAgdmFyIGVycm9ycyA9IFtdO1xuICAgICAgdmFyIGNvdW50ZXIgPSAwO1xuICAgICAgdmFyIHJlbWFpbmluZyA9IDE7XG4gICAgICB2YXIgYWxyZWFkeVJlc29sdmVkID0gZmFsc2U7XG4gICAgICBpdGVyYXRlKGl0ZXJhYmxlLCBmdW5jdGlvbiAocHJvbWlzZSkge1xuICAgICAgICB2YXIgaW5kZXggPSBjb3VudGVyKys7XG4gICAgICAgIHZhciBhbHJlYWR5UmVqZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgZXJyb3JzLnB1c2godW5kZWZpbmVkKTtcbiAgICAgICAgcmVtYWluaW5nKys7XG4gICAgICAgIHByb21pc2VSZXNvbHZlLmNhbGwoQywgcHJvbWlzZSkudGhlbihmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICBpZiAoYWxyZWFkeVJlamVjdGVkIHx8IGFscmVhZHlSZXNvbHZlZCkgcmV0dXJuO1xuICAgICAgICAgIGFscmVhZHlSZXNvbHZlZCA9IHRydWU7XG4gICAgICAgICAgcmVzb2x2ZSh2YWx1ZSk7XG4gICAgICAgIH0sIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgIGlmIChhbHJlYWR5UmVqZWN0ZWQgfHwgYWxyZWFkeVJlc29sdmVkKSByZXR1cm47XG4gICAgICAgICAgYWxyZWFkeVJlamVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICBlcnJvcnNbaW5kZXhdID0gZXJyb3I7XG4gICAgICAgICAgLS1yZW1haW5pbmcgfHwgcmVqZWN0KG5ldyAoZ2V0QnVpbHRJbignQWdncmVnYXRlRXJyb3InKSkoZXJyb3JzLCBQUk9NSVNFX0FOWV9FUlJPUikpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgLS1yZW1haW5pbmcgfHwgcmVqZWN0KG5ldyAoZ2V0QnVpbHRJbignQWdncmVnYXRlRXJyb3InKSkoZXJyb3JzLCBQUk9NSVNFX0FOWV9FUlJPUikpO1xuICAgIH0pO1xuICAgIGlmIChyZXN1bHQuZXJyb3IpIHJlamVjdChyZXN1bHQudmFsdWUpO1xuICAgIHJldHVybiBjYXBhYmlsaXR5LnByb21pc2U7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgTmF0aXZlUHJvbWlzZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9uYXRpdmUtcHJvbWlzZS1jb25zdHJ1Y3RvcicpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcbnZhciBzcGVjaWVzQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3BlY2llcy1jb25zdHJ1Y3RvcicpO1xudmFyIHByb21pc2VSZXNvbHZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3Byb21pc2UtcmVzb2x2ZScpO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZGVmaW5lJyk7XG5cbi8vIFNhZmFyaSBidWcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDgyOVxudmFyIE5PTl9HRU5FUklDID0gISFOYXRpdmVQcm9taXNlICYmIGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgTmF0aXZlUHJvbWlzZS5wcm90b3R5cGVbJ2ZpbmFsbHknXS5jYWxsKHsgdGhlbjogZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9IH0sIGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfSk7XG59KTtcblxuLy8gYFByb21pc2UucHJvdG90eXBlLmZpbmFsbHlgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1wcm9taXNlLnByb3RvdHlwZS5maW5hbGx5XG4kKHsgdGFyZ2V0OiAnUHJvbWlzZScsIHByb3RvOiB0cnVlLCByZWFsOiB0cnVlLCBmb3JjZWQ6IE5PTl9HRU5FUklDIH0sIHtcbiAgJ2ZpbmFsbHknOiBmdW5jdGlvbiAob25GaW5hbGx5KSB7XG4gICAgdmFyIEMgPSBzcGVjaWVzQ29uc3RydWN0b3IodGhpcywgZ2V0QnVpbHRJbignUHJvbWlzZScpKTtcbiAgICB2YXIgaXNGdW5jdGlvbiA9IHR5cGVvZiBvbkZpbmFsbHkgPT0gJ2Z1bmN0aW9uJztcbiAgICByZXR1cm4gdGhpcy50aGVuKFxuICAgICAgaXNGdW5jdGlvbiA/IGZ1bmN0aW9uICh4KSB7XG4gICAgICAgIHJldHVybiBwcm9taXNlUmVzb2x2ZShDLCBvbkZpbmFsbHkoKSkudGhlbihmdW5jdGlvbiAoKSB7IHJldHVybiB4OyB9KTtcbiAgICAgIH0gOiBvbkZpbmFsbHksXG4gICAgICBpc0Z1bmN0aW9uID8gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgcmV0dXJuIHByb21pc2VSZXNvbHZlKEMsIG9uRmluYWxseSgpKS50aGVuKGZ1bmN0aW9uICgpIHsgdGhyb3cgZTsgfSk7XG4gICAgICB9IDogb25GaW5hbGx5XG4gICAgKTtcbiAgfVxufSk7XG5cbi8vIHBhdGNoIG5hdGl2ZSBQcm9taXNlLnByb3RvdHlwZSBmb3IgbmF0aXZlIGFzeW5jIGZ1bmN0aW9uc1xuaWYgKCFJU19QVVJFICYmIHR5cGVvZiBOYXRpdmVQcm9taXNlID09ICdmdW5jdGlvbicgJiYgIU5hdGl2ZVByb21pc2UucHJvdG90eXBlWydmaW5hbGx5J10pIHtcbiAgcmVkZWZpbmUoTmF0aXZlUHJvbWlzZS5wcm90b3R5cGUsICdmaW5hbGx5JywgZ2V0QnVpbHRJbignUHJvbWlzZScpLnByb3RvdHlwZVsnZmluYWxseSddKTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjaGFyQXQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLW11bHRpYnl0ZScpLmNoYXJBdDtcbnZhciBJbnRlcm5hbFN0YXRlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJyk7XG52YXIgZGVmaW5lSXRlcmF0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWl0ZXJhdG9yJyk7XG5cbnZhciBTVFJJTkdfSVRFUkFUT1IgPSAnU3RyaW5nIEl0ZXJhdG9yJztcbnZhciBzZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5zZXQ7XG52YXIgZ2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZ2V0dGVyRm9yKFNUUklOR19JVEVSQVRPUik7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlW0BAaXRlcmF0b3JdYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS1AQGl0ZXJhdG9yXG5kZWZpbmVJdGVyYXRvcihTdHJpbmcsICdTdHJpbmcnLCBmdW5jdGlvbiAoaXRlcmF0ZWQpIHtcbiAgc2V0SW50ZXJuYWxTdGF0ZSh0aGlzLCB7XG4gICAgdHlwZTogU1RSSU5HX0lURVJBVE9SLFxuICAgIHN0cmluZzogU3RyaW5nKGl0ZXJhdGVkKSxcbiAgICBpbmRleDogMFxuICB9KTtcbi8vIGAlU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUlLm5leHRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0lc3RyaW5naXRlcmF0b3Jwcm90b3R5cGUlLm5leHRcbn0sIGZ1bmN0aW9uIG5leHQoKSB7XG4gIHZhciBzdGF0ZSA9IGdldEludGVybmFsU3RhdGUodGhpcyk7XG4gIHZhciBzdHJpbmcgPSBzdGF0ZS5zdHJpbmc7XG4gIHZhciBpbmRleCA9IHN0YXRlLmluZGV4O1xuICB2YXIgcG9pbnQ7XG4gIGlmIChpbmRleCA+PSBzdHJpbmcubGVuZ3RoKSByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIHBvaW50ID0gY2hhckF0KHN0cmluZywgaW5kZXgpO1xuICBzdGF0ZS5pbmRleCArPSBwb2ludC5sZW5ndGg7XG4gIHJldHVybiB7IHZhbHVlOiBwb2ludCwgZG9uZTogZmFsc2UgfTtcbn0pO1xuIiwidmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbnRlZ2VyJyk7XG52YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcblxuLy8gYFN0cmluZy5wcm90b3R5cGUueyBjb2RlUG9pbnRBdCwgYXQgfWAgbWV0aG9kcyBpbXBsZW1lbnRhdGlvblxudmFyIGNyZWF0ZU1ldGhvZCA9IGZ1bmN0aW9uIChDT05WRVJUX1RPX1NUUklORykge1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBwb3MpIHtcbiAgICB2YXIgUyA9IFN0cmluZyhyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKCR0aGlzKSk7XG4gICAgdmFyIHBvc2l0aW9uID0gdG9JbnRlZ2VyKHBvcyk7XG4gICAgdmFyIHNpemUgPSBTLmxlbmd0aDtcbiAgICB2YXIgZmlyc3QsIHNlY29uZDtcbiAgICBpZiAocG9zaXRpb24gPCAwIHx8IHBvc2l0aW9uID49IHNpemUpIHJldHVybiBDT05WRVJUX1RPX1NUUklORyA/ICcnIDogdW5kZWZpbmVkO1xuICAgIGZpcnN0ID0gUy5jaGFyQ29kZUF0KHBvc2l0aW9uKTtcbiAgICByZXR1cm4gZmlyc3QgPCAweEQ4MDAgfHwgZmlyc3QgPiAweERCRkYgfHwgcG9zaXRpb24gKyAxID09PSBzaXplXG4gICAgICB8fCAoc2Vjb25kID0gUy5jaGFyQ29kZUF0KHBvc2l0aW9uICsgMSkpIDwgMHhEQzAwIHx8IHNlY29uZCA+IDB4REZGRlxuICAgICAgICA/IENPTlZFUlRfVE9fU1RSSU5HID8gUy5jaGFyQXQocG9zaXRpb24pIDogZmlyc3RcbiAgICAgICAgOiBDT05WRVJUX1RPX1NUUklORyA/IFMuc2xpY2UocG9zaXRpb24sIHBvc2l0aW9uICsgMikgOiAoZmlyc3QgLSAweEQ4MDAgPDwgMTApICsgKHNlY29uZCAtIDB4REMwMCkgKyAweDEwMDAwO1xuICB9O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIC8vIGBTdHJpbmcucHJvdG90eXBlLmNvZGVQb2ludEF0YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLmNvZGVwb2ludGF0XG4gIGNvZGVBdDogY3JlYXRlTWV0aG9kKGZhbHNlKSxcbiAgLy8gYFN0cmluZy5wcm90b3R5cGUuYXRgIG1ldGhvZFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWF0aGlhc2J5bmVucy9TdHJpbmcucHJvdG90eXBlLmF0XG4gIGNoYXJBdDogY3JlYXRlTWV0aG9kKHRydWUpXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEl0ZXJhdG9yUHJvdG90eXBlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdG9ycy1jb3JlJykuSXRlcmF0b3JQcm90b3R5cGU7XG52YXIgY3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1jcmVhdGUnKTtcbnZhciBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtdG8tc3RyaW5nLXRhZycpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMnKTtcblxudmFyIHJldHVyblRoaXMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChJdGVyYXRvckNvbnN0cnVjdG9yLCBOQU1FLCBuZXh0KSB7XG4gIHZhciBUT19TVFJJTkdfVEFHID0gTkFNRSArICcgSXRlcmF0b3InO1xuICBJdGVyYXRvckNvbnN0cnVjdG9yLnByb3RvdHlwZSA9IGNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSwgeyBuZXh0OiBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoMSwgbmV4dCkgfSk7XG4gIHNldFRvU3RyaW5nVGFnKEl0ZXJhdG9yQ29uc3RydWN0b3IsIFRPX1NUUklOR19UQUcsIGZhbHNlLCB0cnVlKTtcbiAgSXRlcmF0b3JzW1RPX1NUUklOR19UQUddID0gcmV0dXJuVGhpcztcbiAgcmV0dXJuIEl0ZXJhdG9yQ29uc3RydWN0b3I7XG59O1xuIiwiLy8gaXRlcmFibGUgRE9NIGNvbGxlY3Rpb25zXG4vLyBmbGFnIC0gYGl0ZXJhYmxlYCBpbnRlcmZhY2UgLSAnZW50cmllcycsICdrZXlzJywgJ3ZhbHVlcycsICdmb3JFYWNoJyBtZXRob2RzXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgQ1NTUnVsZUxpc3Q6IDAsXG4gIENTU1N0eWxlRGVjbGFyYXRpb246IDAsXG4gIENTU1ZhbHVlTGlzdDogMCxcbiAgQ2xpZW50UmVjdExpc3Q6IDAsXG4gIERPTVJlY3RMaXN0OiAwLFxuICBET01TdHJpbmdMaXN0OiAwLFxuICBET01Ub2tlbkxpc3Q6IDEsXG4gIERhdGFUcmFuc2Zlckl0ZW1MaXN0OiAwLFxuICBGaWxlTGlzdDogMCxcbiAgSFRNTEFsbENvbGxlY3Rpb246IDAsXG4gIEhUTUxDb2xsZWN0aW9uOiAwLFxuICBIVE1MRm9ybUVsZW1lbnQ6IDAsXG4gIEhUTUxTZWxlY3RFbGVtZW50OiAwLFxuICBNZWRpYUxpc3Q6IDAsXG4gIE1pbWVUeXBlQXJyYXk6IDAsXG4gIE5hbWVkTm9kZU1hcDogMCxcbiAgTm9kZUxpc3Q6IDEsXG4gIFBhaW50UmVxdWVzdExpc3Q6IDAsXG4gIFBsdWdpbjogMCxcbiAgUGx1Z2luQXJyYXk6IDAsXG4gIFNWR0xlbmd0aExpc3Q6IDAsXG4gIFNWR051bWJlckxpc3Q6IDAsXG4gIFNWR1BhdGhTZWdMaXN0OiAwLFxuICBTVkdQb2ludExpc3Q6IDAsXG4gIFNWR1N0cmluZ0xpc3Q6IDAsXG4gIFNWR1RyYW5zZm9ybUxpc3Q6IDAsXG4gIFNvdXJjZUJ1ZmZlckxpc3Q6IDAsXG4gIFN0eWxlU2hlZXRMaXN0OiAwLFxuICBUZXh0VHJhY2tDdWVMaXN0OiAwLFxuICBUZXh0VHJhY2tMaXN0OiAwLFxuICBUb3VjaExpc3Q6IDBcbn07XG4iLCJ2YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG5cbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG52YXIgcmVwbGFjZSA9ICcnLnJlcGxhY2U7XG52YXIgU1VCU1RJVFVUSU9OX1NZTUJPTFMgPSAvXFwkKFskJidgXXxcXGR7MSwyfXw8W14+XSo+KS9nO1xudmFyIFNVQlNUSVRVVElPTl9TWU1CT0xTX05PX05BTUVEID0gL1xcJChbJCYnYF18XFxkezEsMn0pL2c7XG5cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtZ2V0c3Vic3RpdHV0aW9uXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChtYXRjaGVkLCBzdHIsIHBvc2l0aW9uLCBjYXB0dXJlcywgbmFtZWRDYXB0dXJlcywgcmVwbGFjZW1lbnQpIHtcbiAgdmFyIHRhaWxQb3MgPSBwb3NpdGlvbiArIG1hdGNoZWQubGVuZ3RoO1xuICB2YXIgbSA9IGNhcHR1cmVzLmxlbmd0aDtcbiAgdmFyIHN5bWJvbHMgPSBTVUJTVElUVVRJT05fU1lNQk9MU19OT19OQU1FRDtcbiAgaWYgKG5hbWVkQ2FwdHVyZXMgIT09IHVuZGVmaW5lZCkge1xuICAgIG5hbWVkQ2FwdHVyZXMgPSB0b09iamVjdChuYW1lZENhcHR1cmVzKTtcbiAgICBzeW1ib2xzID0gU1VCU1RJVFVUSU9OX1NZTUJPTFM7XG4gIH1cbiAgcmV0dXJuIHJlcGxhY2UuY2FsbChyZXBsYWNlbWVudCwgc3ltYm9scywgZnVuY3Rpb24gKG1hdGNoLCBjaCkge1xuICAgIHZhciBjYXB0dXJlO1xuICAgIHN3aXRjaCAoY2guY2hhckF0KDApKSB7XG4gICAgICBjYXNlICckJzogcmV0dXJuICckJztcbiAgICAgIGNhc2UgJyYnOiByZXR1cm4gbWF0Y2hlZDtcbiAgICAgIGNhc2UgJ2AnOiByZXR1cm4gc3RyLnNsaWNlKDAsIHBvc2l0aW9uKTtcbiAgICAgIGNhc2UgXCInXCI6IHJldHVybiBzdHIuc2xpY2UodGFpbFBvcyk7XG4gICAgICBjYXNlICc8JzpcbiAgICAgICAgY2FwdHVyZSA9IG5hbWVkQ2FwdHVyZXNbY2guc2xpY2UoMSwgLTEpXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OiAvLyBcXGRcXGQ/XG4gICAgICAgIHZhciBuID0gK2NoO1xuICAgICAgICBpZiAobiA9PT0gMCkgcmV0dXJuIG1hdGNoO1xuICAgICAgICBpZiAobiA+IG0pIHtcbiAgICAgICAgICB2YXIgZiA9IGZsb29yKG4gLyAxMCk7XG4gICAgICAgICAgaWYgKGYgPT09IDApIHJldHVybiBtYXRjaDtcbiAgICAgICAgICBpZiAoZiA8PSBtKSByZXR1cm4gY2FwdHVyZXNbZiAtIDFdID09PSB1bmRlZmluZWQgPyBjaC5jaGFyQXQoMSkgOiBjYXB0dXJlc1tmIC0gMV0gKyBjaC5jaGFyQXQoMSk7XG4gICAgICAgICAgcmV0dXJuIG1hdGNoO1xuICAgICAgICB9XG4gICAgICAgIGNhcHR1cmUgPSBjYXB0dXJlc1tuIC0gMV07XG4gICAgfVxuICAgIHJldHVybiBjYXB0dXJlID09PSB1bmRlZmluZWQgPyAnJyA6IGNhcHR1cmU7XG4gIH0pO1xufTtcbiIsInJlcXVpcmUoJy4uL21vZHVsZXMvd2ViLnRpbWVycycpO1xudmFyIHBhdGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcGF0aCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhdGguc2V0SW50ZXJ2YWw7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTUVUSE9EX05BTUUsIGFyZ3VtZW50KSB7XG4gIHZhciBtZXRob2QgPSBbXVtNRVRIT0RfTkFNRV07XG4gIHJldHVybiAhIW1ldGhvZCAmJiBmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY2FsbCxuby10aHJvdy1saXRlcmFsIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gICAgbWV0aG9kLmNhbGwobnVsbCwgYXJndW1lbnQgfHwgZnVuY3Rpb24gKCkgeyB0aHJvdyAxOyB9LCAxKTtcbiAgfSk7XG59O1xuIiwiLy8gYSBzdHJpbmcgb2YgYWxsIHZhbGlkIHVuaWNvZGUgd2hpdGVzcGFjZXNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG5tb2R1bGUuZXhwb3J0cyA9ICdcXHUwMDA5XFx1MDAwQVxcdTAwMEJcXHUwMDBDXFx1MDAwRFxcdTAwMjBcXHUwMEEwXFx1MTY4MFxcdTIwMDBcXHUyMDAxXFx1MjAwMlxcdTIwMDNcXHUyMDA0XFx1MjAwNVxcdTIwMDZcXHUyMDA3XFx1MjAwOFxcdTIwMDlcXHUyMDBBXFx1MjAyRlxcdTIwNUZcXHUzMDAwXFx1MjAyOFxcdTIwMjlcXHVGRUZGJztcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWFycmF5Jyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBTUEVDSUVTID0gd2VsbEtub3duU3ltYm9sKCdzcGVjaWVzJyk7XG5cbi8vIGBBcnJheVNwZWNpZXNDcmVhdGVgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheXNwZWNpZXNjcmVhdGVcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9yaWdpbmFsQXJyYXksIGxlbmd0aCkge1xuICB2YXIgQztcbiAgaWYgKGlzQXJyYXkob3JpZ2luYWxBcnJheSkpIHtcbiAgICBDID0gb3JpZ2luYWxBcnJheS5jb25zdHJ1Y3RvcjtcbiAgICAvLyBjcm9zcy1yZWFsbSBmYWxsYmFja1xuICAgIGlmICh0eXBlb2YgQyA9PSAnZnVuY3Rpb24nICYmIChDID09PSBBcnJheSB8fCBpc0FycmF5KEMucHJvdG90eXBlKSkpIEMgPSB1bmRlZmluZWQ7XG4gICAgZWxzZSBpZiAoaXNPYmplY3QoQykpIHtcbiAgICAgIEMgPSBDW1NQRUNJRVNdO1xuICAgICAgaWYgKEMgPT09IG51bGwpIEMgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9IHJldHVybiBuZXcgKEMgPT09IHVuZGVmaW5lZCA/IEFycmF5IDogQykobGVuZ3RoID09PSAwID8gMCA6IGxlbmd0aCk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXByaW1pdGl2ZScpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcbnZhciBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIHZhciBwcm9wZXJ0eUtleSA9IHRvUHJpbWl0aXZlKGtleSk7XG4gIGlmIChwcm9wZXJ0eUtleSBpbiBvYmplY3QpIGRlZmluZVByb3BlcnR5TW9kdWxlLmYob2JqZWN0LCBwcm9wZXJ0eUtleSwgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDAsIHZhbHVlKSk7XG4gIGVsc2Ugb2JqZWN0W3Byb3BlcnR5S2V5XSA9IHZhbHVlO1xufTtcbiIsInZhciByZWR1Y2UgPSByZXF1aXJlKCcuLi9hcnJheS92aXJ0dWFsL3JlZHVjZScpO1xuXG52YXIgQXJyYXlQcm90b3R5cGUgPSBBcnJheS5wcm90b3R5cGU7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBvd24gPSBpdC5yZWR1Y2U7XG4gIHJldHVybiBpdCA9PT0gQXJyYXlQcm90b3R5cGUgfHwgKGl0IGluc3RhbmNlb2YgQXJyYXkgJiYgb3duID09PSBBcnJheVByb3RvdHlwZS5yZWR1Y2UpID8gcmVkdWNlIDogb3duO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChNRVRIT0RfTkFNRSwgYXJndW1lbnQpIHtcbiAgdmFyIG1ldGhvZCA9IFtdW01FVEhPRF9OQU1FXTtcbiAgcmV0dXJuICEhbWV0aG9kICYmIGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1jYWxsLG5vLXRocm93LWxpdGVyYWxcbiAgICBtZXRob2QuY2FsbChudWxsLCBhcmd1bWVudCB8fCBmdW5jdGlvbiAoKSB7IHRocm93IDE7IH0sIDEpO1xuICB9KTtcbn07XG4iLCJ2YXIgYmluZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLWNvbnRleHQnKTtcbnZhciBJbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luZGV4ZWQtb2JqZWN0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG52YXIgYXJyYXlTcGVjaWVzQ3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXNwZWNpZXMtY3JlYXRlJyk7XG5cbnZhciBwdXNoID0gW10ucHVzaDtcblxuLy8gYEFycmF5LnByb3RvdHlwZS57IGZvckVhY2gsIG1hcCwgZmlsdGVyLCBzb21lLCBldmVyeSwgZmluZCwgZmluZEluZGV4LCBmaWx0ZXJPdXQgfWAgbWV0aG9kcyBpbXBsZW1lbnRhdGlvblxudmFyIGNyZWF0ZU1ldGhvZCA9IGZ1bmN0aW9uIChUWVBFKSB7XG4gIHZhciBJU19NQVAgPSBUWVBFID09IDE7XG4gIHZhciBJU19GSUxURVIgPSBUWVBFID09IDI7XG4gIHZhciBJU19TT01FID0gVFlQRSA9PSAzO1xuICB2YXIgSVNfRVZFUlkgPSBUWVBFID09IDQ7XG4gIHZhciBJU19GSU5EX0lOREVYID0gVFlQRSA9PSA2O1xuICB2YXIgSVNfRklMVEVSX09VVCA9IFRZUEUgPT0gNztcbiAgdmFyIE5PX0hPTEVTID0gVFlQRSA9PSA1IHx8IElTX0ZJTkRfSU5ERVg7XG4gIHJldHVybiBmdW5jdGlvbiAoJHRoaXMsIGNhbGxiYWNrZm4sIHRoYXQsIHNwZWNpZmljQ3JlYXRlKSB7XG4gICAgdmFyIE8gPSB0b09iamVjdCgkdGhpcyk7XG4gICAgdmFyIHNlbGYgPSBJbmRleGVkT2JqZWN0KE8pO1xuICAgIHZhciBib3VuZEZ1bmN0aW9uID0gYmluZChjYWxsYmFja2ZuLCB0aGF0LCAzKTtcbiAgICB2YXIgbGVuZ3RoID0gdG9MZW5ndGgoc2VsZi5sZW5ndGgpO1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgdmFyIGNyZWF0ZSA9IHNwZWNpZmljQ3JlYXRlIHx8IGFycmF5U3BlY2llc0NyZWF0ZTtcbiAgICB2YXIgdGFyZ2V0ID0gSVNfTUFQID8gY3JlYXRlKCR0aGlzLCBsZW5ndGgpIDogSVNfRklMVEVSIHx8IElTX0ZJTFRFUl9PVVQgPyBjcmVhdGUoJHRoaXMsIDApIDogdW5kZWZpbmVkO1xuICAgIHZhciB2YWx1ZSwgcmVzdWx0O1xuICAgIGZvciAoO2xlbmd0aCA+IGluZGV4OyBpbmRleCsrKSBpZiAoTk9fSE9MRVMgfHwgaW5kZXggaW4gc2VsZikge1xuICAgICAgdmFsdWUgPSBzZWxmW2luZGV4XTtcbiAgICAgIHJlc3VsdCA9IGJvdW5kRnVuY3Rpb24odmFsdWUsIGluZGV4LCBPKTtcbiAgICAgIGlmIChUWVBFKSB7XG4gICAgICAgIGlmIChJU19NQVApIHRhcmdldFtpbmRleF0gPSByZXN1bHQ7IC8vIG1hcFxuICAgICAgICBlbHNlIGlmIChyZXN1bHQpIHN3aXRjaCAoVFlQRSkge1xuICAgICAgICAgIGNhc2UgMzogcmV0dXJuIHRydWU7ICAgICAgICAgICAgICAvLyBzb21lXG4gICAgICAgICAgY2FzZSA1OiByZXR1cm4gdmFsdWU7ICAgICAgICAgICAgIC8vIGZpbmRcbiAgICAgICAgICBjYXNlIDY6IHJldHVybiBpbmRleDsgICAgICAgICAgICAgLy8gZmluZEluZGV4XG4gICAgICAgICAgY2FzZSAyOiBwdXNoLmNhbGwodGFyZ2V0LCB2YWx1ZSk7IC8vIGZpbHRlclxuICAgICAgICB9IGVsc2Ugc3dpdGNoIChUWVBFKSB7XG4gICAgICAgICAgY2FzZSA0OiByZXR1cm4gZmFsc2U7ICAgICAgICAgICAgIC8vIGV2ZXJ5XG4gICAgICAgICAgY2FzZSA3OiBwdXNoLmNhbGwodGFyZ2V0LCB2YWx1ZSk7IC8vIGZpbHRlck91dFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBJU19GSU5EX0lOREVYID8gLTEgOiBJU19TT01FIHx8IElTX0VWRVJZID8gSVNfRVZFUlkgOiB0YXJnZXQ7XG4gIH07XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5mb3JFYWNoYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZm9yZWFjaFxuICBmb3JFYWNoOiBjcmVhdGVNZXRob2QoMCksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUubWFwYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUubWFwXG4gIG1hcDogY3JlYXRlTWV0aG9kKDEpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmZpbHRlcmAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZpbHRlclxuICBmaWx0ZXI6IGNyZWF0ZU1ldGhvZCgyKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5zb21lYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuc29tZVxuICBzb21lOiBjcmVhdGVNZXRob2QoMyksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZXZlcnlgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5ldmVyeVxuICBldmVyeTogY3JlYXRlTWV0aG9kKDQpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmZpbmRgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5maW5kXG4gIGZpbmQ6IGNyZWF0ZU1ldGhvZCg1KSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5maW5kSW5kZXhgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5maW5kSW5kZXhcbiAgZmluZEluZGV4OiBjcmVhdGVNZXRob2QoNiksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZmlsdGVyT3V0YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtYXJyYXktZmlsdGVyaW5nXG4gIGZpbHRlck91dDogY3JlYXRlTWV0aG9kKDcpXG59O1xuIiwiaW1wb3J0IF8gZnJvbSAnXyc7XG5pbXBvcnQga28gZnJvbSAna28nO1xuXG5pbXBvcnQgeyBjb252ZXJ0TGFuZ05hbWUgfSBmcm9tICdDb21tb24vVXRpbHMnO1xuXG4vLyBpbXBvcnQge3ZpZXcsIFZpZXdUeXBlfSBmcm9tICdLbm9pbi9Lbm9pbic7XG5pbXBvcnQgeyBwb3B1cCB9IGZyb20gJ0tub2luL0tub2luJztcbmltcG9ydCB7IEFic3RyYWN0Vmlld05leHQgfSBmcm9tICdLbm9pbi9BYnN0cmFjdFZpZXdOZXh0JztcblxuQHBvcHVwKHtcblx0bmFtZTogJ1ZpZXcvUG9wdXAvTGFuZ3VhZ2VzJyxcblx0dGVtcGxhdGVJRDogJ1BvcHVwc0xhbmd1YWdlcydcbn0pXG5jbGFzcyBMYW5ndWFnZXNQb3B1cFZpZXcgZXh0ZW5kcyBBYnN0cmFjdFZpZXdOZXh0IHtcblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblxuXHRcdHRoaXMuZkxhbmcgPSBudWxsO1xuXHRcdHRoaXMudXNlckxhbmd1YWdlID0ga28ub2JzZXJ2YWJsZSgnJyk7XG5cblx0XHR0aGlzLmxhbmdzID0ga28ub2JzZXJ2YWJsZUFycmF5KFtdKTtcblxuXHRcdHRoaXMubGFuZ3VhZ2VzID0ga28uY29tcHV0ZWQoKCkgPT4ge1xuXHRcdFx0Y29uc3QgdXNlckxhbmd1YWdlID0gdGhpcy51c2VyTGFuZ3VhZ2UoKTtcblx0XHRcdHJldHVybiBfLm1hcCh0aGlzLmxhbmdzKCksIChsYW5ndWFnZSkgPT4gKHtcblx0XHRcdFx0a2V5OiBsYW5ndWFnZSxcblx0XHRcdFx0dXNlcjogbGFuZ3VhZ2UgPT09IHVzZXJMYW5ndWFnZSxcblx0XHRcdFx0c2VsZWN0ZWQ6IGtvLm9ic2VydmFibGUoZmFsc2UpLFxuXHRcdFx0XHRmdWxsTmFtZTogY29udmVydExhbmdOYW1lKGxhbmd1YWdlKVxuXHRcdFx0fSkpO1xuXHRcdH0pO1xuXG5cdFx0dGhpcy5sYW5ncy5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0dGhpcy5zZXRMYW5ndWFnZVNlbGVjdGlvbigpO1xuXHRcdH0pO1xuXHR9XG5cblx0bGFuZ3VhZ2VUb29sdGlwTmFtZShsYW5ndWFnZSkge1xuXHRcdHJldHVybiBjb252ZXJ0TGFuZ05hbWUobGFuZ3VhZ2UsIHRydWUpO1xuXHR9XG5cblx0c2V0TGFuZ3VhZ2VTZWxlY3Rpb24oKSB7XG5cdFx0Y29uc3QgY3VycmVudExhbmcgPSB0aGlzLmZMYW5nID8ga28udW53cmFwKHRoaXMuZkxhbmcpIDogJyc7XG5cdFx0Xy5lYWNoKHRoaXMubGFuZ3VhZ2VzKCksIChpdGVtKSA9PiB7XG5cdFx0XHRpdGVtLnNlbGVjdGVkKGl0ZW0ua2V5ID09PSBjdXJyZW50TGFuZyk7XG5cdFx0fSk7XG5cdH1cblxuXHRvbkJlZm9yZVNob3coKSB7XG5cdFx0dGhpcy5mTGFuZyA9IG51bGw7XG5cdFx0dGhpcy51c2VyTGFuZ3VhZ2UoJycpO1xuXG5cdFx0dGhpcy5sYW5ncyhbXSk7XG5cdH1cblxuXHRvblNob3coZkxhbmd1YWdlLCBsYW5ncywgdXNlckxhbmd1YWdlKSB7XG5cdFx0dGhpcy5mTGFuZyA9IGZMYW5ndWFnZTtcblx0XHR0aGlzLnVzZXJMYW5ndWFnZSh1c2VyTGFuZ3VhZ2UgfHwgJycpO1xuXG5cdFx0dGhpcy5sYW5ncyhsYW5ncyk7XG5cdH1cblxuXHRjaGFuZ2VMYW5ndWFnZShsYW5nKSB7XG5cdFx0aWYgKHRoaXMuZkxhbmcpIHtcblx0XHRcdHRoaXMuZkxhbmcobGFuZyk7XG5cdFx0fVxuXG5cdFx0dGhpcy5jYW5jZWxDb21tYW5kKCk7XG5cdH1cbn1cblxuZXhwb3J0IHsgTGFuZ3VhZ2VzUG9wdXBWaWV3LCBMYW5ndWFnZXNQb3B1cFZpZXcgYXMgZGVmYXVsdCB9O1xuIiwiaW1wb3J0IHdpbmRvdyBmcm9tICd3aW5kb3cnO1xuaW1wb3J0IHsga2lsbEN0cmxBQ3RybFMsIGRldGVjdERyb3Bkb3duVmlzaWJpbGl0eSwgY3JlYXRlQ29tbWFuZExlZ2FjeSwgZG9tUmVhZHkgfSBmcm9tICdDb21tb24vVXRpbHMnO1xuaW1wb3J0IHsgJHdpbiwgJGh0bWwsIGRhdGEgYXMgR2xvYmFsc0RhdGEsIGJNb2JpbGVEZXZpY2UgfSBmcm9tICdDb21tb24vR2xvYmFscyc7XG5pbXBvcnQgKiBhcyBFbnVtcyBmcm9tICdDb21tb24vRW51bXMnO1xuaW1wb3J0ICogYXMgUGx1Z2lucyBmcm9tICdDb21tb24vUGx1Z2lucyc7XG5pbXBvcnQgeyBpMThuIH0gZnJvbSAnQ29tbW9uL1RyYW5zbGF0b3InO1xuaW1wb3J0IHsgRW1haWxNb2RlbCB9IGZyb20gJ01vZGVsL0VtYWlsJztcblxuZXhwb3J0IGRlZmF1bHQgKEFwcCkgPT4ge1xuXHRHbG9iYWxzRGF0YS5fX0FQUF9fID0gQXBwO1xuXG5cdCR3aW4ub24oJ2tleWRvd24nLCBraWxsQ3RybEFDdHJsUykub24oJ3VubG9hZCcsICgpID0+IHtcblx0XHRHbG9iYWxzRGF0YS5iVW5sb2FkID0gdHJ1ZTtcblx0fSk7XG5cblx0JGh0bWwuYWRkQ2xhc3MoYk1vYmlsZURldmljZSA/ICdtb2JpbGUnIDogJ25vLW1vYmlsZScpLm9uKCdjbGljay5kcm9wZG93bi5kYXRhLWFwaScsIGRldGVjdERyb3Bkb3duVmlzaWJpbGl0eSk7XG5cblx0Y29uc3QgcmwgPSB3aW5kb3cucmwgfHwge307XG5cblx0cmwuaTE4biA9IGkxOG47XG5cdHJsLmNyZWF0ZUNvbW1hbmQgPSBjcmVhdGVDb21tYW5kTGVnYWN5O1xuXG5cdHJsLmFkZFNldHRpbmdzVmlld01vZGVsID0gUGx1Z2lucy5hZGRTZXR0aW5nc1ZpZXdNb2RlbDtcblx0cmwuYWRkU2V0dGluZ3NWaWV3TW9kZWxGb3JBZG1pbiA9IFBsdWdpbnMuYWRkU2V0dGluZ3NWaWV3TW9kZWxGb3JBZG1pbjtcblxuXHRybC5hZGRIb29rID0gUGx1Z2lucy5hZGRIb29rO1xuXHRybC5zZXR0aW5nc0dldCA9IFBsdWdpbnMubWFpblNldHRpbmdzR2V0O1xuXHRybC5wbHVnaW5TZXR0aW5nc0dldCA9IFBsdWdpbnMuc2V0dGluZ3NHZXQ7XG5cdHJsLnBsdWdpblJlbW90ZVJlcXVlc3QgPSBQbHVnaW5zLnJlbW90ZVJlcXVlc3Q7XG5cblx0cmwuRW1haWxNb2RlbCA9IEVtYWlsTW9kZWw7XG5cdHJsLkVudW1zID0gRW51bXM7XG5cblx0d2luZG93LnJsID0gcmw7XG5cblx0Y29uc3Qgc3RhcnQgPSAoKSA9PiB7XG5cdFx0d2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0JGh0bWwucmVtb3ZlQ2xhc3MoJ25vLWpzIHJsLWJvb3RlZC10cmlnZ2VyJykuYWRkQ2xhc3MoJ3JsLWJvb3RlZCcpO1xuXG5cdFx0XHRBcHAuYm9vdHN0YXJ0KCk7XG5cdFx0fSwgRW51bXMuTWFnaWNzLlRpbWUxMG1zKTtcblx0fTtcblxuXHR3aW5kb3cuX19BUFBfQk9PVCA9IChmRXJyb3JDYWxsYmFjaykgPT4ge1xuXHRcdGRvbVJlYWR5KCgpID0+IHtcblx0XHRcdHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0aWYgKHdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmFpbmxvb3AtdGVtcGxhdGVzLWlkJykpIHtcblx0XHRcdFx0XHRzdGFydCgpO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHdpbmRvdy5yYWlubG9vcFRFTVBMQVRFUyAmJiB3aW5kb3cucmFpbmxvb3BURU1QTEFURVNbMF0pIHtcblx0XHRcdFx0XHR3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JsLXRlbXBsYXRlcycpLmlubmVySFRNTCA9IHdpbmRvdy5yYWlubG9vcFRFTVBMQVRFU1swXTtcblx0XHRcdFx0XHRzdGFydCgpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGZFcnJvckNhbGxiYWNrKCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR3aW5kb3cuX19BUFBfQk9PVCA9IG51bGw7XG5cdFx0XHR9LCBFbnVtcy5NYWdpY3MuVGltZTEwbXMpO1xuXHRcdH0pO1xuXHR9O1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMtcHVyZS9mZWF0dXJlcy9vYmplY3QvY3JlYXRlXCIpOyIsImltcG9ydCBfT2JqZWN0JHNldFByb3RvdHlwZU9mIGZyb20gXCJAYmFiZWwvcnVudGltZS1jb3JlanMzL2NvcmUtanMvb2JqZWN0L3NldC1wcm90b3R5cGUtb2ZcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9zZXRQcm90b3R5cGVPZihvLCBwKSB7XG4gIF9zZXRQcm90b3R5cGVPZiA9IF9PYmplY3Qkc2V0UHJvdG90eXBlT2YgfHwgZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKG8sIHApIHtcbiAgICBvLl9fcHJvdG9fXyA9IHA7XG4gICAgcmV0dXJuIG87XG4gIH07XG5cbiAgcmV0dXJuIF9zZXRQcm90b3R5cGVPZihvLCBwKTtcbn0iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzLXB1cmUvZmVhdHVyZXMvb2JqZWN0L3NldC1wcm90b3R5cGUtb2ZcIik7IiwiaW1wb3J0IGtvIGZyb20gJ2tvJztcbmltcG9ydCB7ICRodG1sLCBiTW9iaWxlRGV2aWNlIH0gZnJvbSAnQ29tbW9uL0dsb2JhbHMnO1xuaW1wb3J0ICogYXMgU2V0dGluZ3MgZnJvbSAnU3RvcmFnZS9TZXR0aW5ncyc7XG5cbmNsYXNzIEFic3RyYWN0QXBwU3RvcmUge1xuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLmFsbG93TGFuZ3VhZ2VzT25TZXR0aW5ncyA9IGtvLm9ic2VydmFibGUodHJ1ZSk7XG5cdFx0dGhpcy5hbGxvd0xhbmd1YWdlc09uTG9naW4gPSBrby5vYnNlcnZhYmxlKHRydWUpO1xuXHRcdHRoaXMubmV3TW92ZVRvRm9sZGVyID0ga28ub2JzZXJ2YWJsZSh0cnVlKTtcblxuXHRcdHRoaXMuaW50ZXJmYWNlQW5pbWF0aW9uID0ga28ub2JzZXJ2YWJsZSh0cnVlKTtcblxuXHRcdHRoaXMuaW50ZXJmYWNlQW5pbWF0aW9uLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdGNvbnN0IGFuaW0gPSBiTW9iaWxlRGV2aWNlIHx8ICF2YWx1ZTtcblx0XHRcdCRodG1sLnRvZ2dsZUNsYXNzKCdybC1hbmltJywgIWFuaW0pLnRvZ2dsZUNsYXNzKCduby1ybC1hbmltJywgYW5pbSk7XG5cdFx0fSk7XG5cblx0XHR0aGlzLmludGVyZmFjZUFuaW1hdGlvbi52YWx1ZUhhc011dGF0ZWQoKTtcblxuXHRcdHRoaXMucHJlbSA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXHRcdHRoaXMuY29tbXVuaXR5ID0ga28ub2JzZXJ2YWJsZSh0cnVlKTtcblx0fVxuXG5cdHBvcHVsYXRlKCkge1xuXHRcdHRoaXMuYWxsb3dMYW5ndWFnZXNPbkxvZ2luKCEhU2V0dGluZ3Muc2V0dGluZ3NHZXQoJ0FsbG93TGFuZ3VhZ2VzT25Mb2dpbicpKTtcblx0XHR0aGlzLmFsbG93TGFuZ3VhZ2VzT25TZXR0aW5ncyghIVNldHRpbmdzLnNldHRpbmdzR2V0KCdBbGxvd0xhbmd1YWdlc09uU2V0dGluZ3MnKSk7XG5cdFx0dGhpcy5uZXdNb3ZlVG9Gb2xkZXIoISFTZXR0aW5ncy5zZXR0aW5nc0dldCgnTmV3TW92ZVRvRm9sZGVyJykpO1xuXG5cdFx0dGhpcy5pbnRlcmZhY2VBbmltYXRpb24oISFTZXR0aW5ncy5zZXR0aW5nc0dldCgnSW50ZXJmYWNlQW5pbWF0aW9uJykpO1xuXG5cdFx0dGhpcy5wcmVtKCEhU2V0dGluZ3Muc2V0dGluZ3NHZXQoJ1ByZW1UeXBlJykpO1xuXHRcdHRoaXMuY29tbXVuaXR5KCEhU2V0dGluZ3Muc2V0dGluZ3NHZXQoJ0NvbW11bml0eScpKTtcblx0fVxufVxuXG5leHBvcnQgeyBBYnN0cmFjdEFwcFN0b3JlLCBBYnN0cmFjdEFwcFN0b3JlIGFzIGRlZmF1bHQgfTtcbiIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMtcHVyZS9mZWF0dXJlcy9pbnN0YW5jZS9mb3ItZWFjaFwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzLXB1cmUvZmVhdHVyZXMvb2JqZWN0L2tleXNcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy1wdXJlL2ZlYXR1cmVzL2luc3RhbmNlL3JlZHVjZVwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzLXB1cmUvZmVhdHVyZXMvaW5zdGFuY2UvcmV2ZXJzZVwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzLXB1cmUvZmVhdHVyZXMvaW5zdGFuY2Uvc2xpY2VcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy1wdXJlL2ZlYXR1cmVzL29iamVjdC9kZWZpbmUtcHJvcGVydHlcIik7IiwiaW1wb3J0IHdpbmRvdyBmcm9tICd3aW5kb3cnO1xuaW1wb3J0IF8gZnJvbSAnXyc7XG5pbXBvcnQgJCBmcm9tICckJztcblxuaW1wb3J0IHsgVE9LRU5fRVJST1JfTElNSVQsIEFKQVhfRVJST1JfTElNSVQsIERFRkFVTFRfQUpBWF9USU1FT1VUIH0gZnJvbSAnQ29tbW9uL0NvbnN0cyc7XG5pbXBvcnQgeyBTdG9yYWdlUmVzdWx0VHlwZSwgTm90aWZpY2F0aW9uIH0gZnJvbSAnQ29tbW9uL0VudW1zJztcbmltcG9ydCB7IGluQXJyYXksIHBJbnQsIHBTdHJpbmcsIGlzVW5kIH0gZnJvbSAnQ29tbW9uL1V0aWxzJztcbmltcG9ydCB7IGRhdGEgYXMgR2xvYmFsc0RhdGEgfSBmcm9tICdDb21tb24vR2xvYmFscyc7XG5pbXBvcnQgeyBhamF4IH0gZnJvbSAnQ29tbW9uL0xpbmtzJztcbmltcG9ydCB7IHJ1bkhvb2sgfSBmcm9tICdDb21tb24vUGx1Z2lucyc7XG5cbmltcG9ydCAqIGFzIFNldHRpbmdzIGZyb20gJ1N0b3JhZ2UvU2V0dGluZ3MnO1xuXG5jbGFzcyBBYnN0cmFjdEFqYXhSZW1vdGUge1xuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLm9SZXF1ZXN0cyA9IHt9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwYXJhbSB7P0Z1bmN0aW9ufSBmQ2FsbGJhY2tcblx0ICogQHBhcmFtIHtzdHJpbmd9IHNSZXF1ZXN0QWN0aW9uXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBzVHlwZVxuXHQgKiBAcGFyYW0gez9BamF4SnNvbkRlZmF1bHRSZXNwb25zZX0gb0RhdGFcblx0ICogQHBhcmFtIHtib29sZWFufSBiQ2FjaGVkXG5cdCAqIEBwYXJhbSB7Kj19IG9SZXF1ZXN0UGFyYW1ldGVyc1xuXHQgKi9cblx0ZGVmYXVsdFJlc3BvbnNlKGZDYWxsYmFjaywgc1JlcXVlc3RBY3Rpb24sIHNUeXBlLCBvRGF0YSwgYkNhY2hlZCwgb1JlcXVlc3RQYXJhbWV0ZXJzKSB7XG5cdFx0Y29uc3QgZkNhbGwgPSAoKSA9PiB7XG5cdFx0XHRpZiAoU3RvcmFnZVJlc3VsdFR5cGUuU3VjY2VzcyAhPT0gc1R5cGUgJiYgR2xvYmFsc0RhdGEuYlVubG9hZCkge1xuXHRcdFx0XHRzVHlwZSA9IFN0b3JhZ2VSZXN1bHRUeXBlLlVubG9hZDtcblx0XHRcdH1cblxuXHRcdFx0aWYgKFN0b3JhZ2VSZXN1bHRUeXBlLlN1Y2Nlc3MgPT09IHNUeXBlICYmIG9EYXRhICYmICFvRGF0YS5SZXN1bHQpIHtcblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdG9EYXRhICYmXG5cdFx0XHRcdFx0LTEgPFxuXHRcdFx0XHRcdFx0aW5BcnJheShvRGF0YS5FcnJvckNvZGUsIFtcblx0XHRcdFx0XHRcdFx0Tm90aWZpY2F0aW9uLkF1dGhFcnJvcixcblx0XHRcdFx0XHRcdFx0Tm90aWZpY2F0aW9uLkFjY2Vzc0Vycm9yLFxuXHRcdFx0XHRcdFx0XHROb3RpZmljYXRpb24uQ29ubmVjdGlvbkVycm9yLFxuXHRcdFx0XHRcdFx0XHROb3RpZmljYXRpb24uRG9tYWluTm90QWxsb3dlZCxcblx0XHRcdFx0XHRcdFx0Tm90aWZpY2F0aW9uLkFjY291bnROb3RBbGxvd2VkLFxuXHRcdFx0XHRcdFx0XHROb3RpZmljYXRpb24uTWFpbFNlcnZlckVycm9yLFxuXHRcdFx0XHRcdFx0XHROb3RpZmljYXRpb24uVW5rbm93bk5vdGlmaWNhdGlvbixcblx0XHRcdFx0XHRcdFx0Tm90aWZpY2F0aW9uLlVua25vd25FcnJvclxuXHRcdFx0XHRcdFx0XSlcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0R2xvYmFsc0RhdGEuaUFqYXhFcnJvckNvdW50ICs9IDE7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAob0RhdGEgJiYgTm90aWZpY2F0aW9uLkludmFsaWRUb2tlbiA9PT0gb0RhdGEuRXJyb3JDb2RlKSB7XG5cdFx0XHRcdFx0R2xvYmFsc0RhdGEuaVRva2VuRXJyb3JDb3VudCArPSAxO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKFRPS0VOX0VSUk9SX0xJTUlUIDwgR2xvYmFsc0RhdGEuaVRva2VuRXJyb3JDb3VudCkge1xuXHRcdFx0XHRcdGlmIChHbG9iYWxzRGF0YS5fX0FQUF9fICYmIEdsb2JhbHNEYXRhLl9fQVBQX18ubG9naW5BbmRMb2dvdXRSZWxvYWQpIHtcblx0XHRcdFx0XHRcdEdsb2JhbHNEYXRhLl9fQVBQX18ubG9naW5BbmRMb2dvdXRSZWxvYWQoZmFsc2UsIHRydWUpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChvRGF0YS5DbGVhckF1dGggfHwgb0RhdGEuTG9nb3V0IHx8IEFKQVhfRVJST1JfTElNSVQgPCBHbG9iYWxzRGF0YS5pQWpheEVycm9yQ291bnQpIHtcblx0XHRcdFx0XHRpZiAoR2xvYmFsc0RhdGEuX19BUFBfXyAmJiBHbG9iYWxzRGF0YS5fX0FQUF9fLmNsZWFyQ2xpZW50U2lkZVRva2VuKSB7XG5cdFx0XHRcdFx0XHRHbG9iYWxzRGF0YS5fX0FQUF9fLmNsZWFyQ2xpZW50U2lkZVRva2VuKCk7XG5cblx0XHRcdFx0XHRcdGlmICghb0RhdGEuQ2xlYXJBdXRoICYmIEdsb2JhbHNEYXRhLl9fQVBQX18ubG9naW5BbmRMb2dvdXRSZWxvYWQpIHtcblx0XHRcdFx0XHRcdFx0R2xvYmFsc0RhdGEuX19BUFBfXy5sb2dpbkFuZExvZ291dFJlbG9hZChmYWxzZSwgdHJ1ZSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2UgaWYgKFN0b3JhZ2VSZXN1bHRUeXBlLlN1Y2Nlc3MgPT09IHNUeXBlICYmIG9EYXRhICYmIG9EYXRhLlJlc3VsdCkge1xuXHRcdFx0XHRHbG9iYWxzRGF0YS5pQWpheEVycm9yQ291bnQgPSAwO1xuXHRcdFx0XHRHbG9iYWxzRGF0YS5pVG9rZW5FcnJvckNvdW50ID0gMDtcblx0XHRcdH1cblxuXHRcdFx0cnVuSG9vaygnYWpheC1kZWZhdWx0LXJlc3BvbnNlJywgW1xuXHRcdFx0XHRzUmVxdWVzdEFjdGlvbixcblx0XHRcdFx0U3RvcmFnZVJlc3VsdFR5cGUuU3VjY2VzcyA9PT0gc1R5cGUgPyBvRGF0YSA6IG51bGwsXG5cdFx0XHRcdHNUeXBlLFxuXHRcdFx0XHRiQ2FjaGVkLFxuXHRcdFx0XHRvUmVxdWVzdFBhcmFtZXRlcnNcblx0XHRcdF0pO1xuXG5cdFx0XHRpZiAoZkNhbGxiYWNrKSB7XG5cdFx0XHRcdGZDYWxsYmFjayhcblx0XHRcdFx0XHRzVHlwZSxcblx0XHRcdFx0XHRTdG9yYWdlUmVzdWx0VHlwZS5TdWNjZXNzID09PSBzVHlwZSA/IG9EYXRhIDogbnVsbCxcblx0XHRcdFx0XHRiQ2FjaGVkLFxuXHRcdFx0XHRcdHNSZXF1ZXN0QWN0aW9uLFxuXHRcdFx0XHRcdG9SZXF1ZXN0UGFyYW1ldGVyc1xuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdH07XG5cblx0XHRzd2l0Y2ggKHNUeXBlKSB7XG5cdFx0XHRjYXNlICdzdWNjZXNzJzpcblx0XHRcdFx0c1R5cGUgPSBTdG9yYWdlUmVzdWx0VHlwZS5TdWNjZXNzO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgJ2Fib3J0Jzpcblx0XHRcdFx0c1R5cGUgPSBTdG9yYWdlUmVzdWx0VHlwZS5BYm9ydDtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRzVHlwZSA9IFN0b3JhZ2VSZXN1bHRUeXBlLkVycm9yO1xuXHRcdFx0XHRicmVhaztcblx0XHR9XG5cblx0XHRpZiAoU3RvcmFnZVJlc3VsdFR5cGUuRXJyb3IgPT09IHNUeXBlKSB7XG5cdFx0XHRfLmRlbGF5KGZDYWxsLCAzMDApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRmQ2FsbCgpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBAcGFyYW0gez9GdW5jdGlvbn0gZlJlc3VsdENhbGxiYWNrXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBvUGFyYW1ldGVyc1xuXHQgKiBAcGFyYW0gez9udW1iZXI9fSBpVGltZU91dCA9IDIwMDAwXG5cdCAqIEBwYXJhbSB7c3RyaW5nPX0gc0dldEFkZCA9ICcnXG5cdCAqIEBwYXJhbSB7QXJyYXk9fSBhQWJvcnRBY3Rpb25zID0gW11cblx0ICogQHJldHVybnMge2pRdWVyeS5qcVhIUn1cblx0ICovXG5cdGFqYXhSZXF1ZXN0KGZSZXN1bHRDYWxsYmFjaywgcGFyYW1zLCBpVGltZU91dCA9IDIwMDAwLCBzR2V0QWRkID0gJycsIGFib3J0QWN0aW9ucyA9IFtdKSB7XG5cdFx0Y29uc3QgaXNQb3N0ID0gJycgPT09IHNHZXRBZGQsXG5cdFx0XHRoZWFkZXJzID0ge30sXG5cdFx0XHRzdGFydCA9IG5ldyB3aW5kb3cuRGF0ZSgpLmdldFRpbWUoKTtcblxuXHRcdGxldCBhY3Rpb24gPSAnJztcblxuXHRcdHBhcmFtcyA9IHBhcmFtcyB8fCB7fTtcblx0XHRhY3Rpb24gPSBwYXJhbXMuQWN0aW9uIHx8ICcnO1xuXG5cdFx0aWYgKGFjdGlvbiAmJiAwIDwgYWJvcnRBY3Rpb25zLmxlbmd0aCkge1xuXHRcdFx0Xy5lYWNoKGFib3J0QWN0aW9ucywgKGFjdGlvblRvQWJvcnQpID0+IHtcblx0XHRcdFx0aWYgKHRoaXMub1JlcXVlc3RzW2FjdGlvblRvQWJvcnRdKSB7XG5cdFx0XHRcdFx0dGhpcy5vUmVxdWVzdHNbYWN0aW9uVG9BYm9ydF0uX19hYm9ydGVkID0gdHJ1ZTtcblx0XHRcdFx0XHRpZiAodGhpcy5vUmVxdWVzdHNbYWN0aW9uVG9BYm9ydF0uYWJvcnQpIHtcblx0XHRcdFx0XHRcdHRoaXMub1JlcXVlc3RzW2FjdGlvblRvQWJvcnRdLmFib3J0KCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHRoaXMub1JlcXVlc3RzW2FjdGlvblRvQWJvcnRdID0gbnVsbDtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0aWYgKGlzUG9zdCkge1xuXHRcdFx0cGFyYW1zLlhUb2tlbiA9IFNldHRpbmdzLmFwcFNldHRpbmdzR2V0KCd0b2tlbicpO1xuXHRcdH1cblxuXHRcdGNvbnN0IG9EZWZBamF4ID0gJC5hamF4KHtcblx0XHRcdHR5cGU6IGlzUG9zdCA/ICdQT1NUJyA6ICdHRVQnLFxuXHRcdFx0dXJsOiBhamF4KHNHZXRBZGQpLFxuXHRcdFx0YXN5bmM6IHRydWUsXG5cdFx0XHRkYXRhVHlwZTogJ2pzb24nLFxuXHRcdFx0ZGF0YTogaXNQb3N0ID8gcGFyYW1zIDoge30sXG5cdFx0XHRoZWFkZXJzOiBoZWFkZXJzLFxuXHRcdFx0dGltZW91dDogaVRpbWVPdXQsXG5cdFx0XHRnbG9iYWw6IHRydWVcblx0XHR9KTtcblxuXHRcdG9EZWZBamF4LmFsd2F5cygob0RhdGEsIHNUeXBlKSA9PiB7XG5cdFx0XHRsZXQgY2FjaGVkID0gZmFsc2U7XG5cdFx0XHRpZiAob0RhdGEgJiYgb0RhdGEuVGltZSkge1xuXHRcdFx0XHRjYWNoZWQgPSBwSW50KG9EYXRhLlRpbWUpID4gbmV3IHdpbmRvdy5EYXRlKCkuZ2V0VGltZSgpIC0gc3RhcnQ7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChvRGF0YSAmJiBvRGF0YS5VcGRhdGVUb2tlbikge1xuXHRcdFx0XHRpZiAoR2xvYmFsc0RhdGEuX19BUFBfXyAmJiBHbG9iYWxzRGF0YS5fX0FQUF9fLnNldENsaWVudFNpZGVUb2tlbikge1xuXHRcdFx0XHRcdEdsb2JhbHNEYXRhLl9fQVBQX18uc2V0Q2xpZW50U2lkZVRva2VuKG9EYXRhLlVwZGF0ZVRva2VuKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRpZiAoYWN0aW9uICYmIHRoaXMub1JlcXVlc3RzW2FjdGlvbl0pIHtcblx0XHRcdFx0aWYgKHRoaXMub1JlcXVlc3RzW2FjdGlvbl0uX19hYm9ydGVkKSB7XG5cdFx0XHRcdFx0c1R5cGUgPSAnYWJvcnQnO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dGhpcy5vUmVxdWVzdHNbYWN0aW9uXSA9IG51bGw7XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMuZGVmYXVsdFJlc3BvbnNlKGZSZXN1bHRDYWxsYmFjaywgYWN0aW9uLCBzVHlwZSwgb0RhdGEsIGNhY2hlZCwgcGFyYW1zKTtcblx0XHR9KTtcblxuXHRcdGlmIChhY3Rpb24gJiYgMCA8IGFib3J0QWN0aW9ucy5sZW5ndGggJiYgLTEgPCBpbkFycmF5KGFjdGlvbiwgYWJvcnRBY3Rpb25zKSkge1xuXHRcdFx0aWYgKHRoaXMub1JlcXVlc3RzW2FjdGlvbl0pIHtcblx0XHRcdFx0dGhpcy5vUmVxdWVzdHNbYWN0aW9uXS5fX2Fib3J0ZWQgPSB0cnVlO1xuXHRcdFx0XHRpZiAodGhpcy5vUmVxdWVzdHNbYWN0aW9uXS5hYm9ydCkge1xuXHRcdFx0XHRcdHRoaXMub1JlcXVlc3RzW2FjdGlvbl0uYWJvcnQoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLm9SZXF1ZXN0c1thY3Rpb25dID0gbnVsbDtcblx0XHRcdH1cblxuXHRcdFx0dGhpcy5vUmVxdWVzdHNbYWN0aW9uXSA9IG9EZWZBamF4O1xuXHRcdH1cblxuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG5cdFx0b0RlZkFqYXguY2F0Y2goY29uc29sZS5sb2cpO1xuXHRcdHJldHVybiBvRGVmQWpheDtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcGFyYW0gez9GdW5jdGlvbn0gZkNhbGxiYWNrXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBzQWN0aW9uXG5cdCAqIEBwYXJhbSB7T2JqZWN0PX0gb1BhcmFtZXRlcnNcblx0ICogQHBhcmFtIHs/bnVtYmVyPX0gaVRpbWVvdXRcblx0ICogQHBhcmFtIHtzdHJpbmc9fSBzR2V0QWRkID0gJydcblx0ICogQHBhcmFtIHtBcnJheT19IGFBYm9ydEFjdGlvbnMgPSBbXVxuXHQgKi9cblx0ZGVmYXVsdFJlcXVlc3QoZkNhbGxiYWNrLCBzQWN0aW9uLCBvUGFyYW1ldGVycywgaVRpbWVvdXQsIHNHZXRBZGQsIGFBYm9ydEFjdGlvbnMpIHtcblx0XHRvUGFyYW1ldGVycyA9IG9QYXJhbWV0ZXJzIHx8IHt9O1xuXHRcdG9QYXJhbWV0ZXJzLkFjdGlvbiA9IHNBY3Rpb247XG5cblx0XHRzR2V0QWRkID0gcFN0cmluZyhzR2V0QWRkKTtcblxuXHRcdHJ1bkhvb2soJ2FqYXgtZGVmYXVsdC1yZXF1ZXN0JywgW3NBY3Rpb24sIG9QYXJhbWV0ZXJzLCBzR2V0QWRkXSk7XG5cblx0XHRyZXR1cm4gdGhpcy5hamF4UmVxdWVzdChcblx0XHRcdGZDYWxsYmFjayxcblx0XHRcdG9QYXJhbWV0ZXJzLFxuXHRcdFx0aXNVbmQoaVRpbWVvdXQpID8gREVGQVVMVF9BSkFYX1RJTUVPVVQgOiBwSW50KGlUaW1lb3V0KSxcblx0XHRcdHNHZXRBZGQsXG5cdFx0XHRhQWJvcnRBY3Rpb25zXG5cdFx0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcGFyYW0gez9GdW5jdGlvbn0gZkNhbGxiYWNrXG5cdCAqL1xuXHRub29wKGZDYWxsYmFjaykge1xuXHRcdHRoaXMuZGVmYXVsdFJlcXVlc3QoZkNhbGxiYWNrLCAnTm9vcCcpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwYXJhbSB7P0Z1bmN0aW9ufSBmQ2FsbGJhY2tcblx0ICovXG5cdGdldFB1YmxpY0tleShmQ2FsbGJhY2spIHtcblx0XHR0aGlzLmRlZmF1bHRSZXF1ZXN0KGZDYWxsYmFjaywgJ0dldFB1YmxpY0tleScpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwYXJhbSB7P0Z1bmN0aW9ufSBmQ2FsbGJhY2tcblx0ICogQHBhcmFtIHtzdHJpbmd9IHNWZXJzaW9uXG5cdCAqL1xuXHRqc1ZlcnNpb24oZkNhbGxiYWNrLCBzVmVyc2lvbikge1xuXHRcdHRoaXMuZGVmYXVsdFJlcXVlc3QoZkNhbGxiYWNrLCAnVmVyc2lvbicsIHtcblx0XHRcdCdWZXJzaW9uJzogc1ZlcnNpb25cblx0XHR9KTtcblx0fVxufVxuXG5leHBvcnQgeyBBYnN0cmFjdEFqYXhSZW1vdGUsIEFic3RyYWN0QWpheFJlbW90ZSBhcyBkZWZhdWx0IH07XG4iLCJpbXBvcnQgXyBmcm9tICdfJztcbmltcG9ydCAkIGZyb20gJyQnO1xuaW1wb3J0IGtvIGZyb20gJ2tvJztcblxuaW1wb3J0IHsgVklFV19NT0RFTFMgfSBmcm9tICdDb21tb24vR2xvYmFscyc7XG5pbXBvcnQgeyBkZWxlZ2F0ZVJ1biwgd2luZG93UmVzaXplLCBsb2csIGlzVW5kLCBwU3RyaW5nIH0gZnJvbSAnQ29tbW9uL1V0aWxzJztcbmltcG9ydCB7IHNldHRpbmdzIH0gZnJvbSAnQ29tbW9uL0xpbmtzJztcblxuaW1wb3J0IHsgc2V0SGFzaCB9IGZyb20gJ0tub2luL0tub2luJztcbmltcG9ydCB7IEFic3RyYWN0U2NyZWVuIH0gZnJvbSAnS25vaW4vQWJzdHJhY3RTY3JlZW4nO1xuXG5jbGFzcyBBYnN0cmFjdFNldHRpbmdzU2NyZWVuIGV4dGVuZHMgQWJzdHJhY3RTY3JlZW4ge1xuXHQvKipcblx0ICogQHBhcmFtIHtBcnJheX0gdmlld01vZGVsc1xuXHQgKi9cblx0Y29uc3RydWN0b3Iodmlld01vZGVscykge1xuXHRcdHN1cGVyKCdzZXR0aW5ncycsIHZpZXdNb2RlbHMpO1xuXG5cdFx0dGhpcy5tZW51ID0ga28ub2JzZXJ2YWJsZUFycmF5KFtdKTtcblxuXHRcdHRoaXMub0N1cnJlbnRTdWJTY3JlZW4gPSBudWxsO1xuXHRcdHRoaXMub1ZpZXdNb2RlbFBsYWNlID0gbnVsbDtcblxuXHRcdHRoaXMuc2V0dXBTZXR0aW5ncygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwYXJhbSB7RnVuY3Rpb249fSBmQ2FsbGJhY2tcblx0ICovXG5cdHNldHVwU2V0dGluZ3MoZkNhbGxiYWNrID0gbnVsbCkge1xuXHRcdGlmIChmQ2FsbGJhY2spIHtcblx0XHRcdGZDYWxsYmFjaygpO1xuXHRcdH1cblx0fVxuXG5cdG9uUm91dGUoc3ViTmFtZSkge1xuXHRcdGxldCBzZXR0aW5nc1NjcmVlbiA9IG51bGwsXG5cdFx0XHRSb3V0ZWRTZXR0aW5nc1ZpZXdNb2RlbCA9IG51bGwsXG5cdFx0XHR2aWV3TW9kZWxQbGFjZSA9IG51bGwsXG5cdFx0XHR2aWV3TW9kZWxEb20gPSBudWxsO1xuXG5cdFx0Um91dGVkU2V0dGluZ3NWaWV3TW9kZWwgPSBfLmZpbmQoXG5cdFx0XHRWSUVXX01PREVMUy5zZXR0aW5ncyxcblx0XHRcdChTZXR0aW5nc1ZpZXdNb2RlbCkgPT5cblx0XHRcdFx0U2V0dGluZ3NWaWV3TW9kZWwgJiYgU2V0dGluZ3NWaWV3TW9kZWwuX19ybFNldHRpbmdzRGF0YSAmJiBzdWJOYW1lID09PSBTZXR0aW5nc1ZpZXdNb2RlbC5fX3JsU2V0dGluZ3NEYXRhLlJvdXRlXG5cdFx0KTtcblxuXHRcdGlmIChSb3V0ZWRTZXR0aW5nc1ZpZXdNb2RlbCkge1xuXHRcdFx0aWYgKFxuXHRcdFx0XHRfLmZpbmQoXG5cdFx0XHRcdFx0VklFV19NT0RFTFNbJ3NldHRpbmdzLXJlbW92ZWQnXSxcblx0XHRcdFx0XHQoRGlzYWJsZWRTZXR0aW5nc1ZpZXdNb2RlbCkgPT5cblx0XHRcdFx0XHRcdERpc2FibGVkU2V0dGluZ3NWaWV3TW9kZWwgJiYgRGlzYWJsZWRTZXR0aW5nc1ZpZXdNb2RlbCA9PT0gUm91dGVkU2V0dGluZ3NWaWV3TW9kZWxcblx0XHRcdFx0KVxuXHRcdFx0KSB7XG5cdFx0XHRcdFJvdXRlZFNldHRpbmdzVmlld01vZGVsID0gbnVsbDtcblx0XHRcdH1cblxuXHRcdFx0aWYgKFxuXHRcdFx0XHRSb3V0ZWRTZXR0aW5nc1ZpZXdNb2RlbCAmJlxuXHRcdFx0XHRfLmZpbmQoXG5cdFx0XHRcdFx0VklFV19NT0RFTFNbJ3NldHRpbmdzLWRpc2FibGVkJ10sXG5cdFx0XHRcdFx0KERpc2FibGVkU2V0dGluZ3NWaWV3TW9kZWwpID0+XG5cdFx0XHRcdFx0XHREaXNhYmxlZFNldHRpbmdzVmlld01vZGVsICYmIERpc2FibGVkU2V0dGluZ3NWaWV3TW9kZWwgPT09IFJvdXRlZFNldHRpbmdzVmlld01vZGVsXG5cdFx0XHRcdClcblx0XHRcdCkge1xuXHRcdFx0XHRSb3V0ZWRTZXR0aW5nc1ZpZXdNb2RlbCA9IG51bGw7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKFJvdXRlZFNldHRpbmdzVmlld01vZGVsKSB7XG5cdFx0XHRpZiAoUm91dGVkU2V0dGluZ3NWaWV3TW9kZWwuX19idWlsZGVkICYmIFJvdXRlZFNldHRpbmdzVmlld01vZGVsLl9fdm0pIHtcblx0XHRcdFx0c2V0dGluZ3NTY3JlZW4gPSBSb3V0ZWRTZXR0aW5nc1ZpZXdNb2RlbC5fX3ZtO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dmlld01vZGVsUGxhY2UgPSB0aGlzLm9WaWV3TW9kZWxQbGFjZTtcblx0XHRcdFx0aWYgKHZpZXdNb2RlbFBsYWNlICYmIDEgPT09IHZpZXdNb2RlbFBsYWNlLmxlbmd0aCkge1xuXHRcdFx0XHRcdHNldHRpbmdzU2NyZWVuID0gbmV3IFJvdXRlZFNldHRpbmdzVmlld01vZGVsKCk7XG5cblx0XHRcdFx0XHR2aWV3TW9kZWxEb20gPSAkKCc8ZGl2PjwvZGl2PicpXG5cdFx0XHRcdFx0XHQuYWRkQ2xhc3MoJ3JsLXNldHRpbmdzLXZpZXctbW9kZWwnKVxuXHRcdFx0XHRcdFx0LmhpZGUoKTtcblx0XHRcdFx0XHR2aWV3TW9kZWxEb20uYXBwZW5kVG8odmlld01vZGVsUGxhY2UpO1xuXG5cdFx0XHRcdFx0c2V0dGluZ3NTY3JlZW4udmlld01vZGVsRG9tID0gdmlld01vZGVsRG9tO1xuXG5cdFx0XHRcdFx0c2V0dGluZ3NTY3JlZW4uX19ybFNldHRpbmdzRGF0YSA9IFJvdXRlZFNldHRpbmdzVmlld01vZGVsLl9fcmxTZXR0aW5nc0RhdGE7XG5cblx0XHRcdFx0XHRSb3V0ZWRTZXR0aW5nc1ZpZXdNb2RlbC5fX2RvbSA9IHZpZXdNb2RlbERvbTtcblx0XHRcdFx0XHRSb3V0ZWRTZXR0aW5nc1ZpZXdNb2RlbC5fX2J1aWxkZWQgPSB0cnVlO1xuXHRcdFx0XHRcdFJvdXRlZFNldHRpbmdzVmlld01vZGVsLl9fdm0gPSBzZXR0aW5nc1NjcmVlbjtcblxuXHRcdFx0XHRcdGNvbnN0IHRtcGwgPSB7IG5hbWU6IFJvdXRlZFNldHRpbmdzVmlld01vZGVsLl9fcmxTZXR0aW5nc0RhdGEuVGVtcGxhdGUgfTtcblx0XHRcdFx0XHRrby5hcHBseUJpbmRpbmdBY2Nlc3NvcnNUb05vZGUoXG5cdFx0XHRcdFx0XHR2aWV3TW9kZWxEb21bMF0sXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdHRyYW5zbGF0b3JJbml0OiB0cnVlLFxuXHRcdFx0XHRcdFx0XHR0ZW1wbGF0ZTogKCkgPT4gdG1wbFxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHNldHRpbmdzU2NyZWVuXG5cdFx0XHRcdFx0KTtcblxuXHRcdFx0XHRcdGRlbGVnYXRlUnVuKHNldHRpbmdzU2NyZWVuLCAnb25CdWlsZCcsIFt2aWV3TW9kZWxEb21dKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRsb2coJ0Nhbm5vdCBmaW5kIHN1YiBzZXR0aW5ncyB2aWV3IG1vZGVsIHBvc2l0aW9uOiBTZXR0aW5nc1N1YlNjcmVlbicpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGlmIChzZXR0aW5nc1NjcmVlbikge1xuXHRcdFx0XHRfLmRlZmVyKCgpID0+IHtcblx0XHRcdFx0XHQvLyBoaWRlXG5cdFx0XHRcdFx0aWYgKHRoaXMub0N1cnJlbnRTdWJTY3JlZW4pIHtcblx0XHRcdFx0XHRcdGRlbGVnYXRlUnVuKHRoaXMub0N1cnJlbnRTdWJTY3JlZW4sICdvbkhpZGUnKTtcblx0XHRcdFx0XHRcdHRoaXMub0N1cnJlbnRTdWJTY3JlZW4udmlld01vZGVsRG9tLmhpZGUoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Ly8gLS1cblxuXHRcdFx0XHRcdHRoaXMub0N1cnJlbnRTdWJTY3JlZW4gPSBzZXR0aW5nc1NjcmVlbjtcblxuXHRcdFx0XHRcdC8vIHNob3dcblx0XHRcdFx0XHRpZiAodGhpcy5vQ3VycmVudFN1YlNjcmVlbikge1xuXHRcdFx0XHRcdFx0ZGVsZWdhdGVSdW4odGhpcy5vQ3VycmVudFN1YlNjcmVlbiwgJ29uQmVmb3JlU2hvdycpO1xuXHRcdFx0XHRcdFx0dGhpcy5vQ3VycmVudFN1YlNjcmVlbi52aWV3TW9kZWxEb20uc2hvdygpO1xuXHRcdFx0XHRcdFx0ZGVsZWdhdGVSdW4odGhpcy5vQ3VycmVudFN1YlNjcmVlbiwgJ29uU2hvdycpO1xuXHRcdFx0XHRcdFx0ZGVsZWdhdGVSdW4odGhpcy5vQ3VycmVudFN1YlNjcmVlbiwgJ29uU2hvd1dpdGhEZWxheScsIFtdLCAyMDApO1xuXG5cdFx0XHRcdFx0XHRfLmVhY2godGhpcy5tZW51KCksIChpdGVtKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGl0ZW0uc2VsZWN0ZWQoXG5cdFx0XHRcdFx0XHRcdFx0c2V0dGluZ3NTY3JlZW4gJiZcblx0XHRcdFx0XHRcdFx0XHRcdHNldHRpbmdzU2NyZWVuLl9fcmxTZXR0aW5nc0RhdGEgJiZcblx0XHRcdFx0XHRcdFx0XHRcdGl0ZW0ucm91dGUgPT09IHNldHRpbmdzU2NyZWVuLl9fcmxTZXR0aW5nc0RhdGEuUm91dGVcblx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdH0pO1xuXG5cdFx0XHRcdFx0XHQkKCcjcmwtY29udGVudCAuYi1zZXR0aW5ncyAuYi1jb250ZW50IC5jb250ZW50Jykuc2Nyb2xsVG9wKDApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQvLyAtLVxuXG5cdFx0XHRcdFx0d2luZG93UmVzaXplKCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRzZXRIYXNoKHNldHRpbmdzKCksIGZhbHNlLCB0cnVlKTtcblx0XHR9XG5cdH1cblxuXHRvbkhpZGUoKSB7XG5cdFx0aWYgKHRoaXMub0N1cnJlbnRTdWJTY3JlZW4gJiYgdGhpcy5vQ3VycmVudFN1YlNjcmVlbi52aWV3TW9kZWxEb20pIHtcblx0XHRcdGRlbGVnYXRlUnVuKHRoaXMub0N1cnJlbnRTdWJTY3JlZW4sICdvbkhpZGUnKTtcblx0XHRcdHRoaXMub0N1cnJlbnRTdWJTY3JlZW4udmlld01vZGVsRG9tLmhpZGUoKTtcblx0XHR9XG5cdH1cblxuXHRvbkJ1aWxkKCkge1xuXHRcdF8uZWFjaChWSUVXX01PREVMUy5zZXR0aW5ncywgKFNldHRpbmdzVmlld01vZGVsKSA9PiB7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdFNldHRpbmdzVmlld01vZGVsICYmXG5cdFx0XHRcdFNldHRpbmdzVmlld01vZGVsLl9fcmxTZXR0aW5nc0RhdGEgJiZcblx0XHRcdFx0IV8uZmluZChcblx0XHRcdFx0XHRWSUVXX01PREVMU1snc2V0dGluZ3MtcmVtb3ZlZCddLFxuXHRcdFx0XHRcdChSZW1vdmVTZXR0aW5nc1ZpZXdNb2RlbCkgPT4gUmVtb3ZlU2V0dGluZ3NWaWV3TW9kZWwgJiYgUmVtb3ZlU2V0dGluZ3NWaWV3TW9kZWwgPT09IFNldHRpbmdzVmlld01vZGVsXG5cdFx0XHRcdClcblx0XHRcdCkge1xuXHRcdFx0XHR0aGlzLm1lbnUucHVzaCh7XG5cdFx0XHRcdFx0cm91dGU6IFNldHRpbmdzVmlld01vZGVsLl9fcmxTZXR0aW5nc0RhdGEuUm91dGUsXG5cdFx0XHRcdFx0bGFiZWw6IFNldHRpbmdzVmlld01vZGVsLl9fcmxTZXR0aW5nc0RhdGEuTGFiZWwsXG5cdFx0XHRcdFx0c2VsZWN0ZWQ6IGtvLm9ic2VydmFibGUoZmFsc2UpLFxuXHRcdFx0XHRcdGRpc2FibGVkOiAhIV8uZmluZChcblx0XHRcdFx0XHRcdFZJRVdfTU9ERUxTWydzZXR0aW5ncy1kaXNhYmxlZCddLFxuXHRcdFx0XHRcdFx0KERpc2FibGVkU2V0dGluZ3NWaWV3TW9kZWwpID0+IERpc2FibGVkU2V0dGluZ3NWaWV3TW9kZWwgJiYgRGlzYWJsZWRTZXR0aW5nc1ZpZXdNb2RlbCA9PT0gU2V0dGluZ3NWaWV3TW9kZWxcblx0XHRcdFx0XHQpXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0dGhpcy5vVmlld01vZGVsUGxhY2UgPSAkKCcjcmwtY29udGVudCAjcmwtc2V0dGluZ3Mtc3Vic2NyZWVuJyk7XG5cdH1cblxuXHRyb3V0ZXMoKSB7XG5cdFx0Y29uc3QgRGVmYXVsdFZpZXdNb2RlbCA9IF8uZmluZChcblx0XHRcdFx0VklFV19NT0RFTFMuc2V0dGluZ3MsXG5cdFx0XHRcdChTZXR0aW5nc1ZpZXdNb2RlbCkgPT5cblx0XHRcdFx0XHRTZXR0aW5nc1ZpZXdNb2RlbCAmJiBTZXR0aW5nc1ZpZXdNb2RlbC5fX3JsU2V0dGluZ3NEYXRhICYmIFNldHRpbmdzVmlld01vZGVsLl9fcmxTZXR0aW5nc0RhdGEuSXNEZWZhdWx0XG5cdFx0XHQpLFxuXHRcdFx0ZGVmYXVsdFJvdXRlID1cblx0XHRcdFx0RGVmYXVsdFZpZXdNb2RlbCAmJiBEZWZhdWx0Vmlld01vZGVsLl9fcmxTZXR0aW5nc0RhdGEgPyBEZWZhdWx0Vmlld01vZGVsLl9fcmxTZXR0aW5nc0RhdGEuUm91dGUgOiAnZ2VuZXJhbCcsXG5cdFx0XHRydWxlcyA9IHtcblx0XHRcdFx0c3VibmFtZTogL14oLiopJC8sXG5cdFx0XHRcdG5vcm1hbGl6ZV86IChycXVlc3QsIHZhbHMpID0+IHtcblx0XHRcdFx0XHR2YWxzLnN1Ym5hbWUgPSBpc1VuZCh2YWxzLnN1Ym5hbWUpID8gZGVmYXVsdFJvdXRlIDogcFN0cmluZyh2YWxzLnN1Ym5hbWUpO1xuXHRcdFx0XHRcdHJldHVybiBbdmFscy5zdWJuYW1lXTtcblx0XHRcdFx0fVxuXHRcdFx0fTtcblxuXHRcdHJldHVybiBbXG5cdFx0XHRbJ3tzdWJuYW1lfS8nLCBydWxlc10sXG5cdFx0XHRbJ3tzdWJuYW1lfScsIHJ1bGVzXSxcblx0XHRcdFsnJywgcnVsZXNdXG5cdFx0XTtcblx0fVxufVxuXG5leHBvcnQgeyBBYnN0cmFjdFNldHRpbmdzU2NyZWVuLCBBYnN0cmFjdFNldHRpbmdzU2NyZWVuIGFzIGRlZmF1bHQgfTtcbiIsImltcG9ydCB3aW5kb3cgZnJvbSAnd2luZG93JztcbmltcG9ydCAkIGZyb20gJyQnO1xuaW1wb3J0IF8gZnJvbSAnXyc7XG5pbXBvcnQga28gZnJvbSAna28nO1xuaW1wb3J0IGtleSBmcm9tICdrZXknO1xuaW1wb3J0IHNzbSBmcm9tICdzc20nO1xuXG5pbXBvcnQge1xuXHQkd2luLFxuXHQkaHRtbCxcblx0JGRvYyxcblx0bGVmdFBhbmVsRGlzYWJsZWQsXG5cdGxlZnRQYW5lbFR5cGUsXG5cdHNVc2VyQWdlbnQsXG5cdGJNb2JpbGVEZXZpY2UsXG5cdGJBbmltYXRpb25TdXBwb3J0ZWRcbn0gZnJvbSAnQ29tbW9uL0dsb2JhbHMnO1xuXG5pbXBvcnQgeyBpc05vcm1hbCwgcFN0cmluZywgZGV0ZWN0RHJvcGRvd25WaXNpYmlsaXR5LCB3aW5kb3dSZXNpemVDYWxsYmFjayB9IGZyb20gJ0NvbW1vbi9VdGlscyc7XG5cbmltcG9ydCB7IEtleVN0YXRlLCBNYWdpY3MgfSBmcm9tICdDb21tb24vRW51bXMnO1xuaW1wb3J0IHsgcm9vdCwgcm9vdEFkbWluLCByb290VXNlciwgcG9wdWxhdGVBdXRoU3VmZml4IH0gZnJvbSAnQ29tbW9uL0xpbmtzJztcbmltcG9ydCB7IGluaXRPblN0YXJ0T3JMYW5nQ2hhbmdlLCBpbml0Tm90aWZpY2F0aW9uTGFuZ3VhZ2UgfSBmcm9tICdDb21tb24vVHJhbnNsYXRvcic7XG5pbXBvcnQgKiBhcyBFdmVudHMgZnJvbSAnQ29tbW9uL0V2ZW50cyc7XG5pbXBvcnQgKiBhcyBTZXR0aW5ncyBmcm9tICdTdG9yYWdlL1NldHRpbmdzJztcblxuaW1wb3J0IExhbmd1YWdlU3RvcmUgZnJvbSAnU3RvcmVzL0xhbmd1YWdlJztcbmltcG9ydCBUaGVtZVN0b3JlIGZyb20gJ1N0b3Jlcy9UaGVtZSc7XG5pbXBvcnQgU29jaWFsU3RvcmUgZnJvbSAnU3RvcmVzL1NvY2lhbCc7XG5cbmltcG9ydCB7IHJvdXRlT2ZmLCBzZXRIYXNoIH0gZnJvbSAnS25vaW4vS25vaW4nO1xuaW1wb3J0IHsgQWJzdHJhY3RCb290IH0gZnJvbSAnS25vaW4vQWJzdHJhY3RCb290JztcblxuY2xhc3MgQWJzdHJhY3RBcHAgZXh0ZW5kcyBBYnN0cmFjdEJvb3Qge1xuXHQvKipcblx0ICogQHBhcmFtIHtSZW1vdGVTdG9yYWdlfEFkbWluUmVtb3RlU3RvcmFnZX0gUmVtb3RlXG5cdCAqL1xuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXG5cdFx0dGhpcy5nb29nbGVQcmV2aWV3U3VwcG9ydGVkQ2FjaGUgPSBudWxsO1xuXHRcdHRoaXMuaXNMb2NhbEF1dG9jb21wbGV0ZSA9IHRydWU7XG5cdFx0dGhpcy5pZnJhbWUgPSBudWxsO1xuXHRcdHRoaXMubGFzdEVycm9yVGltZSA9IDA7XG5cblx0XHR0aGlzLmlmcmFtZSA9ICQoJzxpZnJhbWUgY2xhc3M9XCJpbnRlcm5hbC1oaWRkZGVuXCIgLz4nKS5hcHBlbmRUbygnYm9keScpO1xuXG5cdFx0JHdpbi5vbigncmVzaXplJywgKCkgPT4ge1xuXHRcdFx0RXZlbnRzLnB1Yignd2luZG93LnJlc2l6ZScpO1xuXHRcdH0pO1xuXG5cdFx0RXZlbnRzLnN1Yihcblx0XHRcdCd3aW5kb3cucmVzaXplJyxcblx0XHRcdF8udGhyb3R0bGUoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBpSCA9ICR3aW4uaGVpZ2h0KCksXG5cdFx0XHRcdFx0aVcgPSAkd2luLmhlaWdodCgpO1xuXG5cdFx0XHRcdGlmICgkd2luLl9fc2l6ZXNbMF0gIT09IGlIIHx8ICR3aW4uX19zaXplc1sxXSAhPT0gaVcpIHtcblx0XHRcdFx0XHQkd2luLl9fc2l6ZXNbMF0gPSBpSDtcblx0XHRcdFx0XHQkd2luLl9fc2l6ZXNbMV0gPSBpVztcblxuXHRcdFx0XHRcdEV2ZW50cy5wdWIoJ3dpbmRvdy5yZXNpemUucmVhbCcpO1xuXHRcdFx0XHR9XG5cdFx0XHR9LCBNYWdpY3MuVGltZTUwbXMpXG5cdFx0KTtcblxuXHRcdC8vIERFQlVHXG5cdFx0Ly9cdFx0RXZlbnRzLnN1Yih7XG5cdFx0Ly9cdFx0XHQnd2luZG93LnJlc2l6ZSc6IGZ1bmN0aW9uKCkge1xuXHRcdC8vXHRcdFx0XHR3aW5kb3cuY29uc29sZS5sb2coJ3dpbmRvdy5yZXNpemUnKTtcblx0XHQvL1x0XHRcdH0sXG5cdFx0Ly9cdFx0XHQnd2luZG93LnJlc2l6ZS5yZWFsJzogZnVuY3Rpb24oKSB7XG5cdFx0Ly9cdFx0XHRcdHdpbmRvdy5jb25zb2xlLmxvZygnd2luZG93LnJlc2l6ZS5yZWFsJyk7XG5cdFx0Ly9cdFx0XHR9XG5cdFx0Ly9cdFx0fSk7XG5cblx0XHQkZG9jXG5cdFx0XHQub24oJ2tleWRvd24nLCAoZXZlbnQpID0+IHtcblx0XHRcdFx0aWYgKGV2ZW50ICYmIGV2ZW50LmN0cmxLZXkpIHtcblx0XHRcdFx0XHQkaHRtbC5hZGRDbGFzcygncmwtY3RybC1rZXktcHJlc3NlZCcpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdFx0Lm9uKCdrZXl1cCcsIChldmVudCkgPT4ge1xuXHRcdFx0XHRpZiAoZXZlbnQgJiYgIWV2ZW50LmN0cmxLZXkpIHtcblx0XHRcdFx0XHQkaHRtbC5yZW1vdmVDbGFzcygncmwtY3RybC1rZXktcHJlc3NlZCcpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdCRkb2Mub24oXG5cdFx0XHQnbW91c2Vtb3ZlIGtleXByZXNzIGNsaWNrJyxcblx0XHRcdF8uZGVib3VuY2UoKCkgPT4ge1xuXHRcdFx0XHRFdmVudHMucHViKCdybC5hdXRvLWxvZ291dC1yZWZyZXNoJyk7XG5cdFx0XHR9LCBNYWdpY3MuVGltZTVzKVxuXHRcdCk7XG5cblx0XHRrZXkoJ2VzYywgZW50ZXInLCBLZXlTdGF0ZS5BbGwsICgpID0+IHtcblx0XHRcdGRldGVjdERyb3Bkb3duVmlzaWJpbGl0eSgpO1xuXHRcdH0pO1xuXHR9XG5cblx0cmVtb3RlKCkge1xuXHRcdHJldHVybiBudWxsO1xuXHR9XG5cblx0ZGF0YSgpIHtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdGdldEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbihuYW1lLCBkZWZhdWx0Xykge1xuXHRcdHJldHVybiB0aGlzLmFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbltuYW1lXSB8fCBkZWZhdWx0Xztcblx0fVxuXG5cdC8qKlxuXHQgKiBAcGFyYW0ge3N0cmluZ30gbGlua1xuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn1cblx0ICovXG5cdGRvd25sb2FkKGxpbmspIHtcblx0XHRpZiAoc1VzZXJBZ2VudCAmJiAoLTEgPCBzVXNlckFnZW50LmluZGV4T2YoJ2Nocm9tZScpIHx8IC0xIDwgc1VzZXJBZ2VudC5pbmRleE9mKCdjaHJvbWUnKSkpIHtcblx0XHRcdGNvbnN0IG9MaW5rID0gd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcblx0XHRcdG9MaW5rLmhyZWYgPSBsaW5rO1xuXG5cdFx0XHRpZiAod2luZG93LmRvY3VtZW50ICYmIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFdmVudCkge1xuXHRcdFx0XHRjb25zdCBvRSA9IHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFdmVudC5Nb3VzZUV2ZW50cztcblx0XHRcdFx0aWYgKG9FICYmIG9FLmluaXRFdmVudCAmJiBvTGluay5kaXNwYXRjaEV2ZW50KSB7XG5cdFx0XHRcdFx0b0UuaW5pdEV2ZW50KCdjbGljaycsIHRydWUsIHRydWUpO1xuXHRcdFx0XHRcdG9MaW5rLmRpc3BhdGNoRXZlbnQob0UpO1xuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKGJNb2JpbGVEZXZpY2UpIHtcblx0XHRcdHdpbmRvdy5vcGVuKGxpbmssICdfc2VsZicpO1xuXHRcdFx0d2luZG93LmZvY3VzKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuaWZyYW1lLmF0dHIoJ3NyYycsIGxpbmspO1xuXHRcdFx0Ly8gd2luZG93LmRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBsaW5rO1xuXHRcdH1cblxuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0LyoqXG5cdCAqIEByZXR1cm5zIHtib29sZWFufVxuXHQgKi9cblx0Z29vZ2xlUHJldmlld1N1cHBvcnRlZCgpIHtcblx0XHRpZiAobnVsbCA9PT0gdGhpcy5nb29nbGVQcmV2aWV3U3VwcG9ydGVkQ2FjaGUpIHtcblx0XHRcdHRoaXMuZ29vZ2xlUHJldmlld1N1cHBvcnRlZENhY2hlID1cblx0XHRcdFx0ISFTZXR0aW5ncy5zZXR0aW5nc0dldCgnQWxsb3dHb29nbGVTb2NpYWwnKSAmJiAhIVNldHRpbmdzLnNldHRpbmdzR2V0KCdBbGxvd0dvb2dsZVNvY2lhbFByZXZpZXcnKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5nb29nbGVQcmV2aWV3U3VwcG9ydGVkQ2FjaGU7XG5cdH1cblxuXHQvKipcblx0ICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlXG5cdCAqL1xuXHRzZXRXaW5kb3dUaXRsZSh0aXRsZSkge1xuXHRcdHRpdGxlID0gaXNOb3JtYWwodGl0bGUpICYmIDAgPCB0aXRsZS5sZW5ndGggPyAnJyArIHRpdGxlIDogJyc7XG5cdFx0aWYgKFNldHRpbmdzLnNldHRpbmdzR2V0KCdUaXRsZScpKSB7XG5cdFx0XHR0aXRsZSArPSAodGl0bGUgPyAnIC0gJyA6ICcnKSArIFNldHRpbmdzLnNldHRpbmdzR2V0KCdUaXRsZScpO1xuXHRcdH1cblxuXHRcdHdpbmRvdy5kb2N1bWVudC50aXRsZSA9IHRpdGxlICsgJyAuLi4nO1xuXHRcdHdpbmRvdy5kb2N1bWVudC50aXRsZSA9IHRpdGxlO1xuXHR9XG5cblx0cmVkaXJlY3RUb0FkbWluUGFuZWwoKSB7XG5cdFx0Xy5kZWxheSgoKSA9PiB7XG5cdFx0XHR3aW5kb3cubG9jYXRpb24uaHJlZiA9IHJvb3RBZG1pbigpO1xuXHRcdH0sIE1hZ2ljcy5UaW1lMTAwbXMpO1xuXHR9XG5cblx0Y2xlYXJDbGllbnRTaWRlVG9rZW4oKSB7XG5cdFx0aWYgKHdpbmRvdy5fX3JsYWhfY2xlYXIpIHtcblx0XHRcdHdpbmRvdy5fX3JsYWhfY2xlYXIoKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQHBhcmFtIHtzdHJpbmd9IHRva2VuXG5cdCAqL1xuXHRzZXRDbGllbnRTaWRlVG9rZW4odG9rZW4pIHtcblx0XHRpZiAod2luZG93Ll9fcmxhaF9zZXQpIHtcblx0XHRcdHdpbmRvdy5fX3JsYWhfc2V0KHRva2VuKTtcblxuXHRcdFx0U2V0dGluZ3Muc2V0dGluZ3NTZXQoJ0F1dGhBY2NvdW50SGFzaCcsIHRva2VuKTtcblx0XHRcdHBvcHVsYXRlQXV0aFN1ZmZpeCgpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBAcGFyYW0ge2Jvb2xlYW49fSBhZG1pbiA9IGZhbHNlXG5cdCAqIEBwYXJhbSB7Ym9vbGVhbj19IGxvZ291dCA9IGZhbHNlXG5cdCAqIEBwYXJhbSB7Ym9vbGVhbj19IGNsb3NlID0gZmFsc2Vcblx0ICovXG5cdGxvZ2luQW5kTG9nb3V0UmVsb2FkKGFkbWluID0gZmFsc2UsIGxvZ291dCA9IGZhbHNlLCBjbG9zZSA9IGZhbHNlKSB7XG5cdFx0Y29uc3QgaW5JZnJhbWUgPSAhIVNldHRpbmdzLmFwcFNldHRpbmdzR2V0KCdpbklmcmFtZScpO1xuXHRcdGxldCBjdXN0b21Mb2dvdXRMaW5rID0gcFN0cmluZyhTZXR0aW5ncy5hcHBTZXR0aW5nc0dldCgnY3VzdG9tTG9nb3V0TGluaycpKTtcblxuXHRcdGlmIChsb2dvdXQpIHtcblx0XHRcdHRoaXMuY2xlYXJDbGllbnRTaWRlVG9rZW4oKTtcblx0XHR9XG5cblx0XHRpZiAobG9nb3V0ICYmIGNsb3NlICYmIHdpbmRvdy5jbG9zZSkge1xuXHRcdFx0d2luZG93LmNsb3NlKCk7XG5cdFx0fVxuXG5cdFx0Y3VzdG9tTG9nb3V0TGluayA9IGN1c3RvbUxvZ291dExpbmsgfHwgKGFkbWluID8gcm9vdEFkbWluKCkgOiByb290VXNlcigpKTtcblxuXHRcdGlmIChsb2dvdXQgJiYgd2luZG93LmxvY2F0aW9uLmhyZWYgIT09IGN1c3RvbUxvZ291dExpbmspIHtcblx0XHRcdF8uZGVsYXkoKCkgPT4ge1xuXHRcdFx0XHRpZiAoaW5JZnJhbWUgJiYgd2luZG93LnBhcmVudCkge1xuXHRcdFx0XHRcdHdpbmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZiA9IGN1c3RvbUxvZ291dExpbms7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0d2luZG93LmxvY2F0aW9uLmhyZWYgPSBjdXN0b21Mb2dvdXRMaW5rO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0JHdpbi50cmlnZ2VyKCdybC50b29sdGlwcy5kaWFjdGl2YXRlJyk7XG5cdFx0XHR9LCBNYWdpY3MuVGltZTEwMG1zKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cm91dGVPZmYoKTtcblx0XHRcdHNldEhhc2gocm9vdCgpLCB0cnVlKTtcblx0XHRcdHJvdXRlT2ZmKCk7XG5cblx0XHRcdF8uZGVsYXkoKCkgPT4ge1xuXHRcdFx0XHRpZiAoaW5JZnJhbWUgJiYgd2luZG93LnBhcmVudCkge1xuXHRcdFx0XHRcdHdpbmRvdy5wYXJlbnQubG9jYXRpb24ucmVsb2FkKCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0d2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0JHdpbi50cmlnZ2VyKCdybC50b29sdGlwcy5kaWFjdGl2YXRlJyk7XG5cdFx0XHR9LCBNYWdpY3MuVGltZTEwMG1zKTtcblx0XHR9XG5cdH1cblxuXHRoaXN0b3J5QmFjaygpIHtcblx0XHR3aW5kb3cuaGlzdG9yeS5iYWNrKCk7XG5cdH1cblxuXHRib290c3RhcnQoKSB7XG5cdFx0Ly8gbG9nKCdQcycgKyAnc3MsIGhhYycgKyAna2VycyEgVGhlJyArICdyZVxcJ3Mgbm90JyArICdoaW5nIGludGUnICsgJ3Jlc3RpbmcgOicgKyAnKScpO1xuXG5cdFx0RXZlbnRzLnB1YigncmwuYm9vdHN0YXJ0Jyk7XG5cblx0XHRjb25zdCBtb2JpbGUgPSBTZXR0aW5ncy5hcHBTZXR0aW5nc0dldCgnbW9iaWxlJyk7XG5cblx0XHRrby5jb21wb25lbnRzLnJlZ2lzdGVyKCdTYXZlVHJpZ2dlcicsIHJlcXVpcmUoJ0NvbXBvbmVudC9TYXZlVHJpZ2dlcicpLmRlZmF1bHQpO1xuXHRcdGtvLmNvbXBvbmVudHMucmVnaXN0ZXIoJ0lucHV0JywgcmVxdWlyZSgnQ29tcG9uZW50L0lucHV0JykuZGVmYXVsdCk7XG5cdFx0a28uY29tcG9uZW50cy5yZWdpc3RlcignU2VsZWN0JywgcmVxdWlyZSgnQ29tcG9uZW50L1NlbGVjdCcpLmRlZmF1bHQpO1xuXHRcdGtvLmNvbXBvbmVudHMucmVnaXN0ZXIoJ1JhZGlvJywgcmVxdWlyZSgnQ29tcG9uZW50L1JhZGlvJykuZGVmYXVsdCk7XG5cdFx0a28uY29tcG9uZW50cy5yZWdpc3RlcignVGV4dEFyZWEnLCByZXF1aXJlKCdDb21wb25lbnQvVGV4dEFyZWEnKS5kZWZhdWx0KTtcblx0XHRrby5jb21wb25lbnRzLnJlZ2lzdGVyKCdEYXRlJywgcmVxdWlyZSgnQ29tcG9uZW50L0RhdGUnKS5kZWZhdWx0KTtcblxuXHRcdGtvLmNvbXBvbmVudHMucmVnaXN0ZXIoJ3gtc2NyaXB0JywgcmVxdWlyZSgnQ29tcG9uZW50L1NjcmlwdCcpLmRlZmF1bHQpO1xuXHRcdC8vIGtvLmNvbXBvbmVudHMucmVnaXN0ZXIoJ3N2Zy1pY29uJywgcmVxdWlyZSgnQ29tcG9uZW50L1N2Z0ljb24nKS5kZWZhdWx0KTtcblxuXHRcdGlmIChTZXR0aW5ncy5hcHBTZXR0aW5nc0dldCgnbWF0ZXJpYWxEZXNpZ24nKSAmJiBiQW5pbWF0aW9uU3VwcG9ydGVkKSB7XG5cdFx0XHRrby5jb21wb25lbnRzLnJlZ2lzdGVyKCdDaGVja2JveCcsIHJlcXVpcmUoJ0NvbXBvbmVudC9NYXRlcmlhbERlc2lnbi9DaGVja2JveCcpLmRlZmF1bHQpO1xuXHRcdFx0a28uY29tcG9uZW50cy5yZWdpc3RlcignQ2hlY2tib3hTaW1wbGUnLCByZXF1aXJlKCdDb21wb25lbnQvQ2hlY2tib3gnKS5kZWZhdWx0KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8ga28uY29tcG9uZW50cy5yZWdpc3RlcignQ2hlY2tib3gnLCByZXF1aXJlKCdDb21wb25lbnQvQ2xhc3NpYy9DaGVja2JveCcpLmRlZmF1bHQpO1xuXHRcdFx0Ly8ga28uY29tcG9uZW50cy5yZWdpc3RlcignQ2hlY2tib3hTaW1wbGUnLCByZXF1aXJlKCdDb21wb25lbnQvQ2xhc3NpYy9DaGVja2JveCcpLmRlZmF1bHQpO1xuXHRcdFx0a28uY29tcG9uZW50cy5yZWdpc3RlcignQ2hlY2tib3gnLCByZXF1aXJlKCdDb21wb25lbnQvQ2hlY2tib3gnKS5kZWZhdWx0KTtcblx0XHRcdGtvLmNvbXBvbmVudHMucmVnaXN0ZXIoJ0NoZWNrYm94U2ltcGxlJywgcmVxdWlyZSgnQ29tcG9uZW50L0NoZWNrYm94JykuZGVmYXVsdCk7XG5cdFx0fVxuXG5cdFx0aW5pdE9uU3RhcnRPckxhbmdDaGFuZ2UoaW5pdE5vdGlmaWNhdGlvbkxhbmd1YWdlKTtcblxuXHRcdF8uZGVsYXkod2luZG93UmVzaXplQ2FsbGJhY2ssIE1hZ2ljcy5UaW1lMXMpO1xuXG5cdFx0RXZlbnRzLnN1Yignc3NtLm1vYmlsZS1lbnRlcicsICgpID0+IHtcblx0XHRcdGxlZnRQYW5lbERpc2FibGVkKHRydWUpO1xuXHRcdH0pO1xuXG5cdFx0RXZlbnRzLnN1Yignc3NtLm1vYmlsZS1sZWF2ZScsICgpID0+IHtcblx0XHRcdGxlZnRQYW5lbERpc2FibGVkKGZhbHNlKTtcblx0XHR9KTtcblxuXHRcdGlmICghbW9iaWxlKSB7XG5cdFx0XHQkaHRtbC5hZGRDbGFzcygncmwtZGVza3RvcCcpO1xuXG5cdFx0XHRzc20uYWRkU3RhdGUoe1xuXHRcdFx0XHRpZDogJ21vYmlsZScsXG5cdFx0XHRcdHF1ZXJ5OiAnKG1heC13aWR0aDogNzY3cHgpJyxcblx0XHRcdFx0b25FbnRlcjogKCkgPT4ge1xuXHRcdFx0XHRcdCRodG1sLmFkZENsYXNzKCdzc20tc3RhdGUtbW9iaWxlJyk7XG5cdFx0XHRcdFx0RXZlbnRzLnB1Yignc3NtLm1vYmlsZS1lbnRlcicpO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRvbkxlYXZlOiAoKSA9PiB7XG5cdFx0XHRcdFx0JGh0bWwucmVtb3ZlQ2xhc3MoJ3NzbS1zdGF0ZS1tb2JpbGUnKTtcblx0XHRcdFx0XHRFdmVudHMucHViKCdzc20ubW9iaWxlLWxlYXZlJyk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXG5cdFx0XHRzc20uYWRkU3RhdGUoe1xuXHRcdFx0XHRpZDogJ3RhYmxldCcsXG5cdFx0XHRcdHF1ZXJ5OiAnKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTlweCknLFxuXHRcdFx0XHRvbkVudGVyOiAoKSA9PiB7XG5cdFx0XHRcdFx0JGh0bWwuYWRkQ2xhc3MoJ3NzbS1zdGF0ZS10YWJsZXQnKTtcblx0XHRcdFx0fSxcblx0XHRcdFx0b25MZWF2ZTogKCkgPT4ge1xuXHRcdFx0XHRcdCRodG1sLnJlbW92ZUNsYXNzKCdzc20tc3RhdGUtdGFibGV0Jyk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXG5cdFx0XHRzc20uYWRkU3RhdGUoe1xuXHRcdFx0XHRpZDogJ2Rlc2t0b3AnLFxuXHRcdFx0XHRxdWVyeTogJyhtaW4td2lkdGg6IDEwMDBweCkgYW5kIChtYXgtd2lkdGg6IDE0MDBweCknLFxuXHRcdFx0XHRvbkVudGVyOiAoKSA9PiB7XG5cdFx0XHRcdFx0JGh0bWwuYWRkQ2xhc3MoJ3NzbS1zdGF0ZS1kZXNrdG9wJyk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdG9uTGVhdmU6ICgpID0+IHtcblx0XHRcdFx0XHQkaHRtbC5yZW1vdmVDbGFzcygnc3NtLXN0YXRlLWRlc2t0b3AnKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cblx0XHRcdHNzbS5hZGRTdGF0ZSh7XG5cdFx0XHRcdGlkOiAnZGVza3RvcC1sYXJnZScsXG5cdFx0XHRcdHF1ZXJ5OiAnKG1pbi13aWR0aDogMTQwMXB4KScsXG5cdFx0XHRcdG9uRW50ZXI6ICgpID0+IHtcblx0XHRcdFx0XHQkaHRtbC5hZGRDbGFzcygnc3NtLXN0YXRlLWRlc2t0b3AtbGFyZ2UnKTtcblx0XHRcdFx0fSxcblx0XHRcdFx0b25MZWF2ZTogKCkgPT4ge1xuXHRcdFx0XHRcdCRodG1sLnJlbW92ZUNsYXNzKCdzc20tc3RhdGUtZGVza3RvcC1sYXJnZScpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0JGh0bWwuYWRkQ2xhc3MoJ3NzbS1zdGF0ZS1tb2JpbGUnKS5hZGRDbGFzcygncmwtbW9iaWxlJyk7XG5cdFx0XHRFdmVudHMucHViKCdzc20ubW9iaWxlLWVudGVyJyk7XG5cdFx0fVxuXG5cdFx0bGVmdFBhbmVsRGlzYWJsZWQuc3Vic2NyaWJlKChiVmFsdWUpID0+IHtcblx0XHRcdCRodG1sLnRvZ2dsZUNsYXNzKCdybC1sZWZ0LXBhbmVsLWRpc2FibGVkJywgYlZhbHVlKTtcblx0XHRcdCRodG1sLnRvZ2dsZUNsYXNzKCdybC1sZWZ0LXBhbmVsLWVuYWJsZWQnLCAhYlZhbHVlKTtcblx0XHR9KTtcblxuXHRcdGxlZnRQYW5lbFR5cGUuc3Vic2NyaWJlKChzVmFsdWUpID0+IHtcblx0XHRcdCRodG1sLnRvZ2dsZUNsYXNzKCdybC1sZWZ0LXBhbmVsLW5vbmUnLCAnbm9uZScgPT09IHNWYWx1ZSk7XG5cdFx0XHQkaHRtbC50b2dnbGVDbGFzcygncmwtbGVmdC1wYW5lbC1zaG9ydCcsICdzaG9ydCcgPT09IHNWYWx1ZSk7XG5cdFx0fSk7XG5cblx0XHRsZWZ0UGFuZWxEaXNhYmxlZC52YWx1ZUhhc011dGF0ZWQoKTtcblxuXHRcdExhbmd1YWdlU3RvcmUucG9wdWxhdGUoKTtcblx0XHRUaGVtZVN0b3JlLnBvcHVsYXRlKCk7XG5cdFx0U29jaWFsU3RvcmUucG9wdWxhdGUoKTtcblx0fVxufVxuXG5leHBvcnQgeyBBYnN0cmFjdEFwcCwgQWJzdHJhY3RBcHAgYXMgZGVmYXVsdCB9O1xuIiwiZXhwb3J0IGNsYXNzIEFic3RyYWN0Qm9vdCB7XG5cdGJvb3RzdGFydCgpIHtcblx0XHQvKiBuby1lbXB0eSAqL1xuXHR9XG59XG4iLCJpbXBvcnQgXyBmcm9tICdfJztcbmltcG9ydCBrbyBmcm9tICdrbyc7XG5pbXBvcnQgeyBpc1VuZCB9IGZyb20gJ0NvbW1vbi9VdGlscyc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbXBvbmVudCB9IGZyb20gJ0NvbXBvbmVudC9BYnN0cmFjdCc7XG5cbmNsYXNzIEFic3RyYWN0UmFkaW8gZXh0ZW5kcyBBYnN0cmFjdENvbXBvbmVudCB7XG5cdC8qKlxuXHQgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zXG5cdCAqL1xuXHRjb25zdHJ1Y3RvcihwYXJhbXMpIHtcblx0XHRzdXBlcigpO1xuXG5cdFx0dGhpcy52YWx1ZXMgPSBrby5vYnNlcnZhYmxlQXJyYXkoW10pO1xuXG5cdFx0dGhpcy52YWx1ZSA9IHBhcmFtcy52YWx1ZTtcblx0XHRpZiAoaXNVbmQodGhpcy52YWx1ZSkgfHwgIXRoaXMudmFsdWUuc3Vic2NyaWJlKSB7XG5cdFx0XHR0aGlzLnZhbHVlID0ga28ub2JzZXJ2YWJsZSgnJyk7XG5cdFx0fVxuXG5cdFx0dGhpcy5pbmxpbmUgPSBpc1VuZChwYXJhbXMuaW5saW5lKSA/IGZhbHNlIDogcGFyYW1zLmlubGluZTtcblx0XHR0aGlzLnJlYWRPbmx5ID0gaXNVbmQocGFyYW1zLnJlYWRPbmx5KSA/IGZhbHNlIDogISFwYXJhbXMucmVhZE9ubHk7XG5cblx0XHRpZiAocGFyYW1zLnZhbHVlcykge1xuXHRcdFx0dGhpcy52YWx1ZXMoXy5tYXAocGFyYW1zLnZhbHVlcywgKGxhYmVsLCB2YWx1ZSkgPT4gKHsgbGFiZWw6IGxhYmVsLCB2YWx1ZTogdmFsdWUgfSkpKTtcblx0XHR9XG5cblx0XHR0aGlzLmNsaWNrID0gXy5iaW5kKHRoaXMuY2xpY2ssIHRoaXMpO1xuXHR9XG5cblx0Y2xpY2sodmFsdWUpIHtcblx0XHRpZiAoIXRoaXMucmVhZE9ubHkgJiYgdmFsdWUpIHtcblx0XHRcdHRoaXMudmFsdWUodmFsdWUudmFsdWUpO1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgeyBBYnN0cmFjdFJhZGlvLCBBYnN0cmFjdFJhZGlvIGFzIGRlZmF1bHQgfTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICRmaWx0ZXIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykuZmlsdGVyO1xudmFyIGFycmF5TWV0aG9kSGFzU3BlY2llc1N1cHBvcnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWhhcy1zcGVjaWVzLXN1cHBvcnQnKTtcblxudmFyIEhBU19TUEVDSUVTX1NVUFBPUlQgPSBhcnJheU1ldGhvZEhhc1NwZWNpZXNTdXBwb3J0KCdmaWx0ZXInKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5maWx0ZXJgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZmlsdGVyXG4vLyB3aXRoIGFkZGluZyBzdXBwb3J0IG9mIEBAc3BlY2llc1xuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogIUhBU19TUEVDSUVTX1NVUFBPUlQgfSwge1xuICBmaWx0ZXI6IGZ1bmN0aW9uIGZpbHRlcihjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICAgIHJldHVybiAkZmlsdGVyKHRoaXMsIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZml4UmVnRXhwV2VsbEtub3duU3ltYm9sTG9naWMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZml4LXJlZ2V4cC13ZWxsLWtub3duLXN5bWJvbC1sb2dpYycpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG52YXIgc2FtZVZhbHVlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NhbWUtdmFsdWUnKTtcbnZhciByZWdFeHBFeGVjID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZ2V4cC1leGVjLWFic3RyYWN0Jyk7XG5cbi8vIEBAc2VhcmNoIGxvZ2ljXG5maXhSZWdFeHBXZWxsS25vd25TeW1ib2xMb2dpYygnc2VhcmNoJywgMSwgZnVuY3Rpb24gKFNFQVJDSCwgbmF0aXZlU2VhcmNoLCBtYXliZUNhbGxOYXRpdmUpIHtcbiAgcmV0dXJuIFtcbiAgICAvLyBgU3RyaW5nLnByb3RvdHlwZS5zZWFyY2hgIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS5zZWFyY2hcbiAgICBmdW5jdGlvbiBzZWFyY2gocmVnZXhwKSB7XG4gICAgICB2YXIgTyA9IHJlcXVpcmVPYmplY3RDb2VyY2libGUodGhpcyk7XG4gICAgICB2YXIgc2VhcmNoZXIgPSByZWdleHAgPT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogcmVnZXhwW1NFQVJDSF07XG4gICAgICByZXR1cm4gc2VhcmNoZXIgIT09IHVuZGVmaW5lZCA/IHNlYXJjaGVyLmNhbGwocmVnZXhwLCBPKSA6IG5ldyBSZWdFeHAocmVnZXhwKVtTRUFSQ0hdKFN0cmluZyhPKSk7XG4gICAgfSxcbiAgICAvLyBgUmVnRXhwLnByb3RvdHlwZVtAQHNlYXJjaF1gIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVnZXhwLnByb3RvdHlwZS1AQHNlYXJjaFxuICAgIGZ1bmN0aW9uIChyZWdleHApIHtcbiAgICAgIHZhciByZXMgPSBtYXliZUNhbGxOYXRpdmUobmF0aXZlU2VhcmNoLCByZWdleHAsIHRoaXMpO1xuICAgICAgaWYgKHJlcy5kb25lKSByZXR1cm4gcmVzLnZhbHVlO1xuXG4gICAgICB2YXIgcnggPSBhbk9iamVjdChyZWdleHApO1xuICAgICAgdmFyIFMgPSBTdHJpbmcodGhpcyk7XG5cbiAgICAgIHZhciBwcmV2aW91c0xhc3RJbmRleCA9IHJ4Lmxhc3RJbmRleDtcbiAgICAgIGlmICghc2FtZVZhbHVlKHByZXZpb3VzTGFzdEluZGV4LCAwKSkgcngubGFzdEluZGV4ID0gMDtcbiAgICAgIHZhciByZXN1bHQgPSByZWdFeHBFeGVjKHJ4LCBTKTtcbiAgICAgIGlmICghc2FtZVZhbHVlKHJ4Lmxhc3RJbmRleCwgcHJldmlvdXNMYXN0SW5kZXgpKSByeC5sYXN0SW5kZXggPSBwcmV2aW91c0xhc3RJbmRleDtcbiAgICAgIHJldHVybiByZXN1bHQgPT09IG51bGwgPyAtMSA6IHJlc3VsdC5pbmRleDtcbiAgICB9XG4gIF07XG59KTtcbiIsInZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xuXG52YXIgcXVvdCA9IC9cIi9nO1xuXG4vLyBCLjIuMy4yLjEgQ3JlYXRlSFRNTChzdHJpbmcsIHRhZywgYXR0cmlidXRlLCB2YWx1ZSlcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtY3JlYXRlaHRtbFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoc3RyaW5nLCB0YWcsIGF0dHJpYnV0ZSwgdmFsdWUpIHtcbiAgdmFyIFMgPSBTdHJpbmcocmVxdWlyZU9iamVjdENvZXJjaWJsZShzdHJpbmcpKTtcbiAgdmFyIHAxID0gJzwnICsgdGFnO1xuICBpZiAoYXR0cmlidXRlICE9PSAnJykgcDEgKz0gJyAnICsgYXR0cmlidXRlICsgJz1cIicgKyBTdHJpbmcodmFsdWUpLnJlcGxhY2UocXVvdCwgJyZxdW90OycpICsgJ1wiJztcbiAgcmV0dXJuIHAxICsgJz4nICsgUyArICc8LycgKyB0YWcgKyAnPic7XG59O1xuIiwidmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbi8vIGNoZWNrIHRoZSBleGlzdGVuY2Ugb2YgYSBtZXRob2QsIGxvd2VyY2FzZVxuLy8gb2YgYSB0YWcgYW5kIGVzY2FwaW5nIHF1b3RlcyBpbiBhcmd1bWVudHNcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE1FVEhPRF9OQU1FKSB7XG4gIHJldHVybiBmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHRlc3QgPSAnJ1tNRVRIT0RfTkFNRV0oJ1wiJyk7XG4gICAgcmV0dXJuIHRlc3QgIT09IHRlc3QudG9Mb3dlckNhc2UoKSB8fCB0ZXN0LnNwbGl0KCdcIicpLmxlbmd0aCA+IDM7XG4gIH0pO1xufTtcbiIsInZhciBwYXJlbnQgPSByZXF1aXJlKCcuLi8uLi9lcy9pbnN0YW5jZS90cmltJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGFyZW50O1xuIiwidmFyIHRyaW0gPSByZXF1aXJlKCcuLi9zdHJpbmcvdmlydHVhbC90cmltJyk7XG5cbnZhciBTdHJpbmdQcm90b3R5cGUgPSBTdHJpbmcucHJvdG90eXBlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgb3duID0gaXQudHJpbTtcbiAgcmV0dXJuIHR5cGVvZiBpdCA9PT0gJ3N0cmluZycgfHwgaXQgPT09IFN0cmluZ1Byb3RvdHlwZVxuICAgIHx8IChpdCBpbnN0YW5jZW9mIFN0cmluZyAmJiBvd24gPT09IFN0cmluZ1Byb3RvdHlwZS50cmltKSA/IHRyaW0gOiBvd247XG59O1xuIiwicmVxdWlyZSgnLi4vLi4vLi4vbW9kdWxlcy9lcy5zdHJpbmcudHJpbScpO1xudmFyIGVudHJ5VmlydHVhbCA9IHJlcXVpcmUoJy4uLy4uLy4uL2ludGVybmFscy9lbnRyeS12aXJ0dWFsJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZW50cnlWaXJ0dWFsKCdTdHJpbmcnKS50cmltO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgJHRyaW0gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLXRyaW0nKS50cmltO1xudmFyIGZvcmNlZFN0cmluZ1RyaW1NZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLXRyaW0tZm9yY2VkJyk7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlLnRyaW1gIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLnRyaW1cbiQoeyB0YXJnZXQ6ICdTdHJpbmcnLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiBmb3JjZWRTdHJpbmdUcmltTWV0aG9kKCd0cmltJykgfSwge1xuICB0cmltOiBmdW5jdGlvbiB0cmltKCkge1xuICAgIHJldHVybiAkdHJpbSh0aGlzKTtcbiAgfVxufSk7XG4iLCJ2YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcbnZhciB3aGl0ZXNwYWNlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93aGl0ZXNwYWNlcycpO1xuXG52YXIgd2hpdGVzcGFjZSA9ICdbJyArIHdoaXRlc3BhY2VzICsgJ10nO1xudmFyIGx0cmltID0gUmVnRXhwKCdeJyArIHdoaXRlc3BhY2UgKyB3aGl0ZXNwYWNlICsgJyonKTtcbnZhciBydHJpbSA9IFJlZ0V4cCh3aGl0ZXNwYWNlICsgd2hpdGVzcGFjZSArICcqJCcpO1xuXG4vLyBgU3RyaW5nLnByb3RvdHlwZS57IHRyaW0sIHRyaW1TdGFydCwgdHJpbUVuZCwgdHJpbUxlZnQsIHRyaW1SaWdodCB9YCBtZXRob2RzIGltcGxlbWVudGF0aW9uXG52YXIgY3JlYXRlTWV0aG9kID0gZnVuY3Rpb24gKFRZUEUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgkdGhpcykge1xuICAgIHZhciBzdHJpbmcgPSBTdHJpbmcocmVxdWlyZU9iamVjdENvZXJjaWJsZSgkdGhpcykpO1xuICAgIGlmIChUWVBFICYgMSkgc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UobHRyaW0sICcnKTtcbiAgICBpZiAoVFlQRSAmIDIpIHN0cmluZyA9IHN0cmluZy5yZXBsYWNlKHJ0cmltLCAnJyk7XG4gICAgcmV0dXJuIHN0cmluZztcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgU3RyaW5nLnByb3RvdHlwZS57IHRyaW1MZWZ0LCB0cmltU3RhcnQgfWAgbWV0aG9kc1xuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUudHJpbXN0YXJ0XG4gIHN0YXJ0OiBjcmVhdGVNZXRob2QoMSksXG4gIC8vIGBTdHJpbmcucHJvdG90eXBlLnsgdHJpbVJpZ2h0LCB0cmltRW5kIH1gIG1ldGhvZHNcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLnRyaW1lbmRcbiAgZW5kOiBjcmVhdGVNZXRob2QoMiksXG4gIC8vIGBTdHJpbmcucHJvdG90eXBlLnRyaW1gIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUudHJpbVxuICB0cmltOiBjcmVhdGVNZXRob2QoMylcbn07XG4iLCJ2YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciB3aGl0ZXNwYWNlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93aGl0ZXNwYWNlcycpO1xuXG52YXIgbm9uID0gJ1xcdTIwMEJcXHUwMDg1XFx1MTgwRSc7XG5cbi8vIGNoZWNrIHRoYXQgYSBtZXRob2Qgd29ya3Mgd2l0aCB0aGUgY29ycmVjdCBsaXN0XG4vLyBvZiB3aGl0ZXNwYWNlcyBhbmQgaGFzIGEgY29ycmVjdCBuYW1lXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChNRVRIT0RfTkFNRSkge1xuICByZXR1cm4gZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAhIXdoaXRlc3BhY2VzW01FVEhPRF9OQU1FXSgpIHx8IG5vbltNRVRIT0RfTkFNRV0oKSAhPSBub24gfHwgd2hpdGVzcGFjZXNbTUVUSE9EX05BTUVdLm5hbWUgIT09IE1FVEhPRF9OQU1FO1xuICB9KTtcbn07XG4iLCJ2YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vZXMvaW5zdGFuY2UvZmluZCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsInZhciBmaW5kID0gcmVxdWlyZSgnLi4vYXJyYXkvdmlydHVhbC9maW5kJyk7XG5cbnZhciBBcnJheVByb3RvdHlwZSA9IEFycmF5LnByb3RvdHlwZTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIG93biA9IGl0LmZpbmQ7XG4gIHJldHVybiBpdCA9PT0gQXJyYXlQcm90b3R5cGUgfHwgKGl0IGluc3RhbmNlb2YgQXJyYXkgJiYgb3duID09PSBBcnJheVByb3RvdHlwZS5maW5kKSA/IGZpbmQgOiBvd247XG59O1xuIiwicmVxdWlyZSgnLi4vLi4vLi4vbW9kdWxlcy9lcy5hcnJheS5maW5kJyk7XG52YXIgZW50cnlWaXJ0dWFsID0gcmVxdWlyZSgnLi4vLi4vLi4vaW50ZXJuYWxzL2VudHJ5LXZpcnR1YWwnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBlbnRyeVZpcnR1YWwoJ0FycmF5JykuZmluZDtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICRmaW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbicpLmZpbmQ7XG52YXIgYWRkVG9VbnNjb3BhYmxlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hZGQtdG8tdW5zY29wYWJsZXMnKTtcbnZhciBhcnJheU1ldGhvZFVzZXNUb0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtdXNlcy10by1sZW5ndGgnKTtcblxudmFyIEZJTkQgPSAnZmluZCc7XG52YXIgU0tJUFNfSE9MRVMgPSB0cnVlO1xuXG52YXIgVVNFU19UT19MRU5HVEggPSBhcnJheU1ldGhvZFVzZXNUb0xlbmd0aChGSU5EKTtcblxuLy8gU2hvdWxkbid0IHNraXAgaG9sZXNcbmlmIChGSU5EIGluIFtdKSBBcnJheSgxKVtGSU5EXShmdW5jdGlvbiAoKSB7IFNLSVBTX0hPTEVTID0gZmFsc2U7IH0pO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLmZpbmRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZmluZFxuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogU0tJUFNfSE9MRVMgfHwgIVVTRVNfVE9fTEVOR1RIIH0sIHtcbiAgZmluZDogZnVuY3Rpb24gZmluZChjYWxsYmFja2ZuIC8qICwgdGhhdCA9IHVuZGVmaW5lZCAqLykge1xuICAgIHJldHVybiAkZmluZCh0aGlzLCBjYWxsYmFja2ZuLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4gIH1cbn0pO1xuXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS1AQHVuc2NvcGFibGVzXG5hZGRUb1Vuc2NvcGFibGVzKEZJTkQpO1xuIiwidmFyIHBhcmVudCA9IHJlcXVpcmUoJy4uLy4uL2VzL2luc3RhbmNlL2NvbmNhdCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsInZhciBjb25jYXQgPSByZXF1aXJlKCcuLi9hcnJheS92aXJ0dWFsL2NvbmNhdCcpO1xuXG52YXIgQXJyYXlQcm90b3R5cGUgPSBBcnJheS5wcm90b3R5cGU7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBvd24gPSBpdC5jb25jYXQ7XG4gIHJldHVybiBpdCA9PT0gQXJyYXlQcm90b3R5cGUgfHwgKGl0IGluc3RhbmNlb2YgQXJyYXkgJiYgb3duID09PSBBcnJheVByb3RvdHlwZS5jb25jYXQpID8gY29uY2F0IDogb3duO1xufTtcbiIsInJlcXVpcmUoJy4uLy4uLy4uL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0Jyk7XG52YXIgZW50cnlWaXJ0dWFsID0gcmVxdWlyZSgnLi4vLi4vLi4vaW50ZXJuYWxzL2VudHJ5LXZpcnR1YWwnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBlbnRyeVZpcnR1YWwoJ0FycmF5JykuY29uY2F0O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWFycmF5Jyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG52YXIgY3JlYXRlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5Jyk7XG52YXIgYXJyYXlTcGVjaWVzQ3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXNwZWNpZXMtY3JlYXRlJyk7XG52YXIgYXJyYXlNZXRob2RIYXNTcGVjaWVzU3VwcG9ydCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtaGFzLXNwZWNpZXMtc3VwcG9ydCcpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIFY4X1ZFUlNJT04gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW5naW5lLXY4LXZlcnNpb24nKTtcblxudmFyIElTX0NPTkNBVF9TUFJFQURBQkxFID0gd2VsbEtub3duU3ltYm9sKCdpc0NvbmNhdFNwcmVhZGFibGUnKTtcbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gMHgxRkZGRkZGRkZGRkZGRjtcbnZhciBNQVhJTVVNX0FMTE9XRURfSU5ERVhfRVhDRUVERUQgPSAnTWF4aW11bSBhbGxvd2VkIGluZGV4IGV4Y2VlZGVkJztcblxuLy8gV2UgY2FuJ3QgdXNlIHRoaXMgZmVhdHVyZSBkZXRlY3Rpb24gaW4gVjggc2luY2UgaXQgY2F1c2VzXG4vLyBkZW9wdGltaXphdGlvbiBhbmQgc2VyaW91cyBwZXJmb3JtYW5jZSBkZWdyYWRhdGlvblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzY3OVxudmFyIElTX0NPTkNBVF9TUFJFQURBQkxFX1NVUFBPUlQgPSBWOF9WRVJTSU9OID49IDUxIHx8ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHZhciBhcnJheSA9IFtdO1xuICBhcnJheVtJU19DT05DQVRfU1BSRUFEQUJMRV0gPSBmYWxzZTtcbiAgcmV0dXJuIGFycmF5LmNvbmNhdCgpWzBdICE9PSBhcnJheTtcbn0pO1xuXG52YXIgU1BFQ0lFU19TVVBQT1JUID0gYXJyYXlNZXRob2RIYXNTcGVjaWVzU3VwcG9ydCgnY29uY2F0Jyk7XG5cbnZhciBpc0NvbmNhdFNwcmVhZGFibGUgPSBmdW5jdGlvbiAoTykge1xuICBpZiAoIWlzT2JqZWN0KE8pKSByZXR1cm4gZmFsc2U7XG4gIHZhciBzcHJlYWRhYmxlID0gT1tJU19DT05DQVRfU1BSRUFEQUJMRV07XG4gIHJldHVybiBzcHJlYWRhYmxlICE9PSB1bmRlZmluZWQgPyAhIXNwcmVhZGFibGUgOiBpc0FycmF5KE8pO1xufTtcblxudmFyIEZPUkNFRCA9ICFJU19DT05DQVRfU1BSRUFEQUJMRV9TVVBQT1JUIHx8ICFTUEVDSUVTX1NVUFBPUlQ7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuY29uY2F0YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmNvbmNhdFxuLy8gd2l0aCBhZGRpbmcgc3VwcG9ydCBvZiBAQGlzQ29uY2F0U3ByZWFkYWJsZSBhbmQgQEBzcGVjaWVzXG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiBGT1JDRUQgfSwge1xuICBjb25jYXQ6IGZ1bmN0aW9uIGNvbmNhdChhcmcpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICAgIHZhciBPID0gdG9PYmplY3QodGhpcyk7XG4gICAgdmFyIEEgPSBhcnJheVNwZWNpZXNDcmVhdGUoTywgMCk7XG4gICAgdmFyIG4gPSAwO1xuICAgIHZhciBpLCBrLCBsZW5ndGgsIGxlbiwgRTtcbiAgICBmb3IgKGkgPSAtMSwgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICBFID0gaSA9PT0gLTEgPyBPIDogYXJndW1lbnRzW2ldO1xuICAgICAgaWYgKGlzQ29uY2F0U3ByZWFkYWJsZShFKSkge1xuICAgICAgICBsZW4gPSB0b0xlbmd0aChFLmxlbmd0aCk7XG4gICAgICAgIGlmIChuICsgbGVuID4gTUFYX1NBRkVfSU5URUdFUikgdGhyb3cgVHlwZUVycm9yKE1BWElNVU1fQUxMT1dFRF9JTkRFWF9FWENFRURFRCk7XG4gICAgICAgIGZvciAoayA9IDA7IGsgPCBsZW47IGsrKywgbisrKSBpZiAoayBpbiBFKSBjcmVhdGVQcm9wZXJ0eShBLCBuLCBFW2tdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChuID49IE1BWF9TQUZFX0lOVEVHRVIpIHRocm93IFR5cGVFcnJvcihNQVhJTVVNX0FMTE9XRURfSU5ERVhfRVhDRUVERUQpO1xuICAgICAgICBjcmVhdGVQcm9wZXJ0eShBLCBuKyssIEUpO1xuICAgICAgfVxuICAgIH1cbiAgICBBLmxlbmd0aCA9IG47XG4gICAgcmV0dXJuIEE7XG4gIH1cbn0pO1xuIiwicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLml0ZXJhdG9yJyk7XG52YXIgdmFsdWVzID0gcmVxdWlyZSgnLi4vYXJyYXkvdmlydHVhbC92YWx1ZXMnKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vLi4vaW50ZXJuYWxzL2NsYXNzb2YnKTtcbnZhciBBcnJheVByb3RvdHlwZSA9IEFycmF5LnByb3RvdHlwZTtcblxudmFyIERPTUl0ZXJhYmxlcyA9IHtcbiAgRE9NVG9rZW5MaXN0OiB0cnVlLFxuICBOb2RlTGlzdDogdHJ1ZVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIG93biA9IGl0LnZhbHVlcztcbiAgcmV0dXJuIGl0ID09PSBBcnJheVByb3RvdHlwZSB8fCAoaXQgaW5zdGFuY2VvZiBBcnJheSAmJiBvd24gPT09IEFycmF5UHJvdG90eXBlLnZhbHVlcylcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zXG4gICAgfHwgRE9NSXRlcmFibGVzLmhhc093blByb3BlcnR5KGNsYXNzb2YoaXQpKSA/IHZhbHVlcyA6IG93bjtcbn07XG4iLCJ2YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vLi4vZXMvYXJyYXkvdmlydHVhbC92YWx1ZXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCJyZXF1aXJlKCcuLi8uLi8uLi9tb2R1bGVzL2VzLmFycmF5Lml0ZXJhdG9yJyk7XG52YXIgZW50cnlWaXJ0dWFsID0gcmVxdWlyZSgnLi4vLi4vLi4vaW50ZXJuYWxzL2VudHJ5LXZpcnR1YWwnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBlbnRyeVZpcnR1YWwoJ0FycmF5JykudmFsdWVzO1xuIiwidmFyIHBhcmVudCA9IHJlcXVpcmUoJy4uLy4uL2VzL2luc3RhbmNlL3JlZHVjZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsInJlcXVpcmUoJy4uLy4uLy4uL21vZHVsZXMvZXMuYXJyYXkucmVkdWNlJyk7XG52YXIgZW50cnlWaXJ0dWFsID0gcmVxdWlyZSgnLi4vLi4vLi4vaW50ZXJuYWxzL2VudHJ5LXZpcnR1YWwnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBlbnRyeVZpcnR1YWwoJ0FycmF5JykucmVkdWNlO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgJHJlZHVjZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1yZWR1Y2UnKS5sZWZ0O1xudmFyIGFycmF5TWV0aG9kSXNTdHJpY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWlzLXN0cmljdCcpO1xudmFyIGFycmF5TWV0aG9kVXNlc1RvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LW1ldGhvZC11c2VzLXRvLWxlbmd0aCcpO1xudmFyIENIUk9NRV9WRVJTSU9OID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VuZ2luZS12OC12ZXJzaW9uJyk7XG52YXIgSVNfTk9ERSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtaXMtbm9kZScpO1xuXG52YXIgU1RSSUNUX01FVEhPRCA9IGFycmF5TWV0aG9kSXNTdHJpY3QoJ3JlZHVjZScpO1xudmFyIFVTRVNfVE9fTEVOR1RIID0gYXJyYXlNZXRob2RVc2VzVG9MZW5ndGgoJ3JlZHVjZScsIHsgMTogMCB9KTtcbi8vIENocm9tZSA4MC04MiBoYXMgYSBjcml0aWNhbCBidWdcbi8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTEwNDk5ODJcbnZhciBDSFJPTUVfQlVHID0gIUlTX05PREUgJiYgQ0hST01FX1ZFUlNJT04gPiA3OSAmJiBDSFJPTUVfVkVSU0lPTiA8IDgzO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLnJlZHVjZWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5yZWR1Y2VcbiQoeyB0YXJnZXQ6ICdBcnJheScsIHByb3RvOiB0cnVlLCBmb3JjZWQ6ICFTVFJJQ1RfTUVUSE9EIHx8ICFVU0VTX1RPX0xFTkdUSCB8fCBDSFJPTUVfQlVHIH0sIHtcbiAgcmVkdWNlOiBmdW5jdGlvbiByZWR1Y2UoY2FsbGJhY2tmbiAvKiAsIGluaXRpYWxWYWx1ZSAqLykge1xuICAgIHJldHVybiAkcmVkdWNlKHRoaXMsIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbiAgfVxufSk7XG4iLCJ2YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtZnVuY3Rpb24nKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciBJbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luZGV4ZWQtb2JqZWN0Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUueyByZWR1Y2UsIHJlZHVjZVJpZ2h0IH1gIG1ldGhvZHMgaW1wbGVtZW50YXRpb25cbnZhciBjcmVhdGVNZXRob2QgPSBmdW5jdGlvbiAoSVNfUklHSFQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh0aGF0LCBjYWxsYmFja2ZuLCBhcmd1bWVudHNMZW5ndGgsIG1lbW8pIHtcbiAgICBhRnVuY3Rpb24oY2FsbGJhY2tmbik7XG4gICAgdmFyIE8gPSB0b09iamVjdCh0aGF0KTtcbiAgICB2YXIgc2VsZiA9IEluZGV4ZWRPYmplY3QoTyk7XG4gICAgdmFyIGxlbmd0aCA9IHRvTGVuZ3RoKE8ubGVuZ3RoKTtcbiAgICB2YXIgaW5kZXggPSBJU19SSUdIVCA/IGxlbmd0aCAtIDEgOiAwO1xuICAgIHZhciBpID0gSVNfUklHSFQgPyAtMSA6IDE7XG4gICAgaWYgKGFyZ3VtZW50c0xlbmd0aCA8IDIpIHdoaWxlICh0cnVlKSB7XG4gICAgICBpZiAoaW5kZXggaW4gc2VsZikge1xuICAgICAgICBtZW1vID0gc2VsZltpbmRleF07XG4gICAgICAgIGluZGV4ICs9IGk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaW5kZXggKz0gaTtcbiAgICAgIGlmIChJU19SSUdIVCA/IGluZGV4IDwgMCA6IGxlbmd0aCA8PSBpbmRleCkge1xuICAgICAgICB0aHJvdyBUeXBlRXJyb3IoJ1JlZHVjZSBvZiBlbXB0eSBhcnJheSB3aXRoIG5vIGluaXRpYWwgdmFsdWUnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yICg7SVNfUklHSFQgPyBpbmRleCA+PSAwIDogbGVuZ3RoID4gaW5kZXg7IGluZGV4ICs9IGkpIGlmIChpbmRleCBpbiBzZWxmKSB7XG4gICAgICBtZW1vID0gY2FsbGJhY2tmbihtZW1vLCBzZWxmW2luZGV4XSwgaW5kZXgsIE8pO1xuICAgIH1cbiAgICByZXR1cm4gbWVtbztcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgQXJyYXkucHJvdG90eXBlLnJlZHVjZWAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLnJlZHVjZVxuICBsZWZ0OiBjcmVhdGVNZXRob2QoZmFsc2UpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUucmVkdWNlcmlnaHRcbiAgcmlnaHQ6IGNyZWF0ZU1ldGhvZCh0cnVlKVxufTtcbiIsInZhciBwYXJlbnQgPSByZXF1aXJlKCcuLi8uLi9lcy9pbnN0YW5jZS9tYXAnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCJ2YXIgbWFwID0gcmVxdWlyZSgnLi4vYXJyYXkvdmlydHVhbC9tYXAnKTtcblxudmFyIEFycmF5UHJvdG90eXBlID0gQXJyYXkucHJvdG90eXBlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgb3duID0gaXQubWFwO1xuICByZXR1cm4gaXQgPT09IEFycmF5UHJvdG90eXBlIHx8IChpdCBpbnN0YW5jZW9mIEFycmF5ICYmIG93biA9PT0gQXJyYXlQcm90b3R5cGUubWFwKSA/IG1hcCA6IG93bjtcbn07XG4iLCJyZXF1aXJlKCcuLi8uLi8uLi9tb2R1bGVzL2VzLmFycmF5Lm1hcCcpO1xudmFyIGVudHJ5VmlydHVhbCA9IHJlcXVpcmUoJy4uLy4uLy4uL2ludGVybmFscy9lbnRyeS12aXJ0dWFsJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZW50cnlWaXJ0dWFsKCdBcnJheScpLm1hcDtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICRtYXAgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykubWFwO1xudmFyIGFycmF5TWV0aG9kSGFzU3BlY2llc1N1cHBvcnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWhhcy1zcGVjaWVzLXN1cHBvcnQnKTtcbnZhciBhcnJheU1ldGhvZFVzZXNUb0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtdXNlcy10by1sZW5ndGgnKTtcblxudmFyIEhBU19TUEVDSUVTX1NVUFBPUlQgPSBhcnJheU1ldGhvZEhhc1NwZWNpZXNTdXBwb3J0KCdtYXAnKTtcbi8vIEZGNDktIGlzc3VlXG52YXIgVVNFU19UT19MRU5HVEggPSBhcnJheU1ldGhvZFVzZXNUb0xlbmd0aCgnbWFwJyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUubWFwYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLm1hcFxuLy8gd2l0aCBhZGRpbmcgc3VwcG9ydCBvZiBAQHNwZWNpZXNcbiQoeyB0YXJnZXQ6ICdBcnJheScsIHByb3RvOiB0cnVlLCBmb3JjZWQ6ICFIQVNfU1BFQ0lFU19TVVBQT1JUIHx8ICFVU0VTX1RPX0xFTkdUSCB9LCB7XG4gIG1hcDogZnVuY3Rpb24gbWFwKGNhbGxiYWNrZm4gLyogLCB0aGlzQXJnICovKSB7XG4gICAgcmV0dXJuICRtYXAodGhpcywgY2FsbGJhY2tmbiwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xuICB9XG59KTtcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWFycmF5Jyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBTUEVDSUVTID0gd2VsbEtub3duU3ltYm9sKCdzcGVjaWVzJyk7XG5cbi8vIGBBcnJheVNwZWNpZXNDcmVhdGVgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheXNwZWNpZXNjcmVhdGVcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9yaWdpbmFsQXJyYXksIGxlbmd0aCkge1xuICB2YXIgQztcbiAgaWYgKGlzQXJyYXkob3JpZ2luYWxBcnJheSkpIHtcbiAgICBDID0gb3JpZ2luYWxBcnJheS5jb25zdHJ1Y3RvcjtcbiAgICAvLyBjcm9zcy1yZWFsbSBmYWxsYmFja1xuICAgIGlmICh0eXBlb2YgQyA9PSAnZnVuY3Rpb24nICYmIChDID09PSBBcnJheSB8fCBpc0FycmF5KEMucHJvdG90eXBlKSkpIEMgPSB1bmRlZmluZWQ7XG4gICAgZWxzZSBpZiAoaXNPYmplY3QoQykpIHtcbiAgICAgIEMgPSBDW1NQRUNJRVNdO1xuICAgICAgaWYgKEMgPT09IG51bGwpIEMgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9IHJldHVybiBuZXcgKEMgPT09IHVuZGVmaW5lZCA/IEFycmF5IDogQykobGVuZ3RoID09PSAwID8gMCA6IGxlbmd0aCk7XG59O1xuIiwidmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcblxuLy8gYElzQXJyYXlgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1pc2FycmF5XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tYXJyYXktaXNhcnJheSAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IEFycmF5LmlzQXJyYXkgfHwgZnVuY3Rpb24gaXNBcnJheShhcmcpIHtcbiAgcmV0dXJuIGNsYXNzb2YoYXJnKSA9PSAnQXJyYXknO1xufTtcbiIsInZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIFY4X1ZFUlNJT04gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW5naW5lLXY4LXZlcnNpb24nKTtcblxudmFyIFNQRUNJRVMgPSB3ZWxsS25vd25TeW1ib2woJ3NwZWNpZXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTUVUSE9EX05BTUUpIHtcbiAgLy8gV2UgY2FuJ3QgdXNlIHRoaXMgZmVhdHVyZSBkZXRlY3Rpb24gaW4gVjggc2luY2UgaXQgY2F1c2VzXG4gIC8vIGRlb3B0aW1pemF0aW9uIGFuZCBzZXJpb3VzIHBlcmZvcm1hbmNlIGRlZ3JhZGF0aW9uXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy82NzdcbiAgcmV0dXJuIFY4X1ZFUlNJT04gPj0gNTEgfHwgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgYXJyYXkgPSBbXTtcbiAgICB2YXIgY29uc3RydWN0b3IgPSBhcnJheS5jb25zdHJ1Y3RvciA9IHt9O1xuICAgIGNvbnN0cnVjdG9yW1NQRUNJRVNdID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHsgZm9vOiAxIH07XG4gICAgfTtcbiAgICByZXR1cm4gYXJyYXlbTUVUSE9EX05BTUVdKEJvb2xlYW4pLmZvbyAhPT0gMTtcbiAgfSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRmb3JFYWNoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbicpLmZvckVhY2g7XG52YXIgYXJyYXlNZXRob2RJc1N0cmljdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtaXMtc3RyaWN0Jyk7XG5cbnZhciBTVFJJQ1RfTUVUSE9EID0gYXJyYXlNZXRob2RJc1N0cmljdCgnZm9yRWFjaCcpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLmZvckVhY2hgIG1ldGhvZCBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZm9yZWFjaFxubW9kdWxlLmV4cG9ydHMgPSAhU1RSSUNUX01FVEhPRCA/IGZ1bmN0aW9uIGZvckVhY2goY2FsbGJhY2tmbiAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgcmV0dXJuICRmb3JFYWNoKHRoaXMsIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1hcnJheS1wcm90b3R5cGUtZm9yZWFjaCAtLSBzYWZlXG59IDogW10uZm9yRWFjaDtcbiIsIi8vIGBTYW1lVmFsdWVgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zYW1ldmFsdWVcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtaXMgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuaXMgfHwgZnVuY3Rpb24gaXMoeCwgeSkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlIC0tIE5hTiBjaGVja1xuICByZXR1cm4geCA9PT0geSA/IHggIT09IDAgfHwgMSAvIHggPT09IDEgLyB5IDogeCAhPSB4ICYmIHkgIT0geTtcbn07XG4iLCJleHBvcnQgZGVmYXVsdCBcIjxodG1sPlxcbjxoZWFkPlxcblxcdDxtZXRhIGNoYXJzZXQ9XFxcInV0Zi04XFxcIiAvPlxcblxcdDxtZXRhIG5hbWU9XFxcInZpZXdwb3J0XFxcIiBjb250ZW50PVxcXCJ1c2VyLXNjYWxhYmxlPW5vXFxcIiAvPlxcblxcdDxtZXRhIG5hbWU9XFxcImFwcGxlLW1vYmlsZS13ZWItYXBwLWNhcGFibGVcXFwiIGNvbnRlbnQ9XFxcInllc1xcXCIgLz5cXG5cXHQ8bWV0YSBuYW1lPVxcXCJyb2JvdHNcXFwiIGNvbnRlbnQ9XFxcIm5vaW5kZXgsIG5vZm9sbG93LCBub29kcFxcXCIgLz5cXG5cXHQ8dGl0bGU+e3t0aXRsZX19PC90aXRsZT5cXG5cXHQ8c3R5bGU+XFxuaHRtbCwgYm9keSB7XFxuXFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG5cXHRmb250LXNpemU6IDEzcHg7XFxuXFx0Zm9udC1mYW1pbHk6IGFyaWFsLCBzYW5zLXNlcmlmO1xcblxcdG1hcmdpbjogMDtcXG5cXHRwYWRkaW5nOiAwO1xcbn1cXG5cXG5hIHtjb2xvcjogYmx1ZTsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmV9XFxuYTp2aXNpdGVkIHtjb2xvcjogIzYwOX1cXG5hOmFjdGl2ZSB7Y29sb3I6IHJlZH1cXG5ibG9ja3F1b3RlIHtib3JkZXItbGVmdDogMnB4IHNvbGlkIGJsYWNrOyBtYXJnaW46IDA7IHBhZGRpbmc6IDBweCAxMHB4fVxcblxcbnByZSB7XFxuXFx0bWFyZ2luOiAwcHg7XFxuXFx0cGFkZGluZzogMHB4O1xcblxcdGZvbnQtZmFtaWx5OiBNb25hY28sIE1lbmxvLCBDb25zb2xhcywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlO1xcblxcdGJhY2tncm91bmQ6ICNmZmY7XFxuXFx0Ym9yZGVyOiBub25lO1xcblxcdHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcXG5cXHR3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XFxuXFx0d29yZC1icmVhazogYnJlYWstYWxsO1xcbn1cXG5cXG4uYm9keS13cnAge1xcblxcdHBhZGRpbmc6IDEwcHg7XFxufVxcblxcbi5ib2R5LXdycC5odG1sIHByZSB7XFxuXFx0Zm9udC1mYW1pbHk6IE1vbmFjbywgTWVubG8sIENvbnNvbGFzLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7XFxuXFx0d2hpdGUtc3BhY2U6IHByZS13cmFwO1xcblxcdHdvcmQtd3JhcDogYnJlYWstd29yZDtcXG5cXHR3b3JkLWJyZWFrOiBub3JtYWw7XFxufVxcblxcbi5ib2R5LXdycC5wbGFpbiB7XFxuXFx0cGFkZGluZzogMTVweDtcXG5cXHR3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XFxuXFx0Zm9udC1mYW1pbHk6IE1vbmFjbywgTWVubG8sIENvbnNvbGFzLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7XFxufVxcblxcbi5ib2R5LXdycC5wbGFpbiBwcmUge1xcblxcdG1hcmdpbjogMHB4O1xcblxcdHBhZGRpbmc6IDBweDtcXG5cXHRiYWNrZ3JvdW5kOiAjZmZmO1xcblxcdGJvcmRlcjogbm9uZTtcXG5cXHRmb250LWZhbWlseTogTW9uYWNvLCBNZW5sbywgQ29uc29sYXMsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTtcXG5cXHR3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XFxuXFx0d29yZC13cmFwOiBicmVhay13b3JkO1xcblxcdHdvcmQtYnJlYWs6IG5vcm1hbDtcXG59XFxuXFxuLmJvZHktd3JwLnBsYWluIGJsb2NrcXVvdGUge1xcblxcdGJvcmRlci1sZWZ0OiAycHggc29saWQgYmx1ZTtcXG5cXHRjb2xvcjogYmx1ZTtcXG59XFxuXFxuLmJvZHktd3JwLnBsYWluIGJsb2NrcXVvdGUgYmxvY2txdW90ZSB7XFxuXFx0Ym9yZGVyLWxlZnQ6IDJweCBzb2xpZCBncmVlbjtcXG5cXHRjb2xvcjogZ3JlZW47XFxufVxcblxcbi5ib2R5LXdycC5wbGFpbiBibG9ja3F1b3RlIGJsb2NrcXVvdGUgYmxvY2txdW90ZSB7XFxuXFx0Ym9yZGVyLWxlZnQ6IDJweCBzb2xpZCByZWQ7XFxuXFx0Y29sb3I6IHJlZDtcXG59XFxuLnJsLXByZXZpZXctc3ViamVjdCB7XFxuXFx0Zm9udC1zaXplOiAxNnB4O1xcblxcdGZvbnQtd2VpZ2h0OiBib2xkO1xcblxcdHBhZGRpbmc6IDE1cHg7XFxufVxcbi5ybC1wcmV2aWV3LWNyZWRzLWZyb20sIC5ybC1wcmV2aWV3LWNyZWRzLXRvLCAucmwtcHJldmlldy1jcmVkcy1jYyB7XFxuXFx0Zm9udC1zaXplOiAxMnB4O1xcblxcdHBhZGRpbmc6IDVweCAxNXB4O1xcbn1cXG4ucmwtcHJldmlldy1kYXRlIHtcXG5cXHRmbG9hdDogcmlnaHQ7XFxuXFx0Zm9udC1zaXplOiAxMnB4O1xcblxcdHBhZGRpbmc6IDEwcHggMTVweDtcXG59XFxuLnJsLXByZXZpZXctc2VjdGlvbiB7XFxuXFx0cGFkZGluZzogMDtcXG5cXHRtYXJnaW46IDA7XFxuXFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XFxufVxcbi5ybC1wcmV2aWV3LWhpZGUge1xcblxcdGRpc3BsYXk6IG5vbmU7XFxufVxcblxcdDwvc3R5bGU+XFxuPC9oZWFkPlxcbjxib2R5PlxcblxcdDxkaXYgY2xhc3M9XFxcInJsLXByZXZpZXctc2VjdGlvblxcXCI+XFxuXFx0XFx0PGRpdiBjbGFzcz1cXFwicmwtcHJldmlldy1zdWJqZWN0XFxcIj57e3N1YmplY3R9fTwvZGl2PlxcblxcdDwvZGl2PlxcblxcdDxkaXYgY2xhc3M9XFxcInJsLXByZXZpZXctc2VjdGlvblxcXCI+XFxuXFx0XFx0PGRpdiBjbGFzcz1cXFwicmwtcHJldmlldy1kYXRlXFxcIj57e2RhdGV9fTwvZGl2PlxcblxcdFxcdDxkaXYgY2xhc3M9XFxcInJsLXByZXZpZXctY3JlZHMtZnJvbVxcXCI+e3tmcm9tQ3JlZHN9fTwvZGl2PlxcblxcdFxcdDxkaXYgY2xhc3M9XFxcInJsLXByZXZpZXctY3JlZHMtdG9cXFwiPnt7dG9MYWJlbH19OiB7e3RvQ3JlZHN9fTwvZGl2PlxcblxcdFxcdDxkaXYgY2xhc3M9XFxcInJsLXByZXZpZXctY3JlZHMtY2Mge3tjY0NsYXNzfX1cXFwiPnt7Y2NMYWJlbH19OiB7e2NjQ3JlZHN9fTwvZGl2PlxcblxcdDwvZGl2PlxcblxcdDxkaXYgY2xhc3M9XFxcImJvZHktd3JwIHt7Ym9keUNsYXNzfX1cXFwiPnt7aHRtbH19PC9kaXY+XFxuPC9ib2R5PlxcbjwvaHRtbD5cIjsiLCJ2YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vZXMvaW5zdGFuY2UvZmlsdGVyJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGFyZW50O1xuIiwidmFyIGZpbHRlciA9IHJlcXVpcmUoJy4uL2FycmF5L3ZpcnR1YWwvZmlsdGVyJyk7XG5cbnZhciBBcnJheVByb3RvdHlwZSA9IEFycmF5LnByb3RvdHlwZTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIG93biA9IGl0LmZpbHRlcjtcbiAgcmV0dXJuIGl0ID09PSBBcnJheVByb3RvdHlwZSB8fCAoaXQgaW5zdGFuY2VvZiBBcnJheSAmJiBvd24gPT09IEFycmF5UHJvdG90eXBlLmZpbHRlcikgPyBmaWx0ZXIgOiBvd247XG59O1xuIiwicmVxdWlyZSgnLi4vLi4vLi4vbW9kdWxlcy9lcy5hcnJheS5maWx0ZXInKTtcbnZhciBlbnRyeVZpcnR1YWwgPSByZXF1aXJlKCcuLi8uLi8uLi9pbnRlcm5hbHMvZW50cnktdmlydHVhbCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGVudHJ5VmlydHVhbCgnQXJyYXknKS5maWx0ZXI7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciAkZmlsdGVyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbicpLmZpbHRlcjtcbnZhciBhcnJheU1ldGhvZEhhc1NwZWNpZXNTdXBwb3J0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LW1ldGhvZC1oYXMtc3BlY2llcy1zdXBwb3J0Jyk7XG52YXIgYXJyYXlNZXRob2RVc2VzVG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLXVzZXMtdG8tbGVuZ3RoJyk7XG5cbnZhciBIQVNfU1BFQ0lFU19TVVBQT1JUID0gYXJyYXlNZXRob2RIYXNTcGVjaWVzU3VwcG9ydCgnZmlsdGVyJyk7XG4vLyBFZGdlIDE0LSBpc3N1ZVxudmFyIFVTRVNfVE9fTEVOR1RIID0gYXJyYXlNZXRob2RVc2VzVG9MZW5ndGgoJ2ZpbHRlcicpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLmZpbHRlcmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5maWx0ZXJcbi8vIHdpdGggYWRkaW5nIHN1cHBvcnQgb2YgQEBzcGVjaWVzXG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiAhSEFTX1NQRUNJRVNfU1VQUE9SVCB8fCAhVVNFU19UT19MRU5HVEggfSwge1xuICBmaWx0ZXI6IGZ1bmN0aW9uIGZpbHRlcihjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICAgIHJldHVybiAkZmlsdGVyKHRoaXMsIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbiAgfVxufSk7XG4iLCJ2YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vZXMvb2JqZWN0L2NyZWF0ZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMub2JqZWN0LmNyZWF0ZScpO1xudmFyIHBhdGggPSByZXF1aXJlKCcuLi8uLi9pbnRlcm5hbHMvcGF0aCcpO1xuXG52YXIgT2JqZWN0ID0gcGF0aC5PYmplY3Q7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gY3JlYXRlKFAsIEQpIHtcbiAgcmV0dXJuIE9iamVjdC5jcmVhdGUoUCwgRCk7XG59O1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBjcmVhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWNyZWF0ZScpO1xuXG4vLyBgT2JqZWN0LmNyZWF0ZWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5jcmVhdGVcbiQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlLCBzaGFtOiAhREVTQ1JJUFRPUlMgfSwge1xuICBjcmVhdGU6IGNyZWF0ZVxufSk7XG4iLCJ2YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vZXMvb2JqZWN0L3NldC1wcm90b3R5cGUtb2YnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzLm9iamVjdC5zZXQtcHJvdG90eXBlLW9mJyk7XG52YXIgcGF0aCA9IHJlcXVpcmUoJy4uLy4uL2ludGVybmFscy9wYXRoJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGF0aC5PYmplY3Quc2V0UHJvdG90eXBlT2Y7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBzZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qtc2V0LXByb3RvdHlwZS1vZicpO1xuXG4vLyBgT2JqZWN0LnNldFByb3RvdHlwZU9mYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LnNldHByb3RvdHlwZW9mXG4kKHsgdGFyZ2V0OiAnT2JqZWN0Jywgc3RhdDogdHJ1ZSB9LCB7XG4gIHNldFByb3RvdHlwZU9mOiBzZXRQcm90b3R5cGVPZlxufSk7XG4iLCJ2YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vc3RhYmxlL2luc3RhbmNlL2Zvci1lYWNoJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGFyZW50O1xuIiwicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLml0ZXJhdG9yJyk7XG52YXIgZm9yRWFjaCA9IHJlcXVpcmUoJy4uL2FycmF5L3ZpcnR1YWwvZm9yLWVhY2gnKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vLi4vaW50ZXJuYWxzL2NsYXNzb2YnKTtcbnZhciBBcnJheVByb3RvdHlwZSA9IEFycmF5LnByb3RvdHlwZTtcblxudmFyIERPTUl0ZXJhYmxlcyA9IHtcbiAgRE9NVG9rZW5MaXN0OiB0cnVlLFxuICBOb2RlTGlzdDogdHJ1ZVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIG93biA9IGl0LmZvckVhY2g7XG4gIHJldHVybiBpdCA9PT0gQXJyYXlQcm90b3R5cGUgfHwgKGl0IGluc3RhbmNlb2YgQXJyYXkgJiYgb3duID09PSBBcnJheVByb3RvdHlwZS5mb3JFYWNoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnNcbiAgICB8fCBET01JdGVyYWJsZXMuaGFzT3duUHJvcGVydHkoY2xhc3NvZihpdCkpID8gZm9yRWFjaCA6IG93bjtcbn07XG4iLCJ2YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vLi4vZXMvYXJyYXkvdmlydHVhbC9mb3ItZWFjaCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsInJlcXVpcmUoJy4uLy4uLy4uL21vZHVsZXMvZXMuYXJyYXkuZm9yLWVhY2gnKTtcbnZhciBlbnRyeVZpcnR1YWwgPSByZXF1aXJlKCcuLi8uLi8uLi9pbnRlcm5hbHMvZW50cnktdmlydHVhbCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGVudHJ5VmlydHVhbCgnQXJyYXknKS5mb3JFYWNoO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZm9yRWFjaCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1mb3ItZWFjaCcpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLmZvckVhY2hgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZm9yZWFjaFxuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogW10uZm9yRWFjaCAhPSBmb3JFYWNoIH0sIHtcbiAgZm9yRWFjaDogZm9yRWFjaFxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJGZvckVhY2ggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykuZm9yRWFjaDtcbnZhciBhcnJheU1ldGhvZElzU3RyaWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LW1ldGhvZC1pcy1zdHJpY3QnKTtcbnZhciBhcnJheU1ldGhvZFVzZXNUb0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtdXNlcy10by1sZW5ndGgnKTtcblxudmFyIFNUUklDVF9NRVRIT0QgPSBhcnJheU1ldGhvZElzU3RyaWN0KCdmb3JFYWNoJyk7XG52YXIgVVNFU19UT19MRU5HVEggPSBhcnJheU1ldGhvZFVzZXNUb0xlbmd0aCgnZm9yRWFjaCcpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLmZvckVhY2hgIG1ldGhvZCBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZm9yZWFjaFxubW9kdWxlLmV4cG9ydHMgPSAoIVNUUklDVF9NRVRIT0QgfHwgIVVTRVNfVE9fTEVOR1RIKSA/IGZ1bmN0aW9uIGZvckVhY2goY2FsbGJhY2tmbiAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgcmV0dXJuICRmb3JFYWNoKHRoaXMsIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbn0gOiBbXS5mb3JFYWNoO1xuIiwidmFyIHBhcmVudCA9IHJlcXVpcmUoJy4uLy4uL2VzL29iamVjdC9rZXlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGFyZW50O1xuIiwicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lcy5vYmplY3Qua2V5cycpO1xudmFyIHBhdGggPSByZXF1aXJlKCcuLi8uLi9pbnRlcm5hbHMvcGF0aCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhdGguT2JqZWN0LmtleXM7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciBuYXRpdmVLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1rZXlzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxudmFyIEZBSUxTX09OX1BSSU1JVElWRVMgPSBmYWlscyhmdW5jdGlvbiAoKSB7IG5hdGl2ZUtleXMoMSk7IH0pO1xuXG4vLyBgT2JqZWN0LmtleXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3Qua2V5c1xuJCh7IHRhcmdldDogJ09iamVjdCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogRkFJTFNfT05fUFJJTUlUSVZFUyB9LCB7XG4gIGtleXM6IGZ1bmN0aW9uIGtleXMoaXQpIHtcbiAgICByZXR1cm4gbmF0aXZlS2V5cyh0b09iamVjdChpdCkpO1xuICB9XG59KTtcbiIsInZhciBwYXJlbnQgPSByZXF1aXJlKCcuLi8uLi9lcy9pbnN0YW5jZS9yZWR1Y2UnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCJ2YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vZXMvaW5zdGFuY2UvcmV2ZXJzZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsInZhciByZXZlcnNlID0gcmVxdWlyZSgnLi4vYXJyYXkvdmlydHVhbC9yZXZlcnNlJyk7XG5cbnZhciBBcnJheVByb3RvdHlwZSA9IEFycmF5LnByb3RvdHlwZTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIG93biA9IGl0LnJldmVyc2U7XG4gIHJldHVybiBpdCA9PT0gQXJyYXlQcm90b3R5cGUgfHwgKGl0IGluc3RhbmNlb2YgQXJyYXkgJiYgb3duID09PSBBcnJheVByb3RvdHlwZS5yZXZlcnNlKSA/IHJldmVyc2UgOiBvd247XG59O1xuIiwicmVxdWlyZSgnLi4vLi4vLi4vbW9kdWxlcy9lcy5hcnJheS5yZXZlcnNlJyk7XG52YXIgZW50cnlWaXJ0dWFsID0gcmVxdWlyZSgnLi4vLi4vLi4vaW50ZXJuYWxzL2VudHJ5LXZpcnR1YWwnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBlbnRyeVZpcnR1YWwoJ0FycmF5JykucmV2ZXJzZTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGlzQXJyYXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtYXJyYXknKTtcblxudmFyIG5hdGl2ZVJldmVyc2UgPSBbXS5yZXZlcnNlO1xudmFyIHRlc3QgPSBbMSwgMl07XG5cbi8vIGBBcnJheS5wcm90b3R5cGUucmV2ZXJzZWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5yZXZlcnNlXG4vLyBmaXggZm9yIFNhZmFyaSAxMi4wIGJ1Z1xuLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODc5NFxuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogU3RyaW5nKHRlc3QpID09PSBTdHJpbmcodGVzdC5yZXZlcnNlKCkpIH0sIHtcbiAgcmV2ZXJzZTogZnVuY3Rpb24gcmV2ZXJzZSgpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1hc3NpZ25cbiAgICBpZiAoaXNBcnJheSh0aGlzKSkgdGhpcy5sZW5ndGggPSB0aGlzLmxlbmd0aDtcbiAgICByZXR1cm4gbmF0aXZlUmV2ZXJzZS5jYWxsKHRoaXMpO1xuICB9XG59KTtcbiIsInZhciBwYXJlbnQgPSByZXF1aXJlKCcuLi8uLi9lcy9pbnN0YW5jZS9zbGljZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsInZhciBzbGljZSA9IHJlcXVpcmUoJy4uL2FycmF5L3ZpcnR1YWwvc2xpY2UnKTtcblxudmFyIEFycmF5UHJvdG90eXBlID0gQXJyYXkucHJvdG90eXBlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgb3duID0gaXQuc2xpY2U7XG4gIHJldHVybiBpdCA9PT0gQXJyYXlQcm90b3R5cGUgfHwgKGl0IGluc3RhbmNlb2YgQXJyYXkgJiYgb3duID09PSBBcnJheVByb3RvdHlwZS5zbGljZSkgPyBzbGljZSA6IG93bjtcbn07XG4iLCJyZXF1aXJlKCcuLi8uLi8uLi9tb2R1bGVzL2VzLmFycmF5LnNsaWNlJyk7XG52YXIgZW50cnlWaXJ0dWFsID0gcmVxdWlyZSgnLi4vLi4vLi4vaW50ZXJuYWxzL2VudHJ5LXZpcnR1YWwnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBlbnRyeVZpcnR1YWwoJ0FycmF5Jykuc2xpY2U7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWFycmF5Jyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG52YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0Jyk7XG52YXIgY3JlYXRlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5Jyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgYXJyYXlNZXRob2RIYXNTcGVjaWVzU3VwcG9ydCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtaGFzLXNwZWNpZXMtc3VwcG9ydCcpO1xudmFyIGFycmF5TWV0aG9kVXNlc1RvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LW1ldGhvZC11c2VzLXRvLWxlbmd0aCcpO1xuXG52YXIgSEFTX1NQRUNJRVNfU1VQUE9SVCA9IGFycmF5TWV0aG9kSGFzU3BlY2llc1N1cHBvcnQoJ3NsaWNlJyk7XG52YXIgVVNFU19UT19MRU5HVEggPSBhcnJheU1ldGhvZFVzZXNUb0xlbmd0aCgnc2xpY2UnLCB7IEFDQ0VTU09SUzogdHJ1ZSwgMDogMCwgMTogMiB9KTtcblxudmFyIFNQRUNJRVMgPSB3ZWxsS25vd25TeW1ib2woJ3NwZWNpZXMnKTtcbnZhciBuYXRpdmVTbGljZSA9IFtdLnNsaWNlO1xudmFyIG1heCA9IE1hdGgubWF4O1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLnNsaWNlYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLnNsaWNlXG4vLyBmYWxsYmFjayBmb3Igbm90IGFycmF5LWxpa2UgRVMzIHN0cmluZ3MgYW5kIERPTSBvYmplY3RzXG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiAhSEFTX1NQRUNJRVNfU1VQUE9SVCB8fCAhVVNFU19UT19MRU5HVEggfSwge1xuICBzbGljZTogZnVuY3Rpb24gc2xpY2Uoc3RhcnQsIGVuZCkge1xuICAgIHZhciBPID0gdG9JbmRleGVkT2JqZWN0KHRoaXMpO1xuICAgIHZhciBsZW5ndGggPSB0b0xlbmd0aChPLmxlbmd0aCk7XG4gICAgdmFyIGsgPSB0b0Fic29sdXRlSW5kZXgoc3RhcnQsIGxlbmd0aCk7XG4gICAgdmFyIGZpbiA9IHRvQWJzb2x1dGVJbmRleChlbmQgPT09IHVuZGVmaW5lZCA/IGxlbmd0aCA6IGVuZCwgbGVuZ3RoKTtcbiAgICAvLyBpbmxpbmUgYEFycmF5U3BlY2llc0NyZWF0ZWAgZm9yIHVzYWdlIG5hdGl2ZSBgQXJyYXkjc2xpY2VgIHdoZXJlIGl0J3MgcG9zc2libGVcbiAgICB2YXIgQ29uc3RydWN0b3IsIHJlc3VsdCwgbjtcbiAgICBpZiAoaXNBcnJheShPKSkge1xuICAgICAgQ29uc3RydWN0b3IgPSBPLmNvbnN0cnVjdG9yO1xuICAgICAgLy8gY3Jvc3MtcmVhbG0gZmFsbGJhY2tcbiAgICAgIGlmICh0eXBlb2YgQ29uc3RydWN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiAoQ29uc3RydWN0b3IgPT09IEFycmF5IHx8IGlzQXJyYXkoQ29uc3RydWN0b3IucHJvdG90eXBlKSkpIHtcbiAgICAgICAgQ29uc3RydWN0b3IgPSB1bmRlZmluZWQ7XG4gICAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KENvbnN0cnVjdG9yKSkge1xuICAgICAgICBDb25zdHJ1Y3RvciA9IENvbnN0cnVjdG9yW1NQRUNJRVNdO1xuICAgICAgICBpZiAoQ29uc3RydWN0b3IgPT09IG51bGwpIENvbnN0cnVjdG9yID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgaWYgKENvbnN0cnVjdG9yID09PSBBcnJheSB8fCBDb25zdHJ1Y3RvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBuYXRpdmVTbGljZS5jYWxsKE8sIGssIGZpbik7XG4gICAgICB9XG4gICAgfVxuICAgIHJlc3VsdCA9IG5ldyAoQ29uc3RydWN0b3IgPT09IHVuZGVmaW5lZCA/IEFycmF5IDogQ29uc3RydWN0b3IpKG1heChmaW4gLSBrLCAwKSk7XG4gICAgZm9yIChuID0gMDsgayA8IGZpbjsgaysrLCBuKyspIGlmIChrIGluIE8pIGNyZWF0ZVByb3BlcnR5KHJlc3VsdCwgbiwgT1trXSk7XG4gICAgcmVzdWx0Lmxlbmd0aCA9IG47XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufSk7XG4iLCJ2YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vZXMvb2JqZWN0L2RlZmluZS1wcm9wZXJ0eScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXMub2JqZWN0LmRlZmluZS1wcm9wZXJ0eScpO1xudmFyIHBhdGggPSByZXF1aXJlKCcuLi8uLi9pbnRlcm5hbHMvcGF0aCcpO1xuXG52YXIgT2JqZWN0ID0gcGF0aC5PYmplY3Q7XG5cbnZhciBkZWZpbmVQcm9wZXJ0eSA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoaXQsIGtleSwgZGVzYykge1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGl0LCBrZXksIGRlc2MpO1xufTtcblxuaWYgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eS5zaGFtKSBkZWZpbmVQcm9wZXJ0eS5zaGFtID0gdHJ1ZTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgb2JqZWN0RGVmaW5lUHJvcGVydHlNb2RpbGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xuXG4vLyBgT2JqZWN0LmRlZmluZVByb3BlcnR5YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmRlZmluZXByb3BlcnR5XG4kKHsgdGFyZ2V0OiAnT2JqZWN0Jywgc3RhdDogdHJ1ZSwgZm9yY2VkOiAhREVTQ1JJUFRPUlMsIHNoYW06ICFERVNDUklQVE9SUyB9LCB7XG4gIGRlZmluZVByb3BlcnR5OiBvYmplY3REZWZpbmVQcm9wZXJ0eU1vZGlsZS5mXG59KTtcbiIsInZhciBwYXJlbnQgPSByZXF1aXJlKCcuLi8uLi9lcy9vYmplY3QvZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGFyZW50O1xuIiwicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lcy5vYmplY3QuZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgcGF0aCA9IHJlcXVpcmUoJy4uLy4uL2ludGVybmFscy9wYXRoJyk7XG5cbnZhciBPYmplY3QgPSBwYXRoLk9iamVjdDtcblxudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGl0LCBrZXkpIHtcbiAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaXQsIGtleSk7XG59O1xuXG5pZiAoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvci5zaGFtKSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iuc2hhbSA9IHRydWU7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIG5hdGl2ZUdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJykuZjtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xuXG52YXIgRkFJTFNfT05fUFJJTUlUSVZFUyA9IGZhaWxzKGZ1bmN0aW9uICgpIHsgbmF0aXZlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKDEpOyB9KTtcbnZhciBGT1JDRUQgPSAhREVTQ1JJUFRPUlMgfHwgRkFJTFNfT05fUFJJTUlUSVZFUztcblxuLy8gYE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yXG4kKHsgdGFyZ2V0OiAnT2JqZWN0Jywgc3RhdDogdHJ1ZSwgZm9yY2VkOiBGT1JDRUQsIHNoYW06ICFERVNDUklQVE9SUyB9LCB7XG4gIGdldE93blByb3BlcnR5RGVzY3JpcHRvcjogZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGl0LCBrZXkpIHtcbiAgICByZXR1cm4gbmF0aXZlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRvSW5kZXhlZE9iamVjdChpdCksIGtleSk7XG4gIH1cbn0pO1xuIiwiaW1wb3J0IHsgcEludCB9IGZyb20gJ0NvbW1vbi9VdGlscyc7XG5pbXBvcnQgeyBTYXZlU2V0dGluZ3NTdGVwIH0gZnJvbSAnQ29tbW9uL0VudW1zJztcbmltcG9ydCB7IEFic3RyYWN0Q29tcG9uZW50LCBjb21wb25lbnRFeHBvcnRIZWxwZXIgfSBmcm9tICdDb21wb25lbnQvQWJzdHJhY3QnO1xuXG5jbGFzcyBTYXZlVHJpZ2dlckNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Q29tcG9uZW50IHtcblx0LyoqXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXNcblx0ICovXG5cdGNvbnN0cnVjdG9yKHBhcmFtcykge1xuXHRcdHN1cGVyKCk7XG5cblx0XHR0aGlzLmVsZW1lbnQgPSBwYXJhbXMuZWxlbWVudCB8fCBudWxsO1xuXHRcdHRoaXMudmFsdWUgPSBwYXJhbXMudmFsdWUgJiYgcGFyYW1zLnZhbHVlLnN1YnNjcmliZSA/IHBhcmFtcy52YWx1ZSA6IG51bGw7XG5cblx0XHRpZiAodGhpcy5lbGVtZW50KSB7XG5cdFx0XHRpZiAodGhpcy52YWx1ZSkge1xuXHRcdFx0XHR0aGlzLmVsZW1lbnQuY3NzKCdkaXNwbGF5JywgJ2lubGluZS1ibG9jaycpO1xuXG5cdFx0XHRcdGlmIChwYXJhbXMudmVydGljYWxBbGlnbikge1xuXHRcdFx0XHRcdHRoaXMuZWxlbWVudC5jc3MoJ3ZlcnRpY2FsLWFsaWduJywgcGFyYW1zLnZlcnRpY2FsQWxpZ24pO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dGhpcy5zZXRTdGF0ZSh0aGlzLnZhbHVlKCkpO1xuXG5cdFx0XHRcdHRoaXMuZGlzcG9zYWJsZS5wdXNoKHRoaXMudmFsdWUuc3Vic2NyaWJlKHRoaXMuc2V0U3RhdGUsIHRoaXMpKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuZWxlbWVudC5oaWRlKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0c2V0U3RhdGUodmFsdWUpIHtcblx0XHRzd2l0Y2ggKHBJbnQodmFsdWUpKSB7XG5cdFx0XHRjYXNlIFNhdmVTZXR0aW5nc1N0ZXAuVHJ1ZVJlc3VsdDpcblx0XHRcdFx0dGhpcy5lbGVtZW50XG5cdFx0XHRcdFx0LmZpbmQoJy5hbmltYXRlZCwuZXJyb3InKVxuXHRcdFx0XHRcdC5oaWRlKClcblx0XHRcdFx0XHQucmVtb3ZlQ2xhc3MoJ3Zpc2libGUnKVxuXHRcdFx0XHRcdC5lbmQoKVxuXHRcdFx0XHRcdC5maW5kKCcuc3VjY2VzcycpXG5cdFx0XHRcdFx0LnNob3coKVxuXHRcdFx0XHRcdC5hZGRDbGFzcygndmlzaWJsZScpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgU2F2ZVNldHRpbmdzU3RlcC5GYWxzZVJlc3VsdDpcblx0XHRcdFx0dGhpcy5lbGVtZW50XG5cdFx0XHRcdFx0LmZpbmQoJy5hbmltYXRlZCwuc3VjY2VzcycpXG5cdFx0XHRcdFx0LmhpZGUoKVxuXHRcdFx0XHRcdC5yZW1vdmVDbGFzcygndmlzaWJsZScpXG5cdFx0XHRcdFx0LmVuZCgpXG5cdFx0XHRcdFx0LmZpbmQoJy5lcnJvcicpXG5cdFx0XHRcdFx0LnNob3coKVxuXHRcdFx0XHRcdC5hZGRDbGFzcygndmlzaWJsZScpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgU2F2ZVNldHRpbmdzU3RlcC5BbmltYXRlOlxuXHRcdFx0XHR0aGlzLmVsZW1lbnRcblx0XHRcdFx0XHQuZmluZCgnLmVycm9yLC5zdWNjZXNzJylcblx0XHRcdFx0XHQuaGlkZSgpXG5cdFx0XHRcdFx0LnJlbW92ZUNsYXNzKCd2aXNpYmxlJylcblx0XHRcdFx0XHQuZW5kKClcblx0XHRcdFx0XHQuZmluZCgnLmFuaW1hdGVkJylcblx0XHRcdFx0XHQuc2hvdygpXG5cdFx0XHRcdFx0LmFkZENsYXNzKCd2aXNpYmxlJyk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBTYXZlU2V0dGluZ3NTdGVwLklkbGU6XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHR0aGlzLmVsZW1lbnRcblx0XHRcdFx0XHQuZmluZCgnLmFuaW1hdGVkJylcblx0XHRcdFx0XHQuaGlkZSgpXG5cdFx0XHRcdFx0LmVuZCgpXG5cdFx0XHRcdFx0LmZpbmQoJy5lcnJvciwuc3VjY2VzcycpXG5cdFx0XHRcdFx0LnJlbW92ZUNsYXNzKCd2aXNpYmxlJyk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnRFeHBvcnRIZWxwZXIoU2F2ZVRyaWdnZXJDb21wb25lbnQsICdTYXZlVHJpZ2dlckNvbXBvbmVudCcpO1xuIiwiaW1wb3J0IHsgY29tcG9uZW50RXhwb3J0SGVscGVyIH0gZnJvbSAnQ29tcG9uZW50L0Fic3RyYWN0JztcbmltcG9ydCB7IEFic3RyYWN0SW5wdXQgfSBmcm9tICdDb21wb25lbnQvQWJzdHJhY3RJbnB1dCc7XG5cbmNsYXNzIElucHV0Q29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RJbnB1dCB7fVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnRFeHBvcnRIZWxwZXIoSW5wdXRDb21wb25lbnQsICdJbnB1dENvbXBvbmVudCcpO1xuIiwiaW1wb3J0IHsgaTE4biB9IGZyb20gJ0NvbW1vbi9UcmFuc2xhdG9yJztcbmltcG9ydCB7IGRlZmF1dE9wdGlvbnNBZnRlclJlbmRlciB9IGZyb20gJ0NvbW1vbi9VdGlscyc7XG5pbXBvcnQgeyBjb21wb25lbnRFeHBvcnRIZWxwZXIgfSBmcm9tICdDb21wb25lbnQvQWJzdHJhY3QnO1xuaW1wb3J0IHsgQWJzdHJhY3RJbnB1dCB9IGZyb20gJ0NvbXBvbmVudC9BYnN0cmFjdElucHV0JztcblxuY2xhc3MgU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RJbnB1dCB7XG5cdC8qKlxuXHQgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zXG5cdCAqL1xuXHRjb25zdHJ1Y3RvcihwYXJhbXMpIHtcblx0XHRzdXBlcihwYXJhbXMpO1xuXG5cdFx0dGhpcy5vcHRpb25zID0gcGFyYW1zLm9wdGlvbnMgfHwgJyc7XG5cblx0XHR0aGlzLm9wdGlvbnNUZXh0ID0gcGFyYW1zLm9wdGlvbnNUZXh0IHx8IG51bGw7XG5cdFx0dGhpcy5vcHRpb25zVmFsdWUgPSBwYXJhbXMub3B0aW9uc1ZhbHVlIHx8IG51bGw7XG5cdFx0dGhpcy5vcHRpb25zQ2FwdGlvbiA9IHBhcmFtcy5vcHRpb25zQ2FwdGlvbiB8fCBudWxsO1xuXG5cdFx0aWYgKHRoaXMub3B0aW9uc0NhcHRpb24pIHtcblx0XHRcdHRoaXMub3B0aW9uc0NhcHRpb24gPSBpMThuKHRoaXMub3B0aW9uc0NhcHRpb24pO1xuXHRcdH1cblxuXHRcdHRoaXMuZGVmYXV0T3B0aW9uc0FmdGVyUmVuZGVyID0gZGVmYXV0T3B0aW9uc0FmdGVyUmVuZGVyO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudEV4cG9ydEhlbHBlcihTZWxlY3RDb21wb25lbnQsICdTZWxlY3RDb21wb25lbnQnKTtcbiIsImltcG9ydCB7IGNvbXBvbmVudEV4cG9ydEhlbHBlciB9IGZyb20gJ0NvbXBvbmVudC9BYnN0cmFjdCc7XG5pbXBvcnQgeyBBYnN0cmFjdFJhZGlvIH0gZnJvbSAnQ29tcG9uZW50L0Fic3RyYWN0UmFkaW8nO1xuXG5jbGFzcyBSYWRpb0NvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0UmFkaW8ge31cblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50RXhwb3J0SGVscGVyKFJhZGlvQ29tcG9uZW50LCAnUmFkaW9Db21wb25lbnQnKTtcbiIsImltcG9ydCB7IGlzVW5kIH0gZnJvbSAnQ29tbW9uL1V0aWxzJztcbmltcG9ydCB7IGNvbXBvbmVudEV4cG9ydEhlbHBlciB9IGZyb20gJ0NvbXBvbmVudC9BYnN0cmFjdCc7XG5pbXBvcnQgeyBBYnN0cmFjdElucHV0IH0gZnJvbSAnQ29tcG9uZW50L0Fic3RyYWN0SW5wdXQnO1xuXG5jb25zdCBERUZBVUxUX1JPV1MgPSA1O1xuXG5jbGFzcyBUZXh0QXJlYUNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0SW5wdXQge1xuXHQvKipcblx0ICogQHBhcmFtIHtPYmplY3R9IHBhcmFtc1xuXHQgKi9cblx0Y29uc3RydWN0b3IocGFyYW1zKSB7XG5cdFx0c3VwZXIocGFyYW1zKTtcblxuXHRcdHRoaXMucm93cyA9IHBhcmFtcy5yb3dzIHx8IERFRkFVTFRfUk9XUztcblx0XHR0aGlzLnNwZWxsY2hlY2sgPSBpc1VuZChwYXJhbXMuc3BlbGxjaGVjaykgPyBmYWxzZSA6ICEhcGFyYW1zLnNwZWxsY2hlY2s7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50RXhwb3J0SGVscGVyKFRleHRBcmVhQ29tcG9uZW50LCAnVGV4dEFyZWFDb21wb25lbnQnKTtcbiIsImltcG9ydCB7IGNvbXBvbmVudEV4cG9ydEhlbHBlciB9IGZyb20gJ0NvbXBvbmVudC9BYnN0cmFjdCc7XG5pbXBvcnQgeyBBYnN0cmFjdElucHV0IH0gZnJvbSAnQ29tcG9uZW50L0Fic3RyYWN0SW5wdXQnO1xuXG5jbGFzcyBEYXRlQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RJbnB1dCB7fVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnRFeHBvcnRIZWxwZXIoRGF0ZUNvbXBvbmVudCwgJ0RhdGVDb21wb25lbnQnKTtcbiIsImltcG9ydCAkIGZyb20gJyQnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb21wb25lbnQsIGNvbXBvbmVudEV4cG9ydEhlbHBlciB9IGZyb20gJ0NvbXBvbmVudC9BYnN0cmFjdCc7XG5cbmNsYXNzIFNjcmlwdENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Q29tcG9uZW50IHtcblx0LyoqXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXNcblx0ICovXG5cdGNvbnN0cnVjdG9yKHBhcmFtcykge1xuXHRcdHN1cGVyKCk7XG5cblx0XHRpZiAoXG5cdFx0XHRwYXJhbXMuY29tcG9uZW50ICYmXG5cdFx0XHRwYXJhbXMuY29tcG9uZW50LnRlbXBsYXRlTm9kZXMgJiZcblx0XHRcdHBhcmFtcy5lbGVtZW50ICYmXG5cdFx0XHRwYXJhbXMuZWxlbWVudFswXSAmJlxuXHRcdFx0cGFyYW1zLmVsZW1lbnRbMF0ub3V0ZXJIVE1MXG5cdFx0KSB7XG5cdFx0XHRsZXQgc2NyaXB0ID0gcGFyYW1zLmVsZW1lbnRbMF0ub3V0ZXJIVE1MO1xuXHRcdFx0c2NyaXB0ID0gIXNjcmlwdCA/ICcnIDogc2NyaXB0LnJlcGxhY2UoLzx4LXNjcmlwdC9pLCAnPHNjcmlwdCcpLnJlcGxhY2UoLzxiPjxcXC9iPjxcXC94LXNjcmlwdD4vaSwgJzwvc2NyaXB0PicpO1xuXG5cdFx0XHRpZiAoc2NyaXB0KSB7XG5cdFx0XHRcdHBhcmFtcy5lbGVtZW50LnRleHQoJycpO1xuXHRcdFx0XHRwYXJhbXMuZWxlbWVudC5yZXBsYWNlV2l0aChcblx0XHRcdFx0XHQkKHNjcmlwdCkudGV4dChcblx0XHRcdFx0XHRcdHBhcmFtcy5jb21wb25lbnQudGVtcGxhdGVOb2Rlc1swXSAmJiBwYXJhbXMuY29tcG9uZW50LnRlbXBsYXRlTm9kZXNbMF0ubm9kZVZhbHVlXG5cdFx0XHRcdFx0XHRcdD8gcGFyYW1zLmNvbXBvbmVudC50ZW1wbGF0ZU5vZGVzWzBdLm5vZGVWYWx1ZVxuXHRcdFx0XHRcdFx0XHQ6ICcnXG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cGFyYW1zLmVsZW1lbnQucmVtb3ZlKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudEV4cG9ydEhlbHBlcihTY3JpcHRDb21wb25lbnQsICdTY3JpcHRDb21wb25lbnQnKTtcbiIsImltcG9ydCBfIGZyb20gJ18nO1xuaW1wb3J0IGtvIGZyb20gJ2tvJztcbmltcG9ydCB7IGNvbXBvbmVudEV4cG9ydEhlbHBlciB9IGZyb20gJ0NvbXBvbmVudC9BYnN0cmFjdCc7XG5pbXBvcnQgeyBBYnN0cmFjdENoZWNrYm94IH0gZnJvbSAnQ29tcG9uZW50L0Fic3RyYWN0Q2hlY2tib3gnO1xuXG5jbGFzcyBDaGVja2JveE1hdGVyaWFsRGVzaWduQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RDaGVja2JveCB7XG5cdC8qKlxuXHQgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zXG5cdCAqL1xuXHRjb25zdHJ1Y3RvcihwYXJhbXMpIHtcblx0XHRzdXBlcihwYXJhbXMpO1xuXG5cdFx0dGhpcy5hbmltYXRpb25Cb3ggPSBrby5vYnNlcnZhYmxlKGZhbHNlKS5leHRlbmQoeyBmYWxzZVRpbWVvdXQ6IDIwMCB9KTtcblx0XHR0aGlzLmFuaW1hdGlvbkNoZWNrbWFyayA9IGtvLm9ic2VydmFibGUoZmFsc2UpLmV4dGVuZCh7IGZhbHNlVGltZW91dDogMjAwIH0pO1xuXG5cdFx0dGhpcy5hbmltYXRpb25Cb3hTZXRUcnVlID0gXy5iaW5kKHRoaXMuYW5pbWF0aW9uQm94U2V0VHJ1ZSwgdGhpcyk7XG5cdFx0dGhpcy5hbmltYXRpb25DaGVja21hcmtTZXRUcnVlID0gXy5iaW5kKHRoaXMuYW5pbWF0aW9uQ2hlY2ttYXJrU2V0VHJ1ZSwgdGhpcyk7XG5cblx0XHR0aGlzLmRpc3Bvc2FibGUucHVzaChcblx0XHRcdHRoaXMudmFsdWUuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHR0aGlzLnRyaWdnZXJBbmltYXRpb24odmFsdWUpO1xuXHRcdFx0fSwgdGhpcylcblx0XHQpO1xuXHR9XG5cblx0YW5pbWF0aW9uQm94U2V0VHJ1ZSgpIHtcblx0XHR0aGlzLmFuaW1hdGlvbkJveCh0cnVlKTtcblx0fVxuXG5cdGFuaW1hdGlvbkNoZWNrbWFya1NldFRydWUoKSB7XG5cdFx0dGhpcy5hbmltYXRpb25DaGVja21hcmsodHJ1ZSk7XG5cdH1cblxuXHR0cmlnZ2VyQW5pbWF0aW9uKGJveCkge1xuXHRcdGlmIChib3gpIHtcblx0XHRcdHRoaXMuYW5pbWF0aW9uQm94U2V0VHJ1ZSgpO1xuXHRcdFx0Xy5kZWxheSh0aGlzLmFuaW1hdGlvbkNoZWNrbWFya1NldFRydWUsIDIwMCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuYW5pbWF0aW9uQ2hlY2ttYXJrU2V0VHJ1ZSgpO1xuXHRcdFx0Xy5kZWxheSh0aGlzLmFuaW1hdGlvbkJveFNldFRydWUsIDIwMCk7XG5cdFx0fVxuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudEV4cG9ydEhlbHBlcihDaGVja2JveE1hdGVyaWFsRGVzaWduQ29tcG9uZW50LCAnQ2hlY2tib3hNYXRlcmlhbERlc2lnbkNvbXBvbmVudCcpO1xuIiwiaW1wb3J0IHdpbmRvdyBmcm9tICd3aW5kb3cnO1xuaW1wb3J0IF8gZnJvbSAnXyc7XG5pbXBvcnQga28gZnJvbSAna28nO1xuaW1wb3J0IHByb2dyZXNzSnMgZnJvbSAncHJvZ3Jlc3NKcyc7XG5cbmltcG9ydCB7IHJvb3QgfSBmcm9tICdDb21tb24vTGlua3MnO1xuaW1wb3J0IHsgZ2V0Tm90aWZpY2F0aW9uIH0gZnJvbSAnQ29tbW9uL1RyYW5zbGF0b3InO1xuaW1wb3J0IHsgU3RvcmFnZVJlc3VsdFR5cGUsIE5vdGlmaWNhdGlvbiB9IGZyb20gJ0NvbW1vbi9FbnVtcyc7XG5pbXBvcnQgeyBwSW50LCBpc05vcm1hbCwgaXNBcnJheSwgaW5BcnJheSwgaXNVbmQgfSBmcm9tICdDb21tb24vVXRpbHMnO1xuXG5pbXBvcnQgKiBhcyBTZXR0aW5ncyBmcm9tICdTdG9yYWdlL1NldHRpbmdzJztcblxuaW1wb3J0IEFwcFN0b3JlIGZyb20gJ1N0b3Jlcy9BZG1pbi9BcHAnO1xuaW1wb3J0IENhcGFTdG9yZSBmcm9tICdTdG9yZXMvQWRtaW4vQ2FwYSc7XG5pbXBvcnQgRG9tYWluU3RvcmUgZnJvbSAnU3RvcmVzL0FkbWluL0RvbWFpbic7XG5pbXBvcnQgUGx1Z2luU3RvcmUgZnJvbSAnU3RvcmVzL0FkbWluL1BsdWdpbic7XG5pbXBvcnQgTGljZW5zZVN0b3JlIGZyb20gJ1N0b3Jlcy9BZG1pbi9MaWNlbnNlJztcbmltcG9ydCBQYWNrYWdlU3RvcmUgZnJvbSAnU3RvcmVzL0FkbWluL1BhY2thZ2UnO1xuaW1wb3J0IENvcmVTdG9yZSBmcm9tICdTdG9yZXMvQWRtaW4vQ29yZSc7XG5pbXBvcnQgUmVtb3RlIGZyb20gJ1JlbW90ZS9BZG1pbi9BamF4JztcblxuaW1wb3J0IHsgU2V0dGluZ3NBZG1pblNjcmVlbiB9IGZyb20gJ1NjcmVlbi9BZG1pbi9TZXR0aW5ncyc7XG5pbXBvcnQgeyBMb2dpbkFkbWluU2NyZWVuIH0gZnJvbSAnU2NyZWVuL0FkbWluL0xvZ2luJztcblxuaW1wb3J0IHsgaGlkZUxvYWRpbmcsIHJvdXRlT2ZmLCBzZXRIYXNoLCBzdGFydFNjcmVlbnMgfSBmcm9tICdLbm9pbi9Lbm9pbic7XG5pbXBvcnQgeyBBYnN0cmFjdEFwcCB9IGZyb20gJ0FwcC9BYnN0cmFjdCc7XG5cbmNsYXNzIEFkbWluQXBwIGV4dGVuZHMgQWJzdHJhY3RBcHAge1xuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcihSZW1vdGUpO1xuXHR9XG5cblx0cmVtb3RlKCkge1xuXHRcdHJldHVybiBSZW1vdGU7XG5cdH1cblxuXHRyZWxvYWREb21haW5MaXN0KCkge1xuXHRcdERvbWFpblN0b3JlLmRvbWFpbnMubG9hZGluZyh0cnVlKTtcblx0XHRSZW1vdGUuZG9tYWluTGlzdCgocmVzdWx0LCBkYXRhKSA9PiB7XG5cdFx0XHREb21haW5TdG9yZS5kb21haW5zLmxvYWRpbmcoZmFsc2UpO1xuXHRcdFx0aWYgKFN0b3JhZ2VSZXN1bHRUeXBlLlN1Y2Nlc3MgPT09IHJlc3VsdCAmJiBkYXRhICYmIGRhdGEuUmVzdWx0KSB7XG5cdFx0XHRcdERvbWFpblN0b3JlLmRvbWFpbnMoXG5cdFx0XHRcdFx0Xy5tYXAoZGF0YS5SZXN1bHQsIChbZW5hYmxlZCwgYWxpYXNdLCBuYW1lKSA9PiAoe1xuXHRcdFx0XHRcdFx0bmFtZTogbmFtZSxcblx0XHRcdFx0XHRcdGRpc2FibGVkOiBrby5vYnNlcnZhYmxlKCFlbmFibGVkKSxcblx0XHRcdFx0XHRcdGFsaWFzOiBhbGlhcyxcblx0XHRcdFx0XHRcdGRlbGV0ZUFjY2Vzczoga28ub2JzZXJ2YWJsZShmYWxzZSlcblx0XHRcdFx0XHR9KSlcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHJlbG9hZFBsdWdpbkxpc3QoKSB7XG5cdFx0UGx1Z2luU3RvcmUucGx1Z2lucy5sb2FkaW5nKHRydWUpO1xuXHRcdFJlbW90ZS5wbHVnaW5MaXN0KChyZXN1bHQsIGRhdGEpID0+IHtcblx0XHRcdFBsdWdpblN0b3JlLnBsdWdpbnMubG9hZGluZyhmYWxzZSk7XG5cdFx0XHRpZiAoU3RvcmFnZVJlc3VsdFR5cGUuU3VjY2VzcyA9PT0gcmVzdWx0ICYmIGRhdGEgJiYgZGF0YS5SZXN1bHQpIHtcblx0XHRcdFx0UGx1Z2luU3RvcmUucGx1Z2lucyhcblx0XHRcdFx0XHRfLm1hcChkYXRhLlJlc3VsdCwgKGl0ZW0pID0+ICh7XG5cdFx0XHRcdFx0XHRuYW1lOiBpdGVtLk5hbWUsXG5cdFx0XHRcdFx0XHRkaXNhYmxlZDoga28ub2JzZXJ2YWJsZSghaXRlbS5FbmFibGVkKSxcblx0XHRcdFx0XHRcdGNvbmZpZ3VyZWQ6IGtvLm9ic2VydmFibGUoISFpdGVtLkNvbmZpZ3VyZWQpXG5cdFx0XHRcdFx0fSkpXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRyZWxvYWRQYWNrYWdlc0xpc3QoKSB7XG5cdFx0UGFja2FnZVN0b3JlLnBhY2thZ2VzLmxvYWRpbmcodHJ1ZSk7XG5cdFx0UGFja2FnZVN0b3JlLnBhY2thZ2VzUmVhbCh0cnVlKTtcblx0XHRSZW1vdGUucGFja2FnZXNMaXN0KChyZXN1bHQsIGRhdGEpID0+IHtcblx0XHRcdFBhY2thZ2VTdG9yZS5wYWNrYWdlcy5sb2FkaW5nKGZhbHNlKTtcblx0XHRcdGlmIChTdG9yYWdlUmVzdWx0VHlwZS5TdWNjZXNzID09PSByZXN1bHQgJiYgZGF0YSAmJiBkYXRhLlJlc3VsdCkge1xuXHRcdFx0XHRQYWNrYWdlU3RvcmUucGFja2FnZXNSZWFsKCEhZGF0YS5SZXN1bHQuUmVhbCk7XG5cdFx0XHRcdFBhY2thZ2VTdG9yZS5wYWNrYWdlc01haW5VcGRhdGFibGUoISFkYXRhLlJlc3VsdC5NYWluVXBkYXRhYmxlKTtcblxuXHRcdFx0XHRsZXQgbGlzdCA9IFtdO1xuXHRcdFx0XHRjb25zdCBsb2FkaW5nID0ge307XG5cblx0XHRcdFx0Xy5lYWNoKFBhY2thZ2VTdG9yZS5wYWNrYWdlcygpLCAoaXRlbSkgPT4ge1xuXHRcdFx0XHRcdGlmIChpdGVtICYmIGl0ZW0ubG9hZGluZygpKSB7XG5cdFx0XHRcdFx0XHRsb2FkaW5nW2l0ZW0uZmlsZV0gPSBpdGVtO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0aWYgKGlzQXJyYXkoZGF0YS5SZXN1bHQuTGlzdCkpIHtcblx0XHRcdFx0XHRsaXN0ID0gXy5jb21wYWN0KFxuXHRcdFx0XHRcdFx0Xy5tYXAoZGF0YS5SZXN1bHQuTGlzdCwgKGl0ZW0pID0+IHtcblx0XHRcdFx0XHRcdFx0aWYgKGl0ZW0pIHtcblx0XHRcdFx0XHRcdFx0XHRpdGVtLmxvYWRpbmcgPSBrby5vYnNlcnZhYmxlKCFpc1VuZChsb2FkaW5nW2l0ZW0uZmlsZV0pKTtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gJ2NvcmUnID09PSBpdGVtLnR5cGUgJiYgIWl0ZW0uY2FuQmVJbnN0YWxsZWQgPyBudWxsIDogaXRlbTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdFBhY2thZ2VTdG9yZS5wYWNrYWdlcyhsaXN0KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFBhY2thZ2VTdG9yZS5wYWNrYWdlc1JlYWwoZmFsc2UpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0dXBkYXRlQ29yZURhdGEoKSB7XG5cdFx0Q29yZVN0b3JlLmNvcmVVcGRhdGluZyh0cnVlKTtcblx0XHRSZW1vdGUudXBkYXRlQ29yZURhdGEoKHJlc3VsdCwgZGF0YSkgPT4ge1xuXHRcdFx0Q29yZVN0b3JlLmNvcmVVcGRhdGluZyhmYWxzZSk7XG5cdFx0XHRDb3JlU3RvcmUuY29yZVZlcnNpb24oJycpO1xuXHRcdFx0Q29yZVN0b3JlLmNvcmVSZW1vdGVWZXJzaW9uKCcnKTtcblx0XHRcdENvcmVTdG9yZS5jb3JlUmVtb3RlUmVsZWFzZSgnJyk7XG5cdFx0XHRDb3JlU3RvcmUuY29yZVZlcnNpb25Db21wYXJlKC0yKTtcblx0XHRcdGlmIChTdG9yYWdlUmVzdWx0VHlwZS5TdWNjZXNzID09PSByZXN1bHQgJiYgZGF0YSAmJiBkYXRhLlJlc3VsdCkge1xuXHRcdFx0XHRDb3JlU3RvcmUuY29yZVJlYWwodHJ1ZSk7XG5cdFx0XHRcdHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdENvcmVTdG9yZS5jb3JlUmVhbChmYWxzZSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRyZWxvYWRDb3JlRGF0YSgpIHtcblx0XHRDb3JlU3RvcmUuY29yZUNoZWNraW5nKHRydWUpO1xuXHRcdENvcmVTdG9yZS5jb3JlUmVhbCh0cnVlKTtcblx0XHRSZW1vdGUuY29yZURhdGEoKHJlc3VsdCwgZGF0YSkgPT4ge1xuXHRcdFx0Q29yZVN0b3JlLmNvcmVDaGVja2luZyhmYWxzZSk7XG5cdFx0XHRpZiAoU3RvcmFnZVJlc3VsdFR5cGUuU3VjY2VzcyA9PT0gcmVzdWx0ICYmIGRhdGEgJiYgZGF0YS5SZXN1bHQpIHtcblx0XHRcdFx0Q29yZVN0b3JlLmNvcmVSZWFsKCEhZGF0YS5SZXN1bHQuUmVhbCk7XG5cdFx0XHRcdENvcmVTdG9yZS5jb3JlQ2hhbm5lbChkYXRhLlJlc3VsdC5DaGFubmVsIHx8ICdzdGFibGUnKTtcblx0XHRcdFx0Q29yZVN0b3JlLmNvcmVUeXBlKGRhdGEuUmVzdWx0LlR5cGUgfHwgJ3N0YWJsZScpO1xuXHRcdFx0XHRDb3JlU3RvcmUuY29yZVVwZGF0YWJsZSghIWRhdGEuUmVzdWx0LlVwZGF0YWJsZSk7XG5cdFx0XHRcdENvcmVTdG9yZS5jb3JlQWNjZXNzKCEhZGF0YS5SZXN1bHQuQWNjZXNzKTtcblx0XHRcdFx0Q29yZVN0b3JlLmNvcmVXYXJuaW5nKCEhZGF0YS5SZXN1bHQuV2FybmluZyk7XG5cdFx0XHRcdENvcmVTdG9yZS5jb3JlVmVyc2lvbihkYXRhLlJlc3VsdC5WZXJzaW9uIHx8ICcnKTtcblx0XHRcdFx0Q29yZVN0b3JlLmNvcmVSZW1vdGVWZXJzaW9uKGRhdGEuUmVzdWx0LlJlbW90ZVZlcnNpb24gfHwgJycpO1xuXHRcdFx0XHRDb3JlU3RvcmUuY29yZVJlbW90ZVJlbGVhc2UoZGF0YS5SZXN1bHQuUmVtb3RlUmVsZWFzZSB8fCAnJyk7XG5cdFx0XHRcdENvcmVTdG9yZS5jb3JlVmVyc2lvbkNvbXBhcmUocEludChkYXRhLlJlc3VsdC5WZXJzaW9uQ29tcGFyZSkpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Q29yZVN0b3JlLmNvcmVSZWFsKGZhbHNlKTtcblx0XHRcdFx0Q29yZVN0b3JlLmNvcmVDaGFubmVsKCdzdGFibGUnKTtcblx0XHRcdFx0Q29yZVN0b3JlLmNvcmVUeXBlKCdzdGFibGUnKTtcblx0XHRcdFx0Q29yZVN0b3JlLmNvcmVXYXJuaW5nKGZhbHNlKTtcblx0XHRcdFx0Q29yZVN0b3JlLmNvcmVWZXJzaW9uKCcnKTtcblx0XHRcdFx0Q29yZVN0b3JlLmNvcmVSZW1vdGVWZXJzaW9uKCcnKTtcblx0XHRcdFx0Q29yZVN0b3JlLmNvcmVSZW1vdGVSZWxlYXNlKCcnKTtcblx0XHRcdFx0Q29yZVN0b3JlLmNvcmVWZXJzaW9uQ29tcGFyZSgtMik7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogQHBhcmFtIHtib29sZWFuPX0gZm9yY2UgPSBmYWxzZVxuXHQgKi9cblx0cmVsb2FkTGljZW5zaW5nKGZvcmNlID0gZmFsc2UpIHtcblx0XHRMaWNlbnNlU3RvcmUubGljZW5zaW5nUHJvY2Vzcyh0cnVlKTtcblx0XHRMaWNlbnNlU3RvcmUubGljZW5zZUVycm9yKCcnKTtcblx0XHRSZW1vdGUubGljZW5zaW5nKChyZXN1bHQsIGRhdGEpID0+IHtcblx0XHRcdExpY2Vuc2VTdG9yZS5saWNlbnNpbmdQcm9jZXNzKGZhbHNlKTtcblx0XHRcdGlmIChTdG9yYWdlUmVzdWx0VHlwZS5TdWNjZXNzID09PSByZXN1bHQgJiYgZGF0YSAmJiBkYXRhLlJlc3VsdCAmJiBpc05vcm1hbChkYXRhLlJlc3VsdC5FeHBpcmVkKSkge1xuXHRcdFx0XHRMaWNlbnNlU3RvcmUubGljZW5zZVZhbGlkKHRydWUpO1xuXHRcdFx0XHRMaWNlbnNlU3RvcmUubGljZW5zZUV4cGlyZWQocEludChkYXRhLlJlc3VsdC5FeHBpcmVkKSk7XG5cdFx0XHRcdExpY2Vuc2VTdG9yZS5saWNlbnNlRXJyb3IoJycpO1xuXHRcdFx0XHRMaWNlbnNlU3RvcmUubGljZW5zaW5nKHRydWUpO1xuXHRcdFx0XHRBcHBTdG9yZS5wcmVtKHRydWUpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdGRhdGEgJiZcblx0XHRcdFx0XHRkYXRhLkVycm9yQ29kZSAmJlxuXHRcdFx0XHRcdC0xIDwgaW5BcnJheShwSW50KGRhdGEuRXJyb3JDb2RlKSwgW05vdGlmaWNhdGlvbi5MaWNlbnNpbmdTZXJ2ZXJJc1VuYXZhaWxhYmxlLCBOb3RpZmljYXRpb24uTGljZW5zaW5nRXhwaXJlZF0pXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdExpY2Vuc2VTdG9yZS5saWNlbnNlRXJyb3IoZ2V0Tm90aWZpY2F0aW9uKHBJbnQoZGF0YS5FcnJvckNvZGUpKSk7XG5cdFx0XHRcdFx0TGljZW5zZVN0b3JlLmxpY2Vuc2luZyh0cnVlKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRpZiAoU3RvcmFnZVJlc3VsdFR5cGUuQWJvcnQgPT09IHJlc3VsdCkge1xuXHRcdFx0XHRcdFx0TGljZW5zZVN0b3JlLmxpY2Vuc2VFcnJvcihnZXROb3RpZmljYXRpb24oTm90aWZpY2F0aW9uLkxpY2Vuc2luZ1NlcnZlcklzVW5hdmFpbGFibGUpKTtcblx0XHRcdFx0XHRcdExpY2Vuc2VTdG9yZS5saWNlbnNpbmcodHJ1ZSk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdExpY2Vuc2VTdG9yZS5saWNlbnNpbmcoZmFsc2UpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0sIGZvcmNlKTtcblx0fVxuXG5cdGJvb3RlbmQoYm9vdGVuZENhbGxiYWNrID0gbnVsbCkge1xuXHRcdGlmIChwcm9ncmVzc0pzKSB7XG5cdFx0XHRwcm9ncmVzc0pzLmVuZCgpO1xuXHRcdH1cblxuXHRcdGlmIChib290ZW5kQ2FsbGJhY2spIHtcblx0XHRcdGJvb3RlbmRDYWxsYmFjaygpO1xuXHRcdH1cblx0fVxuXG5cdGJvb3RzdGFydCgpIHtcblx0XHRzdXBlci5ib290c3RhcnQoKTtcblxuXHRcdEFwcFN0b3JlLnBvcHVsYXRlKCk7XG5cdFx0Q2FwYVN0b3JlLnBvcHVsYXRlKCk7XG5cblx0XHRoaWRlTG9hZGluZygpO1xuXG5cdFx0aWYgKCFTZXR0aW5ncy5hcHBTZXR0aW5nc0dldCgnYWxsb3dBZG1pblBhbmVsJykpIHtcblx0XHRcdHJvdXRlT2ZmKCk7XG5cdFx0XHRzZXRIYXNoKHJvb3QoKSwgdHJ1ZSk7XG5cdFx0XHRyb3V0ZU9mZigpO1xuXG5cdFx0XHRfLmRlZmVyKCgpID0+IHtcblx0XHRcdFx0d2luZG93LmxvY2F0aW9uLmhyZWYgPSAnLyc7XG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0aWYgKFNldHRpbmdzLnNldHRpbmdzR2V0KCdBdXRoJykpIHtcblx0XHRcdFx0c3RhcnRTY3JlZW5zKFtTZXR0aW5nc0FkbWluU2NyZWVuXSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRzdGFydFNjcmVlbnMoW0xvZ2luQWRtaW5TY3JlZW5dKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHR0aGlzLmJvb3RlbmQoKTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBuZXcgQWRtaW5BcHAoKTtcbiIsImltcG9ydCBfIGZyb20gJ18nO1xuaW1wb3J0IGtvIGZyb20gJ2tvJztcblxuaW1wb3J0IHsgU3RvcmFnZVJlc3VsdFR5cGUsIFNlcnZlclNlY3VyZSwgUG9ydHMsIE5vdGlmaWNhdGlvbiB9IGZyb20gJ0NvbW1vbi9FbnVtcyc7XG5pbXBvcnQgeyBJTUFQX0RFRkFVTFRfUE9SVCwgU0lFVkVfREVGQVVMVF9QT1JULCBTTVRQX0RFRkFVTFRfUE9SVCB9IGZyb20gJ0NvbW1vbi9Db25zdHMnO1xuaW1wb3J0IHsgYk1vYmlsZURldmljZSB9IGZyb20gJ0NvbW1vbi9HbG9iYWxzJztcbmltcG9ydCB7IHRyaW0sIHBJbnQsIHBTdHJpbmcgfSBmcm9tICdDb21tb24vVXRpbHMnO1xuaW1wb3J0IHsgaTE4biB9IGZyb20gJ0NvbW1vbi9UcmFuc2xhdG9yJztcblxuaW1wb3J0IENhcGFBZG1pblN0b3JlIGZyb20gJ1N0b3Jlcy9BZG1pbi9DYXBhJztcblxuaW1wb3J0IFJlbW90ZSBmcm9tICdSZW1vdGUvQWRtaW4vQWpheCc7XG5cbmltcG9ydCB7IGdldEFwcCB9IGZyb20gJ0hlbHBlci9BcHBzL0FkbWluJztcblxuaW1wb3J0IHsgcG9wdXAsIGNvbW1hbmQgfSBmcm9tICdLbm9pbi9Lbm9pbic7XG5pbXBvcnQgeyBBYnN0cmFjdFZpZXdOZXh0IH0gZnJvbSAnS25vaW4vQWJzdHJhY3RWaWV3TmV4dCc7XG5cbkBwb3B1cCh7XG5cdG5hbWU6ICdWaWV3L1BvcHVwL0RvbWFpbicsXG5cdHRlbXBsYXRlSUQ6ICdQb3B1cHNEb21haW4nXG59KVxuY2xhc3MgRG9tYWluUG9wdXBWaWV3IGV4dGVuZHMgQWJzdHJhY3RWaWV3TmV4dCB7XG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cblx0XHR0aGlzLmVkaXQgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblx0XHR0aGlzLnNhdmluZyA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXHRcdHRoaXMuc2F2aW5nRXJyb3IgPSBrby5vYnNlcnZhYmxlKCcnKTtcblx0XHR0aGlzLnBhZ2UgPSBrby5vYnNlcnZhYmxlKCdtYWluJyk7XG5cdFx0dGhpcy5zaWV2ZVNldHRpbmdzID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cblx0XHR0aGlzLnRlc3RpbmcgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblx0XHR0aGlzLnRlc3RpbmdEb25lID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cdFx0dGhpcy50ZXN0aW5nSW1hcEVycm9yID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cdFx0dGhpcy50ZXN0aW5nU2lldmVFcnJvciA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXHRcdHRoaXMudGVzdGluZ1NtdHBFcnJvciA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXHRcdHRoaXMudGVzdGluZ0ltYXBFcnJvckRlc2MgPSBrby5vYnNlcnZhYmxlKCcnKTtcblx0XHR0aGlzLnRlc3RpbmdTaWV2ZUVycm9yRGVzYyA9IGtvLm9ic2VydmFibGUoJycpO1xuXHRcdHRoaXMudGVzdGluZ1NtdHBFcnJvckRlc2MgPSBrby5vYnNlcnZhYmxlKCcnKTtcblxuXHRcdHRoaXMudGVzdGluZ0ltYXBFcnJvci5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRpZiAoIXZhbHVlKSB7XG5cdFx0XHRcdHRoaXMudGVzdGluZ0ltYXBFcnJvckRlc2MoJycpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0dGhpcy50ZXN0aW5nU2lldmVFcnJvci5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRpZiAoIXZhbHVlKSB7XG5cdFx0XHRcdHRoaXMudGVzdGluZ1NpZXZlRXJyb3JEZXNjKCcnKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdHRoaXMudGVzdGluZ1NtdHBFcnJvci5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRpZiAoIXZhbHVlKSB7XG5cdFx0XHRcdHRoaXMudGVzdGluZ1NtdHBFcnJvckRlc2MoJycpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0dGhpcy5pbWFwU2VydmVyRm9jdXMgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblx0XHR0aGlzLnNpZXZlU2VydmVyRm9jdXMgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblx0XHR0aGlzLnNtdHBTZXJ2ZXJGb2N1cyA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXG5cdFx0dGhpcy5uYW1lID0ga28ub2JzZXJ2YWJsZSgnJyk7XG5cdFx0dGhpcy5uYW1lLmZvY3VzZWQgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblxuXHRcdHRoaXMuaW1hcFNlcnZlciA9IGtvLm9ic2VydmFibGUoJycpO1xuXHRcdHRoaXMuaW1hcFBvcnQgPSBrby5vYnNlcnZhYmxlKCcnICsgSU1BUF9ERUZBVUxUX1BPUlQpO1xuXHRcdHRoaXMuaW1hcFNlY3VyZSA9IGtvLm9ic2VydmFibGUoU2VydmVyU2VjdXJlLk5vbmUpO1xuXHRcdHRoaXMuaW1hcFNob3J0TG9naW4gPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblx0XHR0aGlzLnVzZVNpZXZlID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cdFx0dGhpcy5zaWV2ZUFsbG93UmF3ID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cdFx0dGhpcy5zaWV2ZVNlcnZlciA9IGtvLm9ic2VydmFibGUoJycpO1xuXHRcdHRoaXMuc2lldmVQb3J0ID0ga28ub2JzZXJ2YWJsZSgnJyArIFNJRVZFX0RFRkFVTFRfUE9SVCk7XG5cdFx0dGhpcy5zaWV2ZVNlY3VyZSA9IGtvLm9ic2VydmFibGUoU2VydmVyU2VjdXJlLk5vbmUpO1xuXHRcdHRoaXMuc210cFNlcnZlciA9IGtvLm9ic2VydmFibGUoJycpO1xuXHRcdHRoaXMuc210cFBvcnQgPSBrby5vYnNlcnZhYmxlKCcnICsgU01UUF9ERUZBVUxUX1BPUlQpO1xuXHRcdHRoaXMuc210cFNlY3VyZSA9IGtvLm9ic2VydmFibGUoU2VydmVyU2VjdXJlLk5vbmUpO1xuXHRcdHRoaXMuc210cFNob3J0TG9naW4gPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblx0XHR0aGlzLnNtdHBBdXRoID0ga28ub2JzZXJ2YWJsZSh0cnVlKTtcblx0XHR0aGlzLnNtdHBQaHBNYWlsID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cdFx0dGhpcy53aGl0ZUxpc3QgPSBrby5vYnNlcnZhYmxlKCcnKTtcblx0XHR0aGlzLmFsaWFzTmFtZSA9IGtvLm9ic2VydmFibGUoJycpO1xuXG5cdFx0dGhpcy5lbmFibGVTbWFydFBvcnRzID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cblx0XHR0aGlzLmFsbG93U2lldmUgPSBrby5jb21wdXRlZCgoKSA9PiBDYXBhQWRtaW5TdG9yZS5maWx0ZXJzKCkgJiYgQ2FwYUFkbWluU3RvcmUuc2lldmUoKSk7XG5cblx0XHR0aGlzLmhlYWRlclRleHQgPSBrby5jb21wdXRlZCgoKSA9PiB7XG5cdFx0XHRjb25zdCBuYW1lID0gdGhpcy5uYW1lKCksXG5cdFx0XHRcdGFsaWFzTmFtZSA9IHRoaXMuYWxpYXNOYW1lKCk7XG5cblx0XHRcdGxldCByZXN1bHQgPSAnJztcblxuXHRcdFx0aWYgKHRoaXMuZWRpdCgpKSB7XG5cdFx0XHRcdHJlc3VsdCA9IGkxOG4oJ1BPUFVQU19ET01BSU4vVElUTEVfRURJVF9ET01BSU4nLCB7ICdOQU1FJzogbmFtZSB9KTtcblx0XHRcdFx0aWYgKGFsaWFzTmFtZSkge1xuXHRcdFx0XHRcdHJlc3VsdCArPSAnIOKGkCAnICsgYWxpYXNOYW1lO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXN1bHQgPVxuXHRcdFx0XHRcdCcnID09PSBuYW1lXG5cdFx0XHRcdFx0XHQ/IGkxOG4oJ1BPUFVQU19ET01BSU4vVElUTEVfQUREX0RPTUFJTicpXG5cdFx0XHRcdFx0XHQ6IGkxOG4oJ1BPUFVQU19ET01BSU4vVElUTEVfQUREX0RPTUFJTl9XSVRIX05BTUUnLCB7ICdOQU1FJzogbmFtZSB9KTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9KTtcblxuXHRcdHRoaXMuZG9tYWluRGVzYyA9IGtvLmNvbXB1dGVkKCgpID0+IHtcblx0XHRcdGNvbnN0IG5hbWUgPSB0aGlzLm5hbWUoKTtcblx0XHRcdHJldHVybiAhdGhpcy5lZGl0KCkgJiYgbmFtZSA/IGkxOG4oJ1BPUFVQU19ET01BSU4vTkVXX0RPTUFJTl9ERVNDJywgeyAnTkFNRSc6ICcqQCcgKyBuYW1lIH0pIDogJyc7XG5cdFx0fSk7XG5cblx0XHR0aGlzLmRvbWFpbklzQ29tcHV0ZWQgPSBrby5jb21wdXRlZCgoKSA9PiB7XG5cdFx0XHRjb25zdCB1c2VQaHBNYWlsID0gdGhpcy5zbXRwUGhwTWFpbCgpLFxuXHRcdFx0XHRhbGxvd1NpZXZlID0gdGhpcy5hbGxvd1NpZXZlKCksXG5cdFx0XHRcdHVzZVNpZXZlID0gdGhpcy51c2VTaWV2ZSgpO1xuXG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHQnJyAhPT0gdGhpcy5uYW1lKCkgJiZcblx0XHRcdFx0JycgIT09IHRoaXMuaW1hcFNlcnZlcigpICYmXG5cdFx0XHRcdCcnICE9PSB0aGlzLmltYXBQb3J0KCkgJiZcblx0XHRcdFx0KGFsbG93U2lldmUgJiYgdXNlU2lldmUgPyAnJyAhPT0gdGhpcy5zaWV2ZVNlcnZlcigpICYmICcnICE9PSB0aGlzLnNpZXZlUG9ydCgpIDogdHJ1ZSkgJiZcblx0XHRcdFx0KCgnJyAhPT0gdGhpcy5zbXRwU2VydmVyKCkgJiYgJycgIT09IHRoaXMuc210cFBvcnQoKSkgfHwgdXNlUGhwTWFpbClcblx0XHRcdCk7XG5cdFx0fSk7XG5cblx0XHR0aGlzLmNhbkJlVGVzdGVkID0ga28uY29tcHV0ZWQoKCkgPT4gIXRoaXMudGVzdGluZygpICYmIHRoaXMuZG9tYWluSXNDb21wdXRlZCgpKTtcblx0XHR0aGlzLmNhbkJlU2F2ZWQgPSBrby5jb21wdXRlZCgoKSA9PiAhdGhpcy5zYXZpbmcoKSAmJiB0aGlzLmRvbWFpbklzQ29tcHV0ZWQoKSk7XG5cblx0XHR0aGlzLnBhZ2Uuc3Vic2NyaWJlKCgpID0+IHtcblx0XHRcdHRoaXMuc2lldmVTZXR0aW5ncyhmYWxzZSk7XG5cdFx0fSk7XG5cblx0XHQvLyBzbWFydCBmb3JtIGltcHJvdmVtZW50c1xuXHRcdHRoaXMuaW1hcFNlcnZlckZvY3VzLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdGlmICh2YWx1ZSAmJiAnJyAhPT0gdGhpcy5uYW1lKCkgJiYgJycgPT09IHRoaXMuaW1hcFNlcnZlcigpKSB7XG5cdFx0XHRcdHRoaXMuaW1hcFNlcnZlcih0aGlzLm5hbWUoKS5yZXBsYWNlKC9bLl0/WypdWy5dPy9nLCAnJykpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0dGhpcy5zaWV2ZVNlcnZlckZvY3VzLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdGlmICh2YWx1ZSAmJiAnJyAhPT0gdGhpcy5pbWFwU2VydmVyKCkgJiYgJycgPT09IHRoaXMuc2lldmVTZXJ2ZXIoKSkge1xuXHRcdFx0XHR0aGlzLnNpZXZlU2VydmVyKHRoaXMuaW1hcFNlcnZlcigpKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdHRoaXMuc210cFNlcnZlckZvY3VzLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdGlmICh2YWx1ZSAmJiAnJyAhPT0gdGhpcy5pbWFwU2VydmVyKCkgJiYgJycgPT09IHRoaXMuc210cFNlcnZlcigpKSB7XG5cdFx0XHRcdHRoaXMuc210cFNlcnZlcih0aGlzLmltYXBTZXJ2ZXIoKS5yZXBsYWNlKC9pbWFwL2dpLCAnc210cCcpKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdHRoaXMuaW1hcFNlY3VyZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5lbmFibGVTbWFydFBvcnRzKCkpIHtcblx0XHRcdFx0Y29uc3QgcG9ydCA9IHBJbnQodGhpcy5pbWFwUG9ydCgpKTtcblx0XHRcdFx0c3dpdGNoIChwU3RyaW5nKHZhbHVlKSkge1xuXHRcdFx0XHRcdGNhc2UgJzAnOlxuXHRcdFx0XHRcdGNhc2UgJzInOlxuXHRcdFx0XHRcdFx0aWYgKFBvcnRzLkltYXBTc2wgPT09IHBvcnQpIHtcblx0XHRcdFx0XHRcdFx0dGhpcy5pbWFwUG9ydChwU3RyaW5nKFBvcnRzLkltYXApKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgJzEnOlxuXHRcdFx0XHRcdFx0aWYgKFBvcnRzLkltYXAgPT09IHBvcnQpIHtcblx0XHRcdFx0XHRcdFx0dGhpcy5pbWFwUG9ydChwU3RyaW5nKFBvcnRzLkltYXBTc2wpKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdC8vIG5vIGRlZmF1bHRcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0dGhpcy5zbXRwU2VjdXJlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdGlmICh0aGlzLmVuYWJsZVNtYXJ0UG9ydHMoKSkge1xuXHRcdFx0XHRjb25zdCBwb3J0ID0gcEludCh0aGlzLnNtdHBQb3J0KCkpO1xuXHRcdFx0XHRzd2l0Y2ggKHBTdHJpbmcodmFsdWUpKSB7XG5cdFx0XHRcdFx0Y2FzZSAnMCc6XG5cdFx0XHRcdFx0XHRpZiAoUG9ydHMuU210cFNzbCA9PT0gcG9ydCB8fCBQb3J0cy5TbXRwU3RhcnRUbHMgPT09IHBvcnQpIHtcblx0XHRcdFx0XHRcdFx0dGhpcy5zbXRwUG9ydChwU3RyaW5nKFBvcnRzLlNtdHApKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgJzEnOlxuXHRcdFx0XHRcdFx0aWYgKFBvcnRzLlNtdHAgPT09IHBvcnQgfHwgUG9ydHMuU210cFN0YXJ0VGxzID09PSBwb3J0KSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuc210cFBvcnQocFN0cmluZyhQb3J0cy5TbXRwU3NsKSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICcyJzpcblx0XHRcdFx0XHRcdGlmIChQb3J0cy5TbXRwID09PSBwb3J0IHx8IFBvcnRzLlNtdHBTc2wgPT09IHBvcnQpIHtcblx0XHRcdFx0XHRcdFx0dGhpcy5zbXRwUG9ydChwU3RyaW5nKFBvcnRzLlNtdHBTdGFydFRscykpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Ly8gbm8gZGVmYXVsdFxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRAY29tbWFuZCgoc2VsZikgPT4gc2VsZi5jYW5CZVNhdmVkKCkpXG5cdGNyZWF0ZU9yQWRkQ29tbWFuZCgpIHtcblx0XHR0aGlzLnNhdmluZyh0cnVlKTtcblx0XHRSZW1vdGUuY3JlYXRlT3JVcGRhdGVEb21haW4oXG5cdFx0XHRfLmJpbmQodGhpcy5vbkRvbWFpbkNyZWF0ZU9yU2F2ZVJlc3BvbnNlLCB0aGlzKSxcblx0XHRcdCF0aGlzLmVkaXQoKSxcblx0XHRcdHRoaXMubmFtZSgpLFxuXG5cdFx0XHR0aGlzLmltYXBTZXJ2ZXIoKSxcblx0XHRcdHBJbnQodGhpcy5pbWFwUG9ydCgpKSxcblx0XHRcdHRoaXMuaW1hcFNlY3VyZSgpLFxuXHRcdFx0dGhpcy5pbWFwU2hvcnRMb2dpbigpLFxuXG5cdFx0XHR0aGlzLnVzZVNpZXZlKCksXG5cdFx0XHR0aGlzLnNpZXZlQWxsb3dSYXcoKSxcblx0XHRcdHRoaXMuc2lldmVTZXJ2ZXIoKSxcblx0XHRcdHBJbnQodGhpcy5zaWV2ZVBvcnQoKSksXG5cdFx0XHR0aGlzLnNpZXZlU2VjdXJlKCksXG5cblx0XHRcdHRoaXMuc210cFNlcnZlcigpLFxuXHRcdFx0cEludCh0aGlzLnNtdHBQb3J0KCkpLFxuXHRcdFx0dGhpcy5zbXRwU2VjdXJlKCksXG5cdFx0XHR0aGlzLnNtdHBTaG9ydExvZ2luKCksXG5cdFx0XHR0aGlzLnNtdHBBdXRoKCksXG5cdFx0XHR0aGlzLnNtdHBQaHBNYWlsKCksXG5cblx0XHRcdHRoaXMud2hpdGVMaXN0KClcblx0XHQpO1xuXHR9XG5cblx0QGNvbW1hbmQoKHNlbGYpID0+IHNlbGYuY2FuQmVUZXN0ZWQoKSlcblx0dGVzdENvbm5lY3Rpb25Db21tYW5kKCkge1xuXHRcdHRoaXMucGFnZSgnbWFpbicpO1xuXG5cdFx0dGhpcy50ZXN0aW5nRG9uZShmYWxzZSk7XG5cdFx0dGhpcy50ZXN0aW5nSW1hcEVycm9yKGZhbHNlKTtcblx0XHR0aGlzLnRlc3RpbmdTaWV2ZUVycm9yKGZhbHNlKTtcblx0XHR0aGlzLnRlc3RpbmdTbXRwRXJyb3IoZmFsc2UpO1xuXHRcdHRoaXMudGVzdGluZyh0cnVlKTtcblxuXHRcdFJlbW90ZS50ZXN0Q29ubmVjdGlvbkZvckRvbWFpbihcblx0XHRcdF8uYmluZCh0aGlzLm9uVGVzdENvbm5lY3Rpb25SZXNwb25zZSwgdGhpcyksXG5cdFx0XHR0aGlzLm5hbWUoKSxcblxuXHRcdFx0dGhpcy5pbWFwU2VydmVyKCksXG5cdFx0XHRwSW50KHRoaXMuaW1hcFBvcnQoKSksXG5cdFx0XHR0aGlzLmltYXBTZWN1cmUoKSxcblxuXHRcdFx0dGhpcy51c2VTaWV2ZSgpLFxuXHRcdFx0dGhpcy5zaWV2ZVNlcnZlcigpLFxuXHRcdFx0cEludCh0aGlzLnNpZXZlUG9ydCgpKSxcblx0XHRcdHRoaXMuc2lldmVTZWN1cmUoKSxcblxuXHRcdFx0dGhpcy5zbXRwU2VydmVyKCksXG5cdFx0XHRwSW50KHRoaXMuc210cFBvcnQoKSksXG5cdFx0XHR0aGlzLnNtdHBTZWN1cmUoKSxcblx0XHRcdHRoaXMuc210cEF1dGgoKSxcblx0XHRcdHRoaXMuc210cFBocE1haWwoKVxuXHRcdCk7XG5cdH1cblxuXHRAY29tbWFuZCgpXG5cdHdoaXRlTGlzdENvbW1hbmQoKSB7XG5cdFx0dGhpcy5wYWdlKCd3aGl0ZS1saXN0Jyk7XG5cdH1cblxuXHRAY29tbWFuZCgpXG5cdGJhY2tDb21tYW5kKCkge1xuXHRcdHRoaXMucGFnZSgnbWFpbicpO1xuXHR9XG5cblx0QGNvbW1hbmQoKVxuXHRzaWV2ZUNvbW1hbmQoKSB7XG5cdFx0dGhpcy5zaWV2ZVNldHRpbmdzKCF0aGlzLnNpZXZlU2V0dGluZ3MoKSk7XG5cdFx0dGhpcy5jbGVhclRlc3RpbmcoKTtcblx0fVxuXG5cdG9uVGVzdENvbm5lY3Rpb25SZXNwb25zZShzUmVzdWx0LCBvRGF0YSkge1xuXHRcdHRoaXMudGVzdGluZyhmYWxzZSk7XG5cdFx0aWYgKFN0b3JhZ2VSZXN1bHRUeXBlLlN1Y2Nlc3MgPT09IHNSZXN1bHQgJiYgb0RhdGEuUmVzdWx0KSB7XG5cdFx0XHRsZXQgYkltYXAgPSBmYWxzZSxcblx0XHRcdFx0YlNpZXZlID0gZmFsc2U7XG5cblx0XHRcdHRoaXMudGVzdGluZ0RvbmUodHJ1ZSk7XG5cdFx0XHR0aGlzLnRlc3RpbmdJbWFwRXJyb3IodHJ1ZSAhPT0gb0RhdGEuUmVzdWx0LkltYXApO1xuXHRcdFx0dGhpcy50ZXN0aW5nU2lldmVFcnJvcih0cnVlICE9PSBvRGF0YS5SZXN1bHQuU2lldmUpO1xuXHRcdFx0dGhpcy50ZXN0aW5nU210cEVycm9yKHRydWUgIT09IG9EYXRhLlJlc3VsdC5TbXRwKTtcblxuXHRcdFx0aWYgKHRoaXMudGVzdGluZ0ltYXBFcnJvcigpICYmIG9EYXRhLlJlc3VsdC5JbWFwKSB7XG5cdFx0XHRcdGJJbWFwID0gdHJ1ZTtcblx0XHRcdFx0dGhpcy50ZXN0aW5nSW1hcEVycm9yRGVzYygnJyk7XG5cdFx0XHRcdHRoaXMudGVzdGluZ0ltYXBFcnJvckRlc2Mob0RhdGEuUmVzdWx0LkltYXApO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAodGhpcy50ZXN0aW5nU2lldmVFcnJvcigpICYmIG9EYXRhLlJlc3VsdC5TaWV2ZSkge1xuXHRcdFx0XHRiU2lldmUgPSB0cnVlO1xuXHRcdFx0XHR0aGlzLnRlc3RpbmdTaWV2ZUVycm9yRGVzYygnJyk7XG5cdFx0XHRcdHRoaXMudGVzdGluZ1NpZXZlRXJyb3JEZXNjKG9EYXRhLlJlc3VsdC5TaWV2ZSk7XG5cdFx0XHR9XG5cblx0XHRcdGlmICh0aGlzLnRlc3RpbmdTbXRwRXJyb3IoKSAmJiBvRGF0YS5SZXN1bHQuU210cCkge1xuXHRcdFx0XHR0aGlzLnRlc3RpbmdTbXRwRXJyb3JEZXNjKCcnKTtcblx0XHRcdFx0dGhpcy50ZXN0aW5nU210cEVycm9yRGVzYyhvRGF0YS5SZXN1bHQuU210cCk7XG5cdFx0XHR9XG5cblx0XHRcdGlmICh0aGlzLnNpZXZlU2V0dGluZ3MoKSkge1xuXHRcdFx0XHRpZiAoIWJTaWV2ZSAmJiBiSW1hcCkge1xuXHRcdFx0XHRcdHRoaXMuc2lldmVTZXR0aW5ncyhmYWxzZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZiAoYlNpZXZlICYmICFiSW1hcCkge1xuXHRcdFx0XHR0aGlzLnNpZXZlU2V0dGluZ3ModHJ1ZSk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMudGVzdGluZ0ltYXBFcnJvcih0cnVlKTtcblx0XHRcdHRoaXMudGVzdGluZ1NpZXZlRXJyb3IodHJ1ZSk7XG5cdFx0XHR0aGlzLnRlc3RpbmdTbXRwRXJyb3IodHJ1ZSk7XG5cdFx0XHR0aGlzLnNpZXZlU2V0dGluZ3MoZmFsc2UpO1xuXHRcdH1cblx0fVxuXG5cdG9uRG9tYWluQ3JlYXRlT3JTYXZlUmVzcG9uc2Uoc1Jlc3VsdCwgb0RhdGEpIHtcblx0XHR0aGlzLnNhdmluZyhmYWxzZSk7XG5cdFx0aWYgKFN0b3JhZ2VSZXN1bHRUeXBlLlN1Y2Nlc3MgPT09IHNSZXN1bHQgJiYgb0RhdGEpIHtcblx0XHRcdGlmIChvRGF0YS5SZXN1bHQpIHtcblx0XHRcdFx0Z2V0QXBwKCkucmVsb2FkRG9tYWluTGlzdCgpO1xuXHRcdFx0XHR0aGlzLmNsb3NlQ29tbWFuZCgpO1xuXHRcdFx0fSBlbHNlIGlmIChOb3RpZmljYXRpb24uRG9tYWluQWxyZWFkeUV4aXN0cyA9PT0gb0RhdGEuRXJyb3JDb2RlKSB7XG5cdFx0XHRcdHRoaXMuc2F2aW5nRXJyb3IoaTE4bignRVJST1JTL0RPTUFJTl9BTFJFQURZX0VYSVNUUycpKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5zYXZpbmdFcnJvcihpMThuKCdFUlJPUlMvVU5LTk9XTl9FUlJPUicpKTtcblx0XHR9XG5cdH1cblxuXHRjbGVhclRlc3RpbmcoKSB7XG5cdFx0dGhpcy50ZXN0aW5nKGZhbHNlKTtcblx0XHR0aGlzLnRlc3RpbmdEb25lKGZhbHNlKTtcblx0XHR0aGlzLnRlc3RpbmdJbWFwRXJyb3IoZmFsc2UpO1xuXHRcdHRoaXMudGVzdGluZ1NpZXZlRXJyb3IoZmFsc2UpO1xuXHRcdHRoaXMudGVzdGluZ1NtdHBFcnJvcihmYWxzZSk7XG5cdH1cblxuXHRvbkhpZGUoKSB7XG5cdFx0dGhpcy5wYWdlKCdtYWluJyk7XG5cdFx0dGhpcy5zaWV2ZVNldHRpbmdzKGZhbHNlKTtcblx0fVxuXG5cdG9uU2hvdyhvRG9tYWluKSB7XG5cdFx0dGhpcy5zYXZpbmcoZmFsc2UpO1xuXG5cdFx0dGhpcy5wYWdlKCdtYWluJyk7XG5cdFx0dGhpcy5zaWV2ZVNldHRpbmdzKGZhbHNlKTtcblxuXHRcdHRoaXMuY2xlYXJUZXN0aW5nKCk7XG5cblx0XHR0aGlzLmNsZWFyRm9ybSgpO1xuXHRcdGlmIChvRG9tYWluKSB7XG5cdFx0XHR0aGlzLmVuYWJsZVNtYXJ0UG9ydHMoZmFsc2UpO1xuXG5cdFx0XHR0aGlzLmVkaXQodHJ1ZSk7XG5cblx0XHRcdHRoaXMubmFtZSh0cmltKG9Eb21haW4uTmFtZSkpO1xuXHRcdFx0dGhpcy5pbWFwU2VydmVyKHRyaW0ob0RvbWFpbi5JbmNIb3N0KSk7XG5cdFx0XHR0aGlzLmltYXBQb3J0KCcnICsgcEludChvRG9tYWluLkluY1BvcnQpKTtcblx0XHRcdHRoaXMuaW1hcFNlY3VyZSh0cmltKG9Eb21haW4uSW5jU2VjdXJlKSk7XG5cdFx0XHR0aGlzLmltYXBTaG9ydExvZ2luKCEhb0RvbWFpbi5JbmNTaG9ydExvZ2luKTtcblx0XHRcdHRoaXMudXNlU2lldmUoISFvRG9tYWluLlVzZVNpZXZlKTtcblx0XHRcdHRoaXMuc2lldmVBbGxvd1JhdyghIW9Eb21haW4uU2lldmVBbGxvd1Jhdyk7XG5cdFx0XHR0aGlzLnNpZXZlU2VydmVyKHRyaW0ob0RvbWFpbi5TaWV2ZUhvc3QpKTtcblx0XHRcdHRoaXMuc2lldmVQb3J0KCcnICsgcEludChvRG9tYWluLlNpZXZlUG9ydCkpO1xuXHRcdFx0dGhpcy5zaWV2ZVNlY3VyZSh0cmltKG9Eb21haW4uU2lldmVTZWN1cmUpKTtcblx0XHRcdHRoaXMuc210cFNlcnZlcih0cmltKG9Eb21haW4uT3V0SG9zdCkpO1xuXHRcdFx0dGhpcy5zbXRwUG9ydCgnJyArIHBJbnQob0RvbWFpbi5PdXRQb3J0KSk7XG5cdFx0XHR0aGlzLnNtdHBTZWN1cmUodHJpbShvRG9tYWluLk91dFNlY3VyZSkpO1xuXHRcdFx0dGhpcy5zbXRwU2hvcnRMb2dpbighIW9Eb21haW4uT3V0U2hvcnRMb2dpbik7XG5cdFx0XHR0aGlzLnNtdHBBdXRoKCEhb0RvbWFpbi5PdXRBdXRoKTtcblx0XHRcdHRoaXMuc210cFBocE1haWwoISFvRG9tYWluLk91dFVzZVBocE1haWwpO1xuXHRcdFx0dGhpcy53aGl0ZUxpc3QodHJpbShvRG9tYWluLldoaXRlTGlzdCkpO1xuXHRcdFx0dGhpcy5hbGlhc05hbWUodHJpbShvRG9tYWluLkFsaWFzTmFtZSkpO1xuXG5cdFx0XHR0aGlzLmVuYWJsZVNtYXJ0UG9ydHModHJ1ZSk7XG5cdFx0fVxuXHR9XG5cblx0b25TaG93V2l0aERlbGF5KCkge1xuXHRcdGlmICgnJyA9PT0gdGhpcy5uYW1lKCkgJiYgIWJNb2JpbGVEZXZpY2UpIHtcblx0XHRcdHRoaXMubmFtZS5mb2N1c2VkKHRydWUpO1xuXHRcdH1cblx0fVxuXG5cdGNsZWFyRm9ybSgpIHtcblx0XHR0aGlzLmVkaXQoZmFsc2UpO1xuXG5cdFx0dGhpcy5wYWdlKCdtYWluJyk7XG5cdFx0dGhpcy5zaWV2ZVNldHRpbmdzKGZhbHNlKTtcblxuXHRcdHRoaXMuZW5hYmxlU21hcnRQb3J0cyhmYWxzZSk7XG5cblx0XHR0aGlzLnNhdmluZ0Vycm9yKCcnKTtcblxuXHRcdHRoaXMubmFtZSgnJyk7XG5cdFx0dGhpcy5uYW1lLmZvY3VzZWQoZmFsc2UpO1xuXG5cdFx0dGhpcy5pbWFwU2VydmVyKCcnKTtcblx0XHR0aGlzLmltYXBQb3J0KCcnICsgSU1BUF9ERUZBVUxUX1BPUlQpO1xuXHRcdHRoaXMuaW1hcFNlY3VyZShTZXJ2ZXJTZWN1cmUuTm9uZSk7XG5cdFx0dGhpcy5pbWFwU2hvcnRMb2dpbihmYWxzZSk7XG5cblx0XHR0aGlzLnVzZVNpZXZlKGZhbHNlKTtcblx0XHR0aGlzLnNpZXZlQWxsb3dSYXcoZmFsc2UpO1xuXHRcdHRoaXMuc2lldmVTZXJ2ZXIoJycpO1xuXHRcdHRoaXMuc2lldmVQb3J0KCcnICsgU0lFVkVfREVGQVVMVF9QT1JUKTtcblx0XHR0aGlzLnNpZXZlU2VjdXJlKFNlcnZlclNlY3VyZS5Ob25lKTtcblxuXHRcdHRoaXMuc210cFNlcnZlcignJyk7XG5cdFx0dGhpcy5zbXRwUG9ydCgnJyArIFNNVFBfREVGQVVMVF9QT1JUKTtcblx0XHR0aGlzLnNtdHBTZWN1cmUoU2VydmVyU2VjdXJlLk5vbmUpO1xuXHRcdHRoaXMuc210cFNob3J0TG9naW4oZmFsc2UpO1xuXHRcdHRoaXMuc210cEF1dGgodHJ1ZSk7XG5cdFx0dGhpcy5zbXRwUGhwTWFpbChmYWxzZSk7XG5cblx0XHR0aGlzLndoaXRlTGlzdCgnJyk7XG5cdFx0dGhpcy5hbGlhc05hbWUoJycpO1xuXHRcdHRoaXMuZW5hYmxlU21hcnRQb3J0cyh0cnVlKTtcblx0fVxufVxuXG5leHBvcnQgeyBEb21haW5Qb3B1cFZpZXcsIERvbWFpblBvcHVwVmlldyBhcyBkZWZhdWx0IH07XG4iLCJpbXBvcnQgeyBhZGRTZXR0aW5nc1ZpZXdNb2RlbCB9IGZyb20gJ0tub2luL0tub2luJztcbmltcG9ydCB7IHJ1blNldHRpbmdzVmlld01vZGVsSG9va3MgfSBmcm9tICdDb21tb24vUGx1Z2lucyc7XG5cbmltcG9ydCB7IEFic3RyYWN0U2V0dGluZ3NTY3JlZW4gfSBmcm9tICdTY3JlZW4vQWJzdHJhY3RTZXR0aW5ncyc7XG5cbmltcG9ydCB7IEdlbmVyYWxBZG1pblNldHRpbmdzIH0gZnJvbSAnU2V0dGluZ3MvQWRtaW4vR2VuZXJhbCc7XG5pbXBvcnQgeyBEb21haW5zQWRtaW5TZXR0aW5ncyB9IGZyb20gJ1NldHRpbmdzL0FkbWluL0RvbWFpbnMnO1xuaW1wb3J0IHsgTG9naW5BZG1pblNldHRpbmdzIH0gZnJvbSAnU2V0dGluZ3MvQWRtaW4vTG9naW4nO1xuaW1wb3J0IHsgQ29udGFjdHNBZG1pblNldHRpbmdzIH0gZnJvbSAnU2V0dGluZ3MvQWRtaW4vQ29udGFjdHMnO1xuaW1wb3J0IHsgU2VjdXJpdHlBZG1pblNldHRpbmdzIH0gZnJvbSAnU2V0dGluZ3MvQWRtaW4vU2VjdXJpdHknO1xuaW1wb3J0IHsgU29jaWFsQWRtaW5TZXR0aW5ncyB9IGZyb20gJ1NldHRpbmdzL0FkbWluL1NvY2lhbCc7XG5pbXBvcnQgeyBQbHVnaW5zQWRtaW5TZXR0aW5ncyB9IGZyb20gJ1NldHRpbmdzL0FkbWluL1BsdWdpbnMnO1xuaW1wb3J0IHsgUGFja2FnZXNBZG1pblNldHRpbmdzIH0gZnJvbSAnU2V0dGluZ3MvQWRtaW4vUGFja2FnZXMnO1xuaW1wb3J0IHsgQWJvdXRBZG1pblNldHRpbmdzIH0gZnJvbSAnU2V0dGluZ3MvQWRtaW4vQWJvdXQnO1xuXG5pbXBvcnQgeyBnZXRBcHAgfSBmcm9tICdIZWxwZXIvQXBwcy9BZG1pbic7XG5cbmltcG9ydCB7IE1lbnVTZXR0aW5nc0FkbWluVmlldyB9IGZyb20gJ1ZpZXcvQWRtaW4vU2V0dGluZ3MvTWVudSc7XG5pbXBvcnQgeyBQYW5lU2V0dGluZ3NBZG1pblZpZXcgfSBmcm9tICdWaWV3L0FkbWluL1NldHRpbmdzL1BhbmUnO1xuXG5jbGFzcyBTZXR0aW5nc0FkbWluU2NyZWVuIGV4dGVuZHMgQWJzdHJhY3RTZXR0aW5nc1NjcmVlbiB7XG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKFtNZW51U2V0dGluZ3NBZG1pblZpZXcsIFBhbmVTZXR0aW5nc0FkbWluVmlld10pO1xuXHR9XG5cblx0LyoqXG5cdCAqIEBwYXJhbSB7RnVuY3Rpb249fSBmQ2FsbGJhY2sgPSBudWxsXG5cdCAqL1xuXHRzZXR1cFNldHRpbmdzKGZDYWxsYmFjayA9IG51bGwpIHtcblx0XHRsZXQgYnJhbmRpbmcgPSBudWxsLFxuXHRcdFx0bGljZW5zaW5nID0gbnVsbDtcblxuXHRcdGlmIChSTF9DT01NVU5JVFkpIHtcblx0XHRcdGJyYW5kaW5nID0gcmVxdWlyZSgnU2V0dGluZ3MvQWRtaW4vQnJhbmRpbmcnKS5kZWZhdWx0O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRicmFuZGluZyA9IHJlcXVpcmUoJ1NldHRpbmdzL0FkbWluL1ByZW0vQnJhbmRpbmcnKS5kZWZhdWx0O1xuXHRcdFx0bGljZW5zaW5nID0gcmVxdWlyZSgnU2V0dGluZ3MvQWRtaW4vUHJlbS9MaWNlbnNpbmcnKS5kZWZhdWx0O1xuXHRcdH1cblxuXHRcdGFkZFNldHRpbmdzVmlld01vZGVsKFxuXHRcdFx0R2VuZXJhbEFkbWluU2V0dGluZ3MsXG5cdFx0XHQnQWRtaW5TZXR0aW5nc0dlbmVyYWwnLFxuXHRcdFx0J1RBQlNfTEFCRUxTL0xBQkVMX0dFTkVSQUxfTkFNRScsXG5cdFx0XHQnZ2VuZXJhbCcsXG5cdFx0XHR0cnVlXG5cdFx0KTtcblxuXHRcdGFkZFNldHRpbmdzVmlld01vZGVsKERvbWFpbnNBZG1pblNldHRpbmdzLCAnQWRtaW5TZXR0aW5nc0RvbWFpbnMnLCAnVEFCU19MQUJFTFMvTEFCRUxfRE9NQUlOU19OQU1FJywgJ2RvbWFpbnMnKTtcblxuXHRcdGFkZFNldHRpbmdzVmlld01vZGVsKExvZ2luQWRtaW5TZXR0aW5ncywgJ0FkbWluU2V0dGluZ3NMb2dpbicsICdUQUJTX0xBQkVMUy9MQUJFTF9MT0dJTl9OQU1FJywgJ2xvZ2luJyk7XG5cblx0XHRpZiAoYnJhbmRpbmcpIHtcblx0XHRcdGFkZFNldHRpbmdzVmlld01vZGVsKGJyYW5kaW5nLCAnQWRtaW5TZXR0aW5nc0JyYW5kaW5nJywgJ1RBQlNfTEFCRUxTL0xBQkVMX0JSQU5ESU5HX05BTUUnLCAnYnJhbmRpbmcnKTtcblx0XHR9XG5cblx0XHRhZGRTZXR0aW5nc1ZpZXdNb2RlbChDb250YWN0c0FkbWluU2V0dGluZ3MsICdBZG1pblNldHRpbmdzQ29udGFjdHMnLCAnVEFCU19MQUJFTFMvTEFCRUxfQ09OVEFDVFNfTkFNRScsICdjb250YWN0cycpO1xuXG5cdFx0YWRkU2V0dGluZ3NWaWV3TW9kZWwoU2VjdXJpdHlBZG1pblNldHRpbmdzLCAnQWRtaW5TZXR0aW5nc1NlY3VyaXR5JywgJ1RBQlNfTEFCRUxTL0xBQkVMX1NFQ1VSSVRZX05BTUUnLCAnc2VjdXJpdHknKTtcblxuXHRcdGFkZFNldHRpbmdzVmlld01vZGVsKFxuXHRcdFx0U29jaWFsQWRtaW5TZXR0aW5ncyxcblx0XHRcdCdBZG1pblNldHRpbmdzU29jaWFsJyxcblx0XHRcdCdUQUJTX0xBQkVMUy9MQUJFTF9JTlRFR1JBVElPTl9OQU1FJyxcblx0XHRcdCdpbnRlZ3JhdGlvbnMnXG5cdFx0KTtcblxuXHRcdGFkZFNldHRpbmdzVmlld01vZGVsKFBsdWdpbnNBZG1pblNldHRpbmdzLCAnQWRtaW5TZXR0aW5nc1BsdWdpbnMnLCAnVEFCU19MQUJFTFMvTEFCRUxfUExVR0lOU19OQU1FJywgJ3BsdWdpbnMnKTtcblxuXHRcdGFkZFNldHRpbmdzVmlld01vZGVsKFBhY2thZ2VzQWRtaW5TZXR0aW5ncywgJ0FkbWluU2V0dGluZ3NQYWNrYWdlcycsICdUQUJTX0xBQkVMUy9MQUJFTF9QQUNLQUdFU19OQU1FJywgJ3BhY2thZ2VzJyk7XG5cblx0XHRpZiAobGljZW5zaW5nKSB7XG5cdFx0XHRhZGRTZXR0aW5nc1ZpZXdNb2RlbChsaWNlbnNpbmcsICdBZG1pblNldHRpbmdzTGljZW5zaW5nJywgJ1RBQlNfTEFCRUxTL0xBQkVMX0xJQ0VOU0lOR19OQU1FJywgJ2xpY2Vuc2luZycpO1xuXHRcdH1cblxuXHRcdGFkZFNldHRpbmdzVmlld01vZGVsKEFib3V0QWRtaW5TZXR0aW5ncywgJ0FkbWluU2V0dGluZ3NBYm91dCcsICdUQUJTX0xBQkVMUy9MQUJFTF9BQk9VVF9OQU1FJywgJ2Fib3V0Jyk7XG5cblx0XHRydW5TZXR0aW5nc1ZpZXdNb2RlbEhvb2tzKHRydWUpO1xuXG5cdFx0aWYgKGZDYWxsYmFjaykge1xuXHRcdFx0ZkNhbGxiYWNrKCk7XG5cdFx0fVxuXHR9XG5cblx0b25TaG93KCkge1xuXHRcdGdldEFwcCgpLnNldFdpbmRvd1RpdGxlKCcnKTtcblx0fVxufVxuXG5leHBvcnQgeyBTZXR0aW5nc0FkbWluU2NyZWVuLCBTZXR0aW5nc0FkbWluU2NyZWVuIGFzIGRlZmF1bHQgfTtcbiIsImltcG9ydCBfIGZyb20gJ18nO1xuaW1wb3J0IGtvIGZyb20gJ2tvJztcblxuaW1wb3J0IHtcblx0dHJpbSxcblx0cEludCxcblx0Ym9vbFRvQWpheCxcblx0c2V0dGluZ3NTYXZlSGVscGVyU2ltcGxlRnVuY3Rpb24sXG5cdGNoYW5nZVRoZW1lLFxuXHRjb252ZXJ0VGhlbWVOYW1lLFxuXHRjb252ZXJ0TGFuZ05hbWVcbn0gZnJvbSAnQ29tbW9uL1V0aWxzJztcblxuaW1wb3J0IHsgU2F2ZVNldHRpbmdzU3RlcCwgTWFnaWNzIH0gZnJvbSAnQ29tbW9uL0VudW1zJztcbmltcG9ydCB7IHJlbG9hZCBhcyB0cmFuc2xhdG9yUmVsb2FkIH0gZnJvbSAnQ29tbW9uL1RyYW5zbGF0b3InO1xuaW1wb3J0IHsgcGhwSW5mbyB9IGZyb20gJ0NvbW1vbi9MaW5rcyc7XG5cbmltcG9ydCB7IHNldHRpbmdzR2V0IH0gZnJvbSAnU3RvcmFnZS9TZXR0aW5ncyc7XG5pbXBvcnQgeyBzaG93U2NyZWVuUG9wdXAgfSBmcm9tICdLbm9pbi9Lbm9pbic7XG5cbmltcG9ydCBSZW1vdGUgZnJvbSAnUmVtb3RlL0FkbWluL0FqYXgnO1xuXG5pbXBvcnQgVGhlbWVTdG9yZSBmcm9tICdTdG9yZXMvVGhlbWUnO1xuaW1wb3J0IExhbmd1YWdlU3RvcmUgZnJvbSAnU3RvcmVzL0xhbmd1YWdlJztcbmltcG9ydCBBcHBBZG1pblN0b3JlIGZyb20gJ1N0b3Jlcy9BZG1pbi9BcHAnO1xuaW1wb3J0IENhcGFBZG1pblN0b3JlIGZyb20gJ1N0b3Jlcy9BZG1pbi9DYXBhJztcblxuY2xhc3MgR2VuZXJhbEFkbWluU2V0dGluZ3Mge1xuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLmxhbmd1YWdlID0gTGFuZ3VhZ2VTdG9yZS5sYW5ndWFnZTtcblx0XHR0aGlzLmxhbmd1YWdlcyA9IExhbmd1YWdlU3RvcmUubGFuZ3VhZ2VzO1xuXHRcdHRoaXMubGFuZ3VhZ2VBZG1pbiA9IExhbmd1YWdlU3RvcmUubGFuZ3VhZ2VBZG1pbjtcblx0XHR0aGlzLmxhbmd1YWdlc0FkbWluID0gTGFuZ3VhZ2VTdG9yZS5sYW5ndWFnZXNBZG1pbjtcblxuXHRcdHRoaXMudGhlbWUgPSBUaGVtZVN0b3JlLnRoZW1lO1xuXHRcdHRoaXMudGhlbWVzID0gVGhlbWVTdG9yZS50aGVtZXM7XG5cblx0XHR0aGlzLmNhcGFUaGVtZXMgPSBDYXBhQWRtaW5TdG9yZS50aGVtZXM7XG5cdFx0dGhpcy5jYXBhVXNlckJhY2tncm91bmQgPSBDYXBhQWRtaW5TdG9yZS51c2VyQmFja2dyb3VuZDtcblx0XHR0aGlzLmNhcGFHcmF2YXRhciA9IENhcGFBZG1pblN0b3JlLmdyYXZhdGFyO1xuXHRcdHRoaXMuY2FwYUFkZGl0aW9uYWxBY2NvdW50cyA9IENhcGFBZG1pblN0b3JlLmFkZGl0aW9uYWxBY2NvdW50cztcblx0XHR0aGlzLmNhcGFJZGVudGl0aWVzID0gQ2FwYUFkbWluU3RvcmUuaWRlbnRpdGllcztcblx0XHR0aGlzLmNhcGFBdHRhY2htZW50VGh1bWJuYWlscyA9IENhcGFBZG1pblN0b3JlLmF0dGFjaG1lbnRUaHVtYm5haWxzO1xuXHRcdHRoaXMuY2FwYVRlbXBsYXRlcyA9IENhcGFBZG1pblN0b3JlLnRlbXBsYXRlcztcblxuXHRcdHRoaXMuYWxsb3dMYW5ndWFnZXNPblNldHRpbmdzID0gQXBwQWRtaW5TdG9yZS5hbGxvd0xhbmd1YWdlc09uU2V0dGluZ3M7XG5cdFx0dGhpcy53ZWFrUGFzc3dvcmQgPSBBcHBBZG1pblN0b3JlLndlYWtQYXNzd29yZDtcblx0XHR0aGlzLm5ld01vdmVUb0ZvbGRlciA9IEFwcEFkbWluU3RvcmUubmV3TW92ZVRvRm9sZGVyO1xuXG5cdFx0dGhpcy5kYXRhRm9sZGVyQWNjZXNzID0gQXBwQWRtaW5TdG9yZS5kYXRhRm9sZGVyQWNjZXNzO1xuXG5cdFx0dGhpcy5tYWluQXR0YWNobWVudExpbWl0ID0ga29cblx0XHRcdC5vYnNlcnZhYmxlKHBJbnQoc2V0dGluZ3NHZXQoJ0F0dGFjaG1lbnRMaW1pdCcpKSAvIChNYWdpY3MuQml0TGVuZ3RoMTAyNCAqIE1hZ2ljcy5CaXRMZW5ndGgxMDI0KSlcblx0XHRcdC5leHRlbmQoeyBwb3NJbnRlcmVyOiAyNSB9KTtcblxuXHRcdHRoaXMudXBsb2FkRGF0YSA9IHNldHRpbmdzR2V0KCdQaHBVcGxvYWRTaXplcycpO1xuXHRcdHRoaXMudXBsb2FkRGF0YURlc2MgPVxuXHRcdFx0dGhpcy51cGxvYWREYXRhICYmICh0aGlzLnVwbG9hZERhdGEudXBsb2FkX21heF9maWxlc2l6ZSB8fCB0aGlzLnVwbG9hZERhdGEucG9zdF9tYXhfc2l6ZSlcblx0XHRcdFx0PyBbXG5cdFx0XHRcdFx0XHR0aGlzLnVwbG9hZERhdGEudXBsb2FkX21heF9maWxlc2l6ZVxuXHRcdFx0XHRcdFx0XHQ/ICd1cGxvYWRfbWF4X2ZpbGVzaXplID0gJyArIHRoaXMudXBsb2FkRGF0YS51cGxvYWRfbWF4X2ZpbGVzaXplICsgJzsgJ1xuXHRcdFx0XHRcdFx0XHQ6ICcnLFxuXHRcdFx0XHRcdFx0dGhpcy51cGxvYWREYXRhLnBvc3RfbWF4X3NpemUgPyAncG9zdF9tYXhfc2l6ZSA9ICcgKyB0aGlzLnVwbG9hZERhdGEucG9zdF9tYXhfc2l6ZSA6ICcnXG5cdFx0XHRcdCAgXS5qb2luKCcnKVxuXHRcdFx0XHQ6ICcnO1xuXG5cdFx0dGhpcy50aGVtZXNPcHRpb25zID0ga28uY29tcHV0ZWQoKCkgPT5cblx0XHRcdF8ubWFwKHRoaXMudGhlbWVzKCksICh0aGVtZSkgPT4gKHsgb3B0VmFsdWU6IHRoZW1lLCBvcHRUZXh0OiBjb252ZXJ0VGhlbWVOYW1lKHRoZW1lKSB9KSlcblx0XHQpO1xuXG5cdFx0dGhpcy5sYW5ndWFnZUZ1bGxOYW1lID0ga28uY29tcHV0ZWQoKCkgPT4gY29udmVydExhbmdOYW1lKHRoaXMubGFuZ3VhZ2UoKSkpO1xuXHRcdHRoaXMubGFuZ3VhZ2VBZG1pbkZ1bGxOYW1lID0ga28uY29tcHV0ZWQoKCkgPT4gY29udmVydExhbmdOYW1lKHRoaXMubGFuZ3VhZ2VBZG1pbigpKSk7XG5cblx0XHR0aGlzLmF0dGFjaG1lbnRMaW1pdFRyaWdnZXIgPSBrby5vYnNlcnZhYmxlKFNhdmVTZXR0aW5nc1N0ZXAuSWRsZSk7XG5cdFx0dGhpcy5sYW5ndWFnZVRyaWdnZXIgPSBrby5vYnNlcnZhYmxlKFNhdmVTZXR0aW5nc1N0ZXAuSWRsZSk7XG5cdFx0dGhpcy5sYW5ndWFnZUFkbWluVHJpZ2dlciA9IGtvLm9ic2VydmFibGUoU2F2ZVNldHRpbmdzU3RlcC5JZGxlKS5leHRlbmQoeyB0aHJvdHRsZTogTWFnaWNzLlRpbWUxMDBtcyB9KTtcblx0XHR0aGlzLnRoZW1lVHJpZ2dlciA9IGtvLm9ic2VydmFibGUoU2F2ZVNldHRpbmdzU3RlcC5JZGxlKTtcblx0fVxuXG5cdG9uQnVpbGQoKSB7XG5cdFx0Xy5kZWxheSgoKSA9PiB7XG5cdFx0XHRjb25zdCBmMSA9IHNldHRpbmdzU2F2ZUhlbHBlclNpbXBsZUZ1bmN0aW9uKHRoaXMuYXR0YWNobWVudExpbWl0VHJpZ2dlciwgdGhpcyksXG5cdFx0XHRcdGYyID0gc2V0dGluZ3NTYXZlSGVscGVyU2ltcGxlRnVuY3Rpb24odGhpcy5sYW5ndWFnZVRyaWdnZXIsIHRoaXMpLFxuXHRcdFx0XHRmMyA9IHNldHRpbmdzU2F2ZUhlbHBlclNpbXBsZUZ1bmN0aW9uKHRoaXMudGhlbWVUcmlnZ2VyLCB0aGlzKSxcblx0XHRcdFx0ZlJlbG9hZExhbmd1YWdlSGVscGVyID0gKHNhdmVTZXR0aW5nc1N0ZXApID0+ICgpID0+IHtcblx0XHRcdFx0XHR0aGlzLmxhbmd1YWdlQWRtaW5UcmlnZ2VyKHNhdmVTZXR0aW5nc1N0ZXApO1xuXHRcdFx0XHRcdF8uZGVsYXkoKCkgPT4gdGhpcy5sYW5ndWFnZUFkbWluVHJpZ2dlcihTYXZlU2V0dGluZ3NTdGVwLklkbGUpLCBNYWdpY3MuVGltZTFzKTtcblx0XHRcdFx0fTtcblxuXHRcdFx0dGhpcy5tYWluQXR0YWNobWVudExpbWl0LnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdFx0UmVtb3RlLnNhdmVBZG1pbkNvbmZpZyhmMSwge1xuXHRcdFx0XHRcdCdBdHRhY2htZW50TGltaXQnOiBwSW50KHZhbHVlKVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXG5cdFx0XHR0aGlzLmxhbmd1YWdlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdFx0UmVtb3RlLnNhdmVBZG1pbkNvbmZpZyhmMiwge1xuXHRcdFx0XHRcdCdMYW5ndWFnZSc6IHRyaW0odmFsdWUpXG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cblx0XHRcdHRoaXMubGFuZ3VhZ2VBZG1pbi5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdHRoaXMubGFuZ3VhZ2VBZG1pblRyaWdnZXIoU2F2ZVNldHRpbmdzU3RlcC5BbmltYXRlKTtcblx0XHRcdFx0dHJhbnNsYXRvclJlbG9hZCh0cnVlLCB2YWx1ZSlcblx0XHRcdFx0XHQudGhlbihmUmVsb2FkTGFuZ3VhZ2VIZWxwZXIoU2F2ZVNldHRpbmdzU3RlcC5UcnVlUmVzdWx0KSwgZlJlbG9hZExhbmd1YWdlSGVscGVyKFNhdmVTZXR0aW5nc1N0ZXAuRmFsc2VSZXN1bHQpKVxuXHRcdFx0XHRcdC50aGVuKCgpID0+IHtcblx0XHRcdFx0XHRcdFJlbW90ZS5zYXZlQWRtaW5Db25maWcobnVsbCwge1xuXHRcdFx0XHRcdFx0XHQnTGFuZ3VhZ2VBZG1pbic6IHRyaW0odmFsdWUpXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXG5cdFx0XHR0aGlzLnRoZW1lLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdFx0Y2hhbmdlVGhlbWUodmFsdWUsIHRoaXMudGhlbWVUcmlnZ2VyKTtcblx0XHRcdFx0UmVtb3RlLnNhdmVBZG1pbkNvbmZpZyhmMywge1xuXHRcdFx0XHRcdCdUaGVtZSc6IHRyaW0odmFsdWUpXG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cblx0XHRcdHRoaXMuY2FwYUFkZGl0aW9uYWxBY2NvdW50cy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFJlbW90ZS5zYXZlQWRtaW5Db25maWcobnVsbCwge1xuXHRcdFx0XHRcdCdDYXBhQWRkaXRpb25hbEFjY291bnRzJzogYm9vbFRvQWpheCh2YWx1ZSlcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblxuXHRcdFx0dGhpcy5jYXBhSWRlbnRpdGllcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFJlbW90ZS5zYXZlQWRtaW5Db25maWcobnVsbCwge1xuXHRcdFx0XHRcdCdDYXBhSWRlbnRpdGllcyc6IGJvb2xUb0FqYXgodmFsdWUpXG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cblx0XHRcdHRoaXMuY2FwYVRlbXBsYXRlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFJlbW90ZS5zYXZlQWRtaW5Db25maWcobnVsbCwge1xuXHRcdFx0XHRcdCdDYXBhVGVtcGxhdGVzJzogYm9vbFRvQWpheCh2YWx1ZSlcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblxuXHRcdFx0dGhpcy5jYXBhR3JhdmF0YXIuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRSZW1vdGUuc2F2ZUFkbWluQ29uZmlnKG51bGwsIHtcblx0XHRcdFx0XHQnQ2FwYUdyYXZhdGFyJzogYm9vbFRvQWpheCh2YWx1ZSlcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblxuXHRcdFx0dGhpcy5jYXBhQXR0YWNobWVudFRodW1ibmFpbHMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRSZW1vdGUuc2F2ZUFkbWluQ29uZmlnKG51bGwsIHtcblx0XHRcdFx0XHQnQ2FwYUF0dGFjaG1lbnRUaHVtYm5haWxzJzogYm9vbFRvQWpheCh2YWx1ZSlcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblxuXHRcdFx0dGhpcy5jYXBhVGhlbWVzLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdFx0UmVtb3RlLnNhdmVBZG1pbkNvbmZpZyhudWxsLCB7XG5cdFx0XHRcdFx0J0NhcGFUaGVtZXMnOiBib29sVG9BamF4KHZhbHVlKVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXG5cdFx0XHR0aGlzLmNhcGFVc2VyQmFja2dyb3VuZC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFJlbW90ZS5zYXZlQWRtaW5Db25maWcobnVsbCwge1xuXHRcdFx0XHRcdCdDYXBhVXNlckJhY2tncm91bmQnOiBib29sVG9BamF4KHZhbHVlKVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXG5cdFx0XHR0aGlzLmFsbG93TGFuZ3VhZ2VzT25TZXR0aW5ncy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFJlbW90ZS5zYXZlQWRtaW5Db25maWcobnVsbCwge1xuXHRcdFx0XHRcdCdBbGxvd0xhbmd1YWdlc09uU2V0dGluZ3MnOiBib29sVG9BamF4KHZhbHVlKVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXG5cdFx0XHR0aGlzLm5ld01vdmVUb0ZvbGRlci5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFJlbW90ZS5zYXZlQWRtaW5Db25maWcobnVsbCwge1xuXHRcdFx0XHRcdCdOZXdNb3ZlVG9Gb2xkZXInOiBib29sVG9BamF4KHZhbHVlKVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdH0sIE1hZ2ljcy5UaW1lNTBtcyk7XG5cdH1cblxuXHRzZWxlY3RMYW5ndWFnZSgpIHtcblx0XHRzaG93U2NyZWVuUG9wdXAocmVxdWlyZSgnVmlldy9Qb3B1cC9MYW5ndWFnZXMnKSwgW3RoaXMubGFuZ3VhZ2UsIHRoaXMubGFuZ3VhZ2VzKCksIExhbmd1YWdlU3RvcmUudXNlckxhbmd1YWdlKCldKTtcblx0fVxuXG5cdHNlbGVjdExhbmd1YWdlQWRtaW4oKSB7XG5cdFx0c2hvd1NjcmVlblBvcHVwKHJlcXVpcmUoJ1ZpZXcvUG9wdXAvTGFuZ3VhZ2VzJyksIFtcblx0XHRcdHRoaXMubGFuZ3VhZ2VBZG1pbixcblx0XHRcdHRoaXMubGFuZ3VhZ2VzQWRtaW4oKSxcblx0XHRcdExhbmd1YWdlU3RvcmUudXNlckxhbmd1YWdlQWRtaW4oKVxuXHRcdF0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIEByZXR1cm5zIHtzdHJpbmd9XG5cdCAqL1xuXHRwaHBJbmZvTGluaygpIHtcblx0XHRyZXR1cm4gcGhwSW5mbygpO1xuXHR9XG59XG5cbmV4cG9ydCB7IEdlbmVyYWxBZG1pblNldHRpbmdzLCBHZW5lcmFsQWRtaW5TZXR0aW5ncyBhcyBkZWZhdWx0IH07XG4iLCJpbXBvcnQgXyBmcm9tICdfJztcbmltcG9ydCBrbyBmcm9tICdrbyc7XG5cbmltcG9ydCB7IFN0b3JhZ2VSZXN1bHRUeXBlIH0gZnJvbSAnQ29tbW9uL0VudW1zJztcbmltcG9ydCB7IHNob3dTY3JlZW5Qb3B1cCB9IGZyb20gJ0tub2luL0tub2luJztcblxuaW1wb3J0IERvbWFpblN0b3JlIGZyb20gJ1N0b3Jlcy9BZG1pbi9Eb21haW4nO1xuaW1wb3J0IFJlbW90ZSBmcm9tICdSZW1vdGUvQWRtaW4vQWpheCc7XG5cbmltcG9ydCB7IGdldEFwcCB9IGZyb20gJ0hlbHBlci9BcHBzL0FkbWluJztcblxuY2xhc3MgRG9tYWluc0FkbWluU2V0dGluZ3Mge1xuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLmRvbWFpbnMgPSBEb21haW5TdG9yZS5kb21haW5zO1xuXG5cdFx0dGhpcy52aXNpYmlsaXR5ID0ga28uY29tcHV0ZWQoKCkgPT4gKHRoaXMuZG9tYWlucy5sb2FkaW5nKCkgPyAndmlzaWJsZScgOiAnaGlkZGVuJykpO1xuXG5cdFx0dGhpcy5kb21haW5Gb3JEZWxldGlvbiA9IGtvLm9ic2VydmFibGUobnVsbCkuZGVsZXRlQWNjZXNzSGVscGVyKCk7XG5cblx0XHR0aGlzLm9uRG9tYWluTGlzdENoYW5nZVJlcXVlc3QgPSBfLmJpbmQodGhpcy5vbkRvbWFpbkxpc3RDaGFuZ2VSZXF1ZXN0LCB0aGlzKTtcblx0XHR0aGlzLm9uRG9tYWluTG9hZFJlcXVlc3QgPSBfLmJpbmQodGhpcy5vbkRvbWFpbkxvYWRSZXF1ZXN0LCB0aGlzKTtcblx0fVxuXG5cdGNyZWF0ZURvbWFpbigpIHtcblx0XHRzaG93U2NyZWVuUG9wdXAocmVxdWlyZSgnVmlldy9Qb3B1cC9Eb21haW4nKSk7XG5cdH1cblxuXHRjcmVhdGVEb21haW5BbGlhcygpIHtcblx0XHRzaG93U2NyZWVuUG9wdXAocmVxdWlyZSgnVmlldy9Qb3B1cC9Eb21haW5BbGlhcycpKTtcblx0fVxuXG5cdGRlbGV0ZURvbWFpbihkb21haW4pIHtcblx0XHR0aGlzLmRvbWFpbnMucmVtb3ZlKGRvbWFpbik7XG5cdFx0UmVtb3RlLmRvbWFpbkRlbGV0ZSh0aGlzLm9uRG9tYWluTGlzdENoYW5nZVJlcXVlc3QsIGRvbWFpbi5uYW1lKTtcblx0fVxuXG5cdGRpc2FibGVEb21haW4oZG9tYWluKSB7XG5cdFx0ZG9tYWluLmRpc2FibGVkKCFkb21haW4uZGlzYWJsZWQoKSk7XG5cdFx0UmVtb3RlLmRvbWFpbkRpc2FibGUodGhpcy5vbkRvbWFpbkxpc3RDaGFuZ2VSZXF1ZXN0LCBkb21haW4ubmFtZSwgZG9tYWluLmRpc2FibGVkKCkpO1xuXHR9XG5cblx0b25CdWlsZChvRG9tKSB7XG5cdFx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cdFx0b0RvbS5vbignY2xpY2snLCAnLmItYWRtaW4tZG9tYWlucy1saXN0LXRhYmxlIC5lLWl0ZW0gLmUtYWN0aW9uJywgZnVuY3Rpb24oKSB7XG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHByZWZlci1hcnJvdy1jYWxsYmFja1xuXHRcdFx0Y29uc3QgZG9tYWluSXRlbSA9IGtvLmRhdGFGb3IodGhpcyk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8taW52YWxpZC10aGlzXG5cdFx0XHRpZiAoZG9tYWluSXRlbSkge1xuXHRcdFx0XHRSZW1vdGUuZG9tYWluKHNlbGYub25Eb21haW5Mb2FkUmVxdWVzdCwgZG9tYWluSXRlbS5uYW1lKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdGdldEFwcCgpLnJlbG9hZERvbWFpbkxpc3QoKTtcblx0fVxuXG5cdG9uRG9tYWluTG9hZFJlcXVlc3Qoc1Jlc3VsdCwgb0RhdGEpIHtcblx0XHRpZiAoU3RvcmFnZVJlc3VsdFR5cGUuU3VjY2VzcyA9PT0gc1Jlc3VsdCAmJiBvRGF0YSAmJiBvRGF0YS5SZXN1bHQpIHtcblx0XHRcdHNob3dTY3JlZW5Qb3B1cChyZXF1aXJlKCdWaWV3L1BvcHVwL0RvbWFpbicpLCBbb0RhdGEuUmVzdWx0XSk7XG5cdFx0fVxuXHR9XG5cblx0b25Eb21haW5MaXN0Q2hhbmdlUmVxdWVzdCgpIHtcblx0XHRnZXRBcHAoKS5yZWxvYWREb21haW5MaXN0KCk7XG5cdH1cbn1cblxuZXhwb3J0IHsgRG9tYWluc0FkbWluU2V0dGluZ3MsIERvbWFpbnNBZG1pblNldHRpbmdzIGFzIGRlZmF1bHQgfTtcbiIsImltcG9ydCBfIGZyb20gJ18nO1xuaW1wb3J0IGtvIGZyb20gJ2tvJztcblxuaW1wb3J0IHsgc2V0dGluZ3NTYXZlSGVscGVyU2ltcGxlRnVuY3Rpb24sIGJvb2xUb0FqYXgsIHRyaW0gfSBmcm9tICdDb21tb24vVXRpbHMnO1xuaW1wb3J0IHsgc2V0dGluZ3NHZXQgfSBmcm9tICdTdG9yYWdlL1NldHRpbmdzJztcblxuaW1wb3J0IEFwcFN0b3JlIGZyb20gJ1N0b3Jlcy9BZG1pbi9BcHAnO1xuXG5pbXBvcnQgUmVtb3RlIGZyb20gJ1JlbW90ZS9BZG1pbi9BamF4JztcblxuY2xhc3MgTG9naW5BZG1pblNldHRpbmdzIHtcblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5kZXRlcm1pbmVVc2VyTGFuZ3VhZ2UgPSBBcHBTdG9yZS5kZXRlcm1pbmVVc2VyTGFuZ3VhZ2U7XG5cdFx0dGhpcy5kZXRlcm1pbmVVc2VyRG9tYWluID0gQXBwU3RvcmUuZGV0ZXJtaW5lVXNlckRvbWFpbjtcblxuXHRcdHRoaXMuZGVmYXVsdERvbWFpbiA9IGtvLm9ic2VydmFibGUoc2V0dGluZ3NHZXQoJ0xvZ2luRGVmYXVsdERvbWFpbicpKS5pZGxlVHJpZ2dlcigpO1xuXHRcdHRoaXMuYWxsb3dMYW5ndWFnZXNPbkxvZ2luID0gQXBwU3RvcmUuYWxsb3dMYW5ndWFnZXNPbkxvZ2luO1xuXG5cdFx0dGhpcy5kdW1teSA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXHR9XG5cblx0b25CdWlsZCgpIHtcblx0XHRfLmRlbGF5KCgpID0+IHtcblx0XHRcdGNvbnN0IGYxID0gc2V0dGluZ3NTYXZlSGVscGVyU2ltcGxlRnVuY3Rpb24odGhpcy5kZWZhdWx0RG9tYWluLnRyaWdnZXIsIHRoaXMpO1xuXG5cdFx0XHR0aGlzLmRldGVybWluZVVzZXJMYW5ndWFnZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFJlbW90ZS5zYXZlQWRtaW5Db25maWcobnVsbCwge1xuXHRcdFx0XHRcdCdEZXRlcm1pbmVVc2VyTGFuZ3VhZ2UnOiBib29sVG9BamF4KHZhbHVlKVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXG5cdFx0XHR0aGlzLmRldGVybWluZVVzZXJEb21haW4uc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRSZW1vdGUuc2F2ZUFkbWluQ29uZmlnKG51bGwsIHtcblx0XHRcdFx0XHQnRGV0ZXJtaW5lVXNlckRvbWFpbic6IGJvb2xUb0FqYXgodmFsdWUpXG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cblx0XHRcdHRoaXMuYWxsb3dMYW5ndWFnZXNPbkxvZ2luLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdFx0UmVtb3RlLnNhdmVBZG1pbkNvbmZpZyhudWxsLCB7XG5cdFx0XHRcdFx0J0FsbG93TGFuZ3VhZ2VzT25Mb2dpbic6IGJvb2xUb0FqYXgodmFsdWUpXG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cblx0XHRcdHRoaXMuZGVmYXVsdERvbWFpbi5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFJlbW90ZS5zYXZlQWRtaW5Db25maWcoZjEsIHtcblx0XHRcdFx0XHQnTG9naW5EZWZhdWx0RG9tYWluJzogdHJpbSh2YWx1ZSlcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHR9LCA1MCk7XG5cdH1cbn1cblxuZXhwb3J0IHsgTG9naW5BZG1pblNldHRpbmdzLCBMb2dpbkFkbWluU2V0dGluZ3MgYXMgZGVmYXVsdCB9O1xuIiwiaW1wb3J0IF8gZnJvbSAnXyc7XG5pbXBvcnQga28gZnJvbSAna28nO1xuXG5pbXBvcnQgeyBzZXR0aW5nc1NhdmVIZWxwZXJTaW1wbGVGdW5jdGlvbiwgZGVmYXV0T3B0aW9uc0FmdGVyUmVuZGVyLCBpbkFycmF5LCB0cmltLCBib29sVG9BamF4IH0gZnJvbSAnQ29tbW9uL1V0aWxzJztcblxuaW1wb3J0IHsgU2F2ZVNldHRpbmdzU3RlcCwgU3RvcmFnZVJlc3VsdFR5cGUsIE1hZ2ljcyB9IGZyb20gJ0NvbW1vbi9FbnVtcyc7XG5pbXBvcnQgeyBpMThuIH0gZnJvbSAnQ29tbW9uL1RyYW5zbGF0b3InO1xuaW1wb3J0IHsgc2V0dGluZ3NHZXQgfSBmcm9tICdTdG9yYWdlL1NldHRpbmdzJztcbmltcG9ydCBSZW1vdGUgZnJvbSAnUmVtb3RlL0FkbWluL0FqYXgnO1xuaW1wb3J0IHsgY29tbWFuZCB9IGZyb20gJ0tub2luL0tub2luJztcblxuY2xhc3MgQ29udGFjdHNBZG1pblNldHRpbmdzIHtcblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5kZWZhdXRPcHRpb25zQWZ0ZXJSZW5kZXIgPSBkZWZhdXRPcHRpb25zQWZ0ZXJSZW5kZXI7XG5cdFx0dGhpcy5lbmFibGVDb250YWN0cyA9IGtvLm9ic2VydmFibGUoISFzZXR0aW5nc0dldCgnQ29udGFjdHNFbmFibGUnKSk7XG5cdFx0dGhpcy5jb250YWN0c1N5bmMgPSBrby5vYnNlcnZhYmxlKCEhc2V0dGluZ3NHZXQoJ0NvbnRhY3RzU3luYycpKTtcblxuXHRcdGNvbnN0IHN1cHBvcnRlZFR5cGVzID0gW10sXG5cdFx0XHR0eXBlcyA9IFsnc3FsaXRlJywgJ215c3FsJywgJ3Bnc3FsJ10sXG5cdFx0XHRnZXRUeXBlTmFtZSA9IChuYW1lKSA9PiB7XG5cdFx0XHRcdHN3aXRjaCAobmFtZSkge1xuXHRcdFx0XHRcdGNhc2UgJ3NxbGl0ZSc6XG5cdFx0XHRcdFx0XHRuYW1lID0gJ1NRTGl0ZSc7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICdteXNxbCc6XG5cdFx0XHRcdFx0XHRuYW1lID0gJ015U1FMJztcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgJ3Bnc3FsJzpcblx0XHRcdFx0XHRcdG5hbWUgPSAnUG9zdGdyZVNRTCc7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHQvLyBubyBkZWZhdWx0XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gbmFtZTtcblx0XHRcdH07XG5cblx0XHRpZiAoc2V0dGluZ3NHZXQoJ1NRTGl0ZUlzU3VwcG9ydGVkJykpIHtcblx0XHRcdHN1cHBvcnRlZFR5cGVzLnB1c2goJ3NxbGl0ZScpO1xuXHRcdH1cblx0XHRpZiAoc2V0dGluZ3NHZXQoJ015U3FsSXNTdXBwb3J0ZWQnKSkge1xuXHRcdFx0c3VwcG9ydGVkVHlwZXMucHVzaCgnbXlzcWwnKTtcblx0XHR9XG5cdFx0aWYgKHNldHRpbmdzR2V0KCdQb3N0Z3JlU3FsSXNTdXBwb3J0ZWQnKSkge1xuXHRcdFx0c3VwcG9ydGVkVHlwZXMucHVzaCgncGdzcWwnKTtcblx0XHR9XG5cblx0XHR0aGlzLmNvbnRhY3RzU3VwcG9ydGVkID0gMCA8IHN1cHBvcnRlZFR5cGVzLmxlbmd0aDtcblxuXHRcdHRoaXMuY29udGFjdHNUeXBlcyA9IGtvLm9ic2VydmFibGVBcnJheShbXSk7XG5cdFx0dGhpcy5jb250YWN0c1R5cGVzT3B0aW9ucyA9IGtvLmNvbXB1dGVkKCgpID0+XG5cdFx0XHRfLm1hcCh0aGlzLmNvbnRhY3RzVHlwZXMoKSwgKHZhbHVlKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGRpc2FibGVkID0gLTEgPT09IGluQXJyYXkodmFsdWUsIHN1cHBvcnRlZFR5cGVzKTtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHQnaWQnOiB2YWx1ZSxcblx0XHRcdFx0XHQnbmFtZSc6IGdldFR5cGVOYW1lKHZhbHVlKSArIChkaXNhYmxlZCA/ICcgKCcgKyBpMThuKCdISU5UUy9OT1RfU1VQUE9SVEVEJykgKyAnKScgOiAnJyksXG5cdFx0XHRcdFx0J2Rpc2FibGVkJzogZGlzYWJsZWRcblx0XHRcdFx0fTtcblx0XHRcdH0pXG5cdFx0KTtcblxuXHRcdHRoaXMuY29udGFjdHNUeXBlcyh0eXBlcyk7XG5cdFx0dGhpcy5jb250YWN0c1R5cGUgPSBrby5vYnNlcnZhYmxlKCcnKTtcblxuXHRcdHRoaXMubWFpbkNvbnRhY3RzVHlwZSA9IGtvXG5cdFx0XHQuY29tcHV0ZWQoe1xuXHRcdFx0XHRyZWFkOiB0aGlzLmNvbnRhY3RzVHlwZSxcblx0XHRcdFx0d3JpdGU6ICh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRcdGlmICh2YWx1ZSAhPT0gdGhpcy5jb250YWN0c1R5cGUoKSkge1xuXHRcdFx0XHRcdFx0aWYgKC0xIDwgaW5BcnJheSh2YWx1ZSwgc3VwcG9ydGVkVHlwZXMpKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuY29udGFjdHNUeXBlKHZhbHVlKTtcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoMCA8IHN1cHBvcnRlZFR5cGVzLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHR0aGlzLmNvbnRhY3RzVHlwZSgnJyk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHRoaXMuY29udGFjdHNUeXBlLnZhbHVlSGFzTXV0YXRlZCgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSlcblx0XHRcdC5leHRlbmQoeyBub3RpZnk6ICdhbHdheXMnIH0pO1xuXG5cdFx0dGhpcy5jb250YWN0c1R5cGUuc3Vic2NyaWJlKCgpID0+IHtcblx0XHRcdHRoaXMudGVzdENvbnRhY3RzU3VjY2VzcyhmYWxzZSk7XG5cdFx0XHR0aGlzLnRlc3RDb250YWN0c0Vycm9yKGZhbHNlKTtcblx0XHRcdHRoaXMudGVzdENvbnRhY3RzRXJyb3JNZXNzYWdlKCcnKTtcblx0XHR9KTtcblxuXHRcdHRoaXMucGRvRHNuID0ga28ub2JzZXJ2YWJsZShzZXR0aW5nc0dldCgnQ29udGFjdHNQZG9Ec24nKSk7XG5cdFx0dGhpcy5wZG9Vc2VyID0ga28ub2JzZXJ2YWJsZShzZXR0aW5nc0dldCgnQ29udGFjdHNQZG9Vc2VyJykpO1xuXHRcdHRoaXMucGRvUGFzc3dvcmQgPSBrby5vYnNlcnZhYmxlKHNldHRpbmdzR2V0KCdDb250YWN0c1Bkb1Bhc3N3b3JkJykpO1xuXG5cdFx0dGhpcy5wZG9Ec25UcmlnZ2VyID0ga28ub2JzZXJ2YWJsZShTYXZlU2V0dGluZ3NTdGVwLklkbGUpO1xuXHRcdHRoaXMucGRvVXNlclRyaWdnZXIgPSBrby5vYnNlcnZhYmxlKFNhdmVTZXR0aW5nc1N0ZXAuSWRsZSk7XG5cdFx0dGhpcy5wZG9QYXNzd29yZFRyaWdnZXIgPSBrby5vYnNlcnZhYmxlKFNhdmVTZXR0aW5nc1N0ZXAuSWRsZSk7XG5cdFx0dGhpcy5jb250YWN0c1R5cGVUcmlnZ2VyID0ga28ub2JzZXJ2YWJsZShTYXZlU2V0dGluZ3NTdGVwLklkbGUpO1xuXG5cdFx0dGhpcy50ZXN0aW5nID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cdFx0dGhpcy50ZXN0Q29udGFjdHNTdWNjZXNzID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cdFx0dGhpcy50ZXN0Q29udGFjdHNFcnJvciA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXHRcdHRoaXMudGVzdENvbnRhY3RzRXJyb3JNZXNzYWdlID0ga28ub2JzZXJ2YWJsZSgnJyk7XG5cblx0XHR0aGlzLmNvbnRhY3RzVHlwZShzZXR0aW5nc0dldCgnQ29udGFjdHNQZG9UeXBlJykpO1xuXG5cdFx0dGhpcy5vblRlc3RDb250YWN0c1Jlc3BvbnNlID0gXy5iaW5kKHRoaXMub25UZXN0Q29udGFjdHNSZXNwb25zZSwgdGhpcyk7XG5cdH1cblxuXHRAY29tbWFuZCgoc2VsZikgPT4gJycgIT09IHNlbGYucGRvRHNuKCkgJiYgJycgIT09IHNlbGYucGRvVXNlcigpKVxuXHR0ZXN0Q29udGFjdHNDb21tYW5kKCkge1xuXHRcdHRoaXMudGVzdENvbnRhY3RzU3VjY2VzcyhmYWxzZSk7XG5cdFx0dGhpcy50ZXN0Q29udGFjdHNFcnJvcihmYWxzZSk7XG5cdFx0dGhpcy50ZXN0Q29udGFjdHNFcnJvck1lc3NhZ2UoJycpO1xuXHRcdHRoaXMudGVzdGluZyh0cnVlKTtcblxuXHRcdFJlbW90ZS50ZXN0Q29udGFjdHModGhpcy5vblRlc3RDb250YWN0c1Jlc3BvbnNlLCB7XG5cdFx0XHQnQ29udGFjdHNQZG9UeXBlJzogdGhpcy5jb250YWN0c1R5cGUoKSxcblx0XHRcdCdDb250YWN0c1Bkb0Rzbic6IHRoaXMucGRvRHNuKCksXG5cdFx0XHQnQ29udGFjdHNQZG9Vc2VyJzogdGhpcy5wZG9Vc2VyKCksXG5cdFx0XHQnQ29udGFjdHNQZG9QYXNzd29yZCc6IHRoaXMucGRvUGFzc3dvcmQoKVxuXHRcdH0pO1xuXHR9XG5cblx0b25UZXN0Q29udGFjdHNSZXNwb25zZShyZXN1bHQsIGRhdGEpIHtcblx0XHR0aGlzLnRlc3RDb250YWN0c1N1Y2Nlc3MoZmFsc2UpO1xuXHRcdHRoaXMudGVzdENvbnRhY3RzRXJyb3IoZmFsc2UpO1xuXHRcdHRoaXMudGVzdENvbnRhY3RzRXJyb3JNZXNzYWdlKCcnKTtcblxuXHRcdGlmIChTdG9yYWdlUmVzdWx0VHlwZS5TdWNjZXNzID09PSByZXN1bHQgJiYgZGF0YSAmJiBkYXRhLlJlc3VsdCAmJiBkYXRhLlJlc3VsdC5SZXN1bHQpIHtcblx0XHRcdHRoaXMudGVzdENvbnRhY3RzU3VjY2Vzcyh0cnVlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy50ZXN0Q29udGFjdHNFcnJvcih0cnVlKTtcblx0XHRcdGlmIChkYXRhICYmIGRhdGEuUmVzdWx0KSB7XG5cdFx0XHRcdHRoaXMudGVzdENvbnRhY3RzRXJyb3JNZXNzYWdlKGRhdGEuUmVzdWx0Lk1lc3NhZ2UgfHwgJycpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy50ZXN0Q29udGFjdHNFcnJvck1lc3NhZ2UoJycpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHRoaXMudGVzdGluZyhmYWxzZSk7XG5cdH1cblxuXHRvblNob3coKSB7XG5cdFx0dGhpcy50ZXN0Q29udGFjdHNTdWNjZXNzKGZhbHNlKTtcblx0XHR0aGlzLnRlc3RDb250YWN0c0Vycm9yKGZhbHNlKTtcblx0XHR0aGlzLnRlc3RDb250YWN0c0Vycm9yTWVzc2FnZSgnJyk7XG5cdH1cblxuXHRvbkJ1aWxkKCkge1xuXHRcdF8uZGVsYXkoKCkgPT4ge1xuXHRcdFx0Y29uc3QgZjEgPSBzZXR0aW5nc1NhdmVIZWxwZXJTaW1wbGVGdW5jdGlvbih0aGlzLnBkb0RzblRyaWdnZXIsIHRoaXMpLFxuXHRcdFx0XHRmMyA9IHNldHRpbmdzU2F2ZUhlbHBlclNpbXBsZUZ1bmN0aW9uKHRoaXMucGRvVXNlclRyaWdnZXIsIHRoaXMpLFxuXHRcdFx0XHRmNCA9IHNldHRpbmdzU2F2ZUhlbHBlclNpbXBsZUZ1bmN0aW9uKHRoaXMucGRvUGFzc3dvcmRUcmlnZ2VyLCB0aGlzKSxcblx0XHRcdFx0ZjUgPSBzZXR0aW5nc1NhdmVIZWxwZXJTaW1wbGVGdW5jdGlvbih0aGlzLmNvbnRhY3RzVHlwZVRyaWdnZXIsIHRoaXMpO1xuXG5cdFx0XHR0aGlzLmVuYWJsZUNvbnRhY3RzLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdFx0UmVtb3RlLnNhdmVBZG1pbkNvbmZpZyhudWxsLCB7XG5cdFx0XHRcdFx0J0NvbnRhY3RzRW5hYmxlJzogYm9vbFRvQWpheCh2YWx1ZSlcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblxuXHRcdFx0dGhpcy5jb250YWN0c1N5bmMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRSZW1vdGUuc2F2ZUFkbWluQ29uZmlnKG51bGwsIHtcblx0XHRcdFx0XHQnQ29udGFjdHNTeW5jJzogYm9vbFRvQWpheCh2YWx1ZSlcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblxuXHRcdFx0dGhpcy5jb250YWN0c1R5cGUuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRSZW1vdGUuc2F2ZUFkbWluQ29uZmlnKGY1LCB7XG5cdFx0XHRcdFx0J0NvbnRhY3RzUGRvVHlwZSc6IHRyaW0odmFsdWUpXG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cblx0XHRcdHRoaXMucGRvRHNuLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdFx0UmVtb3RlLnNhdmVBZG1pbkNvbmZpZyhmMSwge1xuXHRcdFx0XHRcdCdDb250YWN0c1Bkb0Rzbic6IHRyaW0odmFsdWUpXG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cblx0XHRcdHRoaXMucGRvVXNlci5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFJlbW90ZS5zYXZlQWRtaW5Db25maWcoZjMsIHtcblx0XHRcdFx0XHQnQ29udGFjdHNQZG9Vc2VyJzogdHJpbSh2YWx1ZSlcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblxuXHRcdFx0dGhpcy5wZG9QYXNzd29yZC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFJlbW90ZS5zYXZlQWRtaW5Db25maWcoZjQsIHtcblx0XHRcdFx0XHQnQ29udGFjdHNQZG9QYXNzd29yZCc6IHRyaW0odmFsdWUpXG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cblx0XHRcdHRoaXMuY29udGFjdHNUeXBlKHNldHRpbmdzR2V0KCdDb250YWN0c1Bkb1R5cGUnKSk7XG5cdFx0fSwgTWFnaWNzLlRpbWU1MG1zKTtcblx0fVxufVxuXG5leHBvcnQgeyBDb250YWN0c0FkbWluU2V0dGluZ3MsIENvbnRhY3RzQWRtaW5TZXR0aW5ncyBhcyBkZWZhdWx0IH07XG4iLCJpbXBvcnQgXyBmcm9tICdfJztcbmltcG9ydCBrbyBmcm9tICdrbyc7XG5cbmltcG9ydCB7IHRyaW0sIGJvb2xUb0FqYXggfSBmcm9tICdDb21tb24vVXRpbHMnO1xuaW1wb3J0IHsgcGhwSW5mbyB9IGZyb20gJ0NvbW1vbi9MaW5rcyc7XG5pbXBvcnQgeyBTdG9yYWdlUmVzdWx0VHlwZSwgTWFnaWNzIH0gZnJvbSAnQ29tbW9uL0VudW1zJztcblxuaW1wb3J0IHsgc2V0dGluZ3NHZXQgfSBmcm9tICdTdG9yYWdlL1NldHRpbmdzJztcblxuaW1wb3J0IEFwcEFkbWluU3RvcmUgZnJvbSAnU3RvcmVzL0FkbWluL0FwcCc7XG5pbXBvcnQgQ2FwYUFkbWluU3RvcmUgZnJvbSAnU3RvcmVzL0FkbWluL0NhcGEnO1xuXG5pbXBvcnQgUmVtb3RlIGZyb20gJ1JlbW90ZS9BZG1pbi9BamF4JztcblxuaW1wb3J0IHsgY29tbWFuZCB9IGZyb20gJ0tub2luL0tub2luJztcblxuY2xhc3MgU2VjdXJpdHlBZG1pblNldHRpbmdzIHtcblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy51c2VMb2NhbFByb3h5Rm9yRXh0ZXJuYWxJbWFnZXMgPSBBcHBBZG1pblN0b3JlLnVzZUxvY2FsUHJveHlGb3JFeHRlcm5hbEltYWdlcztcblxuXHRcdHRoaXMud2Vha1Bhc3N3b3JkID0gQXBwQWRtaW5TdG9yZS53ZWFrUGFzc3dvcmQ7XG5cblx0XHR0aGlzLmNhcGFPcGVuUEdQID0gQ2FwYUFkbWluU3RvcmUub3BlblBHUDtcblxuXHRcdHRoaXMuY2FwYVR3b0ZhY3RvckF1dGggPSBDYXBhQWRtaW5TdG9yZS50d29GYWN0b3JBdXRoO1xuXHRcdHRoaXMuY2FwYVR3b0ZhY3RvckF1dGhGb3JjZSA9IENhcGFBZG1pblN0b3JlLnR3b0ZhY3RvckF1dGhGb3JjZTtcblxuXHRcdHRoaXMuY2FwYVR3b0ZhY3RvckF1dGguc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0aWYgKCF2YWx1ZSkge1xuXHRcdFx0XHR0aGlzLmNhcGFUd29GYWN0b3JBdXRoRm9yY2UoZmFsc2UpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0dGhpcy52ZXJpZnlTc2xDZXJ0aWZpY2F0ZSA9IGtvLm9ic2VydmFibGUoISFzZXR0aW5nc0dldCgnVmVyaWZ5U3NsQ2VydGlmaWNhdGUnKSk7XG5cdFx0dGhpcy5hbGxvd1NlbGZTaWduZWQgPSBrby5vYnNlcnZhYmxlKCEhc2V0dGluZ3NHZXQoJ0FsbG93U2VsZlNpZ25lZCcpKTtcblxuXHRcdHRoaXMudmVyaWZ5U3NsQ2VydGlmaWNhdGUuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0aWYgKCF2YWx1ZSkge1xuXHRcdFx0XHR0aGlzLmFsbG93U2VsZlNpZ25lZCh0cnVlKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdHRoaXMuaXNUd29GYWN0b3JEcm9wcGVyU2hvd24gPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblx0XHR0aGlzLnR3b0ZhY3RvckRyb3BwZXJVc2VyID0ga28ub2JzZXJ2YWJsZSgnJyk7XG5cdFx0dGhpcy50d29GYWN0b3JEcm9wcGVyVXNlci5mb2N1c2VkID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cblx0XHR0aGlzLmFkbWluTG9naW4gPSBrby5vYnNlcnZhYmxlKHNldHRpbmdzR2V0KCdBZG1pbkxvZ2luJykpO1xuXHRcdHRoaXMuYWRtaW5Mb2dpbkVycm9yID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cdFx0dGhpcy5hZG1pblBhc3N3b3JkID0ga28ub2JzZXJ2YWJsZSgnJyk7XG5cdFx0dGhpcy5hZG1pblBhc3N3b3JkTmV3ID0ga28ub2JzZXJ2YWJsZSgnJyk7XG5cdFx0dGhpcy5hZG1pblBhc3N3b3JkTmV3MiA9IGtvLm9ic2VydmFibGUoJycpO1xuXHRcdHRoaXMuYWRtaW5QYXNzd29yZE5ld0Vycm9yID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cblx0XHR0aGlzLmFkbWluUGFzc3dvcmRVcGRhdGVFcnJvciA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXHRcdHRoaXMuYWRtaW5QYXNzd29yZFVwZGF0ZVN1Y2Nlc3MgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblxuXHRcdHRoaXMuYWRtaW5QYXNzd29yZC5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0dGhpcy5hZG1pblBhc3N3b3JkVXBkYXRlRXJyb3IoZmFsc2UpO1xuXHRcdFx0dGhpcy5hZG1pblBhc3N3b3JkVXBkYXRlU3VjY2VzcyhmYWxzZSk7XG5cdFx0fSk7XG5cblx0XHR0aGlzLmFkbWluTG9naW4uc3Vic2NyaWJlKCgpID0+IHtcblx0XHRcdHRoaXMuYWRtaW5Mb2dpbkVycm9yKGZhbHNlKTtcblx0XHR9KTtcblxuXHRcdHRoaXMuYWRtaW5QYXNzd29yZE5ldy5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0dGhpcy5hZG1pblBhc3N3b3JkVXBkYXRlRXJyb3IoZmFsc2UpO1xuXHRcdFx0dGhpcy5hZG1pblBhc3N3b3JkVXBkYXRlU3VjY2VzcyhmYWxzZSk7XG5cdFx0XHR0aGlzLmFkbWluUGFzc3dvcmROZXdFcnJvcihmYWxzZSk7XG5cdFx0fSk7XG5cblx0XHR0aGlzLmFkbWluUGFzc3dvcmROZXcyLnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHR0aGlzLmFkbWluUGFzc3dvcmRVcGRhdGVFcnJvcihmYWxzZSk7XG5cdFx0XHR0aGlzLmFkbWluUGFzc3dvcmRVcGRhdGVTdWNjZXNzKGZhbHNlKTtcblx0XHRcdHRoaXMuYWRtaW5QYXNzd29yZE5ld0Vycm9yKGZhbHNlKTtcblx0XHR9KTtcblxuXHRcdHRoaXMub25OZXdBZG1pblBhc3N3b3JkUmVzcG9uc2UgPSBfLmJpbmQodGhpcy5vbk5ld0FkbWluUGFzc3dvcmRSZXNwb25zZSwgdGhpcyk7XG5cdH1cblxuXHRAY29tbWFuZCgoc2VsZikgPT4gJycgIT09IHRyaW0oc2VsZi5hZG1pbkxvZ2luKCkpICYmICcnICE9PSBzZWxmLmFkbWluUGFzc3dvcmQoKSlcblx0c2F2ZU5ld0FkbWluUGFzc3dvcmRDb21tYW5kKCkge1xuXHRcdGlmICgnJyA9PT0gdHJpbSh0aGlzLmFkbWluTG9naW4oKSkpIHtcblx0XHRcdHRoaXMuYWRtaW5Mb2dpbkVycm9yKHRydWUpO1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLmFkbWluUGFzc3dvcmROZXcoKSAhPT0gdGhpcy5hZG1pblBhc3N3b3JkTmV3MigpKSB7XG5cdFx0XHR0aGlzLmFkbWluUGFzc3dvcmROZXdFcnJvcih0cnVlKTtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHR0aGlzLmFkbWluUGFzc3dvcmRVcGRhdGVFcnJvcihmYWxzZSk7XG5cdFx0dGhpcy5hZG1pblBhc3N3b3JkVXBkYXRlU3VjY2VzcyhmYWxzZSk7XG5cblx0XHRSZW1vdGUuc2F2ZU5ld0FkbWluUGFzc3dvcmQodGhpcy5vbk5ld0FkbWluUGFzc3dvcmRSZXNwb25zZSwge1xuXHRcdFx0J0xvZ2luJzogdGhpcy5hZG1pbkxvZ2luKCksXG5cdFx0XHQnUGFzc3dvcmQnOiB0aGlzLmFkbWluUGFzc3dvcmQoKSxcblx0XHRcdCdOZXdQYXNzd29yZCc6IHRoaXMuYWRtaW5QYXNzd29yZE5ldygpXG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdHNob3dUd29GYWN0b3JEcm9wcGVyKCkge1xuXHRcdHRoaXMudHdvRmFjdG9yRHJvcHBlclVzZXIoJycpO1xuXHRcdHRoaXMuaXNUd29GYWN0b3JEcm9wcGVyU2hvd24odHJ1ZSk7XG5cblx0XHRfLmRlbGF5KCgpID0+IHtcblx0XHRcdHRoaXMudHdvRmFjdG9yRHJvcHBlclVzZXIuZm9jdXNlZCh0cnVlKTtcblx0XHR9LCBNYWdpY3MuVGltZTUwbXMpO1xuXHR9XG5cblx0b25OZXdBZG1pblBhc3N3b3JkUmVzcG9uc2UocmVzdWx0LCBkYXRhKSB7XG5cdFx0aWYgKFN0b3JhZ2VSZXN1bHRUeXBlLlN1Y2Nlc3MgPT09IHJlc3VsdCAmJiBkYXRhICYmIGRhdGEuUmVzdWx0KSB7XG5cdFx0XHR0aGlzLmFkbWluUGFzc3dvcmQoJycpO1xuXHRcdFx0dGhpcy5hZG1pblBhc3N3b3JkTmV3KCcnKTtcblx0XHRcdHRoaXMuYWRtaW5QYXNzd29yZE5ldzIoJycpO1xuXG5cdFx0XHR0aGlzLmFkbWluUGFzc3dvcmRVcGRhdGVTdWNjZXNzKHRydWUpO1xuXG5cdFx0XHR0aGlzLndlYWtQYXNzd29yZCghIWRhdGEuUmVzdWx0LldlYWspO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmFkbWluUGFzc3dvcmRVcGRhdGVFcnJvcih0cnVlKTtcblx0XHR9XG5cdH1cblxuXHRvbkJ1aWxkKCkge1xuXHRcdHRoaXMuY2FwYU9wZW5QR1Auc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0UmVtb3RlLnNhdmVBZG1pbkNvbmZpZyhudWxsLCB7XG5cdFx0XHRcdCdDYXBhT3BlblBHUCc6IGJvb2xUb0FqYXgodmFsdWUpXG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdHRoaXMuY2FwYVR3b0ZhY3RvckF1dGguc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0UmVtb3RlLnNhdmVBZG1pbkNvbmZpZyhudWxsLCB7XG5cdFx0XHRcdCdDYXBhVHdvRmFjdG9yQXV0aCc6IGJvb2xUb0FqYXgodmFsdWUpXG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdHRoaXMuY2FwYVR3b0ZhY3RvckF1dGhGb3JjZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRSZW1vdGUuc2F2ZUFkbWluQ29uZmlnKG51bGwsIHtcblx0XHRcdFx0J0NhcGFUd29GYWN0b3JBdXRoRm9yY2UnOiBib29sVG9BamF4KHZhbHVlKVxuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHR0aGlzLnVzZUxvY2FsUHJveHlGb3JFeHRlcm5hbEltYWdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRSZW1vdGUuc2F2ZUFkbWluQ29uZmlnKG51bGwsIHtcblx0XHRcdFx0J1VzZUxvY2FsUHJveHlGb3JFeHRlcm5hbEltYWdlcyc6IGJvb2xUb0FqYXgodmFsdWUpXG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdHRoaXMudmVyaWZ5U3NsQ2VydGlmaWNhdGUuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0UmVtb3RlLnNhdmVBZG1pbkNvbmZpZyhudWxsLCB7XG5cdFx0XHRcdCdWZXJpZnlTc2xDZXJ0aWZpY2F0ZSc6IGJvb2xUb0FqYXgodmFsdWUpXG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdHRoaXMuYWxsb3dTZWxmU2lnbmVkLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdFJlbW90ZS5zYXZlQWRtaW5Db25maWcobnVsbCwge1xuXHRcdFx0XHQnQWxsb3dTZWxmU2lnbmVkJzogYm9vbFRvQWpheCh2YWx1ZSlcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG5cblx0b25IaWRlKCkge1xuXHRcdHRoaXMuYWRtaW5QYXNzd29yZCgnJyk7XG5cdFx0dGhpcy5hZG1pblBhc3N3b3JkTmV3KCcnKTtcblx0XHR0aGlzLmFkbWluUGFzc3dvcmROZXcyKCcnKTtcblxuXHRcdHRoaXMuaXNUd29GYWN0b3JEcm9wcGVyU2hvd24oZmFsc2UpO1xuXHRcdHRoaXMudHdvRmFjdG9yRHJvcHBlclVzZXIoJycpO1xuXHRcdHRoaXMudHdvRmFjdG9yRHJvcHBlclVzZXIuZm9jdXNlZChmYWxzZSk7XG5cdH1cblxuXHQvKipcblx0ICogQHJldHVybnMge3N0cmluZ31cblx0ICovXG5cdHBocEluZm9MaW5rKCkge1xuXHRcdHJldHVybiBwaHBJbmZvKCk7XG5cdH1cbn1cblxuZXhwb3J0IHsgU2VjdXJpdHlBZG1pblNldHRpbmdzLCBTZWN1cml0eUFkbWluU2V0dGluZ3MgYXMgZGVmYXVsdCB9O1xuIiwiaW1wb3J0IF8gZnJvbSAnXyc7XG5pbXBvcnQga28gZnJvbSAna28nO1xuXG5pbXBvcnQgeyBTYXZlU2V0dGluZ3NTdGVwLCBNYWdpY3MgfSBmcm9tICdDb21tb24vRW51bXMnO1xuaW1wb3J0IHsgc2V0dGluZ3NTYXZlSGVscGVyU2ltcGxlRnVuY3Rpb24sIHRyaW0sIGJvb2xUb0FqYXggfSBmcm9tICdDb21tb24vVXRpbHMnO1xuXG5pbXBvcnQgU29jaWFsU3RvcmUgZnJvbSAnU3RvcmVzL1NvY2lhbCc7XG5cbmltcG9ydCBSZW1vdGUgZnJvbSAnUmVtb3RlL0FkbWluL0FqYXgnO1xuXG5jbGFzcyBTb2NpYWxBZG1pblNldHRpbmdzIHtcblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5nb29nbGVFbmFibGUgPSBTb2NpYWxTdG9yZS5nb29nbGUuZW5hYmxlZDtcblx0XHR0aGlzLmdvb2dsZUVuYWJsZUF1dGggPSBTb2NpYWxTdG9yZS5nb29nbGUuY2FwYS5hdXRoO1xuXHRcdHRoaXMuZ29vZ2xlRW5hYmxlQXV0aEdtYWlsID0gU29jaWFsU3RvcmUuZ29vZ2xlLmNhcGEuYXV0aEdtYWlsO1xuXHRcdHRoaXMuZ29vZ2xlRW5hYmxlRHJpdmUgPSBTb2NpYWxTdG9yZS5nb29nbGUuY2FwYS5kcml2ZTtcblx0XHR0aGlzLmdvb2dsZUVuYWJsZVByZXZpZXcgPSBTb2NpYWxTdG9yZS5nb29nbGUuY2FwYS5wcmV2aWV3O1xuXG5cdFx0dGhpcy5nb29nbGVFbmFibGVSZXF1aXJlQ2xpZW50U2V0dGluZ3MgPSBTb2NpYWxTdG9yZS5nb29nbGUucmVxdWlyZS5jbGllbnRTZXR0aW5ncztcblx0XHR0aGlzLmdvb2dsZUVuYWJsZVJlcXVpcmVBcGlLZXkgPSBTb2NpYWxTdG9yZS5nb29nbGUucmVxdWlyZS5hcGlLZXlTZXR0aW5ncztcblxuXHRcdHRoaXMuZ29vZ2xlQ2xpZW50SUQgPSBTb2NpYWxTdG9yZS5nb29nbGUuY2xpZW50SUQ7XG5cdFx0dGhpcy5nb29nbGVDbGllbnRTZWNyZXQgPSBTb2NpYWxTdG9yZS5nb29nbGUuY2xpZW50U2VjcmV0O1xuXHRcdHRoaXMuZ29vZ2xlQXBpS2V5ID0gU29jaWFsU3RvcmUuZ29vZ2xlLmFwaUtleTtcblxuXHRcdHRoaXMuZ29vZ2xlVHJpZ2dlcjEgPSBrby5vYnNlcnZhYmxlKFNhdmVTZXR0aW5nc1N0ZXAuSWRsZSk7XG5cdFx0dGhpcy5nb29nbGVUcmlnZ2VyMiA9IGtvLm9ic2VydmFibGUoU2F2ZVNldHRpbmdzU3RlcC5JZGxlKTtcblx0XHR0aGlzLmdvb2dsZVRyaWdnZXIzID0ga28ub2JzZXJ2YWJsZShTYXZlU2V0dGluZ3NTdGVwLklkbGUpO1xuXG5cdFx0dGhpcy5mYWNlYm9va1N1cHBvcnRlZCA9IFNvY2lhbFN0b3JlLmZhY2Vib29rLnN1cHBvcnRlZDtcblx0XHR0aGlzLmZhY2Vib29rRW5hYmxlID0gU29jaWFsU3RvcmUuZmFjZWJvb2suZW5hYmxlZDtcblx0XHR0aGlzLmZhY2Vib29rQXBwSUQgPSBTb2NpYWxTdG9yZS5mYWNlYm9vay5hcHBJRDtcblx0XHR0aGlzLmZhY2Vib29rQXBwU2VjcmV0ID0gU29jaWFsU3RvcmUuZmFjZWJvb2suYXBwU2VjcmV0O1xuXG5cdFx0dGhpcy5mYWNlYm9va1RyaWdnZXIxID0ga28ub2JzZXJ2YWJsZShTYXZlU2V0dGluZ3NTdGVwLklkbGUpO1xuXHRcdHRoaXMuZmFjZWJvb2tUcmlnZ2VyMiA9IGtvLm9ic2VydmFibGUoU2F2ZVNldHRpbmdzU3RlcC5JZGxlKTtcblxuXHRcdHRoaXMudHdpdHRlckVuYWJsZSA9IFNvY2lhbFN0b3JlLnR3aXR0ZXIuZW5hYmxlZDtcblx0XHR0aGlzLnR3aXR0ZXJDb25zdW1lcktleSA9IFNvY2lhbFN0b3JlLnR3aXR0ZXIuY29uc3VtZXJLZXk7XG5cdFx0dGhpcy50d2l0dGVyQ29uc3VtZXJTZWNyZXQgPSBTb2NpYWxTdG9yZS50d2l0dGVyLmNvbnN1bWVyU2VjcmV0O1xuXG5cdFx0dGhpcy50d2l0dGVyVHJpZ2dlcjEgPSBrby5vYnNlcnZhYmxlKFNhdmVTZXR0aW5nc1N0ZXAuSWRsZSk7XG5cdFx0dGhpcy50d2l0dGVyVHJpZ2dlcjIgPSBrby5vYnNlcnZhYmxlKFNhdmVTZXR0aW5nc1N0ZXAuSWRsZSk7XG5cblx0XHR0aGlzLmRyb3Bib3hFbmFibGUgPSBTb2NpYWxTdG9yZS5kcm9wYm94LmVuYWJsZWQ7XG5cdFx0dGhpcy5kcm9wYm94QXBpS2V5ID0gU29jaWFsU3RvcmUuZHJvcGJveC5hcGlLZXk7XG5cblx0XHR0aGlzLmRyb3Bib3hUcmlnZ2VyMSA9IGtvLm9ic2VydmFibGUoU2F2ZVNldHRpbmdzU3RlcC5JZGxlKTtcblx0fVxuXG5cdG9uQnVpbGQoKSB7XG5cdFx0Xy5kZWxheSgoKSA9PiB7XG5cdFx0XHRjb25zdCBmMSA9IHNldHRpbmdzU2F2ZUhlbHBlclNpbXBsZUZ1bmN0aW9uKHRoaXMuZmFjZWJvb2tUcmlnZ2VyMSwgdGhpcyksXG5cdFx0XHRcdGYyID0gc2V0dGluZ3NTYXZlSGVscGVyU2ltcGxlRnVuY3Rpb24odGhpcy5mYWNlYm9va1RyaWdnZXIyLCB0aGlzKSxcblx0XHRcdFx0ZjMgPSBzZXR0aW5nc1NhdmVIZWxwZXJTaW1wbGVGdW5jdGlvbih0aGlzLnR3aXR0ZXJUcmlnZ2VyMSwgdGhpcyksXG5cdFx0XHRcdGY0ID0gc2V0dGluZ3NTYXZlSGVscGVyU2ltcGxlRnVuY3Rpb24odGhpcy50d2l0dGVyVHJpZ2dlcjIsIHRoaXMpLFxuXHRcdFx0XHRmNSA9IHNldHRpbmdzU2F2ZUhlbHBlclNpbXBsZUZ1bmN0aW9uKHRoaXMuZ29vZ2xlVHJpZ2dlcjEsIHRoaXMpLFxuXHRcdFx0XHRmNiA9IHNldHRpbmdzU2F2ZUhlbHBlclNpbXBsZUZ1bmN0aW9uKHRoaXMuZ29vZ2xlVHJpZ2dlcjIsIHRoaXMpLFxuXHRcdFx0XHRmNyA9IHNldHRpbmdzU2F2ZUhlbHBlclNpbXBsZUZ1bmN0aW9uKHRoaXMuZ29vZ2xlVHJpZ2dlcjMsIHRoaXMpLFxuXHRcdFx0XHRmOCA9IHNldHRpbmdzU2F2ZUhlbHBlclNpbXBsZUZ1bmN0aW9uKHRoaXMuZHJvcGJveFRyaWdnZXIxLCB0aGlzKTtcblxuXHRcdFx0dGhpcy5mYWNlYm9va0VuYWJsZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdGlmICh0aGlzLmZhY2Vib29rU3VwcG9ydGVkKCkpIHtcblx0XHRcdFx0XHRSZW1vdGUuc2F2ZUFkbWluQ29uZmlnKG51bGwsIHtcblx0XHRcdFx0XHRcdCdGYWNlYm9va0VuYWJsZSc6IGJvb2xUb0FqYXgodmFsdWUpXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXG5cdFx0XHR0aGlzLmZhY2Vib29rQXBwSUQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRpZiAodGhpcy5mYWNlYm9va1N1cHBvcnRlZCgpKSB7XG5cdFx0XHRcdFx0UmVtb3RlLnNhdmVBZG1pbkNvbmZpZyhmMSwge1xuXHRcdFx0XHRcdFx0J0ZhY2Vib29rQXBwSUQnOiB0cmltKHZhbHVlKVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdFx0dGhpcy5mYWNlYm9va0FwcFNlY3JldC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdGlmICh0aGlzLmZhY2Vib29rU3VwcG9ydGVkKCkpIHtcblx0XHRcdFx0XHRSZW1vdGUuc2F2ZUFkbWluQ29uZmlnKGYyLCB7XG5cdFx0XHRcdFx0XHQnRmFjZWJvb2tBcHBTZWNyZXQnOiB0cmltKHZhbHVlKVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdFx0dGhpcy50d2l0dGVyRW5hYmxlLnN1YnNjcmliZShSZW1vdGUuc2F2ZUFkbWluQ29uZmlnSGVscGVyKCdUd2l0dGVyRW5hYmxlJywgYm9vbFRvQWpheCkpO1xuXHRcdFx0dGhpcy50d2l0dGVyQ29uc3VtZXJLZXkuc3Vic2NyaWJlKFJlbW90ZS5zYXZlQWRtaW5Db25maWdIZWxwZXIoJ1R3aXR0ZXJDb25zdW1lcktleScsIHRyaW0sIGYzKSk7XG5cdFx0XHR0aGlzLnR3aXR0ZXJDb25zdW1lclNlY3JldC5zdWJzY3JpYmUoUmVtb3RlLnNhdmVBZG1pbkNvbmZpZ0hlbHBlcignVHdpdHRlckNvbnN1bWVyU2VjcmV0JywgdHJpbSwgZjQpKTtcblxuXHRcdFx0dGhpcy5nb29nbGVFbmFibGUuc3Vic2NyaWJlKFJlbW90ZS5zYXZlQWRtaW5Db25maWdIZWxwZXIoJ0dvb2dsZUVuYWJsZScsIGJvb2xUb0FqYXgpKTtcblx0XHRcdHRoaXMuZ29vZ2xlRW5hYmxlQXV0aC5zdWJzY3JpYmUoUmVtb3RlLnNhdmVBZG1pbkNvbmZpZ0hlbHBlcignR29vZ2xlRW5hYmxlQXV0aCcsIGJvb2xUb0FqYXgpKTtcblx0XHRcdHRoaXMuZ29vZ2xlRW5hYmxlQXV0aEdtYWlsLnN1YnNjcmliZShSZW1vdGUuc2F2ZUFkbWluQ29uZmlnSGVscGVyKCdHb29nbGVFbmFibGVBdXRoR21haWwnLCBib29sVG9BamF4KSk7XG5cdFx0XHR0aGlzLmdvb2dsZUVuYWJsZURyaXZlLnN1YnNjcmliZShSZW1vdGUuc2F2ZUFkbWluQ29uZmlnSGVscGVyKCdHb29nbGVFbmFibGVEcml2ZScsIGJvb2xUb0FqYXgpKTtcblx0XHRcdHRoaXMuZ29vZ2xlRW5hYmxlUHJldmlldy5zdWJzY3JpYmUoUmVtb3RlLnNhdmVBZG1pbkNvbmZpZ0hlbHBlcignR29vZ2xlRW5hYmxlUHJldmlldycsIGJvb2xUb0FqYXgpKTtcblx0XHRcdHRoaXMuZ29vZ2xlQ2xpZW50SUQuc3Vic2NyaWJlKFJlbW90ZS5zYXZlQWRtaW5Db25maWdIZWxwZXIoJ0dvb2dsZUNsaWVudElEJywgdHJpbSwgZjUpKTtcblx0XHRcdHRoaXMuZ29vZ2xlQ2xpZW50U2VjcmV0LnN1YnNjcmliZShSZW1vdGUuc2F2ZUFkbWluQ29uZmlnSGVscGVyKCdHb29nbGVDbGllbnRTZWNyZXQnLCB0cmltLCBmNikpO1xuXHRcdFx0dGhpcy5nb29nbGVBcGlLZXkuc3Vic2NyaWJlKFJlbW90ZS5zYXZlQWRtaW5Db25maWdIZWxwZXIoJ0dvb2dsZUFwaUtleScsIHRyaW0sIGY3KSk7XG5cblx0XHRcdHRoaXMuZHJvcGJveEVuYWJsZS5zdWJzY3JpYmUoUmVtb3RlLnNhdmVBZG1pbkNvbmZpZ0hlbHBlcignRHJvcGJveEVuYWJsZScsIGJvb2xUb0FqYXgpKTtcblx0XHRcdHRoaXMuZHJvcGJveEFwaUtleS5zdWJzY3JpYmUoUmVtb3RlLnNhdmVBZG1pbkNvbmZpZ0hlbHBlcignRHJvcGJveEFwaUtleScsIHRyaW0sIGY4KSk7XG5cdFx0fSwgTWFnaWNzLlRpbWU1MG1zKTtcblx0fVxufVxuXG5leHBvcnQgeyBTb2NpYWxBZG1pblNldHRpbmdzLCBTb2NpYWxBZG1pblNldHRpbmdzIGFzIGRlZmF1bHQgfTtcbiIsImltcG9ydCBfIGZyb20gJ18nO1xuaW1wb3J0IGtvIGZyb20gJ2tvJztcblxuaW1wb3J0IHsgU3RvcmFnZVJlc3VsdFR5cGUsIE5vdGlmaWNhdGlvbiB9IGZyb20gJ0NvbW1vbi9FbnVtcyc7XG5pbXBvcnQgeyBnZXROb3RpZmljYXRpb24gfSBmcm9tICdDb21tb24vVHJhbnNsYXRvcic7XG5pbXBvcnQgeyBib29sVG9BamF4IH0gZnJvbSAnQ29tbW9uL1V0aWxzJztcblxuaW1wb3J0IHsgc2V0dGluZ3NHZXQgfSBmcm9tICdTdG9yYWdlL1NldHRpbmdzJztcbmltcG9ydCB7IHNob3dTY3JlZW5Qb3B1cCB9IGZyb20gJ0tub2luL0tub2luJztcblxuaW1wb3J0IEFwcFN0b3JlIGZyb20gJ1N0b3Jlcy9BZG1pbi9BcHAnO1xuaW1wb3J0IFBsdWdpblN0b3JlIGZyb20gJ1N0b3Jlcy9BZG1pbi9QbHVnaW4nO1xuXG5pbXBvcnQgUmVtb3RlIGZyb20gJ1JlbW90ZS9BZG1pbi9BamF4JztcblxuaW1wb3J0IHsgZ2V0QXBwIH0gZnJvbSAnSGVscGVyL0FwcHMvQWRtaW4nO1xuXG5jbGFzcyBQbHVnaW5zQWRtaW5TZXR0aW5ncyB7XG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHRoaXMuZW5hYmxlZFBsdWdpbnMgPSBrby5vYnNlcnZhYmxlKCEhc2V0dGluZ3NHZXQoJ0VuYWJsZWRQbHVnaW5zJykpO1xuXG5cdFx0dGhpcy5wbHVnaW5zID0gUGx1Z2luU3RvcmUucGx1Z2lucztcblx0XHR0aGlzLnBsdWdpbnNFcnJvciA9IFBsdWdpblN0b3JlLnBsdWdpbnMuZXJyb3I7XG5cblx0XHR0aGlzLmNvbW11bml0eSA9IFJMX0NPTU1VTklUWSB8fCBBcHBTdG9yZS5jb21tdW5pdHkoKTtcblxuXHRcdHRoaXMudmlzaWJpbGl0eSA9IGtvLmNvbXB1dGVkKCgpID0+IChQbHVnaW5TdG9yZS5wbHVnaW5zLmxvYWRpbmcoKSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nKSk7XG5cblx0XHR0aGlzLm9uUGx1Z2luTG9hZFJlcXVlc3QgPSBfLmJpbmQodGhpcy5vblBsdWdpbkxvYWRSZXF1ZXN0LCB0aGlzKTtcblx0XHR0aGlzLm9uUGx1Z2luRGlzYWJsZVJlcXVlc3QgPSBfLmJpbmQodGhpcy5vblBsdWdpbkRpc2FibGVSZXF1ZXN0LCB0aGlzKTtcblx0fVxuXG5cdGRpc2FibGVQbHVnaW4ocGx1Z2luKSB7XG5cdFx0cGx1Z2luLmRpc2FibGVkKCFwbHVnaW4uZGlzYWJsZWQoKSk7XG5cdFx0UmVtb3RlLnBsdWdpbkRpc2FibGUodGhpcy5vblBsdWdpbkRpc2FibGVSZXF1ZXN0LCBwbHVnaW4ubmFtZSwgcGx1Z2luLmRpc2FibGVkKCkpO1xuXHR9XG5cblx0Y29uZmlndXJlUGx1Z2luKHBsdWdpbikge1xuXHRcdFJlbW90ZS5wbHVnaW4odGhpcy5vblBsdWdpbkxvYWRSZXF1ZXN0LCBwbHVnaW4ubmFtZSk7XG5cdH1cblxuXHRvbkJ1aWxkKG9Eb20pIHtcblx0XHRjb25zdCBzZWxmID0gdGhpcztcblxuXHRcdG9Eb21cblx0XHRcdC5vbignY2xpY2snLCAnLmUtaXRlbSAuY29uZmlndXJlLXBsdWdpbi1hY3Rpb24nLCBmdW5jdGlvbigpIHtcblx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbGluZSBwcmVmZXItYXJyb3ctY2FsbGJhY2tcblx0XHRcdFx0Y29uc3QgcGx1Z2luID0ga28uZGF0YUZvcih0aGlzKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1pbnZhbGlkLXRoaXNcblx0XHRcdFx0aWYgKHBsdWdpbikge1xuXHRcdFx0XHRcdHNlbGYuY29uZmlndXJlUGx1Z2luKHBsdWdpbik7XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0XHQub24oJ2NsaWNrJywgJy5lLWl0ZW0gLmRpc2FibGVkLXBsdWdpbicsIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHByZWZlci1hcnJvdy1jYWxsYmFja1xuXHRcdFx0XHRjb25zdCBwbHVnaW4gPSBrby5kYXRhRm9yKHRoaXMpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWludmFsaWQtdGhpc1xuXHRcdFx0XHRpZiAocGx1Z2luKSB7XG5cdFx0XHRcdFx0c2VsZi5kaXNhYmxlUGx1Z2luKHBsdWdpbik7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXG5cdFx0dGhpcy5lbmFibGVkUGx1Z2lucy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRSZW1vdGUuc2F2ZUFkbWluQ29uZmlnKG51bGwsIHtcblx0XHRcdFx0J0VuYWJsZWRQbHVnaW5zJzogYm9vbFRvQWpheCh2YWx1ZSlcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG5cblx0b25TaG93KCkge1xuXHRcdFBsdWdpblN0b3JlLnBsdWdpbnMuZXJyb3IoJycpO1xuXHRcdGdldEFwcCgpLnJlbG9hZFBsdWdpbkxpc3QoKTtcblx0fVxuXG5cdG9uUGx1Z2luTG9hZFJlcXVlc3QocmVzdWx0LCBkYXRhKSB7XG5cdFx0aWYgKFN0b3JhZ2VSZXN1bHRUeXBlLlN1Y2Nlc3MgPT09IHJlc3VsdCAmJiBkYXRhICYmIGRhdGEuUmVzdWx0KSB7XG5cdFx0XHRzaG93U2NyZWVuUG9wdXAocmVxdWlyZSgnVmlldy9Qb3B1cC9QbHVnaW4nKSwgW2RhdGEuUmVzdWx0XSk7XG5cdFx0fVxuXHR9XG5cblx0b25QbHVnaW5EaXNhYmxlUmVxdWVzdChyZXN1bHQsIGRhdGEpIHtcblx0XHRpZiAoU3RvcmFnZVJlc3VsdFR5cGUuU3VjY2VzcyA9PT0gcmVzdWx0ICYmIGRhdGEpIHtcblx0XHRcdGlmICghZGF0YS5SZXN1bHQgJiYgZGF0YS5FcnJvckNvZGUpIHtcblx0XHRcdFx0aWYgKE5vdGlmaWNhdGlvbi5VbnN1cHBvcnRlZFBsdWdpblBhY2thZ2UgPT09IGRhdGEuRXJyb3JDb2RlICYmIGRhdGEuRXJyb3JNZXNzYWdlICYmICcnICE9PSBkYXRhLkVycm9yTWVzc2FnZSkge1xuXHRcdFx0XHRcdFBsdWdpblN0b3JlLnBsdWdpbnMuZXJyb3IoZGF0YS5FcnJvck1lc3NhZ2UpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFBsdWdpblN0b3JlLnBsdWdpbnMuZXJyb3IoZ2V0Tm90aWZpY2F0aW9uKGRhdGEuRXJyb3JDb2RlKSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRnZXRBcHAoKS5yZWxvYWRQbHVnaW5MaXN0KCk7XG5cdH1cbn1cblxuZXhwb3J0IHsgUGx1Z2luc0FkbWluU2V0dGluZ3MsIFBsdWdpbnNBZG1pblNldHRpbmdzIGFzIGRlZmF1bHQgfTtcbiIsImltcG9ydCB3aW5kb3cgZnJvbSAnd2luZG93JztcbmltcG9ydCBfIGZyb20gJ18nO1xuaW1wb3J0IGtvIGZyb20gJ2tvJztcblxuaW1wb3J0IHsgU3RvcmFnZVJlc3VsdFR5cGUsIE5vdGlmaWNhdGlvbiB9IGZyb20gJ0NvbW1vbi9FbnVtcyc7XG5pbXBvcnQgeyBnZXROb3RpZmljYXRpb24gfSBmcm9tICdDb21tb24vVHJhbnNsYXRvcic7XG5cbmltcG9ydCBQYWNrYWdlU3RvcmUgZnJvbSAnU3RvcmVzL0FkbWluL1BhY2thZ2UnO1xuaW1wb3J0IFJlbW90ZSBmcm9tICdSZW1vdGUvQWRtaW4vQWpheCc7XG5cbmltcG9ydCB7IGdldEFwcCB9IGZyb20gJ0hlbHBlci9BcHBzL0FkbWluJztcblxuY2xhc3MgUGFja2FnZXNBZG1pblNldHRpbmdzIHtcblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5wYWNrYWdlc0Vycm9yID0ga28ub2JzZXJ2YWJsZSgnJyk7XG5cblx0XHR0aGlzLnBhY2thZ2VzID0gUGFja2FnZVN0b3JlLnBhY2thZ2VzO1xuXHRcdHRoaXMucGFja2FnZXNSZWFsID0gUGFja2FnZVN0b3JlLnBhY2thZ2VzUmVhbDtcblx0XHR0aGlzLnBhY2thZ2VzTWFpblVwZGF0YWJsZSA9IFBhY2thZ2VTdG9yZS5wYWNrYWdlc01haW5VcGRhdGFibGU7XG5cblx0XHR0aGlzLnBhY2thZ2VzQ3VycmVudCA9IGtvLmNvbXB1dGVkKCgpID0+XG5cdFx0XHRfLmZpbHRlcih0aGlzLnBhY2thZ2VzKCksIChpdGVtKSA9PiBpdGVtICYmICcnICE9PSBpdGVtLmluc3RhbGxlZCAmJiAhaXRlbS5jb21wYXJlKVxuXHRcdCk7XG5cdFx0dGhpcy5wYWNrYWdlc0F2YWlsYWJsZUZvclVwZGF0ZSA9IGtvLmNvbXB1dGVkKCgpID0+XG5cdFx0XHRfLmZpbHRlcih0aGlzLnBhY2thZ2VzKCksIChpdGVtKSA9PiBpdGVtICYmICcnICE9PSBpdGVtLmluc3RhbGxlZCAmJiAhIWl0ZW0uY29tcGFyZSlcblx0XHQpO1xuXHRcdHRoaXMucGFja2FnZXNBdmFpbGFibGVGb3JJbnN0YWxsYXRpb24gPSBrby5jb21wdXRlZCgoKSA9PlxuXHRcdFx0Xy5maWx0ZXIodGhpcy5wYWNrYWdlcygpLCAoaXRlbSkgPT4gaXRlbSAmJiAnJyA9PT0gaXRlbS5pbnN0YWxsZWQpXG5cdFx0KTtcblxuXHRcdHRoaXMudmlzaWJpbGl0eSA9IGtvLmNvbXB1dGVkKCgpID0+IChQYWNrYWdlU3RvcmUucGFja2FnZXMubG9hZGluZygpID8gJ3Zpc2libGUnIDogJ2hpZGRlbicpKTtcblx0fVxuXG5cdG9uU2hvdygpIHtcblx0XHR0aGlzLnBhY2thZ2VzRXJyb3IoJycpO1xuXHR9XG5cblx0b25CdWlsZCgpIHtcblx0XHRnZXRBcHAoKS5yZWxvYWRQYWNrYWdlc0xpc3QoKTtcblx0fVxuXG5cdHJlcXVlc3RIZWxwZXIocGFja2FnZVRvUmVxdWVzdCwgaW5zdGFsbCkge1xuXHRcdHJldHVybiAocmVzdWx0LCBkYXRhKSA9PiB7XG5cdFx0XHRpZiAoU3RvcmFnZVJlc3VsdFR5cGUuU3VjY2VzcyAhPT0gcmVzdWx0IHx8ICFkYXRhIHx8ICFkYXRhLlJlc3VsdCkge1xuXHRcdFx0XHRpZiAoZGF0YSAmJiBkYXRhLkVycm9yQ29kZSkge1xuXHRcdFx0XHRcdHRoaXMucGFja2FnZXNFcnJvcihnZXROb3RpZmljYXRpb24oZGF0YS5FcnJvckNvZGUpKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLnBhY2thZ2VzRXJyb3IoXG5cdFx0XHRcdFx0XHRnZXROb3RpZmljYXRpb24oaW5zdGFsbCA/IE5vdGlmaWNhdGlvbi5DYW50SW5zdGFsbFBhY2thZ2UgOiBOb3RpZmljYXRpb24uQ2FudERlbGV0ZVBhY2thZ2UpXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRfLmVhY2godGhpcy5wYWNrYWdlcygpLCAoaXRlbSkgPT4ge1xuXHRcdFx0XHRpZiAoaXRlbSAmJiBwYWNrYWdlVG9SZXF1ZXN0ICYmIGl0ZW0ubG9hZGluZyAmJiBpdGVtLmxvYWRpbmcoKSAmJiBwYWNrYWdlVG9SZXF1ZXN0LmZpbGUgPT09IGl0ZW0uZmlsZSkge1xuXHRcdFx0XHRcdHBhY2thZ2VUb1JlcXVlc3QubG9hZGluZyhmYWxzZSk7XG5cdFx0XHRcdFx0aXRlbS5sb2FkaW5nKGZhbHNlKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cblx0XHRcdGlmIChTdG9yYWdlUmVzdWx0VHlwZS5TdWNjZXNzID09PSByZXN1bHQgJiYgZGF0YSAmJiBkYXRhLlJlc3VsdCAmJiBkYXRhLlJlc3VsdC5SZWxvYWQpIHtcblx0XHRcdFx0d2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Z2V0QXBwKCkucmVsb2FkUGFja2FnZXNMaXN0KCk7XG5cdFx0XHR9XG5cdFx0fTtcblx0fVxuXG5cdGRlbGV0ZVBhY2thZ2UocGFja2FnZVRvRGVsZXRlKSB7XG5cdFx0aWYgKHBhY2thZ2VUb0RlbGV0ZSkge1xuXHRcdFx0cGFja2FnZVRvRGVsZXRlLmxvYWRpbmcodHJ1ZSk7XG5cdFx0XHRSZW1vdGUucGFja2FnZURlbGV0ZSh0aGlzLnJlcXVlc3RIZWxwZXIocGFja2FnZVRvRGVsZXRlLCBmYWxzZSksIHBhY2thZ2VUb0RlbGV0ZSk7XG5cdFx0fVxuXHR9XG5cblx0aW5zdGFsbFBhY2thZ2UocGFja2FnZVRvSW5zdGFsbCkge1xuXHRcdGlmIChwYWNrYWdlVG9JbnN0YWxsKSB7XG5cdFx0XHRwYWNrYWdlVG9JbnN0YWxsLmxvYWRpbmcodHJ1ZSk7XG5cdFx0XHRSZW1vdGUucGFja2FnZUluc3RhbGwodGhpcy5yZXF1ZXN0SGVscGVyKHBhY2thZ2VUb0luc3RhbGwsIHRydWUpLCBwYWNrYWdlVG9JbnN0YWxsKTtcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IHsgUGFja2FnZXNBZG1pblNldHRpbmdzLCBQYWNrYWdlc0FkbWluU2V0dGluZ3MgYXMgZGVmYXVsdCB9O1xuIiwiaW1wb3J0IGtvIGZyb20gJ2tvJztcblxuaW1wb3J0IHsgaTE4biwgdHJpZ2dlciBhcyB0cmFuc2xhdG9yVHJpZ2dlciB9IGZyb20gJ0NvbW1vbi9UcmFuc2xhdG9yJztcbmltcG9ydCB7IGFwcFNldHRpbmdzR2V0LCBzZXR0aW5nc0dldCB9IGZyb20gJ1N0b3JhZ2UvU2V0dGluZ3MnO1xuXG5pbXBvcnQgQXBwU3RvcmUgZnJvbSAnU3RvcmVzL0FkbWluL0FwcCc7XG5pbXBvcnQgQ29yZVN0b3JlIGZyb20gJ1N0b3Jlcy9BZG1pbi9Db3JlJztcblxuaW1wb3J0IHsgZ2V0QXBwIH0gZnJvbSAnSGVscGVyL0FwcHMvQWRtaW4nO1xuXG5jbGFzcyBBYm91dEFkbWluU2V0dGluZ3Mge1xuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLnZlcnNpb24gPSBrby5vYnNlcnZhYmxlKGFwcFNldHRpbmdzR2V0KCd2ZXJzaW9uJykpO1xuXHRcdHRoaXMuYWNjZXNzID0ga28ub2JzZXJ2YWJsZSghIXNldHRpbmdzR2V0KCdDb3JlQWNjZXNzJykpO1xuXHRcdHRoaXMuZXJyb3JEZXNjID0ga28ub2JzZXJ2YWJsZSgnJyk7XG5cblx0XHR0aGlzLmNvcmVSZWFsID0gQ29yZVN0b3JlLmNvcmVSZWFsO1xuXHRcdHRoaXMuY29yZUNoYW5uZWwgPSBDb3JlU3RvcmUuY29yZUNoYW5uZWw7XG5cdFx0dGhpcy5jb3JlVHlwZSA9IENvcmVTdG9yZS5jb3JlVHlwZTtcblx0XHR0aGlzLmNvcmVVcGRhdGFibGUgPSBDb3JlU3RvcmUuY29yZVVwZGF0YWJsZTtcblx0XHR0aGlzLmNvcmVBY2Nlc3MgPSBDb3JlU3RvcmUuY29yZUFjY2Vzcztcblx0XHR0aGlzLmNvcmVDaGVja2luZyA9IENvcmVTdG9yZS5jb3JlQ2hlY2tpbmc7XG5cdFx0dGhpcy5jb3JlVXBkYXRpbmcgPSBDb3JlU3RvcmUuY29yZVVwZGF0aW5nO1xuXHRcdHRoaXMuY29yZVdhcm5pbmcgPSBDb3JlU3RvcmUuY29yZVdhcm5pbmc7XG5cdFx0dGhpcy5jb3JlVmVyc2lvbiA9IENvcmVTdG9yZS5jb3JlVmVyc2lvbjtcblx0XHR0aGlzLmNvcmVSZW1vdGVWZXJzaW9uID0gQ29yZVN0b3JlLmNvcmVSZW1vdGVWZXJzaW9uO1xuXHRcdHRoaXMuY29yZVJlbW90ZVJlbGVhc2UgPSBDb3JlU3RvcmUuY29yZVJlbW90ZVJlbGVhc2U7XG5cdFx0dGhpcy5jb3JlVmVyc2lvbkNvbXBhcmUgPSBDb3JlU3RvcmUuY29yZVZlcnNpb25Db21wYXJlO1xuXG5cdFx0dGhpcy5jb21tdW5pdHkgPSBSTF9DT01NVU5JVFkgfHwgQXBwU3RvcmUuY29tbXVuaXR5KCk7XG5cblx0XHR0aGlzLmNvcmVSZW1vdGVWZXJzaW9uSHRtbERlc2MgPSBrby5jb21wdXRlZCgoKSA9PiB7XG5cdFx0XHR0cmFuc2xhdG9yVHJpZ2dlcigpO1xuXHRcdFx0cmV0dXJuIGkxOG4oJ1RBQl9BQk9VVC9IVE1MX05FV19WRVJTSU9OJywgeyAnVkVSU0lPTic6IHRoaXMuY29yZVJlbW90ZVZlcnNpb24oKSB9KTtcblx0XHR9KTtcblxuXHRcdHRoaXMuc3RhdHVzVHlwZSA9IGtvLmNvbXB1dGVkKCgpID0+IHtcblx0XHRcdGxldCB0eXBlID0gJyc7XG5cdFx0XHRjb25zdCB2ZXJzaW9uVG9Db21wYXJlID0gdGhpcy5jb3JlVmVyc2lvbkNvbXBhcmUoKSxcblx0XHRcdFx0aXNDaGVja2luZyA9IHRoaXMuY29yZUNoZWNraW5nKCksXG5cdFx0XHRcdGlzVXBkYXRpbmcgPSB0aGlzLmNvcmVVcGRhdGluZygpLFxuXHRcdFx0XHRpc1JlYWwgPSB0aGlzLmNvcmVSZWFsKCk7XG5cblx0XHRcdGlmIChpc0NoZWNraW5nKSB7XG5cdFx0XHRcdHR5cGUgPSAnY2hlY2tpbmcnO1xuXHRcdFx0fSBlbHNlIGlmIChpc1VwZGF0aW5nKSB7XG5cdFx0XHRcdHR5cGUgPSAndXBkYXRpbmcnO1xuXHRcdFx0fSBlbHNlIGlmIChpc1JlYWwgJiYgMCA9PT0gdmVyc2lvblRvQ29tcGFyZSkge1xuXHRcdFx0XHR0eXBlID0gJ3VwLXRvLWRhdGUnO1xuXHRcdFx0fSBlbHNlIGlmIChpc1JlYWwgJiYgLTEgPT09IHZlcnNpb25Ub0NvbXBhcmUpIHtcblx0XHRcdFx0dHlwZSA9ICdhdmFpbGFibGUnO1xuXHRcdFx0fSBlbHNlIGlmICghaXNSZWFsKSB7XG5cdFx0XHRcdHR5cGUgPSAnZXJyb3InO1xuXHRcdFx0XHR0aGlzLmVycm9yRGVzYygnQ2Fubm90IGFjY2VzcyB0aGUgcmVwb3NpdG9yeSBhdCB0aGUgbW9tZW50LicpO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gdHlwZTtcblx0XHR9KTtcblx0fVxuXG5cdG9uQnVpbGQoKSB7XG5cdFx0aWYgKHRoaXMuYWNjZXNzKCkgJiYgIXRoaXMuY29tbXVuaXR5KSB7XG5cdFx0XHRnZXRBcHAoKS5yZWxvYWRDb3JlRGF0YSgpO1xuXHRcdH1cblx0fVxuXG5cdHVwZGF0ZUNvcmVEYXRhKCkge1xuXHRcdGlmICghdGhpcy5jb3JlVXBkYXRpbmcoKSAmJiAhdGhpcy5jb21tdW5pdHkpIHtcblx0XHRcdGdldEFwcCgpLnVwZGF0ZUNvcmVEYXRhKCk7XG5cdFx0fVxuXHR9XG59XG5cbmV4cG9ydCB7IEFib3V0QWRtaW5TZXR0aW5ncywgQWJvdXRBZG1pblNldHRpbmdzIGFzIGRlZmF1bHQgfTtcbiIsImltcG9ydCAkIGZyb20gJyQnO1xuaW1wb3J0IGtleSBmcm9tICdrZXknO1xuXG5pbXBvcnQgeyBsZWZ0UGFuZWxEaXNhYmxlZCB9IGZyb20gJ0NvbW1vbi9HbG9iYWxzJztcbmltcG9ydCB7IEtleVN0YXRlIH0gZnJvbSAnQ29tbW9uL0VudW1zJztcblxuaW1wb3J0IHsgdmlldywgVmlld1R5cGUsIHNldHRpbmdzTWVudUtleXNIYW5kbGVyIH0gZnJvbSAnS25vaW4vS25vaW4nO1xuaW1wb3J0IHsgQWJzdHJhY3RWaWV3TmV4dCB9IGZyb20gJ0tub2luL0Fic3RyYWN0Vmlld05leHQnO1xuXG5Admlldyh7XG5cdG5hbWU6ICdWaWV3L0FkbWluL1NldHRpbmdzL01lbnUnLFxuXHR0eXBlOiBWaWV3VHlwZS5MZWZ0LFxuXHR0ZW1wbGF0ZUlEOiAnQWRtaW5NZW51J1xufSlcbmNsYXNzIE1lbnVTZXR0aW5nc0FkbWluVmlldyBleHRlbmRzIEFic3RyYWN0Vmlld05leHQge1xuXHQvKipcblx0ICogQHBhcmFtIHs/fSBzY3JlZW5cblx0ICovXG5cdGNvbnN0cnVjdG9yKHNjcmVlbikge1xuXHRcdHN1cGVyKCk7XG5cblx0XHR0aGlzLmxlZnRQYW5lbERpc2FibGVkID0gbGVmdFBhbmVsRGlzYWJsZWQ7XG5cblx0XHR0aGlzLm1lbnUgPSBzY3JlZW4ubWVudTtcblx0fVxuXG5cdGxpbmsocm91dGUpIHtcblx0XHRyZXR1cm4gJyMvJyArIHJvdXRlO1xuXHR9XG5cblx0b25CdWlsZChkb20pIHtcblx0XHRrZXkoJ3VwLCBkb3duJywgS2V5U3RhdGUuU2V0dGluZ3MsIHNldHRpbmdzTWVudUtleXNIYW5kbGVyKCQoJy5iLWFkbWluLW1lbnUgLmUtaXRlbScsIGRvbSkpKTtcblx0fVxufVxuXG5leHBvcnQgeyBNZW51U2V0dGluZ3NBZG1pblZpZXcsIE1lbnVTZXR0aW5nc0FkbWluVmlldyBhcyBkZWZhdWx0IH07XG4iLCJpbXBvcnQga28gZnJvbSAna28nO1xuXG5pbXBvcnQgKiBhcyBTZXR0aW5ncyBmcm9tICdTdG9yYWdlL1NldHRpbmdzJztcblxuaW1wb3J0IFJlbW90ZSBmcm9tICdSZW1vdGUvQWRtaW4vQWpheCc7XG5cbmltcG9ydCBEb21haW5TdG9yZSBmcm9tICdTdG9yZXMvQWRtaW4vRG9tYWluJztcbmltcG9ydCBQbHVnaW5TdG9yZSBmcm9tICdTdG9yZXMvQWRtaW4vUGx1Z2luJztcbmltcG9ydCBQYWNrYWdlU3RvcmUgZnJvbSAnU3RvcmVzL0FkbWluL1BhY2thZ2UnO1xuXG5pbXBvcnQgeyBnZXRBcHAgfSBmcm9tICdIZWxwZXIvQXBwcy9BZG1pbic7XG5cbmltcG9ydCB7IHZpZXcsIFZpZXdUeXBlIH0gZnJvbSAnS25vaW4vS25vaW4nO1xuaW1wb3J0IHsgQWJzdHJhY3RWaWV3TmV4dCB9IGZyb20gJ0tub2luL0Fic3RyYWN0Vmlld05leHQnO1xuXG5Admlldyh7XG5cdG5hbWU6ICdWaWV3L0FkbWluL1NldHRpbmdzL1BhbmUnLFxuXHR0eXBlOiBWaWV3VHlwZS5SaWdodCxcblx0dGVtcGxhdGVJRDogJ0FkbWluUGFuZSdcbn0pXG5jbGFzcyBQYW5lU2V0dGluZ3NBZG1pblZpZXcgZXh0ZW5kcyBBYnN0cmFjdFZpZXdOZXh0IHtcblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblxuXHRcdHRoaXMuYWRtaW5Eb21haW4gPSBrby5vYnNlcnZhYmxlKFNldHRpbmdzLnNldHRpbmdzR2V0KCdBZG1pbkRvbWFpbicpKTtcblx0XHR0aGlzLnZlcnNpb24gPSBrby5vYnNlcnZhYmxlKFNldHRpbmdzLmFwcFNldHRpbmdzR2V0KCd2ZXJzaW9uJykpO1xuXG5cdFx0dGhpcy5jYXBhID0gISFTZXR0aW5ncy5zZXR0aW5nc0dldCgnUHJlbVR5cGUnKTtcblx0XHR0aGlzLmNvbW11bml0eSA9IFJMX0NPTU1VTklUWTtcblxuXHRcdHRoaXMuYWRtaW5NYW5Mb2FkaW5nID0ga28uY29tcHV0ZWQoXG5cdFx0XHQoKSA9PlxuXHRcdFx0XHQnMDAwJyAhPT1cblx0XHRcdFx0W1xuXHRcdFx0XHRcdERvbWFpblN0b3JlLmRvbWFpbnMubG9hZGluZygpID8gJzEnIDogJzAnLFxuXHRcdFx0XHRcdFBsdWdpblN0b3JlLnBsdWdpbnMubG9hZGluZygpID8gJzEnIDogJzAnLFxuXHRcdFx0XHRcdFBhY2thZ2VTdG9yZS5wYWNrYWdlcy5sb2FkaW5nKCkgPyAnMScgOiAnMCdcblx0XHRcdFx0XS5qb2luKCcnKVxuXHRcdCk7XG5cblx0XHR0aGlzLmFkbWluTWFuTG9hZGluZ1Zpc2liaWxpdHkgPSBrb1xuXHRcdFx0LmNvbXB1dGVkKCgpID0+ICh0aGlzLmFkbWluTWFuTG9hZGluZygpID8gJ3Zpc2libGUnIDogJ2hpZGRlbicpKVxuXHRcdFx0LmV4dGVuZCh7IHJhdGVMaW1pdDogMzAwIH0pO1xuXHR9XG5cblx0bG9nb3V0Q2xpY2soKSB7XG5cdFx0UmVtb3RlLmFkbWluTG9nb3V0KCgpID0+IHtcblx0XHRcdGdldEFwcCgpLmxvZ2luQW5kTG9nb3V0UmVsb2FkKHRydWUsIHRydWUpO1xuXHRcdH0pO1xuXHR9XG59XG5cbmV4cG9ydCB7IFBhbmVTZXR0aW5nc0FkbWluVmlldywgUGFuZVNldHRpbmdzQWRtaW5WaWV3IGFzIGRlZmF1bHQgfTtcbiIsImltcG9ydCB7IEFic3RyYWN0U2NyZWVuIH0gZnJvbSAnS25vaW4vQWJzdHJhY3RTY3JlZW4nO1xuXG5pbXBvcnQgeyBnZXRBcHAgfSBmcm9tICdIZWxwZXIvQXBwcy9BZG1pbic7XG5cbmltcG9ydCB7IExvZ2luQWRtaW5WaWV3IH0gZnJvbSAnVmlldy9BZG1pbi9Mb2dpbic7XG5cbmNsYXNzIExvZ2luQWRtaW5TY3JlZW4gZXh0ZW5kcyBBYnN0cmFjdFNjcmVlbiB7XG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCdsb2dpbicsIFtMb2dpbkFkbWluVmlld10pO1xuXHR9XG5cblx0b25TaG93KCkge1xuXHRcdGdldEFwcCgpLnNldFdpbmRvd1RpdGxlKCcnKTtcblx0fVxufVxuXG5leHBvcnQgeyBMb2dpbkFkbWluU2NyZWVuLCBMb2dpbkFkbWluU2NyZWVuIGFzIGRlZmF1bHQgfTtcbiIsImltcG9ydCBrbyBmcm9tICdrbyc7XG5pbXBvcnQgXyBmcm9tICdfJztcblxuaW1wb3J0IHsgdHJpbSwgdHJpZ2dlckF1dG9jb21wbGV0ZUlucHV0Q2hhbmdlIH0gZnJvbSAnQ29tbW9uL1V0aWxzJztcblxuaW1wb3J0IHsgU3RvcmFnZVJlc3VsdFR5cGUsIE5vdGlmaWNhdGlvbiwgTWFnaWNzIH0gZnJvbSAnQ29tbW9uL0VudW1zJztcbmltcG9ydCB7IGdldE5vdGlmaWNhdGlvbiB9IGZyb20gJ0NvbW1vbi9UcmFuc2xhdG9yJztcbmltcG9ydCB7ICR3aW4gfSBmcm9tICdDb21tb24vR2xvYmFscyc7XG5cbmltcG9ydCAqIGFzIFNldHRpbmdzIGZyb20gJ1N0b3JhZ2UvU2V0dGluZ3MnO1xuXG5pbXBvcnQgUmVtb3RlIGZyb20gJ1JlbW90ZS9BZG1pbi9BamF4JztcblxuaW1wb3J0IHsgZ2V0QXBwIH0gZnJvbSAnSGVscGVyL0FwcHMvQWRtaW4nO1xuXG5pbXBvcnQgeyB2aWV3LCBjb21tYW5kLCBWaWV3VHlwZSwgcm91dGVPZmYgfSBmcm9tICdLbm9pbi9Lbm9pbic7XG5pbXBvcnQgeyBBYnN0cmFjdFZpZXdOZXh0IH0gZnJvbSAnS25vaW4vQWJzdHJhY3RWaWV3TmV4dCc7XG5cbkB2aWV3KHtcblx0bmFtZTogJ1ZpZXcvQWRtaW4vTG9naW4nLFxuXHR0eXBlOiBWaWV3VHlwZS5DZW50ZXIsXG5cdHRlbXBsYXRlSUQ6ICdBZG1pbkxvZ2luJ1xufSlcbmNsYXNzIExvZ2luQWRtaW5WaWV3IGV4dGVuZHMgQWJzdHJhY3RWaWV3TmV4dCB7XG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cblx0XHR0aGlzLm1vYmlsZSA9ICEhU2V0dGluZ3MuYXBwU2V0dGluZ3NHZXQoJ21vYmlsZScpO1xuXHRcdHRoaXMubW9iaWxlRGV2aWNlID0gISFTZXR0aW5ncy5hcHBTZXR0aW5nc0dldCgnbW9iaWxlRGV2aWNlJyk7XG5cblx0XHR0aGlzLmhpZGVTdWJtaXRCdXR0b24gPSAhIVNldHRpbmdzLmFwcFNldHRpbmdzR2V0KCdoaWRlU3VibWl0QnV0dG9uJyk7XG5cblx0XHR0aGlzLmxvZ2luID0ga28ub2JzZXJ2YWJsZSgnJyk7XG5cdFx0dGhpcy5wYXNzd29yZCA9IGtvLm9ic2VydmFibGUoJycpO1xuXG5cdFx0dGhpcy5sb2dpbkVycm9yID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cdFx0dGhpcy5wYXNzd29yZEVycm9yID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cblx0XHR0aGlzLmxvZ2luRXJyb3JBbmltYXRpb24gPSBrby5vYnNlcnZhYmxlKGZhbHNlKS5leHRlbmQoeyAnZmFsc2VUaW1lb3V0JzogNTAwIH0pO1xuXHRcdHRoaXMucGFzc3dvcmRFcnJvckFuaW1hdGlvbiA9IGtvLm9ic2VydmFibGUoZmFsc2UpLmV4dGVuZCh7ICdmYWxzZVRpbWVvdXQnOiA1MDAgfSk7XG5cblx0XHR0aGlzLmxvZ2luRm9jdXMgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblxuXHRcdHRoaXMuZm9ybUhpZGRlbiA9IGtvLm9ic2VydmFibGUoZmFsc2UpO1xuXG5cdFx0dGhpcy5mb3JtRXJyb3IgPSBrby5jb21wdXRlZCgoKSA9PiB0aGlzLmxvZ2luRXJyb3JBbmltYXRpb24oKSB8fCB0aGlzLnBhc3N3b3JkRXJyb3JBbmltYXRpb24oKSk7XG5cblx0XHR0aGlzLmxvZ2luLnN1YnNjcmliZSgoKSA9PiB0aGlzLmxvZ2luRXJyb3IoZmFsc2UpKTtcblxuXHRcdHRoaXMucGFzc3dvcmQuc3Vic2NyaWJlKCgpID0+IHRoaXMucGFzc3dvcmRFcnJvcihmYWxzZSkpO1xuXG5cdFx0dGhpcy5sb2dpbkVycm9yLnN1YnNjcmliZSgodikgPT4gdGhpcy5sb2dpbkVycm9yQW5pbWF0aW9uKCEhdikpO1xuXG5cdFx0dGhpcy5wYXNzd29yZEVycm9yLnN1YnNjcmliZSgodikgPT4ge1xuXHRcdFx0dGhpcy5wYXNzd29yZEVycm9yQW5pbWF0aW9uKCEhdik7XG5cdFx0fSk7XG5cblx0XHR0aGlzLnN1Ym1pdFJlcXVlc3QgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblx0XHR0aGlzLnN1Ym1pdEVycm9yID0ga28ub2JzZXJ2YWJsZSgnJyk7XG5cdH1cblxuXHRAY29tbWFuZCgoc2VsZikgPT4gIXNlbGYuc3VibWl0UmVxdWVzdCgpKVxuXHRzdWJtaXRDb21tYW5kKCkge1xuXHRcdHRyaWdnZXJBdXRvY29tcGxldGVJbnB1dENoYW5nZSgpO1xuXG5cdFx0dGhpcy5sb2dpbkVycm9yKGZhbHNlKTtcblx0XHR0aGlzLnBhc3N3b3JkRXJyb3IoZmFsc2UpO1xuXG5cdFx0dGhpcy5sb2dpbkVycm9yKCcnID09PSB0cmltKHRoaXMubG9naW4oKSkpO1xuXHRcdHRoaXMucGFzc3dvcmRFcnJvcignJyA9PT0gdHJpbSh0aGlzLnBhc3N3b3JkKCkpKTtcblxuXHRcdGlmICh0aGlzLmxvZ2luRXJyb3IoKSB8fCB0aGlzLnBhc3N3b3JkRXJyb3IoKSkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdHRoaXMuc3VibWl0UmVxdWVzdCh0cnVlKTtcblx0XHQkd2luLnRyaWdnZXIoJ3JsLnRvb2x0aXBzLmRpYWN0aXZhdGUnKTtcblxuXHRcdFJlbW90ZS5hZG1pbkxvZ2luKFxuXHRcdFx0KHNSZXN1bHQsIG9EYXRhKSA9PiB7XG5cdFx0XHRcdCR3aW4udHJpZ2dlcigncmwudG9vbHRpcHMuZGlhY3RpdmF0ZScpO1xuXHRcdFx0XHQkd2luLnRyaWdnZXIoJ3JsLnRvb2x0aXBzLmFjdGl2YXRlJyk7XG5cblx0XHRcdFx0aWYgKFN0b3JhZ2VSZXN1bHRUeXBlLlN1Y2Nlc3MgPT09IHNSZXN1bHQgJiYgb0RhdGEgJiYgJ0FkbWluTG9naW4nID09PSBvRGF0YS5BY3Rpb24pIHtcblx0XHRcdFx0XHRpZiAob0RhdGEuUmVzdWx0KSB7XG5cdFx0XHRcdFx0XHRnZXRBcHAoKS5sb2dpbkFuZExvZ291dFJlbG9hZCh0cnVlKTtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKG9EYXRhLkVycm9yQ29kZSkge1xuXHRcdFx0XHRcdFx0dGhpcy5zdWJtaXRSZXF1ZXN0KGZhbHNlKTtcblx0XHRcdFx0XHRcdHRoaXMuc3VibWl0RXJyb3IoZ2V0Tm90aWZpY2F0aW9uKG9EYXRhLkVycm9yQ29kZSkpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLnN1Ym1pdFJlcXVlc3QoZmFsc2UpO1xuXHRcdFx0XHRcdHRoaXMuc3VibWl0RXJyb3IoZ2V0Tm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbi5Vbmtub3duRXJyb3IpKTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdHRoaXMubG9naW4oKSxcblx0XHRcdHRoaXMucGFzc3dvcmQoKVxuXHRcdCk7XG5cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdG9uU2hvdygpIHtcblx0XHRyb3V0ZU9mZigpO1xuXG5cdFx0Xy5kZWxheSgoKSA9PiB7XG5cdFx0XHR0aGlzLmxvZ2luRm9jdXModHJ1ZSk7XG5cdFx0fSwgTWFnaWNzLlRpbWUxMDBtcyk7XG5cdH1cblxuXHRvbkhpZGUoKSB7XG5cdFx0dGhpcy5sb2dpbkZvY3VzKGZhbHNlKTtcblx0fVxuXG5cdG9uQnVpbGQoKSB7XG5cdFx0dHJpZ2dlckF1dG9jb21wbGV0ZUlucHV0Q2hhbmdlKHRydWUpO1xuXHR9XG5cblx0c3VibWl0Rm9ybSgpIHtcblx0XHR0aGlzLnN1Ym1pdENvbW1hbmQoKTtcblx0fVxufVxuXG5leHBvcnQgeyBMb2dpbkFkbWluVmlldywgTG9naW5BZG1pblZpZXcgYXMgZGVmYXVsdCB9O1xuIiwiaW1wb3J0IGJvb3RzdHJhcCBmcm9tICdib290c3RyYXAnO1xuaW1wb3J0IEFwcCBmcm9tICdBcHAvQWRtaW4nO1xuXG5ib290c3RyYXAoQXBwKTtcbiIsImltcG9ydCBfIGZyb20gJ18nO1xuaW1wb3J0IGtvIGZyb20gJ2tvJztcblxuaW1wb3J0IHsgU3RvcmFnZVJlc3VsdFR5cGUsIE5vdGlmaWNhdGlvbiB9IGZyb20gJ0NvbW1vbi9FbnVtcyc7XG5pbXBvcnQgeyBiTW9iaWxlRGV2aWNlIH0gZnJvbSAnQ29tbW9uL0dsb2JhbHMnO1xuaW1wb3J0IHsgaTE4biB9IGZyb20gJ0NvbW1vbi9UcmFuc2xhdG9yJztcblxuaW1wb3J0IERvbWFpblN0b3JlIGZyb20gJ1N0b3Jlcy9BZG1pbi9Eb21haW4nO1xuXG5pbXBvcnQgUmVtb3RlIGZyb20gJ1JlbW90ZS9BZG1pbi9BamF4JztcblxuaW1wb3J0IHsgZ2V0QXBwIH0gZnJvbSAnSGVscGVyL0FwcHMvQWRtaW4nO1xuXG5pbXBvcnQgeyBwb3B1cCwgY29tbWFuZCB9IGZyb20gJ0tub2luL0tub2luJztcbmltcG9ydCB7IEFic3RyYWN0Vmlld05leHQgfSBmcm9tICdLbm9pbi9BYnN0cmFjdFZpZXdOZXh0JztcblxuQHBvcHVwKHtcblx0bmFtZTogJ1ZpZXcvUG9wdXAvRG9tYWluQWxpYXMnLFxuXHR0ZW1wbGF0ZUlEOiAnUG9wdXBzRG9tYWluQWxpYXMnXG59KVxuY2xhc3MgRG9tYWluQWxpYXNQb3B1cFZpZXcgZXh0ZW5kcyBBYnN0cmFjdFZpZXdOZXh0IHtcblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblxuXHRcdHRoaXMuc2F2aW5nID0ga28ub2JzZXJ2YWJsZShmYWxzZSk7XG5cdFx0dGhpcy5zYXZpbmdFcnJvciA9IGtvLm9ic2VydmFibGUoJycpO1xuXG5cdFx0dGhpcy5uYW1lID0ga28ub2JzZXJ2YWJsZSgnJyk7XG5cdFx0dGhpcy5uYW1lLmZvY3VzZWQgPSBrby5vYnNlcnZhYmxlKGZhbHNlKTtcblxuXHRcdHRoaXMuYWxpYXMgPSBrby5vYnNlcnZhYmxlKCcnKTtcblxuXHRcdHRoaXMuZG9tYWlucyA9IERvbWFpblN0b3JlLmRvbWFpbnNXaXRob3V0QWxpYXNlcztcblxuXHRcdHRoaXMuZG9tYWluc09wdGlvbnMgPSBrby5jb21wdXRlZCgoKSA9PlxuXHRcdFx0Xy5tYXAodGhpcy5kb21haW5zKCksIChpdGVtKSA9PiAoeyBvcHRWYWx1ZTogaXRlbS5uYW1lLCBvcHRUZXh0OiBpdGVtLm5hbWUgfSkpXG5cdFx0KTtcblxuXHRcdHRoaXMuY2FuQmVTYXZlZCA9IGtvLmNvbXB1dGVkKCgpID0+ICF0aGlzLnNhdmluZygpICYmICcnICE9PSB0aGlzLm5hbWUoKSAmJiAnJyAhPT0gdGhpcy5hbGlhcygpKTtcblxuXHRcdHRoaXMub25Eb21haW5BbGlhc0NyZWF0ZU9yU2F2ZVJlc3BvbnNlID0gXy5iaW5kKHRoaXMub25Eb21haW5BbGlhc0NyZWF0ZU9yU2F2ZVJlc3BvbnNlLCB0aGlzKTtcblx0fVxuXG5cdEBjb21tYW5kKChzZWxmKSA9PiBzZWxmLmNhbkJlU2F2ZWQoKSlcblx0Y3JlYXRlQ29tbWFuZCgpIHtcblx0XHR0aGlzLnNhdmluZyh0cnVlKTtcblx0XHRSZW1vdGUuY3JlYXRlRG9tYWluQWxpYXModGhpcy5vbkRvbWFpbkFsaWFzQ3JlYXRlT3JTYXZlUmVzcG9uc2UsIHRoaXMubmFtZSgpLCB0aGlzLmFsaWFzKCkpO1xuXHR9XG5cblx0b25Eb21haW5BbGlhc0NyZWF0ZU9yU2F2ZVJlc3BvbnNlKHJlc3VsdCwgZGF0YSkge1xuXHRcdHRoaXMuc2F2aW5nKGZhbHNlKTtcblx0XHRpZiAoU3RvcmFnZVJlc3VsdFR5cGUuU3VjY2VzcyA9PT0gcmVzdWx0ICYmIGRhdGEpIHtcblx0XHRcdGlmIChkYXRhLlJlc3VsdCkge1xuXHRcdFx0XHRnZXRBcHAoKS5yZWxvYWREb21haW5MaXN0KCk7XG5cdFx0XHRcdHRoaXMuY2xvc2VDb21tYW5kKCk7XG5cdFx0XHR9IGVsc2UgaWYgKE5vdGlmaWNhdGlvbi5Eb21haW5BbHJlYWR5RXhpc3RzID09PSBkYXRhLkVycm9yQ29kZSkge1xuXHRcdFx0XHR0aGlzLnNhdmluZ0Vycm9yKGkxOG4oJ0VSUk9SUy9ET01BSU5fQUxSRUFEWV9FWElTVFMnKSk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuc2F2aW5nRXJyb3IoaTE4bignRVJST1JTL1VOS05PV05fRVJST1InKSk7XG5cdFx0fVxuXHR9XG5cblx0b25TaG93KCkge1xuXHRcdHRoaXMuY2xlYXJGb3JtKCk7XG5cdH1cblxuXHRvblNob3dXaXRoRGVsYXkoKSB7XG5cdFx0aWYgKCcnID09PSB0aGlzLm5hbWUoKSAmJiAhYk1vYmlsZURldmljZSkge1xuXHRcdFx0dGhpcy5uYW1lLmZvY3VzZWQodHJ1ZSk7XG5cdFx0fVxuXHR9XG5cblx0Y2xlYXJGb3JtKCkge1xuXHRcdHRoaXMuc2F2aW5nKGZhbHNlKTtcblx0XHR0aGlzLnNhdmluZ0Vycm9yKCcnKTtcblxuXHRcdHRoaXMubmFtZSgnJyk7XG5cdFx0dGhpcy5uYW1lLmZvY3VzZWQoZmFsc2UpO1xuXG5cdFx0dGhpcy5hbGlhcygnJyk7XG5cdH1cbn1cblxuZXhwb3J0IHsgRG9tYWluQWxpYXNQb3B1cFZpZXcsIERvbWFpbkFsaWFzUG9wdXBWaWV3IGFzIGRlZmF1bHQgfTtcbiIsImltcG9ydCBfIGZyb20gJ18nO1xuaW1wb3J0IGtvIGZyb20gJ2tvJztcbmltcG9ydCBrZXkgZnJvbSAna2V5JztcblxuaW1wb3J0IHsgS2V5U3RhdGUsIE1hZ2ljcywgU3RvcmFnZVJlc3VsdFR5cGUsIE5vdGlmaWNhdGlvbiB9IGZyb20gJ0NvbW1vbi9FbnVtcyc7XG5pbXBvcnQgeyBpc05vbkVtcHR5QXJyYXksIGRlbGVnYXRlUnVuIH0gZnJvbSAnQ29tbW9uL1V0aWxzJztcbmltcG9ydCB7IGdldE5vdGlmaWNhdGlvbiwgaTE4biB9IGZyb20gJ0NvbW1vbi9UcmFuc2xhdG9yJztcblxuaW1wb3J0IFJlbW90ZSBmcm9tICdSZW1vdGUvQWRtaW4vQWpheCc7XG5cbmltcG9ydCB7IHBvcHVwLCBjb21tYW5kLCBpc1BvcHVwVmlzaWJsZSwgc2hvd1NjcmVlblBvcHVwIH0gZnJvbSAnS25vaW4vS25vaW4nO1xuaW1wb3J0IHsgQWJzdHJhY3RWaWV3TmV4dCB9IGZyb20gJ0tub2luL0Fic3RyYWN0Vmlld05leHQnO1xuXG5AcG9wdXAoe1xuXHRuYW1lOiAnVmlldy9Qb3B1cC9QbHVnaW4nLFxuXHR0ZW1wbGF0ZUlEOiAnUG9wdXBzUGx1Z2luJ1xufSlcbmNsYXNzIFBsdWdpblBvcHVwVmlldyBleHRlbmRzIEFic3RyYWN0Vmlld05leHQge1xuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXG5cdFx0dGhpcy5vblBsdWdpblNldHRpbmdzVXBkYXRlUmVzcG9uc2UgPSBfLmJpbmQodGhpcy5vblBsdWdpblNldHRpbmdzVXBkYXRlUmVzcG9uc2UsIHRoaXMpO1xuXG5cdFx0dGhpcy5zYXZlRXJyb3IgPSBrby5vYnNlcnZhYmxlKCcnKTtcblxuXHRcdHRoaXMubmFtZSA9IGtvLm9ic2VydmFibGUoJycpO1xuXHRcdHRoaXMucmVhZG1lID0ga28ub2JzZXJ2YWJsZSgnJyk7XG5cblx0XHR0aGlzLmNvbmZpZ3VyZXMgPSBrby5vYnNlcnZhYmxlQXJyYXkoW10pO1xuXG5cdFx0dGhpcy5oYXNSZWFkbWUgPSBrby5jb21wdXRlZCgoKSA9PiAnJyAhPT0gdGhpcy5yZWFkbWUoKSk7XG5cdFx0dGhpcy5oYXNDb25maWd1cmF0aW9uID0ga28uY29tcHV0ZWQoKCkgPT4gMCA8IHRoaXMuY29uZmlndXJlcygpLmxlbmd0aCk7XG5cblx0XHR0aGlzLnJlYWRtZVBvcG92ZXJDb25mID0ge1xuXHRcdFx0J3BsYWNlbWVudCc6ICdyaWdodCcsXG5cdFx0XHQndHJpZ2dlcic6ICdob3ZlcicsXG5cdFx0XHQndGl0bGUnOiBpMThuKCdQT1BVUFNfUExVR0lOL1RPT0xUSVBfQUJPVVRfVElUTEUnKSxcblx0XHRcdCdjb250YWluZXInOiAnYm9keScsXG5cdFx0XHQnaHRtbCc6IHRydWUsXG5cdFx0XHQnY29udGVudCc6ICgpID0+IGA8cHJlPiR7dGhpcy5yZWFkbWUoKX08L3ByZT5gXG5cdFx0fTtcblxuXHRcdHRoaXMuYkRpc2FiZUNsb3NlT25Fc2MgPSB0cnVlO1xuXHRcdHRoaXMuc0RlZmF1bHRLZXlTY29wZSA9IEtleVN0YXRlLkFsbDtcblxuXHRcdHRoaXMudHJ5VG9DbG9zZVBvcHVwID0gXy5kZWJvdW5jZShfLmJpbmQodGhpcy50cnlUb0Nsb3NlUG9wdXAsIHRoaXMpLCBNYWdpY3MuVGltZTIwMG1zKTtcblx0fVxuXG5cdEBjb21tYW5kKChzZWxmKSA9PiBzZWxmLmhhc0NvbmZpZ3VyYXRpb24oKSlcblx0c2F2ZUNvbW1hbmQoKSB7XG5cdFx0Y29uc3QgbGlzdCA9IHt9O1xuXHRcdGxpc3QuTmFtZSA9IHRoaXMubmFtZSgpO1xuXG5cdFx0Xy5lYWNoKHRoaXMuY29uZmlndXJlcygpLCAob0l0ZW0pID0+IHtcblx0XHRcdGxldCB2YWx1ZSA9IG9JdGVtLnZhbHVlKCk7XG5cdFx0XHRpZiAoZmFsc2UgPT09IHZhbHVlIHx8IHRydWUgPT09IHZhbHVlKSB7XG5cdFx0XHRcdHZhbHVlID0gdmFsdWUgPyAnMScgOiAnMCc7XG5cdFx0XHR9XG5cdFx0XHRsaXN0WydfJyArIG9JdGVtLk5hbWVdID0gdmFsdWU7XG5cdFx0fSk7XG5cblx0XHR0aGlzLnNhdmVFcnJvcignJyk7XG5cdFx0UmVtb3RlLnBsdWdpblNldHRpbmdzVXBkYXRlKHRoaXMub25QbHVnaW5TZXR0aW5nc1VwZGF0ZVJlc3BvbnNlLCBsaXN0KTtcblx0fVxuXG5cdG9uUGx1Z2luU2V0dGluZ3NVcGRhdGVSZXNwb25zZShyZXN1bHQsIGRhdGEpIHtcblx0XHRpZiAoU3RvcmFnZVJlc3VsdFR5cGUuU3VjY2VzcyA9PT0gcmVzdWx0ICYmIGRhdGEgJiYgZGF0YS5SZXN1bHQpIHtcblx0XHRcdHRoaXMuY2FuY2VsQ29tbWFuZCgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnNhdmVFcnJvcignJyk7XG5cdFx0XHRpZiAoZGF0YSAmJiBkYXRhLkVycm9yQ29kZSkge1xuXHRcdFx0XHR0aGlzLnNhdmVFcnJvcihnZXROb3RpZmljYXRpb24oZGF0YS5FcnJvckNvZGUpKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuc2F2ZUVycm9yKGdldE5vdGlmaWNhdGlvbihOb3RpZmljYXRpb24uQ2FudFNhdmVQbHVnaW5TZXR0aW5ncykpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdG9uU2hvdyhvUGx1Z2luKSB7XG5cdFx0dGhpcy5uYW1lKCk7XG5cdFx0dGhpcy5yZWFkbWUoKTtcblx0XHR0aGlzLmNvbmZpZ3VyZXMoW10pO1xuXG5cdFx0aWYgKG9QbHVnaW4pIHtcblx0XHRcdHRoaXMubmFtZShvUGx1Z2luLk5hbWUpO1xuXHRcdFx0dGhpcy5yZWFkbWUob1BsdWdpbi5SZWFkbWUpO1xuXG5cdFx0XHRjb25zdCBjb25maWcgPSBvUGx1Z2luLkNvbmZpZztcblx0XHRcdGlmIChpc05vbkVtcHR5QXJyYXkoY29uZmlnKSkge1xuXHRcdFx0XHR0aGlzLmNvbmZpZ3VyZXMoXG5cdFx0XHRcdFx0Xy5tYXAoY29uZmlnLCAoaXRlbSkgPT4gKHtcblx0XHRcdFx0XHRcdCd2YWx1ZSc6IGtvLm9ic2VydmFibGUoaXRlbVswXSksXG5cdFx0XHRcdFx0XHQncGxhY2Vob2xkZXInOiBrby5vYnNlcnZhYmxlKGl0ZW1bNl0pLFxuXHRcdFx0XHRcdFx0J05hbWUnOiBpdGVtWzFdLFxuXHRcdFx0XHRcdFx0J1R5cGUnOiBpdGVtWzJdLFxuXHRcdFx0XHRcdFx0J0xhYmVsJzogaXRlbVszXSxcblx0XHRcdFx0XHRcdCdEZWZhdWx0JzogaXRlbVs0XSxcblx0XHRcdFx0XHRcdCdEZXNjJzogaXRlbVs1XVxuXHRcdFx0XHRcdH0pKVxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHRyeVRvQ2xvc2VQb3B1cCgpIHtcblx0XHRjb25zdCBQb3B1cHNBc2tWaWV3TW9kZWwgPSByZXF1aXJlKCdWaWV3L1BvcHVwL0FzaycpO1xuXHRcdGlmICghaXNQb3B1cFZpc2libGUoUG9wdXBzQXNrVmlld01vZGVsKSkge1xuXHRcdFx0c2hvd1NjcmVlblBvcHVwKFBvcHVwc0Fza1ZpZXdNb2RlbCwgW1xuXHRcdFx0XHRpMThuKCdQT1BVUFNfQVNLL0RFU0NfV0FOVF9DTE9TRV9USElTX1dJTkRPVycpLFxuXHRcdFx0XHQoKSA9PiB7XG5cdFx0XHRcdFx0aWYgKHRoaXMubW9kYWxWaXNpYmlsaXR5KCkpIHtcblx0XHRcdFx0XHRcdGRlbGVnYXRlUnVuKHRoaXMsICdjYW5jZWxDb21tYW5kJyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRdKTtcblx0XHR9XG5cdH1cblxuXHRvbkJ1aWxkKCkge1xuXHRcdGtleSgnZXNjJywgS2V5U3RhdGUuQWxsLCAoKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5tb2RhbFZpc2liaWxpdHkoKSkge1xuXHRcdFx0XHR0aGlzLnRyeVRvQ2xvc2VQb3B1cCgpO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fSk7XG5cdH1cbn1cblxuZXhwb3J0IHsgUGx1Z2luUG9wdXBWaWV3LCBQbHVnaW5Qb3B1cFZpZXcgYXMgZGVmYXVsdCB9O1xuIiwiaW1wb3J0IF8gZnJvbSAnXyc7XG5pbXBvcnQga28gZnJvbSAna28nO1xuXG5pbXBvcnQgeyBNYWdpY3MgfSBmcm9tICdDb21tb24vRW51bXMnO1xuaW1wb3J0IHsgc2V0dGluZ3NTYXZlSGVscGVyU2ltcGxlRnVuY3Rpb24sIHRyaW0gfSBmcm9tICdDb21tb24vVXRpbHMnO1xuaW1wb3J0IHsgaTE4biwgdHJpZ2dlciBhcyB0cmFuc2xhdG9yVHJpZ2dlciB9IGZyb20gJ0NvbW1vbi9UcmFuc2xhdG9yJztcblxuaW1wb3J0IFJlbW90ZSBmcm9tICdSZW1vdGUvQWRtaW4vQWpheCc7XG5pbXBvcnQgQXBwU3RvcmUgZnJvbSAnU3RvcmVzL0FkbWluL0FwcCc7XG5cbmltcG9ydCB7IHNldHRpbmdzR2V0IH0gZnJvbSAnU3RvcmFnZS9TZXR0aW5ncyc7XG5cbmNsYXNzIEJyYW5kaW5nQWRtaW5TZXR0aW5ncyB7XG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHRoaXMuY2FwYSA9IEFwcFN0b3JlLnByZW07XG5cblx0XHR0aGlzLnRpdGxlID0ga28ub2JzZXJ2YWJsZShzZXR0aW5nc0dldCgnVGl0bGUnKSkuaWRsZVRyaWdnZXIoKTtcblx0XHR0aGlzLmxvYWRpbmdEZXNjID0ga28ub2JzZXJ2YWJsZShzZXR0aW5nc0dldCgnTG9hZGluZ0Rlc2NyaXB0aW9uJykpLmlkbGVUcmlnZ2VyKCk7XG5cdFx0dGhpcy5mYXZpY29uVXJsID0ga28ub2JzZXJ2YWJsZShzZXR0aW5nc0dldCgnRmF2aWNvblVybCcpKS5pZGxlVHJpZ2dlcigpO1xuXHRcdHRoaXMubG9naW5Mb2dvID0ga28ub2JzZXJ2YWJsZShzZXR0aW5nc0dldCgnTG9naW5Mb2dvJykgfHwgJycpLmlkbGVUcmlnZ2VyKCk7XG5cdFx0dGhpcy5sb2dpbkJhY2tncm91bmQgPSBrby5vYnNlcnZhYmxlKHNldHRpbmdzR2V0KCdMb2dpbkJhY2tncm91bmQnKSB8fCAnJykuaWRsZVRyaWdnZXIoKTtcblx0XHR0aGlzLnVzZXJMb2dvID0ga28ub2JzZXJ2YWJsZShzZXR0aW5nc0dldCgnVXNlckxvZ28nKSB8fCAnJykuaWRsZVRyaWdnZXIoKTtcblx0XHR0aGlzLnVzZXJMb2dvTWVzc2FnZSA9IGtvLm9ic2VydmFibGUoc2V0dGluZ3NHZXQoJ1VzZXJMb2dvTWVzc2FnZScpIHx8ICcnKS5pZGxlVHJpZ2dlcigpO1xuXHRcdHRoaXMudXNlcklmcmFtZU1lc3NhZ2UgPSBrby5vYnNlcnZhYmxlKHNldHRpbmdzR2V0KCdVc2VySWZyYW1lTWVzc2FnZScpIHx8ICcnKS5pZGxlVHJpZ2dlcigpO1xuXHRcdHRoaXMudXNlckxvZ29UaXRsZSA9IGtvLm9ic2VydmFibGUoc2V0dGluZ3NHZXQoJ1VzZXJMb2dvVGl0bGUnKSB8fCAnJykuaWRsZVRyaWdnZXIoKTtcblx0XHR0aGlzLmxvZ2luRGVzY3JpcHRpb24gPSBrby5vYnNlcnZhYmxlKHNldHRpbmdzR2V0KCdMb2dpbkRlc2NyaXB0aW9uJykpLmlkbGVUcmlnZ2VyKCk7XG5cdFx0dGhpcy5sb2dpbkNzcyA9IGtvLm9ic2VydmFibGUoc2V0dGluZ3NHZXQoJ0xvZ2luQ3NzJykpLmlkbGVUcmlnZ2VyKCk7XG5cdFx0dGhpcy51c2VyQ3NzID0ga28ub2JzZXJ2YWJsZShzZXR0aW5nc0dldCgnVXNlckNzcycpKS5pZGxlVHJpZ2dlcigpO1xuXHRcdHRoaXMud2VsY29tZVBhZ2VVcmwgPSBrby5vYnNlcnZhYmxlKHNldHRpbmdzR2V0KCdXZWxjb21lUGFnZVVybCcpKS5pZGxlVHJpZ2dlcigpO1xuXHRcdHRoaXMud2VsY29tZVBhZ2VEaXNwbGF5ID0ga28ub2JzZXJ2YWJsZShzZXR0aW5nc0dldCgnV2VsY29tZVBhZ2VEaXNwbGF5JykpLmlkbGVUcmlnZ2VyKCk7XG5cdFx0dGhpcy53ZWxjb21lUGFnZURpc3BsYXkub3B0aW9ucyA9IGtvLmNvbXB1dGVkKCgpID0+IHtcblx0XHRcdHRyYW5zbGF0b3JUcmlnZ2VyKCk7XG5cdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHR7IG9wdFZhbHVlOiAnbm9uZScsIG9wdFRleHQ6IGkxOG4oJ1RBQl9CUkFORElORy9PUFRJT05fV0VMQ09NRV9QQUdFX0RJU1BMQVlfTk9ORScpIH0sXG5cdFx0XHRcdHsgb3B0VmFsdWU6ICdvbmNlJywgb3B0VGV4dDogaTE4bignVEFCX0JSQU5ESU5HL09QVElPTl9XRUxDT01FX1BBR0VfRElTUExBWV9PTkNFJykgfSxcblx0XHRcdFx0eyBvcHRWYWx1ZTogJ2Fsd2F5cycsIG9wdFRleHQ6IGkxOG4oJ1RBQl9CUkFORElORy9PUFRJT05fV0VMQ09NRV9QQUdFX0RJU1BMQVlfQUxXQVlTJykgfVxuXHRcdFx0XTtcblx0XHR9KTtcblxuXHRcdHRoaXMuY29tbXVuaXR5ID0gUkxfQ09NTVVOSVRZIHx8IEFwcFN0b3JlLmNvbW11bml0eSgpO1xuXHR9XG5cblx0b25CdWlsZCgpIHtcblx0XHRfLmRlbGF5KCgpID0+IHtcblx0XHRcdGNvbnN0IGYxID0gc2V0dGluZ3NTYXZlSGVscGVyU2ltcGxlRnVuY3Rpb24odGhpcy50aXRsZS50cmlnZ2VyLCB0aGlzKSxcblx0XHRcdFx0ZjIgPSBzZXR0aW5nc1NhdmVIZWxwZXJTaW1wbGVGdW5jdGlvbih0aGlzLmxvYWRpbmdEZXNjLnRyaWdnZXIsIHRoaXMpLFxuXHRcdFx0XHRmMyA9IHNldHRpbmdzU2F2ZUhlbHBlclNpbXBsZUZ1bmN0aW9uKHRoaXMuZmF2aWNvblVybC50cmlnZ2VyLCB0aGlzKTtcblxuXHRcdFx0dGhpcy50aXRsZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG5cdFx0XHRcdFJlbW90ZS5zYXZlQWRtaW5Db25maWcoZjEsIHtcblx0XHRcdFx0XHQnVGl0bGUnOiB0cmltKHZhbHVlKVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXG5cdFx0XHR0aGlzLmxvYWRpbmdEZXNjLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdFx0UmVtb3RlLnNhdmVBZG1pbkNvbmZpZyhmMiwge1xuXHRcdFx0XHRcdCdMb2FkaW5nRGVzY3JpcHRpb24nOiB0cmltKHZhbHVlKVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXG5cdFx0XHR0aGlzLmZhdmljb25Vcmwuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0XHRSZW1vdGUuc2F2ZUFkbWluQ29uZmlnKGYzLCB7XG5cdFx0XHRcdFx0J0Zhdmljb25VcmwnOiB0cmltKHZhbHVlKVxuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdH0sIE1hZ2ljcy5UaW1lNTBtcyk7XG5cdH1cbn1cblxuZXhwb3J0IHsgQnJhbmRpbmdBZG1pblNldHRpbmdzLCBCcmFuZGluZ0FkbWluU2V0dGluZ3MgYXMgZGVmYXVsdCB9O1xuIl0sInNvdXJjZVJvb3QiOiIifQ== diff --git a/app/rainloop/v/1.15.0/static/js/app.js b/app/rainloop/v/1.16.0/static/js/app.js similarity index 51% rename from app/rainloop/v/1.15.0/static/js/app.js rename to app/rainloop/v/1.16.0/static/js/app.js index dbbc0d3..2f89ddf 100644 --- a/app/rainloop/v/1.15.0/static/js/app.js +++ b/app/rainloop/v/1.16.0/static/js/app.js @@ -82,7 +82,7 @@ /******/ /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 523); +/******/ return __webpack_require__(__webpack_require__.s = 548); /******/ }) /************************************************************************/ /******/ ([ @@ -661,30 +661,30 @@ var Notification = { /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.object.to-string */ 63); -/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.regexp.to-string */ 111); -/* harmony import */ var core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var core_js_modules_es_string_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.string.link */ 175); -/* harmony import */ var core_js_modules_es_string_link__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_link__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/web.timers */ 68); -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 18); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/index-of */ 30); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_trim__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/trim */ 139); +/* harmony import */ var core_js_modules_es_string_link_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.string.link.js */ 205); +/* harmony import */ var core_js_modules_es_string_link_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_link_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ 86); +/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ 119); +/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/set-timeout */ 33); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find */ 12); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_set_interval__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/set-interval */ 57); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_set_interval__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_set_interval__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_trim__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/trim */ 154); /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_trim__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_trim__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find */ 12); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 17); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_7__); /* harmony import */ var window__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! window */ 4); /* harmony import */ var window__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_8__); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! _ */ 3); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_9__); /* harmony import */ var $__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! $ */ 8); /* harmony import */ var $__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_10__); -/* harmony import */ var Opentip__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Opentip */ 213); -/* harmony import */ var pikaday__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! pikaday */ 214); +/* harmony import */ var Opentip__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Opentip */ 229); +/* harmony import */ var pikaday__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! pikaday */ 230); /* harmony import */ var pikaday__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(pikaday__WEBPACK_IMPORTED_MODULE_12__); /* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! Common/Enums */ 0); @@ -718,7 +718,8 @@ ko.bindingHandlers.updateWidth = { fValue = fValueAccessor(), fInit = function fInit() { fValue($el.width()); - window__WEBPACK_IMPORTED_MODULE_8___default.a.setTimeout(function () { + + _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_3___default()(function () { fValue($el.width()); }, Common_Enums__WEBPACK_IMPORTED_MODULE_13__["Magics"].Time500ms); }; @@ -735,7 +736,7 @@ ko.bindingHandlers.editor = { var editor = null; var fValue = fValueAccessor(), - HtmlEditor = __webpack_require__(/*! Common/HtmlEditor */ 210).default, + HtmlEditor = __webpack_require__(/*! Common/HtmlEditor */ 227).default, fUpdateEditorValue = function fUpdateEditorValue() { if (fValue && fValue.__editor) { fValue.__editor.setHtmlOrPlain(fValue()); @@ -771,7 +772,7 @@ ko.bindingHandlers.scrollerShadows = { init: function init(element) { var limit = 8, $el = $__WEBPACK_IMPORTED_MODULE_10___default()(element), - cont = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()($el).call($el, '[data-scroller-shadows-content]')[0] || null, + cont = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_4___default()($el).call($el, '[data-scroller-shadows-content]')[0] || null, fFunc = ___WEBPACK_IMPORTED_MODULE_9___default.a.throttle(function () { $el.toggleClass('scroller-shadow-top', limit < cont.scrollTop).toggleClass('scroller-shadow-bottom', cont.scrollTop + limit < cont.scrollHeight - cont.clientHeight); }, 100); @@ -969,10 +970,10 @@ ko.bindingHandlers.openDropdownTrigger = { var $el = $__WEBPACK_IMPORTED_MODULE_10___default()(element); if (!$el.hasClass('open')) { - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()($el).call($el, '.dropdown-toggle').dropdown('toggle'); + _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_4___default()($el).call($el, '.dropdown-toggle').dropdown('toggle'); } - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()($el).call($el, '.dropdown-toggle').focus(); + _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_4___default()($el).call($el, '.dropdown-toggle').focus(); __webpack_require__(/*! Common/Utils */ 2).detectDropdownVisibility(); @@ -1103,7 +1104,7 @@ ko.bindingHandlers.modal = { var Globals = __webpack_require__(/*! Common/Globals */ 6), Utils = __webpack_require__(/*! Common/Utils */ 2); - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()(_context = $__WEBPACK_IMPORTED_MODULE_10___default()(element).toggleClass('fade', !Globals.bMobileDevice).modal({ + _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_4___default()(_context = $__WEBPACK_IMPORTED_MODULE_10___default()(element).toggleClass('fade', !Globals.bMobileDevice).modal({ 'keyboard': false, 'show': ko.unwrap(fValueAccessor()) }).on('shown.koModal', Utils.windowResizeCallback)).call(_context, '.close').on('click.koModal', function () { @@ -1113,7 +1114,7 @@ ko.bindingHandlers.modal = { ko.utils.domNodeDisposal.addDisposeCallback(element, function () { var _context2; - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()(_context2 = $__WEBPACK_IMPORTED_MODULE_10___default()(element).off('shown.koModal')).call(_context2, '.close').off('click.koModal'); + _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_4___default()(_context2 = $__WEBPACK_IMPORTED_MODULE_10___default()(element).off('shown.koModal')).call(_context2, '.close').off('click.koModal'); }); }, update: function update(element, fValueAccessor) { @@ -1132,10 +1133,10 @@ ko.bindingHandlers.modal = { }; ko.bindingHandlers.moment = { init: function init(element, fValueAccessor) { - __webpack_require__(/*! Common/Momentor */ 60).momentToNode($__WEBPACK_IMPORTED_MODULE_10___default()(element).addClass('moment').data('moment-time', ko.unwrap(fValueAccessor()))); + __webpack_require__(/*! Common/Momentor */ 61).momentToNode($__WEBPACK_IMPORTED_MODULE_10___default()(element).addClass('moment').data('moment-time', ko.unwrap(fValueAccessor()))); }, update: function update(element, fValueAccessor) { - __webpack_require__(/*! Common/Momentor */ 60).momentToNode($__WEBPACK_IMPORTED_MODULE_10___default()(element).data('moment-time', ko.unwrap(fValueAccessor()))); + __webpack_require__(/*! Common/Momentor */ 61).momentToNode($__WEBPACK_IMPORTED_MODULE_10___default()(element).data('moment-time', ko.unwrap(fValueAccessor()))); } }; ko.bindingHandlers.i18nInit = { @@ -1272,7 +1273,7 @@ ko.bindingHandlers.draggable = { Utils.windowResize(); }; - $this.data('timerScroll', window__WEBPACK_IMPORTED_MODULE_8___default.a.setInterval(moveUp, 10)); + $this.data('timerScroll', _babel_runtime_corejs3_core_js_stable_set_interval__WEBPACK_IMPORTED_MODULE_5___default()(moveUp, 10)); moveUp(); } @@ -1282,7 +1283,7 @@ ko.bindingHandlers.draggable = { Utils.windowResize(); }; - $this.data('timerScroll', window__WEBPACK_IMPORTED_MODULE_8___default.a.setInterval(moveDown, 10)); + $this.data('timerScroll', _babel_runtime_corejs3_core_js_stable_set_interval__WEBPACK_IMPORTED_MODULE_5___default()(moveDown, 10)); moveDown(); } } @@ -1387,22 +1388,22 @@ ko.bindingHandlers.saveTrigger = { if ('custom' === $el.data('save-trigger-type')) { switch (value.toString()) { case '1': - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()(_context3 = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()($el).call($el, '.animated,.error').hide().removeClass('visible').end()).call(_context3, '.success').show().addClass('visible'); + _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_4___default()(_context3 = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_4___default()($el).call($el, '.animated,.error').hide().removeClass('visible').end()).call(_context3, '.success').show().addClass('visible'); break; case '0': - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()(_context4 = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()($el).call($el, '.animated,.success').hide().removeClass('visible').end()).call(_context4, '.error').show().addClass('visible'); + _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_4___default()(_context4 = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_4___default()($el).call($el, '.animated,.success').hide().removeClass('visible').end()).call(_context4, '.error').show().addClass('visible'); break; case '-2': - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()(_context5 = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()($el).call($el, '.error,.success').hide().removeClass('visible').end()).call(_context5, '.animated').show().addClass('visible'); + _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_4___default()(_context5 = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_4___default()($el).call($el, '.error,.success').hide().removeClass('visible').end()).call(_context5, '.animated').show().addClass('visible'); break; default: - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()(_context6 = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()($el).call($el, '.animated').hide().end()).call(_context6, '.error,.success').removeClass('visible'); + _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_4___default()(_context6 = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_4___default()($el).call($el, '.animated').hide().end()).call(_context6, '.error,.success').removeClass('visible'); break; } @@ -1429,7 +1430,7 @@ ko.bindingHandlers.saveTrigger = { ko.bindingHandlers.emailsTags = { init: function init(element, fValueAccessor, fAllBindingsAccessor) { var Utils = __webpack_require__(/*! Common/Utils */ 2), - EmailModel = __webpack_require__(/*! Model/Email */ 82).default, + EmailModel = __webpack_require__(/*! Model/Email */ 83).default, $el = $__WEBPACK_IMPORTED_MODULE_10___default()(element), fValue = fValueAccessor(), fAllBindings = fAllBindingsAccessor(), @@ -1450,14 +1451,14 @@ ko.bindingHandlers.emailsTags = { splitHook: function splitHook(value) { var v = _babel_runtime_corejs3_core_js_stable_instance_trim__WEBPACK_IMPORTED_MODULE_6___default()(Utils).call(Utils, value); - if (v && -1 < _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_5___default()(inputDelimiters).call(inputDelimiters, v.substr(-1))) { + if (v && -1 < inputDelimiters.indexOf(v.substr(-1))) { return EmailModel.splitEmailLine(value); } return null; }, parseHook: function parseHook(input) { - return _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4___default()(___WEBPACK_IMPORTED_MODULE_9___default.a).call(___WEBPACK_IMPORTED_MODULE_9___default.a, ___WEBPACK_IMPORTED_MODULE_9___default.a.flatten(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4___default()(___WEBPACK_IMPORTED_MODULE_9___default.a).call(___WEBPACK_IMPORTED_MODULE_9___default.a, input, function (inputValue) { + return _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_7___default()(___WEBPACK_IMPORTED_MODULE_9___default.a).call(___WEBPACK_IMPORTED_MODULE_9___default.a, ___WEBPACK_IMPORTED_MODULE_9___default.a.flatten(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_7___default()(___WEBPACK_IMPORTED_MODULE_9___default.a).call(___WEBPACK_IMPORTED_MODULE_9___default.a, input, function (inputValue) { var values = EmailModel.parseEmailLine(inputValue); return values.length ? values : inputValue; })), function (item) { @@ -1658,7 +1659,7 @@ ko.extenders.falseTimeout = function (target, option) { target.subscribe(function (value) { if (value) { window__WEBPACK_IMPORTED_MODULE_8___default.a.clearTimeout(target.iFalseTimeoutTimeout); - target.iFalseTimeoutTimeout = window__WEBPACK_IMPORTED_MODULE_8___default.a.setTimeout(function () { + target.iFalseTimeoutTimeout = _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_3___default()(function () { target(false); target.iFalseTimeoutTimeout = 0; }, __webpack_require__(/*! Common/Utils */ 2).pInt(option)); @@ -1683,7 +1684,7 @@ ko.extenders.specialThrottle = function (target, option) { } else { if (target.valueForRead()) { window__WEBPACK_IMPORTED_MODULE_8___default.a.clearTimeout(target.iSpecialThrottleTimeout); - target.iSpecialThrottleTimeout = window__WEBPACK_IMPORTED_MODULE_8___default.a.setTimeout(function () { + target.iSpecialThrottleTimeout = _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_3___default()(function () { target.valueForRead(false); target.iSpecialThrottleTimeout = 0; }, target.iSpecialThrottleTimeoutValue); @@ -1850,57 +1851,50 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "domReady", function() { return domReady; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "windowResize", function() { return windowResize; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "windowResizeCallback", function() { return windowResizeCallback; }); -/* harmony import */ var core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.join */ 75); -/* harmony import */ var core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.function.name */ 51); -/* harmony import */ var core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.object.to-string */ 63); -/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.regexp.exec */ 45); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.regexp.to-string */ 111); -/* harmony import */ var core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.string.match */ 198); -/* harmony import */ var core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.string.replace */ 57); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var core_js_modules_es_string_split__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.string.split */ 174); -/* harmony import */ var core_js_modules_es_string_split__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var core_js_modules_es_string_link__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/es.string.link */ 175); -/* harmony import */ var core_js_modules_es_string_link__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_link__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! core-js/modules/web.timers */ 68); -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_9__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_reduce__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/reduce */ 211); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_reduce__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_reduce__WEBPACK_IMPORTED_MODULE_10__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_values__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/values */ 114); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_values__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_values__WEBPACK_IMPORTED_MODULE_11__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/concat */ 162); +/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ 86); +/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ 119); +/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ 45); +/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.string.split.js */ 204); +/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ 59); +/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.array.join.js */ 77); +/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.string.match.js */ 225); +/* harmony import */ var core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var core_js_modules_es_string_link_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.string.link.js */ 205); +/* harmony import */ var core_js_modules_es_string_link_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_link_js__WEBPACK_IMPORTED_MODULE_7__); +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ 48); +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_8__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_trim__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/trim */ 154); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_trim__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_trim__WEBPACK_IMPORTED_MODULE_9__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/set-timeout */ 33); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_10__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find */ 12); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_11__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/concat */ 176); /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_concat__WEBPACK_IMPORTED_MODULE_12__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/index-of */ 30); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_13__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find */ 12); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_14__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_last_index_of__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/last-index-of */ 212); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_last_index_of__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_last_index_of__WEBPACK_IMPORTED_MODULE_15__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/bind */ 26); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_16__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_trim__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/trim */ 139); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_trim__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_trim__WEBPACK_IMPORTED_MODULE_17__); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_18__); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! $ */ 8); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_19__); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_20__); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var Autolinker__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! Autolinker */ 215); -/* harmony import */ var Autolinker__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(Autolinker__WEBPACK_IMPORTED_MODULE_22__); -/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! Common/Globals */ 6); -/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Common_Mime__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! Common/Mime */ 216); -/* harmony import */ var Common_Jassl__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! Common/Jassl */ 113); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "jassl", function() { return Common_Jassl__WEBPACK_IMPORTED_MODULE_26__["a"]; }); - +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_values__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/values */ 122); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_values__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_values__WEBPACK_IMPORTED_MODULE_13__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_reduce__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/reduce */ 228); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_reduce__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_reduce__WEBPACK_IMPORTED_MODULE_14__); +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! window */ 4); +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_15__); +/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! $ */ 8); +/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_16__); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_17__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var Autolinker__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! Autolinker */ 231); +/* harmony import */ var Autolinker__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(Autolinker__WEBPACK_IMPORTED_MODULE_19__); +/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! Common/Globals */ 6); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! Common/Enums */ 0); +/* harmony import */ var Common_Mime__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! Common/Mime */ 232); +/* harmony import */ var Common_Jassl__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! Common/Jassl */ 121); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "jassl", function() { return Common_Jassl__WEBPACK_IMPORTED_MODULE_23__["a"]; }); @@ -1927,19 +1921,16 @@ __webpack_require__.r(__webpack_exports__); +var trim = _babel_runtime_corejs3_core_js_stable_instance_trim__WEBPACK_IMPORTED_MODULE_9___default()($__WEBPACK_IMPORTED_MODULE_16___default.a); - -var trim = _babel_runtime_corejs3_core_js_stable_instance_trim__WEBPACK_IMPORTED_MODULE_17___default()($__WEBPACK_IMPORTED_MODULE_19___default.a); - -var inArray = $__WEBPACK_IMPORTED_MODULE_19___default.a.inArray; -var isArray = ___WEBPACK_IMPORTED_MODULE_20___default.a.isArray; -var isObject = ___WEBPACK_IMPORTED_MODULE_20___default.a.isObject; -var isFunc = ___WEBPACK_IMPORTED_MODULE_20___default.a.isFunction; -var isUnd = ___WEBPACK_IMPORTED_MODULE_20___default.a.isUndefined; -var isNull = ___WEBPACK_IMPORTED_MODULE_20___default.a.isNull; -var has = ___WEBPACK_IMPORTED_MODULE_20___default.a.has; - -var bind = _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_16___default()(___WEBPACK_IMPORTED_MODULE_20___default.a); +var inArray = $__WEBPACK_IMPORTED_MODULE_16___default.a.inArray; +var isArray = ___WEBPACK_IMPORTED_MODULE_17___default.a.isArray; +var isObject = ___WEBPACK_IMPORTED_MODULE_17___default.a.isObject; +var isFunc = ___WEBPACK_IMPORTED_MODULE_17___default.a.isFunction; +var isUnd = ___WEBPACK_IMPORTED_MODULE_17___default.a.isUndefined; +var isNull = ___WEBPACK_IMPORTED_MODULE_17___default.a.isNull; +var has = ___WEBPACK_IMPORTED_MODULE_17___default.a.has; +var bind = ___WEBPACK_IMPORTED_MODULE_17___default.a.bind; var noop = function noop() {}; // eslint-disable-line no-empty-function @@ -1995,8 +1986,8 @@ function pInt(value, defaultValur) { defaultValur = 0; } - var result = isNormal(value) && '' !== value ? window__WEBPACK_IMPORTED_MODULE_18___default.a.parseInt(value, 10) : defaultValur; - return window__WEBPACK_IMPORTED_MODULE_18___default.a.isNaN(result) ? defaultValur : result; + var result = isNormal(value) && '' !== value ? window__WEBPACK_IMPORTED_MODULE_15___default.a.parseInt(value, 10) : defaultValur; + return window__WEBPACK_IMPORTED_MODULE_15___default.a.isNaN(result) ? defaultValur : result; } /** * @param {*} value @@ -2036,7 +2027,7 @@ function isNonEmptyArray(values) { */ function encodeURIComponent(component) { - return window__WEBPACK_IMPORTED_MODULE_18___default.a.encodeURIComponent(component); + return window__WEBPACK_IMPORTED_MODULE_15___default.a.encodeURIComponent(component); } /** * @param {string} component @@ -2044,7 +2035,7 @@ function encodeURIComponent(component) { */ function decodeURIComponent(component) { - return window__WEBPACK_IMPORTED_MODULE_18___default.a.decodeURIComponent(component); + return window__WEBPACK_IMPORTED_MODULE_15___default.a.decodeURIComponent(component); } /** * @param {string} url @@ -2052,7 +2043,7 @@ function decodeURIComponent(component) { */ function decodeURI(url) { - return window__WEBPACK_IMPORTED_MODULE_18___default.a.decodeURI(url); + return window__WEBPACK_IMPORTED_MODULE_15___default.a.decodeURI(url); } /** * @param {string} url @@ -2060,7 +2051,7 @@ function decodeURI(url) { */ function encodeURI(url) { - return window__WEBPACK_IMPORTED_MODULE_18___default.a.encodeURI(url); + return window__WEBPACK_IMPORTED_MODULE_15___default.a.encodeURI(url); } /** * @param {string} queryString @@ -2097,7 +2088,7 @@ function fakeMd5(len) { var result = ''; while (result.length < len) { - result += line.substr(window__WEBPACK_IMPORTED_MODULE_18___default.a.Math.round(window__WEBPACK_IMPORTED_MODULE_18___default.a.Math.random() * lineLen), 1); + result += line.substr(window__WEBPACK_IMPORTED_MODULE_15___default.a.Math.round(window__WEBPACK_IMPORTED_MODULE_15___default.a.Math.random() * lineLen), 1); } return result; @@ -2108,7 +2099,7 @@ function fakeMd5(len) { */ function encodeHtml(text) { - return isNormal(text) ? ___WEBPACK_IMPORTED_MODULE_20___default.a.escape(text.toString()) : ''; + return isNormal(text) ? ___WEBPACK_IMPORTED_MODULE_17___default.a.escape(text.toString()) : ''; } /** * @param {string} text @@ -2129,8 +2120,8 @@ function splitPlainText(text, len) { while (result.length > len) { subText = result.substring(0, len); - spacePos = _babel_runtime_corejs3_core_js_stable_instance_last_index_of__WEBPACK_IMPORTED_MODULE_15___default()(subText).call(subText, ' '); - newLinePos = _babel_runtime_corejs3_core_js_stable_instance_last_index_of__WEBPACK_IMPORTED_MODULE_15___default()(subText).call(subText, '\n'); + spacePos = subText.lastIndexOf(' '); + newLinePos = subText.lastIndexOf('\n'); if (-1 !== newLinePos) { spacePos = newLinePos; @@ -2151,8 +2142,8 @@ var timeOutAction = function () { var timeOuts = {}; return function (action, fFunction, timeOut) { timeOuts[action] = isUnd(timeOuts[action]) ? 0 : timeOuts[action]; - window__WEBPACK_IMPORTED_MODULE_18___default.a.clearTimeout(timeOuts[action]); - timeOuts[action] = window__WEBPACK_IMPORTED_MODULE_18___default.a.setTimeout(fFunction, timeOut); + window__WEBPACK_IMPORTED_MODULE_15___default.a.clearTimeout(timeOuts[action]); + timeOuts[action] = _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_10___default()(fFunction, timeOut); }; }(); @@ -2160,7 +2151,7 @@ var timeOutActionSecond = function () { var timeOuts = {}; return function (action, fFunction, timeOut) { if (!timeOuts[action]) { - timeOuts[action] = window__WEBPACK_IMPORTED_MODULE_18___default.a.setTimeout(function () { + timeOuts[action] = _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_10___default()(function () { fFunction(); timeOuts[action] = 0; }, timeOut); @@ -2183,12 +2174,12 @@ function deModule(m) { function inFocus() { try { - if (window__WEBPACK_IMPORTED_MODULE_18___default.a.document.activeElement) { - if (isUnd(window__WEBPACK_IMPORTED_MODULE_18___default.a.document.activeElement.__inFocusCache)) { - window__WEBPACK_IMPORTED_MODULE_18___default.a.document.activeElement.__inFocusCache = $__WEBPACK_IMPORTED_MODULE_19___default()(window__WEBPACK_IMPORTED_MODULE_18___default.a.document.activeElement).is('input,textarea,iframe,.cke_editable'); + if (window__WEBPACK_IMPORTED_MODULE_15___default.a.document.activeElement) { + if (isUnd(window__WEBPACK_IMPORTED_MODULE_15___default.a.document.activeElement.__inFocusCache)) { + window__WEBPACK_IMPORTED_MODULE_15___default.a.document.activeElement.__inFocusCache = $__WEBPACK_IMPORTED_MODULE_16___default()(window__WEBPACK_IMPORTED_MODULE_15___default.a.document.activeElement).is('input,textarea,iframe,.cke_editable'); } - return !!window__WEBPACK_IMPORTED_MODULE_18___default.a.document.activeElement.__inFocusCache; + return !!window__WEBPACK_IMPORTED_MODULE_15___default.a.document.activeElement.__inFocusCache; } } catch (e) {} // eslint-disable-line no-empty @@ -2201,14 +2192,14 @@ function inFocus() { */ function removeInFocus(force) { - if (window__WEBPACK_IMPORTED_MODULE_18___default.a.document && window__WEBPACK_IMPORTED_MODULE_18___default.a.document.activeElement && window__WEBPACK_IMPORTED_MODULE_18___default.a.document.activeElement.blur) { + if (window__WEBPACK_IMPORTED_MODULE_15___default.a.document && window__WEBPACK_IMPORTED_MODULE_15___default.a.document.activeElement && window__WEBPACK_IMPORTED_MODULE_15___default.a.document.activeElement.blur) { try { - var activeEl = $__WEBPACK_IMPORTED_MODULE_19___default()(window__WEBPACK_IMPORTED_MODULE_18___default.a.document.activeElement); + var activeEl = $__WEBPACK_IMPORTED_MODULE_16___default()(window__WEBPACK_IMPORTED_MODULE_15___default.a.document.activeElement); if (activeEl && activeEl.is('input,textarea')) { - window__WEBPACK_IMPORTED_MODULE_18___default.a.document.activeElement.blur(); + window__WEBPACK_IMPORTED_MODULE_15___default.a.document.activeElement.blur(); } else if (force) { - window__WEBPACK_IMPORTED_MODULE_18___default.a.document.activeElement.blur(); + window__WEBPACK_IMPORTED_MODULE_15___default.a.document.activeElement.blur(); } } catch (e) {} // eslint-disable-line no-empty @@ -2220,14 +2211,14 @@ function removeInFocus(force) { function removeSelection() { try { - if (window__WEBPACK_IMPORTED_MODULE_18___default.a && window__WEBPACK_IMPORTED_MODULE_18___default.a.getSelection) { - var sel = window__WEBPACK_IMPORTED_MODULE_18___default.a.getSelection(); + if (window__WEBPACK_IMPORTED_MODULE_15___default.a && window__WEBPACK_IMPORTED_MODULE_15___default.a.getSelection) { + var sel = window__WEBPACK_IMPORTED_MODULE_15___default.a.getSelection(); if (sel && sel.removeAllRanges) { sel.removeAllRanges(); } - } else if (window__WEBPACK_IMPORTED_MODULE_18___default.a.document && window__WEBPACK_IMPORTED_MODULE_18___default.a.document.selection && window__WEBPACK_IMPORTED_MODULE_18___default.a.document.selection.empty) { - window__WEBPACK_IMPORTED_MODULE_18___default.a.document.selection.empty(); + } else if (window__WEBPACK_IMPORTED_MODULE_15___default.a.document && window__WEBPACK_IMPORTED_MODULE_15___default.a.document.selection && window__WEBPACK_IMPORTED_MODULE_15___default.a.document.selection.empty) { + window__WEBPACK_IMPORTED_MODULE_15___default.a.document.selection.empty(); } } catch (e) {} // eslint-disable-line no-empty @@ -2248,7 +2239,7 @@ function replySubjectAdd(prefix, subject) { prefixIsRe = !fwd; if ('' !== subject) { - ___WEBPACK_IMPORTED_MODULE_20___default.a.each(subject.split(':'), function (part) { + ___WEBPACK_IMPORTED_MODULE_17___default.a.each(subject.split(':'), function (part) { var trimmedPart = trim(part); if (!drop && (/^(RE|FWD)$/i.test(trimmedPart) || /^(RE|FWD)[[(][\d]+[\])]$/i.test(trimmedPart))) { @@ -2281,7 +2272,7 @@ function replySubjectAdd(prefix, subject) { */ function roundNumber(num, dec) { - return window__WEBPACK_IMPORTED_MODULE_18___default.a.Math.round(num * window__WEBPACK_IMPORTED_MODULE_18___default.a.Math.pow(10, dec)) / window__WEBPACK_IMPORTED_MODULE_18___default.a.Math.pow(10, dec); + return window__WEBPACK_IMPORTED_MODULE_15___default.a.Math.round(num * window__WEBPACK_IMPORTED_MODULE_15___default.a.Math.pow(10, dec)) / window__WEBPACK_IMPORTED_MODULE_15___default.a.Math.pow(10, dec); } /** * @param {(number|string)} sizeInBytes @@ -2310,8 +2301,8 @@ function friendlySize(sizeInBytes) { */ function log(desc) { - if (window__WEBPACK_IMPORTED_MODULE_18___default.a.console && window__WEBPACK_IMPORTED_MODULE_18___default.a.console.log) { - window__WEBPACK_IMPORTED_MODULE_18___default.a.console.log(desc); + if (window__WEBPACK_IMPORTED_MODULE_15___default.a.console && window__WEBPACK_IMPORTED_MODULE_15___default.a.console.log) { + window__WEBPACK_IMPORTED_MODULE_15___default.a.console.log(desc); } } /** @@ -2333,7 +2324,7 @@ function delegateRun(object, methodName, params, delay) { if (0 >= delay) { object[methodName].apply(object, params); } else { - ___WEBPACK_IMPORTED_MODULE_20___default.a.delay(function () { + ___WEBPACK_IMPORTED_MODULE_17___default.a.delay(function () { object[methodName].apply(object, params); }, delay); } @@ -2344,25 +2335,25 @@ function delegateRun(object, methodName, params, delay) { */ function killCtrlACtrlS(event) { - event = event || window__WEBPACK_IMPORTED_MODULE_18___default.a.event; + event = event || window__WEBPACK_IMPORTED_MODULE_15___default.a.event; if (event && event.ctrlKey && !event.shiftKey && !event.altKey) { var key = event.keyCode || event.which; - if (key === Common_Enums__WEBPACK_IMPORTED_MODULE_24__["EventKeyCode"].S) { + if (key === Common_Enums__WEBPACK_IMPORTED_MODULE_21__["EventKeyCode"].S) { event.preventDefault(); return; - } else if (key === Common_Enums__WEBPACK_IMPORTED_MODULE_24__["EventKeyCode"].A) { + } else if (key === Common_Enums__WEBPACK_IMPORTED_MODULE_21__["EventKeyCode"].A) { var sender = event.target || event.srcElement; if (sender && ('true' === '' + sender.contentEditable || sender.tagName && sender.tagName.match(/INPUT|TEXTAREA/i))) { return; } - if (window__WEBPACK_IMPORTED_MODULE_18___default.a.getSelection) { - window__WEBPACK_IMPORTED_MODULE_18___default.a.getSelection().removeAllRanges(); - } else if (window__WEBPACK_IMPORTED_MODULE_18___default.a.document.selection && window__WEBPACK_IMPORTED_MODULE_18___default.a.document.selection.clear) { - window__WEBPACK_IMPORTED_MODULE_18___default.a.document.selection.clear(); + if (window__WEBPACK_IMPORTED_MODULE_15___default.a.getSelection) { + window__WEBPACK_IMPORTED_MODULE_15___default.a.getSelection().removeAllRanges(); + } else if (window__WEBPACK_IMPORTED_MODULE_15___default.a.document.selection && window__WEBPACK_IMPORTED_MODULE_15___default.a.document.selection.clear) { + window__WEBPACK_IMPORTED_MODULE_15___default.a.document.selection.clear(); } event.preventDefault(); @@ -2396,15 +2387,15 @@ function createCommandLegacy(context, fExecute, fCanExecute) { }; fResult = fExecute ? fNonEmpty : noop; - fResult.enabled = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(true); + fResult.enabled = ko__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"].observable(true); fResult.isCommand = true; if (isFunc(fCanExecute)) { - fResult.canExecute = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].computed(function () { + fResult.canExecute = ko__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"].computed(function () { return fResult && fResult.enabled() && fCanExecute.call(context); }); } else { - fResult.canExecute = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].computed(function () { + fResult.canExecute = ko__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"].computed(function () { return fResult && fResult.enabled() && !!fCanExecute; }); } @@ -2416,7 +2407,7 @@ function createCommandLegacy(context, fExecute, fCanExecute) { * @returns {string} */ -var convertThemeName = ___WEBPACK_IMPORTED_MODULE_20___default.a.memoize(function (theme) { +var convertThemeName = ___WEBPACK_IMPORTED_MODULE_17___default.a.memoize(function (theme) { if ('@custom' === theme.substr(-7)) { theme = trim(theme.substring(0, theme.length - 7)); } @@ -2436,14 +2427,14 @@ function quoteName(name) { */ function microtime() { - return new window__WEBPACK_IMPORTED_MODULE_18___default.a.Date().getTime(); + return new window__WEBPACK_IMPORTED_MODULE_15___default.a.Date().getTime(); } /** * @returns {number} */ function timestamp() { - return window__WEBPACK_IMPORTED_MODULE_18___default.a.Math.round(microtime() / 1000); + return window__WEBPACK_IMPORTED_MODULE_15___default.a.Math.round(microtime() / 1000); } /** * @@ -2464,7 +2455,7 @@ function convertLangName(language, isEng) { */ function draggablePlace() { - return $__WEBPACK_IMPORTED_MODULE_19___default()('
' + ' ' + '' + '' + '
').appendTo('#rl-hidden'); + return $__WEBPACK_IMPORTED_MODULE_16___default()('
' + ' ' + '' + '' + '
').appendTo('#rl-hidden'); } /** * @param {object} domOption @@ -2474,7 +2465,7 @@ function draggablePlace() { function defautOptionsAfterRender(domItem, item) { if (item && !isUnd(item.disabled) && domItem) { - $__WEBPACK_IMPORTED_MODULE_19___default()(domItem).toggleClass('disabled', item.disabled).prop('disabled', item.disabled); + $__WEBPACK_IMPORTED_MODULE_16___default()(domItem).toggleClass('disabled', item.disabled).prop('disabled', item.disabled); } } /** @@ -2485,11 +2476,11 @@ function defautOptionsAfterRender(domItem, item) { */ function clearBqSwitcher(body) { - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_14___default()(body).call(body, 'blockquote.rl-bq-switcher').removeClass('rl-bq-switcher hidden-bq'); + _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_11___default()(body).call(body, 'blockquote.rl-bq-switcher').removeClass('rl-bq-switcher hidden-bq'); - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_14___default()(body).call(body, '.rlBlockquoteSwitcher').off('.rlBlockquoteSwitcher').remove(); + _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_11___default()(body).call(body, '.rlBlockquoteSwitcher').off('.rlBlockquoteSwitcher').remove(); - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_14___default()(body).call(body, '[data-html-editor-font-wrapper]').removeAttr('data-html-editor-font-wrapper'); + _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_11___default()(body).call(body, '[data-html-editor-font-wrapper]').removeAttr('data-html-editor-font-wrapper'); } /** * @param {object} messageData @@ -2509,17 +2500,17 @@ function previewMessage(_ref, body, isHtml, print) { ccClass = _ref.ccClass, ccCreds = _ref.ccCreds, ccLabel = _ref.ccLabel; - var win = window__WEBPACK_IMPORTED_MODULE_18___default.a.open(''), + var win = window__WEBPACK_IMPORTED_MODULE_15___default.a.open(''), doc = win.document, bodyClone = body.clone(), bodyClass = isHtml ? 'html' : 'plain'; clearBqSwitcher(bodyClone); var html = bodyClone ? bodyClone.html() : ''; - doc.write(deModule(__webpack_require__(/*! Html/PreviewMessage.html */ 361)).replace('{{title}}', encodeHtml(title)).replace('{{subject}}', encodeHtml(subject)).replace('{{date}}', encodeHtml(date)).replace('{{fromCreds}}', encodeHtml(fromCreds)).replace('{{toCreds}}', encodeHtml(toCreds)).replace('{{toLabel}}', encodeHtml(toLabel)).replace('{{ccClass}}', encodeHtml(ccClass)).replace('{{ccCreds}}', encodeHtml(ccCreds)).replace('{{ccLabel}}', encodeHtml(ccLabel)).replace('{{bodyClass}}', bodyClass).replace('{{html}}', html)); + doc.write(deModule(__webpack_require__(/*! Html/PreviewMessage.html */ 358)).replace('{{title}}', encodeHtml(title)).replace('{{subject}}', encodeHtml(subject)).replace('{{date}}', encodeHtml(date)).replace('{{fromCreds}}', encodeHtml(fromCreds)).replace('{{toCreds}}', encodeHtml(toCreds)).replace('{{toLabel}}', encodeHtml(toLabel)).replace('{{ccClass}}', encodeHtml(ccClass)).replace('{{ccCreds}}', encodeHtml(ccCreds)).replace('{{ccLabel}}', encodeHtml(ccLabel)).replace('{{bodyClass}}', bodyClass).replace('{{html}}', html)); doc.close(); if (print) { - window__WEBPACK_IMPORTED_MODULE_18___default.a.setTimeout(function () { + _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_10___default()(function () { return win.print(); }, 100); } @@ -2543,14 +2534,14 @@ function settingsSaveHelperFunction(fCallback, koTrigger, context, timer) { timer = pInt(timer); return function (type, data, cached, requestAction, requestParameters) { - koTrigger.call(context, data && data.Result ? Common_Enums__WEBPACK_IMPORTED_MODULE_24__["SaveSettingsStep"].TrueResult : Common_Enums__WEBPACK_IMPORTED_MODULE_24__["SaveSettingsStep"].FalseResult); + koTrigger.call(context, data && data.Result ? Common_Enums__WEBPACK_IMPORTED_MODULE_21__["SaveSettingsStep"].TrueResult : Common_Enums__WEBPACK_IMPORTED_MODULE_21__["SaveSettingsStep"].FalseResult); if (fCallback) { fCallback.call(context, type, data, cached, requestAction, requestParameters); } - ___WEBPACK_IMPORTED_MODULE_20___default.a.delay(function () { - koTrigger.call(context, Common_Enums__WEBPACK_IMPORTED_MODULE_24__["SaveSettingsStep"].Idle); + ___WEBPACK_IMPORTED_MODULE_17___default.a.delay(function () { + koTrigger.call(context, Common_Enums__WEBPACK_IMPORTED_MODULE_21__["SaveSettingsStep"].Idle); }, timer); }; } @@ -2612,7 +2603,7 @@ function settingsSaveHelperSubscribeFunction(remote, settingName, type, fTrigger */ function findEmailAndLinks(html) { - return Autolinker__WEBPACK_IMPORTED_MODULE_22___default.a ? Autolinker__WEBPACK_IMPORTED_MODULE_22___default.a.link(html, { + return Autolinker__WEBPACK_IMPORTED_MODULE_19___default.a ? Autolinker__WEBPACK_IMPORTED_MODULE_19___default.a.link(html, { newWindow: true, stripPrefix: false, urls: true, @@ -2621,9 +2612,7 @@ function findEmailAndLinks(html) { phone: false, hashtag: false, replaceFn: function replaceFn(match) { - var _context; - - return !(match && 'url' === match.getType() && match.matchedText && 0 !== _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_13___default()(_context = match.matchedText).call(_context, 'http')); + return !(match && 'url' === match.getType() && match.matchedText && 0 !== match.matchedText.indexOf('http')); } }) : html; } @@ -2682,7 +2671,7 @@ function htmlToPlain(html) { args[_key5] = arguments[_key5]; } - return args && 1 < args.length ? '' + args[1] + ___WEBPACK_IMPORTED_MODULE_20___default.a.escape(args[2]) : ''; + return args && 1 < args.length ? '' + args[1] + ___WEBPACK_IMPORTED_MODULE_17___default.a.escape(args[2]) : ''; }, convertLinks = function convertLinks() { for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) { @@ -2693,7 +2682,7 @@ function htmlToPlain(html) { }; text = html.replace(/]*><\/p>/gi, '').replace(/]*>([\s\S\r\n\t]*)<\/pre>/gim, convertPre).replace(/[\s]+/gm, ' ').replace(/((?:href|data)\s?=\s?)("[^"]+?"|'[^']+?')/gim, fixAttibuteValue).replace(/]*>/gim, '\n').replace(/<\/h[\d]>/gi, '\n').replace(/<\/p>/gi, '\n\n').replace(/]*>/gim, '\n').replace(/<\/ul>/gi, '\n').replace(/]*>/gim, ' * ').replace(/<\/li>/gi, '\n').replace(/<\/td>/gi, '\n').replace(/<\/tr>/gi, '\n').replace(/]*>/gim, '\n_______________________________\n\n').replace(/]*>([\s\S\r\n]*)<\/div>/gim, convertDivs).replace(/]*>/gim, '\n__bq__start__\n').replace(/<\/blockquote>/gim, '\n__bq__end__\n').replace(/
]*>([\s\S\r\n]*?)<\/a>/gim, convertLinks).replace(/<\/div>/gi, '\n').replace(/ /gi, ' ').replace(/"/gi, '"').replace(/<[^>]*>/gm, ''); - text = Common_Globals__WEBPACK_IMPORTED_MODULE_23__["$div"].html(text).text(); + text = Common_Globals__WEBPACK_IMPORTED_MODULE_20__["$div"].html(text).text(); text = text.replace(/\n[ \t]+/gm, '\n').replace(/[\n]{3,}/gm, '\n\n').replace(/>/gi, '>').replace(/</gi, '<').replace(/&/gi, '&'); text = splitPlainText(text); pos = 0; @@ -2701,11 +2690,11 @@ function htmlToPlain(html) { while (0 < limit) { limit -= 1; - iP1 = _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_13___default()(text).call(text, '__bq__start__', pos); + iP1 = text.indexOf('__bq__start__', pos); if (-1 < iP1) { - iP2 = _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_13___default()(text).call(text, '__bq__start__', iP1 + 5); - iP3 = _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_13___default()(text).call(text, '__bq__end__', iP1 + 5); + iP2 = text.indexOf('__bq__start__', iP1 + 5); + iP3 = text.indexOf('__bq__end__', iP1 + 5); if ((-1 === iP2 || iP3 < iP2) && iP1 < iP3) { text = text.substring(0, iP1) + convertBlockquote(text.substring(iP1 + 13, iP3)) + text.substring(iP3 + 11); @@ -2788,9 +2777,9 @@ function plainToHtml(plain, findEmailAndLinksInText) { .replace(/&/g, '&').replace(/>/g, '>').replace(/').replace(/[\s]*~~~\/blockquote~~~/g, '').replace(/\n/g, '
'); return findEmailAndLinksInText ? findEmailAndLinks(plain) : plain; } -window__WEBPACK_IMPORTED_MODULE_18___default.a['rainloop_Utils_htmlToPlain'] = htmlToPlain; // eslint-disable-line dot-notation +window__WEBPACK_IMPORTED_MODULE_15___default.a['rainloop_Utils_htmlToPlain'] = htmlToPlain; // eslint-disable-line dot-notation -window__WEBPACK_IMPORTED_MODULE_18___default.a['rainloop_Utils_plainToHtml'] = plainToHtml; // eslint-disable-line dot-notation +window__WEBPACK_IMPORTED_MODULE_15___default.a['rainloop_Utils_plainToHtml'] = plainToHtml; // eslint-disable-line dot-notation /** * @param {Array} aSystem @@ -2876,7 +2865,7 @@ function folderListOptionsBuilder(aSystem, aList, aDisabled, aHeaderLines, iUnDe if ((oItem.subScribed() || !oItem.existen || bBuildUnvisible) && (oItem.selectable || oItem.hasSubScribedSubfolders())) { if (fVisibleCallback ? fVisibleCallback(oItem) : true) { - if (Common_Enums__WEBPACK_IMPORTED_MODULE_24__["FolderType"].User === oItem.type() || !bSystem || oItem.hasSubScribedSubfolders()) { + if (Common_Enums__WEBPACK_IMPORTED_MODULE_21__["FolderType"].User === oItem.type() || !bSystem || oItem.hasSubScribedSubfolders()) { if (bSep && 0 < aResult.length) { aResult.push({ id: '---', @@ -2890,7 +2879,7 @@ function folderListOptionsBuilder(aSystem, aList, aDisabled, aHeaderLines, iUnDe bSep = false; aResult.push({ id: oItem.fullNameRaw, - name: new window__WEBPACK_IMPORTED_MODULE_18___default.a.Array(oItem.deep + 1 - iUnDeep).join(sDeepPrefix) + (fRenameCallback ? fRenameCallback(oItem) : oItem.name()), + name: new window__WEBPACK_IMPORTED_MODULE_15___default.a.Array(oItem.deep + 1 - iUnDeep).join(sDeepPrefix) + (fRenameCallback ? fRenameCallback(oItem) : oItem.name()), system: false, seporator: false, disabled: !oItem.selectable || -1 < inArray(oItem.fullNameRaw, aDisabled) || (fDisableCallback ? fDisableCallback(oItem) : false) @@ -2915,20 +2904,20 @@ function selectElement(element) { var sel = null, range = null; - if (window__WEBPACK_IMPORTED_MODULE_18___default.a.getSelection) { - sel = window__WEBPACK_IMPORTED_MODULE_18___default.a.getSelection(); + if (window__WEBPACK_IMPORTED_MODULE_15___default.a.getSelection) { + sel = window__WEBPACK_IMPORTED_MODULE_15___default.a.getSelection(); sel.removeAllRanges(); - range = window__WEBPACK_IMPORTED_MODULE_18___default.a.document.createRange(); + range = window__WEBPACK_IMPORTED_MODULE_15___default.a.document.createRange(); range.selectNodeContents(element); sel.addRange(range); - } else if (window__WEBPACK_IMPORTED_MODULE_18___default.a.document.selection) { - range = window__WEBPACK_IMPORTED_MODULE_18___default.a.document.body.createTextRange(); + } else if (window__WEBPACK_IMPORTED_MODULE_15___default.a.document.selection) { + range = window__WEBPACK_IMPORTED_MODULE_15___default.a.document.body.createTextRange(); range.moveToElementText(element); range.select(); } } -var detectDropdownVisibility = ___WEBPACK_IMPORTED_MODULE_20___default.a.debounce(function () { - Object(Common_Globals__WEBPACK_IMPORTED_MODULE_23__["dropdownVisibility"])(!!_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_14___default()(___WEBPACK_IMPORTED_MODULE_20___default.a).call(___WEBPACK_IMPORTED_MODULE_20___default.a, Common_Globals__WEBPACK_IMPORTED_MODULE_23__["data"].aBootstrapDropdowns, function (item) { +var detectDropdownVisibility = ___WEBPACK_IMPORTED_MODULE_17___default.a.debounce(function () { + Object(Common_Globals__WEBPACK_IMPORTED_MODULE_20__["dropdownVisibility"])(!!_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_11___default()(___WEBPACK_IMPORTED_MODULE_17___default.a).call(___WEBPACK_IMPORTED_MODULE_17___default.a, Common_Globals__WEBPACK_IMPORTED_MODULE_20__["data"].aBootstrapDropdowns, function (item) { return item.hasClass('open'); })); }, 50); @@ -2942,11 +2931,11 @@ function triggerAutocompleteInputChange(delay) { } var fFunc = function fFunc() { - $__WEBPACK_IMPORTED_MODULE_19___default()('.checkAutocomplete').trigger('change'); + $__WEBPACK_IMPORTED_MODULE_16___default()('.checkAutocomplete').trigger('change'); }; if (delay) { - ___WEBPACK_IMPORTED_MODULE_20___default.a.delay(fFunc, 100); + ___WEBPACK_IMPORTED_MODULE_17___default.a.delay(fFunc, 100); } else { fFunc(); } @@ -2959,7 +2948,7 @@ var configurationScriptTagCache = {}; function getConfigurationFromScriptTag(configuration) { if (!configurationScriptTagCache[configuration]) { - configurationScriptTagCache[configuration] = $__WEBPACK_IMPORTED_MODULE_19___default()('script[type="application/json"][data-configuration="' + configuration + '"]'); + configurationScriptTagCache[configuration] = $__WEBPACK_IMPORTED_MODULE_16___default()('script[type="application/json"][data-configuration="' + configuration + '"]'); } try { @@ -2988,10 +2977,10 @@ function disposeOne(propOrValue, value) { function disposeObject(object) { if (object) { if (isArray(object.disposables)) { - ___WEBPACK_IMPORTED_MODULE_20___default.a.each(object.disposables, disposeOne); + ___WEBPACK_IMPORTED_MODULE_17___default.a.each(object.disposables, disposeOne); } - ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].utils.objectForEach(object, disposeOne); + ko__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"].utils.objectForEach(object, disposeOne); } } /** @@ -3002,7 +2991,7 @@ function disposeObject(object) { function delegateRunOnDestroy(objectOrObjects) { if (objectOrObjects) { if (isArray(objectOrObjects)) { - ___WEBPACK_IMPORTED_MODULE_20___default.a.each(objectOrObjects, function (item) { + ___WEBPACK_IMPORTED_MODULE_17___default.a.each(objectOrObjects, function (item) { delegateRunOnDestroy(item); }); } else if (objectOrObjects && objectOrObjects.onDestroy) { @@ -3042,15 +3031,15 @@ function changeTheme(value, themeTrigger) { themeTrigger = noop; } - var themeLink = $__WEBPACK_IMPORTED_MODULE_19___default()('#app-theme-link'), + var themeLink = $__WEBPACK_IMPORTED_MODULE_16___default()('#app-theme-link'), clearTimer = function clearTimer() { - __themeTimer = window__WEBPACK_IMPORTED_MODULE_18___default.a.setTimeout(function () { - return themeTrigger(Common_Enums__WEBPACK_IMPORTED_MODULE_24__["SaveSettingsStep"].Idle); + __themeTimer = _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_10___default()(function () { + return themeTrigger(Common_Enums__WEBPACK_IMPORTED_MODULE_21__["SaveSettingsStep"].Idle); }, 1000); __themeAjax = null; }; - var themeStyle = $__WEBPACK_IMPORTED_MODULE_19___default()('#app-theme-style'), + var themeStyle = $__WEBPACK_IMPORTED_MODULE_16___default()('#app-theme-style'), url = themeLink.attr('href'); if (!url) { @@ -3066,20 +3055,20 @@ function changeTheme(value, themeTrigger) { url += 'Json/'; } - window__WEBPACK_IMPORTED_MODULE_18___default.a.clearTimeout(__themeTimer); - themeTrigger(Common_Enums__WEBPACK_IMPORTED_MODULE_24__["SaveSettingsStep"].Animate); + window__WEBPACK_IMPORTED_MODULE_15___default.a.clearTimeout(__themeTimer); + themeTrigger(Common_Enums__WEBPACK_IMPORTED_MODULE_21__["SaveSettingsStep"].Animate); if (__themeAjax && __themeAjax.abort) { __themeAjax.abort(); } - __themeAjax = $__WEBPACK_IMPORTED_MODULE_19___default.a.ajax({ + __themeAjax = $__WEBPACK_IMPORTED_MODULE_16___default.a.ajax({ url: url, dataType: 'json' }).then(function (data) { if (data && isArray(data) && 2 === data.length) { if (themeLink && themeLink[0] && (!themeStyle || !themeStyle[0])) { - themeStyle = $__WEBPACK_IMPORTED_MODULE_19___default()(''); + themeStyle = $__WEBPACK_IMPORTED_MODULE_16___default()(''); themeLink.after(themeStyle); themeLink.remove(); } @@ -3090,7 +3079,7 @@ function changeTheme(value, themeTrigger) { } } - themeTrigger(Common_Enums__WEBPACK_IMPORTED_MODULE_24__["SaveSettingsStep"].TrueResult); + themeTrigger(Common_Enums__WEBPACK_IMPORTED_MODULE_21__["SaveSettingsStep"].TrueResult); } }).then(clearTimer, clearTimer); } @@ -3215,8 +3204,8 @@ function mimeContentType(fileName) { ext = getFileExtension(fileName); - if (ext && 0 < ext.length && !isUnd(Common_Mime__WEBPACK_IMPORTED_MODULE_25__[/* Mime */ "a"][ext])) { - result = Common_Mime__WEBPACK_IMPORTED_MODULE_25__[/* Mime */ "a"][ext]; + if (ext && 0 < ext.length && !isUnd(Common_Mime__WEBPACK_IMPORTED_MODULE_22__[/* Mime */ "a"][ext])) { + result = Common_Mime__WEBPACK_IMPORTED_MODULE_22__[/* Mime */ "a"][ext]; } return result; @@ -3235,9 +3224,9 @@ function isTransparent(color) { */ function getRealHeight($el) { - $el.clone().show().appendTo(Common_Globals__WEBPACK_IMPORTED_MODULE_23__["$hcont"]); - var result = Common_Globals__WEBPACK_IMPORTED_MODULE_23__["$hcont"].height(); - Common_Globals__WEBPACK_IMPORTED_MODULE_23__["$hcont"].empty(); + $el.clone().show().appendTo(Common_Globals__WEBPACK_IMPORTED_MODULE_20__["$hcont"]); + var result = Common_Globals__WEBPACK_IMPORTED_MODULE_20__["$hcont"].height(); + Common_Globals__WEBPACK_IMPORTED_MODULE_20__["$hcont"].empty(); return result; } /** @@ -3247,11 +3236,11 @@ function getRealHeight($el) { */ function resizeAndCrop(url, value, fCallback) { - var img = new window__WEBPACK_IMPORTED_MODULE_18___default.a.Image(); + var img = new window__WEBPACK_IMPORTED_MODULE_15___default.a.Image(); img.onload = function () { var diff = [0, 0]; - var canvas = window__WEBPACK_IMPORTED_MODULE_18___default.a.document.createElement('canvas'), + var canvas = window__WEBPACK_IMPORTED_MODULE_15___default.a.document.createElement('canvas'), ctx = canvas.getContext('2d'); canvas.width = value; canvas.height = value; @@ -3290,13 +3279,13 @@ function mailToHelper(mailToUrl, PopupComposeViewModel) { var email = mailToUrl.replace(/\?.+$/, ''), query = mailToUrl.replace(/^[^?]*\?/, ''), - EmailModel = __webpack_require__(/*! Model/Email */ 82).default; + EmailModel = __webpack_require__(/*! Model/Email */ 83).default; params = simpleQueryParser(query); if (!isUnd(params.to)) { to = EmailModel.parseEmailLine(decodeURIComponent(email + ',' + params.to)); - to = _babel_runtime_corejs3_core_js_stable_instance_values__WEBPACK_IMPORTED_MODULE_11___default()(___WEBPACK_IMPORTED_MODULE_20___default.a).call(___WEBPACK_IMPORTED_MODULE_20___default.a, _babel_runtime_corejs3_core_js_stable_instance_reduce__WEBPACK_IMPORTED_MODULE_10___default()(to).call(to, function (result, value) { + to = _babel_runtime_corejs3_core_js_stable_instance_values__WEBPACK_IMPORTED_MODULE_13___default()(___WEBPACK_IMPORTED_MODULE_17___default.a).call(___WEBPACK_IMPORTED_MODULE_17___default.a, _babel_runtime_corejs3_core_js_stable_instance_reduce__WEBPACK_IMPORTED_MODULE_14___default()(to).call(to, function (result, value) { if (value) { if (result[value.email]) { if (!result[value.email].name) { @@ -3321,7 +3310,7 @@ function mailToHelper(mailToUrl, PopupComposeViewModel) { bcc = EmailModel.parseEmailLine(decodeURIComponent(params.bcc)); } - __webpack_require__(/*! Knoin/Knoin */ 7).showScreenPopup(PopupComposeViewModel, [Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].Empty, null, to, cc, bcc, isUnd(params.subject) ? null : pString(decodeURIComponent(params.subject)), isUnd(params.body) ? null : plainToHtml(pString(decodeURIComponent(params.body)))]); + __webpack_require__(/*! Knoin/Knoin */ 7).showScreenPopup(PopupComposeViewModel, [Common_Enums__WEBPACK_IMPORTED_MODULE_21__["ComposeType"].Empty, null, to, cc, bcc, isUnd(params.subject) ? null : pString(decodeURIComponent(params.subject)), isUnd(params.body) ? null : plainToHtml(pString(decodeURIComponent(params.body)))]); return true; } @@ -3334,7 +3323,7 @@ function mailToHelper(mailToUrl, PopupComposeViewModel) { */ function domReady(fn) { - $__WEBPACK_IMPORTED_MODULE_19___default()(function () { + $__WEBPACK_IMPORTED_MODULE_16___default()(function () { return fn(); }); // // if ('loading' !== window.document.readyState) @@ -3346,12 +3335,12 @@ function domReady(fn) { // window.document.addEventListener('DOMContentLoaded', fn); // } } -var windowResize = ___WEBPACK_IMPORTED_MODULE_20___default.a.debounce(function (timeout) { +var windowResize = ___WEBPACK_IMPORTED_MODULE_17___default.a.debounce(function (timeout) { if (isUnd(timeout) || isNull(timeout)) { - Common_Globals__WEBPACK_IMPORTED_MODULE_23__["$win"].resize(); + Common_Globals__WEBPACK_IMPORTED_MODULE_20__["$win"].resize(); } else { - window__WEBPACK_IMPORTED_MODULE_18___default.a.setTimeout(function () { - Common_Globals__WEBPACK_IMPORTED_MODULE_23__["$win"].resize(); + _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_10___default()(function () { + Common_Globals__WEBPACK_IMPORTED_MODULE_20__["$win"].resize(); }, timeout); } }, 50); @@ -3362,7 +3351,7 @@ var windowResize = ___WEBPACK_IMPORTED_MODULE_20___default.a.debounce(function ( function windowResizeCallback() { windowResize(); } -var substr = window__WEBPACK_IMPORTED_MODULE_18___default.a.String.substr; +var substr = window__WEBPACK_IMPORTED_MODULE_15___default.a.String.substr; if ('b' !== 'ab'.substr(-1)) { substr = function substr(str, start, length) { @@ -3370,7 +3359,7 @@ if ('b' !== 'ab'.substr(-1)) { return str.substr(start, length); }; - window__WEBPACK_IMPORTED_MODULE_18___default.a.String.substr = substr; + window__WEBPACK_IMPORTED_MODULE_15___default.a.String.substr = substr; } /***/ }), @@ -3497,23 +3486,20 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyScopeFake", function() { return keyScopeFake; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyScope", function() { return keyScope; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "data", function() { return data; }); -/* harmony import */ var core_js_modules_es_array_filter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.filter */ 277); -/* harmony import */ var core_js_modules_es_array_filter__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.filter.js */ 315); +/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find */ 12); /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/index-of */ 30); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! $ */ 8); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! key */ 21); -/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(key__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Common/Enums */ 0); - +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! window */ 4); +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! $ */ 8); +/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! key */ 20); +/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(key__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Common/Enums */ 0); @@ -3522,19 +3508,19 @@ __webpack_require__.r(__webpack_exports__); -var $win = $__WEBPACK_IMPORTED_MODULE_5___default()(window__WEBPACK_IMPORTED_MODULE_3___default.a); +var $win = $__WEBPACK_IMPORTED_MODULE_4___default()(window__WEBPACK_IMPORTED_MODULE_2___default.a); $win.__sizes = [0, 0]; -var $doc = $__WEBPACK_IMPORTED_MODULE_5___default()(window__WEBPACK_IMPORTED_MODULE_3___default.a.document); -var $html = $__WEBPACK_IMPORTED_MODULE_5___default()('html'); -var $body = $__WEBPACK_IMPORTED_MODULE_5___default()('body'); -var $div = $__WEBPACK_IMPORTED_MODULE_5___default()('
'); -var $hcont = $__WEBPACK_IMPORTED_MODULE_5___default()('
'); +var $doc = $__WEBPACK_IMPORTED_MODULE_4___default()(window__WEBPACK_IMPORTED_MODULE_2___default.a.document); +var $html = $__WEBPACK_IMPORTED_MODULE_4___default()('html'); +var $body = $__WEBPACK_IMPORTED_MODULE_4___default()('body'); +var $div = $__WEBPACK_IMPORTED_MODULE_4___default()('
'); +var $hcont = $__WEBPACK_IMPORTED_MODULE_4___default()('
'); $hcont.attr('area', 'hidden').css({ position: 'absolute', left: -5000 }).appendTo($body); -var startMicrotime = new window__WEBPACK_IMPORTED_MODULE_3___default.a.Date().getTime(); +var startMicrotime = new window__WEBPACK_IMPORTED_MODULE_2___default.a.Date().getTime(); /** * @type {boolean} */ @@ -3544,34 +3530,34 @@ var community = true; * @type {?} */ -var dropdownVisibility = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false).extend({ +var dropdownVisibility = ko__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].observable(false).extend({ rateLimit: 0 }); /** * @type {boolean} */ -var useKeyboardShortcuts = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(true); +var useKeyboardShortcuts = ko__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].observable(true); /** * @type {string} */ -var sUserAgent = 'navigator' in window__WEBPACK_IMPORTED_MODULE_3___default.a && 'userAgent' in window__WEBPACK_IMPORTED_MODULE_3___default.a.navigator && window__WEBPACK_IMPORTED_MODULE_3___default.a.navigator.userAgent.toLowerCase() || ''; +var sUserAgent = 'navigator' in window__WEBPACK_IMPORTED_MODULE_2___default.a && 'userAgent' in window__WEBPACK_IMPORTED_MODULE_2___default.a.navigator && window__WEBPACK_IMPORTED_MODULE_2___default.a.navigator.userAgent.toLowerCase() || ''; /** * @type {boolean} */ -var bIE = -1 < _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_2___default()(sUserAgent).call(sUserAgent, 'msie'); +var bIE = -1 < sUserAgent.indexOf('msie'); /** * @type {boolean} */ -var bChrome = -1 < _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_2___default()(sUserAgent).call(sUserAgent, 'chrome'); +var bChrome = -1 < sUserAgent.indexOf('chrome'); /** * @type {boolean} */ -var bSafari = !bChrome && -1 < _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_2___default()(sUserAgent).call(sUserAgent, 'safari'); +var bSafari = !bChrome && -1 < sUserAgent.indexOf('safari'); /** * @type {boolean} */ @@ -3591,12 +3577,12 @@ var bAnimationSupported = !bMobileDevice && $html.hasClass('csstransitions') && * @type {boolean} */ -var bXMLHttpRequestSupported = !!window__WEBPACK_IMPORTED_MODULE_3___default.a.XMLHttpRequest; +var bXMLHttpRequestSupported = !!window__WEBPACK_IMPORTED_MODULE_2___default.a.XMLHttpRequest; /** * @type {boolean} */ -var bIsHttps = window__WEBPACK_IMPORTED_MODULE_3___default.a.document && window__WEBPACK_IMPORTED_MODULE_3___default.a.document.location ? 'https:' === window__WEBPACK_IMPORTED_MODULE_3___default.a.document.location.protocol : false; +var bIsHttps = window__WEBPACK_IMPORTED_MODULE_2___default.a.document && window__WEBPACK_IMPORTED_MODULE_2___default.a.document.location ? 'https:' === window__WEBPACK_IMPORTED_MODULE_2___default.a.document.location.protocol : false; /** * @type {Object} */ @@ -3685,13 +3671,13 @@ var htmlEditorLangsMap = { var bAllowPdfPreview = !bMobileDevice; -if (bAllowPdfPreview && window__WEBPACK_IMPORTED_MODULE_3___default.a.navigator && window__WEBPACK_IMPORTED_MODULE_3___default.a.navigator.mimeTypes) { - bAllowPdfPreview = !!_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_4___default.a).call(___WEBPACK_IMPORTED_MODULE_4___default.a, window__WEBPACK_IMPORTED_MODULE_3___default.a.navigator.mimeTypes, function (type) { +if (bAllowPdfPreview && window__WEBPACK_IMPORTED_MODULE_2___default.a.navigator && window__WEBPACK_IMPORTED_MODULE_2___default.a.navigator.mimeTypes) { + bAllowPdfPreview = !!_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_3___default.a).call(___WEBPACK_IMPORTED_MODULE_3___default.a, window__WEBPACK_IMPORTED_MODULE_2___default.a.navigator.mimeTypes, function (type) { return type && 'application/pdf' === type.type; }); if (!bAllowPdfPreview) { - bAllowPdfPreview = 'undefined' !== typeof window__WEBPACK_IMPORTED_MODULE_3___default.a.navigator.mimeTypes['application/pdf']; + bAllowPdfPreview = 'undefined' !== typeof window__WEBPACK_IMPORTED_MODULE_2___default.a.navigator.mimeTypes['application/pdf']; } } @@ -3701,10 +3687,10 @@ var VIEW_MODELS = { 'settings-removed': [], 'settings-disabled': [] }; -var moveAction = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); -var leftPanelDisabled = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); -var leftPanelType = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(''); -var leftPanelWidth = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(0); +var moveAction = ko__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].observable(false); +var leftPanelDisabled = ko__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].observable(false); +var leftPanelType = ko__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].observable(''); +var leftPanelWidth = ko__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].observable(0); leftPanelDisabled.subscribe(function (value) { if (value && moveAction()) { moveAction(false); @@ -3716,30 +3702,30 @@ moveAction.subscribe(function (value) { } }); // popups -var popupVisibilityNames = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observableArray([]); -var popupVisibility = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].computed(function () { +var popupVisibilityNames = ko__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].observableArray([]); +var popupVisibility = ko__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].computed(function () { return 0 < popupVisibilityNames().length; }); popupVisibility.subscribe(function (bValue) { $html.toggleClass('rl-modal', bValue); }); // keys -var keyScopeReal = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_8__["KeyState"].All); -var keyScopeFake = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_8__["KeyState"].All); -var keyScope = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].computed({ +var keyScopeReal = ko__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_7__["KeyState"].All); +var keyScopeFake = ko__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].observable(Common_Enums__WEBPACK_IMPORTED_MODULE_7__["KeyState"].All); +var keyScope = ko__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].computed({ read: function read() { return keyScopeFake(); }, write: function write(value) { - if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["KeyState"].Menu !== value) { - if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["KeyState"].Compose === value) { + if (Common_Enums__WEBPACK_IMPORTED_MODULE_7__["KeyState"].Menu !== value) { + if (Common_Enums__WEBPACK_IMPORTED_MODULE_7__["KeyState"].Compose === value) { // disableKeyFilter - key__WEBPACK_IMPORTED_MODULE_6___default.a.filter = function () { + key__WEBPACK_IMPORTED_MODULE_5___default.a.filter = function () { return useKeyboardShortcuts(); }; } else { // restoreKeyFilter - key__WEBPACK_IMPORTED_MODULE_6___default.a.filter = function (event) { + key__WEBPACK_IMPORTED_MODULE_5___default.a.filter = function (event) { if (useKeyboardShortcuts()) { var el = event.target || event.srcElement, tagName = el ? el.tagName.toUpperCase() : ''; @@ -3753,7 +3739,7 @@ var keyScope = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].computed({ keyScopeFake(value); if (dropdownVisibility()) { - value = Common_Enums__WEBPACK_IMPORTED_MODULE_8__["KeyState"].Menu; + value = Common_Enums__WEBPACK_IMPORTED_MODULE_7__["KeyState"].Menu; } } @@ -3762,12 +3748,12 @@ var keyScope = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].computed({ }); keyScopeReal.subscribe(function (value) { // window.console.log('keyScope=' + sValue); // DEBUG - key__WEBPACK_IMPORTED_MODULE_6___default.a.setScope(value); + key__WEBPACK_IMPORTED_MODULE_5___default.a.setScope(value); }); dropdownVisibility.subscribe(function (value) { if (value) { - keyScope(Common_Enums__WEBPACK_IMPORTED_MODULE_8__["KeyState"].Menu); - } else if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["KeyState"].Menu === key__WEBPACK_IMPORTED_MODULE_6___default.a.getScope()) { + keyScope(Common_Enums__WEBPACK_IMPORTED_MODULE_7__["KeyState"].Menu); + } else if (Common_Enums__WEBPACK_IMPORTED_MODULE_7__["KeyState"].Menu === key__WEBPACK_IMPORTED_MODULE_5___default.a.getScope()) { keyScope(keyScopeFake()); } }); @@ -3822,25 +3808,25 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "popupDecorator", function() { return popupDecorator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "popup", function() { return popupDecorator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "settingsMenuKeysHandler", function() { return settingsMenuKeysHandler; }); -/* harmony import */ var core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.function.name */ 51); -/* harmony import */ var core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.regexp.exec */ 45); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.string.match */ 198); -/* harmony import */ var core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/filter */ 34); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/filter */ 28); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ 48); +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ 45); +/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.string.match.js */ 225); +/* harmony import */ var core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! _ */ 3); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_4__); /* harmony import */ var $__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! $ */ 8); /* harmony import */ var $__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_5__); /* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var hasher__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! hasher */ 61); +/* harmony import */ var hasher__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! hasher */ 63); /* harmony import */ var hasher__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(hasher__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var crossroads__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! crossroads */ 164); +/* harmony import */ var crossroads__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! crossroads */ 177); /* harmony import */ var crossroads__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(crossroads__WEBPACK_IMPORTED_MODULE_8__); /* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Common_Plugins__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Common/Plugins */ 39); +/* harmony import */ var Common_Plugins__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Common/Plugins */ 36); /* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Common/Globals */ 6); /* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! Common/Utils */ 2); @@ -4414,7 +4400,7 @@ function settingsMenuKeysHandler($items) { var up = handler && 'up' === handler.shortcut; if (event && $items.length) { - var index = $items.index(_babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3___default()($items).call($items, '.selected')); + var index = $items.index(_babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_0___default()($items).call($items, '.selected')); if (up && 0 < index) { index -= 1; @@ -4464,29 +4450,26 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNotificationFromResponse", function() { return getNotificationFromResponse; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getUploadErrorDescByCode", function() { return getUploadErrorDescByCode; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reload", function() { return reload; }); -/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.object.to-string */ 63); -/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_promise__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.promise */ 121); -/* harmony import */ var core_js_modules_es_promise__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_promise__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.regexp.exec */ 45); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.string.replace */ 57); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/for-each */ 70); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! $ */ 8); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Common/Globals */ 6); -/* harmony import */ var Common_Momentor__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! Common/Momentor */ 60); -/* harmony import */ var Common_Links__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! Common/Links */ 15); - +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_promise__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/promise */ 62); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_promise__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_promise__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ 45); +/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ 59); +/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ 152); +/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! window */ 4); +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! $ */ 8); +/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Common/Enums */ 0); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Common/Utils */ 2); +/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Common/Globals */ 6); +/* harmony import */ var Common_Momentor__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Common/Momentor */ 61); +/* harmony import */ var Common_Links__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! Common/Links */ 15); @@ -4500,10 +4483,10 @@ __webpack_require__.r(__webpack_exports__); -var I18N_DATA = window__WEBPACK_IMPORTED_MODULE_5___default.a.rainloopI18N || {}; +var I18N_DATA = window__WEBPACK_IMPORTED_MODULE_4___default.a.rainloopI18N || {}; var I18N_NOTIFICATION_DATA = {}; -var I18N_NOTIFICATION_MAP = [[Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].InvalidToken, 'NOTIFICATIONS/INVALID_TOKEN'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].InvalidToken, 'NOTIFICATIONS/INVALID_TOKEN'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].AuthError, 'NOTIFICATIONS/AUTH_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].AccessError, 'NOTIFICATIONS/ACCESS_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].ConnectionError, 'NOTIFICATIONS/CONNECTION_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CaptchaError, 'NOTIFICATIONS/CAPTCHA_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].SocialFacebookLoginAccessDisable, 'NOTIFICATIONS/SOCIAL_FACEBOOK_LOGIN_ACCESS_DISABLE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].SocialTwitterLoginAccessDisable, 'NOTIFICATIONS/SOCIAL_TWITTER_LOGIN_ACCESS_DISABLE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].SocialGoogleLoginAccessDisable, 'NOTIFICATIONS/SOCIAL_GOOGLE_LOGIN_ACCESS_DISABLE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].DomainNotAllowed, 'NOTIFICATIONS/DOMAIN_NOT_ALLOWED'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].AccountNotAllowed, 'NOTIFICATIONS/ACCOUNT_NOT_ALLOWED'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].AccountTwoFactorAuthRequired, 'NOTIFICATIONS/ACCOUNT_TWO_FACTOR_AUTH_REQUIRED'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].AccountTwoFactorAuthError, 'NOTIFICATIONS/ACCOUNT_TWO_FACTOR_AUTH_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CouldNotSaveNewPassword, 'NOTIFICATIONS/COULD_NOT_SAVE_NEW_PASSWORD'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CurrentPasswordIncorrect, 'NOTIFICATIONS/CURRENT_PASSWORD_INCORRECT'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].NewPasswordShort, 'NOTIFICATIONS/NEW_PASSWORD_SHORT'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].NewPasswordWeak, 'NOTIFICATIONS/NEW_PASSWORD_WEAK'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].NewPasswordForbidden, 'NOTIFICATIONS/NEW_PASSWORD_FORBIDDENT'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].ContactsSyncError, 'NOTIFICATIONS/CONTACTS_SYNC_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantGetMessageList, 'NOTIFICATIONS/CANT_GET_MESSAGE_LIST'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantGetMessage, 'NOTIFICATIONS/CANT_GET_MESSAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantDeleteMessage, 'NOTIFICATIONS/CANT_DELETE_MESSAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantMoveMessage, 'NOTIFICATIONS/CANT_MOVE_MESSAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantCopyMessage, 'NOTIFICATIONS/CANT_MOVE_MESSAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantSaveMessage, 'NOTIFICATIONS/CANT_SAVE_MESSAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantSendMessage, 'NOTIFICATIONS/CANT_SEND_MESSAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].InvalidRecipients, 'NOTIFICATIONS/INVALID_RECIPIENTS'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantSaveFilters, 'NOTIFICATIONS/CANT_SAVE_FILTERS'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantGetFilters, 'NOTIFICATIONS/CANT_GET_FILTERS'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].FiltersAreNotCorrect, 'NOTIFICATIONS/FILTERS_ARE_NOT_CORRECT'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantCreateFolder, 'NOTIFICATIONS/CANT_CREATE_FOLDER'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantRenameFolder, 'NOTIFICATIONS/CANT_RENAME_FOLDER'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantDeleteFolder, 'NOTIFICATIONS/CANT_DELETE_FOLDER'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantDeleteNonEmptyFolder, 'NOTIFICATIONS/CANT_DELETE_NON_EMPTY_FOLDER'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantSubscribeFolder, 'NOTIFICATIONS/CANT_SUBSCRIBE_FOLDER'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantUnsubscribeFolder, 'NOTIFICATIONS/CANT_UNSUBSCRIBE_FOLDER'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantSaveSettings, 'NOTIFICATIONS/CANT_SAVE_SETTINGS'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantSavePluginSettings, 'NOTIFICATIONS/CANT_SAVE_PLUGIN_SETTINGS'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].DomainAlreadyExists, 'NOTIFICATIONS/DOMAIN_ALREADY_EXISTS'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantInstallPackage, 'NOTIFICATIONS/CANT_INSTALL_PACKAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].CantDeletePackage, 'NOTIFICATIONS/CANT_DELETE_PACKAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].InvalidPluginPackage, 'NOTIFICATIONS/INVALID_PLUGIN_PACKAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].UnsupportedPluginPackage, 'NOTIFICATIONS/UNSUPPORTED_PLUGIN_PACKAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].LicensingServerIsUnavailable, 'NOTIFICATIONS/LICENSING_SERVER_IS_UNAVAILABLE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].LicensingExpired, 'NOTIFICATIONS/LICENSING_EXPIRED'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].LicensingBanned, 'NOTIFICATIONS/LICENSING_BANNED'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].DemoSendMessageError, 'NOTIFICATIONS/DEMO_SEND_MESSAGE_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].DemoAccountError, 'NOTIFICATIONS/DEMO_ACCOUNT_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].AccountAlreadyExists, 'NOTIFICATIONS/ACCOUNT_ALREADY_EXISTS'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].AccountDoesNotExist, 'NOTIFICATIONS/ACCOUNT_DOES_NOT_EXIST'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].MailServerError, 'NOTIFICATIONS/MAIL_SERVER_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].InvalidInputArgument, 'NOTIFICATIONS/INVALID_INPUT_ARGUMENT'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].UnknownNotification, 'NOTIFICATIONS/UNKNOWN_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].UnknownError, 'NOTIFICATIONS/UNKNOWN_ERROR']]; -var trigger = ko__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].observable(false); +var I18N_NOTIFICATION_MAP = [[Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].InvalidToken, 'NOTIFICATIONS/INVALID_TOKEN'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].InvalidToken, 'NOTIFICATIONS/INVALID_TOKEN'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].AuthError, 'NOTIFICATIONS/AUTH_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].AccessError, 'NOTIFICATIONS/ACCESS_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].ConnectionError, 'NOTIFICATIONS/CONNECTION_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].CaptchaError, 'NOTIFICATIONS/CAPTCHA_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].SocialFacebookLoginAccessDisable, 'NOTIFICATIONS/SOCIAL_FACEBOOK_LOGIN_ACCESS_DISABLE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].SocialTwitterLoginAccessDisable, 'NOTIFICATIONS/SOCIAL_TWITTER_LOGIN_ACCESS_DISABLE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].SocialGoogleLoginAccessDisable, 'NOTIFICATIONS/SOCIAL_GOOGLE_LOGIN_ACCESS_DISABLE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].DomainNotAllowed, 'NOTIFICATIONS/DOMAIN_NOT_ALLOWED'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].AccountNotAllowed, 'NOTIFICATIONS/ACCOUNT_NOT_ALLOWED'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].AccountTwoFactorAuthRequired, 'NOTIFICATIONS/ACCOUNT_TWO_FACTOR_AUTH_REQUIRED'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].AccountTwoFactorAuthError, 'NOTIFICATIONS/ACCOUNT_TWO_FACTOR_AUTH_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].CouldNotSaveNewPassword, 'NOTIFICATIONS/COULD_NOT_SAVE_NEW_PASSWORD'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].CurrentPasswordIncorrect, 'NOTIFICATIONS/CURRENT_PASSWORD_INCORRECT'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].NewPasswordShort, 'NOTIFICATIONS/NEW_PASSWORD_SHORT'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].NewPasswordWeak, 'NOTIFICATIONS/NEW_PASSWORD_WEAK'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].NewPasswordForbidden, 'NOTIFICATIONS/NEW_PASSWORD_FORBIDDENT'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].ContactsSyncError, 'NOTIFICATIONS/CONTACTS_SYNC_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].CantGetMessageList, 'NOTIFICATIONS/CANT_GET_MESSAGE_LIST'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].CantGetMessage, 'NOTIFICATIONS/CANT_GET_MESSAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].CantDeleteMessage, 'NOTIFICATIONS/CANT_DELETE_MESSAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].CantMoveMessage, 'NOTIFICATIONS/CANT_MOVE_MESSAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].CantCopyMessage, 'NOTIFICATIONS/CANT_MOVE_MESSAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].CantSaveMessage, 'NOTIFICATIONS/CANT_SAVE_MESSAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].CantSendMessage, 'NOTIFICATIONS/CANT_SEND_MESSAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].InvalidRecipients, 'NOTIFICATIONS/INVALID_RECIPIENTS'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].CantSaveFilters, 'NOTIFICATIONS/CANT_SAVE_FILTERS'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].CantGetFilters, 'NOTIFICATIONS/CANT_GET_FILTERS'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].FiltersAreNotCorrect, 'NOTIFICATIONS/FILTERS_ARE_NOT_CORRECT'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].CantCreateFolder, 'NOTIFICATIONS/CANT_CREATE_FOLDER'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].CantRenameFolder, 'NOTIFICATIONS/CANT_RENAME_FOLDER'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].CantDeleteFolder, 'NOTIFICATIONS/CANT_DELETE_FOLDER'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].CantDeleteNonEmptyFolder, 'NOTIFICATIONS/CANT_DELETE_NON_EMPTY_FOLDER'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].CantSubscribeFolder, 'NOTIFICATIONS/CANT_SUBSCRIBE_FOLDER'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].CantUnsubscribeFolder, 'NOTIFICATIONS/CANT_UNSUBSCRIBE_FOLDER'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].CantSaveSettings, 'NOTIFICATIONS/CANT_SAVE_SETTINGS'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].CantSavePluginSettings, 'NOTIFICATIONS/CANT_SAVE_PLUGIN_SETTINGS'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].DomainAlreadyExists, 'NOTIFICATIONS/DOMAIN_ALREADY_EXISTS'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].CantInstallPackage, 'NOTIFICATIONS/CANT_INSTALL_PACKAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].CantDeletePackage, 'NOTIFICATIONS/CANT_DELETE_PACKAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].InvalidPluginPackage, 'NOTIFICATIONS/INVALID_PLUGIN_PACKAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].UnsupportedPluginPackage, 'NOTIFICATIONS/UNSUPPORTED_PLUGIN_PACKAGE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].LicensingServerIsUnavailable, 'NOTIFICATIONS/LICENSING_SERVER_IS_UNAVAILABLE'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].LicensingExpired, 'NOTIFICATIONS/LICENSING_EXPIRED'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].LicensingBanned, 'NOTIFICATIONS/LICENSING_BANNED'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].DemoSendMessageError, 'NOTIFICATIONS/DEMO_SEND_MESSAGE_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].DemoAccountError, 'NOTIFICATIONS/DEMO_ACCOUNT_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].AccountAlreadyExists, 'NOTIFICATIONS/ACCOUNT_ALREADY_EXISTS'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].AccountDoesNotExist, 'NOTIFICATIONS/ACCOUNT_DOES_NOT_EXIST'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].MailServerError, 'NOTIFICATIONS/MAIL_SERVER_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].InvalidInputArgument, 'NOTIFICATIONS/INVALID_INPUT_ARGUMENT'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].UnknownNotification, 'NOTIFICATIONS/UNKNOWN_ERROR'], [Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].UnknownError, 'NOTIFICATIONS/UNKNOWN_ERROR']]; +var trigger = ko__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].observable(false); /** * @param {string} key * @param {Object=} valueList @@ -4515,13 +4498,13 @@ function i18n(key, valueList, defaulValue) { var valueName = '', result = I18N_DATA[key]; - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["isUnd"])(result)) { - result = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["isUnd"])(defaulValue) ? key : defaulValue; + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["isUnd"])(result)) { + result = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["isUnd"])(defaulValue) ? key : defaulValue; } - if (!Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["isUnd"])(valueList) && !Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["isNull"])(valueList)) { + if (!Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["isUnd"])(valueList) && !Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["isNull"])(valueList)) { for (valueName in valueList) { - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["has"])(valueList, valueName)) { + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["has"])(valueList, valueName)) { result = result.replace('%' + valueName + '%', valueList[valueName]); } } @@ -4531,7 +4514,7 @@ function i18n(key, valueList, defaulValue) { } var i18nToNode = function i18nToNode(element) { - var $el = $__WEBPACK_IMPORTED_MODULE_7___default()(element), + var $el = $__WEBPACK_IMPORTED_MODULE_6___default()(element), key = $el.data('i18n'); if (key) { @@ -4566,13 +4549,13 @@ function i18nToNodes(elements, animate) { animate = false; } - ___WEBPACK_IMPORTED_MODULE_6___default.a.defer(function () { - $__WEBPACK_IMPORTED_MODULE_7___default()('[data-i18n]', elements).each(function (index, item) { + ___WEBPACK_IMPORTED_MODULE_5___default.a.defer(function () { + $__WEBPACK_IMPORTED_MODULE_6___default()('[data-i18n]', elements).each(function (index, item) { i18nToNode(item); }); - if (animate && Common_Globals__WEBPACK_IMPORTED_MODULE_11__["bAnimationSupported"]) { - $__WEBPACK_IMPORTED_MODULE_7___default()('.i18n-animation[data-i18n]', elements).letterfx({ + if (animate && Common_Globals__WEBPACK_IMPORTED_MODULE_10__["bAnimationSupported"]) { + $__WEBPACK_IMPORTED_MODULE_6___default()('.i18n-animation[data-i18n]', elements).letterfx({ 'fx': 'fall fade', 'backwards': false, 'timing': 50, @@ -4585,14 +4568,14 @@ function i18nToNodes(elements, animate) { } var reloadData = function reloadData() { - if (window__WEBPACK_IMPORTED_MODULE_5___default.a.rainloopI18N) { - I18N_DATA = window__WEBPACK_IMPORTED_MODULE_5___default.a.rainloopI18N || {}; - i18nToNodes(window__WEBPACK_IMPORTED_MODULE_5___default.a.document, true); - Object(Common_Momentor__WEBPACK_IMPORTED_MODULE_12__["reload"])(); + if (window__WEBPACK_IMPORTED_MODULE_4___default.a.rainloopI18N) { + I18N_DATA = window__WEBPACK_IMPORTED_MODULE_4___default.a.rainloopI18N || {}; + i18nToNodes(window__WEBPACK_IMPORTED_MODULE_4___default.a.document, true); + Object(Common_Momentor__WEBPACK_IMPORTED_MODULE_11__["reload"])(); trigger(!trigger()); } - window__WEBPACK_IMPORTED_MODULE_5___default.a.rainloopI18N = null; + window__WEBPACK_IMPORTED_MODULE_4___default.a.rainloopI18N = null; }; /** * @returns {void} @@ -4600,7 +4583,7 @@ var reloadData = function reloadData() { function initNotificationLanguage() { - _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_4___default()(I18N_NOTIFICATION_MAP).call(I18N_NOTIFICATION_MAP, function (item) { + I18N_NOTIFICATION_MAP.forEach(function (item) { I18N_NOTIFICATION_DATA[item[0]] = i18n(item[1]); }); } @@ -4648,14 +4631,14 @@ function getNotification(code, message, defCode) { defCode = null; } - code = window__WEBPACK_IMPORTED_MODULE_5___default.a.parseInt(code, 10) || 0; + code = window__WEBPACK_IMPORTED_MODULE_4___default.a.parseInt(code, 10) || 0; - if (Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].ClientViewError === code && message) { + if (Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].ClientViewError === code && message) { return message; } - defCode = defCode ? window__WEBPACK_IMPORTED_MODULE_5___default.a.parseInt(defCode, 10) || 0 : 0; - return Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["isUnd"])(I18N_NOTIFICATION_DATA[code]) ? defCode && Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["isUnd"])(I18N_NOTIFICATION_DATA[defCode]) ? I18N_NOTIFICATION_DATA[defCode] : '' : I18N_NOTIFICATION_DATA[code]; + defCode = defCode ? window__WEBPACK_IMPORTED_MODULE_4___default.a.parseInt(defCode, 10) || 0 : 0; + return Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["isUnd"])(I18N_NOTIFICATION_DATA[code]) ? defCode && Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["isUnd"])(I18N_NOTIFICATION_DATA[defCode]) ? I18N_NOTIFICATION_DATA[defCode] : '' : I18N_NOTIFICATION_DATA[code]; } /** * @param {object} response @@ -4665,10 +4648,10 @@ function getNotification(code, message, defCode) { function getNotificationFromResponse(response, defCode) { if (defCode === void 0) { - defCode = Common_Enums__WEBPACK_IMPORTED_MODULE_9__["Notification"].UnknownNotification; + defCode = Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Notification"].UnknownNotification; } - return response && response.ErrorCode ? getNotification(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["pInt"])(response.ErrorCode), response.ErrorMessage || '') : getNotification(defCode); + return response && response.ErrorCode ? getNotification(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["pInt"])(response.ErrorCode), response.ErrorMessage || '') : getNotification(defCode); } /** * @param {*} code @@ -4678,28 +4661,28 @@ function getNotificationFromResponse(response, defCode) { function getUploadErrorDescByCode(code) { var result = ''; - switch (window__WEBPACK_IMPORTED_MODULE_5___default.a.parseInt(code, 10) || 0) { - case Common_Enums__WEBPACK_IMPORTED_MODULE_9__["UploadErrorCode"].FileIsTooBig: + switch (window__WEBPACK_IMPORTED_MODULE_4___default.a.parseInt(code, 10) || 0) { + case Common_Enums__WEBPACK_IMPORTED_MODULE_8__["UploadErrorCode"].FileIsTooBig: result = i18n('UPLOAD/ERROR_FILE_IS_TOO_BIG'); break; - case Common_Enums__WEBPACK_IMPORTED_MODULE_9__["UploadErrorCode"].FilePartiallyUploaded: + case Common_Enums__WEBPACK_IMPORTED_MODULE_8__["UploadErrorCode"].FilePartiallyUploaded: result = i18n('UPLOAD/ERROR_FILE_PARTIALLY_UPLOADED'); break; - case Common_Enums__WEBPACK_IMPORTED_MODULE_9__["UploadErrorCode"].FileNoUploaded: + case Common_Enums__WEBPACK_IMPORTED_MODULE_8__["UploadErrorCode"].FileNoUploaded: result = i18n('UPLOAD/ERROR_NO_FILE_UPLOADED'); break; - case Common_Enums__WEBPACK_IMPORTED_MODULE_9__["UploadErrorCode"].MissingTempFolder: + case Common_Enums__WEBPACK_IMPORTED_MODULE_8__["UploadErrorCode"].MissingTempFolder: result = i18n('UPLOAD/ERROR_MISSING_TEMP_FOLDER'); break; - case Common_Enums__WEBPACK_IMPORTED_MODULE_9__["UploadErrorCode"].FileOnSaveingError: + case Common_Enums__WEBPACK_IMPORTED_MODULE_8__["UploadErrorCode"].FileOnSaveingError: result = i18n('UPLOAD/ERROR_ON_SAVING_FILE'); break; - case Common_Enums__WEBPACK_IMPORTED_MODULE_9__["UploadErrorCode"].FileType: + case Common_Enums__WEBPACK_IMPORTED_MODULE_8__["UploadErrorCode"].FileType: result = i18n('UPLOAD/ERROR_FILE_TYPE'); break; @@ -4716,30 +4699,30 @@ function getUploadErrorDescByCode(code) { */ function reload(admin, language) { - var start = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["microtime"])(); - Common_Globals__WEBPACK_IMPORTED_MODULE_11__["$html"].addClass('rl-changing-language'); - return new window__WEBPACK_IMPORTED_MODULE_5___default.a.Promise(function (resolve, reject) { - $__WEBPACK_IMPORTED_MODULE_7___default.a.ajax({ - url: Object(Common_Links__WEBPACK_IMPORTED_MODULE_13__[/* langLink */ "n"])(language, admin), + var start = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["microtime"])(); + Common_Globals__WEBPACK_IMPORTED_MODULE_10__["$html"].addClass('rl-changing-language'); + return new _babel_runtime_corejs3_core_js_stable_promise__WEBPACK_IMPORTED_MODULE_0___default.a(function (resolve, reject) { + $__WEBPACK_IMPORTED_MODULE_6___default.a.ajax({ + url: Object(Common_Links__WEBPACK_IMPORTED_MODULE_12__[/* langLink */ "n"])(language, admin), dataType: 'script', cache: true }).then(function () { - ___WEBPACK_IMPORTED_MODULE_6___default.a.delay(function () { + ___WEBPACK_IMPORTED_MODULE_5___default.a.delay(function () { reloadData(); - var isRtl = -1 < Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["inArray"])((language || '').toLowerCase(), ['ar', 'ar_sa', 'he', 'he_he', 'ur', 'ur_ir']); - Common_Globals__WEBPACK_IMPORTED_MODULE_11__["$html"].removeClass('rl-changing-language').removeClass('rl-rtl rl-ltr') // .attr('dir', isRtl ? 'rtl' : 'ltr') + var isRtl = -1 < Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["inArray"])((language || '').toLowerCase(), ['ar', 'ar_sa', 'he', 'he_he', 'ur', 'ur_ir']); + Common_Globals__WEBPACK_IMPORTED_MODULE_10__["$html"].removeClass('rl-changing-language').removeClass('rl-rtl rl-ltr') // .attr('dir', isRtl ? 'rtl' : 'ltr') .addClass(isRtl ? 'rl-rtl' : 'rl-ltr'); resolve(); - }, 500 < Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["microtime"])() - start ? 1 : 500); + }, 500 < Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["microtime"])() - start ? 1 : 500); }, function () { - Common_Globals__WEBPACK_IMPORTED_MODULE_11__["$html"].removeClass('rl-changing-language'); - window__WEBPACK_IMPORTED_MODULE_5___default.a.rainloopI18N = null; + Common_Globals__WEBPACK_IMPORTED_MODULE_10__["$html"].removeClass('rl-changing-language'); + window__WEBPACK_IMPORTED_MODULE_4___default.a.rainloopI18N = null; reject(); }); }); } // init section -Common_Globals__WEBPACK_IMPORTED_MODULE_11__["$html"].addClass('rl-' + (Common_Globals__WEBPACK_IMPORTED_MODULE_11__["$html"].attr('dir') || 'ltr')); +Common_Globals__WEBPACK_IMPORTED_MODULE_10__["$html"].addClass('rl-' + (Common_Globals__WEBPACK_IMPORTED_MODULE_10__["$html"].attr('dir') || 'ltr')); /***/ }), /* 10 */ @@ -4752,13 +4735,15 @@ Common_Globals__WEBPACK_IMPORTED_MODULE_11__["$html"].addClass('rl-' + (Common_G "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _inheritsLoose; }); -/* harmony import */ var _core_js_object_create__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core-js/object/create */ 261); -/* harmony import */ var _core_js_object_create__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_core_js_object_create__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _babel_runtime_corejs3_core_js_object_create__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js/object/create */ 294); +/* harmony import */ var _babel_runtime_corejs3_core_js_object_create__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_object_create__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setPrototypeOf.js */ 295); + function _inheritsLoose(subClass, superClass) { - subClass.prototype = _core_js_object_create__WEBPACK_IMPORTED_MODULE_0___default()(superClass.prototype); + subClass.prototype = _babel_runtime_corejs3_core_js_object_create__WEBPACK_IMPORTED_MODULE_0___default()(superClass.prototype); subClass.prototype.constructor = subClass; - subClass.__proto__ = superClass; + Object(_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(subClass, superClass); } /***/ }), @@ -4771,22 +4756,19 @@ function _inheritsLoose(subClass, superClass) { /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_sort__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/sort */ 423); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_sort__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_sort__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 18); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find */ 12); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 17); /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find */ 12); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Storage/Settings */ 5); -/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Common_Consts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Common/Consts */ 25); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Common_Cache__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Common/Cache */ 14); -/* harmony import */ var Common_Momentor__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Common/Momentor */ 60); - +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Storage/Settings */ 5); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Enums */ 0); +/* harmony import */ var Common_Consts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Common/Consts */ 24); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Common/Utils */ 2); +/* harmony import */ var Common_Cache__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Common/Cache */ 14); +/* harmony import */ var Common_Momentor__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Common/Momentor */ 61); @@ -4800,25 +4782,25 @@ function _inheritsLoose(subClass, superClass) { var FolderUserStore = /*#__PURE__*/function () { function FolderUserStore() { - this.displaySpecSetting = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(true); - this.sentFolder = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(''); - this.draftFolder = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(''); - this.spamFolder = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(''); - this.trashFolder = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(''); - this.archiveFolder = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(''); + this.displaySpecSetting = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observable(true); + this.sentFolder = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observable(''); + this.draftFolder = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observable(''); + this.spamFolder = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observable(''); + this.trashFolder = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observable(''); + this.archiveFolder = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observable(''); this.namespace = ''; - this.folderList = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observableArray([]); - this.folderList.optimized = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false); - this.folderList.error = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(''); - this.foldersLoading = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false); - this.foldersCreating = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false); - this.foldersDeleting = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false); - this.foldersRenaming = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(false); - this.foldersInboxUnreadCount = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(0); - this.currentFolder = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].observable(null).extend({ + this.folderList = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observableArray([]); + this.folderList.optimized = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observable(false); + this.folderList.error = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observable(''); + this.foldersLoading = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observable(false); + this.foldersCreating = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observable(false); + this.foldersDeleting = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observable(false); + this.foldersRenaming = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observable(false); + this.foldersInboxUnreadCount = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observable(0); + this.currentFolder = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observable(null).extend({ toggleSubscribeProperty: [this, 'selected'] }); - this.sieveAllowFileintoInbox = !!Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_5__["settingsGet"])('SieveAllowFileintoInbox'); + this.sieveAllowFileintoInbox = !!Object(Storage_Settings__WEBPACK_IMPORTED_MODULE_4__["settingsGet"])('SieveAllowFileintoInbox'); this.computers(); this.subscribers(); } @@ -4828,24 +4810,24 @@ var FolderUserStore = /*#__PURE__*/function () { _proto.computers = function computers() { var _this = this; - this.draftFolderNotEnabled = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].computed(function () { - return '' === _this.draftFolder() || Common_Consts__WEBPACK_IMPORTED_MODULE_7__[/* UNUSED_OPTION_VALUE */ "r"] === _this.draftFolder(); + this.draftFolderNotEnabled = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].computed(function () { + return '' === _this.draftFolder() || Common_Consts__WEBPACK_IMPORTED_MODULE_6__[/* UNUSED_OPTION_VALUE */ "r"] === _this.draftFolder(); }); - this.foldersListWithSingleInboxRootFolder = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].computed(function () { - return !_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_2___default()(___WEBPACK_IMPORTED_MODULE_4___default.a).call(___WEBPACK_IMPORTED_MODULE_4___default.a, _this.folderList(), function (folder) { + this.foldersListWithSingleInboxRootFolder = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].computed(function () { + return !_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_3___default.a).call(___WEBPACK_IMPORTED_MODULE_3___default.a, _this.folderList(), function (folder) { return folder && !folder.isSystemFolder() && folder.visible(); }); }); - this.currentFolderFullNameRaw = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].computed(function () { + this.currentFolderFullNameRaw = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].computed(function () { return _this.currentFolder() ? _this.currentFolder().fullNameRaw : ''; }); - this.currentFolderFullName = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].computed(function () { + this.currentFolderFullName = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].computed(function () { return _this.currentFolder() ? _this.currentFolder().fullName : ''; }); - this.currentFolderFullNameHash = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].computed(function () { + this.currentFolderFullNameHash = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].computed(function () { return _this.currentFolder() ? _this.currentFolder().fullNameHash : ''; }); - this.foldersChanging = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].computed(function () { + this.foldersChanging = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].computed(function () { var loading = _this.foldersLoading(), creating = _this.foldersCreating(), deleting = _this.foldersDeleting(), @@ -4853,8 +4835,8 @@ var FolderUserStore = /*#__PURE__*/function () { return loading || creating || deleting || renaming; }); - this.folderListSystemNames = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].computed(function () { - var list = [Object(Common_Cache__WEBPACK_IMPORTED_MODULE_9__[/* getFolderInboxName */ "h"])()], + this.folderListSystemNames = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].computed(function () { + var list = [Object(Common_Cache__WEBPACK_IMPORTED_MODULE_8__[/* getFolderInboxName */ "h"])()], folders = _this.folderList(), sentFolder = _this.sentFolder(), draftFolder = _this.draftFolder(), @@ -4862,42 +4844,42 @@ var FolderUserStore = /*#__PURE__*/function () { trashFolder = _this.trashFolder(), archiveFolder = _this.archiveFolder(); - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["isArray"])(folders) && 0 < folders.length) { - if ('' !== sentFolder && Common_Consts__WEBPACK_IMPORTED_MODULE_7__[/* UNUSED_OPTION_VALUE */ "r"] !== sentFolder) { + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_7__["isArray"])(folders) && 0 < folders.length) { + if ('' !== sentFolder && Common_Consts__WEBPACK_IMPORTED_MODULE_6__[/* UNUSED_OPTION_VALUE */ "r"] !== sentFolder) { list.push(sentFolder); } - if ('' !== draftFolder && Common_Consts__WEBPACK_IMPORTED_MODULE_7__[/* UNUSED_OPTION_VALUE */ "r"] !== draftFolder) { + if ('' !== draftFolder && Common_Consts__WEBPACK_IMPORTED_MODULE_6__[/* UNUSED_OPTION_VALUE */ "r"] !== draftFolder) { list.push(draftFolder); } - if ('' !== spamFolder && Common_Consts__WEBPACK_IMPORTED_MODULE_7__[/* UNUSED_OPTION_VALUE */ "r"] !== spamFolder) { + if ('' !== spamFolder && Common_Consts__WEBPACK_IMPORTED_MODULE_6__[/* UNUSED_OPTION_VALUE */ "r"] !== spamFolder) { list.push(spamFolder); } - if ('' !== trashFolder && Common_Consts__WEBPACK_IMPORTED_MODULE_7__[/* UNUSED_OPTION_VALUE */ "r"] !== trashFolder) { + if ('' !== trashFolder && Common_Consts__WEBPACK_IMPORTED_MODULE_6__[/* UNUSED_OPTION_VALUE */ "r"] !== trashFolder) { list.push(trashFolder); } - if ('' !== archiveFolder && Common_Consts__WEBPACK_IMPORTED_MODULE_7__[/* UNUSED_OPTION_VALUE */ "r"] !== archiveFolder) { + if ('' !== archiveFolder && Common_Consts__WEBPACK_IMPORTED_MODULE_6__[/* UNUSED_OPTION_VALUE */ "r"] !== archiveFolder) { list.push(archiveFolder); } } return list; }); - this.folderListSystem = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].computed(function () { - return ___WEBPACK_IMPORTED_MODULE_4___default.a.compact(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_4___default.a).call(___WEBPACK_IMPORTED_MODULE_4___default.a, _this.folderListSystemNames(), function (name) { - return Object(Common_Cache__WEBPACK_IMPORTED_MODULE_9__[/* getFolderFromCacheList */ "e"])(name); + this.folderListSystem = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].computed(function () { + return ___WEBPACK_IMPORTED_MODULE_3___default.a.compact(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_3___default.a).call(___WEBPACK_IMPORTED_MODULE_3___default.a, _this.folderListSystemNames(), function (name) { + return Object(Common_Cache__WEBPACK_IMPORTED_MODULE_8__[/* getFolderFromCacheList */ "e"])(name); })); }); - this.folderMenuForMove = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].computed(function () { - return Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["folderListOptionsBuilder"])(_this.folderListSystem(), _this.folderList(), [_this.currentFolderFullNameRaw()], null, null, null, null, function (item) { + this.folderMenuForMove = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].computed(function () { + return Object(Common_Utils__WEBPACK_IMPORTED_MODULE_7__["folderListOptionsBuilder"])(_this.folderListSystem(), _this.folderList(), [_this.currentFolderFullNameRaw()], null, null, null, null, function (item) { return item ? item.localName() : ''; }); }); - this.folderMenuForFilters = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].computed(function () { - return Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["folderListOptionsBuilder"])(_this.folderListSystem(), _this.folderList(), [_this.sieveAllowFileintoInbox ? '' : 'INBOX'], [['', '']], null, null, null, function (item) { + this.folderMenuForFilters = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].computed(function () { + return Object(Common_Utils__WEBPACK_IMPORTED_MODULE_7__["folderListOptionsBuilder"])(_this.folderListSystem(), _this.folderList(), [_this.sieveAllowFileintoInbox ? '' : 'INBOX'], [['', '']], null, null, null, function (item) { return item ? item.localName() : ''; }); }); @@ -4906,17 +4888,17 @@ var FolderUserStore = /*#__PURE__*/function () { _proto.subscribers = function subscribers() { var fRemoveSystemFolderType = function fRemoveSystemFolderType(observable) { return function () { - var folder = Object(Common_Cache__WEBPACK_IMPORTED_MODULE_9__[/* getFolderFromCacheList */ "e"])(observable()); + var folder = Object(Common_Cache__WEBPACK_IMPORTED_MODULE_8__[/* getFolderFromCacheList */ "e"])(observable()); if (folder) { - folder.type(Common_Enums__WEBPACK_IMPORTED_MODULE_6__["FolderType"].User); + folder.type(Common_Enums__WEBPACK_IMPORTED_MODULE_5__["FolderType"].User); } }; }; var fSetSystemFolderType = function fSetSystemFolderType(type) { return function (value) { - var folder = Object(Common_Cache__WEBPACK_IMPORTED_MODULE_9__[/* getFolderFromCacheList */ "e"])(value); + var folder = Object(Common_Cache__WEBPACK_IMPORTED_MODULE_8__[/* getFolderFromCacheList */ "e"])(value); if (folder) { folder.type(type); @@ -4929,11 +4911,11 @@ var FolderUserStore = /*#__PURE__*/function () { this.spamFolder.subscribe(fRemoveSystemFolderType(this.spamFolder), this, 'beforeChange'); this.trashFolder.subscribe(fRemoveSystemFolderType(this.trashFolder), this, 'beforeChange'); this.archiveFolder.subscribe(fRemoveSystemFolderType(this.archiveFolder), this, 'beforeChange'); - this.sentFolder.subscribe(fSetSystemFolderType(Common_Enums__WEBPACK_IMPORTED_MODULE_6__["FolderType"].SentItems), this); - this.draftFolder.subscribe(fSetSystemFolderType(Common_Enums__WEBPACK_IMPORTED_MODULE_6__["FolderType"].Draft), this); - this.spamFolder.subscribe(fSetSystemFolderType(Common_Enums__WEBPACK_IMPORTED_MODULE_6__["FolderType"].Spam), this); - this.trashFolder.subscribe(fSetSystemFolderType(Common_Enums__WEBPACK_IMPORTED_MODULE_6__["FolderType"].Trash), this); - this.archiveFolder.subscribe(fSetSystemFolderType(Common_Enums__WEBPACK_IMPORTED_MODULE_6__["FolderType"].Archive), this); + this.sentFolder.subscribe(fSetSystemFolderType(Common_Enums__WEBPACK_IMPORTED_MODULE_5__["FolderType"].SentItems), this); + this.draftFolder.subscribe(fSetSystemFolderType(Common_Enums__WEBPACK_IMPORTED_MODULE_5__["FolderType"].Draft), this); + this.spamFolder.subscribe(fSetSystemFolderType(Common_Enums__WEBPACK_IMPORTED_MODULE_5__["FolderType"].Spam), this); + this.trashFolder.subscribe(fSetSystemFolderType(Common_Enums__WEBPACK_IMPORTED_MODULE_5__["FolderType"].Trash), this); + this.archiveFolder.subscribe(fSetSystemFolderType(Common_Enums__WEBPACK_IMPORTED_MODULE_5__["FolderType"].Archive), this); } /** * @returns {Array} @@ -4943,12 +4925,12 @@ var FolderUserStore = /*#__PURE__*/function () { _proto.getNextFolderNames = function getNextFolderNames() { var result = [], limit = 5, - utc = Object(Common_Momentor__WEBPACK_IMPORTED_MODULE_10__["momentNowUnix"])(), + utc = Object(Common_Momentor__WEBPACK_IMPORTED_MODULE_9__["momentNowUnix"])(), timeout = utc - 60 * 5, timeouts = [], - inboxFolderName = Object(Common_Cache__WEBPACK_IMPORTED_MODULE_9__[/* getFolderInboxName */ "h"])(), + inboxFolderName = Object(Common_Cache__WEBPACK_IMPORTED_MODULE_8__[/* getFolderInboxName */ "h"])(), fSearchFunction = function fSearchFunction(list) { - ___WEBPACK_IMPORTED_MODULE_4___default.a.each(list, function (folder) { + ___WEBPACK_IMPORTED_MODULE_3___default.a.each(list, function (folder) { if (folder && inboxFolderName !== folder.fullNameRaw && folder.selectable && folder.existen && timeout > folder.interval && (folder.isSystemFolder() || folder.subScribed() && folder.checkable())) { timeouts.push([folder.interval, folder.fullNameRaw]); } @@ -4960,8 +4942,7 @@ var FolderUserStore = /*#__PURE__*/function () { }; fSearchFunction(this.folderList()); - - _babel_runtime_corejs3_core_js_stable_instance_sort__WEBPACK_IMPORTED_MODULE_0___default()(timeouts).call(timeouts, function (a, b) { + timeouts.sort(function (a, b) { if (a[0] < b[0]) { return -1; } else if (a[0] > b[0]) { @@ -4971,8 +4952,8 @@ var FolderUserStore = /*#__PURE__*/function () { return 0; }); - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_2___default()(___WEBPACK_IMPORTED_MODULE_4___default.a).call(___WEBPACK_IMPORTED_MODULE_4___default.a, timeouts, function (aItem) { - var folder = Object(Common_Cache__WEBPACK_IMPORTED_MODULE_9__[/* getFolderFromCacheList */ "e"])(aItem[1]); + _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_3___default.a).call(___WEBPACK_IMPORTED_MODULE_3___default.a, timeouts, function (aItem) { + var folder = Object(Common_Cache__WEBPACK_IMPORTED_MODULE_8__[/* getFolderFromCacheList */ "e"])(aItem[1]); if (folder) { folder.interval = utc; @@ -4982,7 +4963,7 @@ var FolderUserStore = /*#__PURE__*/function () { return limit <= result.length; }); - return ___WEBPACK_IMPORTED_MODULE_4___default.a.uniq(result); + return ___WEBPACK_IMPORTED_MODULE_3___default.a.uniq(result); }; return FolderUserStore; @@ -4999,7 +4980,7 @@ var FolderUserStore = /*#__PURE__*/function () { /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! core-js-pure/stable/instance/find */ 325); +module.exports = __webpack_require__(/*! core-js-pure/stable/instance/find */ 334); /***/ }), /* 13 */ @@ -5011,51 +4992,48 @@ module.exports = __webpack_require__(/*! core-js-pure/stable/instance/find */ 32 /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.join */ 75); -/* harmony import */ var core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string */ 63); -/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.regexp.exec */ 45); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.regexp.to-string */ 111); -/* harmony import */ var core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.string.replace */ 57); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 18); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find */ 12); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/filter */ 34); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/bind */ 26); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_9__); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_10__); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! $ */ 8); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_12__); -/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Common_Cache__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! Common/Cache */ 14); -/* harmony import */ var Common_Consts__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! Common/Consts */ 25); -/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! Common/Globals */ 6); -/* harmony import */ var Common_Links__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! Common/Links */ 15); -/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! Common/Translator */ 9); -/* harmony import */ var Common_Momentor__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! Common/Momentor */ 60); -/* harmony import */ var Helper_Message__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! Helper/Message */ 62); -/* harmony import */ var Model_Message__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! Model/Message */ 283); -/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! Knoin/Knoin */ 7); -/* harmony import */ var Stores_User_App__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! Stores/User/App */ 31); -/* harmony import */ var Stores_User_Account__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! Stores/User/Account */ 46); -/* harmony import */ var Stores_User_Folder__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! Stores/User/Folder */ 11); -/* harmony import */ var Stores_User_Pgp__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! Stores/User/Pgp */ 41); -/* harmony import */ var Stores_User_Settings__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! Stores/User/Settings */ 38); -/* harmony import */ var Stores_User_Notification__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! Stores/User/Notification */ 116); -/* harmony import */ var Helper_Apps_User__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! Helper/Apps/User */ 22); -/* harmony import */ var Remote_User_Ajax__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! Remote/User/Ajax */ 16); - +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/filter */ 28); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find */ 12); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 17); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ 86); +/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ 119); +/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ 45); +/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ 59); +/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.array.join.js */ 77); +/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_7__); +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! window */ 4); +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_8__); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_9__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! $ */ 8); +/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_11__); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! Common/Enums */ 0); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! Common/Utils */ 2); +/* harmony import */ var Common_Cache__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! Common/Cache */ 14); +/* harmony import */ var Common_Consts__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! Common/Consts */ 24); +/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! Common/Globals */ 6); +/* harmony import */ var Common_Links__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! Common/Links */ 15); +/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! Common/Translator */ 9); +/* harmony import */ var Common_Momentor__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! Common/Momentor */ 61); +/* harmony import */ var Helper_Message__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! Helper/Message */ 64); +/* harmony import */ var Model_Message__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! Model/Message */ 321); +/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! Knoin/Knoin */ 7); +/* harmony import */ var Stores_User_App__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! Stores/User/App */ 27); +/* harmony import */ var Stores_User_Account__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! Stores/User/Account */ 46); +/* harmony import */ var Stores_User_Folder__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! Stores/User/Folder */ 11); +/* harmony import */ var Stores_User_Pgp__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! Stores/User/Pgp */ 41); +/* harmony import */ var Stores_User_Settings__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! Stores/User/Settings */ 35); +/* harmony import */ var Stores_User_Notification__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! Stores/User/Notification */ 124); +/* harmony import */ var Helper_Apps_User__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! Helper/Apps/User */ 21); +/* harmony import */ var Remote_User_Ajax__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! Remote/User/Ajax */ 16); @@ -5090,48 +5068,48 @@ module.exports = __webpack_require__(/*! core-js-pure/stable/instance/find */ 32 var MessageUserStore = /*#__PURE__*/function () { function MessageUserStore() { - this.staticMessage = new Model_Message__WEBPACK_IMPORTED_MODULE_22__[/* MessageModel */ "a"](); - this.messageList = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observableArray([]).extend({ + this.staticMessage = new Model_Message__WEBPACK_IMPORTED_MODULE_21__[/* MessageModel */ "a"](); + this.messageList = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observableArray([]).extend({ rateLimit: 0 }); - this.messageListCount = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(0); - this.messageListSearch = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(''); - this.messageListThreadUid = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(''); - this.messageListPage = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(1); - this.messageListPageBeforeThread = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(1); - this.messageListError = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(''); - this.messageListEndFolder = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(''); - this.messageListEndSearch = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(''); - this.messageListEndThreadUid = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(''); - this.messageListEndPage = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(1); - this.messageListLoading = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(false); - this.messageListIsNotCompleted = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(false); - this.messageListCompleteLoadingThrottle = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(false).extend({ + this.messageListCount = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(0); + this.messageListSearch = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(''); + this.messageListThreadUid = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(''); + this.messageListPage = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(1); + this.messageListPageBeforeThread = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(1); + this.messageListError = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(''); + this.messageListEndFolder = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(''); + this.messageListEndSearch = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(''); + this.messageListEndThreadUid = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(''); + this.messageListEndPage = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(1); + this.messageListLoading = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(false); + this.messageListIsNotCompleted = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(false); + this.messageListCompleteLoadingThrottle = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(false).extend({ throttle: 200 }); - this.messageListCompleteLoadingThrottleForAnimation = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(false).extend({ + this.messageListCompleteLoadingThrottleForAnimation = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(false).extend({ specialThrottle: 700 }); - this.messageListDisableAutoSelect = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(false).extend({ + this.messageListDisableAutoSelect = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(false).extend({ falseTimeout: 500 }); - this.selectorMessageSelected = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(null); - this.selectorMessageFocused = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(null); // message viewer + this.selectorMessageSelected = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(null); + this.selectorMessageFocused = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(null); // message viewer - this.message = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(null); - this.message.viewTrigger = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(false); - this.messageError = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(''); - this.messageCurrentLoading = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(false); - this.messageLoadingThrottle = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(false).extend({ - throttle: Common_Enums__WEBPACK_IMPORTED_MODULE_13__["Magics"].Time50ms + this.message = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(null); + this.message.viewTrigger = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(false); + this.messageError = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(''); + this.messageCurrentLoading = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(false); + this.messageLoadingThrottle = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(false).extend({ + throttle: Common_Enums__WEBPACK_IMPORTED_MODULE_12__["Magics"].Time50ms }); - this.messageFullScreenMode = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(false); - this.messagesBodiesDom = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(null); - this.messageActiveDom = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].observable(null); + this.messageFullScreenMode = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(false); + this.messagesBodiesDom = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(null); + this.messageActiveDom = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].observable(null); this.computers(); this.subscribers(); - this.onMessageResponse = _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_8___default()(___WEBPACK_IMPORTED_MODULE_10___default.a).call(___WEBPACK_IMPORTED_MODULE_10___default.a, this.onMessageResponse, this); - this.purgeMessageBodyCacheThrottle = ___WEBPACK_IMPORTED_MODULE_10___default.a.throttle(this.purgeMessageBodyCache, Common_Enums__WEBPACK_IMPORTED_MODULE_13__["Magics"].Time30s); + this.onMessageResponse = ___WEBPACK_IMPORTED_MODULE_9___default.a.bind(this.onMessageResponse, this); + this.purgeMessageBodyCacheThrottle = ___WEBPACK_IMPORTED_MODULE_9___default.a.throttle(this.purgeMessageBodyCache, Common_Enums__WEBPACK_IMPORTED_MODULE_12__["Magics"].Time30s); } var _proto = MessageUserStore.prototype; @@ -5139,65 +5117,65 @@ var MessageUserStore = /*#__PURE__*/function () { _proto.computers = function computers() { var _this = this; - this.messageLoading = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].computed(function () { + this.messageLoading = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].computed(function () { return _this.messageCurrentLoading(); }); - this.messageListEndHash = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].computed(function () { + this.messageListEndHash = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].computed(function () { return _this.messageListEndFolder() + '|' + _this.messageListEndSearch() + '|' + _this.messageListEndThreadUid() + '|' + _this.messageListEndPage(); }); - this.messageListPageCount = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].computed(function () { - var page = window__WEBPACK_IMPORTED_MODULE_9___default.a.Math.ceil(_this.messageListCount() / Stores_User_Settings__WEBPACK_IMPORTED_MODULE_28__[/* default */ "a"].messagesPerPage()); + this.messageListPageCount = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].computed(function () { + var page = window__WEBPACK_IMPORTED_MODULE_8___default.a.Math.ceil(_this.messageListCount() / Stores_User_Settings__WEBPACK_IMPORTED_MODULE_27__[/* default */ "a"].messagesPerPage()); return 0 >= page ? 1 : page; }); - this.mainMessageListSearch = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].computed({ + this.mainMessageListSearch = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].computed({ read: this.messageListSearch, write: function write(value) { - Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_23__["setHash"])(Object(Common_Links__WEBPACK_IMPORTED_MODULE_18__[/* mailBox */ "o"])(Stores_User_Folder__WEBPACK_IMPORTED_MODULE_26__[/* default */ "a"].currentFolderFullNameHash(), 1, Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["trim"])(value.toString()), _this.messageListThreadUid())); + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_22__["setHash"])(Object(Common_Links__WEBPACK_IMPORTED_MODULE_17__[/* mailBox */ "o"])(Stores_User_Folder__WEBPACK_IMPORTED_MODULE_25__[/* default */ "a"].currentFolderFullNameHash(), 1, Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["trim"])(value.toString()), _this.messageListThreadUid())); } }); - this.messageListCompleteLoading = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].computed(function () { + this.messageListCompleteLoading = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].computed(function () { var one = _this.messageListLoading(), two = _this.messageListIsNotCompleted(); return one || two; }); - this.isMessageSelected = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].computed(function () { + this.isMessageSelected = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].computed(function () { return null !== _this.message(); }); - this.messageListChecked = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].computed(function () { - return _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_7___default()(___WEBPACK_IMPORTED_MODULE_10___default.a).call(___WEBPACK_IMPORTED_MODULE_10___default.a, _this.messageList(), function (item) { + this.messageListChecked = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].computed(function () { + return _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_9___default.a).call(___WEBPACK_IMPORTED_MODULE_9___default.a, _this.messageList(), function (item) { return item.checked(); }); }).extend({ rateLimit: 0 }); - this.hasCheckedMessages = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].computed(function () { + this.hasCheckedMessages = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].computed(function () { return 0 < _this.messageListChecked().length; }).extend({ rateLimit: 0 }); - this.messageListCheckedOrSelected = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].computed(function () { + this.messageListCheckedOrSelected = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].computed(function () { var checked = _this.messageListChecked(), selectedMessage = _this.selectorMessageSelected(), focusedMessage = _this.selectorMessageFocused(); if (checked.length) { - return ___WEBPACK_IMPORTED_MODULE_10___default.a.union(checked, selectedMessage ? [selectedMessage] : []); + return ___WEBPACK_IMPORTED_MODULE_9___default.a.union(checked, selectedMessage ? [selectedMessage] : []); } else if (selectedMessage) { return [selectedMessage]; } return focusedMessage ? [focusedMessage] : []; }); - this.messageListCheckedOrSelectedUidsWithSubMails = ko__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].computed(function () { + this.messageListCheckedOrSelectedUidsWithSubMails = ko__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].computed(function () { var result = []; - ___WEBPACK_IMPORTED_MODULE_10___default.a.each(_this.messageListCheckedOrSelected(), function (message) { + ___WEBPACK_IMPORTED_MODULE_9___default.a.each(_this.messageListCheckedOrSelected(), function (message) { if (message) { result.push(message.uid); if (1 < message.threadsLen()) { - result = ___WEBPACK_IMPORTED_MODULE_10___default.a.union(result, message.threads()); + result = ___WEBPACK_IMPORTED_MODULE_9___default.a.union(result, message.threads()); } } }); @@ -5216,20 +5194,20 @@ var MessageUserStore = /*#__PURE__*/function () { _this2.messageListCompleteLoadingThrottleForAnimation(value); }); - this.messageList.subscribe(___WEBPACK_IMPORTED_MODULE_10___default.a.debounce(function (list) { - ___WEBPACK_IMPORTED_MODULE_10___default.a.each(list, function (item) { + this.messageList.subscribe(___WEBPACK_IMPORTED_MODULE_9___default.a.debounce(function (list) { + ___WEBPACK_IMPORTED_MODULE_9___default.a.each(list, function (item) { if (item && item.newForAnimation()) { item.newForAnimation(false); } }); - }, Common_Enums__WEBPACK_IMPORTED_MODULE_13__["Magics"].Time500ms)); + }, Common_Enums__WEBPACK_IMPORTED_MODULE_12__["Magics"].Time500ms)); this.message.subscribe(function (message) { if (message) { - if (Common_Enums__WEBPACK_IMPORTED_MODULE_13__["Layout"].NoPreview === Stores_User_Settings__WEBPACK_IMPORTED_MODULE_28__[/* default */ "a"].layout()) { - Stores_User_App__WEBPACK_IMPORTED_MODULE_24__[/* default */ "a"].focusedState(Common_Enums__WEBPACK_IMPORTED_MODULE_13__["Focused"].MessageView); + if (Common_Enums__WEBPACK_IMPORTED_MODULE_12__["Layout"].NoPreview === Stores_User_Settings__WEBPACK_IMPORTED_MODULE_27__[/* default */ "a"].layout()) { + Stores_User_App__WEBPACK_IMPORTED_MODULE_23__[/* default */ "a"].focusedState(Common_Enums__WEBPACK_IMPORTED_MODULE_12__["Focused"].MessageView); } } else { - Stores_User_App__WEBPACK_IMPORTED_MODULE_24__[/* default */ "a"].focusedState(Common_Enums__WEBPACK_IMPORTED_MODULE_13__["Focused"].MessageList); + Stores_User_App__WEBPACK_IMPORTED_MODULE_23__[/* default */ "a"].focusedState(Common_Enums__WEBPACK_IMPORTED_MODULE_12__["Focused"].MessageList); _this2.messageFullScreenMode(false); @@ -5240,8 +5218,8 @@ var MessageUserStore = /*#__PURE__*/function () { _this2.messageLoadingThrottle(value); }); this.messagesBodiesDom.subscribe(function (dom) { - if (dom && !(dom instanceof $__WEBPACK_IMPORTED_MODULE_12___default.a)) { - _this2.messagesBodiesDom($__WEBPACK_IMPORTED_MODULE_12___default()(dom)); + if (dom && !(dom instanceof $__WEBPACK_IMPORTED_MODULE_11___default.a)) { + _this2.messagesBodiesDom($__WEBPACK_IMPORTED_MODULE_11___default()(dom)); } }); this.messageListEndFolder.subscribe(function (folder) { @@ -5255,14 +5233,14 @@ var MessageUserStore = /*#__PURE__*/function () { _proto.purgeMessageBodyCache = function purgeMessageBodyCache() { var count = 0; - var end = Common_Globals__WEBPACK_IMPORTED_MODULE_17__["data"].iMessageBodyCacheCount - Common_Consts__WEBPACK_IMPORTED_MODULE_16__[/* MESSAGE_BODY_CACHE_LIMIT */ "k"]; + var end = Common_Globals__WEBPACK_IMPORTED_MODULE_16__["data"].iMessageBodyCacheCount - Common_Consts__WEBPACK_IMPORTED_MODULE_15__[/* MESSAGE_BODY_CACHE_LIMIT */ "k"]; if (0 < end) { var messagesDom = this.messagesBodiesDom(); if (messagesDom) { - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_6___default()(messagesDom).call(messagesDom, '.rl-cache-class').each(function () { - var item = $__WEBPACK_IMPORTED_MODULE_12___default()(this); // eslint-disable-line no-invalid-this + _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1___default()(messagesDom).call(messagesDom, '.rl-cache-class').each(function () { + var item = $__WEBPACK_IMPORTED_MODULE_11___default()(this); // eslint-disable-line no-invalid-this if (end > item.data('rl-cache-count')) { item.addClass('rl-cache-purge'); @@ -5271,34 +5249,34 @@ var MessageUserStore = /*#__PURE__*/function () { }); if (0 < count) { - ___WEBPACK_IMPORTED_MODULE_10___default.a.delay(function () { - return _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_6___default()(messagesDom).call(messagesDom, '.rl-cache-purge').remove(); - }, Common_Enums__WEBPACK_IMPORTED_MODULE_13__["Magics"].Time350ms); + ___WEBPACK_IMPORTED_MODULE_9___default.a.delay(function () { + return _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1___default()(messagesDom).call(messagesDom, '.rl-cache-purge').remove(); + }, Common_Enums__WEBPACK_IMPORTED_MODULE_12__["Magics"].Time350ms); } } } }; _proto.initUidNextAndNewMessages = function initUidNextAndNewMessages(folder, uidNext, newMessages) { - if (Object(Common_Cache__WEBPACK_IMPORTED_MODULE_15__[/* getFolderInboxName */ "h"])() === folder && Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["isNormal"])(uidNext) && '' !== uidNext) { - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["isArray"])(newMessages) && 0 < newMessages.length) { - ___WEBPACK_IMPORTED_MODULE_10___default.a.each(newMessages, function (item) { - Object(Common_Cache__WEBPACK_IMPORTED_MODULE_15__[/* addNewMessageCache */ "a"])(folder, item.Uid); + if (Object(Common_Cache__WEBPACK_IMPORTED_MODULE_14__[/* getFolderInboxName */ "h"])() === folder && Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["isNormal"])(uidNext) && '' !== uidNext) { + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["isArray"])(newMessages) && 0 < newMessages.length) { + ___WEBPACK_IMPORTED_MODULE_9___default.a.each(newMessages, function (item) { + Object(Common_Cache__WEBPACK_IMPORTED_MODULE_14__[/* addNewMessageCache */ "a"])(folder, item.Uid); }); - Stores_User_Notification__WEBPACK_IMPORTED_MODULE_29__[/* default */ "a"].playSoundNotification(); + Stores_User_Notification__WEBPACK_IMPORTED_MODULE_28__[/* default */ "a"].playSoundNotification(); var len = newMessages.length; if (3 < len) { - Stores_User_Notification__WEBPACK_IMPORTED_MODULE_29__[/* default */ "a"].displayDesktopNotification(Object(Common_Links__WEBPACK_IMPORTED_MODULE_18__[/* notificationMailIcon */ "r"])(), Stores_User_Account__WEBPACK_IMPORTED_MODULE_25__[/* default */ "a"].email(), Object(Common_Translator__WEBPACK_IMPORTED_MODULE_19__["i18n"])('MESSAGE_LIST/NEW_MESSAGE_NOTIFICATION', { + Stores_User_Notification__WEBPACK_IMPORTED_MODULE_28__[/* default */ "a"].displayDesktopNotification(Object(Common_Links__WEBPACK_IMPORTED_MODULE_17__[/* notificationMailIcon */ "r"])(), Stores_User_Account__WEBPACK_IMPORTED_MODULE_24__[/* default */ "a"].email(), Object(Common_Translator__WEBPACK_IMPORTED_MODULE_18__["i18n"])('MESSAGE_LIST/NEW_MESSAGE_NOTIFICATION', { 'COUNT': len }), { 'Folder': '', 'Uid': '' }); } else { - ___WEBPACK_IMPORTED_MODULE_10___default.a.each(newMessages, function (item) { - Stores_User_Notification__WEBPACK_IMPORTED_MODULE_29__[/* default */ "a"].displayDesktopNotification(Object(Common_Links__WEBPACK_IMPORTED_MODULE_18__[/* notificationMailIcon */ "r"])(), Helper_Message__WEBPACK_IMPORTED_MODULE_21__[/* emailArrayToString */ "b"](Helper_Message__WEBPACK_IMPORTED_MODULE_21__[/* emailArrayFromJson */ "a"](item.From), false), item.Subject, { + ___WEBPACK_IMPORTED_MODULE_9___default.a.each(newMessages, function (item) { + Stores_User_Notification__WEBPACK_IMPORTED_MODULE_28__[/* default */ "a"].displayDesktopNotification(Object(Common_Links__WEBPACK_IMPORTED_MODULE_17__[/* notificationMailIcon */ "r"])(), Helper_Message__WEBPACK_IMPORTED_MODULE_20__[/* emailArrayToString */ "b"](Helper_Message__WEBPACK_IMPORTED_MODULE_20__[/* emailArrayFromJson */ "a"](item.From), false), item.Subject, { 'Folder': item.Folder, 'Uid': item.Uid }); @@ -5306,7 +5284,7 @@ var MessageUserStore = /*#__PURE__*/function () { } } - Object(Common_Cache__WEBPACK_IMPORTED_MODULE_15__[/* setFolderUidNext */ "s"])(folder, uidNext); + Object(Common_Cache__WEBPACK_IMPORTED_MODULE_14__[/* setFolderUidNext */ "s"])(folder, uidNext); } }; @@ -5314,7 +5292,7 @@ var MessageUserStore = /*#__PURE__*/function () { var messagesDom = this.messagesBodiesDom(); if (messagesDom) { - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_6___default()(messagesDom).call(messagesDom, '.b-text-part').hide(); + _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1___default()(messagesDom).call(messagesDom, '.b-text-part').hide(); } } /** @@ -5336,22 +5314,22 @@ var MessageUserStore = /*#__PURE__*/function () { copy = false; } - uidForRemove = _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_5___default()(___WEBPACK_IMPORTED_MODULE_10___default.a).call(___WEBPACK_IMPORTED_MODULE_10___default.a, uidForRemove, function (mValue) { - return Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["pInt"])(mValue); + uidForRemove = _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_2___default()(___WEBPACK_IMPORTED_MODULE_9___default.a).call(___WEBPACK_IMPORTED_MODULE_9___default.a, uidForRemove, function (mValue) { + return Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["pInt"])(mValue); }); var unseenCount = 0, messageList = this.messageList(), currentMessage = this.message(); - var trashFolder = Stores_User_Folder__WEBPACK_IMPORTED_MODULE_26__[/* default */ "a"].trashFolder(), - spamFolder = Stores_User_Folder__WEBPACK_IMPORTED_MODULE_26__[/* default */ "a"].spamFolder(), - fromFolder = Object(Common_Cache__WEBPACK_IMPORTED_MODULE_15__[/* getFolderFromCacheList */ "e"])(fromFolderFullNameRaw), - toFolder = '' === toFolderFullNameRaw ? null : Object(Common_Cache__WEBPACK_IMPORTED_MODULE_15__[/* getFolderFromCacheList */ "e"])(toFolderFullNameRaw || ''), - currentFolderFullNameRaw = Stores_User_Folder__WEBPACK_IMPORTED_MODULE_26__[/* default */ "a"].currentFolderFullNameRaw(), - messages = currentFolderFullNameRaw === fromFolderFullNameRaw ? _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_7___default()(___WEBPACK_IMPORTED_MODULE_10___default.a).call(___WEBPACK_IMPORTED_MODULE_10___default.a, messageList, function (item) { - return item && -1 < Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["inArray"])(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["pInt"])(item.uid), uidForRemove); + var trashFolder = Stores_User_Folder__WEBPACK_IMPORTED_MODULE_25__[/* default */ "a"].trashFolder(), + spamFolder = Stores_User_Folder__WEBPACK_IMPORTED_MODULE_25__[/* default */ "a"].spamFolder(), + fromFolder = Object(Common_Cache__WEBPACK_IMPORTED_MODULE_14__[/* getFolderFromCacheList */ "e"])(fromFolderFullNameRaw), + toFolder = '' === toFolderFullNameRaw ? null : Object(Common_Cache__WEBPACK_IMPORTED_MODULE_14__[/* getFolderFromCacheList */ "e"])(toFolderFullNameRaw || ''), + currentFolderFullNameRaw = Stores_User_Folder__WEBPACK_IMPORTED_MODULE_25__[/* default */ "a"].currentFolderFullNameRaw(), + messages = currentFolderFullNameRaw === fromFolderFullNameRaw ? _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_9___default.a).call(___WEBPACK_IMPORTED_MODULE_9___default.a, messageList, function (item) { + return item && -1 < Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["inArray"])(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["pInt"])(item.uid), uidForRemove); }) : []; - ___WEBPACK_IMPORTED_MODULE_10___default.a.each(messages, function (item) { + ___WEBPACK_IMPORTED_MODULE_9___default.a.each(messages, function (item) { if (item && item.unseen()) { unseenCount += 1; } @@ -5381,13 +5359,13 @@ var MessageUserStore = /*#__PURE__*/function () { if (0 < messages.length) { if (copy) { - ___WEBPACK_IMPORTED_MODULE_10___default.a.each(messages, function (item) { + ___WEBPACK_IMPORTED_MODULE_9___default.a.each(messages, function (item) { item.checked(false); }); } else { this.messageListIsNotCompleted(true); - ___WEBPACK_IMPORTED_MODULE_10___default.a.each(messages, function (item) { + ___WEBPACK_IMPORTED_MODULE_9___default.a.each(messages, function (item) { if (currentMessage && currentMessage.hash === item.hash) { currentMessage = null; @@ -5397,42 +5375,42 @@ var MessageUserStore = /*#__PURE__*/function () { item.deleted(true); }); - ___WEBPACK_IMPORTED_MODULE_10___default.a.delay(function () { - ___WEBPACK_IMPORTED_MODULE_10___default.a.each(messages, function (item) { + ___WEBPACK_IMPORTED_MODULE_9___default.a.delay(function () { + ___WEBPACK_IMPORTED_MODULE_9___default.a.each(messages, function (item) { _this3.messageList.remove(item); }); - }, Common_Enums__WEBPACK_IMPORTED_MODULE_13__["Magics"].Time350ms); + }, Common_Enums__WEBPACK_IMPORTED_MODULE_12__["Magics"].Time350ms); } } if ('' !== fromFolderFullNameRaw) { - Object(Common_Cache__WEBPACK_IMPORTED_MODULE_15__[/* setFolderHash */ "q"])(fromFolderFullNameRaw, ''); + Object(Common_Cache__WEBPACK_IMPORTED_MODULE_14__[/* setFolderHash */ "q"])(fromFolderFullNameRaw, ''); } if ('' !== toFolderFullNameRaw) { - Object(Common_Cache__WEBPACK_IMPORTED_MODULE_15__[/* setFolderHash */ "q"])(toFolderFullNameRaw, ''); + Object(Common_Cache__WEBPACK_IMPORTED_MODULE_14__[/* setFolderHash */ "q"])(toFolderFullNameRaw, ''); } if ('' !== this.messageListThreadUid()) { messageList = this.messageList(); - if (messageList && 0 < messageList.length && !!_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_6___default()(___WEBPACK_IMPORTED_MODULE_10___default.a).call(___WEBPACK_IMPORTED_MODULE_10___default.a, messageList, function (item) { + if (messageList && 0 < messageList.length && !!_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_9___default.a).call(___WEBPACK_IMPORTED_MODULE_9___default.a, messageList, function (item) { return !!(item && item.deleted() && item.uid === _this3.messageListThreadUid()); })) { - var message = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_6___default()(___WEBPACK_IMPORTED_MODULE_10___default.a).call(___WEBPACK_IMPORTED_MODULE_10___default.a, messageList, function (item) { + var message = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_9___default.a).call(___WEBPACK_IMPORTED_MODULE_9___default.a, messageList, function (item) { return item && !item.deleted(); }); - if (message && this.messageListThreadUid() !== Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["pString"])(message.uid)) { - this.messageListThreadUid(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["pString"])(message.uid)); - Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_23__["setHash"])(Object(Common_Links__WEBPACK_IMPORTED_MODULE_18__[/* mailBox */ "o"])(Stores_User_Folder__WEBPACK_IMPORTED_MODULE_26__[/* default */ "a"].currentFolderFullNameHash(), this.messageListPage(), this.messageListSearch(), this.messageListThreadUid()), true, true); + if (message && this.messageListThreadUid() !== Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["pString"])(message.uid)) { + this.messageListThreadUid(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["pString"])(message.uid)); + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_22__["setHash"])(Object(Common_Links__WEBPACK_IMPORTED_MODULE_17__[/* mailBox */ "o"])(Stores_User_Folder__WEBPACK_IMPORTED_MODULE_25__[/* default */ "a"].currentFolderFullNameHash(), this.messageListPage(), this.messageListSearch(), this.messageListThreadUid()), true, true); } else if (!message) { if (1 < this.messageListPage()) { this.messageListPage(this.messageListPage() - 1); - Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_23__["setHash"])(Object(Common_Links__WEBPACK_IMPORTED_MODULE_18__[/* mailBox */ "o"])(Stores_User_Folder__WEBPACK_IMPORTED_MODULE_26__[/* default */ "a"].currentFolderFullNameHash(), this.messageListPage(), this.messageListSearch(), this.messageListThreadUid()), true, true); + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_22__["setHash"])(Object(Common_Links__WEBPACK_IMPORTED_MODULE_17__[/* mailBox */ "o"])(Stores_User_Folder__WEBPACK_IMPORTED_MODULE_25__[/* default */ "a"].currentFolderFullNameHash(), this.messageListPage(), this.messageListSearch(), this.messageListThreadUid()), true, true); } else { this.messageListThreadUid(''); - Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_23__["setHash"])(Object(Common_Links__WEBPACK_IMPORTED_MODULE_18__[/* mailBox */ "o"])(Stores_User_Folder__WEBPACK_IMPORTED_MODULE_26__[/* default */ "a"].currentFolderFullNameHash(), this.messageListPageBeforeThread(), this.messageListSearch()), true, true); + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_22__["setHash"])(Object(Common_Links__WEBPACK_IMPORTED_MODULE_17__[/* mailBox */ "o"])(Stores_User_Folder__WEBPACK_IMPORTED_MODULE_25__[/* default */ "a"].currentFolderFullNameHash(), this.messageListPageBeforeThread(), this.messageListSearch()), true, true); } } } @@ -5447,25 +5425,25 @@ var MessageUserStore = /*#__PURE__*/function () { if (messageTextBody) { var _context; - var $oList = _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_7___default()(_context = $__WEBPACK_IMPORTED_MODULE_12___default()('blockquote:not(.rl-bq-switcher)', messageTextBody)).call(_context, function () { - return 0 === $__WEBPACK_IMPORTED_MODULE_12___default()(this).parent().closest('blockquote', messageTextBody).length; // eslint-disable-line no-invalid-this + var $oList = _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_0___default()(_context = $__WEBPACK_IMPORTED_MODULE_11___default()('blockquote:not(.rl-bq-switcher)', messageTextBody)).call(_context, function () { + return 0 === $__WEBPACK_IMPORTED_MODULE_11___default()(this).parent().closest('blockquote', messageTextBody).length; // eslint-disable-line no-invalid-this }); if ($oList && 0 < $oList.length) { $oList.each(function () { - var $this = $__WEBPACK_IMPORTED_MODULE_12___default()(this); // eslint-disable-line no-invalid-this + var $this = $__WEBPACK_IMPORTED_MODULE_11___default()(this); // eslint-disable-line no-invalid-this var h = $this.height(); if (0 === h) { - h = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["getRealHeight"])($this); + h = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["getRealHeight"])($this); } - if ('' !== Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["trim"])($this.text()) && (0 === h || 100 < h)) { + if ('' !== Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["trim"])($this.text()) && (0 === h || 100 < h)) { $this.addClass('rl-bq-switcher hidden-bq'); - $__WEBPACK_IMPORTED_MODULE_12___default()('').insertBefore($this).on('click.rlBlockquoteSwitcher', function () { + $__WEBPACK_IMPORTED_MODULE_11___default()('').insertBefore($this).on('click.rlBlockquoteSwitcher', function () { $this.toggleClass('hidden-bq'); - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["windowResize"])(); + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["windowResize"])(); }).after('
').before('
'); } }); @@ -5479,9 +5457,9 @@ var MessageUserStore = /*#__PURE__*/function () { ; _proto.initOpenPgpControls = function initOpenPgpControls(messageTextBody, message) { - if (messageTextBody && _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_6___default()(messageTextBody)) { - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_6___default()(messageTextBody).call(messageTextBody, '.b-plain-openpgp:not(.inited)').each(function () { - Stores_User_Pgp__WEBPACK_IMPORTED_MODULE_27__[/* default */ "a"].initMessageBodyControls($__WEBPACK_IMPORTED_MODULE_12___default()(this), message); // eslint-disable-line no-invalid-this + if (messageTextBody && _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1___default()(messageTextBody)) { + _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1___default()(messageTextBody).call(messageTextBody, '.b-plain-openpgp:not(.inited)').each(function () { + Stores_User_Pgp__WEBPACK_IMPORTED_MODULE_26__[/* default */ "a"].initMessageBodyControls($__WEBPACK_IMPORTED_MODULE_11___default()(this), message); // eslint-disable-line no-invalid-this }); } }; @@ -5500,12 +5478,12 @@ var MessageUserStore = /*#__PURE__*/function () { if (data && message && data.Result && 'Object/Message' === data.Result['@Object'] && message.folderFullNameRaw === data.Result.Folder) { var threads = message.threads(); - if (message.uid !== data.Result.Uid && 1 < threads.length && -1 < Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["inArray"])(data.Result.Uid, threads)) { - message = Model_Message__WEBPACK_IMPORTED_MODULE_22__[/* MessageModel */ "a"].newInstanceFromJson(data.Result); + if (message.uid !== data.Result.Uid && 1 < threads.length && -1 < Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["inArray"])(data.Result.Uid, threads)) { + message = Model_Message__WEBPACK_IMPORTED_MODULE_21__[/* MessageModel */ "a"].newInstanceFromJson(data.Result); if (message) { message.threads(threads); - Object(Common_Cache__WEBPACK_IMPORTED_MODULE_15__[/* initMessageFlagsFromCache */ "n"])(message); + Object(Common_Cache__WEBPACK_IMPORTED_MODULE_14__[/* initMessageFlagsFromCache */ "n"])(message); this.message(this.staticMessage.populateByMessageListItem(message)); message = this.message(); isNew = true; @@ -5515,7 +5493,7 @@ var MessageUserStore = /*#__PURE__*/function () { if (message && message.uid === data.Result.Uid) { this.messageError(''); message.initUpdateByMessageJson(data.Result); - Object(Common_Cache__WEBPACK_IMPORTED_MODULE_15__[/* addRequestedMessage */ "b"])(message.folderFullNameRaw, message.uid); + Object(Common_Cache__WEBPACK_IMPORTED_MODULE_14__[/* addRequestedMessage */ "b"])(message.folderFullNameRaw, message.uid); if (!cached) { message.initFlagsByJson(data.Result); @@ -5526,37 +5504,37 @@ var MessageUserStore = /*#__PURE__*/function () { if (messagesDom) { id = 'rl-mgs-' + message.hash.replace(/[^a-zA-Z0-9]/g, ''); - var textBody = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_6___default()(messagesDom).call(messagesDom, '#' + id); + var textBody = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1___default()(messagesDom).call(messagesDom, '#' + id); if (!textBody || !textBody[0]) { var isHtml = false; - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["isNormal"])(data.Result.Html) && '' !== data.Result.Html) { + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["isNormal"])(data.Result.Html) && '' !== data.Result.Html) { isHtml = true; resultHtml = data.Result.Html.toString(); - } else if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["isNormal"])(data.Result.Plain) && '' !== data.Result.Plain) { + } else if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["isNormal"])(data.Result.Plain) && '' !== data.Result.Plain) { isHtml = false; - resultHtml = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["plainToHtml"])(data.Result.Plain.toString(), false); + resultHtml = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["plainToHtml"])(data.Result.Plain.toString(), false); - if ((message.isPgpSigned() || message.isPgpEncrypted()) && Stores_User_Pgp__WEBPACK_IMPORTED_MODULE_27__[/* default */ "a"].capaOpenPGP()) { - plain = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["pString"])(data.Result.Plain); + if ((message.isPgpSigned() || message.isPgpEncrypted()) && Stores_User_Pgp__WEBPACK_IMPORTED_MODULE_26__[/* default */ "a"].capaOpenPGP()) { + plain = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["pString"])(data.Result.Plain); var isPgpEncrypted = /---BEGIN PGP MESSAGE---/.test(plain); if (!isPgpEncrypted) { pgpSigned = /-----BEGIN PGP SIGNED MESSAGE-----/.test(plain) && /-----BEGIN PGP SIGNATURE-----/.test(plain); } - Common_Globals__WEBPACK_IMPORTED_MODULE_17__["$div"].empty(); + Common_Globals__WEBPACK_IMPORTED_MODULE_16__["$div"].empty(); if (pgpSigned && message.isPgpSigned()) { - resultHtml = Common_Globals__WEBPACK_IMPORTED_MODULE_17__["$div"].append($__WEBPACK_IMPORTED_MODULE_12___default()('
').text(plain)).html();
+                  resultHtml = Common_Globals__WEBPACK_IMPORTED_MODULE_16__["$div"].append($__WEBPACK_IMPORTED_MODULE_11___default()('
').text(plain)).html();
                 } else if (isPgpEncrypted && message.isPgpEncrypted()) {
-                  resultHtml = Common_Globals__WEBPACK_IMPORTED_MODULE_17__["$div"].append($__WEBPACK_IMPORTED_MODULE_12___default()('
').text(plain)).html();
+                  resultHtml = Common_Globals__WEBPACK_IMPORTED_MODULE_16__["$div"].append($__WEBPACK_IMPORTED_MODULE_11___default()('
').text(plain)).html();
                 } else {
                   resultHtml = '
' + resultHtml + '
'; } - Common_Globals__WEBPACK_IMPORTED_MODULE_17__["$div"].empty(); + Common_Globals__WEBPACK_IMPORTED_MODULE_16__["$div"].empty(); message.isPgpSigned(pgpSigned); message.isPgpEncrypted(isPgpEncrypted); } else { @@ -5567,10 +5545,10 @@ var MessageUserStore = /*#__PURE__*/function () { resultHtml = '
' + resultHtml + '
'; } - Common_Globals__WEBPACK_IMPORTED_MODULE_17__["data"].iMessageBodyCacheCount += 1; - body = $__WEBPACK_IMPORTED_MODULE_12___default()('
').hide().addClass('rl-cache-class'); - body.data('rl-cache-count', Common_Globals__WEBPACK_IMPORTED_MODULE_17__["data"].iMessageBodyCacheCount); - body.html(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["findEmailAndLinks"])(resultHtml)).addClass('b-text-part ' + (isHtml ? 'html' : 'plain')); + Common_Globals__WEBPACK_IMPORTED_MODULE_16__["data"].iMessageBodyCacheCount += 1; + body = $__WEBPACK_IMPORTED_MODULE_11___default()('
').hide().addClass('rl-cache-class'); + body.data('rl-cache-count', Common_Globals__WEBPACK_IMPORTED_MODULE_16__["data"].iMessageBodyCacheCount); + body.html(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["findEmailAndLinks"])(resultHtml)).addClass('b-text-part ' + (isHtml ? 'html' : 'plain')); message.isHtml(!!isHtml); message.hasImages(!!data.Result.HasExternals); message.body = body; @@ -5585,7 +5563,7 @@ var MessageUserStore = /*#__PURE__*/function () { message.showInternalImages(true); } - if (message.hasImages() && Stores_User_Settings__WEBPACK_IMPORTED_MODULE_28__[/* default */ "a"].showImages()) { + if (message.hasImages() && Stores_User_Settings__WEBPACK_IMPORTED_MODULE_27__[/* default */ "a"].showImages()) { message.showExternalImages(true); } @@ -5594,8 +5572,8 @@ var MessageUserStore = /*#__PURE__*/function () { message.body = textBody; if (message.body) { - Common_Globals__WEBPACK_IMPORTED_MODULE_17__["data"].iMessageBodyCacheCount += 1; - message.body.data('rl-cache-count', Common_Globals__WEBPACK_IMPORTED_MODULE_17__["data"].iMessageBodyCacheCount); + Common_Globals__WEBPACK_IMPORTED_MODULE_16__["data"].iMessageBodyCacheCount += 1; + message.body.data('rl-cache-count', Common_Globals__WEBPACK_IMPORTED_MODULE_16__["data"].iMessageBodyCacheCount); message.fetchDataFromDom(); } } @@ -5611,10 +5589,10 @@ var MessageUserStore = /*#__PURE__*/function () { message.body.show(); } - Object(Common_Cache__WEBPACK_IMPORTED_MODULE_15__[/* initMessageFlagsFromCache */ "n"])(message); + Object(Common_Cache__WEBPACK_IMPORTED_MODULE_14__[/* initMessageFlagsFromCache */ "n"])(message); if (message.unseen() || message.hasUnseenSubMessage()) { - Object(Helper_Apps_User__WEBPACK_IMPORTED_MODULE_30__[/* getApp */ "a"])().messageListAction(message.folderFullNameRaw, Common_Enums__WEBPACK_IMPORTED_MODULE_13__["MessageSetAction"].SetSeen, [message]); + Object(Helper_Apps_User__WEBPACK_IMPORTED_MODULE_29__[/* getApp */ "a"])().messageListAction(message.folderFullNameRaw, Common_Enums__WEBPACK_IMPORTED_MODULE_12__["MessageSetAction"].SetSeen, [message]); } if (isNew) { @@ -5627,7 +5605,7 @@ var MessageUserStore = /*#__PURE__*/function () { this.selectorMessageFocused(null); } } else if (!selectedMessage && message) { - selectedMessage = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_6___default()(___WEBPACK_IMPORTED_MODULE_10___default.a).call(___WEBPACK_IMPORTED_MODULE_10___default.a, this.messageList(), function (subMessage) { + selectedMessage = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_9___default.a).call(___WEBPACK_IMPORTED_MODULE_9___default.a, this.messageList(), function (subMessage) { return subMessage && subMessage.folderFullNameRaw === message.folderFullNameRaw && subMessage.uid === message.uid; }); @@ -5638,7 +5616,7 @@ var MessageUserStore = /*#__PURE__*/function () { } } - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["windowResize"])(); + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["windowResize"])(); } } }; @@ -5665,7 +5643,7 @@ var MessageUserStore = /*#__PURE__*/function () { _proto.populateMessageBody = function populateMessageBody(oMessage) { if (oMessage) { - if (Remote_User_Ajax__WEBPACK_IMPORTED_MODULE_31__[/* default */ "a"].message(this.onMessageResponse, oMessage.folderFullNameRaw, oMessage.uid)) { + if (Remote_User_Ajax__WEBPACK_IMPORTED_MODULE_30__[/* default */ "a"].message(this.onMessageResponse, oMessage.folderFullNameRaw, oMessage.uid)) { this.messageCurrentLoading(true); } } @@ -5681,14 +5659,14 @@ var MessageUserStore = /*#__PURE__*/function () { this.hideMessageBodies(); this.messageCurrentLoading(false); - if (Common_Enums__WEBPACK_IMPORTED_MODULE_13__["StorageResultType"].Success === sResult && oData && oData.Result) { + if (Common_Enums__WEBPACK_IMPORTED_MODULE_12__["StorageResultType"].Success === sResult && oData && oData.Result) { this.setMessage(oData, bCached); - } else if (Common_Enums__WEBPACK_IMPORTED_MODULE_13__["StorageResultType"].Unload === sResult) { + } else if (Common_Enums__WEBPACK_IMPORTED_MODULE_12__["StorageResultType"].Unload === sResult) { this.message(null); this.messageError(''); - } else if (Common_Enums__WEBPACK_IMPORTED_MODULE_13__["StorageResultType"].Abort !== sResult) { + } else if (Common_Enums__WEBPACK_IMPORTED_MODULE_12__["StorageResultType"].Abort !== sResult) { this.message(null); - this.messageError(oData && oData.ErrorCode ? Object(Common_Translator__WEBPACK_IMPORTED_MODULE_19__["getNotification"])(oData.ErrorCode) : Object(Common_Translator__WEBPACK_IMPORTED_MODULE_19__["getNotification"])(Common_Enums__WEBPACK_IMPORTED_MODULE_13__["Notification"].UnknownError)); + this.messageError(oData && oData.ErrorCode ? Object(Common_Translator__WEBPACK_IMPORTED_MODULE_18__["getNotification"])(oData.ErrorCode) : Object(Common_Translator__WEBPACK_IMPORTED_MODULE_18__["getNotification"])(Common_Enums__WEBPACK_IMPORTED_MODULE_12__["Notification"].UnknownError)); } } /** @@ -5698,31 +5676,31 @@ var MessageUserStore = /*#__PURE__*/function () { ; _proto.calculateMessageListHash = function calculateMessageListHash(list) { - return _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_5___default()(___WEBPACK_IMPORTED_MODULE_10___default.a).call(___WEBPACK_IMPORTED_MODULE_10___default.a, list, function (message) { + return _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_2___default()(___WEBPACK_IMPORTED_MODULE_9___default.a).call(___WEBPACK_IMPORTED_MODULE_9___default.a, list, function (message) { return '' + message.hash + '_' + message.threadsLen() + '_' + message.flagHash(); }).join('|'); }; _proto.setMessageList = function setMessageList(data, cached) { - if (data && data.Result && 'Collection/MessageCollection' === data.Result['@Object'] && data.Result['@Collection'] && Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["isArray"])(data.Result['@Collection'])) { + if (data && data.Result && 'Collection/MessageCollection' === data.Result['@Object'] && data.Result['@Collection'] && Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["isArray"])(data.Result['@Collection'])) { var newCount = 0, unreadCountChange = false; var list = [], - utc = Object(Common_Momentor__WEBPACK_IMPORTED_MODULE_20__["momentNowUnix"])(), - iCount = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["pInt"])(data.Result.MessageResultCount), - iOffset = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["pInt"])(data.Result.Offset); - var folder = Object(Common_Cache__WEBPACK_IMPORTED_MODULE_15__[/* getFolderFromCacheList */ "e"])(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["isNormal"])(data.Result.Folder) ? data.Result.Folder : ''); + utc = Object(Common_Momentor__WEBPACK_IMPORTED_MODULE_19__["momentNowUnix"])(), + iCount = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["pInt"])(data.Result.MessageResultCount), + iOffset = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["pInt"])(data.Result.Offset); + var folder = Object(Common_Cache__WEBPACK_IMPORTED_MODULE_14__[/* getFolderFromCacheList */ "e"])(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["isNormal"])(data.Result.Folder) ? data.Result.Folder : ''); if (folder && !cached) { folder.interval = utc; - Object(Common_Cache__WEBPACK_IMPORTED_MODULE_15__[/* setFolderHash */ "q"])(data.Result.Folder, data.Result.FolderHash); + Object(Common_Cache__WEBPACK_IMPORTED_MODULE_14__[/* setFolderHash */ "q"])(data.Result.Folder, data.Result.FolderHash); - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["isNormal"])(data.Result.MessageCount)) { + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["isNormal"])(data.Result.MessageCount)) { folder.messageCountAll(data.Result.MessageCount); } - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["isNormal"])(data.Result.MessageUnseenCount)) { - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["pInt"])(folder.messageCountUnread()) !== Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["pInt"])(data.Result.MessageUnseenCount)) { + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["isNormal"])(data.Result.MessageUnseenCount)) { + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["pInt"])(folder.messageCountUnread()) !== Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["pInt"])(data.Result.MessageUnseenCount)) { unreadCountChange = true; } @@ -5733,15 +5711,15 @@ var MessageUserStore = /*#__PURE__*/function () { } if (unreadCountChange && folder) { - Object(Common_Cache__WEBPACK_IMPORTED_MODULE_15__[/* clearMessageFlagsFromCacheByFolder */ "c"])(folder.fullNameRaw); + Object(Common_Cache__WEBPACK_IMPORTED_MODULE_14__[/* clearMessageFlagsFromCacheByFolder */ "c"])(folder.fullNameRaw); } - ___WEBPACK_IMPORTED_MODULE_10___default.a.each(data.Result['@Collection'], function (jsonMessage) { + ___WEBPACK_IMPORTED_MODULE_9___default.a.each(data.Result['@Collection'], function (jsonMessage) { if (jsonMessage && 'Object/Message' === jsonMessage['@Object']) { - var message = Model_Message__WEBPACK_IMPORTED_MODULE_22__[/* MessageModel */ "a"].newInstanceFromJson(jsonMessage); + var message = Model_Message__WEBPACK_IMPORTED_MODULE_21__[/* MessageModel */ "a"].newInstanceFromJson(jsonMessage); if (message) { - if (Object(Common_Cache__WEBPACK_IMPORTED_MODULE_15__[/* hasNewMessageAndRemoveFromCache */ "l"])(message.folderFullNameRaw, message.uid) && 5 >= newCount) { + if (Object(Common_Cache__WEBPACK_IMPORTED_MODULE_14__[/* hasNewMessageAndRemoveFromCache */ "l"])(message.folderFullNameRaw, message.uid) && 5 >= newCount) { newCount += 1; message.newForAnimation(true); } @@ -5749,9 +5727,9 @@ var MessageUserStore = /*#__PURE__*/function () { message.deleted(false); if (cached) { - Object(Common_Cache__WEBPACK_IMPORTED_MODULE_15__[/* initMessageFlagsFromCache */ "n"])(message); + Object(Common_Cache__WEBPACK_IMPORTED_MODULE_14__[/* initMessageFlagsFromCache */ "n"])(message); } else { - Object(Common_Cache__WEBPACK_IMPORTED_MODULE_15__[/* storeMessageFlagsToCache */ "u"])(message); + Object(Common_Cache__WEBPACK_IMPORTED_MODULE_14__[/* storeMessageFlagsToCache */ "u"])(message); } list.push(message); @@ -5760,25 +5738,25 @@ var MessageUserStore = /*#__PURE__*/function () { }); this.messageListCount(iCount); - this.messageListSearch(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["isNormal"])(data.Result.Search) ? data.Result.Search : ''); - this.messageListPage(window__WEBPACK_IMPORTED_MODULE_9___default.a.Math.ceil(iOffset / Stores_User_Settings__WEBPACK_IMPORTED_MODULE_28__[/* default */ "a"].messagesPerPage() + 1)); - this.messageListThreadUid(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["isNormal"])(data.Result.ThreadUid) ? Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["pString"])(data.Result.ThreadUid) : ''); - this.messageListEndFolder(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_14__["isNormal"])(data.Result.Folder) ? data.Result.Folder : ''); + this.messageListSearch(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["isNormal"])(data.Result.Search) ? data.Result.Search : ''); + this.messageListPage(window__WEBPACK_IMPORTED_MODULE_8___default.a.Math.ceil(iOffset / Stores_User_Settings__WEBPACK_IMPORTED_MODULE_27__[/* default */ "a"].messagesPerPage() + 1)); + this.messageListThreadUid(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["isNormal"])(data.Result.ThreadUid) ? Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["pString"])(data.Result.ThreadUid) : ''); + this.messageListEndFolder(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_13__["isNormal"])(data.Result.Folder) ? data.Result.Folder : ''); this.messageListEndSearch(this.messageListSearch()); this.messageListEndThreadUid(this.messageListThreadUid()); this.messageListEndPage(this.messageListPage()); this.messageListDisableAutoSelect(true); this.messageList(list); this.messageListIsNotCompleted(false); - Object(Common_Cache__WEBPACK_IMPORTED_MODULE_15__[/* clearNewMessageCache */ "d"])(); + Object(Common_Cache__WEBPACK_IMPORTED_MODULE_14__[/* clearNewMessageCache */ "d"])(); - if (folder && (cached || unreadCountChange || Stores_User_Settings__WEBPACK_IMPORTED_MODULE_28__[/* default */ "a"].useThreads())) { - Object(Helper_Apps_User__WEBPACK_IMPORTED_MODULE_30__[/* getApp */ "a"])().folderInformation(folder.fullNameRaw, list); + if (folder && (cached || unreadCountChange || Stores_User_Settings__WEBPACK_IMPORTED_MODULE_27__[/* default */ "a"].useThreads())) { + Object(Helper_Apps_User__WEBPACK_IMPORTED_MODULE_29__[/* getApp */ "a"])().folderInformation(folder.fullNameRaw, list); } } else { this.messageListCount(0); this.messageList([]); - this.messageListError(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_19__["getNotification"])(data && data.ErrorCode ? data.ErrorCode : Common_Enums__WEBPACK_IMPORTED_MODULE_13__["Notification"].CantGetMessageList)); + this.messageListError(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_18__["getNotification"])(data && data.ErrorCode ? data.ErrorCode : Common_Enums__WEBPACK_IMPORTED_MODULE_12__["Notification"].CantGetMessageList)); } }; @@ -6191,10 +6169,10 @@ function storeMessageFlagsToCacheBySetAction(folder, uid, setAction) { /* unused harmony export about */ /* unused harmony export admin */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return mailBox; }); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec */ 45); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.replace */ 57); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ 45); +/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ 59); +/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var window__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! window */ 4); /* harmony import */ var window__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/Utils */ 2); @@ -6634,26 +6612,23 @@ function mailBox(folder, page, search, threadUid) { /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.join */ 75); -/* harmony import */ var core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/index-of */ 30); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 18); +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); +/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.join.js */ 77); +/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 17); /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Common_Consts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Common/Consts */ 25); -/* harmony import */ var Common_Cache__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Common/Cache */ 14); -/* harmony import */ var Common_Links__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Common/Links */ 15); -/* harmony import */ var Common_Base64__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Common/Base64 */ 398); -/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Storage/Settings */ 5); -/* harmony import */ var Stores_User_App__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Stores/User/App */ 31); -/* harmony import */ var Stores_User_Settings__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! Stores/User/Settings */ 38); -/* harmony import */ var Helper_Apps_User__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! Helper/Apps/User */ 22); -/* harmony import */ var Remote_AbstractAjax__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! Remote/AbstractAjax */ 268); - +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Utils */ 2); +/* harmony import */ var Common_Consts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Consts */ 24); +/* harmony import */ var Common_Cache__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Common/Cache */ 14); +/* harmony import */ var Common_Links__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Common/Links */ 15); +/* harmony import */ var Common_Base64__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Common/Base64 */ 406); +/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Storage/Settings */ 5); +/* harmony import */ var Stores_User_App__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Stores/User/App */ 27); +/* harmony import */ var Stores_User_Settings__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Stores/User/Settings */ 35); +/* harmony import */ var Helper_Apps_User__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! Helper/Apps/User */ 21); +/* harmony import */ var Remote_AbstractAjax__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! Remote/AbstractAjax */ 304); @@ -6670,7 +6645,7 @@ function mailBox(folder, page, search, threadUid) { var RemoteUserAjax = /*#__PURE__*/function (_AbstractAjaxRemote) { - Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(RemoteUserAjax, _AbstractAjaxRemote); + Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(RemoteUserAjax, _AbstractAjaxRemote); function RemoteUserAjax() { var _this; @@ -6688,11 +6663,11 @@ var RemoteUserAjax = /*#__PURE__*/function (_AbstractAjaxRemote) { _proto.folders = function folders(fCallback) { this.defaultRequest(fCallback, 'Folders', { - 'SentFolder': Storage_Settings__WEBPACK_IMPORTED_MODULE_10__["settingsGet"]('SentFolder'), - 'DraftFolder': Storage_Settings__WEBPACK_IMPORTED_MODULE_10__["settingsGet"]('DraftFolder'), - 'SpamFolder': Storage_Settings__WEBPACK_IMPORTED_MODULE_10__["settingsGet"]('SpamFolder'), - 'TrashFolder': Storage_Settings__WEBPACK_IMPORTED_MODULE_10__["settingsGet"]('TrashFolder'), - 'ArchiveFolder': Storage_Settings__WEBPACK_IMPORTED_MODULE_10__["settingsGet"]('ArchiveFolder') + 'SentFolder': Storage_Settings__WEBPACK_IMPORTED_MODULE_9__["settingsGet"]('SentFolder'), + 'DraftFolder': Storage_Settings__WEBPACK_IMPORTED_MODULE_9__["settingsGet"]('DraftFolder'), + 'SpamFolder': Storage_Settings__WEBPACK_IMPORTED_MODULE_9__["settingsGet"]('SpamFolder'), + 'TrashFolder': Storage_Settings__WEBPACK_IMPORTED_MODULE_9__["settingsGet"]('TrashFolder'), + 'ArchiveFolder': Storage_Settings__WEBPACK_IMPORTED_MODULE_9__["settingsGet"]('ArchiveFolder') }, null, '', ['Folders']); } /** @@ -6786,7 +6761,7 @@ var RemoteUserAjax = /*#__PURE__*/function (_AbstractAjaxRemote) { ; _proto.contactsSync = function contactsSync(fCallback) { - this.defaultRequest(fCallback, 'ContactsSync', null, Common_Consts__WEBPACK_IMPORTED_MODULE_6__[/* CONTACTS_SYNC_AJAX_TIMEOUT */ "d"]); + this.defaultRequest(fCallback, 'ContactsSync', null, Common_Consts__WEBPACK_IMPORTED_MODULE_5__[/* CONTACTS_SYNC_AJAX_TIMEOUT */ "d"]); } /** * @param {?Function} fCallback @@ -6909,8 +6884,8 @@ var RemoteUserAjax = /*#__PURE__*/function (_AbstractAjaxRemote) { _proto.filtersSave = function filtersSave(fCallback, filters, raw, isRawIsActive) { this.defaultRequest(fCallback, 'FiltersSave', { 'Raw': raw, - 'RawIsActive': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["boolToAjax"])(isRawIsActive), - 'Filters': _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_2___default()(___WEBPACK_IMPORTED_MODULE_4___default.a).call(___WEBPACK_IMPORTED_MODULE_4___default.a, filters, function (item) { + 'RawIsActive': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["boolToAjax"])(isRawIsActive), + 'Filters': _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_2___default()(___WEBPACK_IMPORTED_MODULE_3___default.a).call(___WEBPACK_IMPORTED_MODULE_3___default.a, filters, function (item) { return item.toJson(); }) }); @@ -7000,13 +6975,13 @@ var RemoteUserAjax = /*#__PURE__*/function (_AbstractAjaxRemote) { bSilent = false; } - sFolderFullNameRaw = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["pString"])(sFolderFullNameRaw); - var folderHash = Object(Common_Cache__WEBPACK_IMPORTED_MODULE_7__[/* getFolderHash */ "g"])(sFolderFullNameRaw), - useThreads = Stores_User_App__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].threadsAllowed() && Stores_User_Settings__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"].useThreads(), - inboxUidNext = Object(Common_Cache__WEBPACK_IMPORTED_MODULE_7__[/* getFolderInboxName */ "h"])() === sFolderFullNameRaw ? Object(Common_Cache__WEBPACK_IMPORTED_MODULE_7__[/* getFolderUidNext */ "i"])(sFolderFullNameRaw) : ''; + sFolderFullNameRaw = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["pString"])(sFolderFullNameRaw); + var folderHash = Object(Common_Cache__WEBPACK_IMPORTED_MODULE_6__[/* getFolderHash */ "g"])(sFolderFullNameRaw), + useThreads = Stores_User_App__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].threadsAllowed() && Stores_User_Settings__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].useThreads(), + inboxUidNext = Object(Common_Cache__WEBPACK_IMPORTED_MODULE_6__[/* getFolderInboxName */ "h"])() === sFolderFullNameRaw ? Object(Common_Cache__WEBPACK_IMPORTED_MODULE_6__[/* getFolderUidNext */ "i"])(sFolderFullNameRaw) : ''; - if ('' !== folderHash && ('' === sSearch || -1 === _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_1___default()(sSearch).call(sSearch, 'is:'))) { - return this.defaultRequest(fCallback, 'MessageList', {}, '' === sSearch ? Common_Consts__WEBPACK_IMPORTED_MODULE_6__[/* DEFAULT_AJAX_TIMEOUT */ "g"] : Common_Consts__WEBPACK_IMPORTED_MODULE_6__[/* SEARCH_AJAX_TIMEOUT */ "m"], 'MessageList/' + Object(Common_Links__WEBPACK_IMPORTED_MODULE_8__[/* subQueryPrefix */ "E"])() + '/' + Common_Base64__WEBPACK_IMPORTED_MODULE_9__[/* urlsafe_encode */ "a"]([sFolderFullNameRaw, iOffset, iLimit, sSearch, Stores_User_App__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].projectHash(), folderHash, inboxUidNext, useThreads ? '1' : '0', useThreads ? sThreadUid : ''].join(String.fromCharCode(0))), bSilent ? [] : ['MessageList']); + if ('' !== folderHash && ('' === sSearch || -1 === sSearch.indexOf('is:'))) { + return this.defaultRequest(fCallback, 'MessageList', {}, '' === sSearch ? Common_Consts__WEBPACK_IMPORTED_MODULE_5__[/* DEFAULT_AJAX_TIMEOUT */ "g"] : Common_Consts__WEBPACK_IMPORTED_MODULE_5__[/* SEARCH_AJAX_TIMEOUT */ "m"], 'MessageList/' + Object(Common_Links__WEBPACK_IMPORTED_MODULE_7__[/* subQueryPrefix */ "E"])() + '/' + Common_Base64__WEBPACK_IMPORTED_MODULE_8__[/* urlsafe_encode */ "a"]([sFolderFullNameRaw, iOffset, iLimit, sSearch, Stores_User_App__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].projectHash(), folderHash, inboxUidNext, useThreads ? '1' : '0', useThreads ? sThreadUid : ''].join(String.fromCharCode(0))), bSilent ? [] : ['MessageList']); } return this.defaultRequest(fCallback, 'MessageList', { @@ -7017,7 +6992,7 @@ var RemoteUserAjax = /*#__PURE__*/function (_AbstractAjaxRemote) { UidNext: inboxUidNext, UseThreads: useThreads ? '1' : '0', ThreadUid: useThreads ? sThreadUid : '' - }, '' === sSearch ? Common_Consts__WEBPACK_IMPORTED_MODULE_6__[/* DEFAULT_AJAX_TIMEOUT */ "g"] : Common_Consts__WEBPACK_IMPORTED_MODULE_6__[/* SEARCH_AJAX_TIMEOUT */ "m"], '', bSilent ? [] : ['MessageList']); + }, '' === sSearch ? Common_Consts__WEBPACK_IMPORTED_MODULE_5__[/* DEFAULT_AJAX_TIMEOUT */ "g"] : Common_Consts__WEBPACK_IMPORTED_MODULE_5__[/* SEARCH_AJAX_TIMEOUT */ "m"], '', bSilent ? [] : ['MessageList']); } /** * @param {?Function} fCallback @@ -7039,11 +7014,11 @@ var RemoteUserAjax = /*#__PURE__*/function (_AbstractAjaxRemote) { ; _proto.message = function message(fCallback, sFolderFullNameRaw, iUid) { - sFolderFullNameRaw = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["pString"])(sFolderFullNameRaw); - iUid = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["pInt"])(iUid); + sFolderFullNameRaw = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["pString"])(sFolderFullNameRaw); + iUid = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["pInt"])(iUid); - if (Object(Common_Cache__WEBPACK_IMPORTED_MODULE_7__[/* getFolderFromCacheList */ "e"])(sFolderFullNameRaw) && 0 < iUid) { - this.defaultRequest(fCallback, 'Message', {}, null, 'Message/' + Object(Common_Links__WEBPACK_IMPORTED_MODULE_8__[/* subQueryPrefix */ "E"])() + '/' + Common_Base64__WEBPACK_IMPORTED_MODULE_9__[/* urlsafe_encode */ "a"]([sFolderFullNameRaw, iUid, Stores_User_App__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].projectHash(), Stores_User_App__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].threadsAllowed() && Stores_User_Settings__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"].useThreads() ? '1' : '0'].join(String.fromCharCode(0))), ['Message']); + if (Object(Common_Cache__WEBPACK_IMPORTED_MODULE_6__[/* getFolderFromCacheList */ "e"])(sFolderFullNameRaw) && 0 < iUid) { + this.defaultRequest(fCallback, 'Message', {}, null, 'Message/' + Object(Common_Links__WEBPACK_IMPORTED_MODULE_7__[/* subQueryPrefix */ "E"])() + '/' + Common_Base64__WEBPACK_IMPORTED_MODULE_8__[/* urlsafe_encode */ "a"]([sFolderFullNameRaw, iUid, Stores_User_App__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].projectHash(), Stores_User_App__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].threadsAllowed() && Stores_User_Settings__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].useThreads() ? '1' : '0'].join(String.fromCharCode(0))), ['Message']); return true; } @@ -7088,17 +7063,17 @@ var RemoteUserAjax = /*#__PURE__*/function (_AbstractAjaxRemote) { var request = true; var uids = []; - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["isArray"])(list) && 0 < list.length) { + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["isArray"])(list) && 0 < list.length) { request = false; - ___WEBPACK_IMPORTED_MODULE_4___default.a.each(list, function (messageListItem) { - if (!Object(Common_Cache__WEBPACK_IMPORTED_MODULE_7__[/* getMessageFlagsFromCache */ "j"])(messageListItem.folderFullNameRaw, messageListItem.uid)) { + ___WEBPACK_IMPORTED_MODULE_3___default.a.each(list, function (messageListItem) { + if (!Object(Common_Cache__WEBPACK_IMPORTED_MODULE_6__[/* getMessageFlagsFromCache */ "j"])(messageListItem.folderFullNameRaw, messageListItem.uid)) { uids.push(messageListItem.uid); } if (0 < messageListItem.threads().length) { - ___WEBPACK_IMPORTED_MODULE_4___default.a.each(messageListItem.threads(), function (uid) { - if (!Object(Common_Cache__WEBPACK_IMPORTED_MODULE_7__[/* getMessageFlagsFromCache */ "j"])(messageListItem.folderFullNameRaw, uid)) { + ___WEBPACK_IMPORTED_MODULE_3___default.a.each(messageListItem.threads(), function (uid) { + if (!Object(Common_Cache__WEBPACK_IMPORTED_MODULE_6__[/* getMessageFlagsFromCache */ "j"])(messageListItem.folderFullNameRaw, uid)) { uids.push(uid); } }); @@ -7113,11 +7088,11 @@ var RemoteUserAjax = /*#__PURE__*/function (_AbstractAjaxRemote) { if (request) { this.defaultRequest(fCallback, 'FolderInformation', { 'Folder': folder, - 'FlagsUids': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["isArray"])(uids) ? uids.join(',') : '', - 'UidNext': Object(Common_Cache__WEBPACK_IMPORTED_MODULE_7__[/* getFolderInboxName */ "h"])() === folder ? Object(Common_Cache__WEBPACK_IMPORTED_MODULE_7__[/* getFolderUidNext */ "i"])(folder) : '' + 'FlagsUids': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["isArray"])(uids) ? uids.join(',') : '', + 'UidNext': Object(Common_Cache__WEBPACK_IMPORTED_MODULE_6__[/* getFolderInboxName */ "h"])() === folder ? Object(Common_Cache__WEBPACK_IMPORTED_MODULE_6__[/* getFolderUidNext */ "i"])(folder) : '' }); - } else if (Stores_User_Settings__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"].useThreads()) { - Object(Helper_Apps_User__WEBPACK_IMPORTED_MODULE_13__[/* getApp */ "a"])().reloadFlagsCurrentMessageListAndMessageFromCache(); + } else if (Stores_User_Settings__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].useThreads()) { + Object(Helper_Apps_User__WEBPACK_IMPORTED_MODULE_12__[/* getApp */ "a"])().reloadFlagsCurrentMessageListAndMessageFromCache(); } } /** @@ -7227,7 +7202,7 @@ var RemoteUserAjax = /*#__PURE__*/function (_AbstractAjaxRemote) { 'References': sReferences, 'MarkAsImportant': bMarkAsImportant ? '1' : '0', 'Attachments': aAttachments - }, Common_Consts__WEBPACK_IMPORTED_MODULE_6__[/* SAVE_MESSAGE_AJAX_TIMEOUT */ "l"]); + }, Common_Consts__WEBPACK_IMPORTED_MODULE_5__[/* SAVE_MESSAGE_AJAX_TIMEOUT */ "l"]); } /** * @param {?Function} fCallback @@ -7291,7 +7266,7 @@ var RemoteUserAjax = /*#__PURE__*/function (_AbstractAjaxRemote) { 'ReadReceiptRequest': bRequestReadReceipt ? '1' : '0', 'MarkAsImportant': bMarkAsImportant ? '1' : '0', 'Attachments': aAttachments - }, Common_Consts__WEBPACK_IMPORTED_MODULE_6__[/* SEND_MESSAGE_AJAX_TIMEOUT */ "n"]); + }, Common_Consts__WEBPACK_IMPORTED_MODULE_5__[/* SEND_MESSAGE_AJAX_TIMEOUT */ "n"]); } /** * @param {?Function} fCallback @@ -7466,7 +7441,7 @@ var RemoteUserAjax = /*#__PURE__*/function (_AbstractAjaxRemote) { _proto.contactSave = function contactSave(fCallback, sRequestUid, sUid, aProperties) { this.defaultRequest(fCallback, 'ContactSave', { 'RequestUid': sRequestUid, - 'Uid': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["trim"])(sUid), + 'Uid': Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["trim"])(sUid), 'Properties': aProperties }); } @@ -7560,41 +7535,12 @@ var RemoteUserAjax = /*#__PURE__*/function (_AbstractAjaxRemote) { }; return RemoteUserAjax; -}(Remote_AbstractAjax__WEBPACK_IMPORTED_MODULE_14__[/* AbstractAjaxRemote */ "a"]); +}(Remote_AbstractAjax__WEBPACK_IMPORTED_MODULE_13__[/* AbstractAjaxRemote */ "a"]); /* harmony default export */ __webpack_exports__["a"] = (new RemoteUserAjax()); /***/ }), /* 17 */ -/*!***************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/helpers/esm/defineProperty.js ***! - \***************************************************************************/ -/*! exports provided: default */ -/*! exports used: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _defineProperty; }); -/* harmony import */ var _core_js_object_define_property__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core-js/object/define-property */ 163); -/* harmony import */ var _core_js_object_define_property__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_core_js_object_define_property__WEBPACK_IMPORTED_MODULE_0__); - -function _defineProperty(obj, key, value) { - if (key in obj) { - _core_js_object_define_property__WEBPACK_IMPORTED_MODULE_0___default()(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; -} - -/***/ }), -/* 18 */ /*!****************************************************************************!*\ !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/map.js ***! \****************************************************************************/ @@ -7602,21 +7548,10 @@ function _defineProperty(obj, key, value) { /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! core-js-pure/stable/instance/map */ 345); - -/***/ }), -/* 19 */ -/*!**************************************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor.js ***! - \**************************************************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/stable/object/get-own-property-descriptor */ 369); +module.exports = __webpack_require__(/*! core-js-pure/stable/instance/map */ 349); /***/ }), -/* 20 */ +/* 18 */ /*!*************************************************************************************!*\ !*** ./node_modules/@babel/runtime-corejs3/helpers/esm/applyDecoratedDescriptor.js ***! \*************************************************************************************/ @@ -7626,18 +7561,18 @@ module.exports = __webpack_require__(/*! core-js-pure/stable/object/get-own-prop "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _applyDecoratedDescriptor; }); -/* harmony import */ var _core_js_object_define_property__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../core-js/object/define-property */ 163); -/* harmony import */ var _core_js_object_define_property__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_core_js_object_define_property__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _core_js_instance_slice__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../core-js/instance/slice */ 263); -/* harmony import */ var _core_js_instance_slice__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_core_js_instance_slice__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _core_js_instance_reverse__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../core-js/instance/reverse */ 264); -/* harmony import */ var _core_js_instance_reverse__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_core_js_instance_reverse__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _core_js_instance_reduce__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../core-js/instance/reduce */ 265); -/* harmony import */ var _core_js_instance_reduce__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_core_js_instance_reduce__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _core_js_object_keys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../core-js/object/keys */ 266); -/* harmony import */ var _core_js_object_keys__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_core_js_object_keys__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _core_js_instance_for_each__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../core-js/instance/for-each */ 267); -/* harmony import */ var _core_js_instance_for_each__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_core_js_instance_for_each__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _babel_runtime_corejs3_core_js_instance_for_each__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js/instance/for-each */ 298); +/* harmony import */ var _babel_runtime_corejs3_core_js_instance_for_each__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_instance_for_each__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _babel_runtime_corejs3_core_js_object_keys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js/object/keys */ 299); +/* harmony import */ var _babel_runtime_corejs3_core_js_object_keys__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_object_keys__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _babel_runtime_corejs3_core_js_instance_reduce__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js/instance/reduce */ 300); +/* harmony import */ var _babel_runtime_corejs3_core_js_instance_reduce__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_instance_reduce__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _babel_runtime_corejs3_core_js_instance_reverse__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js/instance/reverse */ 301); +/* harmony import */ var _babel_runtime_corejs3_core_js_instance_reverse__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_instance_reverse__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _babel_runtime_corejs3_core_js_instance_slice__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js/instance/slice */ 302); +/* harmony import */ var _babel_runtime_corejs3_core_js_instance_slice__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_instance_slice__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _babel_runtime_corejs3_core_js_object_define_property__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js/object/define-property */ 303); +/* harmony import */ var _babel_runtime_corejs3_core_js_object_define_property__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_object_define_property__WEBPACK_IMPORTED_MODULE_5__); @@ -7649,7 +7584,7 @@ function _applyDecoratedDescriptor(target, property, decorators, descriptor, con var desc = {}; - _core_js_instance_for_each__WEBPACK_IMPORTED_MODULE_5___default()(_context = _core_js_object_keys__WEBPACK_IMPORTED_MODULE_4___default()(descriptor)).call(_context, function (key) { + _babel_runtime_corejs3_core_js_instance_for_each__WEBPACK_IMPORTED_MODULE_0___default()(_context = _babel_runtime_corejs3_core_js_object_keys__WEBPACK_IMPORTED_MODULE_1___default()(descriptor)).call(_context, function (key) { desc[key] = descriptor[key]; }); @@ -7660,7 +7595,7 @@ function _applyDecoratedDescriptor(target, property, decorators, descriptor, con desc.writable = true; } - desc = _core_js_instance_reduce__WEBPACK_IMPORTED_MODULE_3___default()(_context2 = _core_js_instance_reverse__WEBPACK_IMPORTED_MODULE_2___default()(_context3 = _core_js_instance_slice__WEBPACK_IMPORTED_MODULE_1___default()(decorators).call(decorators)).call(_context3)).call(_context2, function (desc, decorator) { + desc = _babel_runtime_corejs3_core_js_instance_reduce__WEBPACK_IMPORTED_MODULE_2___default()(_context2 = _babel_runtime_corejs3_core_js_instance_reverse__WEBPACK_IMPORTED_MODULE_3___default()(_context3 = _babel_runtime_corejs3_core_js_instance_slice__WEBPACK_IMPORTED_MODULE_4___default()(decorators).call(decorators)).call(_context3)).call(_context2, function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); @@ -7670,7 +7605,7 @@ function _applyDecoratedDescriptor(target, property, decorators, descriptor, con } if (desc.initializer === void 0) { - _core_js_object_define_property__WEBPACK_IMPORTED_MODULE_0___default()(target, property, desc); + _babel_runtime_corejs3_core_js_object_define_property__WEBPACK_IMPORTED_MODULE_5___default()(target, property, desc); desc = null; } @@ -7679,7 +7614,18 @@ function _applyDecoratedDescriptor(target, property, decorators, descriptor, con } /***/ }), -/* 21 */ +/* 19 */ +/*!**************************************************************************************************!*\ + !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor.js ***! + \**************************************************************************************************/ +/*! no static exports found */ +/*! exports used: default */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(/*! core-js-pure/stable/object/get-own-property-descriptor */ 390); + +/***/ }), +/* 20 */ /*!*****************************!*\ !*** external "window.key" ***! \*****************************/ @@ -7690,7 +7636,7 @@ function _applyDecoratedDescriptor(target, property, decorators, descriptor, con module.exports = window.key; /***/ }), -/* 22 */ +/* 21 */ /*!*********************************!*\ !*** ./dev/Helper/Apps/User.js ***! \*********************************/ @@ -7704,12 +7650,12 @@ module.exports = window.key; * @returns {AppUser} */ function getApp() { - return __webpack_require__(/*! App/User */ 395).default; + return __webpack_require__(/*! App/User */ 403).default; } /***/ }), -/* 23 */, -/* 24 */ +/* 22 */, +/* 23 */ /*!******************************!*\ !*** ./dev/Common/Events.js ***! \******************************/ @@ -7723,7 +7669,7 @@ function getApp() { /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! _ */ 3); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Common_Plugins__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Common/Plugins */ 39); +/* harmony import */ var Common_Plugins__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Common/Plugins */ 36); @@ -7768,7 +7714,7 @@ function pub(name, args) { } /***/ }), -/* 25 */ +/* 24 */ /*!******************************!*\ !*** ./dev/Common/Consts.js ***! \******************************/ @@ -7825,43 +7771,7 @@ var DATA_IMAGE_TRANSP_PIC = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAA var DATA_IMAGE_LAZY_PLACEHOLDER_PIC = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC'; /***/ }), -/* 26 */ -/*!*****************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/bind.js ***! - \*****************************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/stable/instance/bind */ 334); - -/***/ }), -/* 27 */ -/*!**************************************************!*\ - !*** ./node_modules/core-js/internals/global.js ***! - \**************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) { - return it && it.Math == Math && it; -}; - -// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 -module.exports = - // eslint-disable-next-line no-undef - check(typeof globalThis == 'object' && globalThis) || - check(typeof window == 'object' && window) || - check(typeof self == 'object' && self) || - check(typeof global == 'object' && global) || - // eslint-disable-next-line no-new-func - Function('return this')(); - -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ 124))) - -/***/ }), -/* 28 */ +/* 25 */ /*!***************************************!*\ !*** ./dev/Knoin/AbstractViewNext.js ***! \***************************************/ @@ -7871,35 +7781,26 @@ module.exports = "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AbstractViewNext; }); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/defineProperty */ 17); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Globals */ 6); - +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Common/Utils */ 2); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Common/Enums */ 0); +/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/Globals */ 6); var AbstractViewNext = /*#__PURE__*/function () { function AbstractViewNext() { - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this, "bDisabeCloseOnEsc", false); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this, "sDefaultKeyScope", Common_Enums__WEBPACK_IMPORTED_MODULE_3__["KeyState"].None); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this, "sCurrentKeyScope", Common_Enums__WEBPACK_IMPORTED_MODULE_3__["KeyState"].None); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this, "viewModelVisibility", ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(false)); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this, "modalVisibility", ko__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].observable(false).extend({ + this.bDisabeCloseOnEsc = false; + this.sDefaultKeyScope = Common_Enums__WEBPACK_IMPORTED_MODULE_2__["KeyState"].None; + this.sCurrentKeyScope = Common_Enums__WEBPACK_IMPORTED_MODULE_2__["KeyState"].None; + this.viewModelVisibility = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(false); + this.modalVisibility = ko__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].observable(false).extend({ rateLimit: 0 - })); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this, "viewModelName", ''); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this, "viewModelNames", []); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(this, "viewModelDom", null); + }); + this.viewModelName = ''; + this.viewModelNames = []; + this.viewModelDom = null; } var _proto = AbstractViewNext.prototype; @@ -7908,8 +7809,8 @@ var AbstractViewNext = /*#__PURE__*/function () { * @returns {void} */ _proto.storeAndSetKeyScope = function storeAndSetKeyScope() { - this.sCurrentKeyScope = Object(Common_Globals__WEBPACK_IMPORTED_MODULE_4__["keyScope"])(); - Object(Common_Globals__WEBPACK_IMPORTED_MODULE_4__["keyScope"])(this.sDefaultKeyScope); + this.sCurrentKeyScope = Object(Common_Globals__WEBPACK_IMPORTED_MODULE_3__["keyScope"])(); + Object(Common_Globals__WEBPACK_IMPORTED_MODULE_3__["keyScope"])(this.sDefaultKeyScope); } /** * @returns {void} @@ -7917,7 +7818,7 @@ var AbstractViewNext = /*#__PURE__*/function () { ; _proto.restoreKeyScope = function restoreKeyScope() { - Object(Common_Globals__WEBPACK_IMPORTED_MODULE_4__["keyScope"])(this.sCurrentKeyScope); + Object(Common_Globals__WEBPACK_IMPORTED_MODULE_3__["keyScope"])(this.sCurrentKeyScope); } /** * @returns {void} @@ -7927,12 +7828,12 @@ var AbstractViewNext = /*#__PURE__*/function () { _proto.registerPopupKeyDown = function registerPopupKeyDown() { var _this = this; - Common_Globals__WEBPACK_IMPORTED_MODULE_4__["$win"].on('keydown', function (event) { + Common_Globals__WEBPACK_IMPORTED_MODULE_3__["$win"].on('keydown', function (event) { if (event && _this.modalVisibility && _this.modalVisibility()) { - if (!_this.bDisabeCloseOnEsc && Common_Enums__WEBPACK_IMPORTED_MODULE_3__["EventKeyCode"].Esc === event.keyCode) { - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_2__["delegateRun"])(_this, 'cancelCommand'); + if (!_this.bDisabeCloseOnEsc && Common_Enums__WEBPACK_IMPORTED_MODULE_2__["EventKeyCode"].Esc === event.keyCode) { + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_1__["delegateRun"])(_this, 'cancelCommand'); return false; - } else if (Common_Enums__WEBPACK_IMPORTED_MODULE_3__["EventKeyCode"].Backspace === event.keyCode && !Object(Common_Utils__WEBPACK_IMPORTED_MODULE_2__["inFocus"])()) { + } else if (Common_Enums__WEBPACK_IMPORTED_MODULE_2__["EventKeyCode"].Backspace === event.keyCode && !Object(Common_Utils__WEBPACK_IMPORTED_MODULE_1__["inFocus"])()) { return false; } } @@ -7951,7 +7852,7 @@ var AbstractViewNext = /*#__PURE__*/function () { }(); /***/ }), -/* 29 */ +/* 26 */ /*!******************************!*\ !*** ./dev/Stores/Social.js ***! \******************************/ @@ -8065,18 +7966,7 @@ var SocialStore = /*#__PURE__*/function () { /* harmony default export */ __webpack_exports__["a"] = (new SocialStore()); /***/ }), -/* 30 */ -/*!*********************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/index-of.js ***! - \*********************************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/stable/instance/index-of */ 321); - -/***/ }), -/* 31 */ +/* 27 */ /*!********************************!*\ !*** ./dev/Stores/User/App.js ***! \********************************/ @@ -8091,7 +7981,7 @@ module.exports = __webpack_require__(/*! core-js-pure/stable/instance/index-of * /* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/Globals */ 6); /* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Utils */ 2); /* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Storage/Settings */ 5); -/* harmony import */ var Stores_AbstractApp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Stores/AbstractApp */ 262); +/* harmony import */ var Stores_AbstractApp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Stores/AbstractApp */ 297); @@ -8178,35 +8068,18 @@ var AppUserStore = /*#__PURE__*/function (_AbstractAppStore) { /* harmony default export */ __webpack_exports__["a"] = (new AppUserStore()); /***/ }), -/* 32 */ -/*!*************************************************************!*\ - !*** ./node_modules/core-js/internals/well-known-symbol.js ***! - \*************************************************************/ +/* 28 */ +/*!*******************************************************************************!*\ + !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/filter.js ***! + \*******************************************************************************/ /*! no static exports found */ -/*! all exports used */ +/*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { -var global = __webpack_require__(/*! ../internals/global */ 27); -var shared = __webpack_require__(/*! ../internals/shared */ 128); -var has = __webpack_require__(/*! ../internals/has */ 42); -var uid = __webpack_require__(/*! ../internals/uid */ 129); -var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ 131); -var USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ 185); - -var WellKnownSymbolsStore = shared('wks'); -var Symbol = global.Symbol; -var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid; - -module.exports = function (name) { - if (!has(WellKnownSymbolsStore, name)) { - if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name]; - else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); - } return WellKnownSymbolsStore[name]; -}; - +module.exports = __webpack_require__(/*! core-js-pure/stable/instance/filter */ 359); /***/ }), -/* 33 */ +/* 29 */ /*!**********************************************************************************!*\ !*** ./node_modules/@babel/runtime-corejs3/helpers/esm/assertThisInitialized.js ***! \**********************************************************************************/ @@ -8225,18 +8098,58 @@ function _assertThisInitialized(self) { } /***/ }), -/* 34 */ -/*!*******************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/filter.js ***! - \*******************************************************************************/ +/* 30 */ +/*!**************************************************!*\ + !*** ./node_modules/core-js/internals/global.js ***! + \**************************************************/ /*! no static exports found */ -/*! exports used: default */ +/*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! core-js-pure/stable/instance/filter */ 362); +/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) { + return it && it.Math == Math && it; +}; + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +module.exports = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof global == 'object' && global) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || Function('return this')(); + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ 127))) /***/ }), -/* 35 */ +/* 31 */ +/*!*******************************************************!*\ + !*** ./node_modules/core-js-pure/internals/global.js ***! + \*******************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) { + return it && it.Math == Math && it; +}; + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +module.exports = + // eslint-disable-next-line no-undef + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + check(typeof self == 'object' && self) || + check(typeof global == 'object' && global) || + // eslint-disable-next-line no-new-func + (function () { return this; })() || Function('return this')(); + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ 127))) + +/***/ }), +/* 32 */ /*!***********************************!*\ !*** ./dev/Component/Abstract.js ***! \***********************************/ @@ -8247,15 +8160,13 @@ module.exports = __webpack_require__(/*! core-js-pure/stable/instance/filter */ "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AbstractComponent; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return componentExportHelper; }); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/for-each */ 70); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/defineProperty */ 17); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $ */ 8); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Translator */ 9); - +/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ 152); +/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $ */ 8); +/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/Utils */ 2); +/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Translator */ 9); @@ -8264,15 +8175,13 @@ module.exports = __webpack_require__(/*! core-js-pure/stable/instance/filter */ var AbstractComponent = /*#__PURE__*/function () { function AbstractComponent() { - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(this, "disposable", []); + this.disposable = []; } var _proto = AbstractComponent.prototype; _proto.dispose = function dispose() { - var _context; - - _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_0___default()(_context = this.disposable).call(_context, function (funcToDispose) { + this.disposable.forEach(function (funcToDispose) { if (funcToDispose && funcToDispose.dispose) { funcToDispose.dispose(); } @@ -8304,10 +8213,10 @@ var componentExportHelper = function componentExportHelper(ClassObject, template if (componentInfo && componentInfo.element) { params.component = componentInfo; - params.element = $__WEBPACK_IMPORTED_MODULE_2___default()(componentInfo.element); - Object(Common_Translator__WEBPACK_IMPORTED_MODULE_5__["i18nToNodes"])(params.element); + params.element = $__WEBPACK_IMPORTED_MODULE_1___default()(componentInfo.element); + Object(Common_Translator__WEBPACK_IMPORTED_MODULE_4__["i18nToNodes"])(params.element); - if (!Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["isUnd"])(params.inline) && ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].unwrap(params.inline)) { + if (!Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["isUnd"])(params.inline) && ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].unwrap(params.inline)) { params.element.css('display', 'inline-block'); } } @@ -8321,43 +8230,128 @@ var componentExportHelper = function componentExportHelper(ClassObject, template /***/ }), -/* 36 */ -/*!*************************************************!*\ - !*** ./node_modules/core-js/internals/fails.js ***! - \*************************************************/ +/* 33 */ +/*!***************************************************************************!*\ + !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/set-timeout.js ***! + \***************************************************************************/ /*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = function (exec) { - try { - return !!exec(); - } catch (error) { - return true; - } -}; +/*! exports used: default */ +/***/ (function(module, exports, __webpack_require__) { +module.exports = __webpack_require__(/*! core-js-pure/stable/set-timeout */ 249); /***/ }), -/* 37 */ -/*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/an-object.js ***! - \*****************************************************/ +/* 34 */ +/*!*******************************************************!*\ + !*** ./node_modules/core-js-pure/internals/export.js ***! + \*******************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var isObject = __webpack_require__(/*! ../internals/is-object */ 44); +"use strict"; -module.exports = function (it) { - if (!isObject(it)) { - throw TypeError(String(it) + ' is not an object'); - } return it; +var global = __webpack_require__(/*! ../internals/global */ 31); +var getOwnPropertyDescriptor = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ 158).f; +var isForced = __webpack_require__(/*! ../internals/is-forced */ 188); +var path = __webpack_require__(/*! ../internals/path */ 51); +var bind = __webpack_require__(/*! ../internals/function-bind-context */ 116); +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 52); +var has = __webpack_require__(/*! ../internals/has */ 54); + +var wrapConstructor = function (NativeConstructor) { + var Wrapper = function (a, b, c) { + if (this instanceof NativeConstructor) { + switch (arguments.length) { + case 0: return new NativeConstructor(); + case 1: return new NativeConstructor(a); + case 2: return new NativeConstructor(a, b); + } return new NativeConstructor(a, b, c); + } return NativeConstructor.apply(this, arguments); + }; + Wrapper.prototype = NativeConstructor.prototype; + return Wrapper; +}; + +/* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.noTargetGet - prevent calling a getter on target +*/ +module.exports = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var PROTO = options.proto; + + var nativeSource = GLOBAL ? global : STATIC ? global[TARGET] : (global[TARGET] || {}).prototype; + + var target = GLOBAL ? path : path[TARGET] || (path[TARGET] = {}); + var targetPrototype = target.prototype; + + var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE; + var key, sourceProperty, targetProperty, nativeProperty, resultProperty, descriptor; + + for (key in source) { + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contains in native + USE_NATIVE = !FORCED && nativeSource && has(nativeSource, key); + + targetProperty = target[key]; + + if (USE_NATIVE) if (options.noTargetGet) { + descriptor = getOwnPropertyDescriptor(nativeSource, key); + nativeProperty = descriptor && descriptor.value; + } else nativeProperty = nativeSource[key]; + + // export native or implementation + sourceProperty = (USE_NATIVE && nativeProperty) ? nativeProperty : source[key]; + + if (USE_NATIVE && typeof targetProperty === typeof sourceProperty) continue; + + // bind timers to global for call from export context + if (options.bind && USE_NATIVE) resultProperty = bind(sourceProperty, global); + // wrap global constructors for prevent changs in this version + else if (options.wrap && USE_NATIVE) resultProperty = wrapConstructor(sourceProperty); + // make static versions for prototype methods + else if (PROTO && typeof sourceProperty == 'function') resultProperty = bind(Function.call, sourceProperty); + // default case + else resultProperty = sourceProperty; + + // add a flag to not completely full polyfills + if (options.sham || (sourceProperty && sourceProperty.sham) || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty(resultProperty, 'sham', true); + } + + target[key] = resultProperty; + + if (PROTO) { + VIRTUAL_PROTOTYPE = TARGET + 'Prototype'; + if (!has(path, VIRTUAL_PROTOTYPE)) { + createNonEnumerableProperty(path, VIRTUAL_PROTOTYPE, {}); + } + // export virtual prototype methods + path[VIRTUAL_PROTOTYPE][key] = sourceProperty; + // export real prototype methods + if (options.real && targetPrototype && !targetPrototype[key]) { + createNonEnumerableProperty(targetPrototype, key, sourceProperty); + } + } + } }; /***/ }), -/* 38 */ +/* 35 */ /*!*************************************!*\ !*** ./dev/Stores/User/Settings.js ***! \*************************************/ @@ -8366,16 +8360,16 @@ module.exports = function (it) { /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.timers */ 68); -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/set-timeout */ 33); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var window__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! window */ 4); /* harmony import */ var window__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var Common_Consts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/Consts */ 25); +/* harmony import */ var Common_Consts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/Consts */ 24); /* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Enums */ 0); /* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Globals */ 6); /* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Common_Events__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Common/Events */ 24); +/* harmony import */ var Common_Events__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Common/Events */ 23); /* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Storage/Settings */ 5); @@ -8444,7 +8438,7 @@ var SettingsUserStore = /*#__PURE__*/function () { window__WEBPACK_IMPORTED_MODULE_1___default.a.clearTimeout(_this2.iAutoLogoutTimer); if (0 < _this2.autoLogout() && !Storage_Settings__WEBPACK_IMPORTED_MODULE_8__["settingsGet"]('AccountSignMe')) { - _this2.iAutoLogoutTimer = window__WEBPACK_IMPORTED_MODULE_1___default.a.setTimeout(function () { + _this2.iAutoLogoutTimer = _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_0___default()(function () { Common_Events__WEBPACK_IMPORTED_MODULE_7__[/* pub */ "a"]('rl.auto-logout'); }, _this2.autoLogout() * Common_Enums__WEBPACK_IMPORTED_MODULE_4__["Magics"].Time1m); } @@ -8458,7 +8452,7 @@ var SettingsUserStore = /*#__PURE__*/function () { /* harmony default export */ __webpack_exports__["a"] = (new SettingsUserStore()); /***/ }), -/* 39 */ +/* 36 */ /*!*******************************!*\ !*** ./dev/Common/Plugins.js ***! \*******************************/ @@ -8580,6 +8574,83 @@ function settingsGet(pluginSection, name) { return plugins ? Object(Common_Utils__WEBPACK_IMPORTED_MODULE_1__["isUnd"])(plugins[name]) ? null : plugins[name] : null; } +/***/ }), +/* 37 */ +/*!*************************************************!*\ + !*** ./node_modules/core-js/internals/fails.js ***! + \*************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports) { + +module.exports = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } +}; + + +/***/ }), +/* 38 */ +/*!******************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/well-known-symbol.js ***! + \******************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(/*! ../internals/global */ 31); +var shared = __webpack_require__(/*! ../internals/shared */ 189); +var has = __webpack_require__(/*! ../internals/has */ 54); +var uid = __webpack_require__(/*! ../internals/uid */ 190); +var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ 193); +var USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ 262); + +var WellKnownSymbolsStore = shared('wks'); +var Symbol = global.Symbol; +var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid; + +module.exports = function (name) { + if (!has(WellKnownSymbolsStore, name)) { + if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name]; + else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore[name]; +}; + + +/***/ }), +/* 39 */ +/*!*************************************************************!*\ + !*** ./node_modules/core-js/internals/well-known-symbol.js ***! + \*************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(/*! ../internals/global */ 30); +var shared = __webpack_require__(/*! ../internals/shared */ 105); +var has = __webpack_require__(/*! ../internals/has */ 44); +var uid = __webpack_require__(/*! ../internals/uid */ 137); +var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ 138); +var USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ 214); + +var WellKnownSymbolsStore = shared('wks'); +var Symbol = global.Symbol; +var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid; + +module.exports = function (name) { + if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) { + if (NATIVE_SYMBOL && has(Symbol, name)) { + WellKnownSymbolsStore[name] = Symbol[name]; + } else { + WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); + } + } return WellKnownSymbolsStore[name]; +}; + + /***/ }), /* 40 */, /* 41 */ @@ -8591,26 +8662,23 @@ function settingsGet(pluginSection, name) { /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.join */ 75); -/* harmony import */ var core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 18); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/index-of */ 30); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find */ 12); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/filter */ 34); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! $ */ 8); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Common/Translator */ 9); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Stores_User_Account__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Stores/User/Account */ 46); -/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Knoin/Knoin */ 7); - +/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.join.js */ 77); +/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/filter */ 28); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find */ 12); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 17); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! $ */ 8); +/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Common/Translator */ 9); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Common/Utils */ 2); +/* harmony import */ var Stores_User_Account__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Stores/User/Account */ 46); +/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Knoin/Knoin */ 7); @@ -8627,17 +8695,17 @@ var PgpUserStore = /*#__PURE__*/function () { function PgpUserStore() { var _this = this; - this.capaOpenPGP = ko__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].observable(false); + this.capaOpenPGP = ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observable(false); this.openpgp = null; - this.openpgpkeys = ko__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].observableArray([]); + this.openpgpkeys = ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observableArray([]); this.openpgpKeyring = null; - this.openpgpkeysPublic = ko__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].computed(function () { - return _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_4___default()(___WEBPACK_IMPORTED_MODULE_6___default.a).call(___WEBPACK_IMPORTED_MODULE_6___default.a, _this.openpgpkeys(), function (item) { + this.openpgpkeysPublic = ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].computed(function () { + return _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_5___default.a).call(___WEBPACK_IMPORTED_MODULE_5___default.a, _this.openpgpkeys(), function (item) { return !!(item && !item.isPrivate); }); }); - this.openpgpkeysPrivate = ko__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].computed(function () { - return _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_4___default()(___WEBPACK_IMPORTED_MODULE_6___default.a).call(___WEBPACK_IMPORTED_MODULE_6___default.a, _this.openpgpkeys(), function (item) { + this.openpgpkeysPrivate = ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].computed(function () { + return _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_5___default.a).call(___WEBPACK_IMPORTED_MODULE_5___default.a, _this.openpgpkeys(), function (item) { return !!(item && item.isPrivate); }); }); @@ -8654,10 +8722,8 @@ var PgpUserStore = /*#__PURE__*/function () { }; _proto.findKeyByHex = function findKeyByHex(keys, hash) { - return _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_3___default()(___WEBPACK_IMPORTED_MODULE_6___default.a).call(___WEBPACK_IMPORTED_MODULE_6___default.a, keys, function (item) { - var _context; - - return hash && item && (hash === item.id || -1 < _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_2___default()(_context = item.ids).call(_context, hash)); + return _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_2___default()(___WEBPACK_IMPORTED_MODULE_5___default.a).call(___WEBPACK_IMPORTED_MODULE_5___default.a, keys, function (item) { + return hash && item && (hash === item.id || -1 < item.ids.indexOf(hash)); }); }; @@ -8670,10 +8736,8 @@ var PgpUserStore = /*#__PURE__*/function () { }; _proto.findPublicKeysByEmail = function findPublicKeysByEmail(email) { - return ___WEBPACK_IMPORTED_MODULE_6___default.a.compact(___WEBPACK_IMPORTED_MODULE_6___default.a.flatten(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_6___default.a).call(___WEBPACK_IMPORTED_MODULE_6___default.a, this.openpgpkeysPublic(), function (item) { - var _context2; - - var key = item && -1 < _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_2___default()(_context2 = item.emails).call(_context2, email) ? item : null; + return ___WEBPACK_IMPORTED_MODULE_5___default.a.compact(___WEBPACK_IMPORTED_MODULE_5___default.a.flatten(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_3___default()(___WEBPACK_IMPORTED_MODULE_5___default.a).call(___WEBPACK_IMPORTED_MODULE_5___default.a, this.openpgpkeysPublic(), function (item) { + var key = item && -1 < item.emails.indexOf(email) ? item : null; return key ? key.getNativeKeys() : [null]; }), true)); }; @@ -8681,7 +8745,7 @@ var PgpUserStore = /*#__PURE__*/function () { _proto.findPublicKeysBySigningKeyIds = function findPublicKeysBySigningKeyIds(signingKeyIds) { var _this2 = this; - return ___WEBPACK_IMPORTED_MODULE_6___default.a.compact(___WEBPACK_IMPORTED_MODULE_6___default.a.flatten(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_6___default.a).call(___WEBPACK_IMPORTED_MODULE_6___default.a, signingKeyIds, function (id) { + return ___WEBPACK_IMPORTED_MODULE_5___default.a.compact(___WEBPACK_IMPORTED_MODULE_5___default.a.flatten(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_3___default()(___WEBPACK_IMPORTED_MODULE_5___default.a).call(___WEBPACK_IMPORTED_MODULE_5___default.a, signingKeyIds, function (id) { var key = id && id.toHex ? _this2.findPublicKeyByHex(id.toHex()) : null; return key ? key.getNativeKeys() : [null]; }), true)); @@ -8690,15 +8754,15 @@ var PgpUserStore = /*#__PURE__*/function () { _proto.findPrivateKeysByEncryptionKeyIds = function findPrivateKeysByEncryptionKeyIds(encryptionKeyIds, recipients, returnWrapKeys) { var _this3 = this; - var result = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["isArray"])(encryptionKeyIds) ? ___WEBPACK_IMPORTED_MODULE_6___default.a.compact(___WEBPACK_IMPORTED_MODULE_6___default.a.flatten(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_6___default.a).call(___WEBPACK_IMPORTED_MODULE_6___default.a, encryptionKeyIds, function (id) { + var result = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["isArray"])(encryptionKeyIds) ? ___WEBPACK_IMPORTED_MODULE_5___default.a.compact(___WEBPACK_IMPORTED_MODULE_5___default.a.flatten(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_3___default()(___WEBPACK_IMPORTED_MODULE_5___default.a).call(___WEBPACK_IMPORTED_MODULE_5___default.a, encryptionKeyIds, function (id) { var key = id && id.toHex ? _this3.findPrivateKeyByHex(id.toHex()) : null; return key ? returnWrapKeys ? [key] : key.getNativeKeys() : [null]; }), true)) : []; - if (0 === result.length && Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["isNonEmptyArray"])(recipients)) { - result = ___WEBPACK_IMPORTED_MODULE_6___default.a.uniq(___WEBPACK_IMPORTED_MODULE_6___default.a.compact(___WEBPACK_IMPORTED_MODULE_6___default.a.flatten(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_6___default.a).call(___WEBPACK_IMPORTED_MODULE_6___default.a, recipients, function (sEmail) { + if (0 === result.length && Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["isNonEmptyArray"])(recipients)) { + result = ___WEBPACK_IMPORTED_MODULE_5___default.a.uniq(___WEBPACK_IMPORTED_MODULE_5___default.a.compact(___WEBPACK_IMPORTED_MODULE_5___default.a.flatten(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_3___default()(___WEBPACK_IMPORTED_MODULE_5___default.a).call(___WEBPACK_IMPORTED_MODULE_5___default.a, recipients, function (sEmail) { var keys = sEmail ? _this3.findAllPrivateKeysByEmailNotNative(sEmail) : null; - return keys ? returnWrapKeys ? keys : ___WEBPACK_IMPORTED_MODULE_6___default.a.flatten(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_6___default.a).call(___WEBPACK_IMPORTED_MODULE_6___default.a, keys, function (key) { + return keys ? returnWrapKeys ? keys : ___WEBPACK_IMPORTED_MODULE_5___default.a.flatten(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_3___default()(___WEBPACK_IMPORTED_MODULE_5___default.a).call(___WEBPACK_IMPORTED_MODULE_5___default.a, keys, function (key) { return key.getNativeKeys(); }), true) : [null]; }), true)), function (key) { @@ -8715,10 +8779,8 @@ var PgpUserStore = /*#__PURE__*/function () { ; _proto.findPublicKeyByEmailNotNative = function findPublicKeyByEmailNotNative(email) { - return _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_3___default()(___WEBPACK_IMPORTED_MODULE_6___default.a).call(___WEBPACK_IMPORTED_MODULE_6___default.a, this.openpgpkeysPublic(), function (item) { - var _context3; - - return item && -1 < _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_2___default()(_context3 = item.emails).call(_context3, email); + return _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_2___default()(___WEBPACK_IMPORTED_MODULE_5___default.a).call(___WEBPACK_IMPORTED_MODULE_5___default.a, this.openpgpkeysPublic(), function (item) { + return item && -1 < item.emails.indexOf(email); }) || null; } /** @@ -8728,10 +8790,8 @@ var PgpUserStore = /*#__PURE__*/function () { ; _proto.findPrivateKeyByEmailNotNative = function findPrivateKeyByEmailNotNative(email) { - return _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_3___default()(___WEBPACK_IMPORTED_MODULE_6___default.a).call(___WEBPACK_IMPORTED_MODULE_6___default.a, this.openpgpkeysPrivate(), function (item) { - var _context4; - - return item && -1 < _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_2___default()(_context4 = item.emails).call(_context4, email); + return _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_2___default()(___WEBPACK_IMPORTED_MODULE_5___default.a).call(___WEBPACK_IMPORTED_MODULE_5___default.a, this.openpgpkeysPrivate(), function (item) { + return item && -1 < item.emails.indexOf(email); }) || null; } /** @@ -8741,10 +8801,8 @@ var PgpUserStore = /*#__PURE__*/function () { ; _proto.findAllPublicKeysByEmailNotNative = function findAllPublicKeysByEmailNotNative(email) { - return _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_4___default()(___WEBPACK_IMPORTED_MODULE_6___default.a).call(___WEBPACK_IMPORTED_MODULE_6___default.a, this.openpgpkeysPublic(), function (item) { - var _context5; - - return item && -1 < _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_2___default()(_context5 = item.emails).call(_context5, email); + return _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_5___default.a).call(___WEBPACK_IMPORTED_MODULE_5___default.a, this.openpgpkeysPublic(), function (item) { + return item && -1 < item.emails.indexOf(email); }) || null; } /** @@ -8754,10 +8812,8 @@ var PgpUserStore = /*#__PURE__*/function () { ; _proto.findAllPrivateKeysByEmailNotNative = function findAllPrivateKeysByEmailNotNative(email) { - return _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_4___default()(___WEBPACK_IMPORTED_MODULE_6___default.a).call(___WEBPACK_IMPORTED_MODULE_6___default.a, this.openpgpkeysPrivate(), function (item) { - var _context6; - - return item && -1 < _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_2___default()(_context6 = item.emails).call(_context6, email); + return _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_5___default.a).call(___WEBPACK_IMPORTED_MODULE_5___default.a, this.openpgpkeysPrivate(), function (item) { + return item && -1 < item.emails.indexOf(email); }) || null; } /** @@ -8770,10 +8826,8 @@ var PgpUserStore = /*#__PURE__*/function () { _proto.findPrivateKeyByEmail = function findPrivateKeyByEmail(email, password) { var privateKey = null; - var key = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_3___default()(___WEBPACK_IMPORTED_MODULE_6___default.a).call(___WEBPACK_IMPORTED_MODULE_6___default.a, this.openpgpkeysPrivate(), function (item) { - var _context7; - - return item && -1 < _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_2___default()(_context7 = item.emails).call(_context7, email); + var key = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_2___default()(___WEBPACK_IMPORTED_MODULE_5___default.a).call(___WEBPACK_IMPORTED_MODULE_5___default.a, this.openpgpkeysPrivate(), function (item) { + return item && -1 < item.emails.indexOf(email); }); if (key) { @@ -8781,7 +8835,7 @@ var PgpUserStore = /*#__PURE__*/function () { privateKey = key.getNativeKeys()[0] || null; if (privateKey) { - privateKey.decrypt(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["pString"])(password)); + privateKey.decrypt(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["pString"])(password)); } } catch (e) { privateKey = null; @@ -8797,7 +8851,7 @@ var PgpUserStore = /*#__PURE__*/function () { ; _proto.findSelfPrivateKey = function findSelfPrivateKey(password) { - return this.findPrivateKeyByEmail(Stores_User_Account__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].email(), password); + return this.findPrivateKeyByEmail(Stores_User_Account__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].email(), password); }; _proto.decryptMessage = function decryptMessage(message, recipients, fCallback) { @@ -8807,7 +8861,7 @@ var PgpUserStore = /*#__PURE__*/function () { var privateKeys = this.findPrivateKeysByEncryptionKeyIds(message.getEncryptionKeyIds(), recipients, true); if (privateKeys && 0 < privateKeys.length) { - Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_11__["showScreenPopup"])(__webpack_require__(/*! View/Popup/MessageOpenPgp */ 528), [function (decryptedKey) { + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_10__["showScreenPopup"])(__webpack_require__(/*! View/Popup/MessageOpenPgp */ 549), [function (decryptedKey) { if (decryptedKey) { message.decrypt(decryptedKey).then(function (decryptedMessage) { var privateKey = null; @@ -8850,7 +8904,7 @@ var PgpUserStore = /*#__PURE__*/function () { if (publicKeys && 0 < publicKeys.length) { try { var result = message.verify(publicKeys), - valid = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_3___default()(___WEBPACK_IMPORTED_MODULE_6___default.a).call(___WEBPACK_IMPORTED_MODULE_6___default.a, ___WEBPACK_IMPORTED_MODULE_6___default.a.isArray(result) ? result : [], function (item) { + valid = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_2___default()(___WEBPACK_IMPORTED_MODULE_5___default.a).call(___WEBPACK_IMPORTED_MODULE_5___default.a, ___WEBPACK_IMPORTED_MODULE_5___default.a.isArray(result) ? result : [], function (item) { return item && item.valid && item.keyid; }); @@ -8859,7 +8913,7 @@ var PgpUserStore = /*#__PURE__*/function () { return true; } } catch (e) { - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["log"])(e); + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["log"])(e); } } @@ -8881,15 +8935,15 @@ var PgpUserStore = /*#__PURE__*/function () { verControl.removeClass('success').addClass('error').attr('title', title); } - if (!Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["isUnd"])(text)) { - dom.text(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["trim"])(text)); + if (!Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["isUnd"])(text)) { + dom.text(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["trim"])(text)); } }; PgpUserStore.domControlEncryptedClickHelper = function domControlEncryptedClickHelper(store, dom, armoredMessage, recipients) { return function () { var message = null; - var $this = $__WEBPACK_IMPORTED_MODULE_7___default()(this); // eslint-disable-line no-invalid-this + var $this = $__WEBPACK_IMPORTED_MODULE_6___default()(this); // eslint-disable-line no-invalid-this if ($this.hasClass('success')) { return false; @@ -8898,33 +8952,33 @@ var PgpUserStore = /*#__PURE__*/function () { try { message = store.openpgp.message.readArmored(armoredMessage); } catch (e) { - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["log"])(e); + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["log"])(e); } if (message && message.getText && message.verify && message.decrypt) { store.decryptMessage(message, recipients, function (validPrivateKey, decryptedMessage, validPublicKey, signingKeyIds) { if (decryptedMessage) { if (validPublicKey) { - store.controlsHelper(dom, $this, true, Object(Common_Translator__WEBPACK_IMPORTED_MODULE_8__["i18n"])('PGP_NOTIFICATIONS/GOOD_SIGNATURE', { + store.controlsHelper(dom, $this, true, Object(Common_Translator__WEBPACK_IMPORTED_MODULE_7__["i18n"])('PGP_NOTIFICATIONS/GOOD_SIGNATURE', { 'USER': validPublicKey.user + ' (' + validPublicKey.id + ')' }), decryptedMessage.getText()); } else if (validPrivateKey) { - var keyIds = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["isNonEmptyArray"])(signingKeyIds) ? signingKeyIds : null, - additional = keyIds ? ___WEBPACK_IMPORTED_MODULE_6___default.a.compact(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_6___default.a).call(___WEBPACK_IMPORTED_MODULE_6___default.a, keyIds, function (item) { + var keyIds = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["isNonEmptyArray"])(signingKeyIds) ? signingKeyIds : null, + additional = keyIds ? ___WEBPACK_IMPORTED_MODULE_5___default.a.compact(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_3___default()(___WEBPACK_IMPORTED_MODULE_5___default.a).call(___WEBPACK_IMPORTED_MODULE_5___default.a, keyIds, function (item) { return item && item.toHex ? item.toHex() : null; })).join(', ') : ''; - store.controlsHelper(dom, $this, false, Object(Common_Translator__WEBPACK_IMPORTED_MODULE_8__["i18n"])('PGP_NOTIFICATIONS/UNVERIFIRED_SIGNATURE') + (additional ? ' (' + additional + ')' : ''), decryptedMessage.getText()); + store.controlsHelper(dom, $this, false, Object(Common_Translator__WEBPACK_IMPORTED_MODULE_7__["i18n"])('PGP_NOTIFICATIONS/UNVERIFIRED_SIGNATURE') + (additional ? ' (' + additional + ')' : ''), decryptedMessage.getText()); } else { - store.controlsHelper(dom, $this, false, Object(Common_Translator__WEBPACK_IMPORTED_MODULE_8__["i18n"])('PGP_NOTIFICATIONS/DECRYPTION_ERROR')); + store.controlsHelper(dom, $this, false, Object(Common_Translator__WEBPACK_IMPORTED_MODULE_7__["i18n"])('PGP_NOTIFICATIONS/DECRYPTION_ERROR')); } } else { - store.controlsHelper(dom, $this, false, Object(Common_Translator__WEBPACK_IMPORTED_MODULE_8__["i18n"])('PGP_NOTIFICATIONS/DECRYPTION_ERROR')); + store.controlsHelper(dom, $this, false, Object(Common_Translator__WEBPACK_IMPORTED_MODULE_7__["i18n"])('PGP_NOTIFICATIONS/DECRYPTION_ERROR')); } }); return false; } - store.controlsHelper(dom, $this, false, Object(Common_Translator__WEBPACK_IMPORTED_MODULE_8__["i18n"])('PGP_NOTIFICATIONS/DECRYPTION_ERROR')); + store.controlsHelper(dom, $this, false, Object(Common_Translator__WEBPACK_IMPORTED_MODULE_7__["i18n"])('PGP_NOTIFICATIONS/DECRYPTION_ERROR')); return false; }; }; @@ -8932,7 +8986,7 @@ var PgpUserStore = /*#__PURE__*/function () { PgpUserStore.domControlSignedClickHelper = function domControlSignedClickHelper(store, dom, armoredMessage) { return function () { var message = null; - var $this = $__WEBPACK_IMPORTED_MODULE_7___default()(this); // eslint-disable-line no-invalid-this + var $this = $__WEBPACK_IMPORTED_MODULE_6___default()(this); // eslint-disable-line no-invalid-this if ($this.hasClass('success') || $this.hasClass('error')) { return false; @@ -8941,27 +8995,27 @@ var PgpUserStore = /*#__PURE__*/function () { try { message = store.openpgp.cleartext.readArmored(armoredMessage); } catch (e) { - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["log"])(e); + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["log"])(e); } if (message && message.getText && message.verify) { store.verifyMessage(message, function (validKey, signingKeyIds) { if (validKey) { - store.controlsHelper(dom, $this, true, Object(Common_Translator__WEBPACK_IMPORTED_MODULE_8__["i18n"])('PGP_NOTIFICATIONS/GOOD_SIGNATURE', { + store.controlsHelper(dom, $this, true, Object(Common_Translator__WEBPACK_IMPORTED_MODULE_7__["i18n"])('PGP_NOTIFICATIONS/GOOD_SIGNATURE', { 'USER': validKey.user + ' (' + validKey.id + ')' }), message.getText()); } else { - var keyIds = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_9__["isNonEmptyArray"])(signingKeyIds) ? signingKeyIds : null, - additional = keyIds ? ___WEBPACK_IMPORTED_MODULE_6___default.a.compact(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_6___default.a).call(___WEBPACK_IMPORTED_MODULE_6___default.a, keyIds, function (item) { + var keyIds = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["isNonEmptyArray"])(signingKeyIds) ? signingKeyIds : null, + additional = keyIds ? ___WEBPACK_IMPORTED_MODULE_5___default.a.compact(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_3___default()(___WEBPACK_IMPORTED_MODULE_5___default.a).call(___WEBPACK_IMPORTED_MODULE_5___default.a, keyIds, function (item) { return item && item.toHex ? item.toHex() : null; })).join(', ') : ''; - store.controlsHelper(dom, $this, false, Object(Common_Translator__WEBPACK_IMPORTED_MODULE_8__["i18n"])('PGP_NOTIFICATIONS/UNVERIFIRED_SIGNATURE') + (additional ? ' (' + additional + ')' : '')); + store.controlsHelper(dom, $this, false, Object(Common_Translator__WEBPACK_IMPORTED_MODULE_7__["i18n"])('PGP_NOTIFICATIONS/UNVERIFIRED_SIGNATURE') + (additional ? ' (' + additional + ')' : '')); } }); return false; } - store.controlsHelper(dom, $this, false, Object(Common_Translator__WEBPACK_IMPORTED_MODULE_8__["i18n"])('PGP_NOTIFICATIONS/DECRYPTION_ERROR')); + store.controlsHelper(dom, $this, false, Object(Common_Translator__WEBPACK_IMPORTED_MODULE_7__["i18n"])('PGP_NOTIFICATIONS/DECRYPTION_ERROR')); return false; }; } @@ -8984,9 +9038,9 @@ var PgpUserStore = /*#__PURE__*/function () { dom.data('openpgp-original', domText); if (encrypted) { - verControl = $__WEBPACK_IMPORTED_MODULE_7___default()('
').attr('title', Object(Common_Translator__WEBPACK_IMPORTED_MODULE_8__["i18n"])('MESSAGE/PGP_ENCRYPTED_MESSAGE_DESC')).on('click', PgpUserStore.domControlEncryptedClickHelper(this, dom, domText, recipients)); + verControl = $__WEBPACK_IMPORTED_MODULE_6___default()('
').attr('title', Object(Common_Translator__WEBPACK_IMPORTED_MODULE_7__["i18n"])('MESSAGE/PGP_ENCRYPTED_MESSAGE_DESC')).on('click', PgpUserStore.domControlEncryptedClickHelper(this, dom, domText, recipients)); } else if (signed) { - verControl = $__WEBPACK_IMPORTED_MODULE_7___default()('
').attr('title', Object(Common_Translator__WEBPACK_IMPORTED_MODULE_8__["i18n"])('MESSAGE/PGP_SIGNED_MESSAGE_DESC')).on('click', PgpUserStore.domControlSignedClickHelper(this, dom, domText)); + verControl = $__WEBPACK_IMPORTED_MODULE_6___default()('
').attr('title', Object(Common_Translator__WEBPACK_IMPORTED_MODULE_7__["i18n"])('MESSAGE/PGP_SIGNED_MESSAGE_DESC')).on('click', PgpUserStore.domControlSignedClickHelper(this, dom, domText)); } if (verControl) { @@ -9003,141 +9057,55 @@ var PgpUserStore = /*#__PURE__*/function () { /***/ }), /* 42 */ -/*!***********************************************!*\ - !*** ./node_modules/core-js/internals/has.js ***! - \***********************************************/ +/*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/an-object.js ***! + \*****************************************************/ /*! no static exports found */ /*! all exports used */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -var hasOwnProperty = {}.hasOwnProperty; +var isObject = __webpack_require__(/*! ../internals/is-object */ 49); -module.exports = function (it, key) { - return hasOwnProperty.call(it, key); +module.exports = function (it) { + if (!isObject(it)) { + throw TypeError(String(it) + ' is not an object'); + } return it; }; /***/ }), /* 43 */ -/*!*******************************************************!*\ - !*** ./node_modules/core-js-pure/internals/export.js ***! - \*******************************************************/ +/*!******************************************************!*\ + !*** ./node_modules/core-js-pure/internals/fails.js ***! + \******************************************************/ /*! no static exports found */ /*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var global = __webpack_require__(/*! ../internals/global */ 66); -var getOwnPropertyDescriptor = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ 238).f; -var isForced = __webpack_require__(/*! ../internals/is-forced */ 294); -var path = __webpack_require__(/*! ../internals/path */ 97); -var bind = __webpack_require__(/*! ../internals/function-bind-context */ 241); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 84); -var has = __webpack_require__(/*! ../internals/has */ 78); - -var wrapConstructor = function (NativeConstructor) { - var Wrapper = function (a, b, c) { - if (this instanceof NativeConstructor) { - switch (arguments.length) { - case 0: return new NativeConstructor(); - case 1: return new NativeConstructor(a); - case 2: return new NativeConstructor(a, b); - } return new NativeConstructor(a, b, c); - } return NativeConstructor.apply(this, arguments); - }; - Wrapper.prototype = NativeConstructor.prototype; - return Wrapper; -}; - -/* - options.target - name of the target object - options.global - target is the global object - options.stat - export as static methods of target - options.proto - export as prototype methods of target - options.real - real prototype method for the `pure` version - options.forced - export even if the native feature is available - options.bind - bind methods to the target, required for the `pure` version - options.wrap - wrap constructors to preventing global pollution, required for the `pure` version - options.unsafe - use the simple assignment of property instead of delete + defineProperty - options.sham - add a flag to not completely full polyfills - options.enumerable - export as enumerable property - options.noTargetGet - prevent calling a getter on target -*/ -module.exports = function (options, source) { - var TARGET = options.target; - var GLOBAL = options.global; - var STATIC = options.stat; - var PROTO = options.proto; - - var nativeSource = GLOBAL ? global : STATIC ? global[TARGET] : (global[TARGET] || {}).prototype; - - var target = GLOBAL ? path : path[TARGET] || (path[TARGET] = {}); - var targetPrototype = target.prototype; - - var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE; - var key, sourceProperty, targetProperty, nativeProperty, resultProperty, descriptor; - - for (key in source) { - FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); - // contains in native - USE_NATIVE = !FORCED && nativeSource && has(nativeSource, key); - - targetProperty = target[key]; - - if (USE_NATIVE) if (options.noTargetGet) { - descriptor = getOwnPropertyDescriptor(nativeSource, key); - nativeProperty = descriptor && descriptor.value; - } else nativeProperty = nativeSource[key]; - - // export native or implementation - sourceProperty = (USE_NATIVE && nativeProperty) ? nativeProperty : source[key]; - - if (USE_NATIVE && typeof targetProperty === typeof sourceProperty) continue; - - // bind timers to global for call from export context - if (options.bind && USE_NATIVE) resultProperty = bind(sourceProperty, global); - // wrap global constructors for prevent changs in this version - else if (options.wrap && USE_NATIVE) resultProperty = wrapConstructor(sourceProperty); - // make static versions for prototype methods - else if (PROTO && typeof sourceProperty == 'function') resultProperty = bind(Function.call, sourceProperty); - // default case - else resultProperty = sourceProperty; - - // add a flag to not completely full polyfills - if (options.sham || (sourceProperty && sourceProperty.sham) || (targetProperty && targetProperty.sham)) { - createNonEnumerableProperty(resultProperty, 'sham', true); - } - - target[key] = resultProperty; +/***/ (function(module, exports) { - if (PROTO) { - VIRTUAL_PROTOTYPE = TARGET + 'Prototype'; - if (!has(path, VIRTUAL_PROTOTYPE)) { - createNonEnumerableProperty(path, VIRTUAL_PROTOTYPE, {}); - } - // export virtual prototype methods - path[VIRTUAL_PROTOTYPE][key] = sourceProperty; - // export real prototype methods - if (options.real && targetPrototype && !targetPrototype[key]) { - createNonEnumerableProperty(targetPrototype, key, sourceProperty); - } - } +module.exports = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; } }; /***/ }), /* 44 */ -/*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/is-object.js ***! - \*****************************************************/ +/*!***********************************************!*\ + !*** ./node_modules/core-js/internals/has.js ***! + \***********************************************/ /*! no static exports found */ /*! all exports used */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -module.exports = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; +var toObject = __webpack_require__(/*! ../internals/to-object */ 90); + +var hasOwnProperty = {}.hasOwnProperty; + +module.exports = function hasOwn(it, key) { + return hasOwnProperty.call(toObject(it), key); }; @@ -9152,9 +9120,11 @@ module.exports = function (it) { "use strict"; -var $ = __webpack_require__(/*! ../internals/export */ 50); -var exec = __webpack_require__(/*! ../internals/regexp-exec */ 110); +var $ = __webpack_require__(/*! ../internals/export */ 65); +var exec = __webpack_require__(/*! ../internals/regexp-exec */ 163); +// `RegExp.prototype.exec` method +// https://tc39.es/ecma262/#sec-regexp.prototype.exec $({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, { exec: exec }); @@ -9170,7 +9140,7 @@ $({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, { /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 18); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 17); /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ko */ 1); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! _ */ 3); @@ -9239,23 +9209,6 @@ var AccountUserStore = /*#__PURE__*/function () { /***/ }), /* 47 */ -/*!*******************************************************!*\ - !*** ./node_modules/core-js/internals/descriptors.js ***! - \*******************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var fails = __webpack_require__(/*! ../internals/fails */ 36); - -// Thank's IE8 for his funny defineProperty -module.exports = !fails(function () { - return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; -}); - - -/***/ }), -/* 48 */ /*!**************************************************************************!*\ !*** ./node_modules/core-js/internals/create-non-enumerable-property.js ***! \**************************************************************************/ @@ -9263,9 +9216,9 @@ module.exports = !fails(function () { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 47); -var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ 52); -var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ 92); +var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 55); +var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ 66); +var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ 96); module.exports = DESCRIPTORS ? function (object, key, value) { return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); @@ -9276,96 +9229,15 @@ module.exports = DESCRIPTORS ? function (object, key, value) { /***/ }), -/* 49 */ -/*!*******************************************************!*\ - !*** ./node_modules/core-js/internals/classof-raw.js ***! - \*******************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -var toString = {}.toString; - -module.exports = function (it) { - return toString.call(it).slice(8, -1); -}; - - -/***/ }), -/* 50 */ -/*!**************************************************!*\ - !*** ./node_modules/core-js/internals/export.js ***! - \**************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ../internals/global */ 27); -var getOwnPropertyDescriptor = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ 91).f; -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 48); -var redefine = __webpack_require__(/*! ../internals/redefine */ 53); -var setGlobal = __webpack_require__(/*! ../internals/set-global */ 93); -var copyConstructorProperties = __webpack_require__(/*! ../internals/copy-constructor-properties */ 181); -var isForced = __webpack_require__(/*! ../internals/is-forced */ 130); - -/* - options.target - name of the target object - options.global - target is the global object - options.stat - export as static methods of target - options.proto - export as prototype methods of target - options.real - real prototype method for the `pure` version - options.forced - export even if the native feature is available - options.bind - bind methods to the target, required for the `pure` version - options.wrap - wrap constructors to preventing global pollution, required for the `pure` version - options.unsafe - use the simple assignment of property instead of delete + defineProperty - options.sham - add a flag to not completely full polyfills - options.enumerable - export as enumerable property - options.noTargetGet - prevent calling a getter on target -*/ -module.exports = function (options, source) { - var TARGET = options.target; - var GLOBAL = options.global; - var STATIC = options.stat; - var FORCED, target, key, targetProperty, sourceProperty, descriptor; - if (GLOBAL) { - target = global; - } else if (STATIC) { - target = global[TARGET] || setGlobal(TARGET, {}); - } else { - target = (global[TARGET] || {}).prototype; - } - if (target) for (key in source) { - sourceProperty = source[key]; - if (options.noTargetGet) { - descriptor = getOwnPropertyDescriptor(target, key); - targetProperty = descriptor && descriptor.value; - } else targetProperty = target[key]; - FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); - // contained in target - if (!FORCED && targetProperty !== undefined) { - if (typeof sourceProperty === typeof targetProperty) continue; - copyConstructorProperties(sourceProperty, targetProperty); - } - // add a flag to not completely full polyfills - if (options.sham || (targetProperty && targetProperty.sham)) { - createNonEnumerableProperty(sourceProperty, 'sham', true); - } - // extend global - redefine(target, key, sourceProperty, options); - } -}; - - -/***/ }), -/* 51 */ +/* 48 */ /*!**********************************************************!*\ !*** ./node_modules/core-js/modules/es.function.name.js ***! \**********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 47); -var defineProperty = __webpack_require__(/*! ../internals/object-define-property */ 52).f; +var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 55); +var defineProperty = __webpack_require__(/*! ../internals/object-define-property */ 66).f; var FunctionPrototype = Function.prototype; var FunctionPrototypeToString = FunctionPrototype.toString; @@ -9373,7 +9245,7 @@ var nameRE = /^\s*function ([^ (]*)/; var NAME = 'name'; // Function instances `.name` property -// https://tc39.github.io/ecma262/#sec-function-instances-name +// https://tc39.es/ecma262/#sec-function-instances-name if (DESCRIPTORS && !(NAME in FunctionPrototype)) { defineProperty(FunctionPrototype, NAME, { configurable: true, @@ -9388,114 +9260,116 @@ if (DESCRIPTORS && !(NAME in FunctionPrototype)) { } +/***/ }), +/* 49 */ +/*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/is-object.js ***! + \*****************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports) { + +module.exports = function (it) { + return typeof it === 'object' ? it !== null : typeof it === 'function'; +}; + + +/***/ }), +/* 50 */ +/*!**********************************************************!*\ + !*** ./node_modules/core-js-pure/internals/is-object.js ***! + \**********************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports) { + +module.exports = function (it) { + return typeof it === 'object' ? it !== null : typeof it === 'function'; +}; + + +/***/ }), +/* 51 */ +/*!*****************************************************!*\ + !*** ./node_modules/core-js-pure/internals/path.js ***! + \*****************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports) { + +module.exports = {}; + + /***/ }), /* 52 */ -/*!******************************************************************!*\ - !*** ./node_modules/core-js/internals/object-define-property.js ***! - \******************************************************************/ +/*!*******************************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/create-non-enumerable-property.js ***! + \*******************************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 47); -var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ 126); -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); -var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ 125); +var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 53); +var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ 82); +var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ 91); -var nativeDefineProperty = Object.defineProperty; - -// `Object.defineProperty` method -// https://tc39.github.io/ecma262/#sec-object.defineproperty -exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return nativeDefineProperty(O, P, Attributes); - } catch (error) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; +module.exports = DESCRIPTORS ? function (object, key, value) { + return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; }; /***/ }), /* 53 */ -/*!****************************************************!*\ - !*** ./node_modules/core-js/internals/redefine.js ***! - \****************************************************/ +/*!************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/descriptors.js ***! + \************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var global = __webpack_require__(/*! ../internals/global */ 27); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 48); -var has = __webpack_require__(/*! ../internals/has */ 42); -var setGlobal = __webpack_require__(/*! ../internals/set-global */ 93); -var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ 94); -var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ 88); - -var getInternalState = InternalStateModule.get; -var enforceInternalState = InternalStateModule.enforce; -var TEMPLATE = String(String).split('String'); +var fails = __webpack_require__(/*! ../internals/fails */ 43); -(module.exports = function (O, key, value, options) { - var unsafe = options ? !!options.unsafe : false; - var simple = options ? !!options.enumerable : false; - var noTargetGet = options ? !!options.noTargetGet : false; - if (typeof value == 'function') { - if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key); - enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : ''); - } - if (O === global) { - if (simple) O[key] = value; - else setGlobal(key, value); - return; - } else if (!unsafe) { - delete O[key]; - } else if (!noTargetGet && O[key]) { - simple = true; - } - if (simple) O[key] = value; - else createNonEnumerableProperty(O, key, value); -// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative -})(Function.prototype, 'toString', function toString() { - return typeof this == 'function' && getInternalState(this).source || inspectSource(this); +// Detect IE8's incomplete defineProperty implementation +module.exports = !fails(function () { + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; }); /***/ }), /* 54 */ -/*!**************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/entry-virtual.js ***! - \**************************************************************/ +/*!****************************************************!*\ + !*** ./node_modules/core-js-pure/internals/has.js ***! + \****************************************************/ /*! no static exports found */ /*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, exports) { -var path = __webpack_require__(/*! ../internals/path */ 97); +var hasOwnProperty = {}.hasOwnProperty; -module.exports = function (CONSTRUCTOR) { - return path[CONSTRUCTOR + 'Prototype']; +module.exports = function (it, key) { + return hasOwnProperty.call(it, key); }; /***/ }), /* 55 */ -/*!******************************************************!*\ - !*** ./node_modules/core-js-pure/internals/fails.js ***! - \******************************************************/ +/*!*******************************************************!*\ + !*** ./node_modules/core-js/internals/descriptors.js ***! + \*******************************************************/ /*! no static exports found */ /*! all exports used */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -module.exports = function (exec) { - try { - return !!exec(); - } catch (error) { - return true; - } -}; +var fails = __webpack_require__(/*! ../internals/fails */ 37); + +// Detect IE8's incomplete defineProperty implementation +module.exports = !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; +}); /***/ }), @@ -9508,7 +9382,7 @@ module.exports = function (exec) { /***/ (function(module, exports) { // `RequireObjectCoercible` abstract operation -// https://tc39.github.io/ecma262/#sec-requireobjectcoercible +// https://tc39.es/ecma262/#sec-requireobjectcoercible module.exports = function (it) { if (it == undefined) throw TypeError("Can't call method on " + it); return it; @@ -9517,6 +9391,35 @@ module.exports = function (it) { /***/ }), /* 57 */ +/*!****************************************************************************!*\ + !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/set-interval.js ***! + \****************************************************************************/ +/*! no static exports found */ +/*! exports used: default */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(/*! core-js-pure/stable/set-interval */ 284); + +/***/ }), +/* 58 */ +/*!**********************************************************!*\ + !*** ./node_modules/core-js-pure/internals/an-object.js ***! + \**********************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(/*! ../internals/is-object */ 50); + +module.exports = function (it) { + if (!isObject(it)) { + throw TypeError(String(it) + ' is not an object'); + } return it; +}; + + +/***/ }), +/* 59 */ /*!***********************************************************!*\ !*** ./node_modules/core-js/modules/es.string.replace.js ***! \***********************************************************/ @@ -9525,20 +9428,17 @@ module.exports = function (it) { "use strict"; -var fixRegExpWellKnownSymbolLogic = __webpack_require__(/*! ../internals/fix-regexp-well-known-symbol-logic */ 135); -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); -var toObject = __webpack_require__(/*! ../internals/to-object */ 120); -var toLength = __webpack_require__(/*! ../internals/to-length */ 73); -var toInteger = __webpack_require__(/*! ../internals/to-integer */ 81); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(/*! ../internals/fix-regexp-well-known-symbol-logic */ 150); +var anObject = __webpack_require__(/*! ../internals/an-object */ 42); +var toLength = __webpack_require__(/*! ../internals/to-length */ 85); +var toInteger = __webpack_require__(/*! ../internals/to-integer */ 80); var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ 56); -var advanceStringIndex = __webpack_require__(/*! ../internals/advance-string-index */ 154); -var regExpExec = __webpack_require__(/*! ../internals/regexp-exec-abstract */ 136); +var advanceStringIndex = __webpack_require__(/*! ../internals/advance-string-index */ 172); +var getSubstitution = __webpack_require__(/*! ../internals/get-substitution */ 283); +var regExpExec = __webpack_require__(/*! ../internals/regexp-exec-abstract */ 151); var max = Math.max; var min = Math.min; -var floor = Math.floor; -var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d\d?|<[^>]*>)/g; -var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d\d?)/g; var maybeToString = function (it) { return it === undefined ? it : String(it); @@ -9552,7 +9452,7 @@ fixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, ma return [ // `String.prototype.replace` method - // https://tc39.github.io/ecma262/#sec-string.prototype.replace + // https://tc39.es/ecma262/#sec-string.prototype.replace function replace(searchValue, replaceValue) { var O = requireObjectCoercible(this); var replacer = searchValue == undefined ? undefined : searchValue[REPLACE]; @@ -9561,7 +9461,7 @@ fixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, ma : nativeReplace.call(String(O), searchValue, replaceValue); }, // `RegExp.prototype[@@replace]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace + // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace function (regexp, replaceValue) { if ( (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) || @@ -9624,45 +9524,11 @@ fixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, ma return accumulatedResult + S.slice(nextSourcePosition); } ]; - - // https://tc39.github.io/ecma262/#sec-getsubstitution - function getSubstitution(matched, str, position, captures, namedCaptures, replacement) { - var tailPos = position + matched.length; - var m = captures.length; - var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; - if (namedCaptures !== undefined) { - namedCaptures = toObject(namedCaptures); - symbols = SUBSTITUTION_SYMBOLS; - } - return nativeReplace.call(replacement, symbols, function (match, ch) { - var capture; - switch (ch.charAt(0)) { - case '$': return '$'; - case '&': return matched; - case '`': return str.slice(0, position); - case "'": return str.slice(tailPos); - case '<': - capture = namedCaptures[ch.slice(1, -1)]; - break; - default: // \d\d? - var n = +ch; - if (n === 0) return match; - if (n > m) { - var f = floor(n / 10); - if (f === 0) return match; - if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1); - return match; - } - capture = captures[n - 1]; - } - return capture === undefined ? '' : capture; - }); - } }); /***/ }), -/* 58 */ +/* 60 */ /*!*******************************!*\ !*** ./dev/Storage/Client.js ***! \*******************************/ @@ -9677,8 +9543,8 @@ fixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, ma /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! _ */ 3); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var Common_ClientStorageDriver_Cookie__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Common/ClientStorageDriver/Cookie */ 426); -/* harmony import */ var Common_ClientStorageDriver_LocalStorage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/ClientStorageDriver/LocalStorage */ 427); +/* harmony import */ var Common_ClientStorageDriver_Cookie__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Common/ClientStorageDriver/Cookie */ 439); +/* harmony import */ var Common_ClientStorageDriver_LocalStorage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/ClientStorageDriver/LocalStorage */ 440); @@ -9708,29 +9574,7 @@ function get(key) { } /***/ }), -/* 59 */ -/*!********************************************************!*\ - !*** ./node_modules/core-js/internals/get-built-in.js ***! - \********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var path = __webpack_require__(/*! ../internals/path */ 150); -var global = __webpack_require__(/*! ../internals/global */ 27); - -var aFunction = function (variable) { - return typeof variable == 'function' ? variable : undefined; -}; - -module.exports = function (namespace, method) { - return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) - : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method]; -}; - - -/***/ }), -/* 60 */ +/* 61 */ /*!********************************!*\ !*** ./dev/Common/Momentor.js ***! \********************************/ @@ -9752,7 +9596,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var $__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $ */ 8); /* harmony import */ var $__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! moment */ 98); +/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! moment */ 101); /* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Translator */ 9); @@ -9905,7 +9749,18 @@ function reload() { } /***/ }), -/* 61 */ +/* 62 */ +/*!***********************************************************************!*\ + !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/promise.js ***! + \***********************************************************************/ +/*! no static exports found */ +/*! exports used: default */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(/*! core-js-pure/stable/promise */ 252); + +/***/ }), +/* 63 */ /*!********************************!*\ !*** external "window.hasher" ***! \********************************/ @@ -9916,7 +9771,7 @@ function reload() { module.exports = window.hasher; /***/ }), -/* 62 */ +/* 64 */ /*!*******************************!*\ !*** ./dev/Helper/Message.js ***! \*******************************/ @@ -9929,12 +9784,12 @@ module.exports = window.hasher; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return emailArrayToStringClear; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return emailArrayFromJson; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return replyHelper; }); -/* harmony import */ var core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.join */ 75); -/* harmony import */ var core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.function.name */ 51); -/* harmony import */ var core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.join.js */ 77); +/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ 48); +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Model_Email__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Model/Email */ 82); +/* harmony import */ var Model_Email__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Model/Email */ 83); @@ -10031,27 +9886,104 @@ function replyHelper(inputEmails, unic, localEmails) { } /***/ }), -/* 63 */ -/*!*************************************************************!*\ - !*** ./node_modules/core-js/modules/es.object.to-string.js ***! - \*************************************************************/ +/* 65 */ +/*!**************************************************!*\ + !*** ./node_modules/core-js/internals/export.js ***! + \**************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ 95); -var redefine = __webpack_require__(/*! ../internals/redefine */ 53); -var toString = __webpack_require__(/*! ../internals/object-to-string */ 186); +var global = __webpack_require__(/*! ../internals/global */ 30); +var getOwnPropertyDescriptor = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ 128).f; +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 47); +var redefine = __webpack_require__(/*! ../internals/redefine */ 69); +var setGlobal = __webpack_require__(/*! ../internals/set-global */ 97); +var copyConstructorProperties = __webpack_require__(/*! ../internals/copy-constructor-properties */ 210); +var isForced = __webpack_require__(/*! ../internals/is-forced */ 183); -// `Object.prototype.toString` method -// https://tc39.github.io/ecma262/#sec-object.prototype.tostring -if (!TO_STRING_TAG_SUPPORT) { - redefine(Object.prototype, 'toString', toString, { unsafe: true }); -} +/* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.noTargetGet - prevent calling a getter on target +*/ +module.exports = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global; + } else if (STATIC) { + target = global[TARGET] || setGlobal(TARGET, {}); + } else { + target = (global[TARGET] || {}).prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.noTargetGet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty === typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty(sourceProperty, 'sham', true); + } + // extend global + redefine(target, key, sourceProperty, options); + } +}; /***/ }), -/* 64 */ +/* 66 */ +/*!******************************************************************!*\ + !*** ./node_modules/core-js/internals/object-define-property.js ***! + \******************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 55); +var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ 135); +var anObject = __webpack_require__(/*! ../internals/an-object */ 42); +var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ 134); + +// eslint-disable-next-line es/no-object-defineproperty -- safe +var $defineProperty = Object.defineProperty; + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +exports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if (IE8_DOM_DEFINE) try { + return $defineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + + +/***/ }), +/* 67 */ /*!************************************!*\ !*** ./dev/Knoin/AbstractModel.js ***! \************************************/ @@ -10061,11 +9993,9 @@ if (!TO_STRING_TAG_SUPPORT) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AbstractModel; }); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/for-each */ 70); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/defineProperty */ 17); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Common/Utils */ 2); - +/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ 152); +/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Common/Utils */ 2); var AbstractModel = /*#__PURE__*/function () { @@ -10077,10 +10007,8 @@ var AbstractModel = /*#__PURE__*/function () { modelName = ''; } - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(this, "sModelName", ''); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(this, "disposables", []); - + this.sModelName = ''; + this.disposables = []; this.sModelName = modelName || ''; } @@ -10089,8 +10017,8 @@ var AbstractModel = /*#__PURE__*/function () { _proto.regDisposables = function regDisposables(value) { var _this = this; - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_2__["isArray"])(value)) { - _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_0___default()(value).call(value, function (item) { + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_1__["isArray"])(value)) { + value.forEach(function (item) { _this.disposables.push(item); }); } else if (value) { @@ -10099,43 +10027,69 @@ var AbstractModel = /*#__PURE__*/function () { }; _proto.onDestroy = function onDestroy() { - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_2__["disposeObject"])(this); + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_1__["disposeObject"])(this); }; return AbstractModel; }(); /***/ }), -/* 65 */, -/* 66 */ -/*!*******************************************************!*\ - !*** ./node_modules/core-js-pure/internals/global.js ***! - \*******************************************************/ +/* 68 */, +/* 69 */ +/*!****************************************************!*\ + !*** ./node_modules/core-js/internals/redefine.js ***! + \****************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) { - return it && it.Math == Math && it; -}; +var global = __webpack_require__(/*! ../internals/global */ 30); +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 47); +var has = __webpack_require__(/*! ../internals/has */ 44); +var setGlobal = __webpack_require__(/*! ../internals/set-global */ 97); +var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ 130); +var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ 131); -// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 -module.exports = - // eslint-disable-next-line no-undef - check(typeof globalThis == 'object' && globalThis) || - check(typeof window == 'object' && window) || - check(typeof self == 'object' && self) || - check(typeof global == 'object' && global) || - // eslint-disable-next-line no-new-func - (function () { return this; })() || Function('return this')(); +var getInternalState = InternalStateModule.get; +var enforceInternalState = InternalStateModule.enforce; +var TEMPLATE = String(String).split('String'); + +(module.exports = function (O, key, value, options) { + var unsafe = options ? !!options.unsafe : false; + var simple = options ? !!options.enumerable : false; + var noTargetGet = options ? !!options.noTargetGet : false; + var state; + if (typeof value == 'function') { + if (typeof key == 'string' && !has(value, 'name')) { + createNonEnumerableProperty(value, 'name', key); + } + state = enforceInternalState(value); + if (!state.source) { + state.source = TEMPLATE.join(typeof key == 'string' ? key : ''); + } + } + if (O === global) { + if (simple) O[key] = value; + else setGlobal(key, value); + return; + } else if (!unsafe) { + delete O[key]; + } else if (!noTargetGet && O[key]) { + simple = true; + } + if (simple) O[key] = value; + else createNonEnumerableProperty(O, key, value); +// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative +})(Function.prototype, 'toString', function toString() { + return typeof this == 'function' && getInternalState(this).source || inspectSource(this); +}); -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ 124))) /***/ }), -/* 67 */ -/*!******************************************************!*\ - !*** ./node_modules/core-js/internals/a-function.js ***! - \******************************************************/ +/* 70 */ +/*!***********************************************************!*\ + !*** ./node_modules/core-js-pure/internals/a-function.js ***! + \***********************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports) { @@ -10148,84 +10102,23 @@ module.exports = function (it) { /***/ }), -/* 68 */ -/*!****************************************************!*\ - !*** ./node_modules/core-js/modules/web.timers.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -var $ = __webpack_require__(/*! ../internals/export */ 50); -var global = __webpack_require__(/*! ../internals/global */ 27); -var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ 105); - -var slice = [].slice; -var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check - -var wrap = function (scheduler) { - return function (handler, timeout /* , ...arguments */) { - var boundArgs = arguments.length > 2; - var args = boundArgs ? slice.call(arguments, 2) : undefined; - return scheduler(boundArgs ? function () { - // eslint-disable-next-line no-new-func - (typeof handler == 'function' ? handler : Function(handler)).apply(this, args); - } : handler, timeout); - }; -}; - -// ie9- setTimeout & setInterval additional parameters fix -// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers -$({ global: true, bind: true, forced: MSIE }, { - // `setTimeout` method - // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout - setTimeout: wrap(global.setTimeout), - // `setInterval` method - // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval - setInterval: wrap(global.setInterval) -}); - - -/***/ }), -/* 69 */ -/*!******************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/well-known-symbol.js ***! - \******************************************************************/ +/* 71 */ +/*!**************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/entry-virtual.js ***! + \**************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var global = __webpack_require__(/*! ../internals/global */ 66); -var shared = __webpack_require__(/*! ../internals/shared */ 244); -var has = __webpack_require__(/*! ../internals/has */ 78); -var uid = __webpack_require__(/*! ../internals/uid */ 245); -var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ 248); -var USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ 306); +var path = __webpack_require__(/*! ../internals/path */ 51); -var WellKnownSymbolsStore = shared('wks'); -var Symbol = global.Symbol; -var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid; - -module.exports = function (name) { - if (!has(WellKnownSymbolsStore, name)) { - if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name]; - else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); - } return WellKnownSymbolsStore[name]; +module.exports = function (CONSTRUCTOR) { + return path[CONSTRUCTOR + 'Prototype']; }; /***/ }), -/* 70 */ -/*!*********************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/for-each.js ***! - \*********************************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/stable/instance/for-each */ 258); - -/***/ }), -/* 71 */ +/* 72 */ /*!********************************!*\ !*** ./dev/Stores/Language.js ***! \********************************/ @@ -10278,7 +10171,7 @@ var LanguageStore = /*#__PURE__*/function () { /* harmony default export */ __webpack_exports__["a"] = (new LanguageStore()); /***/ }), -/* 72 */ +/* 73 */ /*!*************************************************************!*\ !*** ./node_modules/core-js/internals/to-indexed-object.js ***! \*************************************************************/ @@ -10287,7 +10180,7 @@ var LanguageStore = /*#__PURE__*/function () { /***/ (function(module, exports, __webpack_require__) { // toObject with fallback for non-array-like ES3 strings -var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ 119); +var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ 129); var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ 56); module.exports = function (it) { @@ -10296,30 +10189,48 @@ module.exports = function (it) { /***/ }), -/* 73 */ -/*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/to-length.js ***! - \*****************************************************/ +/* 74 */ +/*!*******************************************************!*\ + !*** ./node_modules/core-js/internals/classof-raw.js ***! + \*******************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports) { + +var toString = {}.toString; + +module.exports = function (it) { + return toString.call(it).slice(8, -1); +}; + + +/***/ }), +/* 75 */ +/*!*************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/get-built-in.js ***! + \*************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var toInteger = __webpack_require__(/*! ../internals/to-integer */ 81); +var path = __webpack_require__(/*! ../internals/path */ 51); +var global = __webpack_require__(/*! ../internals/global */ 31); -var min = Math.min; +var aFunction = function (variable) { + return typeof variable == 'function' ? variable : undefined; +}; -// `ToLength` abstract operation -// https://tc39.github.io/ecma262/#sec-tolength -module.exports = function (argument) { - return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 +module.exports = function (namespace, method) { + return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) + : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method]; }; /***/ }), -/* 74 */ -/*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/iterators.js ***! - \*****************************************************/ +/* 76 */ +/*!**********************************************************!*\ + !*** ./node_modules/core-js-pure/internals/iterators.js ***! + \**********************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports) { @@ -10328,7 +10239,7 @@ module.exports = {}; /***/ }), -/* 75 */ +/* 77 */ /*!*******************************************************!*\ !*** ./node_modules/core-js/modules/es.array.join.js ***! \*******************************************************/ @@ -10337,10 +10248,10 @@ module.exports = {}; "use strict"; -var $ = __webpack_require__(/*! ../internals/export */ 50); -var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ 119); -var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 72); -var arrayMethodIsStrict = __webpack_require__(/*! ../internals/array-method-is-strict */ 287); +var $ = __webpack_require__(/*! ../internals/export */ 65); +var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ 129); +var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 73); +var arrayMethodIsStrict = __webpack_require__(/*! ../internals/array-method-is-strict */ 285); var nativeJoin = [].join; @@ -10348,7 +10259,7 @@ var ES3_STRINGS = IndexedObject != Object; var STRICT_METHOD = arrayMethodIsStrict('join', ','); // `Array.prototype.join` method -// https://tc39.github.io/ecma262/#sec-array.prototype.join +// https://tc39.es/ecma262/#sec-array.prototype.join $({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, { join: function join(separator) { return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator); @@ -10357,86 +10268,98 @@ $({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, { /***/ }), -/* 76 */ -/*!************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/descriptors.js ***! - \************************************************************/ +/* 78 */, +/* 79 */ +/*!********************************************************!*\ + !*** ./node_modules/core-js/internals/get-built-in.js ***! + \********************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var fails = __webpack_require__(/*! ../internals/fails */ 55); - -// Detect IE8's incomplete defineProperty implementation -module.exports = !fails(function () { - return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; -}); - +var path = __webpack_require__(/*! ../internals/path */ 166); +var global = __webpack_require__(/*! ../internals/global */ 30); -/***/ }), -/* 77 */ -/*!**********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/is-object.js ***! - \**********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { +var aFunction = function (variable) { + return typeof variable == 'function' ? variable : undefined; +}; -module.exports = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; +module.exports = function (namespace, method) { + return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) + : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method]; }; /***/ }), -/* 78 */ -/*!****************************************************!*\ - !*** ./node_modules/core-js-pure/internals/has.js ***! - \****************************************************/ +/* 80 */ +/*!******************************************************!*\ + !*** ./node_modules/core-js/internals/to-integer.js ***! + \******************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports) { -var hasOwnProperty = {}.hasOwnProperty; +var ceil = Math.ceil; +var floor = Math.floor; -module.exports = function (it, key) { - return hasOwnProperty.call(it, key); +// `ToInteger` abstract operation +// https://tc39.es/ecma262/#sec-tointeger +module.exports = function (argument) { + return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); }; /***/ }), -/* 79 */, -/* 80 */ -/*!***************************************************!*\ - !*** ./node_modules/core-js/internals/is-pure.js ***! - \***************************************************/ +/* 81 */ +/*!******************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/to-indexed-object.js ***! + \******************************************************************/ /*! no static exports found */ /*! all exports used */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -module.exports = false; +// toObject with fallback for non-array-like ES3 strings +var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ 171); +var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ 115); + +module.exports = function (it) { + return IndexedObject(requireObjectCoercible(it)); +}; /***/ }), -/* 81 */ -/*!******************************************************!*\ - !*** ./node_modules/core-js/internals/to-integer.js ***! - \******************************************************/ +/* 82 */ +/*!***********************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/object-define-property.js ***! + \***********************************************************************/ /*! no static exports found */ /*! all exports used */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -var ceil = Math.ceil; -var floor = Math.floor; +var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 53); +var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ 187); +var anObject = __webpack_require__(/*! ../internals/an-object */ 58); +var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ 159); -// `ToInteger` abstract operation -// https://tc39.github.io/ecma262/#sec-tointeger -module.exports = function (argument) { - return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); +var nativeDefineProperty = Object.defineProperty; + +// `Object.defineProperty` method +// https://tc39.es/ecma262/#sec-object.defineproperty +exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if (IE8_DOM_DEFINE) try { + return nativeDefineProperty(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; }; /***/ }), -/* 82 */ +/* 83 */ /*!****************************!*\ !*** ./dev/Model/Email.js ***! \****************************/ @@ -10448,28 +10371,23 @@ module.exports = function (argument) { __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EmailModel", function() { return EmailModel; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return EmailModel; }); -/* harmony import */ var core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.function.name */ 51); -/* harmony import */ var core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.regexp.exec */ 45); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.string.replace */ 57); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var core_js_modules_es_string_search__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.string.search */ 278); -/* harmony import */ var core_js_modules_es_string_search__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_search__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 18); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/for-each */ 70); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/index-of */ 30); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/defineProperty */ 17); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var emailjs_addressparser__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! emailjs-addressparser */ 166); -/* harmony import */ var emailjs_addressparser__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(emailjs_addressparser__WEBPACK_IMPORTED_MODULE_9__); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Common/Utils */ 2); - - +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 17); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ 48); +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ 45); +/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var core_js_modules_es_string_search_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.string.search.js */ 316); +/* harmony import */ var core_js_modules_es_string_search_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_search_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ 152); +/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ 59); +/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var emailjs_addressparser__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! emailjs-addressparser */ 179); +/* harmony import */ var emailjs_addressparser__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(emailjs_addressparser__WEBPACK_IMPORTED_MODULE_7__); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Common/Utils */ 2); @@ -10504,14 +10422,10 @@ var EmailModel = /*#__PURE__*/function () { dkimValue = ''; } - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"])(this, "email", ''); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"])(this, "name", ''); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"])(this, "dkimStatus", ''); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"])(this, "dkimValue", ''); - + this.email = ''; + this.name = ''; + this.dkimStatus = ''; + this.dkimValue = ''; this.email = email; this.name = name; this.dkimStatus = dkimStatus; @@ -10580,9 +10494,7 @@ var EmailModel = /*#__PURE__*/function () { ; _proto.search = function search(query) { - var _context; - - return -1 < _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_6___default()(_context = (this.name + ' ' + this.email).toLowerCase()).call(_context, query.toLowerCase()); + return -1 < (this.name + ' ' + this.email).toLowerCase().indexOf(query.toLowerCase()); } /** * @param {AjaxJsonEmail} oJsonEmail @@ -10594,10 +10506,10 @@ var EmailModel = /*#__PURE__*/function () { var result = false; if (json && 'Object/Email' === json['@Object']) { - this.name = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["trim"])(json.Name); - this.email = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["trim"])(json.Email); - this.dkimStatus = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["trim"])(json.DkimStatus || ''); - this.dkimValue = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["trim"])(json.DkimValue || ''); + this.name = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["trim"])(json.Name); + this.email = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["trim"])(json.Email); + this.dkimStatus = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["trim"])(json.DkimStatus || ''); + this.dkimValue = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["trim"])(json.DkimValue || ''); result = '' !== this.email; this.clearDuplicateName(); } @@ -10625,14 +10537,14 @@ var EmailModel = /*#__PURE__*/function () { if ('' !== this.email) { if (friendlyView && '' !== this.name) { - result = wrapWithLink ? '
') + '" target="_blank" tabindex="-1">' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["encodeHtml"])(this.name) + '' : useEncodeHtml ? Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["encodeHtml"])(this.name) : this.name; // result = wrapWithLink ? '') + + result = wrapWithLink ? '') + '" target="_blank" tabindex="-1">' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["encodeHtml"])(this.name) + '' : useEncodeHtml ? Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["encodeHtml"])(this.name) : this.name; // result = wrapWithLink ? '') + // '" target="_blank" tabindex="-1">' + encodeHtml(this.name) + '' : (useEncodeHtml ? encodeHtml(this.name) : this.name); } else { result = this.email; if ('' !== this.name) { if (wrapWithLink) { - result = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["encodeHtml"])('"' + this.name + '" <') + '') + '" target="_blank" tabindex="-1">' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["encodeHtml"])(result) + '' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["encodeHtml"])('>'); // result = encodeHtml('"' + this.name + '" <') + '') + '" target="_blank" tabindex="-1">' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["encodeHtml"])(result) + '' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["encodeHtml"])('>'); // result = encodeHtml('"' + this.name + '" <') + '') + // '" target="_blank" tabindex="-1">' + // encodeHtml(result) + @@ -10642,11 +10554,11 @@ var EmailModel = /*#__PURE__*/function () { result = '"' + this.name + '" <' + result + '>'; if (useEncodeHtml) { - result = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["encodeHtml"])(result); + result = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["encodeHtml"])(result); } } } else if (wrapWithLink) { - result = '' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["encodeHtml"])(this.email) + ''; + result = '' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["encodeHtml"])(this.email) + ''; } } } @@ -10655,13 +10567,12 @@ var EmailModel = /*#__PURE__*/function () { }; EmailModel.splitEmailLine = function splitEmailLine(line) { - var parsedResult = emailjs_addressparser__WEBPACK_IMPORTED_MODULE_9___default()(line); + var parsedResult = emailjs_addressparser__WEBPACK_IMPORTED_MODULE_7___default()(line); - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["isNonEmptyArray"])(parsedResult)) { + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["isNonEmptyArray"])(parsedResult)) { var result = []; var exists = false; - - _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_5___default()(parsedResult).call(parsedResult, function (item) { + parsedResult.forEach(function (item) { var address = item.address ? new EmailModel(item.address.replace(/^[<]+(.*)[>]+$/g, '$1'), item.name || '') : null; if (address && address.email) { @@ -10670,7 +10581,6 @@ var EmailModel = /*#__PURE__*/function () { result.push(address ? address.toLine(false) : item.name); }); - return exists ? result : null; } @@ -10678,10 +10588,10 @@ var EmailModel = /*#__PURE__*/function () { }; EmailModel.parseEmailLine = function parseEmailLine(line) { - var parsedResult = emailjs_addressparser__WEBPACK_IMPORTED_MODULE_9___default()(line); + var parsedResult = emailjs_addressparser__WEBPACK_IMPORTED_MODULE_7___default()(line); - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["isNonEmptyArray"])(parsedResult)) { - return ___WEBPACK_IMPORTED_MODULE_8___default.a.compact(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4___default()(___WEBPACK_IMPORTED_MODULE_8___default.a).call(___WEBPACK_IMPORTED_MODULE_8___default.a, parsedResult, function (item) { + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["isNonEmptyArray"])(parsedResult)) { + return ___WEBPACK_IMPORTED_MODULE_6___default.a.compact(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_6___default.a).call(___WEBPACK_IMPORTED_MODULE_6___default.a, parsedResult, function (item) { return item.address ? new EmailModel(item.address.replace(/^[<]+(.*)[>]+$/g, '$1'), item.name || '') : null; })); } @@ -10695,15 +10605,15 @@ var EmailModel = /*#__PURE__*/function () { ; _proto.parse = function parse(emailAddress) { - emailAddress = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["trim"])(emailAddress); + emailAddress = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["trim"])(emailAddress); if ('' === emailAddress) { return false; } - var result = emailjs_addressparser__WEBPACK_IMPORTED_MODULE_9___default()(emailAddress); + var result = emailjs_addressparser__WEBPACK_IMPORTED_MODULE_7___default()(emailAddress); - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["isNonEmptyArray"])(result) && result[0]) { + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_8__["isNonEmptyArray"])(result) && result[0]) { this.name = result[0].name || ''; this.email = result[0].address || ''; this.clearDuplicateName(); @@ -10719,7 +10629,7 @@ var EmailModel = /*#__PURE__*/function () { /***/ }), -/* 83 */ +/* 84 */ /*!*****************************!*\ !*** ./dev/Common/Audio.js ***! \*****************************/ @@ -10728,18 +10638,16 @@ var EmailModel = /*#__PURE__*/function () { /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec */ 45); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.replace */ 57); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/defineProperty */ 17); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Globals */ 6); -/* harmony import */ var Common_Links__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Links */ 15); -/* harmony import */ var Common_Events__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Common/Events */ 24); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Common/Utils */ 2); - +/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ 45); +/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ 59); +/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! window */ 4); +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/Globals */ 6); +/* harmony import */ var Common_Links__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Links */ 15); +/* harmony import */ var Common_Events__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Events */ 23); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Common/Utils */ 2); @@ -10752,22 +10660,15 @@ var Audio = /*#__PURE__*/function () { function Audio() { var _this = this; - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(this, "notificator", null); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(this, "player", null); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(this, "supported", false); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(this, "supportedMp3", false); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(this, "supportedOgg", false); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(this, "supportedWav", false); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(this, "supportedNotification", false); - + this.notificator = null; + this.player = null; + this.supported = false; + this.supportedMp3 = false; + this.supportedOgg = false; + this.supportedWav = false; + this.supportedNotification = false; this.player = this.createNewObject(); - this.supported = !Common_Globals__WEBPACK_IMPORTED_MODULE_4__["bMobileDevice"] && !Common_Globals__WEBPACK_IMPORTED_MODULE_4__["bSafari"] && !!this.player && !!this.player.play; + this.supported = !Common_Globals__WEBPACK_IMPORTED_MODULE_3__["bMobileDevice"] && !Common_Globals__WEBPACK_IMPORTED_MODULE_3__["bSafari"] && !!this.player && !!this.player.play; if (this.supported && this.player && this.player.canPlayType) { this.supportedMp3 = '' !== this.player.canPlayType('audio/mpeg;').replace(/no/, ''); @@ -10791,7 +10692,7 @@ var Audio = /*#__PURE__*/function () { this.player.addEventListener('ended', stopFn); this.player.addEventListener('error', stopFn); - Common_Events__WEBPACK_IMPORTED_MODULE_6__[/* sub */ "b"]('audio.api.stop', stopFn); + Common_Events__WEBPACK_IMPORTED_MODULE_5__[/* sub */ "b"]('audio.api.stop', stopFn); } } @@ -10799,7 +10700,7 @@ var Audio = /*#__PURE__*/function () { _proto.createNewObject = function createNewObject() { try { - var player = window__WEBPACK_IMPORTED_MODULE_3___default.a.Audio ? new window__WEBPACK_IMPORTED_MODULE_3___default.a.Audio() : null; + var player = window__WEBPACK_IMPORTED_MODULE_2___default.a.Audio ? new window__WEBPACK_IMPORTED_MODULE_2___default.a.Audio() : null; if (player && player.canPlayType && player.pause && player.play) { player.preload = 'none'; @@ -10824,7 +10725,7 @@ var Audio = /*#__PURE__*/function () { this.player.pause(); } - Common_Events__WEBPACK_IMPORTED_MODULE_6__[/* pub */ "a"]('audio.stop'); + Common_Events__WEBPACK_IMPORTED_MODULE_5__[/* pub */ "a"]('audio.stop'); }; _proto.pause = function pause() { @@ -10840,10 +10741,10 @@ var Audio = /*#__PURE__*/function () { ext = ''; } - name = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_7__["trim"])(name); + name = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_6__["trim"])(name); if (ext && '.' + ext === name.toLowerCase().substr((ext.length + 1) * -1)) { - name = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_7__["trim"])(name.substr(0, name.length - 4)); + name = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_6__["trim"])(name.substr(0, name.length - 4)); } return '' === name ? 'audio' : name; @@ -10853,7 +10754,7 @@ var Audio = /*#__PURE__*/function () { if (this.supported && this.supportedMp3) { this.player.src = url; this.player.play(); - Common_Events__WEBPACK_IMPORTED_MODULE_6__[/* pub */ "a"]('audio.start', [this.clearName(name, 'mp3'), 'mp3']); + Common_Events__WEBPACK_IMPORTED_MODULE_5__[/* pub */ "a"]('audio.start', [this.clearName(name, 'mp3'), 'mp3']); } }; @@ -10863,7 +10764,7 @@ var Audio = /*#__PURE__*/function () { this.player.play(); name = this.clearName(name, 'oga'); name = this.clearName(name, 'ogg'); - Common_Events__WEBPACK_IMPORTED_MODULE_6__[/* pub */ "a"]('audio.start', [name, 'ogg']); + Common_Events__WEBPACK_IMPORTED_MODULE_5__[/* pub */ "a"]('audio.start', [name, 'ogg']); } }; @@ -10871,7 +10772,7 @@ var Audio = /*#__PURE__*/function () { if (this.supported && this.supportedWav) { this.player.src = url; this.player.play(); - Common_Events__WEBPACK_IMPORTED_MODULE_6__[/* pub */ "a"]('audio.start', [this.clearName(name, 'wav'), 'wav']); + Common_Events__WEBPACK_IMPORTED_MODULE_5__[/* pub */ "a"]('audio.start', [this.clearName(name, 'wav'), 'wav']); } }; @@ -10879,7 +10780,7 @@ var Audio = /*#__PURE__*/function () { if (this.supported && this.supportedMp3) { if (!this.notificator) { this.notificator = this.createNewObject(); - this.notificator.src = Common_Links__WEBPACK_IMPORTED_MODULE_5__[/* sound */ "D"]('new-mail.mp3'); + this.notificator.src = Common_Links__WEBPACK_IMPORTED_MODULE_4__[/* sound */ "D"]('new-mail.mp3'); } if (this.notificator && this.notificator.play) { @@ -10894,66 +10795,59 @@ var Audio = /*#__PURE__*/function () { /* harmony default export */ __webpack_exports__["a"] = (new Audio()); /***/ }), -/* 84 */ -/*!*******************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/create-non-enumerable-property.js ***! - \*******************************************************************************/ +/* 85 */ +/*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/to-length.js ***! + \*****************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 76); -var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ 137); -var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ 155); +var toInteger = __webpack_require__(/*! ../internals/to-integer */ 80); -module.exports = DESCRIPTORS ? function (object, key, value) { - return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; +var min = Math.min; + +// `ToLength` abstract operation +// https://tc39.es/ecma262/#sec-tolength +module.exports = function (argument) { + return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 }; /***/ }), -/* 85 */ -/*!****************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/array-method-uses-to-length.js ***! - \****************************************************************************/ +/* 86 */ +/*!*************************************************************!*\ + !*** ./node_modules/core-js/modules/es.object.to-string.js ***! + \*************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 76); -var fails = __webpack_require__(/*! ../internals/fails */ 55); -var has = __webpack_require__(/*! ../internals/has */ 78); - -var defineProperty = Object.defineProperty; -var cache = {}; - -var thrower = function (it) { throw it; }; +var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ 100); +var redefine = __webpack_require__(/*! ../internals/redefine */ 69); +var toString = __webpack_require__(/*! ../internals/object-to-string */ 217); -module.exports = function (METHOD_NAME, options) { - if (has(cache, METHOD_NAME)) return cache[METHOD_NAME]; - if (!options) options = {}; - var method = [][METHOD_NAME]; - var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false; - var argument0 = has(options, 0) ? options[0] : thrower; - var argument1 = has(options, 1) ? options[1] : undefined; +// `Object.prototype.toString` method +// https://tc39.es/ecma262/#sec-object.prototype.tostring +if (!TO_STRING_TAG_SUPPORT) { + redefine(Object.prototype, 'toString', toString, { unsafe: true }); +} - return cache[METHOD_NAME] = !!method && !fails(function () { - if (ACCESSORS && !DESCRIPTORS) return true; - var O = { length: -1 }; - if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower }); - else O[1] = 1; +/***/ }), +/* 87 */ +/*!********************************************************!*\ + !*** ./node_modules/core-js-pure/internals/is-pure.js ***! + \********************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports) { - method.call(O, argument0, argument1); - }); -}; +module.exports = true; /***/ }), -/* 86 */ +/* 88 */ /*!****************************************!*\ !*** ./dev/Component/AbstractInput.js ***! \****************************************/ @@ -10964,14 +10858,14 @@ module.exports = function (METHOD_NAME, options) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AbstractInput; }); /* unused harmony export default */ -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find */ 12); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/assertThisInitialized */ 33); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/assertThisInitialized */ 29); +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find */ 12); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ko */ 1); /* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Utils */ 2); /* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Component_Abstract__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Component/Abstract */ 35); +/* harmony import */ var Component_Abstract__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Component/Abstract */ 32); @@ -10981,7 +10875,7 @@ module.exports = function (METHOD_NAME, options) { var AbstractInput = /*#__PURE__*/function (_AbstractComponent) { - Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(AbstractInput, _AbstractComponent); + Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(AbstractInput, _AbstractComponent); /** * @param {Object} params @@ -11010,7 +10904,7 @@ var AbstractInput = /*#__PURE__*/function (_AbstractComponent) { if (!Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["isUnd"])(params.width) && params.element) { var _context; - _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default()(_context = params.element).call(_context, 'input,select,textarea').css('width', params.width); + _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_2___default()(_context = params.element).call(_context, 'input,select,textarea').css('width', params.width); } _this.disposable.push(_this.className); @@ -11018,7 +10912,7 @@ var AbstractInput = /*#__PURE__*/function (_AbstractComponent) { if (_this.trigger) { _this.setTriggerState(_this.trigger()); - _this.disposable.push(_this.trigger.subscribe(_this.setTriggerState, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(_this))); + _this.disposable.push(_this.trigger.subscribe(_this.setTriggerState, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_this))); } return _this; @@ -11048,80 +10942,102 @@ var AbstractInput = /*#__PURE__*/function (_AbstractComponent) { /***/ }), -/* 87 */, -/* 88 */ +/* 89 */, +/* 90 */ +/*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/to-object.js ***! + \*****************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ 56); + +// `ToObject` abstract operation +// https://tc39.es/ecma262/#sec-toobject +module.exports = function (argument) { + return Object(requireObjectCoercible(argument)); +}; + + +/***/ }), +/* 91 */ +/*!***************************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/create-property-descriptor.js ***! + \***************************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports) { + +module.exports = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + + +/***/ }), +/* 92 */ /*!**********************************************************!*\ - !*** ./node_modules/core-js/internals/internal-state.js ***! + !*** ./node_modules/core-js-pure/internals/to-length.js ***! \**********************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var NATIVE_WEAK_MAP = __webpack_require__(/*! ../internals/native-weak-map */ 180); -var global = __webpack_require__(/*! ../internals/global */ 27); -var isObject = __webpack_require__(/*! ../internals/is-object */ 44); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 48); -var objectHas = __webpack_require__(/*! ../internals/has */ 42); -var sharedKey = __webpack_require__(/*! ../internals/shared-key */ 107); -var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ 103); +var toInteger = __webpack_require__(/*! ../internals/to-integer */ 143); -var WeakMap = global.WeakMap; -var set, get, has; +var min = Math.min; -var enforce = function (it) { - return has(it) ? get(it) : set(it, {}); +// `ToLength` abstract operation +// https://tc39.es/ecma262/#sec-tolength +module.exports = function (argument) { + return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 }; -var getterFor = function (TYPE) { - return function (it) { - var state; - if (!isObject(it) || (state = get(it)).type !== TYPE) { - throw TypeError('Incompatible receiver, ' + TYPE + ' required'); - } return state; - }; -}; -if (NATIVE_WEAK_MAP) { - var store = new WeakMap(); - var wmget = store.get; - var wmhas = store.has; - var wmset = store.set; - set = function (it, metadata) { - wmset.call(store, it, metadata); - return metadata; - }; - get = function (it) { - return wmget.call(store, it) || {}; - }; - has = function (it) { - return wmhas.call(store, it); - }; -} else { - var STATE = sharedKey('state'); - hiddenKeys[STATE] = true; - set = function (it, metadata) { - createNonEnumerableProperty(it, STATE, metadata); - return metadata; - }; - get = function (it) { - return objectHas(it, STATE) ? it[STATE] : {}; - }; - has = function (it) { - return objectHas(it, STATE); - }; -} +/***/ }), +/* 93 */ +/*!********************************************************!*\ + !*** ./node_modules/core-js-pure/internals/classof.js ***! + \********************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { -module.exports = { - set: set, - get: get, - has: has, - enforce: enforce, - getterFor: getterFor +var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ 145); +var classofRaw = __webpack_require__(/*! ../internals/classof-raw */ 114); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 38); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +// ES3 wrong here +var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; + +// fallback for IE11 Script Access Denied error +var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } +}; + +// getting tag from ES6+ `Object.prototype.toString` +module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw(O) + // ES3 arguments fallback + : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result; }; /***/ }), -/* 89 */ +/* 94 */ /*!***********************************!*\ !*** ./dev/Promises/User/Ajax.js ***! \***********************************/ @@ -11130,13 +11046,13 @@ module.exports = { /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.timers */ 68); -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/set-timeout */ 33); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var window__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! window */ 4); /* harmony import */ var window__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var Promises_User_Populator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Promises/User/Populator */ 399); -/* harmony import */ var Promises_AbstractAjax__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Promises/AbstractAjax */ 429); +/* harmony import */ var Promises_User_Populator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Promises/User/Populator */ 407); +/* harmony import */ var Promises_AbstractAjax__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Promises/AbstractAjax */ 442); @@ -11144,7 +11060,7 @@ module.exports = { var UserAjaxUserPromises = /*#__PURE__*/function (_AbstractAjaxPromises) { - Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(UserAjaxUserPromises, _AbstractAjaxPromises); + Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(UserAjaxUserPromises, _AbstractAjaxPromises); function UserAjaxUserPromises() { var _this; @@ -11169,7 +11085,7 @@ var UserAjaxUserPromises = /*#__PURE__*/function (_AbstractAjaxPromises) { this.setTrigger(fTrigger, true); window__WEBPACK_IMPORTED_MODULE_2___default.a.clearTimeout(this.foldersTimeout); - this.foldersTimeout = window__WEBPACK_IMPORTED_MODULE_2___default.a.setTimeout(function () { + this.foldersTimeout = _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_1___default()(function () { _this2.foldersReload(fTrigger); }, 500); }; @@ -11211,39 +11127,8 @@ var UserAjaxUserPromises = /*#__PURE__*/function (_AbstractAjaxPromises) { /* harmony default export */ __webpack_exports__["a"] = (new UserAjaxUserPromises()); /***/ }), -/* 90 */, -/* 91 */ -/*!******************************************************************************!*\ - !*** ./node_modules/core-js/internals/object-get-own-property-descriptor.js ***! - \******************************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 47); -var propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ 167); -var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ 92); -var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 72); -var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ 125); -var has = __webpack_require__(/*! ../internals/has */ 42); -var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ 126); - -var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - -// `Object.getOwnPropertyDescriptor` method -// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor -exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { - O = toIndexedObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return nativeGetOwnPropertyDescriptor(O, P); - } catch (error) { /* empty */ } - if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); -}; - - -/***/ }), -/* 92 */ +/* 95 */, +/* 96 */ /*!**********************************************************************!*\ !*** ./node_modules/core-js/internals/create-property-descriptor.js ***! \**********************************************************************/ @@ -11262,7 +11147,7 @@ module.exports = function (bitmap, value) { /***/ }), -/* 93 */ +/* 97 */ /*!******************************************************!*\ !*** ./node_modules/core-js/internals/set-global.js ***! \******************************************************/ @@ -11270,8 +11155,8 @@ module.exports = function (bitmap, value) { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var global = __webpack_require__(/*! ../internals/global */ 27); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 48); +var global = __webpack_require__(/*! ../internals/global */ 30); +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 47); module.exports = function (key, value) { try { @@ -11283,30 +11168,37 @@ module.exports = function (key, value) { /***/ }), -/* 94 */ -/*!**********************************************************!*\ - !*** ./node_modules/core-js/internals/inspect-source.js ***! - \**********************************************************/ +/* 98 */ +/*!********************************************************!*\ + !*** ./node_modules/core-js/internals/shared-store.js ***! + \********************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var store = __webpack_require__(/*! ../internals/shared-store */ 127); +var global = __webpack_require__(/*! ../internals/global */ 30); +var setGlobal = __webpack_require__(/*! ../internals/set-global */ 97); -var functionToString = Function.toString; +var SHARED = '__core-js_shared__'; +var store = global[SHARED] || setGlobal(SHARED, {}); -// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper -if (typeof store.inspectSource != 'function') { - store.inspectSource = function (it) { - return functionToString.call(it); - }; -} +module.exports = store; -module.exports = store.inspectSource; + +/***/ }), +/* 99 */ +/*!***************************************************!*\ + !*** ./node_modules/core-js/internals/is-pure.js ***! + \***************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports) { + +module.exports = false; /***/ }), -/* 95 */ +/* 100 */ /*!*****************************************************************!*\ !*** ./node_modules/core-js/internals/to-string-tag-support.js ***! \*****************************************************************/ @@ -11314,7 +11206,7 @@ module.exports = store.inspectSource; /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 39); var TO_STRING_TAG = wellKnownSymbol('toStringTag'); var test = {}; @@ -11325,37 +11217,7 @@ module.exports = String(test) === '[object z]'; /***/ }), -/* 96 */ -/*!******************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/to-indexed-object.js ***! - \******************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -// toObject with fallback for non-array-like ES3 strings -var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ 199); -var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ 200); - -module.exports = function (it) { - return IndexedObject(requireObjectCoercible(it)); -}; - - -/***/ }), -/* 97 */ -/*!*****************************************************!*\ - !*** ./node_modules/core-js-pure/internals/path.js ***! - \*****************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = {}; - - -/***/ }), -/* 98 */ +/* 101 */ /*!********************************!*\ !*** external "window.moment" ***! \********************************/ @@ -11366,7 +11228,7 @@ module.exports = {}; module.exports = window.moment; /***/ }), -/* 99 */ +/* 102 */ /*!************************************!*\ !*** external "window.progressJs" ***! \************************************/ @@ -11377,7 +11239,7 @@ module.exports = window.moment; module.exports = window.progressJs; /***/ }), -/* 100 */ +/* 103 */ /*!*************************************!*\ !*** ./dev/Stores/User/Identity.js ***! \*************************************/ @@ -11386,7 +11248,7 @@ module.exports = window.progressJs; /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 18); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 17); /* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! _ */ 3); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_1__); @@ -11412,7 +11274,7 @@ var IdentityUserStore = function IdentityUserStore() { /* harmony default export */ __webpack_exports__["a"] = (new IdentityUserStore()); /***/ }), -/* 101 */ +/* 104 */ /*!************************************!*\ !*** ./dev/Stores/User/Contact.js ***! \************************************/ @@ -11469,28 +11331,28 @@ var ContactUserStore = /*#__PURE__*/function () { /* harmony default export */ __webpack_exports__["a"] = (new ContactUserStore()); /***/ }), -/* 102 */ -/*!*******************************************************************!*\ - !*** ./node_modules/core-js/internals/document-create-element.js ***! - \*******************************************************************/ +/* 105 */ +/*!**************************************************!*\ + !*** ./node_modules/core-js/internals/shared.js ***! + \**************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var global = __webpack_require__(/*! ../internals/global */ 27); -var isObject = __webpack_require__(/*! ../internals/is-object */ 44); - -var document = global.document; -// typeof document.createElement is 'object' in old IE -var EXISTS = isObject(document) && isObject(document.createElement); +var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ 99); +var store = __webpack_require__(/*! ../internals/shared-store */ 98); -module.exports = function (it) { - return EXISTS ? document.createElement(it) : {}; -}; +(module.exports = function (key, value) { + return store[key] || (store[key] = value !== undefined ? value : {}); +})('versions', []).push({ + version: '3.12.0', + mode: IS_PURE ? 'pure' : 'global', + copyright: '© 2021 Denis Pushkarev (zloirock.ru)' +}); /***/ }), -/* 103 */ +/* 106 */ /*!*******************************************************!*\ !*** ./node_modules/core-js/internals/hidden-keys.js ***! \*******************************************************/ @@ -11502,66 +11364,117 @@ module.exports = {}; /***/ }), -/* 104 */ -/*!*****************************************************************!*\ - !*** ./node_modules/core-js/internals/function-bind-context.js ***! - \*****************************************************************/ +/* 107 */ +/*!******************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/engine-user-agent.js ***! + \******************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var aFunction = __webpack_require__(/*! ../internals/a-function */ 67); +var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ 75); -// optional / simple context binding -module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - switch (length) { - case 0: return function () { - return fn.call(that); - }; - case 1: return function (a) { - return fn.call(that, a); - }; - case 2: return function (a, b) { - return fn.call(that, a, b); - }; - case 3: return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - return function (/* ...args */) { - return fn.apply(that, arguments); +module.exports = getBuiltIn('navigator', 'userAgent') || ''; + + +/***/ }), +/* 108 */ +/*!********************************************************!*\ + !*** ./node_modules/core-js-pure/internals/iterate.js ***! + \********************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var anObject = __webpack_require__(/*! ../internals/an-object */ 58); +var isArrayIteratorMethod = __webpack_require__(/*! ../internals/is-array-iterator-method */ 261); +var toLength = __webpack_require__(/*! ../internals/to-length */ 92); +var bind = __webpack_require__(/*! ../internals/function-bind-context */ 116); +var getIteratorMethod = __webpack_require__(/*! ../internals/get-iterator-method */ 263); +var iteratorClose = __webpack_require__(/*! ../internals/iterator-close */ 264); + +var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; +}; + +module.exports = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED); + var iterator, iterFn, index, length, result, next, step; + + var stop = function (condition) { + if (iterator) iteratorClose(iterator); + return new Result(true, condition); }; + + var callFn = function (value) { + if (AS_ENTRIES) { + anObject(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } return INTERRUPTED ? fn(value, stop) : fn(value); + }; + + if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod(iterable); + if (typeof iterFn != 'function') throw TypeError('Target is not iterable'); + // optimisation for array iterators + if (isArrayIteratorMethod(iterFn)) { + for (index = 0, length = toLength(iterable.length); length > index; index++) { + result = callFn(iterable[index]); + if (result && result instanceof Result) return result; + } return new Result(false); + } + iterator = iterFn.call(iterable); + } + + next = iterator.next; + while (!(step = next.call(iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose(iterator); + throw error; + } + if (typeof result == 'object' && result && result instanceof Result) return result; + } return new Result(false); }; /***/ }), -/* 105 */ -/*!*************************************************************!*\ - !*** ./node_modules/core-js/internals/engine-user-agent.js ***! - \*************************************************************/ +/* 109 */ +/*!*********************************************************!*\ + !*** ./node_modules/core-js-pure/internals/redefine.js ***! + \*********************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ 59); +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 52); -module.exports = getBuiltIn('navigator', 'userAgent') || ''; +module.exports = function (target, key, value, options) { + if (options && options.enumerable) target[key] = value; + else createNonEnumerableProperty(target, key, value); +}; /***/ }), -/* 106 */ -/*!******************************************************************!*\ - !*** ./node_modules/core-js/internals/new-promise-capability.js ***! - \******************************************************************/ +/* 110 */ +/*!***********************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/new-promise-capability.js ***! + \***********************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var aFunction = __webpack_require__(/*! ../internals/a-function */ 67); +var aFunction = __webpack_require__(/*! ../internals/a-function */ 70); var PromiseCapability = function (C) { var resolve, reject; @@ -11581,7 +11494,7 @@ module.exports.f = function (C) { /***/ }), -/* 107 */ +/* 111 */ /*!******************************************************!*\ !*** ./node_modules/core-js/internals/shared-key.js ***! \******************************************************/ @@ -11589,8 +11502,8 @@ module.exports.f = function (C) { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var shared = __webpack_require__(/*! ../internals/shared */ 128); -var uid = __webpack_require__(/*! ../internals/uid */ 129); +var shared = __webpack_require__(/*! ../internals/shared */ 105); +var uid = __webpack_require__(/*! ../internals/uid */ 137); var keys = shared('keys'); @@ -11600,7 +11513,7 @@ module.exports = function (key) { /***/ }), -/* 108 */ +/* 112 */ /*!*********************************************************!*\ !*** ./node_modules/core-js/internals/enum-bug-keys.js ***! \*********************************************************/ @@ -11621,128 +11534,120 @@ module.exports = [ /***/ }), -/* 109 */ -/*!*************************************************************!*\ - !*** ./node_modules/core-js/internals/set-to-string-tag.js ***! - \*************************************************************/ +/* 113 */ +/*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/iterators.js ***! + \*****************************************************/ /*! no static exports found */ /*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var defineProperty = __webpack_require__(/*! ../internals/object-define-property */ 52).f; -var has = __webpack_require__(/*! ../internals/has */ 42); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); - -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +/***/ (function(module, exports) { -module.exports = function (it, TAG, STATIC) { - if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) { - defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG }); - } -}; +module.exports = {}; /***/ }), -/* 110 */ -/*!*******************************************************!*\ - !*** ./node_modules/core-js/internals/regexp-exec.js ***! - \*******************************************************/ +/* 114 */ +/*!************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/classof-raw.js ***! + \************************************************************/ /*! no static exports found */ /*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { +/***/ (function(module, exports) { -"use strict"; +var toString = {}.toString; -var regexpFlags = __webpack_require__(/*! ./regexp-flags */ 173); -var stickyHelpers = __webpack_require__(/*! ./regexp-sticky-helpers */ 236); +module.exports = function (it) { + return toString.call(it).slice(8, -1); +}; -var nativeExec = RegExp.prototype.exec; -// This always refers to the native implementation, because the -// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js, -// which loads this file before patching the method. -var nativeReplace = String.prototype.replace; -var patchedExec = nativeExec; +/***/ }), +/* 115 */ +/*!*************************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/require-object-coercible.js ***! + \*************************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports) { -var UPDATES_LAST_INDEX_WRONG = (function () { - var re1 = /a/; - var re2 = /b*/g; - nativeExec.call(re1, 'a'); - nativeExec.call(re2, 'a'); - return re1.lastIndex !== 0 || re2.lastIndex !== 0; -})(); +// `RequireObjectCoercible` abstract operation +// https://tc39.es/ecma262/#sec-requireobjectcoercible +module.exports = function (it) { + if (it == undefined) throw TypeError("Can't call method on " + it); + return it; +}; -var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET; -// nonparticipating capturing group, copied from es5-shim's String#split patch. -var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; +/***/ }), +/* 116 */ +/*!**********************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/function-bind-context.js ***! + \**********************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { -var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y; +var aFunction = __webpack_require__(/*! ../internals/a-function */ 70); -if (PATCH) { - patchedExec = function exec(str) { - var re = this; - var lastIndex, reCopy, match, i; - var sticky = UNSUPPORTED_Y && re.sticky; - var flags = regexpFlags.call(re); - var source = re.source; - var charsAdded = 0; - var strCopy = str; +// optional / simple context binding +module.exports = function (fn, that, length) { + aFunction(fn); + if (that === undefined) return fn; + switch (length) { + case 0: return function () { + return fn.call(that); + }; + case 1: return function (a) { + return fn.call(that, a); + }; + case 2: return function (a, b) { + return fn.call(that, a, b); + }; + case 3: return function (a, b, c) { + return fn.call(that, a, b, c); + }; + } + return function (/* ...args */) { + return fn.apply(that, arguments); + }; +}; - if (sticky) { - flags = flags.replace('y', ''); - if (flags.indexOf('g') === -1) { - flags += 'g'; - } - strCopy = String(str).slice(re.lastIndex); - // Support anchored sticky behavior. - if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) { - source = '(?: ' + source + ')'; - strCopy = ' ' + strCopy; - charsAdded++; - } - // ^(? + rx + ) is needed, in combination with some str slicing, to - // simulate the 'y' flag. - reCopy = new RegExp('^(?:' + source + ')', flags); - } +/***/ }), +/* 117 */ +/*!**********************************************************!*\ + !*** ./node_modules/core-js-pure/internals/to-object.js ***! + \**********************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { - if (NPCG_INCLUDED) { - reCopy = new RegExp('^' + source + '$(?!\\s)', flags); - } - if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; +var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ 115); - match = nativeExec.call(sticky ? reCopy : re, strCopy); +// `ToObject` abstract operation +// https://tc39.es/ecma262/#sec-toobject +module.exports = function (argument) { + return Object(requireObjectCoercible(argument)); +}; - if (sticky) { - if (match) { - match.input = match.input.slice(charsAdded); - match[0] = match[0].slice(charsAdded); - match.index = re.lastIndex; - re.lastIndex += match[0].length; - } else re.lastIndex = 0; - } else if (UPDATES_LAST_INDEX_WRONG && match) { - re.lastIndex = re.global ? match.index + match[0].length : lastIndex; - } - if (NPCG_INCLUDED && match && match.length > 1) { - // Fix browsers whose `exec` methods don't consistently return `undefined` - // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/ - nativeReplace.call(match[0], reCopy, function () { - for (i = 1; i < arguments.length - 2; i++) { - if (arguments[i] === undefined) match[i] = undefined; - } - }); - } - return match; - }; -} +/***/ }), +/* 118 */ +/*!***************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/engine-is-node.js ***! + \***************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { -module.exports = patchedExec; +var classof = __webpack_require__(/*! ../internals/classof-raw */ 114); +var global = __webpack_require__(/*! ../internals/global */ 31); + +module.exports = classof(global.process) == 'process'; /***/ }), -/* 111 */ +/* 119 */ /*!*************************************************************!*\ !*** ./node_modules/core-js/modules/es.regexp.to-string.js ***! \*************************************************************/ @@ -11751,10 +11656,10 @@ module.exports = patchedExec; "use strict"; -var redefine = __webpack_require__(/*! ../internals/redefine */ 53); -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); -var fails = __webpack_require__(/*! ../internals/fails */ 36); -var flags = __webpack_require__(/*! ../internals/regexp-flags */ 173); +var redefine = __webpack_require__(/*! ../internals/redefine */ 69); +var anObject = __webpack_require__(/*! ../internals/an-object */ 42); +var fails = __webpack_require__(/*! ../internals/fails */ 37); +var flags = __webpack_require__(/*! ../internals/regexp-flags */ 203); var TO_STRING = 'toString'; var RegExpPrototype = RegExp.prototype; @@ -11765,7 +11670,7 @@ var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', var INCORRECT_NAME = nativeToString.name != TO_STRING; // `RegExp.prototype.toString` method -// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring +// https://tc39.es/ecma262/#sec-regexp.prototype.tostring if (NOT_GENERIC || INCORRECT_NAME) { redefine(RegExp.prototype, TO_STRING, function toString() { var R = anObject(this); @@ -11778,27 +11683,45 @@ if (NOT_GENERIC || INCORRECT_NAME) { /***/ }), -/* 112 */ -/*!**********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/to-length.js ***! - \**********************************************************/ +/* 120 */ +/*!****************************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/array-method-uses-to-length.js ***! + \****************************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var toInteger = __webpack_require__(/*! ../internals/to-integer */ 202); - -var min = Math.min; +var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 53); +var fails = __webpack_require__(/*! ../internals/fails */ 43); +var has = __webpack_require__(/*! ../internals/has */ 54); -// `ToLength` abstract operation -// https://tc39.es/ecma262/#sec-tolength -module.exports = function (argument) { - return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 +var defineProperty = Object.defineProperty; +var cache = {}; + +var thrower = function (it) { throw it; }; + +module.exports = function (METHOD_NAME, options) { + if (has(cache, METHOD_NAME)) return cache[METHOD_NAME]; + if (!options) options = {}; + var method = [][METHOD_NAME]; + var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false; + var argument0 = has(options, 0) ? options[0] : thrower; + var argument1 = has(options, 1) ? options[1] : undefined; + + return cache[METHOD_NAME] = !!method && !fails(function () { + if (ACCESSORS && !DESCRIPTORS) return true; + var O = { length: -1 }; + + if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower }); + else O[1] = 1; + + method.call(O, argument0, argument1); + }); }; /***/ }), -/* 113 */ +/* 121 */ /*!*****************************!*\ !*** ./dev/Common/Jassl.js ***! \*****************************/ @@ -11808,13 +11731,10 @@ module.exports = function (argument) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return jassl; }); -/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.object.to-string */ 63); -/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_promise__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.promise */ 121); -/* harmony import */ var core_js_modules_es_promise__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_promise__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_2__); - +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_promise__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/promise */ 62); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_promise__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_promise__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! window */ 4); +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_1__); // let rainloopCaches = window.caches && window.caches.open ? window.caches : null; @@ -11829,7 +11749,7 @@ function jassl(src, async) { async = false; } - if (!window__WEBPACK_IMPORTED_MODULE_2___default.a.Promise || !window__WEBPACK_IMPORTED_MODULE_2___default.a.Promise.all) { + if (!_babel_runtime_corejs3_core_js_stable_promise__WEBPACK_IMPORTED_MODULE_0___default.a || !_babel_runtime_corejs3_core_js_stable_promise__WEBPACK_IMPORTED_MODULE_0___default.a.all) { throw new Error('Promises are not available your environment.'); } @@ -11837,8 +11757,8 @@ function jassl(src, async) { throw new Error('src should not be empty.'); } - return new window__WEBPACK_IMPORTED_MODULE_2___default.a.Promise(function (resolve, reject) { - var element = window__WEBPACK_IMPORTED_MODULE_2___default.a.document.createElement('script'); + return new _babel_runtime_corejs3_core_js_stable_promise__WEBPACK_IMPORTED_MODULE_0___default.a(function (resolve, reject) { + var element = window__WEBPACK_IMPORTED_MODULE_1___default.a.document.createElement('script'); element.onload = function () { resolve(src); @@ -11850,7 +11770,7 @@ function jassl(src, async) { element.async = true === async; element.src = src; - window__WEBPACK_IMPORTED_MODULE_2___default.a.document.body.appendChild(element); + window__WEBPACK_IMPORTED_MODULE_1___default.a.document.body.appendChild(element); }) /* .then((s) => { const found = s && rainloopCaches ? s.match(/rainloop\/v\/([^\/]+)\/static\//) : null; @@ -11868,7 +11788,7 @@ function jassl(src, async) { } /***/ }), -/* 114 */ +/* 122 */ /*!*******************************************************************************!*\ !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/values.js ***! \*******************************************************************************/ @@ -11876,10 +11796,10 @@ function jassl(src, async) { /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! core-js-pure/stable/instance/values */ 298); +module.exports = __webpack_require__(/*! core-js-pure/stable/instance/values */ 342); /***/ }), -/* 115 */ +/* 123 */ /*!*****************************!*\ !*** ./dev/Stores/Theme.js ***! \*****************************/ @@ -11921,7 +11841,7 @@ var ThemeStore = /*#__PURE__*/function () { /* harmony default export */ __webpack_exports__["a"] = (new ThemeStore()); /***/ }), -/* 116 */ +/* 124 */ /*!*****************************************!*\ !*** ./dev/Stores/User/Notification.js ***! \*****************************************/ @@ -11930,14 +11850,14 @@ var ThemeStore = /*#__PURE__*/function () { /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.timers */ 68); -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/set-timeout */ 33); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var window__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! window */ 4); /* harmony import */ var window__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ko */ 1); /* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Common_Events__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Events */ 24); -/* harmony import */ var Common_Audio__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Audio */ 83); +/* harmony import */ var Common_Events__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Events */ 23); +/* harmony import */ var Common_Audio__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Audio */ 84); /* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Storage/Settings */ 5); @@ -12085,7 +12005,7 @@ var NotificationUserStore = /*#__PURE__*/function () { }; } - window__WEBPACK_IMPORTED_MODULE_1___default.a.setTimeout(function (localNotifications) { + _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_0___default()(function (localNotifications) { return function () { if (localNotifications.cancel) { localNotifications.cancel(); @@ -12117,9 +12037,72 @@ var NotificationUserStore = /*#__PURE__*/function () { /* harmony default export */ __webpack_exports__["a"] = (new NotificationUserStore()); /***/ }), -/* 117 */, -/* 118 */, -/* 119 */ +/* 125 */, +/* 126 */, +/* 127 */ +/*!***********************************!*\ + !*** (webpack)/buildin/global.js ***! + \***********************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports) { + +var g; + +// This works in non-strict mode +g = (function() { + return this; +})(); + +try { + // This works if eval is allowed (see CSP) + g = g || new Function("return this")(); +} catch (e) { + // This works if the window reference is available + if (typeof window === "object") g = window; +} + +// g can still be undefined, but nothing to do about it... +// We return undefined, instead of nothing here, so it's +// easier to handle this case. if(!global) { ...} + +module.exports = g; + + +/***/ }), +/* 128 */ +/*!******************************************************************************!*\ + !*** ./node_modules/core-js/internals/object-get-own-property-descriptor.js ***! + \******************************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 55); +var propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ 180); +var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ 96); +var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 73); +var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ 134); +var has = __webpack_require__(/*! ../internals/has */ 44); +var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ 135); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPrimitive(P, true); + if (IE8_DOM_DEFINE) try { + return $getOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); +}; + + +/***/ }), +/* 129 */ /*!**********************************************************!*\ !*** ./node_modules/core-js/internals/indexed-object.js ***! \**********************************************************/ @@ -12127,15 +12110,15 @@ var NotificationUserStore = /*#__PURE__*/function () { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var fails = __webpack_require__(/*! ../internals/fails */ 36); -var classof = __webpack_require__(/*! ../internals/classof-raw */ 49); +var fails = __webpack_require__(/*! ../internals/fails */ 37); +var classof = __webpack_require__(/*! ../internals/classof-raw */ 74); var split = ''.split; // fallback for non-array-like ES3 and non-enumerable old V8 strings module.exports = fails(function () { // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 - // eslint-disable-next-line no-prototype-builtins + // eslint-disable-next-line no-prototype-builtins -- safe return !Object('z').propertyIsEnumerable(0); }) ? function (it) { return classof(it) == 'String' ? split.call(it, '') : Object(it); @@ -12143,434 +12126,124 @@ module.exports = fails(function () { /***/ }), -/* 120 */ -/*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/to-object.js ***! - \*****************************************************/ +/* 130 */ +/*!**********************************************************!*\ + !*** ./node_modules/core-js/internals/inspect-source.js ***! + \**********************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ 56); +var store = __webpack_require__(/*! ../internals/shared-store */ 98); -// `ToObject` abstract operation -// https://tc39.github.io/ecma262/#sec-toobject -module.exports = function (argument) { - return Object(requireObjectCoercible(argument)); -}; +var functionToString = Function.toString; + +// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper +if (typeof store.inspectSource != 'function') { + store.inspectSource = function (it) { + return functionToString.call(it); + }; +} + +module.exports = store.inspectSource; /***/ }), -/* 121 */ -/*!****************************************************!*\ - !*** ./node_modules/core-js/modules/es.promise.js ***! - \****************************************************/ +/* 131 */ +/*!**********************************************************!*\ + !*** ./node_modules/core-js/internals/internal-state.js ***! + \**********************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; - -var $ = __webpack_require__(/*! ../internals/export */ 50); -var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ 80); -var global = __webpack_require__(/*! ../internals/global */ 27); -var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ 59); -var NativePromise = __webpack_require__(/*! ../internals/native-promise-constructor */ 171); -var redefine = __webpack_require__(/*! ../internals/redefine */ 53); -var redefineAll = __webpack_require__(/*! ../internals/redefine-all */ 189); -var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ 109); -var setSpecies = __webpack_require__(/*! ../internals/set-species */ 190); -var isObject = __webpack_require__(/*! ../internals/is-object */ 44); -var aFunction = __webpack_require__(/*! ../internals/a-function */ 67); -var anInstance = __webpack_require__(/*! ../internals/an-instance */ 191); -var classof = __webpack_require__(/*! ../internals/classof-raw */ 49); -var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ 94); -var iterate = __webpack_require__(/*! ../internals/iterate */ 143); -var checkCorrectnessOfIteration = __webpack_require__(/*! ../internals/check-correctness-of-iteration */ 195); -var speciesConstructor = __webpack_require__(/*! ../internals/species-constructor */ 144); -var task = __webpack_require__(/*! ../internals/task */ 133).set; -var microtask = __webpack_require__(/*! ../internals/microtask */ 196); -var promiseResolve = __webpack_require__(/*! ../internals/promise-resolve */ 172); -var hostReportErrors = __webpack_require__(/*! ../internals/host-report-errors */ 197); -var newPromiseCapabilityModule = __webpack_require__(/*! ../internals/new-promise-capability */ 106); -var perform = __webpack_require__(/*! ../internals/perform */ 145); -var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ 88); -var isForced = __webpack_require__(/*! ../internals/is-forced */ 130); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); -var V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ 153); - -var SPECIES = wellKnownSymbol('species'); -var PROMISE = 'Promise'; -var getInternalState = InternalStateModule.get; -var setInternalState = InternalStateModule.set; -var getInternalPromiseState = InternalStateModule.getterFor(PROMISE); -var PromiseConstructor = NativePromise; -var TypeError = global.TypeError; -var document = global.document; -var process = global.process; -var $fetch = getBuiltIn('fetch'); -var newPromiseCapability = newPromiseCapabilityModule.f; -var newGenericPromiseCapability = newPromiseCapability; -var IS_NODE = classof(process) == 'process'; -var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent); -var UNHANDLED_REJECTION = 'unhandledrejection'; -var REJECTION_HANDLED = 'rejectionhandled'; -var PENDING = 0; -var FULFILLED = 1; -var REJECTED = 2; -var HANDLED = 1; -var UNHANDLED = 2; -var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; - -var FORCED = isForced(PROMISE, function () { - var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor); - if (!GLOBAL_CORE_JS_PROMISE) { - // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables - // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 - // We can't detect it synchronously, so just check versions - if (V8_VERSION === 66) return true; - // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test - if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true; - } - // We need Promise#finally in the pure version for preventing prototype pollution - if (IS_PURE && !PromiseConstructor.prototype['finally']) return true; - // We can't use @@species feature detection in V8 since it causes - // deoptimization and performance degradation - // https://github.com/zloirock/core-js/issues/679 - if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false; - // Detect correctness of subclassing with @@species support - var promise = PromiseConstructor.resolve(1); - var FakePromise = function (exec) { - exec(function () { /* empty */ }, function () { /* empty */ }); - }; - var constructor = promise.constructor = {}; - constructor[SPECIES] = FakePromise; - return !(promise.then(function () { /* empty */ }) instanceof FakePromise); -}); - -var INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) { - PromiseConstructor.all(iterable)['catch'](function () { /* empty */ }); -}); - -// helpers -var isThenable = function (it) { - var then; - return isObject(it) && typeof (then = it.then) == 'function' ? then : false; -}; - -var notify = function (promise, state, isReject) { - if (state.notified) return; - state.notified = true; - var chain = state.reactions; - microtask(function () { - var value = state.value; - var ok = state.state == FULFILLED; - var index = 0; - // variable length - can't use forEach - while (chain.length > index) { - var reaction = chain[index++]; - var handler = ok ? reaction.ok : reaction.fail; - var resolve = reaction.resolve; - var reject = reaction.reject; - var domain = reaction.domain; - var result, then, exited; - try { - if (handler) { - if (!ok) { - if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state); - state.rejection = HANDLED; - } - if (handler === true) result = value; - else { - if (domain) domain.enter(); - result = handler(value); // can throw - if (domain) { - domain.exit(); - exited = true; - } - } - if (result === reaction.promise) { - reject(TypeError('Promise-chain cycle')); - } else if (then = isThenable(result)) { - then.call(result, resolve, reject); - } else resolve(result); - } else reject(value); - } catch (error) { - if (domain && !exited) domain.exit(); - reject(error); - } - } - state.reactions = []; - state.notified = false; - if (isReject && !state.rejection) onUnhandled(promise, state); - }); -}; - -var dispatchEvent = function (name, promise, reason) { - var event, handler; - if (DISPATCH_EVENT) { - event = document.createEvent('Event'); - event.promise = promise; - event.reason = reason; - event.initEvent(name, false, true); - global.dispatchEvent(event); - } else event = { promise: promise, reason: reason }; - if (handler = global['on' + name]) handler(event); - else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); -}; - -var onUnhandled = function (promise, state) { - task.call(global, function () { - var value = state.value; - var IS_UNHANDLED = isUnhandled(state); - var result; - if (IS_UNHANDLED) { - result = perform(function () { - if (IS_NODE) { - process.emit('unhandledRejection', value, promise); - } else dispatchEvent(UNHANDLED_REJECTION, promise, value); - }); - // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should - state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; - if (result.error) throw result.value; - } - }); -}; +var NATIVE_WEAK_MAP = __webpack_require__(/*! ../internals/native-weak-map */ 209); +var global = __webpack_require__(/*! ../internals/global */ 30); +var isObject = __webpack_require__(/*! ../internals/is-object */ 49); +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 47); +var objectHas = __webpack_require__(/*! ../internals/has */ 44); +var shared = __webpack_require__(/*! ../internals/shared-store */ 98); +var sharedKey = __webpack_require__(/*! ../internals/shared-key */ 111); +var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ 106); -var isUnhandled = function (state) { - return state.rejection !== HANDLED && !state.parent; -}; +var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; +var WeakMap = global.WeakMap; +var set, get, has; -var onHandleUnhandled = function (promise, state) { - task.call(global, function () { - if (IS_NODE) { - process.emit('rejectionHandled', promise); - } else dispatchEvent(REJECTION_HANDLED, promise, state.value); - }); +var enforce = function (it) { + return has(it) ? get(it) : set(it, {}); }; -var bind = function (fn, promise, state, unwrap) { - return function (value) { - fn(promise, state, value, unwrap); +var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject(it) || (state = get(it)).type !== TYPE) { + throw TypeError('Incompatible receiver, ' + TYPE + ' required'); + } return state; }; }; -var internalReject = function (promise, state, value, unwrap) { - if (state.done) return; - state.done = true; - if (unwrap) state = unwrap; - state.value = value; - state.state = REJECTED; - notify(promise, state, true); -}; - -var internalResolve = function (promise, state, value, unwrap) { - if (state.done) return; - state.done = true; - if (unwrap) state = unwrap; - try { - if (promise === value) throw TypeError("Promise can't be resolved itself"); - var then = isThenable(value); - if (then) { - microtask(function () { - var wrapper = { done: false }; - try { - then.call(value, - bind(internalResolve, promise, wrapper, state), - bind(internalReject, promise, wrapper, state) - ); - } catch (error) { - internalReject(promise, wrapper, error, state); - } - }); - } else { - state.value = value; - state.state = FULFILLED; - notify(promise, state, false); - } - } catch (error) { - internalReject(promise, { done: false }, error, state); - } -}; - -// constructor polyfill -if (FORCED) { - // 25.4.3.1 Promise(executor) - PromiseConstructor = function Promise(executor) { - anInstance(this, PromiseConstructor, PROMISE); - aFunction(executor); - Internal.call(this); - var state = getInternalState(this); - try { - executor(bind(internalResolve, this, state), bind(internalReject, this, state)); - } catch (error) { - internalReject(this, state, error); - } +if (NATIVE_WEAK_MAP) { + var store = shared.state || (shared.state = new WeakMap()); + var wmget = store.get; + var wmhas = store.has; + var wmset = store.set; + set = function (it, metadata) { + if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + wmset.call(store, it, metadata); + return metadata; }; - // eslint-disable-next-line no-unused-vars - Internal = function Promise(executor) { - setInternalState(this, { - type: PROMISE, - done: false, - notified: false, - parent: false, - reactions: [], - rejection: false, - state: PENDING, - value: undefined - }); + get = function (it) { + return wmget.call(store, it) || {}; }; - Internal.prototype = redefineAll(PromiseConstructor.prototype, { - // `Promise.prototype.then` method - // https://tc39.github.io/ecma262/#sec-promise.prototype.then - then: function then(onFulfilled, onRejected) { - var state = getInternalPromiseState(this); - var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor)); - reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; - reaction.fail = typeof onRejected == 'function' && onRejected; - reaction.domain = IS_NODE ? process.domain : undefined; - state.parent = true; - state.reactions.push(reaction); - if (state.state != PENDING) notify(this, state, false); - return reaction.promise; - }, - // `Promise.prototype.catch` method - // https://tc39.github.io/ecma262/#sec-promise.prototype.catch - 'catch': function (onRejected) { - return this.then(undefined, onRejected); - } - }); - OwnPromiseCapability = function () { - var promise = new Internal(); - var state = getInternalState(promise); - this.promise = promise; - this.resolve = bind(internalResolve, promise, state); - this.reject = bind(internalReject, promise, state); + has = function (it) { + return wmhas.call(store, it); }; - newPromiseCapabilityModule.f = newPromiseCapability = function (C) { - return C === PromiseConstructor || C === PromiseWrapper - ? new OwnPromiseCapability(C) - : newGenericPromiseCapability(C); +} else { + var STATE = sharedKey('state'); + hiddenKeys[STATE] = true; + set = function (it, metadata) { + if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return objectHas(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return objectHas(it, STATE); }; - - if (!IS_PURE && typeof NativePromise == 'function') { - nativeThen = NativePromise.prototype.then; - - // wrap native Promise#then for native async functions - redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) { - var that = this; - return new PromiseConstructor(function (resolve, reject) { - nativeThen.call(that, resolve, reject); - }).then(onFulfilled, onRejected); - // https://github.com/zloirock/core-js/issues/640 - }, { unsafe: true }); - - // wrap fetch result - if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, { - // eslint-disable-next-line no-unused-vars - fetch: function fetch(input /* , init */) { - return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments)); - } - }); - } } -$({ global: true, wrap: true, forced: FORCED }, { - Promise: PromiseConstructor -}); - -setToStringTag(PromiseConstructor, PROMISE, false, true); -setSpecies(PROMISE); - -PromiseWrapper = getBuiltIn(PROMISE); - -// statics -$({ target: PROMISE, stat: true, forced: FORCED }, { - // `Promise.reject` method - // https://tc39.github.io/ecma262/#sec-promise.reject - reject: function reject(r) { - var capability = newPromiseCapability(this); - capability.reject.call(undefined, r); - return capability.promise; - } -}); - -$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, { - // `Promise.resolve` method - // https://tc39.github.io/ecma262/#sec-promise.resolve - resolve: function resolve(x) { - return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x); - } -}); - -$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, { - // `Promise.all` method - // https://tc39.github.io/ecma262/#sec-promise.all - all: function all(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var resolve = capability.resolve; - var reject = capability.reject; - var result = perform(function () { - var $promiseResolve = aFunction(C.resolve); - var values = []; - var counter = 0; - var remaining = 1; - iterate(iterable, function (promise) { - var index = counter++; - var alreadyCalled = false; - values.push(undefined); - remaining++; - $promiseResolve.call(C, promise).then(function (value) { - if (alreadyCalled) return; - alreadyCalled = true; - values[index] = value; - --remaining || resolve(values); - }, reject); - }); - --remaining || resolve(values); - }); - if (result.error) reject(result.value); - return capability.promise; - }, - // `Promise.race` method - // https://tc39.github.io/ecma262/#sec-promise.race - race: function race(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var reject = capability.reject; - var result = perform(function () { - var $promiseResolve = aFunction(C.resolve); - iterate(iterable, function (promise) { - $promiseResolve.call(C, promise).then(capability.resolve, reject); - }); - }); - if (result.error) reject(result.value); - return capability.promise; - } -}); +module.exports = { + set: set, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor +}; /***/ }), -/* 122 */ -/*!**********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/to-object.js ***! - \**********************************************************/ +/* 132 */ +/*!******************************************************!*\ + !*** ./node_modules/core-js/internals/a-function.js ***! + \******************************************************/ /*! no static exports found */ /*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ 200); +/***/ (function(module, exports) { -// `ToObject` abstract operation -// https://tc39.es/ecma262/#sec-toobject -module.exports = function (argument) { - return Object(requireObjectCoercible(argument)); +module.exports = function (it) { + if (typeof it != 'function') { + throw TypeError(String(it) + ' is not a function'); + } return it; }; /***/ }), -/* 123 */ +/* 133 */ /*!***********************************!*\ !*** ./dev/View/Popup/Compose.js ***! \***********************************/ @@ -12582,79 +12255,77 @@ module.exports = function (argument) { __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ComposePopupView", function() { return ComposePopupView; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return ComposePopupView; }); -/* harmony import */ var core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.join */ 75); -/* harmony import */ var core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.function.name */ 51); -/* harmony import */ var core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.object.to-string */ 63); -/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.regexp.exec */ 45); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.regexp.to-string */ 111); -/* harmony import */ var core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.string.replace */ 57); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var core_js_modules_es_string_split__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.string.split */ 174); -/* harmony import */ var core_js_modules_es_string_split__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var core_js_modules_es_string_link__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.string.link */ 175); -/* harmony import */ var core_js_modules_es_string_link__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_link__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/web.timers */ 68); -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor */ 19); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_9__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find */ 12); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_10__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/index-of */ 30); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_11__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 18); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_12__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/bind */ 26); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_13__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/filter */ 34); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_14__); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/assertThisInitialized */ 33); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/applyDecoratedDescriptor */ 20); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_18__); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_19__); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! $ */ 8); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_20__); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! key */ 21); -/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(key__WEBPACK_IMPORTED_MODULE_22__); -/* harmony import */ var Jua__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! Jua */ 177); -/* harmony import */ var Jua__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(Jua__WEBPACK_IMPORTED_MODULE_23__); -/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Common_Consts__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! Common/Consts */ 25); -/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! Common/Globals */ 6); -/* harmony import */ var Common_Links__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! Common/Links */ 15); -/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! Common/Translator */ 9); -/* harmony import */ var Common_Momentor__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! Common/Momentor */ 60); -/* harmony import */ var Common_Cache__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! Common/Cache */ 14); -/* harmony import */ var Common_HtmlEditor__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! Common/HtmlEditor */ 210); -/* harmony import */ var Stores_User_App__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! Stores/User/App */ 31); -/* harmony import */ var Stores_User_Settings__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! Stores/User/Settings */ 38); -/* harmony import */ var Stores_User_Identity__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! Stores/User/Identity */ 100); -/* harmony import */ var Stores_User_Account__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! Stores/User/Account */ 46); -/* harmony import */ var Stores_User_Folder__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! Stores/User/Folder */ 11); -/* harmony import */ var Stores_User_Pgp__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! Stores/User/Pgp */ 41); -/* harmony import */ var Stores_User_Message__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! Stores/User/Message */ 13); -/* harmony import */ var Stores_Social__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! Stores/Social */ 29); -/* harmony import */ var Remote_User_Ajax__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! Remote/User/Ajax */ 16); -/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! Storage/Settings */ 5); -/* harmony import */ var Common_Events__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! Common/Events */ 24); -/* harmony import */ var Model_ComposeAttachment__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! Model/ComposeAttachment */ 274); -/* harmony import */ var Helper_Apps_User__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! Helper/Apps/User */ 22); -/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! Knoin/Knoin */ 7); -/* harmony import */ var Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! Knoin/AbstractViewNext */ 28); - +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/assertThisInitialized */ 29); +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/applyDecoratedDescriptor */ 18); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/filter */ 28); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 17); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/set-timeout */ 33); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_set_interval__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/set-interval */ 57); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_set_interval__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_set_interval__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find */ 12); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor */ 19); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_8__); +/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ 45); +/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_9__); +/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! core-js/modules/es.string.split.js */ 204); +/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_10__); +/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! core-js/modules/es.array.join.js */ 77); +/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_11__); +/* harmony import */ var core_js_modules_es_string_link_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! core-js/modules/es.string.link.js */ 205); +/* harmony import */ var core_js_modules_es_string_link_js__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_link_js__WEBPACK_IMPORTED_MODULE_12__); +/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ 59); +/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_13__); +/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ 86); +/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_14__); +/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ 119); +/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_15__); +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ 48); +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_16__); +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! window */ 4); +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_17__); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_18__); +/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! $ */ 8); +/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_19__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! key */ 20); +/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(key__WEBPACK_IMPORTED_MODULE_21__); +/* harmony import */ var Jua__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! Jua */ 206); +/* harmony import */ var Jua__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(Jua__WEBPACK_IMPORTED_MODULE_22__); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! Common/Enums */ 0); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! Common/Utils */ 2); +/* harmony import */ var Common_Consts__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! Common/Consts */ 24); +/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! Common/Globals */ 6); +/* harmony import */ var Common_Links__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! Common/Links */ 15); +/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! Common/Translator */ 9); +/* harmony import */ var Common_Momentor__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! Common/Momentor */ 61); +/* harmony import */ var Common_Cache__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! Common/Cache */ 14); +/* harmony import */ var Common_HtmlEditor__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! Common/HtmlEditor */ 227); +/* harmony import */ var Stores_User_App__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! Stores/User/App */ 27); +/* harmony import */ var Stores_User_Settings__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! Stores/User/Settings */ 35); +/* harmony import */ var Stores_User_Identity__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! Stores/User/Identity */ 103); +/* harmony import */ var Stores_User_Account__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! Stores/User/Account */ 46); +/* harmony import */ var Stores_User_Folder__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! Stores/User/Folder */ 11); +/* harmony import */ var Stores_User_Pgp__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! Stores/User/Pgp */ 41); +/* harmony import */ var Stores_User_Message__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! Stores/User/Message */ 13); +/* harmony import */ var Stores_Social__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! Stores/Social */ 26); +/* harmony import */ var Remote_User_Ajax__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! Remote/User/Ajax */ 16); +/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! Storage/Settings */ 5); +/* harmony import */ var Common_Events__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! Common/Events */ 23); +/* harmony import */ var Model_ComposeAttachment__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! Model/ComposeAttachment */ 310); +/* harmony import */ var Helper_Apps_User__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! Helper/Apps/User */ 21); +/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! Knoin/Knoin */ 7); +/* harmony import */ var Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! Knoin/AbstractViewNext */ 25); +var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _class, _class2; @@ -12669,7 +12340,6 @@ __webpack_require__.r(__webpack_exports__); -var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _class, _class2; @@ -12701,25 +12371,25 @@ var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _class, _class2; -var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__["popup"])({ +var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_45__["popup"])({ name: 'View/Popup/Compose', templateID: 'PopupsCompose' -}), _dec2 = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__["command"])(function (self) { +}), _dec2 = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_45__["command"])(function (self) { return self.canBeSentOrSaved(); -}), _dec3 = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__["command"])(function (self) { +}), _dec3 = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_45__["command"])(function (self) { return self.canBeSentOrSaved(); -}), _dec4 = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__["command"])(function (self) { +}), _dec4 = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_45__["command"])(function (self) { return self.isDraftFolderMessage(); -}), _dec5 = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__["command"])(function (self) { +}), _dec5 = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_45__["command"])(function (self) { return self.canBeSentOrSaved(); -}), _dec6 = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__["command"])(function (self) { +}), _dec6 = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_45__["command"])(function (self) { return self.allowContacts; -}), _dec7 = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__["command"])(function (self) { +}), _dec7 = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_45__["command"])(function (self) { return self.dropboxEnabled(); -}), _dec8 = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__["command"])(function (self) { +}), _dec8 = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_45__["command"])(function (self) { return self.driveEnabled(); }), _dec(_class = (_class2 = /*#__PURE__*/function (_AbstractViewNext) { - Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_16__[/* default */ "a"])(ComposePopupView, _AbstractViewNext); + Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(ComposePopupView, _AbstractViewNext); function ComposePopupView() { var _this; @@ -12729,10 +12399,10 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ var fEmailOutInHelper = function fEmailOutInHelper(context, identity, name, isIn) { if (identity && context && identity[name]() && (isIn ? true : context[name]())) { var identityEmail = identity[name](); - var list = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["trim"])(context[name]()).split(/[,]/); - list = _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_14___default()(___WEBPACK_IMPORTED_MODULE_19___default.a).call(___WEBPACK_IMPORTED_MODULE_19___default.a, list, function (email) { - email = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["trim"])(email); - return email && Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["trim"])(identityEmail) !== email; + var list = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["trim"])(context[name]()).split(/[,]/); + list = _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3___default()(___WEBPACK_IMPORTED_MODULE_18___default.a).call(___WEBPACK_IMPORTED_MODULE_18___default.a, list, function (email) { + email = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["trim"])(email); + return email && Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["trim"])(identityEmail) !== email; }); if (isIn) { @@ -12750,24 +12420,24 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ _this.bFromDraft = false; _this.sReferences = ''; _this.sLastFocusedField = 'to'; - _this.resizerTrigger = _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_13___default()(___WEBPACK_IMPORTED_MODULE_19___default.a).call(___WEBPACK_IMPORTED_MODULE_19___default.a, _this.resizerTrigger, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(_this)); - _this.allowContacts = !!Stores_User_App__WEBPACK_IMPORTED_MODULE_33__[/* default */ "a"].contactsIsAllowed(); - _this.allowFolders = !!Storage_Settings__WEBPACK_IMPORTED_MODULE_42__["capa"](Common_Enums__WEBPACK_IMPORTED_MODULE_24__["Capa"].Folders); + _this.resizerTrigger = ___WEBPACK_IMPORTED_MODULE_18___default.a.bind(_this.resizerTrigger, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_this)); + _this.allowContacts = !!Stores_User_App__WEBPACK_IMPORTED_MODULE_32__[/* default */ "a"].contactsIsAllowed(); + _this.allowFolders = !!Storage_Settings__WEBPACK_IMPORTED_MODULE_41__["capa"](Common_Enums__WEBPACK_IMPORTED_MODULE_23__["Capa"].Folders); _this.bSkipNextHide = false; - _this.composeInEdit = Stores_User_App__WEBPACK_IMPORTED_MODULE_33__[/* default */ "a"].composeInEdit; - _this.editorDefaultType = Stores_User_Settings__WEBPACK_IMPORTED_MODULE_34__[/* default */ "a"].editorDefaultType; - _this.capaOpenPGP = Stores_User_Pgp__WEBPACK_IMPORTED_MODULE_38__[/* default */ "a"].capaOpenPGP; - _this.identitiesDropdownTrigger = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); - _this.to = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(''); - _this.to.focused = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); - _this.cc = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(''); - _this.cc.focused = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); - _this.bcc = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(''); - _this.bcc.focused = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); - _this.replyTo = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(''); - _this.replyTo.focused = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); // this.to.subscribe((v) => console.log(v)); - - ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].computed(function () { + _this.composeInEdit = Stores_User_App__WEBPACK_IMPORTED_MODULE_32__[/* default */ "a"].composeInEdit; + _this.editorDefaultType = Stores_User_Settings__WEBPACK_IMPORTED_MODULE_33__[/* default */ "a"].editorDefaultType; + _this.capaOpenPGP = Stores_User_Pgp__WEBPACK_IMPORTED_MODULE_37__[/* default */ "a"].capaOpenPGP; + _this.identitiesDropdownTrigger = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); + _this.to = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(''); + _this.to.focused = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); + _this.cc = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(''); + _this.cc.focused = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); + _this.bcc = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(''); + _this.bcc.focused = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); + _this.replyTo = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(''); + _this.replyTo.focused = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); // this.to.subscribe((v) => console.log(v)); + + ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].computed(function () { switch (true) { case _this.to.focused(): _this.sLastFocusedField = 'to'; @@ -12785,20 +12455,20 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ }).extend({ notify: 'always' }); - _this.subject = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(''); - _this.subject.focused = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); - _this.isHtml = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); - _this.requestDsn = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); - _this.requestReadReceipt = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); - _this.markAsImportant = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); - _this.sendError = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); - _this.sendSuccessButSaveError = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); - _this.savedError = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); - _this.sendButtonSuccess = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].computed(function () { + _this.subject = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(''); + _this.subject.focused = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); + _this.isHtml = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); + _this.requestDsn = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); + _this.requestReadReceipt = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); + _this.markAsImportant = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); + _this.sendError = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); + _this.sendSuccessButSaveError = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); + _this.savedError = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); + _this.sendButtonSuccess = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].computed(function () { return !_this.sendError() && !_this.sendSuccessButSaveError(); }); - _this.sendErrorDesc = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(''); - _this.savedErrorDesc = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(''); + _this.sendErrorDesc = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(''); + _this.savedErrorDesc = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(''); _this.sendError.subscribe(function (value) { if (!value) { @@ -12818,37 +12488,37 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ } }); - _this.savedTime = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(0); - _this.savedTimeText = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].computed(function () { - return 0 < _this.savedTime() ? Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["i18n"])('COMPOSE/SAVED_TIME', { - 'TIME': Object(Common_Momentor__WEBPACK_IMPORTED_MODULE_30__["format"])(_this.savedTime() - 1, 'LT') + _this.savedTime = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(0); + _this.savedTimeText = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].computed(function () { + return 0 < _this.savedTime() ? Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["i18n"])('COMPOSE/SAVED_TIME', { + 'TIME': Object(Common_Momentor__WEBPACK_IMPORTED_MODULE_29__["format"])(_this.savedTime() - 1, 'LT') }) : ''; }); - _this.emptyToError = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); - _this.emptyToErrorTooltip = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].computed(function () { - return _this.emptyToError() ? Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["i18n"])('COMPOSE/EMPTY_TO_ERROR_DESC') : ''; + _this.emptyToError = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); + _this.emptyToErrorTooltip = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].computed(function () { + return _this.emptyToError() ? Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["i18n"])('COMPOSE/EMPTY_TO_ERROR_DESC') : ''; }); - _this.attachmentsInProcessError = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); - _this.attachmentsInErrorError = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); - _this.attachmentsErrorTooltip = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].computed(function () { + _this.attachmentsInProcessError = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); + _this.attachmentsInErrorError = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); + _this.attachmentsErrorTooltip = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].computed(function () { var result = ''; switch (true) { case _this.attachmentsInProcessError(): - result = Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["i18n"])('COMPOSE/ATTACHMENTS_UPLOAD_ERROR_DESC'); + result = Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["i18n"])('COMPOSE/ATTACHMENTS_UPLOAD_ERROR_DESC'); break; case _this.attachmentsInErrorError(): - result = Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["i18n"])('COMPOSE/ATTACHMENTS_ERROR_DESC'); + result = Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["i18n"])('COMPOSE/ATTACHMENTS_ERROR_DESC'); break; // no default } return result; }); - _this.showCc = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); - _this.showBcc = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); - _this.showReplyTo = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); + _this.showCc = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); + _this.showBcc = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); + _this.showReplyTo = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); _this.cc.subscribe(function (value) { if (false === _this.showCc() && 0 < value.length) { @@ -12868,39 +12538,39 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ } }); - _this.draftFolder = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(''); - _this.draftUid = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(''); - _this.sending = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); - _this.saving = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); - _this.attachments = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observableArray([]); - _this.attachmentsInProcess = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].computed(function () { - return _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_14___default()(___WEBPACK_IMPORTED_MODULE_19___default.a).call(___WEBPACK_IMPORTED_MODULE_19___default.a, _this.attachments(), function (item) { + _this.draftFolder = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(''); + _this.draftUid = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(''); + _this.sending = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); + _this.saving = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); + _this.attachments = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observableArray([]); + _this.attachmentsInProcess = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].computed(function () { + return _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3___default()(___WEBPACK_IMPORTED_MODULE_18___default.a).call(___WEBPACK_IMPORTED_MODULE_18___default.a, _this.attachments(), function (item) { return item && !item.complete(); }); }); - _this.attachmentsInReady = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].computed(function () { - return _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_14___default()(___WEBPACK_IMPORTED_MODULE_19___default.a).call(___WEBPACK_IMPORTED_MODULE_19___default.a, _this.attachments(), function (item) { + _this.attachmentsInReady = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].computed(function () { + return _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3___default()(___WEBPACK_IMPORTED_MODULE_18___default.a).call(___WEBPACK_IMPORTED_MODULE_18___default.a, _this.attachments(), function (item) { return item && item.complete(); }); }); - _this.attachmentsInError = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].computed(function () { - return _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_14___default()(___WEBPACK_IMPORTED_MODULE_19___default.a).call(___WEBPACK_IMPORTED_MODULE_19___default.a, _this.attachments(), function (item) { + _this.attachmentsInError = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].computed(function () { + return _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3___default()(___WEBPACK_IMPORTED_MODULE_18___default.a).call(___WEBPACK_IMPORTED_MODULE_18___default.a, _this.attachments(), function (item) { return item && '' !== item.error(); }); }); - _this.attachmentsCount = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].computed(function () { + _this.attachmentsCount = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].computed(function () { return _this.attachments().length; }); - _this.attachmentsInErrorCount = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].computed(function () { + _this.attachmentsInErrorCount = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].computed(function () { return _this.attachmentsInError().length; }); - _this.attachmentsInProcessCount = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].computed(function () { + _this.attachmentsInProcessCount = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].computed(function () { return _this.attachmentsInProcess().length; }); - _this.isDraftFolderMessage = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].computed(function () { + _this.isDraftFolderMessage = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].computed(function () { return '' !== _this.draftFolder() && '' !== _this.draftUid(); }); - _this.attachmentsPlace = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); + _this.attachmentsPlace = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); _this.attachments.subscribe(_this.resizerTrigger); @@ -12912,21 +12582,21 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ } }); - _this.composeUploaderButton = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(null); - _this.composeUploaderDropPlace = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(null); - _this.dragAndDropEnabled = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); - _this.dragAndDropOver = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false).extend({ + _this.composeUploaderButton = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(null); + _this.composeUploaderDropPlace = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(null); + _this.dragAndDropEnabled = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); + _this.dragAndDropOver = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false).extend({ throttle: 1 }); - _this.dragAndDropVisible = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false).extend({ + _this.dragAndDropVisible = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false).extend({ throttle: 1 }); - _this.attacheMultipleAllowed = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); - _this.addAttachmentEnabled = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); - _this.composeEditorArea = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(null); - _this.identities = Stores_User_Identity__WEBPACK_IMPORTED_MODULE_35__[/* default */ "a"].identities; - _this.identitiesOptions = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].computed(function () { - return _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_12___default()(___WEBPACK_IMPORTED_MODULE_19___default.a).call(___WEBPACK_IMPORTED_MODULE_19___default.a, Stores_User_Identity__WEBPACK_IMPORTED_MODULE_35__[/* default */ "a"].identities(), function (item) { + _this.attacheMultipleAllowed = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); + _this.addAttachmentEnabled = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); + _this.composeEditorArea = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(null); + _this.identities = Stores_User_Identity__WEBPACK_IMPORTED_MODULE_34__[/* default */ "a"].identities; + _this.identitiesOptions = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].computed(function () { + return _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4___default()(___WEBPACK_IMPORTED_MODULE_18___default.a).call(___WEBPACK_IMPORTED_MODULE_18___default.a, Stores_User_Identity__WEBPACK_IMPORTED_MODULE_34__[/* default */ "a"].identities(), function (item) { return { 'item': item, 'optValue': item.id(), @@ -12934,19 +12604,19 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ }; }); }); - _this.currentIdentity = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(_this.identities()[0] ? _this.identities()[0] : null); + _this.currentIdentity = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(_this.identities()[0] ? _this.identities()[0] : null); _this.currentIdentity.extend({ - toggleSubscribe: [Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(_this), function (identity) { - fEmailOutInHelper(Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(_this), identity, 'bcc'); - fEmailOutInHelper(Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(_this), identity, 'replyTo'); + toggleSubscribe: [Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_this), function (identity) { + fEmailOutInHelper(Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_this), identity, 'bcc'); + fEmailOutInHelper(Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_this), identity, 'replyTo'); }, function (identity) { - fEmailOutInHelper(Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(_this), identity, 'bcc', true); - fEmailOutInHelper(Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(_this), identity, 'replyTo', true); + fEmailOutInHelper(Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_this), identity, 'bcc', true); + fEmailOutInHelper(Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_this), identity, 'replyTo', true); }] }); - _this.currentIdentityView = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].computed(function () { + _this.currentIdentityView = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].computed(function () { var item = _this.currentIdentity(); return item ? item.formattedName() : 'unknown'; @@ -12959,12 +12629,12 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ }); _this.attachmentsInProcess.subscribe(function (value) { - if (_this.attachmentsInProcessError() && Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["isArray"])(value) && 0 === value.length) { + if (_this.attachmentsInProcessError() && Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["isArray"])(value) && 0 === value.length) { _this.attachmentsInProcessError(false); } }); - _this.resizer = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false).extend({ + _this.resizer = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false).extend({ throttle: 50 }); @@ -12974,13 +12644,13 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ } }); - _this.canBeSentOrSaved = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].computed(function () { + _this.canBeSentOrSaved = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].computed(function () { return !_this.sending() && !_this.saving(); }); - _this.sendMessageResponse = _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_13___default()(___WEBPACK_IMPORTED_MODULE_19___default.a).call(___WEBPACK_IMPORTED_MODULE_19___default.a, _this.sendMessageResponse, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(_this)); - _this.saveMessageResponse = _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_13___default()(___WEBPACK_IMPORTED_MODULE_19___default.a).call(___WEBPACK_IMPORTED_MODULE_19___default.a, _this.saveMessageResponse, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(_this)); - Common_Events__WEBPACK_IMPORTED_MODULE_43__[/* sub */ "b"]('interval.2m', function () { - if (_this.modalVisibility() && !Stores_User_Folder__WEBPACK_IMPORTED_MODULE_37__[/* default */ "a"].draftFolderNotEnabled() && Stores_User_Settings__WEBPACK_IMPORTED_MODULE_34__[/* default */ "a"].allowDraftAutosave() && !_this.isEmptyForm(false) && !_this.saving() && !_this.sending() && !_this.savedError()) { + _this.sendMessageResponse = ___WEBPACK_IMPORTED_MODULE_18___default.a.bind(_this.sendMessageResponse, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_this)); + _this.saveMessageResponse = ___WEBPACK_IMPORTED_MODULE_18___default.a.bind(_this.saveMessageResponse, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_this)); + Common_Events__WEBPACK_IMPORTED_MODULE_42__[/* sub */ "b"]('interval.2m', function () { + if (_this.modalVisibility() && !Stores_User_Folder__WEBPACK_IMPORTED_MODULE_36__[/* default */ "a"].draftFolderNotEnabled() && Stores_User_Settings__WEBPACK_IMPORTED_MODULE_33__[/* default */ "a"].allowDraftAutosave() && !_this.isEmptyForm(false) && !_this.saving() && !_this.sending() && !_this.savedError()) { _this.saveCommand(); } }); @@ -12991,17 +12661,17 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ _this.showReplyTo.subscribe(_this.resizerTrigger); - _this.dropboxEnabled = Stores_Social__WEBPACK_IMPORTED_MODULE_40__[/* default */ "a"].dropbox.enabled; - _this.dropboxApiKey = Stores_Social__WEBPACK_IMPORTED_MODULE_40__[/* default */ "a"].dropbox.apiKey; - _this.driveEnabled = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(Common_Globals__WEBPACK_IMPORTED_MODULE_27__["bXMLHttpRequestSupported"] && !!Storage_Settings__WEBPACK_IMPORTED_MODULE_42__["settingsGet"]('AllowGoogleSocial') && !!Storage_Settings__WEBPACK_IMPORTED_MODULE_42__["settingsGet"]('AllowGoogleSocialDrive') && !!Storage_Settings__WEBPACK_IMPORTED_MODULE_42__["settingsGet"]('GoogleClientID') && !!Storage_Settings__WEBPACK_IMPORTED_MODULE_42__["settingsGet"]('GoogleApiKey')); - _this.driveVisible = ko__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"].observable(false); - _this.driveCallback = _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_13___default()(___WEBPACK_IMPORTED_MODULE_19___default.a).call(___WEBPACK_IMPORTED_MODULE_19___default.a, _this.driveCallback, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(_this)); - _this.onMessageUploadAttachments = _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_13___default()(___WEBPACK_IMPORTED_MODULE_19___default.a).call(___WEBPACK_IMPORTED_MODULE_19___default.a, _this.onMessageUploadAttachments, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(_this)); + _this.dropboxEnabled = Stores_Social__WEBPACK_IMPORTED_MODULE_39__[/* default */ "a"].dropbox.enabled; + _this.dropboxApiKey = Stores_Social__WEBPACK_IMPORTED_MODULE_39__[/* default */ "a"].dropbox.apiKey; + _this.driveEnabled = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(Common_Globals__WEBPACK_IMPORTED_MODULE_26__["bXMLHttpRequestSupported"] && !!Storage_Settings__WEBPACK_IMPORTED_MODULE_41__["settingsGet"]('AllowGoogleSocial') && !!Storage_Settings__WEBPACK_IMPORTED_MODULE_41__["settingsGet"]('AllowGoogleSocialDrive') && !!Storage_Settings__WEBPACK_IMPORTED_MODULE_41__["settingsGet"]('GoogleClientID') && !!Storage_Settings__WEBPACK_IMPORTED_MODULE_41__["settingsGet"]('GoogleApiKey')); + _this.driveVisible = ko__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"].observable(false); + _this.driveCallback = ___WEBPACK_IMPORTED_MODULE_18___default.a.bind(_this.driveCallback, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_this)); + _this.onMessageUploadAttachments = ___WEBPACK_IMPORTED_MODULE_18___default.a.bind(_this.onMessageUploadAttachments, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_this)); _this.bDisabeCloseOnEsc = true; - _this.sDefaultKeyScope = Common_Enums__WEBPACK_IMPORTED_MODULE_24__["KeyState"].Compose; - _this.tryToClosePopup = ___WEBPACK_IMPORTED_MODULE_19___default.a.debounce(_babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_13___default()(___WEBPACK_IMPORTED_MODULE_19___default.a).call(___WEBPACK_IMPORTED_MODULE_19___default.a, _this.tryToClosePopup, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(_this)), Common_Enums__WEBPACK_IMPORTED_MODULE_24__["Magics"].Time200ms); - _this.emailsSource = _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_13___default()(___WEBPACK_IMPORTED_MODULE_19___default.a).call(___WEBPACK_IMPORTED_MODULE_19___default.a, _this.emailsSource, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(_this)); - _this.autosaveFunction = _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_13___default()(___WEBPACK_IMPORTED_MODULE_19___default.a).call(___WEBPACK_IMPORTED_MODULE_19___default.a, _this.autosaveFunction, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(_this)); + _this.sDefaultKeyScope = Common_Enums__WEBPACK_IMPORTED_MODULE_23__["KeyState"].Compose; + _this.tryToClosePopup = ___WEBPACK_IMPORTED_MODULE_18___default.a.debounce(___WEBPACK_IMPORTED_MODULE_18___default.a.bind(_this.tryToClosePopup, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_this)), Common_Enums__WEBPACK_IMPORTED_MODULE_23__["Magics"].Time200ms); + _this.emailsSource = ___WEBPACK_IMPORTED_MODULE_18___default.a.bind(_this.emailsSource, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_this)); + _this.autosaveFunction = ___WEBPACK_IMPORTED_MODULE_18___default.a.bind(_this.autosaveFunction, Object(_babel_runtime_corejs3_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(_this)); _this.iTimer = 0; return _this; } @@ -13009,10 +12679,10 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ var _proto = ComposePopupView.prototype; _proto.sendCommand = function sendCommand() { - var sTo = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["trim"])(this.to()), - sCc = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["trim"])(this.cc()), - sBcc = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["trim"])(this.bcc()); - var sSentFolder = Stores_User_Folder__WEBPACK_IMPORTED_MODULE_37__[/* default */ "a"].sentFolder(); + var sTo = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["trim"])(this.to()), + sCc = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["trim"])(this.cc()), + sBcc = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["trim"])(this.bcc()); + var sSentFolder = Stores_User_Folder__WEBPACK_IMPORTED_MODULE_36__[/* default */ "a"].sentFolder(); this.attachmentsInProcessError(false); this.attachmentsInErrorError(false); this.emptyToError(false); @@ -13030,24 +12700,24 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ } if (!this.emptyToError() && !this.attachmentsInErrorError() && !this.attachmentsInProcessError()) { - if (Stores_User_Settings__WEBPACK_IMPORTED_MODULE_34__[/* default */ "a"].replySameFolder()) { - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["isArray"])(this.aDraftInfo) && 3 === this.aDraftInfo.length && Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["isNormal"])(this.aDraftInfo[2]) && 0 < this.aDraftInfo[2].length) { + if (Stores_User_Settings__WEBPACK_IMPORTED_MODULE_33__[/* default */ "a"].replySameFolder()) { + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["isArray"])(this.aDraftInfo) && 3 === this.aDraftInfo.length && Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["isNormal"])(this.aDraftInfo[2]) && 0 < this.aDraftInfo[2].length) { sSentFolder = this.aDraftInfo[2]; } } if (!this.allowFolders) { - sSentFolder = Common_Consts__WEBPACK_IMPORTED_MODULE_26__[/* UNUSED_OPTION_VALUE */ "r"]; + sSentFolder = Common_Consts__WEBPACK_IMPORTED_MODULE_25__[/* UNUSED_OPTION_VALUE */ "r"]; } if ('' === sSentFolder) { - Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__["showScreenPopup"])(__webpack_require__(/*! View/Popup/FolderSystem */ 279), [Common_Enums__WEBPACK_IMPORTED_MODULE_24__["SetSystemFoldersNotification"].Sent]); + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_45__["showScreenPopup"])(__webpack_require__(/*! View/Popup/FolderSystem */ 317), [Common_Enums__WEBPACK_IMPORTED_MODULE_23__["SetSystemFoldersNotification"].Sent]); } else { this.sendError(false); this.sending(true); - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["isArray"])(this.aDraftInfo) && 3 === this.aDraftInfo.length) { - var flagsCache = Object(Common_Cache__WEBPACK_IMPORTED_MODULE_31__[/* getMessageFlagsFromCache */ "j"])(this.aDraftInfo[2], this.aDraftInfo[1]); + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["isArray"])(this.aDraftInfo) && 3 === this.aDraftInfo.length) { + var flagsCache = Object(Common_Cache__WEBPACK_IMPORTED_MODULE_30__[/* getMessageFlagsFromCache */ "j"])(this.aDraftInfo[2], this.aDraftInfo[1]); if (flagsCache) { if ('forward' === this.aDraftInfo[0]) { @@ -13056,16 +12726,16 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ flagsCache[2] = true; } - Object(Common_Cache__WEBPACK_IMPORTED_MODULE_31__[/* setMessageFlagsToCache */ "t"])(this.aDraftInfo[2], this.aDraftInfo[1], flagsCache); - Object(Helper_Apps_User__WEBPACK_IMPORTED_MODULE_45__[/* getApp */ "a"])().reloadFlagsCurrentMessageListAndMessageFromCache(); - Object(Common_Cache__WEBPACK_IMPORTED_MODULE_31__[/* setFolderHash */ "q"])(this.aDraftInfo[2], ''); + Object(Common_Cache__WEBPACK_IMPORTED_MODULE_30__[/* setMessageFlagsToCache */ "t"])(this.aDraftInfo[2], this.aDraftInfo[1], flagsCache); + Object(Helper_Apps_User__WEBPACK_IMPORTED_MODULE_44__[/* getApp */ "a"])().reloadFlagsCurrentMessageListAndMessageFromCache(); + Object(Common_Cache__WEBPACK_IMPORTED_MODULE_30__[/* setFolderHash */ "q"])(this.aDraftInfo[2], ''); } } - sSentFolder = Common_Consts__WEBPACK_IMPORTED_MODULE_26__[/* UNUSED_OPTION_VALUE */ "r"] === sSentFolder ? '' : sSentFolder; - Object(Common_Cache__WEBPACK_IMPORTED_MODULE_31__[/* setFolderHash */ "q"])(this.draftFolder(), ''); - Object(Common_Cache__WEBPACK_IMPORTED_MODULE_31__[/* setFolderHash */ "q"])(sSentFolder, ''); - Remote_User_Ajax__WEBPACK_IMPORTED_MODULE_41__[/* default */ "a"].sendMessage(this.sendMessageResponse, this.currentIdentity() ? this.currentIdentity().id() : '', this.draftFolder(), this.draftUid(), sSentFolder, sTo, this.cc(), this.bcc(), this.replyTo(), this.subject(), this.oEditor ? this.oEditor.isHtml() : false, this.oEditor ? this.oEditor.getData(true) : '', this.prepearAttachmentsForSendOrSave(), this.aDraftInfo, this.sInReplyTo, this.sReferences, this.requestDsn(), this.requestReadReceipt(), this.markAsImportant()); + sSentFolder = Common_Consts__WEBPACK_IMPORTED_MODULE_25__[/* UNUSED_OPTION_VALUE */ "r"] === sSentFolder ? '' : sSentFolder; + Object(Common_Cache__WEBPACK_IMPORTED_MODULE_30__[/* setFolderHash */ "q"])(this.draftFolder(), ''); + Object(Common_Cache__WEBPACK_IMPORTED_MODULE_30__[/* setFolderHash */ "q"])(sSentFolder, ''); + Remote_User_Ajax__WEBPACK_IMPORTED_MODULE_40__[/* default */ "a"].sendMessage(this.sendMessageResponse, this.currentIdentity() ? this.currentIdentity().id() : '', this.draftFolder(), this.draftUid(), sSentFolder, sTo, this.cc(), this.bcc(), this.replyTo(), this.subject(), this.oEditor ? this.oEditor.isHtml() : false, this.oEditor ? this.oEditor.getData(true) : '', this.prepearAttachmentsForSendOrSave(), this.aDraftInfo, this.sInReplyTo, this.sReferences, this.requestDsn(), this.requestReadReceipt(), this.markAsImportant()); } } }; @@ -13075,14 +12745,14 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ return false; } - if (Stores_User_Folder__WEBPACK_IMPORTED_MODULE_37__[/* default */ "a"].draftFolderNotEnabled()) { - Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__["showScreenPopup"])(__webpack_require__(/*! View/Popup/FolderSystem */ 279), [Common_Enums__WEBPACK_IMPORTED_MODULE_24__["SetSystemFoldersNotification"].Draft]); + if (Stores_User_Folder__WEBPACK_IMPORTED_MODULE_36__[/* default */ "a"].draftFolderNotEnabled()) { + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_45__["showScreenPopup"])(__webpack_require__(/*! View/Popup/FolderSystem */ 317), [Common_Enums__WEBPACK_IMPORTED_MODULE_23__["SetSystemFoldersNotification"].Draft]); } else { this.savedError(false); this.saving(true); this.autosaveStart(); - Object(Common_Cache__WEBPACK_IMPORTED_MODULE_31__[/* setFolderHash */ "q"])(Stores_User_Folder__WEBPACK_IMPORTED_MODULE_37__[/* default */ "a"].draftFolder(), ''); - Remote_User_Ajax__WEBPACK_IMPORTED_MODULE_41__[/* default */ "a"].saveMessage(this.saveMessageResponse, this.currentIdentity() ? this.currentIdentity().id() : '', this.draftFolder(), this.draftUid(), Stores_User_Folder__WEBPACK_IMPORTED_MODULE_37__[/* default */ "a"].draftFolder(), this.to(), this.cc(), this.bcc(), this.replyTo(), this.subject(), this.oEditor ? this.oEditor.isHtml() : false, this.oEditor ? this.oEditor.getData(true) : '', this.prepearAttachmentsForSendOrSave(), this.aDraftInfo, this.sInReplyTo, this.sReferences, this.markAsImportant()); + Object(Common_Cache__WEBPACK_IMPORTED_MODULE_30__[/* setFolderHash */ "q"])(Stores_User_Folder__WEBPACK_IMPORTED_MODULE_36__[/* default */ "a"].draftFolder(), ''); + Remote_User_Ajax__WEBPACK_IMPORTED_MODULE_40__[/* default */ "a"].saveMessage(this.saveMessageResponse, this.currentIdentity() ? this.currentIdentity().id() : '', this.draftFolder(), this.draftUid(), Stores_User_Folder__WEBPACK_IMPORTED_MODULE_36__[/* default */ "a"].draftFolder(), this.to(), this.cc(), this.bcc(), this.replyTo(), this.subject(), this.oEditor ? this.oEditor.isHtml() : false, this.oEditor ? this.oEditor.getData(true) : '', this.prepearAttachmentsForSendOrSave(), this.aDraftInfo, this.sInReplyTo, this.sReferences, this.markAsImportant()); } return true; @@ -13091,13 +12761,13 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ _proto.deleteCommand = function deleteCommand() { var _this2 = this; - var PopupsAskViewModel = __webpack_require__(/*! View/Popup/Ask */ 224); + var PopupsAskViewModel = __webpack_require__(/*! View/Popup/Ask */ 239); - if (!Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__["isPopupVisible"])(PopupsAskViewModel) && this.modalVisibility()) { - Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__["showScreenPopup"])(PopupsAskViewModel, [Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["i18n"])('POPUPS_ASK/DESC_WANT_DELETE_MESSAGES'), function () { + if (!Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_45__["isPopupVisible"])(PopupsAskViewModel) && this.modalVisibility()) { + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_45__["showScreenPopup"])(PopupsAskViewModel, [Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["i18n"])('POPUPS_ASK/DESC_WANT_DELETE_MESSAGES'), function () { if (_this2.modalVisibility()) { - Object(Helper_Apps_User__WEBPACK_IMPORTED_MODULE_45__[/* getApp */ "a"])().deleteMessagesFromFolderWithoutCheck(_this2.draftFolder(), [_this2.draftUid()]); - Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__["hideScreenPopup"])(ComposePopupView); + Object(Helper_Apps_User__WEBPACK_IMPORTED_MODULE_44__[/* getApp */ "a"])().deleteMessagesFromFolderWithoutCheck(_this2.draftFolder(), [_this2.draftUid()]); + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_45__["hideScreenPopup"])(ComposePopupView); } }]); } @@ -13106,7 +12776,7 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ _proto.skipCommand = function skipCommand() { this.bSkipNextHide = true; - if (this.modalVisibility() && !this.saving() && !this.sending() && !Stores_User_Folder__WEBPACK_IMPORTED_MODULE_37__[/* default */ "a"].draftFolderNotEnabled() && Stores_User_Settings__WEBPACK_IMPORTED_MODULE_34__[/* default */ "a"].allowDraftAutosave()) { + if (this.modalVisibility() && !this.saving() && !this.sending() && !Stores_User_Folder__WEBPACK_IMPORTED_MODULE_36__[/* default */ "a"].draftFolderNotEnabled() && Stores_User_Settings__WEBPACK_IMPORTED_MODULE_33__[/* default */ "a"].allowDraftAutosave()) { this.saveCommand(); } @@ -13119,17 +12789,17 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ if (this.allowContacts) { this.skipCommand(); - ___WEBPACK_IMPORTED_MODULE_19___default.a.delay(function () { - Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__["showScreenPopup"])(__webpack_require__(/*! View/Popup/Contacts */ 414), [true, _this3.sLastFocusedField]); - }, Common_Enums__WEBPACK_IMPORTED_MODULE_24__["Magics"].Time200ms); + ___WEBPACK_IMPORTED_MODULE_18___default.a.delay(function () { + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_45__["showScreenPopup"])(__webpack_require__(/*! View/Popup/Contacts */ 428), [true, _this3.sLastFocusedField]); + }, Common_Enums__WEBPACK_IMPORTED_MODULE_23__["Magics"].Time200ms); } }; _proto.dropboxCommand = function dropboxCommand() { var _this4 = this; - if (window__WEBPACK_IMPORTED_MODULE_18___default.a.Dropbox) { - window__WEBPACK_IMPORTED_MODULE_18___default.a.Dropbox.choose({ + if (window__WEBPACK_IMPORTED_MODULE_17___default.a.Dropbox) { + window__WEBPACK_IMPORTED_MODULE_17___default.a.Dropbox.choose({ success: function success(files) { if (files && files[0] && files[0].link) { _this4.addDropboxAttachment(files[0]); @@ -13149,7 +12819,7 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ }; _proto.autosaveFunction = function autosaveFunction() { - if (this.modalVisibility() && !Stores_User_Folder__WEBPACK_IMPORTED_MODULE_37__[/* default */ "a"].draftFolderNotEnabled() && Stores_User_Settings__WEBPACK_IMPORTED_MODULE_34__[/* default */ "a"].allowDraftAutosave() && !this.isEmptyForm(false) && !this.saving() && !this.sending() && !this.savedError()) { + if (this.modalVisibility() && !Stores_User_Folder__WEBPACK_IMPORTED_MODULE_36__[/* default */ "a"].draftFolderNotEnabled() && Stores_User_Settings__WEBPACK_IMPORTED_MODULE_33__[/* default */ "a"].allowDraftAutosave() && !this.isEmptyForm(false) && !this.saving() && !this.sending() && !this.savedError()) { this.saveCommand(); } @@ -13157,17 +12827,17 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ }; _proto.autosaveStart = function autosaveStart() { - window__WEBPACK_IMPORTED_MODULE_18___default.a.clearTimeout(this.iTimer); - this.iTimer = window__WEBPACK_IMPORTED_MODULE_18___default.a.setTimeout(this.autosaveFunction, Common_Enums__WEBPACK_IMPORTED_MODULE_24__["Magics"].Time1m); + window__WEBPACK_IMPORTED_MODULE_17___default.a.clearTimeout(this.iTimer); + this.iTimer = _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_5___default()(this.autosaveFunction, Common_Enums__WEBPACK_IMPORTED_MODULE_23__["Magics"].Time1m); }; _proto.autosaveStop = function autosaveStop() { - window__WEBPACK_IMPORTED_MODULE_18___default.a.clearTimeout(this.iTimer); + window__WEBPACK_IMPORTED_MODULE_17___default.a.clearTimeout(this.iTimer); }; _proto.emailsSource = function emailsSource(oData, fResponse) { - Object(Helper_Apps_User__WEBPACK_IMPORTED_MODULE_45__[/* getApp */ "a"])().getAutocomplete(oData.term, function (aData) { - fResponse(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_12___default()(___WEBPACK_IMPORTED_MODULE_19___default.a).call(___WEBPACK_IMPORTED_MODULE_19___default.a, aData, function (oEmailItem) { + Object(Helper_Apps_User__WEBPACK_IMPORTED_MODULE_44__[/* getApp */ "a"])().getAutocomplete(oData.term, function (aData) { + fResponse(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4___default()(___WEBPACK_IMPORTED_MODULE_18___default.a).call(___WEBPACK_IMPORTED_MODULE_18___default.a, aData, function (oEmailItem) { return oEmailItem.toLine(false); })); }); @@ -13176,8 +12846,8 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ _proto.openOpenPgpPopup = function openOpenPgpPopup() { var _this5 = this; - if (Stores_User_Pgp__WEBPACK_IMPORTED_MODULE_38__[/* default */ "a"].capaOpenPGP() && this.oEditor && !this.oEditor.isHtml()) { - Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__["showScreenPopup"])(__webpack_require__(/*! View/Popup/ComposeOpenPgp */ 532), [function (result) { + if (Stores_User_Pgp__WEBPACK_IMPORTED_MODULE_37__[/* default */ "a"].capaOpenPGP() && this.oEditor && !this.oEditor.isHtml()) { + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_45__["showScreenPopup"])(__webpack_require__(/*! View/Popup/ComposeOpenPgp */ 553), [function (result) { _this5.editor(function (editor) { editor.setPlain(result); }); @@ -13186,15 +12856,15 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ }; _proto.reloadDraftFolder = function reloadDraftFolder() { - var draftFolder = Stores_User_Folder__WEBPACK_IMPORTED_MODULE_37__[/* default */ "a"].draftFolder(); + var draftFolder = Stores_User_Folder__WEBPACK_IMPORTED_MODULE_36__[/* default */ "a"].draftFolder(); - if ('' !== draftFolder && Common_Consts__WEBPACK_IMPORTED_MODULE_26__[/* UNUSED_OPTION_VALUE */ "r"] !== draftFolder) { - Object(Common_Cache__WEBPACK_IMPORTED_MODULE_31__[/* setFolderHash */ "q"])(draftFolder, ''); + if ('' !== draftFolder && Common_Consts__WEBPACK_IMPORTED_MODULE_25__[/* UNUSED_OPTION_VALUE */ "r"] !== draftFolder) { + Object(Common_Cache__WEBPACK_IMPORTED_MODULE_30__[/* setFolderHash */ "q"])(draftFolder, ''); - if (Stores_User_Folder__WEBPACK_IMPORTED_MODULE_37__[/* default */ "a"].currentFolderFullNameRaw() === draftFolder) { - Object(Helper_Apps_User__WEBPACK_IMPORTED_MODULE_45__[/* getApp */ "a"])().reloadMessageList(true); + if (Stores_User_Folder__WEBPACK_IMPORTED_MODULE_36__[/* default */ "a"].currentFolderFullNameRaw() === draftFolder) { + Object(Helper_Apps_User__WEBPACK_IMPORTED_MODULE_44__[/* getApp */ "a"])().reloadMessageList(true); } else { - Object(Helper_Apps_User__WEBPACK_IMPORTED_MODULE_45__[/* getApp */ "a"])().folderInformation(draftFolder); + Object(Helper_Apps_User__WEBPACK_IMPORTED_MODULE_44__[/* getApp */ "a"])().folderInformation(draftFolder); } } }; @@ -13203,7 +12873,7 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ var resultIndex = 1000, resultIdentity = null; - var identities = Stores_User_Identity__WEBPACK_IMPORTED_MODULE_35__[/* default */ "a"].identities(), + var identities = Stores_User_Identity__WEBPACK_IMPORTED_MODULE_34__[/* default */ "a"].identities(), identitiesCache = {}, fEachHelper = function fEachHelper(item) { if (item && item.email && identitiesCache[item.email]) { @@ -13214,29 +12884,29 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ } }; - ___WEBPACK_IMPORTED_MODULE_19___default.a.each(identities, function (item, index) { + ___WEBPACK_IMPORTED_MODULE_18___default.a.each(identities, function (item, index) { identitiesCache[item.email()] = [item, index]; }); if (message) { switch (composeType) { - case Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].Empty: + case Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].Empty: break; - case Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].Reply: - case Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].ReplyAll: - case Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].Forward: - case Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].ForwardAsAttachment: - ___WEBPACK_IMPORTED_MODULE_19___default.a.each(___WEBPACK_IMPORTED_MODULE_19___default.a.union(message.to, message.cc, message.bcc), fEachHelper); + case Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].Reply: + case Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].ReplyAll: + case Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].Forward: + case Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].ForwardAsAttachment: + ___WEBPACK_IMPORTED_MODULE_18___default.a.each(___WEBPACK_IMPORTED_MODULE_18___default.a.union(message.to, message.cc, message.bcc), fEachHelper); if (!resultIdentity) { - ___WEBPACK_IMPORTED_MODULE_19___default.a.each(message.deliveredTo, fEachHelper); + ___WEBPACK_IMPORTED_MODULE_18___default.a.each(message.deliveredTo, fEachHelper); } break; - case Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].Draft: - ___WEBPACK_IMPORTED_MODULE_19___default.a.each(___WEBPACK_IMPORTED_MODULE_19___default.a.union(message.from, message.replyTo), fEachHelper); + case Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].Draft: + ___WEBPACK_IMPORTED_MODULE_18___default.a.each(___WEBPACK_IMPORTED_MODULE_18___default.a.union(message.from, message.replyTo), fEachHelper); break; // no default @@ -13258,22 +12928,22 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ message = ''; this.sending(false); - if (Common_Enums__WEBPACK_IMPORTED_MODULE_24__["StorageResultType"].Success === statusResult && data && data.Result) { + if (Common_Enums__WEBPACK_IMPORTED_MODULE_23__["StorageResultType"].Success === statusResult && data && data.Result) { result = true; if (this.modalVisibility()) { - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["delegateRun"])(this, 'closeCommand'); + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["delegateRun"])(this, 'closeCommand'); } } if (this.modalVisibility() && !result) { - if (data && Common_Enums__WEBPACK_IMPORTED_MODULE_24__["Notification"].CantSaveMessage === data.ErrorCode) { + if (data && Common_Enums__WEBPACK_IMPORTED_MODULE_23__["Notification"].CantSaveMessage === data.ErrorCode) { this.sendSuccessButSaveError(true); - this.savedErrorDesc(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["trim"])(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["i18n"])('COMPOSE/SAVED_ERROR_ON_SEND'))); + this.savedErrorDesc(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["trim"])(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["i18n"])('COMPOSE/SAVED_ERROR_ON_SEND'))); } else { - message = Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["getNotification"])(data && data.ErrorCode ? data.ErrorCode : Common_Enums__WEBPACK_IMPORTED_MODULE_24__["Notification"].CantSendMessage, data && data.ErrorMessage ? data.ErrorMessage : ''); + message = Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["getNotification"])(data && data.ErrorCode ? data.ErrorCode : Common_Enums__WEBPACK_IMPORTED_MODULE_23__["Notification"].CantSendMessage, data && data.ErrorMessage ? data.ErrorMessage : ''); this.sendError(true); - this.sendErrorDesc(message || Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["getNotification"])(Common_Enums__WEBPACK_IMPORTED_MODULE_24__["Notification"].CantSendMessage)); + this.sendErrorDesc(message || Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["getNotification"])(Common_Enums__WEBPACK_IMPORTED_MODULE_23__["Notification"].CantSendMessage)); } } @@ -13284,31 +12954,31 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ var result = false; this.saving(false); - if (Common_Enums__WEBPACK_IMPORTED_MODULE_24__["StorageResultType"].Success === statusResult && oData && oData.Result) { + if (Common_Enums__WEBPACK_IMPORTED_MODULE_23__["StorageResultType"].Success === statusResult && oData && oData.Result) { if (oData.Result.NewFolder && oData.Result.NewUid) { result = true; if (this.bFromDraft) { - var message = Stores_User_Message__WEBPACK_IMPORTED_MODULE_39__[/* default */ "a"].message(); + var message = Stores_User_Message__WEBPACK_IMPORTED_MODULE_38__[/* default */ "a"].message(); if (message && this.draftFolder() === message.folderFullNameRaw && this.draftUid() === message.uid) { - Stores_User_Message__WEBPACK_IMPORTED_MODULE_39__[/* default */ "a"].message(null); + Stores_User_Message__WEBPACK_IMPORTED_MODULE_38__[/* default */ "a"].message(null); } } this.draftFolder(oData.Result.NewFolder); this.draftUid(oData.Result.NewUid); - this.savedTime(window__WEBPACK_IMPORTED_MODULE_18___default.a.Math.round(new window__WEBPACK_IMPORTED_MODULE_18___default.a.Date().getTime() / 1000)); + this.savedTime(window__WEBPACK_IMPORTED_MODULE_17___default.a.Math.round(new window__WEBPACK_IMPORTED_MODULE_17___default.a.Date().getTime() / 1000)); if (this.bFromDraft) { - Object(Common_Cache__WEBPACK_IMPORTED_MODULE_31__[/* setFolderHash */ "q"])(this.draftFolder(), ''); + Object(Common_Cache__WEBPACK_IMPORTED_MODULE_30__[/* setFolderHash */ "q"])(this.draftFolder(), ''); } } } if (!result) { this.savedError(true); - this.savedErrorDesc(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["getNotification"])(Common_Enums__WEBPACK_IMPORTED_MODULE_24__["Notification"].CantSaveMessage)); + this.savedErrorDesc(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["getNotification"])(Common_Enums__WEBPACK_IMPORTED_MODULE_23__["Notification"].CantSaveMessage)); } this.reloadDraftFolder(); @@ -13318,13 +12988,13 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ this.autosaveStop(); if (!this.bSkipNextHide) { - Stores_User_App__WEBPACK_IMPORTED_MODULE_33__[/* default */ "a"].composeInEdit(false); + Stores_User_App__WEBPACK_IMPORTED_MODULE_32__[/* default */ "a"].composeInEdit(false); this.reset(); } this.bSkipNextHide = false; this.to.focused(false); - Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__["routeOn"])(); + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_45__["routeOn"])(); }; _proto.editor = function editor(fOnInit) { @@ -13333,7 +13003,7 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ if (fOnInit) { if (!this.oEditor && this.composeEditorArea()) { // _.delay(() => { - this.oEditor = new Common_HtmlEditor__WEBPACK_IMPORTED_MODULE_32__["HtmlEditor"](this.composeEditorArea(), null, function () { + this.oEditor = new Common_HtmlEditor__WEBPACK_IMPORTED_MODULE_31__["HtmlEditor"](this.composeEditorArea(), null, function () { fOnInit(_this6.oEditor); _this6.resizerTrigger(); @@ -13358,7 +13028,7 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ if ('' !== fromLine) { signature = signature.replace(/{{FROM-FULL}}/g, fromLine); - if (-1 === _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_11___default()(fromLine).call(fromLine, ' ') && 0 < _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_11___default()(fromLine).call(fromLine, '@')) { + if (-1 === fromLine.indexOf(' ') && 0 < fromLine.indexOf('@')) { fromLine = fromLine.replace(/@[\S]+/, ''); } @@ -13370,15 +13040,15 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ signature = signature.replace(/{{FROM}}/g, ''); signature = signature.replace(/{{FROM-FULL}}/g, ''); - if (-1 < _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_11___default()(signature).call(signature, '{{DATE}}')) { - signature = signature.replace(/{{DATE}}/g, Object(Common_Momentor__WEBPACK_IMPORTED_MODULE_30__["format"])(0, 'llll')); + if (-1 < signature.indexOf('{{DATE}}')) { + signature = signature.replace(/{{DATE}}/g, Object(Common_Momentor__WEBPACK_IMPORTED_MODULE_29__["format"])(0, 'llll')); } - if (-1 < _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_11___default()(signature).call(signature, '{{TIME}}')) { - signature = signature.replace(/{{TIME}}/g, Object(Common_Momentor__WEBPACK_IMPORTED_MODULE_30__["format"])(0, 'LT')); + if (-1 < signature.indexOf('{{TIME}}')) { + signature = signature.replace(/{{TIME}}/g, Object(Common_Momentor__WEBPACK_IMPORTED_MODULE_29__["format"])(0, 'LT')); } - if (-1 < _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_11___default()(signature).call(signature, '{{MOMENT:')) { + if (-1 < signature.indexOf('{{MOMENT:')) { try { var match = null; @@ -13396,8 +13066,8 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ } if (moments && 0 < moments.length) { - ___WEBPACK_IMPORTED_MODULE_19___default.a.each(moments, function (data) { - signature = signature.replace(data[0], Object(Common_Momentor__WEBPACK_IMPORTED_MODULE_30__["format"])(0, data[1])); + ___WEBPACK_IMPORTED_MODULE_18___default.a.each(moments, function (data) { + signature = signature.replace(data[0], Object(Common_Momentor__WEBPACK_IMPORTED_MODULE_29__["format"])(0, data[1])); }); } @@ -13442,14 +13112,14 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ _proto.onShow = function onShow(type, oMessageOrArray, aToEmails, aCcEmails, aBccEmails, sCustomSubject, sCustomPlainText) { var _this8 = this; - Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__["routeOff"])(); + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_45__["routeOff"])(); this.autosaveStart(); - if (Stores_User_App__WEBPACK_IMPORTED_MODULE_33__[/* default */ "a"].composeInEdit()) { - type = type || Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].Empty; + if (Stores_User_App__WEBPACK_IMPORTED_MODULE_32__[/* default */ "a"].composeInEdit()) { + type = type || Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].Empty; - if (Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].Empty !== type) { - Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__["showScreenPopup"])(__webpack_require__(/*! View/Popup/Ask */ 224), [Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["i18n"])('COMPOSE/DISCARD_UNSAVED_DATA'), function () { + if (Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].Empty !== type) { + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_45__["showScreenPopup"])(__webpack_require__(/*! View/Popup/Ask */ 239), [Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["i18n"])('COMPOSE/DISCARD_UNSAVED_DATA'), function () { _this8.initOnShow(type, oMessageOrArray, aToEmails, aCcEmails, aBccEmails, sCustomSubject, sCustomPlainText); }, null, null, null, false]); } else { @@ -13457,7 +13127,7 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ this.addEmailsTo(this.cc, aCcEmails); this.addEmailsTo(this.bcc, aBccEmails); - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["isNormal"])(sCustomSubject) && '' !== sCustomSubject && '' === this.subject()) { + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["isNormal"])(sCustomSubject) && '' !== sCustomSubject && '' === this.subject()) { this.subject(sCustomSubject); } } @@ -13480,13 +13150,13 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ ; _proto.addEmailsTo = function addEmailsTo(fKoValue, emails) { - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["isNonEmptyArray"])(emails)) { - var value = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["trim"])(fKoValue()), - values = ___WEBPACK_IMPORTED_MODULE_19___default.a.uniq(___WEBPACK_IMPORTED_MODULE_19___default.a.compact(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_12___default()(___WEBPACK_IMPORTED_MODULE_19___default.a).call(___WEBPACK_IMPORTED_MODULE_19___default.a, emails, function (item) { + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["isNonEmptyArray"])(emails)) { + var value = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["trim"])(fKoValue()), + values = ___WEBPACK_IMPORTED_MODULE_18___default.a.uniq(___WEBPACK_IMPORTED_MODULE_18___default.a.compact(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4___default()(___WEBPACK_IMPORTED_MODULE_18___default.a).call(___WEBPACK_IMPORTED_MODULE_18___default.a, emails, function (item) { return item ? item.toLine(false) : null; }))); - fKoValue(value + ('' === value ? '' : ', ') + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["trim"])(values.join(', '))); + fKoValue(value + ('' === value ? '' : ', ') + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["trim"])(values.join(', '))); } } /** @@ -13499,7 +13169,7 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ _proto.emailArrayToStringLineHelper = function emailArrayToStringLineHelper(aList, bFriendly) { bFriendly = !!bFriendly; - return _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_12___default()(___WEBPACK_IMPORTED_MODULE_19___default.a).call(___WEBPACK_IMPORTED_MODULE_19___default.a, aList, function (item) { + return _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4___default()(___WEBPACK_IMPORTED_MODULE_18___default.a).call(___WEBPACK_IMPORTED_MODULE_18___default.a, aList, function (item) { return item.toLine(bFriendly); }).join(', '); } @@ -13517,7 +13187,7 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ _proto.initOnShow = function initOnShow(sType, oMessageOrArray, aToEmails, aCcEmails, aBccEmails, sCustomSubject, sCustomPlainText) { var _this9 = this; - Stores_User_App__WEBPACK_IMPORTED_MODULE_33__[/* default */ "a"].composeInEdit(true); + Stores_User_App__WEBPACK_IMPORTED_MODULE_32__[/* default */ "a"].composeInEdit(true); var sFrom = '', sTo = '', sCc = '', @@ -13529,12 +13199,12 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ aDraftInfo = null, message = null; var excludeEmail = {}, - mEmail = Stores_User_Account__WEBPACK_IMPORTED_MODULE_36__[/* default */ "a"].email(), - lineComposeType = sType || Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].Empty; + mEmail = Stores_User_Account__WEBPACK_IMPORTED_MODULE_35__[/* default */ "a"].email(), + lineComposeType = sType || Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].Empty; oMessageOrArray = oMessageOrArray || null; - if (oMessageOrArray && Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["isNormal"])(oMessageOrArray)) { - message = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["isArray"])(oMessageOrArray) && 1 === oMessageOrArray.length ? oMessageOrArray[0] : !Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["isArray"])(oMessageOrArray) ? oMessageOrArray : null; + if (oMessageOrArray && Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["isNormal"])(oMessageOrArray)) { + message = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["isArray"])(oMessageOrArray) && 1 === oMessageOrArray.length ? oMessageOrArray[0] : !Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["isArray"])(oMessageOrArray) ? oMessageOrArray : null; } this.oLastMessage = message; @@ -13550,72 +13220,72 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ excludeEmail[identity.email()] = true; } - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["isNonEmptyArray"])(aToEmails)) { + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["isNonEmptyArray"])(aToEmails)) { this.to(this.emailArrayToStringLineHelper(aToEmails)); } - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["isNonEmptyArray"])(aCcEmails)) { + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["isNonEmptyArray"])(aCcEmails)) { this.cc(this.emailArrayToStringLineHelper(aCcEmails)); } - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["isNonEmptyArray"])(aBccEmails)) { + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["isNonEmptyArray"])(aBccEmails)) { this.bcc(this.emailArrayToStringLineHelper(aBccEmails)); } if ('' !== lineComposeType && message) { - sDate = Object(Common_Momentor__WEBPACK_IMPORTED_MODULE_30__["format"])(message.dateTimeStampInUTC(), 'FULL'); + sDate = Object(Common_Momentor__WEBPACK_IMPORTED_MODULE_29__["format"])(message.dateTimeStampInUTC(), 'FULL'); sSubject = message.subject(); aDraftInfo = message.aDraftInfo; - var clonedText = $__WEBPACK_IMPORTED_MODULE_20___default()(message.body).clone(); + var clonedText = $__WEBPACK_IMPORTED_MODULE_19___default()(message.body).clone(); if (clonedText) { - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["clearBqSwitcher"])(clonedText); + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["clearBqSwitcher"])(clonedText); sText = clonedText.html(); } var resplyAllParts = null; switch (lineComposeType) { - case Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].Empty: + case Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].Empty: break; - case Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].Reply: + case Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].Reply: this.to(this.emailArrayToStringLineHelper(message.replyEmails(excludeEmail))); - this.subject(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["replySubjectAdd"])('Re', sSubject)); + this.subject(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["replySubjectAdd"])('Re', sSubject)); this.prepearMessageAttachments(message, lineComposeType); this.aDraftInfo = ['reply', message.uid, message.folderFullNameRaw]; this.sInReplyTo = message.sMessageId; - this.sReferences = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["trim"])(this.sInReplyTo + ' ' + message.sReferences); + this.sReferences = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["trim"])(this.sInReplyTo + ' ' + message.sReferences); break; - case Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].ReplyAll: + case Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].ReplyAll: resplyAllParts = message.replyAllEmails(excludeEmail); this.to(this.emailArrayToStringLineHelper(resplyAllParts[0])); this.cc(this.emailArrayToStringLineHelper(resplyAllParts[1])); - this.subject(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["replySubjectAdd"])('Re', sSubject)); + this.subject(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["replySubjectAdd"])('Re', sSubject)); this.prepearMessageAttachments(message, lineComposeType); this.aDraftInfo = ['reply', message.uid, message.folderFullNameRaw]; this.sInReplyTo = message.sMessageId; - this.sReferences = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["trim"])(this.sInReplyTo + ' ' + message.references()); + this.sReferences = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["trim"])(this.sInReplyTo + ' ' + message.references()); break; - case Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].Forward: - this.subject(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["replySubjectAdd"])('Fwd', sSubject)); + case Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].Forward: + this.subject(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["replySubjectAdd"])('Fwd', sSubject)); this.prepearMessageAttachments(message, lineComposeType); this.aDraftInfo = ['forward', message.uid, message.folderFullNameRaw]; this.sInReplyTo = message.sMessageId; - this.sReferences = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["trim"])(this.sInReplyTo + ' ' + message.sReferences); + this.sReferences = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["trim"])(this.sInReplyTo + ' ' + message.sReferences); break; - case Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].ForwardAsAttachment: - this.subject(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["replySubjectAdd"])('Fwd', sSubject)); + case Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].ForwardAsAttachment: + this.subject(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["replySubjectAdd"])('Fwd', sSubject)); this.prepearMessageAttachments(message, lineComposeType); this.aDraftInfo = ['forward', message.uid, message.folderFullNameRaw]; this.sInReplyTo = message.sMessageId; - this.sReferences = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["trim"])(this.sInReplyTo + ' ' + message.sReferences); + this.sReferences = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["trim"])(this.sInReplyTo + ' ' + message.sReferences); break; - case Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].Draft: + case Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].Draft: this.to(this.emailArrayToStringLineHelper(message.to)); this.cc(this.emailArrayToStringLineHelper(message.cc)); this.bcc(this.emailArrayToStringLineHelper(message.bcc)); @@ -13625,19 +13295,19 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ this.draftUid(message.uid); this.subject(sSubject); this.prepearMessageAttachments(message, lineComposeType); - this.aDraftInfo = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["isNonEmptyArray"])(aDraftInfo) && 3 === aDraftInfo.length ? aDraftInfo : null; + this.aDraftInfo = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["isNonEmptyArray"])(aDraftInfo) && 3 === aDraftInfo.length ? aDraftInfo : null; this.sInReplyTo = message.sInReplyTo; this.sReferences = message.sReferences; break; - case Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].EditAsNew: + case Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].EditAsNew: this.to(this.emailArrayToStringLineHelper(message.to)); this.cc(this.emailArrayToStringLineHelper(message.cc)); this.bcc(this.emailArrayToStringLineHelper(message.bcc)); this.replyTo(this.emailArrayToStringLineHelper(message.replyTo)); this.subject(sSubject); this.prepearMessageAttachments(message, lineComposeType); - this.aDraftInfo = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["isNonEmptyArray"])(aDraftInfo) && 3 === aDraftInfo.length ? aDraftInfo : null; + this.aDraftInfo = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["isNonEmptyArray"])(aDraftInfo) && 3 === aDraftInfo.length ? aDraftInfo : null; this.sInReplyTo = message.sInReplyTo; this.sReferences = message.sReferences; break; @@ -13645,24 +13315,24 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ } switch (lineComposeType) { - case Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].Reply: - case Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].ReplyAll: + case Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].Reply: + case Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].ReplyAll: sFrom = message.fromToLine(false, true); - sReplyTitle = Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["i18n"])('COMPOSE/REPLY_MESSAGE_TITLE', { + sReplyTitle = Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["i18n"])('COMPOSE/REPLY_MESSAGE_TITLE', { 'DATETIME': sDate, 'EMAIL': sFrom }); - sText = '

' + sReplyTitle + ':' + '

' + '
' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["trim"])(sText) + '
'; + sText = '

' + sReplyTitle + ':' + '

' + '
' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["trim"])(sText) + '
'; break; - case Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].Forward: + case Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].Forward: sFrom = message.fromToLine(false, true); sTo = message.toToLine(false, true); sCc = message.ccToLine(false, true); - sText = '

' + Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["i18n"])('COMPOSE/FORWARD_MESSAGE_TOP_TITLE') + '
' + Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["i18n"])('COMPOSE/FORWARD_MESSAGE_TOP_FROM') + ': ' + sFrom + '
' + Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["i18n"])('COMPOSE/FORWARD_MESSAGE_TOP_TO') + ': ' + sTo + (0 < sCc.length ? '
' + Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["i18n"])('COMPOSE/FORWARD_MESSAGE_TOP_CC') + ': ' + sCc : '') + '
' + Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["i18n"])('COMPOSE/FORWARD_MESSAGE_TOP_SENT') + ': ' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["encodeHtml"])(sDate) + '
' + Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["i18n"])('COMPOSE/FORWARD_MESSAGE_TOP_SUBJECT') + ': ' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["encodeHtml"])(sSubject) + '

' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["trim"])(sText) + '

'; + sText = '

' + Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["i18n"])('COMPOSE/FORWARD_MESSAGE_TOP_TITLE') + '
' + Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["i18n"])('COMPOSE/FORWARD_MESSAGE_TOP_FROM') + ': ' + sFrom + '
' + Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["i18n"])('COMPOSE/FORWARD_MESSAGE_TOP_TO') + ': ' + sTo + (0 < sCc.length ? '
' + Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["i18n"])('COMPOSE/FORWARD_MESSAGE_TOP_CC') + ': ' + sCc : '') + '
' + Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["i18n"])('COMPOSE/FORWARD_MESSAGE_TOP_SENT') + ': ' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["encodeHtml"])(sDate) + '
' + Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["i18n"])('COMPOSE/FORWARD_MESSAGE_TOP_SUBJECT') + ': ' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["encodeHtml"])(sSubject) + '

' + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["trim"])(sText) + '

'; break; - case Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].ForwardAsAttachment: + case Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].ForwardAsAttachment: sText = ''; break; // no default @@ -13671,23 +13341,23 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ this.editor(function (editor) { editor.setHtml(sText, false); - if (Common_Enums__WEBPACK_IMPORTED_MODULE_24__["EditorDefaultType"].PlainForced === _this9.editorDefaultType() || !message.isHtml() && Common_Enums__WEBPACK_IMPORTED_MODULE_24__["EditorDefaultType"].HtmlForced !== _this9.editorDefaultType()) { + if (Common_Enums__WEBPACK_IMPORTED_MODULE_23__["EditorDefaultType"].PlainForced === _this9.editorDefaultType() || !message.isHtml() && Common_Enums__WEBPACK_IMPORTED_MODULE_23__["EditorDefaultType"].HtmlForced !== _this9.editorDefaultType()) { editor.modeToggle(false); } - if (identity && Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].Draft !== lineComposeType && Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].EditAsNew !== lineComposeType) { + if (identity && Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].Draft !== lineComposeType && Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].EditAsNew !== lineComposeType) { _this9.setSignatureFromIdentity(identity); } _this9.setFocusInPopup(); }); - } else if (Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].Empty === lineComposeType) { - this.subject(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["isNormal"])(sCustomSubject) ? '' + sCustomSubject : ''); - sText = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["isNormal"])(sCustomPlainText) ? '' + sCustomPlainText : ''; + } else if (Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].Empty === lineComposeType) { + this.subject(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["isNormal"])(sCustomSubject) ? '' + sCustomSubject : ''); + sText = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["isNormal"])(sCustomPlainText) ? '' + sCustomPlainText : ''; this.editor(function (editor) { editor.setHtml(sText, false); - if (Common_Enums__WEBPACK_IMPORTED_MODULE_24__["EditorDefaultType"].Html !== _this9.editorDefaultType() && Common_Enums__WEBPACK_IMPORTED_MODULE_24__["EditorDefaultType"].HtmlForced !== _this9.editorDefaultType()) { + if (Common_Enums__WEBPACK_IMPORTED_MODULE_23__["EditorDefaultType"].Html !== _this9.editorDefaultType() && Common_Enums__WEBPACK_IMPORTED_MODULE_23__["EditorDefaultType"].HtmlForced !== _this9.editorDefaultType()) { editor.modeToggle(false); } @@ -13697,19 +13367,19 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ _this9.setFocusInPopup(); }); - } else if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["isNonEmptyArray"])(oMessageOrArray)) { - ___WEBPACK_IMPORTED_MODULE_19___default.a.each(oMessageOrArray, function (item) { + } else if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["isNonEmptyArray"])(oMessageOrArray)) { + ___WEBPACK_IMPORTED_MODULE_18___default.a.each(oMessageOrArray, function (item) { _this9.addMessageAsAttachment(item); }); this.editor(function (editor) { editor.setHtml('', false); - if (Common_Enums__WEBPACK_IMPORTED_MODULE_24__["EditorDefaultType"].Html !== _this9.editorDefaultType() && Common_Enums__WEBPACK_IMPORTED_MODULE_24__["EditorDefaultType"].HtmlForced !== _this9.editorDefaultType()) { + if (Common_Enums__WEBPACK_IMPORTED_MODULE_23__["EditorDefaultType"].Html !== _this9.editorDefaultType() && Common_Enums__WEBPACK_IMPORTED_MODULE_23__["EditorDefaultType"].HtmlForced !== _this9.editorDefaultType()) { editor.modeToggle(false); } - if (identity && Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].Draft !== lineComposeType && Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].EditAsNew !== lineComposeType) { + if (identity && Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].Draft !== lineComposeType && Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].EditAsNew !== lineComposeType) { _this9.setSignatureFromIdentity(identity); } @@ -13721,8 +13391,8 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ var downloads = this.getAttachmentsDownloadsForUpload(); - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["isNonEmptyArray"])(downloads)) { - Remote_User_Ajax__WEBPACK_IMPORTED_MODULE_41__[/* default */ "a"].messageUploadAttachments(this.onMessageUploadAttachments, downloads); + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["isNonEmptyArray"])(downloads)) { + Remote_User_Ajax__WEBPACK_IMPORTED_MODULE_40__[/* default */ "a"].messageUploadAttachments(this.onMessageUploadAttachments, downloads); } if (identity) { @@ -13735,9 +13405,9 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ _proto.onMessageUploadAttachments = function onMessageUploadAttachments(sResult, oData) { var _this10 = this; - if (Common_Enums__WEBPACK_IMPORTED_MODULE_24__["StorageResultType"].Success === sResult && oData && oData.Result) { + if (Common_Enums__WEBPACK_IMPORTED_MODULE_23__["StorageResultType"].Success === sResult && oData && oData.Result) { if (!this.viewModelVisibility()) { - ___WEBPACK_IMPORTED_MODULE_19___default.a.each(oData.Result, function (id, tempName) { + ___WEBPACK_IMPORTED_MODULE_18___default.a.each(oData.Result, function (id, tempName) { var attachment = _this10.getAttachmentById(id); if (attachment) { @@ -13754,8 +13424,8 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ _proto.setFocusInPopup = function setFocusInPopup() { var _this11 = this; - if (!Common_Globals__WEBPACK_IMPORTED_MODULE_27__["bMobileDevice"]) { - ___WEBPACK_IMPORTED_MODULE_19___default.a.delay(function () { + if (!Common_Globals__WEBPACK_IMPORTED_MODULE_26__["bMobileDevice"]) { + ___WEBPACK_IMPORTED_MODULE_18___default.a.delay(function () { if ('' === _this11.to()) { _this11.to.focused(true); } else if (_this11.oEditor) { @@ -13763,7 +13433,7 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ _this11.oEditor.focus(); } } - }, Common_Enums__WEBPACK_IMPORTED_MODULE_24__["Magics"].Time100ms); + }, Common_Enums__WEBPACK_IMPORTED_MODULE_23__["Magics"].Time100ms); } }; @@ -13774,15 +13444,15 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ _proto.tryToClosePopup = function tryToClosePopup() { var _this12 = this; - var PopupsAskViewModel = __webpack_require__(/*! View/Popup/Ask */ 224); + var PopupsAskViewModel = __webpack_require__(/*! View/Popup/Ask */ 239); - if (!Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__["isPopupVisible"])(PopupsAskViewModel) && this.modalVisibility()) { + if (!Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_45__["isPopupVisible"])(PopupsAskViewModel) && this.modalVisibility()) { if (this.bSkipNextHide || this.isEmptyForm() && !this.draftUid()) { - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["delegateRun"])(this, 'closeCommand'); + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["delegateRun"])(this, 'closeCommand'); } else { - Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__["showScreenPopup"])(PopupsAskViewModel, [Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["i18n"])('POPUPS_ASK/DESC_WANT_CLOSE_THIS_WINDOW'), function () { + Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_45__["showScreenPopup"])(PopupsAskViewModel, [Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["i18n"])('POPUPS_ASK/DESC_WANT_CLOSE_THIS_WINDOW'), function () { if (_this12.modalVisibility()) { - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["delegateRun"])(_this12, 'closeCommand'); + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["delegateRun"])(_this12, 'closeCommand'); } }]); } @@ -13793,9 +13463,9 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ var _this13 = this; this.initUploader(); - key__WEBPACK_IMPORTED_MODULE_22___default()('ctrl+q, command+q, ctrl+w, command+w', Common_Enums__WEBPACK_IMPORTED_MODULE_24__["KeyState"].Compose, Common_Utils__WEBPACK_IMPORTED_MODULE_25__["noopFalse"]); - key__WEBPACK_IMPORTED_MODULE_22___default()('`', Common_Enums__WEBPACK_IMPORTED_MODULE_24__["KeyState"].Compose, function () { - if (_this13.oEditor && !_this13.oEditor.hasFocus() && !Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["inFocus"])()) { + key__WEBPACK_IMPORTED_MODULE_21___default()('ctrl+q, command+q, ctrl+w, command+w', Common_Enums__WEBPACK_IMPORTED_MODULE_23__["KeyState"].Compose, Common_Utils__WEBPACK_IMPORTED_MODULE_24__["noopFalse"]); + key__WEBPACK_IMPORTED_MODULE_21___default()('`', Common_Enums__WEBPACK_IMPORTED_MODULE_23__["KeyState"].Compose, function () { + if (_this13.oEditor && !_this13.oEditor.hasFocus() && !Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["inFocus"])()) { _this13.identitiesDropdownTrigger(true); return false; @@ -13803,69 +13473,69 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ return true; }); - key__WEBPACK_IMPORTED_MODULE_22___default()('ctrl+`', Common_Enums__WEBPACK_IMPORTED_MODULE_24__["KeyState"].Compose, function () { + key__WEBPACK_IMPORTED_MODULE_21___default()('ctrl+`', Common_Enums__WEBPACK_IMPORTED_MODULE_23__["KeyState"].Compose, function () { _this13.identitiesDropdownTrigger(true); return false; }); - key__WEBPACK_IMPORTED_MODULE_22___default()('esc, ctrl+down, command+down', Common_Enums__WEBPACK_IMPORTED_MODULE_24__["KeyState"].Compose, function () { + key__WEBPACK_IMPORTED_MODULE_21___default()('esc, ctrl+down, command+down', Common_Enums__WEBPACK_IMPORTED_MODULE_23__["KeyState"].Compose, function () { _this13.skipCommand(); return false; }); if (this.allowFolders) { - key__WEBPACK_IMPORTED_MODULE_22___default()('ctrl+s, command+s', Common_Enums__WEBPACK_IMPORTED_MODULE_24__["KeyState"].Compose, function () { + key__WEBPACK_IMPORTED_MODULE_21___default()('ctrl+s, command+s', Common_Enums__WEBPACK_IMPORTED_MODULE_23__["KeyState"].Compose, function () { _this13.saveCommand(); return false; }); } - if (Storage_Settings__WEBPACK_IMPORTED_MODULE_42__["appSettingsGet"]('allowCtrlEnterOnCompose')) { - key__WEBPACK_IMPORTED_MODULE_22___default()('ctrl+enter, command+enter', Common_Enums__WEBPACK_IMPORTED_MODULE_24__["KeyState"].Compose, function () { + if (Storage_Settings__WEBPACK_IMPORTED_MODULE_41__["appSettingsGet"]('allowCtrlEnterOnCompose')) { + key__WEBPACK_IMPORTED_MODULE_21___default()('ctrl+enter, command+enter', Common_Enums__WEBPACK_IMPORTED_MODULE_23__["KeyState"].Compose, function () { _this13.sendCommand(); return false; }); } - key__WEBPACK_IMPORTED_MODULE_22___default()('shift+esc', Common_Enums__WEBPACK_IMPORTED_MODULE_24__["KeyState"].Compose, function () { + key__WEBPACK_IMPORTED_MODULE_21___default()('shift+esc', Common_Enums__WEBPACK_IMPORTED_MODULE_23__["KeyState"].Compose, function () { if (_this13.modalVisibility()) { _this13.tryToClosePopup(); } return false; }); - Common_Events__WEBPACK_IMPORTED_MODULE_43__[/* sub */ "b"]('window.resize.real', this.resizerTrigger); - Common_Events__WEBPACK_IMPORTED_MODULE_43__[/* sub */ "b"]('window.resize.real', ___WEBPACK_IMPORTED_MODULE_19___default.a.debounce(this.resizerTrigger, Common_Enums__WEBPACK_IMPORTED_MODULE_24__["Magics"].Time50ms)); - Stores_Social__WEBPACK_IMPORTED_MODULE_40__[/* default */ "a"].appendDropbox(); + Common_Events__WEBPACK_IMPORTED_MODULE_42__[/* sub */ "b"]('window.resize.real', this.resizerTrigger); + Common_Events__WEBPACK_IMPORTED_MODULE_42__[/* sub */ "b"]('window.resize.real', ___WEBPACK_IMPORTED_MODULE_18___default.a.debounce(this.resizerTrigger, Common_Enums__WEBPACK_IMPORTED_MODULE_23__["Magics"].Time50ms)); + Stores_Social__WEBPACK_IMPORTED_MODULE_39__[/* default */ "a"].appendDropbox(); if (this.driveEnabled()) { - $__WEBPACK_IMPORTED_MODULE_20___default.a.getScript('https://apis.google.com/js/api.js', function () { - if (window__WEBPACK_IMPORTED_MODULE_18___default.a.gapi) { + $__WEBPACK_IMPORTED_MODULE_19___default.a.getScript('https://apis.google.com/js/api.js', function () { + if (window__WEBPACK_IMPORTED_MODULE_17___default.a.gapi) { _this13.driveVisible(true); } }); } - window__WEBPACK_IMPORTED_MODULE_18___default.a.setInterval(function () { + _babel_runtime_corejs3_core_js_stable_set_interval__WEBPACK_IMPORTED_MODULE_6___default()(function () { if (_this13.modalVisibility() && _this13.oEditor) { _this13.oEditor.resize(); } - }, Common_Enums__WEBPACK_IMPORTED_MODULE_24__["Magics"].Time5s); + }, Common_Enums__WEBPACK_IMPORTED_MODULE_23__["Magics"].Time5s); }; _proto.driveCallback = function driveCallback(accessToken, data) { var _this14 = this; - if (data && window__WEBPACK_IMPORTED_MODULE_18___default.a.XMLHttpRequest && window__WEBPACK_IMPORTED_MODULE_18___default.a.google && data[window__WEBPACK_IMPORTED_MODULE_18___default.a.google.picker.Response.ACTION] === window__WEBPACK_IMPORTED_MODULE_18___default.a.google.picker.Action.PICKED && data[window__WEBPACK_IMPORTED_MODULE_18___default.a.google.picker.Response.DOCUMENTS] && data[window__WEBPACK_IMPORTED_MODULE_18___default.a.google.picker.Response.DOCUMENTS][0] && data[window__WEBPACK_IMPORTED_MODULE_18___default.a.google.picker.Response.DOCUMENTS][0].id) { - var request = new window__WEBPACK_IMPORTED_MODULE_18___default.a.XMLHttpRequest(); - request.open('GET', 'https://www.googleapis.com/drive/v2/files/' + data[window__WEBPACK_IMPORTED_MODULE_18___default.a.google.picker.Response.DOCUMENTS][0].id); + if (data && window__WEBPACK_IMPORTED_MODULE_17___default.a.XMLHttpRequest && window__WEBPACK_IMPORTED_MODULE_17___default.a.google && data[window__WEBPACK_IMPORTED_MODULE_17___default.a.google.picker.Response.ACTION] === window__WEBPACK_IMPORTED_MODULE_17___default.a.google.picker.Action.PICKED && data[window__WEBPACK_IMPORTED_MODULE_17___default.a.google.picker.Response.DOCUMENTS] && data[window__WEBPACK_IMPORTED_MODULE_17___default.a.google.picker.Response.DOCUMENTS][0] && data[window__WEBPACK_IMPORTED_MODULE_17___default.a.google.picker.Response.DOCUMENTS][0].id) { + var request = new window__WEBPACK_IMPORTED_MODULE_17___default.a.XMLHttpRequest(); + request.open('GET', 'https://www.googleapis.com/drive/v2/files/' + data[window__WEBPACK_IMPORTED_MODULE_17___default.a.google.picker.Response.DOCUMENTS][0].id); request.setRequestHeader('Authorization', 'Bearer ' + accessToken); request.addEventListener('load', function () { if (request && request.responseText) { - var response = window__WEBPACK_IMPORTED_MODULE_18___default.a.JSON.parse(request.responseText), + var response = window__WEBPACK_IMPORTED_MODULE_17___default.a.JSON.parse(request.responseText), fExport = function fExport(item, mimeType, ext) { if (item && item.exportLinks) { if (item.exportLinks[mimeType]) { @@ -13916,12 +13586,12 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ _proto.driveCreatePiker = function driveCreatePiker(authToken) { var _this15 = this; - if (window__WEBPACK_IMPORTED_MODULE_18___default.a.gapi && authToken && authToken.access_token) { - window__WEBPACK_IMPORTED_MODULE_18___default.a.gapi.load('picker', { + if (window__WEBPACK_IMPORTED_MODULE_17___default.a.gapi && authToken && authToken.access_token) { + window__WEBPACK_IMPORTED_MODULE_17___default.a.gapi.load('picker', { callback: function callback() { - if (window__WEBPACK_IMPORTED_MODULE_18___default.a.google && window__WEBPACK_IMPORTED_MODULE_18___default.a.google.picker) { - var drivePicker = new window__WEBPACK_IMPORTED_MODULE_18___default.a.google.picker.PickerBuilder() // .addView(window.google.picker.ViewId.FOLDERS) - .addView(window__WEBPACK_IMPORTED_MODULE_18___default.a.google.picker.ViewId.DOCS).setAppId(Storage_Settings__WEBPACK_IMPORTED_MODULE_42__["settingsGet"]('GoogleClientID')).setOAuthToken(authToken.access_token).setCallback(_babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_13___default()(___WEBPACK_IMPORTED_MODULE_19___default.a).call(___WEBPACK_IMPORTED_MODULE_19___default.a, _this15.driveCallback, _this15, authToken.access_token)).enableFeature(window__WEBPACK_IMPORTED_MODULE_18___default.a.google.picker.Feature.NAV_HIDDEN) // .setOrigin(window.location.protocol + '//' + window.location.host) + if (window__WEBPACK_IMPORTED_MODULE_17___default.a.google && window__WEBPACK_IMPORTED_MODULE_17___default.a.google.picker) { + var drivePicker = new window__WEBPACK_IMPORTED_MODULE_17___default.a.google.picker.PickerBuilder() // .addView(window.google.picker.ViewId.FOLDERS) + .addView(window__WEBPACK_IMPORTED_MODULE_17___default.a.google.picker.ViewId.DOCS).setAppId(Storage_Settings__WEBPACK_IMPORTED_MODULE_41__["settingsGet"]('GoogleClientID')).setOAuthToken(authToken.access_token).setCallback(___WEBPACK_IMPORTED_MODULE_18___default.a.bind(_this15.driveCallback, _this15, authToken.access_token)).enableFeature(window__WEBPACK_IMPORTED_MODULE_17___default.a.google.picker.Feature.NAV_HIDDEN) // .setOrigin(window.location.protocol + '//' + window.location.host) .build(); drivePicker.setVisible(true); } @@ -13933,13 +13603,13 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ _proto.driveOpenPopup = function driveOpenPopup() { var _this16 = this; - if (window__WEBPACK_IMPORTED_MODULE_18___default.a.gapi) { - window__WEBPACK_IMPORTED_MODULE_18___default.a.gapi.load('auth', { + if (window__WEBPACK_IMPORTED_MODULE_17___default.a.gapi) { + window__WEBPACK_IMPORTED_MODULE_17___default.a.gapi.load('auth', { callback: function callback() { - var authToken = window__WEBPACK_IMPORTED_MODULE_18___default.a.gapi.auth.getToken(), + var authToken = window__WEBPACK_IMPORTED_MODULE_17___default.a.gapi.auth.getToken(), fResult = function fResult(authResult) { if (authResult && !authResult.error) { - var token = window__WEBPACK_IMPORTED_MODULE_18___default.a.gapi.auth.getToken(); + var token = window__WEBPACK_IMPORTED_MODULE_17___default.a.gapi.auth.getToken(); if (token) { _this16.driveCreatePiker(token); @@ -13952,14 +13622,14 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ }; if (!authToken) { - window__WEBPACK_IMPORTED_MODULE_18___default.a.gapi.auth.authorize({ - 'client_id': Storage_Settings__WEBPACK_IMPORTED_MODULE_42__["settingsGet"]('GoogleClientID'), + window__WEBPACK_IMPORTED_MODULE_17___default.a.gapi.auth.authorize({ + 'client_id': Storage_Settings__WEBPACK_IMPORTED_MODULE_41__["settingsGet"]('GoogleClientID'), 'scope': 'https://www.googleapis.com/auth/drive.readonly', 'immediate': true }, function (authResult) { if (!fResult(authResult)) { - window__WEBPACK_IMPORTED_MODULE_18___default.a.gapi.auth.authorize({ - 'client_id': Storage_Settings__WEBPACK_IMPORTED_MODULE_42__["settingsGet"]('GoogleClientID'), + window__WEBPACK_IMPORTED_MODULE_17___default.a.gapi.auth.authorize({ + 'client_id': Storage_Settings__WEBPACK_IMPORTED_MODULE_41__["settingsGet"]('GoogleClientID'), 'scope': 'https://www.googleapis.com/auth/drive.readonly', 'immediate': false }, fResult); @@ -13979,7 +13649,7 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ ; _proto.getAttachmentById = function getAttachmentById(id) { - return _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_10___default()(___WEBPACK_IMPORTED_MODULE_19___default.a).call(___WEBPACK_IMPORTED_MODULE_19___default.a, this.attachments(), function (item) { + return _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()(___WEBPACK_IMPORTED_MODULE_18___default.a).call(___WEBPACK_IMPORTED_MODULE_18___default.a, this.attachments(), function (item) { return item && id === item.id; }); }; @@ -13988,14 +13658,14 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ var _this17 = this; return function () { - var attachment = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_10___default()(___WEBPACK_IMPORTED_MODULE_19___default.a).call(___WEBPACK_IMPORTED_MODULE_19___default.a, _this17.attachments(), function (item) { + var attachment = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()(___WEBPACK_IMPORTED_MODULE_18___default.a).call(___WEBPACK_IMPORTED_MODULE_18___default.a, _this17.attachments(), function (item) { return item && item.id === id; }); if (attachment) { _this17.attachments.remove(attachment); - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["delegateRunOnDestroy"])(attachment); + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["delegateRunOnDestroy"])(attachment); if (oJua) { oJua.cancel(id); @@ -14009,9 +13679,9 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ if (this.composeUploaderButton()) { var uploadCache = {}, - attachmentSizeLimit = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["pInt"])(Storage_Settings__WEBPACK_IMPORTED_MODULE_42__["settingsGet"]('AttachmentLimit')), - oJua = new Jua__WEBPACK_IMPORTED_MODULE_23___default.a({ - 'action': Object(Common_Links__WEBPACK_IMPORTED_MODULE_28__[/* upload */ "G"])(), + attachmentSizeLimit = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["pInt"])(Storage_Settings__WEBPACK_IMPORTED_MODULE_41__["settingsGet"]('AttachmentLimit')), + oJua = new Jua__WEBPACK_IMPORTED_MODULE_22___default.a({ + 'action': Object(Common_Links__WEBPACK_IMPORTED_MODULE_27__[/* upload */ "G"])(), 'name': 'uploader', 'queueSize': 2, 'multipleSizeLimit': 50, @@ -14045,14 +13715,14 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ } if (item) { - item.progress(window__WEBPACK_IMPORTED_MODULE_18___default.a.Math.floor(loaded / total * 100)); + item.progress(window__WEBPACK_IMPORTED_MODULE_17___default.a.Math.floor(loaded / total * 100)); } }).on('onSelect', function (sId, oData) { _this18.dragAndDropOver(false); - var fileName = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["isUnd"])(oData.FileName) ? '' : oData.FileName.toString(), - size = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["isNormal"])(oData.Size) ? Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["pInt"])(oData.Size) : null, - attachment = new Model_ComposeAttachment__WEBPACK_IMPORTED_MODULE_44__[/* ComposeAttachmentModel */ "a"](sId, fileName, size); + var fileName = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["isUnd"])(oData.FileName) ? '' : oData.FileName.toString(), + size = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["isNormal"])(oData.Size) ? Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["pInt"])(oData.Size) : null, + attachment = new Model_ComposeAttachment__WEBPACK_IMPORTED_MODULE_43__[/* ComposeAttachmentModel */ "a"](sId, fileName, size); attachment.cancel = _this18.cancelAttachmentHelper(sId, oJua); _this18.attachments.push(attachment); @@ -14060,7 +13730,7 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ _this18.attachmentsPlace(true); if (0 < size && 0 < attachmentSizeLimit && attachmentSizeLimit < size) { - attachment.waiting(false).uploading(true).complete(true).error(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["i18n"])('UPLOAD/ERROR_FILE_IS_TOO_BIG')); + attachment.waiting(false).uploading(true).complete(true).error(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["i18n"])('UPLOAD/ERROR_FILE_IS_TOO_BIG')); return false; } @@ -14087,9 +13757,9 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ var error = ''; if (null !== errorCode) { - error = Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["getUploadErrorDescByCode"])(errorCode); + error = Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["getUploadErrorDescByCode"])(errorCode); } else if (!attachmentJson) { - error = Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["i18n"])('UPLOAD/ERROR_UNKNOWN'); + error = Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["i18n"])('UPLOAD/ERROR_UNKNOWN'); } if (attachment) { @@ -14100,7 +13770,7 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ attachment.initByUploadJson(attachmentJson); } - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["isUnd"])(uploadCache[id])) { + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["isUnd"])(uploadCache[id])) { delete uploadCache[id]; } } @@ -14119,7 +13789,7 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ _proto.prepearAttachmentsForSendOrSave = function prepearAttachmentsForSendOrSave() { var result = {}; - ___WEBPACK_IMPORTED_MODULE_19___default.a.each(this.attachmentsInReady(), function (item) { + ___WEBPACK_IMPORTED_MODULE_18___default.a.each(this.attachmentsInReady(), function (item) { if (item && '' !== item.tempName() && item.enabled()) { result[item.tempName()] = [item.fileName(), item.isInline ? '1' : '0', item.CID, item.contentLocation]; } @@ -14136,7 +13806,7 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ if (message) { var temp = message.subject(); temp = '.eml' === temp.substr(-4).toLowerCase() ? temp : temp + '.eml'; - var attachment = new Model_ComposeAttachment__WEBPACK_IMPORTED_MODULE_44__[/* ComposeAttachmentModel */ "a"](message.requestHash, temp, message.size()); + var attachment = new Model_ComposeAttachment__WEBPACK_IMPORTED_MODULE_43__[/* ComposeAttachmentModel */ "a"](message.requestHash, temp, message.size()); attachment.fromMessage = true; attachment.cancel = this.cancelAttachmentHelper(message.requestHash); attachment.waiting(false).uploading(true).complete(true); @@ -14152,7 +13822,7 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ ; _proto.addAttachmentHelper = function addAttachmentHelper(url, name, size) { - var attachment = new Model_ComposeAttachment__WEBPACK_IMPORTED_MODULE_44__[/* ComposeAttachmentModel */ "a"](url, name, size); + var attachment = new Model_ComposeAttachment__WEBPACK_IMPORTED_MODULE_43__[/* ComposeAttachmentModel */ "a"](url, name, size); attachment.fromMessage = false; attachment.cancel = this.cancelAttachmentHelper(url); attachment.waiting(false).uploading(true).complete(false); @@ -14167,21 +13837,21 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ ; _proto.addDropboxAttachment = function addDropboxAttachment(dropboxFile) { - var attachmentSizeLimit = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["pInt"])(Storage_Settings__WEBPACK_IMPORTED_MODULE_42__["settingsGet"]('AttachmentLimit')), + var attachmentSizeLimit = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["pInt"])(Storage_Settings__WEBPACK_IMPORTED_MODULE_41__["settingsGet"]('AttachmentLimit')), mSize = dropboxFile.bytes, attachment = this.addAttachmentHelper(dropboxFile.link, dropboxFile.name, mSize); if (0 < mSize && 0 < attachmentSizeLimit && attachmentSizeLimit < mSize) { attachment.uploading(false).complete(true); - attachment.error(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["i18n"])('UPLOAD/ERROR_FILE_IS_TOO_BIG')); + attachment.error(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["i18n"])('UPLOAD/ERROR_FILE_IS_TOO_BIG')); return false; } - Remote_User_Ajax__WEBPACK_IMPORTED_MODULE_41__[/* default */ "a"].composeUploadExternals(function (statusResult, data) { + Remote_User_Ajax__WEBPACK_IMPORTED_MODULE_40__[/* default */ "a"].composeUploadExternals(function (statusResult, data) { var result = false; attachment.uploading(false).complete(true); - if (Common_Enums__WEBPACK_IMPORTED_MODULE_24__["StorageResultType"].Success === statusResult && data && data.Result) { + if (Common_Enums__WEBPACK_IMPORTED_MODULE_23__["StorageResultType"].Success === statusResult && data && data.Result) { if (data.Result[attachment.id]) { result = true; attachment.tempName(data.Result[attachment.id]); @@ -14189,7 +13859,7 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ } if (!result) { - attachment.error(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["getUploadErrorDescByCode"])(Common_Enums__WEBPACK_IMPORTED_MODULE_24__["UploadErrorCode"].FileNoUploaded)); + attachment.error(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["getUploadErrorDescByCode"])(Common_Enums__WEBPACK_IMPORTED_MODULE_23__["UploadErrorCode"].FileNoUploaded)); } }, [dropboxFile.link]); return true; @@ -14202,30 +13872,30 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ ; _proto.addDriveAttachment = function addDriveAttachment(driveFile, accessToken) { - var attachmentSizeLimit = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["pInt"])(Storage_Settings__WEBPACK_IMPORTED_MODULE_42__["settingsGet"]('AttachmentLimit')), - size = driveFile.fileSize ? Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["pInt"])(driveFile.fileSize) : 0, + var attachmentSizeLimit = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["pInt"])(Storage_Settings__WEBPACK_IMPORTED_MODULE_41__["settingsGet"]('AttachmentLimit')), + size = driveFile.fileSize ? Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["pInt"])(driveFile.fileSize) : 0, attachment = this.addAttachmentHelper(driveFile.downloadUrl, driveFile.title, size); if (0 < size && 0 < attachmentSizeLimit && attachmentSizeLimit < size) { attachment.uploading(false).complete(true); - attachment.error(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["i18n"])('UPLOAD/ERROR_FILE_IS_TOO_BIG')); + attachment.error(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["i18n"])('UPLOAD/ERROR_FILE_IS_TOO_BIG')); return false; } - Remote_User_Ajax__WEBPACK_IMPORTED_MODULE_41__[/* default */ "a"].composeUploadDrive(function (statusResult, data) { + Remote_User_Ajax__WEBPACK_IMPORTED_MODULE_40__[/* default */ "a"].composeUploadDrive(function (statusResult, data) { var result = false; attachment.uploading(false).complete(true); - if (Common_Enums__WEBPACK_IMPORTED_MODULE_24__["StorageResultType"].Success === statusResult && data && data.Result) { + if (Common_Enums__WEBPACK_IMPORTED_MODULE_23__["StorageResultType"].Success === statusResult && data && data.Result) { if (data.Result[attachment.id]) { result = true; attachment.tempName(data.Result[attachment.id][0]); - attachment.size(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["pInt"])(data.Result[attachment.id][1])); + attachment.size(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["pInt"])(data.Result[attachment.id][1])); } } if (!result) { - attachment.error(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["getUploadErrorDescByCode"])(Common_Enums__WEBPACK_IMPORTED_MODULE_24__["UploadErrorCode"].FileNoUploaded)); + attachment.error(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["getUploadErrorDescByCode"])(Common_Enums__WEBPACK_IMPORTED_MODULE_23__["UploadErrorCode"].FileNoUploaded)); } }, driveFile.downloadUrl, accessToken); return true; @@ -14240,30 +13910,30 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ var _this19 = this; if (message) { - if (Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].ForwardAsAttachment === type) { + if (Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].ForwardAsAttachment === type) { this.addMessageAsAttachment(message); } else { var attachments = message.attachments(); - ___WEBPACK_IMPORTED_MODULE_19___default.a.each(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["isNonEmptyArray"])(attachments) ? attachments : [], function (item) { + ___WEBPACK_IMPORTED_MODULE_18___default.a.each(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["isNonEmptyArray"])(attachments) ? attachments : [], function (item) { var add = false; switch (type) { - case Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].Reply: - case Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].ReplyAll: + case Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].Reply: + case Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].ReplyAll: add = item.isLinked; break; - case Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].Forward: - case Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].Draft: - case Common_Enums__WEBPACK_IMPORTED_MODULE_24__["ComposeType"].EditAsNew: + case Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].Forward: + case Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].Draft: + case Common_Enums__WEBPACK_IMPORTED_MODULE_23__["ComposeType"].EditAsNew: add = true; break; // no default } if (add) { - var attachment = new Model_ComposeAttachment__WEBPACK_IMPORTED_MODULE_44__[/* ComposeAttachmentModel */ "a"](item.download, item.fileName, item.estimatedSize, item.isInline, item.isLinked, item.cid, item.contentLocation); + var attachment = new Model_ComposeAttachment__WEBPACK_IMPORTED_MODULE_43__[/* ComposeAttachmentModel */ "a"](item.download, item.fileName, item.estimatedSize, item.isInline, item.isLinked, item.cid, item.contentLocation); attachment.fromMessage = true; attachment.cancel = _this19.cancelAttachmentHelper(item.download); attachment.waiting(false).uploading(true).complete(false); @@ -14276,20 +13946,20 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ }; _proto.removeLinkedAttachments = function removeLinkedAttachments() { - var arrachment = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_10___default()(___WEBPACK_IMPORTED_MODULE_19___default.a).call(___WEBPACK_IMPORTED_MODULE_19___default.a, this.attachments(), function (item) { + var arrachment = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_7___default()(___WEBPACK_IMPORTED_MODULE_18___default.a).call(___WEBPACK_IMPORTED_MODULE_18___default.a, this.attachments(), function (item) { return item && item.isLinked; }); if (arrachment) { this.attachments.remove(arrachment); - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["delegateRunOnDestroy"])(arrachment); + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["delegateRunOnDestroy"])(arrachment); } }; _proto.setMessageAttachmentFailedDownloadText = function setMessageAttachmentFailedDownloadText() { - ___WEBPACK_IMPORTED_MODULE_19___default.a.each(this.attachments(), function (attachment) { + ___WEBPACK_IMPORTED_MODULE_18___default.a.each(this.attachments(), function (attachment) { if (attachment && attachment.fromMessage) { - attachment.waiting(false).uploading(false).complete(true).error(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_29__["getUploadErrorDescByCode"])(Common_Enums__WEBPACK_IMPORTED_MODULE_24__["UploadErrorCode"].FileNoUploaded)); + attachment.waiting(false).uploading(false).complete(true).error(Object(Common_Translator__WEBPACK_IMPORTED_MODULE_28__["getUploadErrorDescByCode"])(Common_Enums__WEBPACK_IMPORTED_MODULE_23__["UploadErrorCode"].FileNoUploaded)); } }); } @@ -14331,7 +14001,7 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ this.showCc(false); this.showBcc(false); this.showReplyTo(false); - Object(Common_Utils__WEBPACK_IMPORTED_MODULE_25__["delegateRunOnDestroy"])(this.attachments()); + Object(Common_Utils__WEBPACK_IMPORTED_MODULE_24__["delegateRunOnDestroy"])(this.attachments()); this.attachments([]); this.dragAndDropOver(false); this.dragAndDropVisible(false); @@ -14350,7 +14020,7 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ ; _proto.getAttachmentsDownloadsForUpload = function getAttachmentsDownloadsForUpload() { - return _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_12___default()(___WEBPACK_IMPORTED_MODULE_19___default.a).call(___WEBPACK_IMPORTED_MODULE_19___default.a, _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_14___default()(___WEBPACK_IMPORTED_MODULE_19___default.a).call(___WEBPACK_IMPORTED_MODULE_19___default.a, this.attachments(), function (item) { + return _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4___default()(___WEBPACK_IMPORTED_MODULE_18___default.a).call(___WEBPACK_IMPORTED_MODULE_18___default.a, _babel_runtime_corejs3_core_js_stable_instance_filter__WEBPACK_IMPORTED_MODULE_3___default()(___WEBPACK_IMPORTED_MODULE_18___default.a).call(___WEBPACK_IMPORTED_MODULE_18___default.a, this.attachments(), function (item) { return item && '' === item.tempName(); }), function (item) { return item.id; @@ -14362,42 +14032,11 @@ var ComposePopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_46__[ }; return ComposePopupView; -}(Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_47__[/* AbstractViewNext */ "a"]), (Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"])(_class2.prototype, "sendCommand", [_dec2], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_9___default()(_class2.prototype, "sendCommand"), _class2.prototype), Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"])(_class2.prototype, "saveCommand", [_dec3], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_9___default()(_class2.prototype, "saveCommand"), _class2.prototype), Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"])(_class2.prototype, "deleteCommand", [_dec4], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_9___default()(_class2.prototype, "deleteCommand"), _class2.prototype), Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"])(_class2.prototype, "skipCommand", [_dec5], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_9___default()(_class2.prototype, "skipCommand"), _class2.prototype), Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"])(_class2.prototype, "contactsCommand", [_dec6], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_9___default()(_class2.prototype, "contactsCommand"), _class2.prototype), Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"])(_class2.prototype, "dropboxCommand", [_dec7], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_9___default()(_class2.prototype, "dropboxCommand"), _class2.prototype), Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"])(_class2.prototype, "driveCommand", [_dec8], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_9___default()(_class2.prototype, "driveCommand"), _class2.prototype)), _class2)) || _class); +}(Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_46__[/* AbstractViewNext */ "a"]), (Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(_class2.prototype, "sendCommand", [_dec2], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_8___default()(_class2.prototype, "sendCommand"), _class2.prototype), Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(_class2.prototype, "saveCommand", [_dec3], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_8___default()(_class2.prototype, "saveCommand"), _class2.prototype), Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(_class2.prototype, "deleteCommand", [_dec4], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_8___default()(_class2.prototype, "deleteCommand"), _class2.prototype), Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(_class2.prototype, "skipCommand", [_dec5], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_8___default()(_class2.prototype, "skipCommand"), _class2.prototype), Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(_class2.prototype, "contactsCommand", [_dec6], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_8___default()(_class2.prototype, "contactsCommand"), _class2.prototype), Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(_class2.prototype, "dropboxCommand", [_dec7], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_8___default()(_class2.prototype, "dropboxCommand"), _class2.prototype), Object(_babel_runtime_corejs3_helpers_esm_applyDecoratedDescriptor__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(_class2.prototype, "driveCommand", [_dec8], _babel_runtime_corejs3_core_js_stable_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_8___default()(_class2.prototype, "driveCommand"), _class2.prototype)), _class2)) || _class); /***/ }), -/* 124 */ -/*!***********************************!*\ - !*** (webpack)/buildin/global.js ***! - \***********************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -var g; - -// This works in non-strict mode -g = (function() { - return this; -})(); - -try { - // This works if eval is allowed (see CSP) - g = g || new Function("return this")(); -} catch (e) { - // This works if the window reference is available - if (typeof window === "object") g = window; -} - -// g can still be undefined, but nothing to do about it... -// We return undefined, instead of nothing here, so it's -// easier to handle this case. if(!global) { ...} - -module.exports = g; - - -/***/ }), -/* 125 */ +/* 134 */ /*!********************************************************!*\ !*** ./node_modules/core-js/internals/to-primitive.js ***! \********************************************************/ @@ -14405,10 +14044,10 @@ module.exports = g; /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var isObject = __webpack_require__(/*! ../internals/is-object */ 44); +var isObject = __webpack_require__(/*! ../internals/is-object */ 49); // `ToPrimitive` abstract operation -// https://tc39.github.io/ecma262/#sec-toprimitive +// https://tc39.es/ecma262/#sec-toprimitive // instead of the ES6 spec version, we didn't implement @@toPrimitive case // and the second argument - flag - preferred type is a string module.exports = function (input, PREFERRED_STRING) { @@ -14422,7 +14061,7 @@ module.exports = function (input, PREFERRED_STRING) { /***/ }), -/* 126 */ +/* 135 */ /*!**********************************************************!*\ !*** ./node_modules/core-js/internals/ie8-dom-define.js ***! \**********************************************************/ @@ -14430,12 +14069,13 @@ module.exports = function (input, PREFERRED_STRING) { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 47); -var fails = __webpack_require__(/*! ../internals/fails */ 36); -var createElement = __webpack_require__(/*! ../internals/document-create-element */ 102); +var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 55); +var fails = __webpack_require__(/*! ../internals/fails */ 37); +var createElement = __webpack_require__(/*! ../internals/document-create-element */ 136); // Thank's IE8 for his funny defineProperty module.exports = !DESCRIPTORS && !fails(function () { + // eslint-disable-next-line es/no-object-defineproperty -- requied for testing return Object.defineProperty(createElement('div'), 'a', { get: function () { return 7; } }).a != 7; @@ -14443,46 +14083,28 @@ module.exports = !DESCRIPTORS && !fails(function () { /***/ }), -/* 127 */ -/*!********************************************************!*\ - !*** ./node_modules/core-js/internals/shared-store.js ***! - \********************************************************/ +/* 136 */ +/*!*******************************************************************!*\ + !*** ./node_modules/core-js/internals/document-create-element.js ***! + \*******************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var global = __webpack_require__(/*! ../internals/global */ 27); -var setGlobal = __webpack_require__(/*! ../internals/set-global */ 93); - -var SHARED = '__core-js_shared__'; -var store = global[SHARED] || setGlobal(SHARED, {}); - -module.exports = store; - +var global = __webpack_require__(/*! ../internals/global */ 30); +var isObject = __webpack_require__(/*! ../internals/is-object */ 49); -/***/ }), -/* 128 */ -/*!**************************************************!*\ - !*** ./node_modules/core-js/internals/shared.js ***! - \**************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ 80); -var store = __webpack_require__(/*! ../internals/shared-store */ 127); +var document = global.document; +// typeof document.createElement is 'object' in old IE +var EXISTS = isObject(document) && isObject(document.createElement); -(module.exports = function (key, value) { - return store[key] || (store[key] = value !== undefined ? value : {}); -})('versions', []).push({ - version: '3.6.4', - mode: IS_PURE ? 'pure' : 'global', - copyright: '© 2020 Denis Pushkarev (zloirock.ru)' -}); +module.exports = function (it) { + return EXISTS ? document.createElement(it) : {}; +}; /***/ }), -/* 129 */ +/* 137 */ /*!***********************************************!*\ !*** ./node_modules/core-js/internals/uid.js ***! \***********************************************/ @@ -14499,220 +14121,320 @@ module.exports = function (key) { /***/ }), -/* 130 */ -/*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/is-forced.js ***! - \*****************************************************/ +/* 138 */ +/*!*********************************************************!*\ + !*** ./node_modules/core-js/internals/native-symbol.js ***! + \*********************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var fails = __webpack_require__(/*! ../internals/fails */ 36); +/* eslint-disable es/no-symbol -- required for testing */ +var V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ 157); +var fails = __webpack_require__(/*! ../internals/fails */ 37); -var replacement = /#|\.prototype\./; +// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing +module.exports = !!Object.getOwnPropertySymbols && !fails(function () { + return !String(Symbol()) || + // Chrome 38 Symbol has incorrect toString conversion + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION && V8_VERSION < 41; +}); -var isForced = function (feature, detection) { - var value = data[normalize(feature)]; - return value == POLYFILL ? true - : value == NATIVE ? false - : typeof detection == 'function' ? fails(detection) - : !!detection; + +/***/ }), +/* 139 */ +/*!************************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/document-create-element.js ***! + \************************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(/*! ../internals/global */ 31); +var isObject = __webpack_require__(/*! ../internals/is-object */ 50); + +var document = global.document; +// typeof document.createElement is 'object' in old IE +var EXISTS = isObject(document) && isObject(document.createElement); + +module.exports = function (it) { + return EXISTS ? document.createElement(it) : {}; }; -var normalize = isForced.normalize = function (string) { - return String(string).replace(replacement, '.').toLowerCase(); + +/***/ }), +/* 140 */ +/*!************************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/object-get-prototype-of.js ***! + \************************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var has = __webpack_require__(/*! ../internals/has */ 54); +var toObject = __webpack_require__(/*! ../internals/to-object */ 117); +var sharedKey = __webpack_require__(/*! ../internals/shared-key */ 141); +var CORRECT_PROTOTYPE_GETTER = __webpack_require__(/*! ../internals/correct-prototype-getter */ 256); + +var IE_PROTO = sharedKey('IE_PROTO'); +var ObjectPrototype = Object.prototype; + +// `Object.getPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.getprototypeof +module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) { + O = toObject(O); + if (has(O, IE_PROTO)) return O[IE_PROTO]; + if (typeof O.constructor == 'function' && O instanceof O.constructor) { + return O.constructor.prototype; + } return O instanceof Object ? ObjectPrototype : null; }; -var data = isForced.data = {}; -var NATIVE = isForced.NATIVE = 'N'; -var POLYFILL = isForced.POLYFILL = 'P'; -module.exports = isForced; +/***/ }), +/* 141 */ +/*!***********************************************************!*\ + !*** ./node_modules/core-js-pure/internals/shared-key.js ***! + \***********************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var shared = __webpack_require__(/*! ../internals/shared */ 189); +var uid = __webpack_require__(/*! ../internals/uid */ 190); + +var keys = shared('keys'); + +module.exports = function (key) { + return keys[key] || (keys[key] = uid(key)); +}; /***/ }), -/* 131 */ -/*!*********************************************************!*\ - !*** ./node_modules/core-js/internals/native-symbol.js ***! - \*********************************************************/ +/* 142 */ +/*!*************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/shared-store.js ***! + \*************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var fails = __webpack_require__(/*! ../internals/fails */ 36); +var global = __webpack_require__(/*! ../internals/global */ 31); +var setGlobal = __webpack_require__(/*! ../internals/set-global */ 255); -module.exports = !!Object.getOwnPropertySymbols && !fails(function () { - // Chrome 38 Symbol has incorrect toString conversion - // eslint-disable-next-line no-undef - return !String(Symbol()); -}); +var SHARED = '__core-js_shared__'; +var store = global[SHARED] || setGlobal(SHARED, {}); + +module.exports = store; /***/ }), -/* 132 */ -/*!***************************************************!*\ - !*** ./node_modules/core-js/internals/classof.js ***! - \***************************************************/ +/* 143 */ +/*!***********************************************************!*\ + !*** ./node_modules/core-js-pure/internals/to-integer.js ***! + \***********************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports) { + +var ceil = Math.ceil; +var floor = Math.floor; + +// `ToInteger` abstract operation +// https://tc39.es/ecma262/#sec-tointeger +module.exports = function (argument) { + return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); +}; + + +/***/ }), +/* 144 */ +/*!************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/hidden-keys.js ***! + \************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports) { + +module.exports = {}; + + +/***/ }), +/* 145 */ +/*!**********************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/to-string-tag-support.js ***! + \**********************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ 95); -var classofRaw = __webpack_require__(/*! ../internals/classof-raw */ 49); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 38); var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -// ES3 wrong here -var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; +var test = {}; -// fallback for IE11 Script Access Denied error -var tryGet = function (it, key) { - try { - return it[key]; - } catch (error) { /* empty */ } -}; +test[TO_STRING_TAG] = 'z'; -// getting tag from ES6+ `Object.prototype.toString` -module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { - var O, tag, result; - return it === undefined ? 'Undefined' : it === null ? 'Null' - // @@toStringTag case - : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag - // builtinTag case - : CORRECT_ARGUMENTS ? classofRaw(O) - // ES3 arguments fallback - : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result; -}; +module.exports = String(test) === '[object z]'; /***/ }), -/* 133 */ -/*!************************************************!*\ - !*** ./node_modules/core-js/internals/task.js ***! - \************************************************/ +/* 146 */ +/*!******************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/set-to-string-tag.js ***! + \******************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var global = __webpack_require__(/*! ../internals/global */ 27); -var fails = __webpack_require__(/*! ../internals/fails */ 36); -var classof = __webpack_require__(/*! ../internals/classof-raw */ 49); -var bind = __webpack_require__(/*! ../internals/function-bind-context */ 104); -var html = __webpack_require__(/*! ../internals/html */ 142); -var createElement = __webpack_require__(/*! ../internals/document-create-element */ 102); -var IS_IOS = __webpack_require__(/*! ../internals/engine-is-ios */ 134); +var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ 145); +var defineProperty = __webpack_require__(/*! ../internals/object-define-property */ 82).f; +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 52); +var has = __webpack_require__(/*! ../internals/has */ 54); +var toString = __webpack_require__(/*! ../internals/object-to-string */ 268); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 38); -var location = global.location; -var set = global.setImmediate; -var clear = global.clearImmediate; -var process = global.process; -var MessageChannel = global.MessageChannel; -var Dispatch = global.Dispatch; -var counter = 0; -var queue = {}; -var ONREADYSTATECHANGE = 'onreadystatechange'; -var defer, channel, port; +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -var run = function (id) { - // eslint-disable-next-line no-prototype-builtins - if (queue.hasOwnProperty(id)) { - var fn = queue[id]; - delete queue[id]; - fn(); +module.exports = function (it, TAG, STATIC, SET_METHOD) { + if (it) { + var target = STATIC ? it : it.prototype; + if (!has(target, TO_STRING_TAG)) { + defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG }); + } + if (SET_METHOD && !TO_STRING_TAG_SUPPORT) { + createNonEnumerableProperty(target, 'toString', toString); + } } }; -var runner = function (id) { - return function () { - run(id); - }; + +/***/ }), +/* 147 */ +/*!********************************************************!*\ + !*** ./node_modules/core-js-pure/internals/perform.js ***! + \********************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports) { + +module.exports = function (exec) { + try { + return { error: false, value: exec() }; + } catch (error) { + return { error: true, value: error }; + } }; -var listener = function (event) { - run(event.data); + +/***/ }), +/* 148 */ +/*!***************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/internal-state.js ***! + \***************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var NATIVE_WEAK_MAP = __webpack_require__(/*! ../internals/native-weak-map */ 275); +var global = __webpack_require__(/*! ../internals/global */ 31); +var isObject = __webpack_require__(/*! ../internals/is-object */ 50); +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 52); +var objectHas = __webpack_require__(/*! ../internals/has */ 54); +var shared = __webpack_require__(/*! ../internals/shared-store */ 142); +var sharedKey = __webpack_require__(/*! ../internals/shared-key */ 141); +var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ 144); + +var WeakMap = global.WeakMap; +var set, get, has; + +var enforce = function (it) { + return has(it) ? get(it) : set(it, {}); }; -var post = function (id) { - // old engines have not location.origin - global.postMessage(id + '', location.protocol + '//' + location.host); +var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject(it) || (state = get(it)).type !== TYPE) { + throw TypeError('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; }; -// Node.js 0.9+ & IE10+ has setImmediate, otherwise: -if (!set || !clear) { - set = function setImmediate(fn) { - var args = []; - var i = 1; - while (arguments.length > i) args.push(arguments[i++]); - queue[++counter] = function () { - // eslint-disable-next-line no-new-func - (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args); - }; - defer(counter); - return counter; +if (NATIVE_WEAK_MAP) { + var store = shared.state || (shared.state = new WeakMap()); + var wmget = store.get; + var wmhas = store.has; + var wmset = store.set; + set = function (it, metadata) { + metadata.facade = it; + wmset.call(store, it, metadata); + return metadata; }; - clear = function clearImmediate(id) { - delete queue[id]; + get = function (it) { + return wmget.call(store, it) || {}; + }; + has = function (it) { + return wmhas.call(store, it); + }; +} else { + var STATE = sharedKey('state'); + hiddenKeys[STATE] = true; + set = function (it, metadata) { + metadata.facade = it; + createNonEnumerableProperty(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return objectHas(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return objectHas(it, STATE); }; - // Node.js 0.8- - if (classof(process) == 'process') { - defer = function (id) { - process.nextTick(runner(id)); - }; - // Sphere (JS game engine) Dispatch API - } else if (Dispatch && Dispatch.now) { - defer = function (id) { - Dispatch.now(runner(id)); - }; - // Browsers with MessageChannel, includes WebWorkers - // except iOS - https://github.com/zloirock/core-js/issues/624 - } else if (MessageChannel && !IS_IOS) { - channel = new MessageChannel(); - port = channel.port2; - channel.port1.onmessage = listener; - defer = bind(port.postMessage, port, 1); - // Browsers with postMessage, skip WebWorkers - // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' - } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post)) { - defer = post; - global.addEventListener('message', listener, false); - // IE8- - } else if (ONREADYSTATECHANGE in createElement('script')) { - defer = function (id) { - html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { - html.removeChild(this); - run(id); - }; - }; - // Rest old browsers - } else { - defer = function (id) { - setTimeout(runner(id), 0); - }; - } } module.exports = { set: set, - clear: clear + get: get, + has: has, + enforce: enforce, + getterFor: getterFor }; /***/ }), -/* 134 */ -/*!*********************************************************!*\ - !*** ./node_modules/core-js/internals/engine-is-ios.js ***! - \*********************************************************/ +/* 149 */ +/*!******************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/engine-v8-version.js ***! + \******************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ 105); +var global = __webpack_require__(/*! ../internals/global */ 31); +var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ 107); -module.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent); +var process = global.process; +var versions = process && process.versions; +var v8 = versions && versions.v8; +var match, version; + +if (v8) { + match = v8.split('.'); + version = match[0] + match[1]; +} else if (userAgent) { + match = userAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent.match(/Chrome\/(\d+)/); + if (match) version = match[1]; + } +} + +module.exports = version && +version; /***/ }), -/* 135 */ +/* 150 */ /*!******************************************************************************!*\ !*** ./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js ***! \******************************************************************************/ @@ -14724,11 +14446,10 @@ module.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent); // TODO: Remove from `core-js@4` since it's moved to entry points __webpack_require__(/*! ../modules/es.regexp.exec */ 45); -var redefine = __webpack_require__(/*! ../internals/redefine */ 53); -var fails = __webpack_require__(/*! ../internals/fails */ 36); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); -var regexpExec = __webpack_require__(/*! ../internals/regexp-exec */ 110); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 48); +var redefine = __webpack_require__(/*! ../internals/redefine */ 69); +var fails = __webpack_require__(/*! ../internals/fails */ 37); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 39); +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 47); var SPECIES = wellKnownSymbol('species'); @@ -14748,6 +14469,7 @@ var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { // IE <= 11 replaces $0 with the whole match, as if it was $& // https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 var REPLACE_KEEPS_$0 = (function () { + // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing return 'a'.replace(/./, '$0') === '$0'; })(); @@ -14763,6 +14485,7 @@ var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () { // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec // Weex JS has frozen built-in prototypes, so use try / catch wrapper var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () { + // eslint-disable-next-line regexp/no-empty-group -- required for testing var re = /(?:)/; var originalExec = re.exec; re.exec = function () { return originalExec.apply(this, arguments); }; @@ -14816,7 +14539,7 @@ module.exports = function (KEY, length, exec, sham) { ) { var nativeRegExpMethod = /./[SYMBOL]; var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { - if (regexp.exec === regexpExec) { + if (regexp.exec === RegExp.prototype.exec) { if (DELEGATES_TO_SYMBOL && !forceStringMethod) { // The native String method already delegates to @@method (this // polyfilled function), leasing to infinite recursion. @@ -14849,7 +14572,7 @@ module.exports = function (KEY, length, exec, sham) { /***/ }), -/* 136 */ +/* 151 */ /*!****************************************************************!*\ !*** ./node_modules/core-js/internals/regexp-exec-abstract.js ***! \****************************************************************/ @@ -14857,11 +14580,11 @@ module.exports = function (KEY, length, exec, sham) { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var classof = __webpack_require__(/*! ./classof-raw */ 49); -var regexpExec = __webpack_require__(/*! ./regexp-exec */ 110); +var classof = __webpack_require__(/*! ./classof-raw */ 74); +var regexpExec = __webpack_require__(/*! ./regexp-exec */ 163); // `RegExpExec` abstract operation -// https://tc39.github.io/ecma262/#sec-regexpexec +// https://tc39.es/ecma262/#sec-regexpexec module.exports = function (R, S) { var exec = R.exec; if (typeof exec === 'function') { @@ -14882,38 +14605,32 @@ module.exports = function (R, S) { /***/ }), -/* 137 */ -/*!***********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-define-property.js ***! - \***********************************************************************/ +/* 152 */ +/*!**********************************************************************!*\ + !*** ./node_modules/core-js/modules/web.dom-collections.for-each.js ***! + \**********************************************************************/ /*! no static exports found */ -/*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 76); -var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ 239); -var anObject = __webpack_require__(/*! ../internals/an-object */ 157); -var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ 201); - -var nativeDefineProperty = Object.defineProperty; +var global = __webpack_require__(/*! ../internals/global */ 30); +var DOMIterables = __webpack_require__(/*! ../internals/dom-iterables */ 219); +var forEach = __webpack_require__(/*! ../internals/array-for-each */ 356); +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 47); -// `Object.defineProperty` method -// https://tc39.es/ecma262/#sec-object.defineproperty -exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return nativeDefineProperty(O, P, Attributes); - } catch (error) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; +for (var COLLECTION_NAME in DOMIterables) { + var Collection = global[COLLECTION_NAME]; + var CollectionPrototype = Collection && Collection.prototype; + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try { + createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach); + } catch (error) { + CollectionPrototype.forEach = forEach; + } +} /***/ }), -/* 138 */ +/* 153 */ /*!*************************************!*\ !*** ./dev/Knoin/AbstractScreen.js ***! \*************************************/ @@ -14923,18 +14640,13 @@ exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, A "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AbstractScreen; }); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/for-each */ 70); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/bind */ 26); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/defineProperty */ 17); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var crossroads__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! crossroads */ 164); -/* harmony import */ var crossroads__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(crossroads__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Utils */ 2); - - +/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ 152); +/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var crossroads__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! crossroads */ 177); +/* harmony import */ var crossroads__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(crossroads__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/Utils */ 2); @@ -14945,14 +14657,11 @@ var AbstractScreen = /*#__PURE__*/function () { viewModels = []; } - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(this, "oCross", null); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(this, "sScreenName", void 0); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(this, "aViewModels", void 0); - + this.oCross = null; + this.sScreenName = void 0; + this.aViewModels = void 0; this.sScreenName = screenName; - this.aViewModels = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["isArray"])(viewModels) ? viewModels : []; + this.aViewModels = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["isArray"])(viewModels) ? viewModels : []; } /** * @returns {Array} @@ -14998,16 +14707,14 @@ var AbstractScreen = /*#__PURE__*/function () { fMatcher = null; var routes = this.routes(); - if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_5__["isNonEmptyArray"])(routes)) { - fMatcher = _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_3___default.a).call(___WEBPACK_IMPORTED_MODULE_3___default.a, this.onRoute || Common_Utils__WEBPACK_IMPORTED_MODULE_5__["noop"], this); - route = crossroads__WEBPACK_IMPORTED_MODULE_4___default.a.create(); - - _babel_runtime_corejs3_core_js_stable_instance_for_each__WEBPACK_IMPORTED_MODULE_0___default()(routes).call(routes, function (item) { + if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_3__["isNonEmptyArray"])(routes)) { + fMatcher = ___WEBPACK_IMPORTED_MODULE_1___default.a.bind(this.onRoute || Common_Utils__WEBPACK_IMPORTED_MODULE_3__["noop"], this); + route = crossroads__WEBPACK_IMPORTED_MODULE_2___default.a.create(); + routes.forEach(function (item) { if (item && route) { route.addRoute(item[0], fMatcher).rules = item[1]; } }); - this.oCross = route; } }; @@ -15016,7 +14723,7 @@ var AbstractScreen = /*#__PURE__*/function () { }(); /***/ }), -/* 139 */ +/* 154 */ /*!*****************************************************************************!*\ !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/trim.js ***! \*****************************************************************************/ @@ -15024,10 +14731,10 @@ var AbstractScreen = /*#__PURE__*/function () { /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! core-js-pure/stable/instance/trim */ 339); +module.exports = __webpack_require__(/*! core-js-pure/stable/instance/trim */ 328); /***/ }), -/* 140 */ +/* 155 */ /*!*****************************!*\ !*** external "window.ssm" ***! \*****************************/ @@ -15038,7 +14745,7 @@ module.exports = __webpack_require__(/*! core-js-pure/stable/instance/trim */ 33 module.exports = window.ssm; /***/ }), -/* 141 */ +/* 156 */ /*!****************************************************************!*\ !*** ./node_modules/core-js/internals/object-keys-internal.js ***! \****************************************************************/ @@ -15046,10 +14753,10 @@ module.exports = window.ssm; /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var has = __webpack_require__(/*! ../internals/has */ 42); -var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 72); -var indexOf = __webpack_require__(/*! ../internals/array-includes */ 168).indexOf; -var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ 103); +var has = __webpack_require__(/*! ../internals/has */ 44); +var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 73); +var indexOf = __webpack_require__(/*! ../internals/array-includes */ 181).indexOf; +var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ 106); module.exports = function (object, names) { var O = toIndexedObject(object); @@ -15066,176 +14773,345 @@ module.exports = function (object, names) { /***/ }), -/* 142 */ -/*!************************************************!*\ - !*** ./node_modules/core-js/internals/html.js ***! - \************************************************/ +/* 157 */ +/*!*************************************************************!*\ + !*** ./node_modules/core-js/internals/engine-v8-version.js ***! + \*************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ 59); +var global = __webpack_require__(/*! ../internals/global */ 30); +var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ 167); -module.exports = getBuiltIn('document', 'documentElement'); +var process = global.process; +var versions = process && process.versions; +var v8 = versions && versions.v8; +var match, version; + +if (v8) { + match = v8.split('.'); + version = match[0] < 4 ? 1 : match[0] + match[1]; +} else if (userAgent) { + match = userAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent.match(/Chrome\/(\d+)/); + if (match) version = match[1]; + } +} + +module.exports = version && +version; /***/ }), -/* 143 */ -/*!***************************************************!*\ - !*** ./node_modules/core-js/internals/iterate.js ***! - \***************************************************/ +/* 158 */ +/*!***********************************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/object-get-own-property-descriptor.js ***! + \***********************************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); -var isArrayIteratorMethod = __webpack_require__(/*! ../internals/is-array-iterator-method */ 192); -var toLength = __webpack_require__(/*! ../internals/to-length */ 73); -var bind = __webpack_require__(/*! ../internals/function-bind-context */ 104); -var getIteratorMethod = __webpack_require__(/*! ../internals/get-iterator-method */ 193); -var callWithSafeIterationClosing = __webpack_require__(/*! ../internals/call-with-safe-iteration-closing */ 194); +var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 53); +var propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ 250); +var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ 91); +var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 81); +var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ 159); +var has = __webpack_require__(/*! ../internals/has */ 54); +var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ 187); -var Result = function (stopped, result) { - this.stopped = stopped; - this.result = result; +var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPrimitive(P, true); + if (IE8_DOM_DEFINE) try { + return nativeGetOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); }; -var iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) { - var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1); - var iterator, iterFn, index, length, result, next, step; - if (IS_ITERATOR) { - iterator = iterable; - } else { - iterFn = getIteratorMethod(iterable); - if (typeof iterFn != 'function') throw TypeError('Target is not iterable'); - // optimisation for array iterators - if (isArrayIteratorMethod(iterFn)) { - for (index = 0, length = toLength(iterable.length); length > index; index++) { - result = AS_ENTRIES - ? boundFunction(anObject(step = iterable[index])[0], step[1]) - : boundFunction(iterable[index]); - if (result && result instanceof Result) return result; - } return new Result(false); - } - iterator = iterFn.call(iterable); - } +/***/ }), +/* 159 */ +/*!*************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/to-primitive.js ***! + \*************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { - next = iterator.next; - while (!(step = next.call(iterator)).done) { - result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES); - if (typeof result == 'object' && result && result instanceof Result) return result; - } return new Result(false); -}; +var isObject = __webpack_require__(/*! ../internals/is-object */ 50); -iterate.stop = function (result) { - return new Result(true, result); +// `ToPrimitive` abstract operation +// https://tc39.es/ecma262/#sec-toprimitive +// instead of the ES6 spec version, we didn't implement @@toPrimitive case +// and the second argument - flag - preferred type is a string +module.exports = function (input, PREFERRED_STRING) { + if (!isObject(input)) return input; + var fn, val; + if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; + if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val; + if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; + throw TypeError("Can't convert object to primitive value"); }; /***/ }), -/* 144 */ -/*!***************************************************************!*\ - !*** ./node_modules/core-js/internals/species-constructor.js ***! - \***************************************************************/ +/* 160 */ +/*!************************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/object-set-prototype-of.js ***! + \************************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); -var aFunction = __webpack_require__(/*! ../internals/a-function */ 67); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); +var anObject = __webpack_require__(/*! ../internals/an-object */ 58); +var aPossiblePrototype = __webpack_require__(/*! ../internals/a-possible-prototype */ 257); -var SPECIES = wellKnownSymbol('species'); - -// `SpeciesConstructor` abstract operation -// https://tc39.github.io/ecma262/#sec-speciesconstructor -module.exports = function (O, defaultConstructor) { - var C = anObject(O).constructor; - var S; - return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S); -}; +// `Object.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.setprototypeof +// Works with __proto__ only. Old v8 can't work with null proto objects. +/* eslint-disable no-proto */ +module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set; + setter.call(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { /* empty */ } + return function setPrototypeOf(O, proto) { + anObject(O); + aPossiblePrototype(proto); + if (CORRECT_SETTER) setter.call(O, proto); + else O.__proto__ = proto; + return O; + }; +}() : undefined); /***/ }), -/* 145 */ -/*!***************************************************!*\ - !*** ./node_modules/core-js/internals/perform.js ***! - \***************************************************/ +/* 161 */ +/*!**************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/object-create.js ***! + \**************************************************************/ /*! no static exports found */ /*! all exports used */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -module.exports = function (exec) { +var anObject = __webpack_require__(/*! ../internals/an-object */ 58); +var defineProperties = __webpack_require__(/*! ../internals/object-define-properties */ 258); +var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ 191); +var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ 144); +var html = __webpack_require__(/*! ../internals/html */ 192); +var documentCreateElement = __webpack_require__(/*! ../internals/document-create-element */ 139); +var sharedKey = __webpack_require__(/*! ../internals/shared-key */ 141); + +var GT = '>'; +var LT = '<'; +var PROTOTYPE = 'prototype'; +var SCRIPT = 'script'; +var IE_PROTO = sharedKey('IE_PROTO'); + +var EmptyConstructor = function () { /* empty */ }; + +var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; +}; + +// Create object with fake `null` prototype: use ActiveX Object with cleared prototype +var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; +}; + +// Create object with fake `null` prototype: use iframe Object with cleared prototype +var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; +}; + +// Check for document.domain and active x support +// No need to use active x approach when document.domain is not set +// see https://github.com/es-shims/es5-shim/issues/150 +// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 +// avoid IE GC bug +var activeXDocument; +var NullProtoObject = function () { try { - return { error: false, value: exec() }; - } catch (error) { - return { error: true, value: error }; - } + /* global ActiveXObject */ + activeXDocument = document.domain && new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame(); + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); +}; + +hiddenKeys[IE_PROTO] = true; + +// `Object.create` method +// https://tc39.es/ecma262/#sec-object.create +module.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : defineProperties(result, Properties); }; /***/ }), -/* 146 */ -/*!***********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/array-method-is-strict.js ***! - \***********************************************************************/ +/* 162 */ +/*!***************************************************************************!*\ + !*** ./node_modules/core-js-pure/modules/web.dom-collections.iterator.js ***! + \***************************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; +__webpack_require__(/*! ./es.array.iterator */ 202); +var DOMIterables = __webpack_require__(/*! ../internals/dom-iterables */ 282); +var global = __webpack_require__(/*! ../internals/global */ 31); +var classof = __webpack_require__(/*! ../internals/classof */ 93); +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 52); +var Iterators = __webpack_require__(/*! ../internals/iterators */ 76); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 38); -var fails = __webpack_require__(/*! ../internals/fails */ 55); +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -module.exports = function (METHOD_NAME, argument) { - var method = [][METHOD_NAME]; - return !!method && fails(function () { - // eslint-disable-next-line no-useless-call,no-throw-literal - method.call(null, argument || function () { throw 1; }, 1); - }); -}; +for (var COLLECTION_NAME in DOMIterables) { + var Collection = global[COLLECTION_NAME]; + var CollectionPrototype = Collection && Collection.prototype; + if (CollectionPrototype && classof(CollectionPrototype) !== TO_STRING_TAG) { + createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME); + } + Iterators[COLLECTION_NAME] = Iterators.Array; +} /***/ }), -/* 147 */ -/*!********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/classof.js ***! - \********************************************************/ +/* 163 */ +/*!*******************************************************!*\ + !*** ./node_modules/core-js/internals/regexp-exec.js ***! + \*******************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ 208); -var classofRaw = __webpack_require__(/*! ../internals/classof-raw */ 156); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 69); +"use strict"; -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -// ES3 wrong here -var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; +var regexpFlags = __webpack_require__(/*! ./regexp-flags */ 203); +var stickyHelpers = __webpack_require__(/*! ./regexp-sticky-helpers */ 224); +var shared = __webpack_require__(/*! ./shared */ 105); -// fallback for IE11 Script Access Denied error -var tryGet = function (it, key) { - try { - return it[key]; - } catch (error) { /* empty */ } -}; +var nativeExec = RegExp.prototype.exec; +var nativeReplace = shared('native-string-replace', String.prototype.replace); -// getting tag from ES6+ `Object.prototype.toString` -module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { - var O, tag, result; - return it === undefined ? 'Undefined' : it === null ? 'Null' - // @@toStringTag case - : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag - // builtinTag case - : CORRECT_ARGUMENTS ? classofRaw(O) - // ES3 arguments fallback - : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result; -}; +var patchedExec = nativeExec; + +var UPDATES_LAST_INDEX_WRONG = (function () { + var re1 = /a/; + var re2 = /b*/g; + nativeExec.call(re1, 'a'); + nativeExec.call(re2, 'a'); + return re1.lastIndex !== 0 || re2.lastIndex !== 0; +})(); + +var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET; + +// nonparticipating capturing group, copied from es5-shim's String#split patch. +// eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing +var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; + +var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y; + +if (PATCH) { + patchedExec = function exec(str) { + var re = this; + var lastIndex, reCopy, match, i; + var sticky = UNSUPPORTED_Y && re.sticky; + var flags = regexpFlags.call(re); + var source = re.source; + var charsAdded = 0; + var strCopy = str; + + if (sticky) { + flags = flags.replace('y', ''); + if (flags.indexOf('g') === -1) { + flags += 'g'; + } + + strCopy = String(str).slice(re.lastIndex); + // Support anchored sticky behavior. + if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) { + source = '(?: ' + source + ')'; + strCopy = ' ' + strCopy; + charsAdded++; + } + // ^(? + rx + ) is needed, in combination with some str slicing, to + // simulate the 'y' flag. + reCopy = new RegExp('^(?:' + source + ')', flags); + } + + if (NPCG_INCLUDED) { + reCopy = new RegExp('^' + source + '$(?!\\s)', flags); + } + if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; + + match = nativeExec.call(sticky ? reCopy : re, strCopy); + + if (sticky) { + if (match) { + match.input = match.input.slice(charsAdded); + match[0] = match[0].slice(charsAdded); + match.index = re.lastIndex; + re.lastIndex += match[0].length; + } else re.lastIndex = 0; + } else if (UPDATES_LAST_INDEX_WRONG && match) { + re.lastIndex = re.global ? match.index + match[0].length : lastIndex; + } + if (NPCG_INCLUDED && match && match.length > 1) { + // Fix browsers whose `exec` methods don't consistently return `undefined` + // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/ + nativeReplace.call(match[0], reCopy, function () { + for (i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) match[i] = undefined; + } + }); + } + + return match; + }; +} + +module.exports = patchedExec; /***/ }), -/* 148 */ +/* 164 */ /*!*********************************!*\ !*** ./dev/Storage/RainLoop.js ***! \*********************************/ @@ -15249,14 +15125,14 @@ module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return setHash; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return clearHash; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return checkTimestamp; }); -/* harmony import */ var core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.function.name */ 51); -/* harmony import */ var core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string */ 63); -/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.regexp.to-string */ 111); -/* harmony import */ var core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/web.timers */ 68); -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_set_interval__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/set-interval */ 57); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_set_interval__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_set_interval__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ 48); +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ 86); +/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ 119); +/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var window__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! window */ 4); /* harmony import */ var window__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_4__); @@ -15380,11 +15256,11 @@ function checkTimestamp() { return false; } // init section -window__WEBPACK_IMPORTED_MODULE_4___default.a.setInterval(setTimestamp, 1000 * 60); // 1m +_babel_runtime_corejs3_core_js_stable_set_interval__WEBPACK_IMPORTED_MODULE_0___default()(setTimestamp, 1000 * 60); // 1m /***/ }), -/* 149 */, -/* 150 */ +/* 165 */, +/* 166 */ /*!************************************************!*\ !*** ./node_modules/core-js/internals/path.js ***! \************************************************/ @@ -15392,13 +15268,27 @@ window__WEBPACK_IMPORTED_MODULE_4___default.a.setInterval(setTimestamp, 1000 * 6 /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var global = __webpack_require__(/*! ../internals/global */ 27); +var global = __webpack_require__(/*! ../internals/global */ 30); module.exports = global; /***/ }), -/* 151 */ +/* 167 */ +/*!*************************************************************!*\ + !*** ./node_modules/core-js/internals/engine-user-agent.js ***! + \*************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ 79); + +module.exports = getBuiltIn('navigator', 'userAgent') || ''; + + +/***/ }), +/* 168 */ /*!*********************************************************!*\ !*** ./node_modules/core-js/internals/object-create.js ***! \*********************************************************/ @@ -15406,13 +15296,13 @@ module.exports = global; /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); -var defineProperties = __webpack_require__(/*! ../internals/object-define-properties */ 227); -var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ 108); -var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ 103); -var html = __webpack_require__(/*! ../internals/html */ 142); -var documentCreateElement = __webpack_require__(/*! ../internals/document-create-element */ 102); -var sharedKey = __webpack_require__(/*! ../internals/shared-key */ 107); +var anObject = __webpack_require__(/*! ../internals/an-object */ 42); +var defineProperties = __webpack_require__(/*! ../internals/object-define-properties */ 242); +var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ 112); +var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ 106); +var html = __webpack_require__(/*! ../internals/html */ 236); +var documentCreateElement = __webpack_require__(/*! ../internals/document-create-element */ 136); +var sharedKey = __webpack_require__(/*! ../internals/shared-key */ 111); var GT = '>'; var LT = '<'; @@ -15460,7 +15350,7 @@ var NullProtoObjectViaIFrame = function () { var activeXDocument; var NullProtoObject = function () { try { - /* global ActiveXObject */ + /* global ActiveXObject -- old IE */ activeXDocument = document.domain && new ActiveXObject('htmlfile'); } catch (error) { /* ignore */ } NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame(); @@ -15472,7 +15362,7 @@ var NullProtoObject = function () { hiddenKeys[IE_PROTO] = true; // `Object.create` method -// https://tc39.github.io/ecma262/#sec-object.create +// https://tc39.es/ecma262/#sec-object.create module.exports = Object.create || function create(O, Properties) { var result; if (O !== null) { @@ -15487,7 +15377,7 @@ module.exports = Object.create || function create(O, Properties) { /***/ }), -/* 152 */ +/* 169 */ /*!*******************************************************************!*\ !*** ./node_modules/core-js/internals/object-get-prototype-of.js ***! \*******************************************************************/ @@ -15495,16 +15385,17 @@ module.exports = Object.create || function create(O, Properties) { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var has = __webpack_require__(/*! ../internals/has */ 42); -var toObject = __webpack_require__(/*! ../internals/to-object */ 120); -var sharedKey = __webpack_require__(/*! ../internals/shared-key */ 107); -var CORRECT_PROTOTYPE_GETTER = __webpack_require__(/*! ../internals/correct-prototype-getter */ 231); +var has = __webpack_require__(/*! ../internals/has */ 44); +var toObject = __webpack_require__(/*! ../internals/to-object */ 90); +var sharedKey = __webpack_require__(/*! ../internals/shared-key */ 111); +var CORRECT_PROTOTYPE_GETTER = __webpack_require__(/*! ../internals/correct-prototype-getter */ 244); var IE_PROTO = sharedKey('IE_PROTO'); var ObjectPrototype = Object.prototype; // `Object.getPrototypeOf` method -// https://tc39.github.io/ecma262/#sec-object.getprototypeof +// https://tc39.es/ecma262/#sec-object.getprototypeof +// eslint-disable-next-line es/no-object-getprototypeof -- safe module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) { O = toObject(O); if (has(O, IE_PROTO)) return O[IE_PROTO]; @@ -15515,171 +15406,73 @@ module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) /***/ }), -/* 153 */ +/* 170 */ /*!*************************************************************!*\ - !*** ./node_modules/core-js/internals/engine-v8-version.js ***! + !*** ./node_modules/core-js/internals/set-to-string-tag.js ***! \*************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var global = __webpack_require__(/*! ../internals/global */ 27); -var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ 105); +var defineProperty = __webpack_require__(/*! ../internals/object-define-property */ 66).f; +var has = __webpack_require__(/*! ../internals/has */ 44); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 39); -var process = global.process; -var versions = process && process.versions; -var v8 = versions && versions.v8; -var match, version; +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -if (v8) { - match = v8.split('.'); - version = match[0] + match[1]; -} else if (userAgent) { - match = userAgent.match(/Edge\/(\d+)/); - if (!match || match[1] >= 74) { - match = userAgent.match(/Chrome\/(\d+)/); - if (match) version = match[1]; +module.exports = function (it, TAG, STATIC) { + if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) { + defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG }); } -} - -module.exports = version && +version; - - -/***/ }), -/* 154 */ -/*!****************************************************************!*\ - !*** ./node_modules/core-js/internals/advance-string-index.js ***! - \****************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var charAt = __webpack_require__(/*! ../internals/string-multibyte */ 187).charAt; - -// `AdvanceStringIndex` abstract operation -// https://tc39.github.io/ecma262/#sec-advancestringindex -module.exports = function (S, index, unicode) { - return index + (unicode ? charAt(S, index).length : 1); -}; - - -/***/ }), -/* 155 */ -/*!***************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/create-property-descriptor.js ***! - \***************************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - - -/***/ }), -/* 156 */ -/*!************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/classof-raw.js ***! - \************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -var toString = {}.toString; - -module.exports = function (it) { - return toString.call(it).slice(8, -1); }; /***/ }), -/* 157 */ -/*!**********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/an-object.js ***! - \**********************************************************/ +/* 171 */ +/*!***************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/indexed-object.js ***! + \***************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var isObject = __webpack_require__(/*! ../internals/is-object */ 77); - -module.exports = function (it) { - if (!isObject(it)) { - throw TypeError(String(it) + ' is not an object'); - } return it; -}; - - -/***/ }), -/* 158 */ -/*!**********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/iterators.js ***! - \**********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = {}; - - -/***/ }), -/* 159 */ -/*!*********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/is-array.js ***! - \*********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { +var fails = __webpack_require__(/*! ../internals/fails */ 43); +var classof = __webpack_require__(/*! ../internals/classof-raw */ 114); -var classof = __webpack_require__(/*! ../internals/classof-raw */ 156); +var split = ''.split; -// `IsArray` abstract operation -// https://tc39.es/ecma262/#sec-isarray -module.exports = Array.isArray || function isArray(arg) { - return classof(arg) == 'Array'; -}; +// fallback for non-array-like ES3 and non-enumerable old V8 strings +module.exports = fails(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins + return !Object('z').propertyIsEnumerable(0); +}) ? function (it) { + return classof(it) == 'String' ? split.call(it, '') : Object(it); +} : Object; /***/ }), -/* 160 */ -/*!*********************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/array-method-has-species-support.js ***! - \*********************************************************************************/ +/* 172 */ +/*!****************************************************************!*\ + !*** ./node_modules/core-js/internals/advance-string-index.js ***! + \****************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var fails = __webpack_require__(/*! ../internals/fails */ 55); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 69); -var V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ 203); +"use strict"; -var SPECIES = wellKnownSymbol('species'); +var charAt = __webpack_require__(/*! ../internals/string-multibyte */ 218).charAt; -module.exports = function (METHOD_NAME) { - // We can't use this feature detection in V8 since it causes - // deoptimization and serious performance degradation - // https://github.com/zloirock/core-js/issues/677 - return V8_VERSION >= 51 || !fails(function () { - var array = []; - var constructor = array.constructor = {}; - constructor[SPECIES] = function () { - return { foo: 1 }; - }; - return array[METHOD_NAME](Boolean).foo !== 1; - }); +// `AdvanceStringIndex` abstract operation +// https://tc39.es/ecma262/#sec-advancestringindex +module.exports = function (S, index, unicode) { + return index + (unicode ? charAt(S, index).length : 1); }; /***/ }), -/* 161 */ +/* 173 */ /*!****************************************************************!*\ !*** ./node_modules/core-js-pure/internals/array-iteration.js ***! \****************************************************************/ @@ -15687,11 +15480,11 @@ module.exports = function (METHOD_NAME) { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var bind = __webpack_require__(/*! ../internals/function-bind-context */ 241); -var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ 199); -var toObject = __webpack_require__(/*! ../internals/to-object */ 122); -var toLength = __webpack_require__(/*! ../internals/to-length */ 112); -var arraySpeciesCreate = __webpack_require__(/*! ../internals/array-species-create */ 256); +var bind = __webpack_require__(/*! ../internals/function-bind-context */ 116); +var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ 171); +var toObject = __webpack_require__(/*! ../internals/to-object */ 117); +var toLength = __webpack_require__(/*! ../internals/to-length */ 92); +var arraySpeciesCreate = __webpack_require__(/*! ../internals/array-species-create */ 287); var push = [].push; @@ -15762,29 +15555,66 @@ module.exports = { /***/ }), -/* 162 */ -/*!*******************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/concat.js ***! - \*******************************************************************************/ +/* 174 */ +/*!*********************************************************!*\ + !*** ./node_modules/core-js-pure/internals/is-array.js ***! + \*********************************************************/ /*! no static exports found */ -/*! exports used: default */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var classof = __webpack_require__(/*! ../internals/classof-raw */ 114); + +// `IsArray` abstract operation +// https://tc39.es/ecma262/#sec-isarray +module.exports = Array.isArray || function isArray(arg) { + return classof(arg) == 'Array'; +}; + + +/***/ }), +/* 175 */ +/*!*********************************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/array-method-has-species-support.js ***! + \*********************************************************************************/ +/*! no static exports found */ +/*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! core-js-pure/stable/instance/concat */ 317); +var fails = __webpack_require__(/*! ../internals/fails */ 43); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 38); +var V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ 149); + +var SPECIES = wellKnownSymbol('species'); + +module.exports = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return V8_VERSION >= 51 || !fails(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); +}; + /***/ }), -/* 163 */ +/* 176 */ /*!*******************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js/object/define-property.js ***! + !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/concat.js ***! \*******************************************************************************/ /*! no static exports found */ /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! core-js-pure/features/object/define-property */ 349); +module.exports = __webpack_require__(/*! core-js-pure/stable/instance/concat */ 338); /***/ }), -/* 164 */ +/* 177 */ /*!************************************!*\ !*** external "window.crossroads" ***! \************************************/ @@ -15795,7 +15625,7 @@ module.exports = __webpack_require__(/*! core-js-pure/features/object/define-pro module.exports = window.crossroads; /***/ }), -/* 165 */ +/* 178 */ /*!*******************************************!*\ !*** ./dev/Component/AbstractCheckbox.js ***! \*******************************************/ @@ -15809,7 +15639,7 @@ module.exports = window.crossroads; /* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); /* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ko */ 1); /* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Component_Abstract__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Component/Abstract */ 35); +/* harmony import */ var Component_Abstract__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Component/Abstract */ 32); @@ -15870,7 +15700,7 @@ var AbstractCheckbox = /*#__PURE__*/function (_AbstractComponent) { /***/ }), -/* 166 */ +/* 179 */ /*!******************************************************************!*\ !*** ./node_modules/emailjs-addressparser/dist/addressparser.js ***! \******************************************************************/ @@ -16186,7 +16016,7 @@ var Tokenizer = function () { //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hZGRyZXNzcGFyc2VyLmpzIl0sIm5hbWVzIjpbInBhcnNlIiwic3RyIiwidG9rZW5pemVyIiwiVG9rZW5pemVyIiwidG9rZW5zIiwidG9rZW5pemUiLCJhZGRyZXNzZXMiLCJhZGRyZXNzIiwicGFyc2VkQWRkcmVzc2VzIiwiZm9yRWFjaCIsInRva2VuIiwidHlwZSIsInZhbHVlIiwibGVuZ3RoIiwicHVzaCIsIl9oYW5kbGVBZGRyZXNzIiwiY29uY2F0IiwiaXNHcm91cCIsInN0YXRlIiwiZGF0YSIsImNvbW1lbnQiLCJncm91cCIsInRleHQiLCJpIiwibGVuIiwiam9pbiIsIm5hbWUiLCJtYXRjaCIsInNwbGljZSIsIl9yZWdleEhhbmRsZXIiLCJ0cmltIiwicmVwbGFjZSIsIk9QRVJBVE9SUyIsInRvU3RyaW5nIiwib3BlcmF0b3JDdXJyZW50Iiwib3BlcmF0b3JFeHBlY3RpbmciLCJub2RlIiwiZXNjYXBlZCIsImxpc3QiLCJjaHIiLCJjaGFyQXQiLCJjaGVja0NoYXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O2tCQWN3QkEsSzs7OztBQWR4Qjs7Ozs7Ozs7Ozs7Ozs7QUFjZSxTQUFTQSxLQUFULENBQWdCQyxHQUFoQixFQUFxQjtBQUNsQyxNQUFNQyxZQUFZLElBQUlDLFNBQUosQ0FBY0YsR0FBZCxDQUFsQjtBQUNBLE1BQU1HLFNBQVNGLFVBQVVHLFFBQVYsRUFBZjs7QUFFQSxNQUFNQyxZQUFZLEVBQWxCO0FBQ0EsTUFBSUMsVUFBVSxFQUFkO0FBQ0EsTUFBSUMsa0JBQWtCLEVBQXRCOztBQUVBSixTQUFPSyxPQUFQLENBQWUsVUFBVUMsS0FBVixFQUFpQjtBQUM5QixRQUFJQSxNQUFNQyxJQUFOLEtBQWUsVUFBZixLQUE4QkQsTUFBTUUsS0FBTixLQUFnQixHQUFoQixJQUF1QkYsTUFBTUUsS0FBTixLQUFnQixHQUFyRSxDQUFKLEVBQStFO0FBQzdFLFVBQUlMLFFBQVFNLE1BQVosRUFBb0I7QUFDbEJQLGtCQUFVUSxJQUFWLENBQWVQ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QUFJLENBQUMsS0FBS0YsaUJBQU4sSUFBMkJJLE9BQU9QLFNBQXRDLEVBQWlEO0FBQ3RELGFBQUtJLElBQUwsR0FBWTtBQUNWekIsZ0JBQU0sVUFESTtBQUVWQyxpQkFBTzJCO0FBRkcsU0FBWjtBQUlBLGFBQUtELElBQUwsQ0FBVXhCLElBQVYsQ0FBZSxLQUFLc0IsSUFBcEI7QUFDQSxhQUFLQSxJQUFMLEdBQVksSUFBWjtBQUNBLGFBQUtELGlCQUFMLEdBQXlCSCxVQUFVTyxHQUFWLENBQXpCO0FBQ0EsYUFBS0YsT0FBTCxHQUFlLEtBQWY7QUFDQTtBQUNEOztBQUVELFVBQUksQ0FBQyxLQUFLQSxPQUFOLElBQWlCRSxRQUFRLElBQTdCLEVBQW1DO0FBQ2pDLGFBQUtGLE9BQUwsR0FBZSxJQUFmO0FBQ0E7QUFDRDs7QUFFRCxVQUFJLENBQUMsS0FBS0QsSUFBVixFQUFnQjtBQUNkLGFBQUtBLElBQUwsR0FBWTtBQUNWekIsZ0JBQU0sTUFESTtBQUVWQyxpQkFBTztBQUZHLFNBQVo7QUFJQSxhQUFLMEIsSUFBTCxDQUFVeEIsSUFBVixDQUFlLEtBQUtzQixJQUFwQjtBQUNEOztBQUVELFVBQUksS0FBS0MsT0FBTCxJQUFnQkUsUUFBUSxJQUE1QixFQUFrQztBQUNoQyxhQUFLSCxJQUFMLENBQVV4QixLQUFWLElBQW1CLElBQW5CO0FBQ0Q7O0FBRUQsV0FBS3dCLElBQUwsQ0FBVXhCLEtBQVYsSUFBbUIyQixHQUFuQjtBQUNBLFdBQUtGLE9BQUwsR0FBZSxLQUFmO0FBQ0QiLCJmaWxlIjoiYWRkcmVzc3BhcnNlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUGFyc2VzIHN0cnVjdHVyZWQgZS1tYWlsIGFkZHJlc3NlcyBmcm9tIGFuIGFkZHJlc3MgZmllbGRcbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqICAgIFwiTmFtZSA8YWRkcmVzc0Bkb21haW4+XCJcbiAqXG4gKiB3aWxsIGJlIGNvbnZlcnRlZCB0b1xuICpcbiAqICAgICBbe25hbWU6IFwiTmFtZVwiLCBhZGRyZXNzOiBcImFkZHJlc3NAZG9tYWluXCJ9XVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHIgQWRkcmVzcyBmaWVsZFxuICogQHJldHVybiB7QXJyYXl9IEFuIGFycmF5IG9mIGFkZHJlc3Mgb2JqZWN0c1xuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBwYXJzZSAoc3RyKSB7XG4gIGNvbnN0IHRva2VuaXplciA9IG5ldyBUb2tlbml6ZXIoc3RyKVxuICBjb25zdCB0b2tlbnMgPSB0b2tlbml6ZXIudG9rZW5pemUoKVxuXG4gIGNvbnN0IGFkZHJlc3NlcyA9IFtdXG4gIGxldCBhZGRyZXNzID0gW11cbiAgbGV0IHBhcnNlZEFkZHJlc3NlcyA9IFtdXG5cbiAgdG9rZW5zLmZvckVhY2goZnVuY3Rpb24gKHRva2VuKSB7XG4gICAgaWYgKHRva2VuLnR5cGUgPT09ICdvcGVyYXRvcicgJiYgKHRva2VuLnZhbHVlID09PSAnLCcgfHwgdG9rZW4udmFsdWUgPT09ICc7JykpIHtcbiAgICAgIGlmIChhZGRyZXNzLmxlbmd0aCkge1xuICAgICAgICBhZGRyZXNzZXMucHVzaChhZGRyZXNzKVxuICAgICAgfVxuICAgICAgYWRkcmVzcyA9IFtdXG4gICAgfSBlbHNlIHtcbiAgICAgIGFkZHJlc3MucHVzaCh0b2tlbilcbiAgICB9XG4gIH0pXG5cbiAgaWYgKGFkZHJlc3MubGVuZ3RoKSB7XG4gICAgYWRkcmVzc2VzLnB1c2goYWRkcmVzcylcbiAgfVxuXG4gIGFkZHJlc3Nlcy5mb3JFYWNoKGZ1bmN0aW9uIChhZGRyZXNzKSB7XG4gICAgYWRkcmVzcyA9IF9oYW5kbGVBZGRyZXNzKGFkZHJlc3MpXG4gICAgaWYgKGFkZHJlc3MubGVuZ3RoKSB7XG4gICAgICBwYXJzZWRBZGRyZXNzZXMgPSBwYXJzZWRBZGRyZXNzZXMuY29uY2F0KGFkZHJlc3MpXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBwYXJzZWRBZGRyZXNzZXNcbn07XG5cbi8qKlxuICogQ29udmVydHMgdG9rZW5zIGZvciBhIHNpbmdsZSBhZGRyZXNzIGludG8gYW4gYWRkcmVzcyBvYmplY3RcbiAqXG4gKiBAcGFyYW0ge0FycmF5fSB0b2tlbnMgVG9rZW5zIG9iamVjdFxuICogQHJldHVybiB7T2JqZWN0fSBBZGRyZXNzIG9iamVjdFxuICovXG5mdW5jdGlvbiBfaGFuZGxlQWRkcmVzcyAodG9rZW5zKSB7XG4gIGxldCBpc0dyb3VwID0gZmFsc2VcbiAgbGV0IHN0YXRlID0gJ3RleHQnXG4gIGxldCBhZGRyZXNzXG4gIGNvbnN0IGFkZHJlc3NlcyA9IFtdXG4gIGNvbnN0IGRhdGEgPSB7XG4gICAgYWRkcmVzczogW10sXG4gICAgY29tbWVudDogW10sXG4gICAgZ3JvdXA6IFtdLFxuICAgIHRleHQ6IFtdXG4gIH1cblxuICAvLyBGaWx0ZXIgb3V0IDxhZGRyZXNzZXM+LCAoY29tbWVudHMpIGFuZCByZWd1bGFyIHRleHRcbiAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHRva2Vucy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGNvbnN0IHRva2VuID0gdG9rZW5zW2ldXG5cbiAgICBpZiAodG9rZW4udHlwZSA9PT0gJ29wZXJhdG9yJykge1xuICAgICAgc3dpdGNoICh0b2tlbi52YWx1ZSkge1xuICAgICAgICBjYXNlICc8JzpcbiAgICAgICAgICBzdGF0ZSA9ICdhZGRyZXNzJ1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJygnOlxuICAgICAgICAgIHN0YXRlID0gJ2NvbW1lbnQnXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnOic6XG4gICAgICAgICAgc3RhdGUgPSAnZ3JvdXAnXG4gICAgICAgICAgaXNHcm91cCA9IHRydWVcbiAgICAgICAgICBicmVha1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHN0YXRlID0gJ3RleHQnXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0b2tlbi52YWx1ZSkge1xuICAgICAgICBkYXRhW3N0YXRlXS5wdXNoKHRva2VuLnZhbHVlKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRoZXJlIGlzIG5vIHRleHQgYnV0IGEgY29tbWVudCwgcmVwbGFjZSB0aGUgdHdvXG4gIGlmICghZGF0YS50ZXh0Lmxlbmd0aCAmJiBkYXRhLmNvbW1lbnQubGVuZ3RoKSB7XG4gICAgZGF0YS50ZXh0ID0gZGF0YS5jb21tZW50XG4gICAgZGF0YS5jb21tZW50ID0gW11cbiAgfVxuXG4gIGlmIChpc0dyb3VwKSB7XG4gICAgLy8gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMjgyMiNhcHBlbmRpeC1BLjEuM1xuICAgIGRhdGEudGV4dCA9IGRhdGEudGV4dC5qb2luKCcgJylcbiAgICBhZGRyZXNzZXMucHVzaCh7XG4gICAgICBuYW1lOiBkYXRhLnRleHQgfHwgKGFkZHJlc3MgJiYgYWRkcmVzcy5uYW1lKSxcbiAgICAgIGdyb3VwOiBkYXRhLmdyb3VwLmxlbmd0aCA/IHBhcnNlKGRhdGEuZ3JvdXAuam9pbignLCcpKSA6IFtdXG4gICAgfSlcbiAgfSBlbHNlIHtcbiAgICAvLyBJZiBubyBhZGRyZXNzIHdhcyBmb3VuZCwgdHJ5IHRvIGRldGVjdCBvbmUgZnJvbSByZWd1bGFyIHRleHRcbiAgICBpZiAoIWRhdGEuYWRkcmVzcy5sZW5ndGggJiYgZGF0YS50ZXh0Lmxlbmd0aCkge1xuICAgICAgZm9yIChsZXQgaSA9IGRhdGEudGV4dC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICBpZiAoZGF0YS50ZXh0W2ldLm1hdGNoKC9eW15AXFxzXStAW15AXFxzXSskLykpIHtcbiAgICAgICAgICBkYXRhLmFkZHJlc3MgPSBkYXRhLnRleHQuc3BsaWNlKGksIDEpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgX3JlZ2V4SGFuZGxlciA9IGZ1bmN0aW9uIChhZGRyZXNzKSB7XG4gICAgICAgIGlmICghZGF0YS5hZGRyZXNzLmxlbmd0aCkge1xuICAgICAgICAgIGRhdGEuYWRkcmVzcyA9IFthZGRyZXNzLnRyaW0oKV1cbiAgICAgICAgICByZXR1cm4gJyAnXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGFkZHJlc3NcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBzdGlsbCBubyBhZGRyZXNzXG4gICAgICBpZiAoIWRhdGEuYWRkcmVzcy5sZW5ndGgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IGRhdGEudGV4dC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgIGRhdGEudGV4dFtpXSA9IGRhdGEudGV4dFtpXS5yZXBsYWNlKC9cXHMqXFxiW15AXFxzXStAW15AXFxzXStcXGJcXHMqLywgX3JlZ2V4SGFuZGxlcikudHJpbSgpXG4gICAgICAgICAgaWYgKGRhdGEuYWRkcmVzcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUncyBzdGlsbCBpcyBubyB0ZXh0IGJ1dCBhIGNvbW1lbnQgZXhpeHRzLCByZXBsYWNlIHRoZSB0d29cbiAgICBpZiAoIWRhdGEudGV4dC5sZW5ndGggJiYgZGF0YS5jb21tZW50Lmxlbmd0aCkge1xuICAgICAgZGF0YS50ZXh0ID0gZGF0YS5jb21tZW50XG4gICAgICBkYXRhLmNvbW1lbnQgPSBbXVxuICAgIH1cblxuICAgIC8vIEtlZXAgb25seSB0aGUgZmlyc3QgYWRkcmVzcyBvY2N1cmVuY2UsIHB1c2ggb3RoZXJzIHRvIHJlZ3VsYXIgdGV4dFxuICAgIGlmIChkYXRhLmFkZHJlc3MubGVuZ3RoID4gMSkge1xuICAgICAgZGF0YS50ZXh0ID0gZGF0YS50ZXh0LmNvbmNhdChkYXRhLmFkZHJlc3Muc3BsaWNlKDEpKVxuICAgIH1cblxuICAgIC8vIEpvaW4gdmFsdWVzIHdpdGggc3BhY2VzXG4gICAgZGF0YS50ZXh0ID0gZGF0YS50ZXh0LmpvaW4oJyAnKVxuICAgIGRhdGEuYWRkcmVzcyA9IGRhdGEuYWRkcmVzcy5qb2luKCcgJylcblxuICAgIGlmICghZGF0YS5hZGRyZXNzICYmIGlzR3JvdXApIHtcbiAgICAgIHJldHVybiBbXVxuICAgIH0gZWxzZSB7XG4gICAgICBhZGRyZXNzID0ge1xuICAgICAgICBhZGRyZXNzOiBkYXRhLmFkZHJlc3MgfHwgZGF0YS50ZXh0IHx8ICcnLFxuICAgICAgICBuYW1lOiBkYXRhLnRleHQgfHwgZGF0YS5hZGRyZXNzIHx8ICcnXG4gICAgICB9XG5cbiAgICAgIGlmIChhZGRyZXNzLmFkZHJlc3MgPT09IGFkZHJlc3MubmFtZSkge1xuICAgICAgICBpZiAoKGFkZHJlc3MuYWRkcmVzcyB8fCAnJykubWF0Y2goL0AvKSkge1xuICAgICAgICAgIGFkZHJlc3MubmFtZSA9ICcnXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWRkcmVzcy5hZGRyZXNzID0gJydcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBhZGRyZXNzZXMucHVzaChhZGRyZXNzKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhZGRyZXNzZXNcbn07XG5cbi8qXG4gKiBPcGVyYXRvciB0b2tlbnMgYW5kIHdoaWNoIHRva2VucyBhcmUgZXhwZWN0ZWQgdG8gZW5kIHRoZSBzZXF1ZW5jZVxuICovXG5jb25zdCBPUEVSQVRPUlMgPSB7XG4gICdcIic6ICdcIicsXG4gICcoJzogJyknLFxuICAnPCc6ICc+JyxcbiAgJywnOiAnJyxcbiAgLy8gR3JvdXBzIGFyZSBlbmRlZCBieSBzZW1pY29sb25zXG4gICc6JzogJzsnLFxuICAvLyBTZW1pY29sb25zIGFyZSBub3QgYSBsZWdhbCBkZWxpbWl0ZXIgcGVyIHRoZSBSRkMyODIyIGdyYW1tYXIgb3RoZXJcbiAgLy8gdGhhbiBmb3IgdGVybWluYXRpbmcgYSBncm91cCwgYnV0IHRoZXkgYXJlIGFsc28gbm90IHZhbGlkIGZvciBhbnlcbiAgLy8gb3RoZXIgdXNlIGluIHRoaXMgY29udGV4dC4gIEdpdmVuIHRoYXQgc29tZSBtYWlsIGNsaWVudHMgaGF2ZVxuICAvLyBoaXN0b3JpY2FsbHkgYWxsb3dlZCB0aGUgc2VtaWNvbG9uIGFzIGEgZGVsaW1pdGVyIGVxdWl2YWxlbnQgdG8gdGhlXG4gIC8vIGNvbW1hIGluIHRoZWlyIFVJLCBpdCBtYWtlcyBzZW5zZSB0byB0cmVhdCB0aGVtIHRoZSBzYW1lIGFzIGEgY29tbWFcbiAgLy8gd2hlbiB1c2VkIG91dHNpZGUgb2YgYSBncm91cC5cbiAgJzsnOiAnJ1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBUb2tlbml6ZXIgb2JqZWN0IGZvciB0b2tlbml6aW5nIGFkZHJlc3MgZmllbGQgc3RyaW5nc1xuICpcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtTdHJpbmd9IHN0ciBBZGRyZXNzIGZpZWxkIHN0cmluZ1xuICovXG5jbGFzcyBUb2tlbml6ZXIge1xuICBjb25zdHJ1Y3RvciAoc3RyKSB7XG4gICAgdGhpcy5zdHIgPSAoc3RyIHx8ICcnKS50b1N0cmluZygpXG4gICAgdGhpcy5vcGVyYXRvckN1cnJlbnQgPSAnJ1xuICAgIHRoaXMub3BlcmF0b3JFeHBlY3RpbmcgPSAnJ1xuICAgIHRoaXMubm9kZSA9IG51bGxcbiAgICB0aGlzLmVzY2FwZWQgPSBmYWxzZVxuICAgIHRoaXMubGlzdCA9IFtdXG4gIH1cblxuICAvKipcbiAgICogVG9rZW5pemVzIHRoZSBvcmlnaW5hbCBpbnB1dCBzdHJpbmdcbiAgICpcbiAgICogQHJldHVybiB7QXJyYXl9IEFuIGFycmF5IG9mIG9wZXJhdG9yfHRleHQgdG9rZW5zXG4gICAqL1xuICB0b2tlbml6ZSAoKSB7XG4gICAgbGV0IGNoclxuICAgIGxldCBsaXN0ID0gW11cbiAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gdGhpcy5zdHIubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGNociA9IHRoaXMuc3RyLmNoYXJBdChpKVxuICAgICAgdGhpcy5jaGVja0NoYXIoY2hyKVxuICAgIH1cblxuICAgIHRoaXMubGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICBub2RlLnZhbHVlID0gKG5vZGUudmFsdWUgfHwgJycpLnRvU3RyaW5nKCkudHJpbSgpXG4gICAgICBpZiAobm9kZS52YWx1ZSkge1xuICAgICAgICBsaXN0LnB1c2gobm9kZSlcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgcmV0dXJuIGxpc3RcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBjaGFyYWN0ZXIgaXMgYW4gb3BlcmF0b3Igb3IgdGV4dCBhbmQgYWN0cyBhY2NvcmRpbmdseVxuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gY2hyIENoYXJhY3RlciBmcm9tIHRoZSBhZGRyZXNzIGZpZWxkXG4gICAqL1xuICBjaGVja0NoYXIgKGNocikge1xuICAgIGlmICgoY2hyIGluIE9QRVJBVE9SUyB8fCBjaHIgPT09ICdcXFxcJykgJiYgdGhpcy5lc2NhcGVkKSB7XG4gICAgICB0aGlzLmVzY2FwZWQgPSBmYWxzZVxuICAgIH0gZWxzZSBpZiAodGhpcy5vcGVyYXRvckV4cGVjdGluZyAmJiBjaHIgPT09IHRoaXMub3BlcmF0b3JFeHBlY3RpbmcpIHtcbiAgICAgIHRoaXMubm9kZSA9IHtcbiAgICAgICAgdHlwZTogJ29wZXJhdG9yJyxcbiAgICAgICAgdmFsdWU6IGNoclxuICAgICAgfVxuICAgICAgdGhpcy5saXN0LnB1c2godGhpcy5ub2RlKVxuICAgICAgdGhpcy5ub2RlID0gbnVsbFxuICAgICAgdGhpcy5vcGVyYXRvckV4cGVjdGluZyA9ICcnXG4gICAgICB0aGlzLmVzY2FwZWQgPSBmYWxzZVxuICAgICAgcmV0dXJuXG4gICAgfSBlbHNlIGlmICghdGhpcy5vcGVyYXRvckV4cGVjdGluZyAmJiBjaHIgaW4gT1BFUkFUT1JTKSB7XG4gICAgICB0aGlzLm5vZGUgPSB7XG4gICAgICAgIHR5cGU6ICdvcGVyYXRvcicsXG4gICAgICAgIHZhbHVlOiBjaHJcbiAgICAgIH1cbiAgICAgIHRoaXMubGlzdC5wdXNoKHRoaXMubm9kZSlcbiAgICAgIHRoaXMubm9kZSA9IG51bGxcbiAgICAgIHRoaXMub3BlcmF0b3JFeHBlY3RpbmcgPSBPUEVSQVRPUlNbY2hyXVxuICAgICAgdGhpcy5lc2NhcGVkID0gZmFsc2VcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICghdGhpcy5lc2NhcGVkICYmIGNociA9PT0gJ1xcXFwnKSB7XG4gICAgICB0aGlzLmVzY2FwZWQgPSB0cnVlXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoIXRoaXMubm9kZSkge1xuICAgICAgdGhpcy5ub2RlID0ge1xuICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgIHZhbHVlOiAnJ1xuICAgICAgfVxuICAgICAgdGhpcy5saXN0LnB1c2godGhpcy5ub2RlKVxuICAgIH1cblxuICAgIGlmICh0aGlzLmVzY2FwZWQgJiYgY2hyICE9PSAnXFxcXCcpIHtcbiAgICAgIHRoaXMubm9kZS52YWx1ZSArPSAnXFxcXCdcbiAgICB9XG5cbiAgICB0aGlzLm5vZGUudmFsdWUgKz0gY2hyXG4gICAgdGhpcy5lc2NhcGVkID0gZmFsc2VcbiAgfVxufVxuIl19 /***/ }), -/* 167 */ +/* 180 */ /*!*************************************************************************!*\ !*** ./node_modules/core-js/internals/object-property-is-enumerable.js ***! \*************************************************************************/ @@ -16196,22 +16026,23 @@ var Tokenizer = function () { "use strict"; -var nativePropertyIsEnumerable = {}.propertyIsEnumerable; +var $propertyIsEnumerable = {}.propertyIsEnumerable; +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // Nashorn ~ JDK8 bug -var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1); +var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1); // `Object.prototype.propertyIsEnumerable` method implementation -// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable +// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { var descriptor = getOwnPropertyDescriptor(this, V); return !!descriptor && descriptor.enumerable; -} : nativePropertyIsEnumerable; +} : $propertyIsEnumerable; /***/ }), -/* 168 */ +/* 181 */ /*!**********************************************************!*\ !*** ./node_modules/core-js/internals/array-includes.js ***! \**********************************************************/ @@ -16219,9 +16050,9 @@ exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 72); -var toLength = __webpack_require__(/*! ../internals/to-length */ 73); -var toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ 184); +var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 73); +var toLength = __webpack_require__(/*! ../internals/to-length */ 85); +var toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ 213); // `Array.prototype.{ indexOf, includes }` methods implementation var createMethod = function (IS_INCLUDES) { @@ -16231,10 +16062,10 @@ var createMethod = function (IS_INCLUDES) { var index = toAbsoluteIndex(fromIndex, length); var value; // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare + // eslint-disable-next-line no-self-compare -- NaN check if (IS_INCLUDES && el != el) while (length > index) { value = O[index++]; - // eslint-disable-next-line no-self-compare + // eslint-disable-next-line no-self-compare -- NaN check if (value != value) return true; // Array#indexOf ignores holes, Array#includes - not } else for (;length > index; index++) { @@ -16245,16 +16076,16 @@ var createMethod = function (IS_INCLUDES) { module.exports = { // `Array.prototype.includes` method - // https://tc39.github.io/ecma262/#sec-array.prototype.includes + // https://tc39.es/ecma262/#sec-array.prototype.includes includes: createMethod(true), // `Array.prototype.indexOf` method - // https://tc39.github.io/ecma262/#sec-array.prototype.indexof + // https://tc39.es/ecma262/#sec-array.prototype.indexof indexOf: createMethod(false) }; /***/ }), -/* 169 */ +/* 182 */ /*!***************************************************************************!*\ !*** ./node_modules/core-js/internals/object-get-own-property-symbols.js ***! \***************************************************************************/ @@ -16262,11 +16093,81 @@ module.exports = { /*! all exports used */ /***/ (function(module, exports) { +// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe exports.f = Object.getOwnPropertySymbols; /***/ }), -/* 170 */ +/* 183 */ +/*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/is-forced.js ***! + \*****************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var fails = __webpack_require__(/*! ../internals/fails */ 37); + +var replacement = /#|\.prototype\./; + +var isForced = function (feature, detection) { + var value = data[normalize(feature)]; + return value == POLYFILL ? true + : value == NATIVE ? false + : typeof detection == 'function' ? fails(detection) + : !!detection; +}; + +var normalize = isForced.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); +}; + +var data = isForced.data = {}; +var NATIVE = isForced.NATIVE = 'N'; +var POLYFILL = isForced.POLYFILL = 'P'; + +module.exports = isForced; + + +/***/ }), +/* 184 */ +/*!***************************************************!*\ + !*** ./node_modules/core-js/internals/classof.js ***! + \***************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ 100); +var classofRaw = __webpack_require__(/*! ../internals/classof-raw */ 74); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 39); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +// ES3 wrong here +var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; + +// fallback for IE11 Script Access Denied error +var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } +}; + +// getting tag from ES6+ `Object.prototype.toString` +module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw(O) + // ES3 arguments fallback + : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result; +}; + + +/***/ }), +/* 185 */ /*!**********************************************************!*\ !*** ./node_modules/core-js/internals/iterators-core.js ***! \**********************************************************/ @@ -16276,11 +16177,12 @@ exports.f = Object.getOwnPropertySymbols; "use strict"; -var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ 152); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 48); -var has = __webpack_require__(/*! ../internals/has */ 42); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); -var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ 80); +var fails = __webpack_require__(/*! ../internals/fails */ 37); +var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ 169); +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 47); +var has = __webpack_require__(/*! ../internals/has */ 44); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 39); +var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ 99); var ITERATOR = wellKnownSymbol('iterator'); var BUGGY_SAFARI_ITERATORS = false; @@ -16288,9 +16190,10 @@ var BUGGY_SAFARI_ITERATORS = false; var returnThis = function () { return this; }; // `%IteratorPrototype%` object -// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object +// https://tc39.es/ecma262/#sec-%iteratorprototype%-object var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; +/* eslint-disable es/no-array-prototype-keys -- safe */ if ([].keys) { arrayIterator = [].keys(); // Safari 8 has buggy iterators w/o `next` @@ -16301,10 +16204,16 @@ if ([].keys) { } } -if (IteratorPrototype == undefined) IteratorPrototype = {}; +var NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () { + var test = {}; + // FF44- legacy iterators case + return IteratorPrototype[ITERATOR].call(test) !== test; +}); + +if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {}; // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() -if (!IS_PURE && !has(IteratorPrototype, ITERATOR)) { +if ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) { createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis); } @@ -16315,390 +16224,952 @@ module.exports = { /***/ }), -/* 171 */ -/*!**********************************************************************!*\ - !*** ./node_modules/core-js/internals/native-promise-constructor.js ***! - \**********************************************************************/ +/* 186 */ +/*!*********************************************************!*\ + !*** ./node_modules/core-js-pure/modules/web.timers.js ***! + \*********************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var global = __webpack_require__(/*! ../internals/global */ 27); - -module.exports = global.Promise; - - -/***/ }), -/* 172 */ -/*!***********************************************************!*\ - !*** ./node_modules/core-js/internals/promise-resolve.js ***! - \***********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { +var $ = __webpack_require__(/*! ../internals/export */ 34); +var global = __webpack_require__(/*! ../internals/global */ 31); +var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ 107); -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); -var isObject = __webpack_require__(/*! ../internals/is-object */ 44); -var newPromiseCapability = __webpack_require__(/*! ../internals/new-promise-capability */ 106); +var slice = [].slice; +var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check -module.exports = function (C, x) { - anObject(C); - if (isObject(x) && x.constructor === C) return x; - var promiseCapability = newPromiseCapability.f(C); - var resolve = promiseCapability.resolve; - resolve(x); - return promiseCapability.promise; +var wrap = function (scheduler) { + return function (handler, timeout /* , ...arguments */) { + var boundArgs = arguments.length > 2; + var args = boundArgs ? slice.call(arguments, 2) : undefined; + return scheduler(boundArgs ? function () { + // eslint-disable-next-line no-new-func + (typeof handler == 'function' ? handler : Function(handler)).apply(this, args); + } : handler, timeout); + }; }; +// ie9- setTimeout & setInterval additional parameters fix +// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers +$({ global: true, bind: true, forced: MSIE }, { + // `setTimeout` method + // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout + setTimeout: wrap(global.setTimeout), + // `setInterval` method + // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval + setInterval: wrap(global.setInterval) +}); + /***/ }), -/* 173 */ -/*!********************************************************!*\ - !*** ./node_modules/core-js/internals/regexp-flags.js ***! - \********************************************************/ +/* 187 */ +/*!***************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/ie8-dom-define.js ***! + \***************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; - -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); +var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 53); +var fails = __webpack_require__(/*! ../internals/fails */ 43); +var createElement = __webpack_require__(/*! ../internals/document-create-element */ 139); -// `RegExp.prototype.flags` getter implementation -// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags -module.exports = function () { - var that = anObject(this); - var result = ''; - if (that.global) result += 'g'; - if (that.ignoreCase) result += 'i'; - if (that.multiline) result += 'm'; - if (that.dotAll) result += 's'; - if (that.unicode) result += 'u'; - if (that.sticky) result += 'y'; - return result; -}; +// Thank's IE8 for his funny defineProperty +module.exports = !DESCRIPTORS && !fails(function () { + return Object.defineProperty(createElement('div'), 'a', { + get: function () { return 7; } + }).a != 7; +}); /***/ }), -/* 174 */ -/*!*********************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.split.js ***! - \*********************************************************/ +/* 188 */ +/*!**********************************************************!*\ + !*** ./node_modules/core-js-pure/internals/is-forced.js ***! + \**********************************************************/ /*! no static exports found */ +/*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; - -var fixRegExpWellKnownSymbolLogic = __webpack_require__(/*! ../internals/fix-regexp-well-known-symbol-logic */ 135); -var isRegExp = __webpack_require__(/*! ../internals/is-regexp */ 229); -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); -var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ 56); -var speciesConstructor = __webpack_require__(/*! ../internals/species-constructor */ 144); -var advanceStringIndex = __webpack_require__(/*! ../internals/advance-string-index */ 154); -var toLength = __webpack_require__(/*! ../internals/to-length */ 73); -var callRegExpExec = __webpack_require__(/*! ../internals/regexp-exec-abstract */ 136); -var regexpExec = __webpack_require__(/*! ../internals/regexp-exec */ 110); -var fails = __webpack_require__(/*! ../internals/fails */ 36); - -var arrayPush = [].push; -var min = Math.min; -var MAX_UINT32 = 0xFFFFFFFF; - -// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError -var SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); }); +var fails = __webpack_require__(/*! ../internals/fails */ 43); -// @@split logic -fixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) { - var internalSplit; - if ( - 'abbc'.split(/(b)*/)[1] == 'c' || - 'test'.split(/(?:)/, -1).length != 4 || - 'ab'.split(/(?:ab)*/).length != 2 || - '.'.split(/(.?)(.?)/).length != 4 || - '.'.split(/()()/).length > 1 || - ''.split(/.?/).length - ) { - // based on es5-shim implementation, need to rework it - internalSplit = function (separator, limit) { - var string = String(requireObjectCoercible(this)); - var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; - if (lim === 0) return []; - if (separator === undefined) return [string]; - // If `separator` is not a regex, use native split - if (!isRegExp(separator)) { - return nativeSplit.call(string, separator, lim); - } - var output = []; - var flags = (separator.ignoreCase ? 'i' : '') + - (separator.multiline ? 'm' : '') + - (separator.unicode ? 'u' : '') + - (separator.sticky ? 'y' : ''); - var lastLastIndex = 0; - // Make `global` and avoid `lastIndex` issues by working with a copy - var separatorCopy = new RegExp(separator.source, flags + 'g'); - var match, lastIndex, lastLength; - while (match = regexpExec.call(separatorCopy, string)) { - lastIndex = separatorCopy.lastIndex; - if (lastIndex > lastLastIndex) { - output.push(string.slice(lastLastIndex, match.index)); - if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1)); - lastLength = match[0].length; - lastLastIndex = lastIndex; - if (output.length >= lim) break; - } - if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop - } - if (lastLastIndex === string.length) { - if (lastLength || !separatorCopy.test('')) output.push(''); - } else output.push(string.slice(lastLastIndex)); - return output.length > lim ? output.slice(0, lim) : output; - }; - // Chakra, V8 - } else if ('0'.split(undefined, 0).length) { - internalSplit = function (separator, limit) { - return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit); - }; - } else internalSplit = nativeSplit; +var replacement = /#|\.prototype\./; - return [ - // `String.prototype.split` method - // https://tc39.github.io/ecma262/#sec-string.prototype.split - function split(separator, limit) { - var O = requireObjectCoercible(this); - var splitter = separator == undefined ? undefined : separator[SPLIT]; - return splitter !== undefined - ? splitter.call(separator, O, limit) - : internalSplit.call(String(O), separator, limit); - }, - // `RegExp.prototype[@@split]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split - // - // NOTE: This cannot be properly polyfilled in engines that don't support - // the 'y' flag. - function (regexp, limit) { - var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit); - if (res.done) return res.value; +var isForced = function (feature, detection) { + var value = data[normalize(feature)]; + return value == POLYFILL ? true + : value == NATIVE ? false + : typeof detection == 'function' ? fails(detection) + : !!detection; +}; - var rx = anObject(regexp); - var S = String(this); - var C = speciesConstructor(rx, RegExp); +var normalize = isForced.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); +}; - var unicodeMatching = rx.unicode; - var flags = (rx.ignoreCase ? 'i' : '') + - (rx.multiline ? 'm' : '') + - (rx.unicode ? 'u' : '') + - (SUPPORTS_Y ? 'y' : 'g'); +var data = isForced.data = {}; +var NATIVE = isForced.NATIVE = 'N'; +var POLYFILL = isForced.POLYFILL = 'P'; - // ^(? + rx + ) is needed, in combination with some S slicing, to - // simulate the 'y' flag. - var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags); - var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; - if (lim === 0) return []; - if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : []; - var p = 0; - var q = 0; - var A = []; - while (q < S.length) { - splitter.lastIndex = SUPPORTS_Y ? q : 0; - var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q)); - var e; - if ( - z === null || - (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p - ) { - q = advanceStringIndex(S, q, unicodeMatching); - } else { - A.push(S.slice(p, q)); - if (A.length === lim) return A; - for (var i = 1; i <= z.length - 1; i++) { - A.push(z[i]); - if (A.length === lim) return A; - } - q = p = e; - } - } - A.push(S.slice(p)); - return A; - } - ]; -}, !SUPPORTS_Y); +module.exports = isForced; /***/ }), -/* 175 */ -/*!********************************************************!*\ - !*** ./node_modules/core-js/modules/es.string.link.js ***! - \********************************************************/ +/* 189 */ +/*!*******************************************************!*\ + !*** ./node_modules/core-js-pure/internals/shared.js ***! + \*******************************************************/ /*! no static exports found */ +/*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; - -var $ = __webpack_require__(/*! ../internals/export */ 50); -var createHTML = __webpack_require__(/*! ../internals/create-html */ 288); -var forcedStringHTMLMethod = __webpack_require__(/*! ../internals/string-html-forced */ 289); +var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ 87); +var store = __webpack_require__(/*! ../internals/shared-store */ 142); -// `String.prototype.link` method -// https://tc39.github.io/ecma262/#sec-string.prototype.link -$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, { - link: function link(url) { - return createHTML(this, 'a', 'href', url); - } +(module.exports = function (key, value) { + return store[key] || (store[key] = value !== undefined ? value : {}); +})('versions', []).push({ + version: '3.8.2', + mode: IS_PURE ? 'pure' : 'global', + copyright: '© 2021 Denis Pushkarev (zloirock.ru)' }); /***/ }), -/* 176 */ -/*!***********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/a-function.js ***! - \***********************************************************/ +/* 190 */ +/*!****************************************************!*\ + !*** ./node_modules/core-js-pure/internals/uid.js ***! + \****************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports) { -module.exports = function (it) { - if (typeof it != 'function') { - throw TypeError(String(it) + ' is not a function'); - } return it; +var id = 0; +var postfix = Math.random(); + +module.exports = function (key) { + return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); }; /***/ }), -/* 177 */ -/*!*****************************!*\ - !*** external "window.Jua" ***! - \*****************************/ +/* 191 */ +/*!**************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/enum-bug-keys.js ***! + \**************************************************************/ /*! no static exports found */ -/*! exports used: default */ +/*! all exports used */ /***/ (function(module, exports) { -module.exports = window.Jua; - -/***/ }), -/* 178 */ -/*!*************************************!*\ - !*** ./dev/Stores/User/Template.js ***! - \*************************************/ -/*! exports provided: default */ -/*! exports used: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.function.name */ 51); -/* harmony import */ var core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 18); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_3__); +// IE8- don't enum bug keys +module.exports = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' +]; +/***/ }), +/* 192 */ +/*!*****************************************************!*\ + !*** ./node_modules/core-js-pure/internals/html.js ***! + \*****************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { - // import Remote from 'Remote/User/Ajax'; +var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ 75); -var TemplateUserStore = /*#__PURE__*/function () { - function TemplateUserStore() { - this.templates = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observableArray([]); - this.templates.loading = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observable(false).extend({ - throttle: 100 - }); - this.templatesNames = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observableArray([]).extend({ - throttle: 1000 - }); - this.templatesNames.skipFirst = true; - this.subscribers(); - } +module.exports = getBuiltIn('document', 'documentElement'); - var _proto = TemplateUserStore.prototype; - _proto.subscribers = function subscribers() { - var _this = this; +/***/ }), +/* 193 */ +/*!**************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/native-symbol.js ***! + \**************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { - this.templates.subscribe(function (list) { - _this.templatesNames(___WEBPACK_IMPORTED_MODULE_3___default.a.compact(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_3___default.a).call(___WEBPACK_IMPORTED_MODULE_3___default.a, list, function (item) { - return item ? item.name : null; - }))); - }); // this.templatesNames.subscribe((aList) => { - // if (this.templatesNames.skipFirst) - // { - // this.templatesNames.skipFirst = false; - // } - // else if (aList && 1 < aList.length) - // { - // Remote.templatesSortOrder(null, aList); - // } - // }); - }; +var fails = __webpack_require__(/*! ../internals/fails */ 43); - return TemplateUserStore; -}(); +module.exports = !!Object.getOwnPropertySymbols && !fails(function () { + // Chrome 38 Symbol has incorrect toString conversion + // eslint-disable-next-line no-undef + return !String(Symbol()); +}); -/* harmony default export */ __webpack_exports__["a"] = (new TemplateUserStore()); /***/ }), -/* 179 */ -/*!*********************************!*\ - !*** ./dev/Model/Attachment.js ***! - \*********************************/ -/*! exports provided: staticFileType, staticIconClass, staticCombinedIconClass, AttachmentModel, default */ -/*! exports used: AttachmentModel, staticCombinedIconClass, staticFileType, staticIconClass */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +/* 194 */ +/*!***************************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/native-promise-constructor.js ***! + \***************************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return staticFileType; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return staticIconClass; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return staticCombinedIconClass; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AttachmentModel; }); -/* unused harmony export default */ -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec */ 45); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.replace */ 57); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var core_js_modules_es_string_split__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.string.split */ 174); -/* harmony import */ var core_js_modules_es_string_split__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 18); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Common/Globals */ 6); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Common_Links__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Common/Links */ 15); -/* harmony import */ var Knoin_AbstractModel__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! Knoin/AbstractModel */ 64); -/* harmony import */ var Common_Audio__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! Common/Audio */ 83); +var global = __webpack_require__(/*! ../internals/global */ 31); +module.exports = global.Promise; +/***/ }), +/* 195 */ +/*!***************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/inspect-source.js ***! + \***************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { +var store = __webpack_require__(/*! ../internals/shared-store */ 142); +var functionToString = Function.toString; +// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper +if (typeof store.inspectSource != 'function') { + store.inspectSource = function (it) { + return functionToString.call(it); + }; +} +module.exports = store.inspectSource; +/***/ }), +/* 196 */ +/*!********************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/species-constructor.js ***! + \********************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { +var anObject = __webpack_require__(/*! ../internals/an-object */ 58); +var aFunction = __webpack_require__(/*! ../internals/a-function */ 70); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 38); +var SPECIES = wellKnownSymbol('species'); +// `SpeciesConstructor` abstract operation +// https://tc39.es/ecma262/#sec-speciesconstructor +module.exports = function (O, defaultConstructor) { + var C = anObject(O).constructor; + var S; + return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S); +}; -/** - * @param {string} sExt - * @param {string} sMimeType - * @returns {string} - */ +/***/ }), +/* 197 */ +/*!*****************************************************!*\ + !*** ./node_modules/core-js-pure/internals/task.js ***! + \*****************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { -var staticFileType = ___WEBPACK_IMPORTED_MODULE_6___default.a.memoize(function (ext, mimeType) { - ext = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["trim"])(ext).toLowerCase(); - mimeType = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["trim"])(mimeType).toLowerCase(); - var result = Common_Enums__WEBPACK_IMPORTED_MODULE_8__["FileType"].Unknown; - var mimeTypeParts = mimeType.split('/'); +var global = __webpack_require__(/*! ../internals/global */ 31); +var fails = __webpack_require__(/*! ../internals/fails */ 43); +var bind = __webpack_require__(/*! ../internals/function-bind-context */ 116); +var html = __webpack_require__(/*! ../internals/html */ 192); +var createElement = __webpack_require__(/*! ../internals/document-create-element */ 139); +var IS_IOS = __webpack_require__(/*! ../internals/engine-is-ios */ 198); +var IS_NODE = __webpack_require__(/*! ../internals/engine-is-node */ 118); - switch (true) { - case 'image' === mimeTypeParts[0] || -1 < Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["inArray"])(ext, ['png', 'jpg', 'jpeg', 'gif', 'bmp']): - result = Common_Enums__WEBPACK_IMPORTED_MODULE_8__["FileType"].Image; +var location = global.location; +var set = global.setImmediate; +var clear = global.clearImmediate; +var process = global.process; +var MessageChannel = global.MessageChannel; +var Dispatch = global.Dispatch; +var counter = 0; +var queue = {}; +var ONREADYSTATECHANGE = 'onreadystatechange'; +var defer, channel, port; + +var run = function (id) { + // eslint-disable-next-line no-prototype-builtins + if (queue.hasOwnProperty(id)) { + var fn = queue[id]; + delete queue[id]; + fn(); + } +}; + +var runner = function (id) { + return function () { + run(id); + }; +}; + +var listener = function (event) { + run(event.data); +}; + +var post = function (id) { + // old engines have not location.origin + global.postMessage(id + '', location.protocol + '//' + location.host); +}; + +// Node.js 0.9+ & IE10+ has setImmediate, otherwise: +if (!set || !clear) { + set = function setImmediate(fn) { + var args = []; + var i = 1; + while (arguments.length > i) args.push(arguments[i++]); + queue[++counter] = function () { + // eslint-disable-next-line no-new-func + (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args); + }; + defer(counter); + return counter; + }; + clear = function clearImmediate(id) { + delete queue[id]; + }; + // Node.js 0.8- + if (IS_NODE) { + defer = function (id) { + process.nextTick(runner(id)); + }; + // Sphere (JS game engine) Dispatch API + } else if (Dispatch && Dispatch.now) { + defer = function (id) { + Dispatch.now(runner(id)); + }; + // Browsers with MessageChannel, includes WebWorkers + // except iOS - https://github.com/zloirock/core-js/issues/624 + } else if (MessageChannel && !IS_IOS) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = listener; + defer = bind(port.postMessage, port, 1); + // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if ( + global.addEventListener && + typeof postMessage == 'function' && + !global.importScripts && + location && location.protocol !== 'file:' && + !fails(post) + ) { + defer = post; + global.addEventListener('message', listener, false); + // IE8- + } else if (ONREADYSTATECHANGE in createElement('script')) { + defer = function (id) { + html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { + html.removeChild(this); + run(id); + }; + }; + // Rest old browsers + } else { + defer = function (id) { + setTimeout(runner(id), 0); + }; + } +} + +module.exports = { + set: set, + clear: clear +}; + + +/***/ }), +/* 198 */ +/*!**************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/engine-is-ios.js ***! + \**************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ 107); + +module.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent); + + +/***/ }), +/* 199 */ +/*!****************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/promise-resolve.js ***! + \****************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var anObject = __webpack_require__(/*! ../internals/an-object */ 58); +var isObject = __webpack_require__(/*! ../internals/is-object */ 50); +var newPromiseCapability = __webpack_require__(/*! ../internals/new-promise-capability */ 110); + +module.exports = function (C, x) { + anObject(C); + if (isObject(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; +}; + + +/***/ }), +/* 200 */ +/*!****************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/define-iterator.js ***! + \****************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $ = __webpack_require__(/*! ../internals/export */ 34); +var createIteratorConstructor = __webpack_require__(/*! ../internals/create-iterator-constructor */ 281); +var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ 140); +var setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ 160); +var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ 146); +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 52); +var redefine = __webpack_require__(/*! ../internals/redefine */ 109); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 38); +var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ 87); +var Iterators = __webpack_require__(/*! ../internals/iterators */ 76); +var IteratorsCore = __webpack_require__(/*! ../internals/iterators-core */ 201); + +var IteratorPrototype = IteratorsCore.IteratorPrototype; +var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; +var ITERATOR = wellKnownSymbol('iterator'); +var KEYS = 'keys'; +var VALUES = 'values'; +var ENTRIES = 'entries'; + +var returnThis = function () { return this; }; + +module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + + var getIterationMethod = function (KIND) { + if (KIND === DEFAULT && defaultIterator) return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND]; + switch (KIND) { + case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; + case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; + case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; + } return function () { return new IteratorConstructor(this); }; + }; + + var TO_STRING_TAG = NAME + ' Iterator'; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR] + || IterablePrototype['@@iterator'] + || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + + // fix native + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); + if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { + if (setPrototypeOf) { + setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); + } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') { + createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis); + } + } + // Set @@toStringTag to native iterators + setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); + if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis; + } + } + + // fix Array#{values, @@iterator}.name in V8 / FF + if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { return nativeIterator.call(this); }; + } + + // define iterator + if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { + createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator); + } + Iterators[NAME] = defaultIterator; + + // export additional methods + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + redefine(IterablePrototype, KEY, methods[KEY]); + } + } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } + + return methods; +}; + + +/***/ }), +/* 201 */ +/*!***************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/iterators-core.js ***! + \***************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ 140); +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 52); +var has = __webpack_require__(/*! ../internals/has */ 54); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 38); +var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ 87); + +var ITERATOR = wellKnownSymbol('iterator'); +var BUGGY_SAFARI_ITERATORS = false; + +var returnThis = function () { return this; }; + +// `%IteratorPrototype%` object +// https://tc39.es/ecma262/#sec-%iteratorprototype%-object +var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; + +if ([].keys) { + arrayIterator = [].keys(); + // Safari 8 has buggy iterators w/o `next` + if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; + } +} + +if (IteratorPrototype == undefined) IteratorPrototype = {}; + +// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() +if (!IS_PURE && !has(IteratorPrototype, ITERATOR)) { + createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis); +} + +module.exports = { + IteratorPrototype: IteratorPrototype, + BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS +}; + + +/***/ }), +/* 202 */ +/*!****************************************************************!*\ + !*** ./node_modules/core-js-pure/modules/es.array.iterator.js ***! + \****************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 81); +var addToUnscopables = __webpack_require__(/*! ../internals/add-to-unscopables */ 223); +var Iterators = __webpack_require__(/*! ../internals/iterators */ 76); +var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ 148); +var defineIterator = __webpack_require__(/*! ../internals/define-iterator */ 200); + +var ARRAY_ITERATOR = 'Array Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); + +// `Array.prototype.entries` method +// https://tc39.es/ecma262/#sec-array.prototype.entries +// `Array.prototype.keys` method +// https://tc39.es/ecma262/#sec-array.prototype.keys +// `Array.prototype.values` method +// https://tc39.es/ecma262/#sec-array.prototype.values +// `Array.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-array.prototype-@@iterator +// `CreateArrayIterator` internal method +// https://tc39.es/ecma262/#sec-createarrayiterator +module.exports = defineIterator(Array, 'Array', function (iterated, kind) { + setInternalState(this, { + type: ARRAY_ITERATOR, + target: toIndexedObject(iterated), // target + index: 0, // next index + kind: kind // kind + }); +// `%ArrayIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next +}, function () { + var state = getInternalState(this); + var target = state.target; + var kind = state.kind; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return { value: undefined, done: true }; + } + if (kind == 'keys') return { value: index, done: false }; + if (kind == 'values') return { value: target[index], done: false }; + return { value: [index, target[index]], done: false }; +}, 'values'); + +// argumentsList[@@iterator] is %ArrayProto_values% +// https://tc39.es/ecma262/#sec-createunmappedargumentsobject +// https://tc39.es/ecma262/#sec-createmappedargumentsobject +Iterators.Arguments = Iterators.Array; + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables('keys'); +addToUnscopables('values'); +addToUnscopables('entries'); + + +/***/ }), +/* 203 */ +/*!********************************************************!*\ + !*** ./node_modules/core-js/internals/regexp-flags.js ***! + \********************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var anObject = __webpack_require__(/*! ../internals/an-object */ 42); + +// `RegExp.prototype.flags` getter implementation +// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags +module.exports = function () { + var that = anObject(this); + var result = ''; + if (that.global) result += 'g'; + if (that.ignoreCase) result += 'i'; + if (that.multiline) result += 'm'; + if (that.dotAll) result += 's'; + if (that.unicode) result += 'u'; + if (that.sticky) result += 'y'; + return result; +}; + + +/***/ }), +/* 204 */ +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/es.string.split.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var fixRegExpWellKnownSymbolLogic = __webpack_require__(/*! ../internals/fix-regexp-well-known-symbol-logic */ 150); +var isRegExp = __webpack_require__(/*! ../internals/is-regexp */ 243); +var anObject = __webpack_require__(/*! ../internals/an-object */ 42); +var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ 56); +var speciesConstructor = __webpack_require__(/*! ../internals/species-constructor */ 237); +var advanceStringIndex = __webpack_require__(/*! ../internals/advance-string-index */ 172); +var toLength = __webpack_require__(/*! ../internals/to-length */ 85); +var callRegExpExec = __webpack_require__(/*! ../internals/regexp-exec-abstract */ 151); +var regexpExec = __webpack_require__(/*! ../internals/regexp-exec */ 163); +var stickyHelpers = __webpack_require__(/*! ../internals/regexp-sticky-helpers */ 224); + +var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y; +var arrayPush = [].push; +var min = Math.min; +var MAX_UINT32 = 0xFFFFFFFF; + +// @@split logic +fixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) { + var internalSplit; + if ( + 'abbc'.split(/(b)*/)[1] == 'c' || + // eslint-disable-next-line regexp/no-empty-group -- required for testing + 'test'.split(/(?:)/, -1).length != 4 || + 'ab'.split(/(?:ab)*/).length != 2 || + '.'.split(/(.?)(.?)/).length != 4 || + // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing + '.'.split(/()()/).length > 1 || + ''.split(/.?/).length + ) { + // based on es5-shim implementation, need to rework it + internalSplit = function (separator, limit) { + var string = String(requireObjectCoercible(this)); + var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; + if (lim === 0) return []; + if (separator === undefined) return [string]; + // If `separator` is not a regex, use native split + if (!isRegExp(separator)) { + return nativeSplit.call(string, separator, lim); + } + var output = []; + var flags = (separator.ignoreCase ? 'i' : '') + + (separator.multiline ? 'm' : '') + + (separator.unicode ? 'u' : '') + + (separator.sticky ? 'y' : ''); + var lastLastIndex = 0; + // Make `global` and avoid `lastIndex` issues by working with a copy + var separatorCopy = new RegExp(separator.source, flags + 'g'); + var match, lastIndex, lastLength; + while (match = regexpExec.call(separatorCopy, string)) { + lastIndex = separatorCopy.lastIndex; + if (lastIndex > lastLastIndex) { + output.push(string.slice(lastLastIndex, match.index)); + if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1)); + lastLength = match[0].length; + lastLastIndex = lastIndex; + if (output.length >= lim) break; + } + if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop + } + if (lastLastIndex === string.length) { + if (lastLength || !separatorCopy.test('')) output.push(''); + } else output.push(string.slice(lastLastIndex)); + return output.length > lim ? output.slice(0, lim) : output; + }; + // Chakra, V8 + } else if ('0'.split(undefined, 0).length) { + internalSplit = function (separator, limit) { + return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit); + }; + } else internalSplit = nativeSplit; + + return [ + // `String.prototype.split` method + // https://tc39.es/ecma262/#sec-string.prototype.split + function split(separator, limit) { + var O = requireObjectCoercible(this); + var splitter = separator == undefined ? undefined : separator[SPLIT]; + return splitter !== undefined + ? splitter.call(separator, O, limit) + : internalSplit.call(String(O), separator, limit); + }, + // `RegExp.prototype[@@split]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@split + // + // NOTE: This cannot be properly polyfilled in engines that don't support + // the 'y' flag. + function (regexp, limit) { + var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit); + if (res.done) return res.value; + + var rx = anObject(regexp); + var S = String(this); + var C = speciesConstructor(rx, RegExp); + + var unicodeMatching = rx.unicode; + var flags = (rx.ignoreCase ? 'i' : '') + + (rx.multiline ? 'm' : '') + + (rx.unicode ? 'u' : '') + + (UNSUPPORTED_Y ? 'g' : 'y'); + + // ^(? + rx + ) is needed, in combination with some S slicing, to + // simulate the 'y' flag. + var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags); + var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; + if (lim === 0) return []; + if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : []; + var p = 0; + var q = 0; + var A = []; + while (q < S.length) { + splitter.lastIndex = UNSUPPORTED_Y ? 0 : q; + var z = callRegExpExec(splitter, UNSUPPORTED_Y ? S.slice(q) : S); + var e; + if ( + z === null || + (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p + ) { + q = advanceStringIndex(S, q, unicodeMatching); + } else { + A.push(S.slice(p, q)); + if (A.length === lim) return A; + for (var i = 1; i <= z.length - 1; i++) { + A.push(z[i]); + if (A.length === lim) return A; + } + q = p = e; + } + } + A.push(S.slice(p)); + return A; + } + ]; +}, UNSUPPORTED_Y); + + +/***/ }), +/* 205 */ +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es.string.link.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $ = __webpack_require__(/*! ../internals/export */ 65); +var createHTML = __webpack_require__(/*! ../internals/create-html */ 326); +var forcedStringHTMLMethod = __webpack_require__(/*! ../internals/string-html-forced */ 327); + +// `String.prototype.link` method +// https://tc39.es/ecma262/#sec-string.prototype.link +$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, { + link: function link(url) { + return createHTML(this, 'a', 'href', url); + } +}); + + +/***/ }), +/* 206 */ +/*!*****************************!*\ + !*** external "window.Jua" ***! + \*****************************/ +/*! no static exports found */ +/*! exports used: default */ +/***/ (function(module, exports) { + +module.exports = window.Jua; + +/***/ }), +/* 207 */ +/*!*************************************!*\ + !*** ./dev/Stores/User/Template.js ***! + \*************************************/ +/*! exports provided: default */ +/*! exports used: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ 48); +/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 17); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_3__); + + + + // import Remote from 'Remote/User/Ajax'; + +var TemplateUserStore = /*#__PURE__*/function () { + function TemplateUserStore() { + this.templates = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observableArray([]); + this.templates.loading = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observable(false).extend({ + throttle: 100 + }); + this.templatesNames = ko__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].observableArray([]).extend({ + throttle: 1000 + }); + this.templatesNames.skipFirst = true; + this.subscribers(); + } + + var _proto = TemplateUserStore.prototype; + + _proto.subscribers = function subscribers() { + var _this = this; + + this.templates.subscribe(function (list) { + _this.templatesNames(___WEBPACK_IMPORTED_MODULE_3___default.a.compact(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_3___default.a).call(___WEBPACK_IMPORTED_MODULE_3___default.a, list, function (item) { + return item ? item.name : null; + }))); + }); // this.templatesNames.subscribe((aList) => { + // if (this.templatesNames.skipFirst) + // { + // this.templatesNames.skipFirst = false; + // } + // else if (aList && 1 < aList.length) + // { + // Remote.templatesSortOrder(null, aList); + // } + // }); + }; + + return TemplateUserStore; +}(); + +/* harmony default export */ __webpack_exports__["a"] = (new TemplateUserStore()); + +/***/ }), +/* 208 */ +/*!*********************************!*\ + !*** ./dev/Model/Attachment.js ***! + \*********************************/ +/*! exports provided: staticFileType, staticIconClass, staticCombinedIconClass, AttachmentModel, default */ +/*! exports used: AttachmentModel, staticCombinedIconClass, staticFileType, staticIconClass */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return staticFileType; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return staticIconClass; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return staticCombinedIconClass; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AttachmentModel; }); +/* unused harmony export default */ +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 17); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ 45); +/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.string.split.js */ 204); +/* harmony import */ var core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ 59); +/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! window */ 4); +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Common/Enums */ 0); +/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Common/Globals */ 6); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Common/Utils */ 2); +/* harmony import */ var Common_Links__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Common/Links */ 15); +/* harmony import */ var Knoin_AbstractModel__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! Knoin/AbstractModel */ 67); +/* harmony import */ var Common_Audio__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! Common/Audio */ 84); + + + + + + + + + + + + + + +/** + * @param {string} sExt + * @param {string} sMimeType + * @returns {string} + */ + +var staticFileType = ___WEBPACK_IMPORTED_MODULE_6___default.a.memoize(function (ext, mimeType) { + ext = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["trim"])(ext).toLowerCase(); + mimeType = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["trim"])(mimeType).toLowerCase(); + var result = Common_Enums__WEBPACK_IMPORTED_MODULE_8__["FileType"].Unknown; + var mimeTypeParts = mimeType.split('/'); + + switch (true) { + case 'image' === mimeTypeParts[0] || -1 < Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["inArray"])(ext, ['png', 'jpg', 'jpeg', 'gif', 'bmp']): + result = Common_Enums__WEBPACK_IMPORTED_MODULE_8__["FileType"].Image; break; case 'audio' === mimeTypeParts[0] || -1 < Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["inArray"])(ext, ['mp3', 'ogg', 'oga', 'wav']): @@ -16828,7 +17299,7 @@ var staticCombinedIconClass = function staticCombinedIconClass(data) { if (Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["isNonEmptyArray"])(data)) { result = 'icon-attachment'; - types = ___WEBPACK_IMPORTED_MODULE_6___default.a.uniq(___WEBPACK_IMPORTED_MODULE_6___default.a.compact(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_4___default()(___WEBPACK_IMPORTED_MODULE_6___default.a).call(___WEBPACK_IMPORTED_MODULE_6___default.a, data, function (item) { + types = ___WEBPACK_IMPORTED_MODULE_6___default.a.uniq(___WEBPACK_IMPORTED_MODULE_6___default.a.compact(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_6___default.a).call(___WEBPACK_IMPORTED_MODULE_6___default.a, data, function (item) { return item ? staticFileType(Object(Common_Utils__WEBPACK_IMPORTED_MODULE_10__["getFileExtension"])(item[0]), item[1]) : ''; }))); @@ -16881,7 +17352,7 @@ var staticCombinedIconClass = function staticCombinedIconClass(data) { }; var AttachmentModel = /*#__PURE__*/function (_AbstractModel) { - Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(AttachmentModel, _AbstractModel); + Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(AttachmentModel, _AbstractModel); function AttachmentModel() { var _this; @@ -17160,7 +17631,7 @@ var AttachmentModel = /*#__PURE__*/function (_AbstractModel) { /***/ }), -/* 180 */ +/* 209 */ /*!***********************************************************!*\ !*** ./node_modules/core-js/internals/native-weak-map.js ***! \***********************************************************/ @@ -17168,8 +17639,8 @@ var AttachmentModel = /*#__PURE__*/function (_AbstractModel) { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var global = __webpack_require__(/*! ../internals/global */ 27); -var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ 94); +var global = __webpack_require__(/*! ../internals/global */ 30); +var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ 130); var WeakMap = global.WeakMap; @@ -17177,7 +17648,7 @@ module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSour /***/ }), -/* 181 */ +/* 210 */ /*!***********************************************************************!*\ !*** ./node_modules/core-js/internals/copy-constructor-properties.js ***! \***********************************************************************/ @@ -17185,10 +17656,10 @@ module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSour /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var has = __webpack_require__(/*! ../internals/has */ 42); -var ownKeys = __webpack_require__(/*! ../internals/own-keys */ 182); -var getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ 91); -var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ 52); +var has = __webpack_require__(/*! ../internals/has */ 44); +var ownKeys = __webpack_require__(/*! ../internals/own-keys */ 211); +var getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ 128); +var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ 66); module.exports = function (target, source) { var keys = ownKeys(source); @@ -17202,7 +17673,7 @@ module.exports = function (target, source) { /***/ }), -/* 182 */ +/* 211 */ /*!****************************************************!*\ !*** ./node_modules/core-js/internals/own-keys.js ***! \****************************************************/ @@ -17210,10 +17681,10 @@ module.exports = function (target, source) { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ 59); -var getOwnPropertyNamesModule = __webpack_require__(/*! ../internals/object-get-own-property-names */ 183); -var getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ 169); -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); +var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ 79); +var getOwnPropertyNamesModule = __webpack_require__(/*! ../internals/object-get-own-property-names */ 212); +var getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ 182); +var anObject = __webpack_require__(/*! ../internals/an-object */ 42); // all object keys, includes non-enumerable and symbols module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { @@ -17224,7 +17695,7 @@ module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { /***/ }), -/* 183 */ +/* 212 */ /*!*************************************************************************!*\ !*** ./node_modules/core-js/internals/object-get-own-property-names.js ***! \*************************************************************************/ @@ -17232,20 +17703,21 @@ module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ 141); -var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ 108); +var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ 156); +var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ 112); var hiddenKeys = enumBugKeys.concat('length', 'prototype'); // `Object.getOwnPropertyNames` method -// https://tc39.github.io/ecma262/#sec-object.getownpropertynames +// https://tc39.es/ecma262/#sec-object.getownpropertynames +// eslint-disable-next-line es/no-object-getownpropertynames -- safe exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { return internalObjectKeys(O, hiddenKeys); }; /***/ }), -/* 184 */ +/* 213 */ /*!*************************************************************!*\ !*** ./node_modules/core-js/internals/to-absolute-index.js ***! \*************************************************************/ @@ -17253,7 +17725,7 @@ exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var toInteger = __webpack_require__(/*! ../internals/to-integer */ 81); +var toInteger = __webpack_require__(/*! ../internals/to-integer */ 80); var max = Math.max; var min = Math.min; @@ -17268,7 +17740,7 @@ module.exports = function (index, length) { /***/ }), -/* 185 */ +/* 214 */ /*!*************************************************************!*\ !*** ./node_modules/core-js/internals/use-symbol-as-uid.js ***! \*************************************************************/ @@ -17276,17 +17748,88 @@ module.exports = function (index, length) { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ 131); +/* eslint-disable es/no-symbol -- required for testing */ +var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ 138); module.exports = NATIVE_SYMBOL - // eslint-disable-next-line no-undef && !Symbol.sham - // eslint-disable-next-line no-undef && typeof Symbol.iterator == 'symbol'; /***/ }), -/* 186 */ +/* 215 */ +/*!*****************************************************************!*\ + !*** ./node_modules/core-js/internals/function-bind-context.js ***! + \*****************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var aFunction = __webpack_require__(/*! ../internals/a-function */ 132); + +// optional / simple context binding +module.exports = function (fn, that, length) { + aFunction(fn); + if (that === undefined) return fn; + switch (length) { + case 0: return function () { + return fn.call(that); + }; + case 1: return function (a) { + return fn.call(that, a); + }; + case 2: return function (a, b) { + return fn.call(that, a, b); + }; + case 3: return function (a, b, c) { + return fn.call(that, a, b, c); + }; + } + return function (/* ...args */) { + return fn.apply(that, arguments); + }; +}; + + +/***/ }), +/* 216 */ +/*!*******************************************************************!*\ + !*** ./node_modules/core-js/internals/object-set-prototype-of.js ***! + \*******************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +/* eslint-disable no-proto -- safe */ +var anObject = __webpack_require__(/*! ../internals/an-object */ 42); +var aPossiblePrototype = __webpack_require__(/*! ../internals/a-possible-prototype */ 245); + +// `Object.setPrototypeOf` method +// https://tc39.es/ecma262/#sec-object.setprototypeof +// Works with __proto__ only. Old v8 can't work with null proto objects. +// eslint-disable-next-line es/no-object-setprototypeof -- safe +module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set; + setter.call(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { /* empty */ } + return function setPrototypeOf(O, proto) { + anObject(O); + aPossiblePrototype(proto); + if (CORRECT_SETTER) setter.call(O, proto); + else O.__proto__ = proto; + return O; + }; +}() : undefined); + + +/***/ }), +/* 217 */ /*!************************************************************!*\ !*** ./node_modules/core-js/internals/object-to-string.js ***! \************************************************************/ @@ -17296,18 +17839,18 @@ module.exports = NATIVE_SYMBOL "use strict"; -var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ 95); -var classof = __webpack_require__(/*! ../internals/classof */ 132); +var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ 100); +var classof = __webpack_require__(/*! ../internals/classof */ 184); // `Object.prototype.toString` method implementation -// https://tc39.github.io/ecma262/#sec-object.prototype.tostring +// https://tc39.es/ecma262/#sec-object.prototype.tostring module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() { return '[object ' + classof(this) + ']'; }; /***/ }), -/* 187 */ +/* 218 */ /*!************************************************************!*\ !*** ./node_modules/core-js/internals/string-multibyte.js ***! \************************************************************/ @@ -17315,7 +17858,7 @@ module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var toInteger = __webpack_require__(/*! ../internals/to-integer */ 81); +var toInteger = __webpack_require__(/*! ../internals/to-integer */ 80); var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ 56); // `String.prototype.{ codePointAt, at }` methods implementation @@ -17336,7 +17879,7 @@ var createMethod = function (CONVERT_TO_STRING) { module.exports = { // `String.prototype.codePointAt` method - // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat + // https://tc39.es/ecma262/#sec-string.prototype.codepointat codeAt: createMethod(false), // `String.prototype.at` method // https://github.com/mathiasbynens/String.prototype.at @@ -17345,7 +17888,53 @@ module.exports = { /***/ }), -/* 188 */ +/* 219 */ +/*!*********************************************************!*\ + !*** ./node_modules/core-js/internals/dom-iterables.js ***! + \*********************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports) { + +// iterable DOM collections +// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods +module.exports = { + CSSRuleList: 0, + CSSStyleDeclaration: 0, + CSSValueList: 0, + ClientRectList: 0, + DOMRectList: 0, + DOMStringList: 0, + DOMTokenList: 1, + DataTransferItemList: 0, + FileList: 0, + HTMLAllCollection: 0, + HTMLCollection: 0, + HTMLFormElement: 0, + HTMLSelectElement: 0, + MediaList: 0, + MimeTypeArray: 0, + NamedNodeMap: 0, + NodeList: 1, + PaintRequestList: 0, + Plugin: 0, + PluginArray: 0, + SVGLengthList: 0, + SVGNumberList: 0, + SVGPathSegList: 0, + SVGPointList: 0, + SVGStringList: 0, + SVGTransformList: 0, + SourceBufferList: 0, + StyleSheetList: 0, + TextTrackCueList: 0, + TextTrackList: 0, + TouchList: 0 +}; + + +/***/ }), +/* 220 */ /*!***********************************************************!*\ !*** ./node_modules/core-js/modules/es.array.iterator.js ***! \***********************************************************/ @@ -17355,26 +17944,26 @@ module.exports = { "use strict"; -var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 72); -var addToUnscopables = __webpack_require__(/*! ../internals/add-to-unscopables */ 219); -var Iterators = __webpack_require__(/*! ../internals/iterators */ 74); -var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ 88); -var defineIterator = __webpack_require__(/*! ../internals/define-iterator */ 220); +var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 73); +var addToUnscopables = __webpack_require__(/*! ../internals/add-to-unscopables */ 235); +var Iterators = __webpack_require__(/*! ../internals/iterators */ 113); +var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ 131); +var defineIterator = __webpack_require__(/*! ../internals/define-iterator */ 238); var ARRAY_ITERATOR = 'Array Iterator'; var setInternalState = InternalStateModule.set; var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); // `Array.prototype.entries` method -// https://tc39.github.io/ecma262/#sec-array.prototype.entries +// https://tc39.es/ecma262/#sec-array.prototype.entries // `Array.prototype.keys` method -// https://tc39.github.io/ecma262/#sec-array.prototype.keys +// https://tc39.es/ecma262/#sec-array.prototype.keys // `Array.prototype.values` method -// https://tc39.github.io/ecma262/#sec-array.prototype.values +// https://tc39.es/ecma262/#sec-array.prototype.values // `Array.prototype[@@iterator]` method -// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator +// https://tc39.es/ecma262/#sec-array.prototype-@@iterator // `CreateArrayIterator` internal method -// https://tc39.github.io/ecma262/#sec-createarrayiterator +// https://tc39.es/ecma262/#sec-createarrayiterator module.exports = defineIterator(Array, 'Array', function (iterated, kind) { setInternalState(this, { type: ARRAY_ITERATOR, @@ -17383,7 +17972,7 @@ module.exports = defineIterator(Array, 'Array', function (iterated, kind) { kind: kind // kind }); // `%ArrayIteratorPrototype%.next` method -// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next +// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next }, function () { var state = getInternalState(this); var target = state.target; @@ -17399,306 +17988,107 @@ module.exports = defineIterator(Array, 'Array', function (iterated, kind) { }, 'values'); // argumentsList[@@iterator] is %ArrayProto_values% -// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject -// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject +// https://tc39.es/ecma262/#sec-createunmappedargumentsobject +// https://tc39.es/ecma262/#sec-createmappedargumentsobject Iterators.Arguments = Iterators.Array; -// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables addToUnscopables('keys'); addToUnscopables('values'); addToUnscopables('entries'); /***/ }), -/* 189 */ -/*!********************************************************!*\ - !*** ./node_modules/core-js/internals/redefine-all.js ***! - \********************************************************/ +/* 221 */ +/*!************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/object-keys.js ***! + \************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var redefine = __webpack_require__(/*! ../internals/redefine */ 53); +var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ 259); +var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ 191); -module.exports = function (target, src, options) { - for (var key in src) redefine(target, key, src[key], options); - return target; +// `Object.keys` method +// https://tc39.es/ecma262/#sec-object.keys +module.exports = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys); }; /***/ }), -/* 190 */ -/*!*******************************************************!*\ - !*** ./node_modules/core-js/internals/set-species.js ***! - \*******************************************************/ +/* 222 */ +/*!******************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/to-absolute-index.js ***! + \******************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; - -var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ 59); -var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ 52); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 47); +var toInteger = __webpack_require__(/*! ../internals/to-integer */ 143); -var SPECIES = wellKnownSymbol('species'); - -module.exports = function (CONSTRUCTOR_NAME) { - var Constructor = getBuiltIn(CONSTRUCTOR_NAME); - var defineProperty = definePropertyModule.f; +var max = Math.max; +var min = Math.min; - if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) { - defineProperty(Constructor, SPECIES, { - configurable: true, - get: function () { return this; } - }); - } +// Helper for a popular repeating case of the spec: +// Let integer be ? ToInteger(index). +// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). +module.exports = function (index, length) { + var integer = toInteger(index); + return integer < 0 ? max(integer + length, 0) : min(integer, length); }; /***/ }), -/* 191 */ -/*!*******************************************************!*\ - !*** ./node_modules/core-js/internals/an-instance.js ***! - \*******************************************************/ +/* 223 */ +/*!*******************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/add-to-unscopables.js ***! + \*******************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports) { -module.exports = function (it, Constructor, name) { - if (!(it instanceof Constructor)) { - throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation'); - } return it; -}; - - -/***/ }), -/* 192 */ -/*!********************************************************************!*\ - !*** ./node_modules/core-js/internals/is-array-iterator-method.js ***! - \********************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); -var Iterators = __webpack_require__(/*! ../internals/iterators */ 74); - -var ITERATOR = wellKnownSymbol('iterator'); -var ArrayPrototype = Array.prototype; - -// check on default Array iterator -module.exports = function (it) { - return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); -}; - - -/***/ }), -/* 193 */ -/*!***************************************************************!*\ - !*** ./node_modules/core-js/internals/get-iterator-method.js ***! - \***************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var classof = __webpack_require__(/*! ../internals/classof */ 132); -var Iterators = __webpack_require__(/*! ../internals/iterators */ 74); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); - -var ITERATOR = wellKnownSymbol('iterator'); - -module.exports = function (it) { - if (it != undefined) return it[ITERATOR] - || it['@@iterator'] - || Iterators[classof(it)]; -}; - - -/***/ }), -/* 194 */ -/*!****************************************************************************!*\ - !*** ./node_modules/core-js/internals/call-with-safe-iteration-closing.js ***! - \****************************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); - -// call something on iterator step with safe closing on error -module.exports = function (iterator, fn, value, ENTRIES) { - try { - return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); - // 7.4.6 IteratorClose(iterator, completion) - } catch (error) { - var returnMethod = iterator['return']; - if (returnMethod !== undefined) anObject(returnMethod.call(iterator)); - throw error; - } -}; - - -/***/ }), -/* 195 */ -/*!**************************************************************************!*\ - !*** ./node_modules/core-js/internals/check-correctness-of-iteration.js ***! - \**************************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); - -var ITERATOR = wellKnownSymbol('iterator'); -var SAFE_CLOSING = false; - -try { - var called = 0; - var iteratorWithReturn = { - next: function () { - return { done: !!called++ }; - }, - 'return': function () { - SAFE_CLOSING = true; - } - }; - iteratorWithReturn[ITERATOR] = function () { - return this; - }; - // eslint-disable-next-line no-throw-literal - Array.from(iteratorWithReturn, function () { throw 2; }); -} catch (error) { /* empty */ } - -module.exports = function (exec, SKIP_CLOSING) { - if (!SKIP_CLOSING && !SAFE_CLOSING) return false; - var ITERATION_SUPPORT = false; - try { - var object = {}; - object[ITERATOR] = function () { - return { - next: function () { - return { done: ITERATION_SUPPORT = true }; - } - }; - }; - exec(object); - } catch (error) { /* empty */ } - return ITERATION_SUPPORT; -}; +module.exports = function () { /* empty */ }; /***/ }), -/* 196 */ -/*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/microtask.js ***! - \*****************************************************/ +/* 224 */ +/*!*****************************************************************!*\ + !*** ./node_modules/core-js/internals/regexp-sticky-helpers.js ***! + \*****************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var global = __webpack_require__(/*! ../internals/global */ 27); -var getOwnPropertyDescriptor = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ 91).f; -var classof = __webpack_require__(/*! ../internals/classof-raw */ 49); -var macrotask = __webpack_require__(/*! ../internals/task */ 133).set; -var IS_IOS = __webpack_require__(/*! ../internals/engine-is-ios */ 134); - -var MutationObserver = global.MutationObserver || global.WebKitMutationObserver; -var process = global.process; -var Promise = global.Promise; -var IS_NODE = classof(process) == 'process'; -// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask` -var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask'); -var queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value; +"use strict"; -var flush, head, last, notify, toggle, node, promise, then; -// modern engines have queueMicrotask method -if (!queueMicrotask) { - flush = function () { - var parent, fn; - if (IS_NODE && (parent = process.domain)) parent.exit(); - while (head) { - fn = head.fn; - head = head.next; - try { - fn(); - } catch (error) { - if (head) notify(); - else last = undefined; - throw error; - } - } last = undefined; - if (parent) parent.enter(); - }; +var fails = __webpack_require__(/*! ./fails */ 37); - // Node.js - if (IS_NODE) { - notify = function () { - process.nextTick(flush); - }; - // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 - } else if (MutationObserver && !IS_IOS) { - toggle = true; - node = document.createTextNode(''); - new MutationObserver(flush).observe(node, { characterData: true }); - notify = function () { - node.data = toggle = !toggle; - }; - // environments with maybe non-completely correct, but existent Promise - } else if (Promise && Promise.resolve) { - // Promise.resolve without an argument throws an error in LG WebOS 2 - promise = Promise.resolve(undefined); - then = promise.then; - notify = function () { - then.call(promise, flush); - }; - // for other environments - macrotask based on: - // - setImmediate - // - MessageChannel - // - window.postMessag - // - onreadystatechange - // - setTimeout - } else { - notify = function () { - // strange IE + webpack dev server bug - use .call(global) - macrotask.call(global, flush); - }; - } +// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError, +// so we use an intermediate function. +function RE(s, f) { + return RegExp(s, f); } -module.exports = queueMicrotask || function (fn) { - var task = { fn: fn, next: undefined }; - if (last) last.next = task; - if (!head) { - head = task; - notify(); - } last = task; -}; - - -/***/ }), -/* 197 */ -/*!**************************************************************!*\ - !*** ./node_modules/core-js/internals/host-report-errors.js ***! - \**************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ../internals/global */ 27); +exports.UNSUPPORTED_Y = fails(function () { + // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError + var re = RE('a', 'y'); + re.lastIndex = 2; + return re.exec('abcd') != null; +}); -module.exports = function (a, b) { - var console = global.console; - if (console && console.error) { - arguments.length === 1 ? console.error(a) : console.error(a, b); - } -}; +exports.BROKEN_CARET = fails(function () { + // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 + var re = RE('^r', 'gy'); + re.lastIndex = 2; + return re.exec('str') != null; +}); /***/ }), -/* 198 */ +/* 225 */ /*!*********************************************************!*\ !*** ./node_modules/core-js/modules/es.string.match.js ***! \*********************************************************/ @@ -17707,25 +18097,25 @@ module.exports = function (a, b) { "use strict"; -var fixRegExpWellKnownSymbolLogic = __webpack_require__(/*! ../internals/fix-regexp-well-known-symbol-logic */ 135); -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); -var toLength = __webpack_require__(/*! ../internals/to-length */ 73); +var fixRegExpWellKnownSymbolLogic = __webpack_require__(/*! ../internals/fix-regexp-well-known-symbol-logic */ 150); +var anObject = __webpack_require__(/*! ../internals/an-object */ 42); +var toLength = __webpack_require__(/*! ../internals/to-length */ 85); var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ 56); -var advanceStringIndex = __webpack_require__(/*! ../internals/advance-string-index */ 154); -var regExpExec = __webpack_require__(/*! ../internals/regexp-exec-abstract */ 136); +var advanceStringIndex = __webpack_require__(/*! ../internals/advance-string-index */ 172); +var regExpExec = __webpack_require__(/*! ../internals/regexp-exec-abstract */ 151); // @@match logic fixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) { return [ // `String.prototype.match` method - // https://tc39.github.io/ecma262/#sec-string.prototype.match + // https://tc39.es/ecma262/#sec-string.prototype.match function match(regexp) { var O = requireObjectCoercible(this); var matcher = regexp == undefined ? undefined : regexp[MATCH]; return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O)); }, // `RegExp.prototype[@@match]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match + // https://tc39.es/ecma262/#sec-regexp.prototype-@@match function (regexp) { var res = maybeCallNative(nativeMatch, regexp, this); if (res.done) return res.value; @@ -17753,203 +18143,7 @@ fixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCal /***/ }), -/* 199 */ -/*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/indexed-object.js ***! - \***************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var fails = __webpack_require__(/*! ../internals/fails */ 55); -var classof = __webpack_require__(/*! ../internals/classof-raw */ 156); - -var split = ''.split; - -// fallback for non-array-like ES3 and non-enumerable old V8 strings -module.exports = fails(function () { - // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 - // eslint-disable-next-line no-prototype-builtins - return !Object('z').propertyIsEnumerable(0); -}) ? function (it) { - return classof(it) == 'String' ? split.call(it, '') : Object(it); -} : Object; - - -/***/ }), -/* 200 */ -/*!*************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/require-object-coercible.js ***! - \*************************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -// `RequireObjectCoercible` abstract operation -// https://tc39.es/ecma262/#sec-requireobjectcoercible -module.exports = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; -}; - - -/***/ }), -/* 201 */ -/*!*************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/to-primitive.js ***! - \*************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(/*! ../internals/is-object */ 77); - -// `ToPrimitive` abstract operation -// https://tc39.es/ecma262/#sec-toprimitive -// instead of the ES6 spec version, we didn't implement @@toPrimitive case -// and the second argument - flag - preferred type is a string -module.exports = function (input, PREFERRED_STRING) { - if (!isObject(input)) return input; - var fn, val; - if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; - if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val; - if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; - throw TypeError("Can't convert object to primitive value"); -}; - - -/***/ }), -/* 202 */ -/*!***********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/to-integer.js ***! - \***********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -var ceil = Math.ceil; -var floor = Math.floor; - -// `ToInteger` abstract operation -// https://tc39.es/ecma262/#sec-tointeger -module.exports = function (argument) { - return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); -}; - - -/***/ }), -/* 203 */ -/*!******************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/engine-v8-version.js ***! - \******************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ../internals/global */ 66); -var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ 296); - -var process = global.process; -var versions = process && process.versions; -var v8 = versions && versions.v8; -var match, version; - -if (v8) { - match = v8.split('.'); - version = match[0] + match[1]; -} else if (userAgent) { - match = userAgent.match(/Edge\/(\d+)/); - if (!match || match[1] >= 74) { - match = userAgent.match(/Chrome\/(\d+)/); - if (match) version = match[1]; - } -} - -module.exports = version && +version; - - -/***/ }), -/* 204 */ -/*!*************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/shared-store.js ***! - \*************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(/*! ../internals/global */ 66); -var setGlobal = __webpack_require__(/*! ../internals/set-global */ 302); - -var SHARED = '__core-js_shared__'; -var store = global[SHARED] || setGlobal(SHARED, {}); - -module.exports = store; - - -/***/ }), -/* 205 */ -/*!***********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/shared-key.js ***! - \***********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var shared = __webpack_require__(/*! ../internals/shared */ 244); -var uid = __webpack_require__(/*! ../internals/uid */ 245); - -var keys = shared('keys'); - -module.exports = function (key) { - return keys[key] || (keys[key] = uid(key)); -}; - - -/***/ }), -/* 206 */ -/*!********************************************************!*\ - !*** ./node_modules/core-js-pure/internals/is-pure.js ***! - \********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = true; - - -/***/ }), -/* 207 */ -/*!************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/hidden-keys.js ***! - \************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { - -module.exports = {}; - - -/***/ }), -/* 208 */ -/*!**********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/to-string-tag-support.js ***! - \**********************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 69); - -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -var test = {}; - -test[TO_STRING_TAG] = 'z'; - -module.exports = String(test) === '[object z]'; - - -/***/ }), -/* 209 */ +/* 226 */ /*!***********************************!*\ !*** ./dev/Component/Checkbox.js ***! \***********************************/ @@ -17960,8 +18154,8 @@ module.exports = String(test) === '[object z]'; "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); -/* harmony import */ var Component_Abstract__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Component/Abstract */ 35); -/* harmony import */ var Component_AbstractCheckbox__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Component/AbstractCheckbox */ 165); +/* harmony import */ var Component_Abstract__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Component/Abstract */ 32); +/* harmony import */ var Component_AbstractCheckbox__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Component/AbstractCheckbox */ 178); @@ -17979,7 +18173,7 @@ var CheckboxComponent = /*#__PURE__*/function (_AbstractCheckbox) { /* harmony default export */ __webpack_exports__["default"] = (Object(Component_Abstract__WEBPACK_IMPORTED_MODULE_1__[/* componentExportHelper */ "b"])(CheckboxComponent, 'CheckboxComponent')); /***/ }), -/* 210 */ +/* 227 */ /*!**********************************!*\ !*** ./dev/Common/HtmlEditor.js ***! \**********************************/ @@ -17991,28 +18185,23 @@ var CheckboxComponent = /*#__PURE__*/function (_AbstractCheckbox) { __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HtmlEditor", function() { return HtmlEditor; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return HtmlEditor; }); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec */ 45); -/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.match */ 198); -/* harmony import */ var core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.string.replace */ 57); -/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/web.timers */ 68); -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/bind */ 26); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/defineProperty */ 17); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! $ */ 8); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Common/Globals */ 6); -/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Storage/Settings */ 5); - - +/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ 45); +/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ 59); +/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.string.match.js */ 225); +/* harmony import */ var core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_match_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/set-timeout */ 33); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! window */ 4); +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! $ */ 8); +/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Common/Globals */ 6); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Common/Enums */ 0); +/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Storage/Settings */ 5); @@ -18044,32 +18233,22 @@ var HtmlEditor = /*#__PURE__*/function () { onModeChange = null; } - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this, "editor", void 0); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this, "blurTimer", 0); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this, "__resizable", false); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this, "__inited", false); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this, "onBlur", null); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this, "onReady", null); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this, "onModeChange", null); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this, "element", void 0); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this, "$element", void 0); - - Object(_babel_runtime_corejs3_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(this, "resize", void 0); - + this.editor = void 0; + this.blurTimer = 0; + this.__resizable = false; + this.__inited = false; + this.onBlur = null; + this.onReady = null; + this.onModeChange = null; + this.element = void 0; + this.$element = void 0; + this.resize = void 0; this.onBlur = onBlur; this.onReady = onReady; this.onModeChange = onModeChange; this.element = element; - this.$element = $__WEBPACK_IMPORTED_MODULE_8___default()(element); - this.resize = ___WEBPACK_IMPORTED_MODULE_7___default.a.throttle(_babel_runtime_corejs3_core_js_stable_instance_bind__WEBPACK_IMPORTED_MODULE_4___default()(___WEBPACK_IMPORTED_MODULE_7___default.a).call(___WEBPACK_IMPORTED_MODULE_7___default.a, this.resizeEditor, this), 100); + this.$element = $__WEBPACK_IMPORTED_MODULE_6___default()(element); + this.resize = ___WEBPACK_IMPORTED_MODULE_5___default.a.throttle(___WEBPACK_IMPORTED_MODULE_5___default.a.bind(this.resizeEditor, this), 100); this.init(); } @@ -18085,16 +18264,16 @@ var HtmlEditor = /*#__PURE__*/function () { var _this = this; if (this.onBlur) { - window__WEBPACK_IMPORTED_MODULE_6___default.a.clearTimeout(this.blurTimer); - this.blurTimer = window__WEBPACK_IMPORTED_MODULE_6___default.a.setTimeout(function () { + window__WEBPACK_IMPORTED_MODULE_4___default.a.clearTimeout(this.blurTimer); + this.blurTimer = _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_3___default()(function () { _this.runOnBlur(); - }, Common_Enums__WEBPACK_IMPORTED_MODULE_10__["Magics"].Time200ms); + }, Common_Enums__WEBPACK_IMPORTED_MODULE_8__["Magics"].Time200ms); } }; _proto.focusTrigger = function focusTrigger() { if (this.onBlur) { - window__WEBPACK_IMPORTED_MODULE_6___default.a.clearTimeout(this.blurTimer); + window__WEBPACK_IMPORTED_MODULE_4___default.a.clearTimeout(this.blurTimer); } } /** @@ -18270,10 +18449,10 @@ var HtmlEditor = /*#__PURE__*/function () { if (this.element && !this.editor) { var initFunc = function initFunc() { - var config = Common_Globals__WEBPACK_IMPORTED_MODULE_9__["htmlEditorDefaultConfig"], - language = Storage_Settings__WEBPACK_IMPORTED_MODULE_11__["settingsGet"]('Language'), - allowSource = !!Storage_Settings__WEBPACK_IMPORTED_MODULE_11__["appSettingsGet"]('allowHtmlEditorSourceButton'), - biti = !!Storage_Settings__WEBPACK_IMPORTED_MODULE_11__["appSettingsGet"]('allowHtmlEditorBitiButtons'); + var config = Common_Globals__WEBPACK_IMPORTED_MODULE_7__["htmlEditorDefaultConfig"], + language = Storage_Settings__WEBPACK_IMPORTED_MODULE_9__["settingsGet"]('Language'), + allowSource = !!Storage_Settings__WEBPACK_IMPORTED_MODULE_9__["appSettingsGet"]('allowHtmlEditorSourceButton'), + biti = !!Storage_Settings__WEBPACK_IMPORTED_MODULE_9__["appSettingsGet"]('allowHtmlEditorBitiButtons'); if ((allowSource || !biti) && !config.toolbarGroups.__cfgInited) { config.toolbarGroups.__cfgInited = true; @@ -18287,18 +18466,18 @@ var HtmlEditor = /*#__PURE__*/function () { } } - config.enterMode = window__WEBPACK_IMPORTED_MODULE_6___default.a.CKEDITOR.ENTER_BR; - config.shiftEnterMode = window__WEBPACK_IMPORTED_MODULE_6___default.a.CKEDITOR.ENTER_P; - config.language = Common_Globals__WEBPACK_IMPORTED_MODULE_9__["htmlEditorLangsMap"][(language || 'en').toLowerCase()] || 'en'; + config.enterMode = window__WEBPACK_IMPORTED_MODULE_4___default.a.CKEDITOR.ENTER_BR; + config.shiftEnterMode = window__WEBPACK_IMPORTED_MODULE_4___default.a.CKEDITOR.ENTER_P; + config.language = Common_Globals__WEBPACK_IMPORTED_MODULE_7__["htmlEditorLangsMap"][(language || 'en').toLowerCase()] || 'en'; - if (window__WEBPACK_IMPORTED_MODULE_6___default.a.CKEDITOR.env) { - window__WEBPACK_IMPORTED_MODULE_6___default.a.CKEDITOR.env.isCompatible = true; + if (window__WEBPACK_IMPORTED_MODULE_4___default.a.CKEDITOR.env) { + window__WEBPACK_IMPORTED_MODULE_4___default.a.CKEDITOR.env.isCompatible = true; } - _this2.editor = window__WEBPACK_IMPORTED_MODULE_6___default.a.CKEDITOR.appendTo(_this2.element, config); + _this2.editor = window__WEBPACK_IMPORTED_MODULE_4___default.a.CKEDITOR.appendTo(_this2.element, config); _this2.editor.on('key', function (event) { - if (event && event.data && Common_Enums__WEBPACK_IMPORTED_MODULE_10__["EventKeyCode"].Tab === event.data.keyCode) { + if (event && event.data && Common_Enums__WEBPACK_IMPORTED_MODULE_8__["EventKeyCode"].Tab === event.data.keyCode) { return false; } @@ -18321,15 +18500,15 @@ var HtmlEditor = /*#__PURE__*/function () { _this2.focusTrigger(); }); - if (window__WEBPACK_IMPORTED_MODULE_6___default.a.FileReader) { + if (window__WEBPACK_IMPORTED_MODULE_4___default.a.FileReader) { _this2.editor.on('drop', function (event) { if (0 < event.data.dataTransfer.getFilesCount()) { var file = event.data.dataTransfer.getFile(0); - if (file && window__WEBPACK_IMPORTED_MODULE_6___default.a.FileReader && event.data.dataTransfer.id && file.type && file.type.match(/^image/i)) { + if (file && window__WEBPACK_IMPORTED_MODULE_4___default.a.FileReader && event.data.dataTransfer.id && file.type && file.type.match(/^image/i)) { var id = event.data.dataTransfer.id, imageId = "[img=" + id + "]", - reader = new window__WEBPACK_IMPORTED_MODULE_6___default.a.FileReader(); + reader = new window__WEBPACK_IMPORTED_MODULE_4___default.a.FileReader(); reader.onloadend = function () { if (reader.result) { @@ -18364,10 +18543,10 @@ var HtmlEditor = /*#__PURE__*/function () { }); }; - if (window__WEBPACK_IMPORTED_MODULE_6___default.a.CKEDITOR) { + if (window__WEBPACK_IMPORTED_MODULE_4___default.a.CKEDITOR) { initFunc(); } else { - window__WEBPACK_IMPORTED_MODULE_6___default.a.__initEditor = initFunc; + window__WEBPACK_IMPORTED_MODULE_4___default.a.__initEditor = initFunc; } } }; @@ -18429,7 +18608,7 @@ var HtmlEditor = /*#__PURE__*/function () { /***/ }), -/* 211 */ +/* 228 */ /*!*******************************************************************************!*\ !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/reduce.js ***! \*******************************************************************************/ @@ -18437,21 +18616,10 @@ var HtmlEditor = /*#__PURE__*/function () { /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! core-js-pure/stable/instance/reduce */ 290); - -/***/ }), -/* 212 */ -/*!**************************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js-stable/instance/last-index-of.js ***! - \**************************************************************************************/ -/*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(/*! core-js-pure/stable/instance/last-index-of */ 329); +module.exports = __webpack_require__(/*! core-js-pure/stable/instance/reduce */ 345); /***/ }), -/* 213 */ +/* 229 */ /*!*********************************!*\ !*** ./dev/External/Opentip.js ***! \*********************************/ @@ -18497,7 +18665,7 @@ Opentip.styles.rainloopErrorTip = { /***/ }), -/* 214 */ +/* 230 */ /*!*****************************************!*\ !*** ./node_modules/pikaday/pikaday.js ***! \*****************************************/ @@ -18519,7 +18687,7 @@ Opentip.styles.rainloopErrorTip = { if (true) { // CommonJS module // Load moment.js as an optional dependency - try { moment = __webpack_require__(/*! moment */ 98); } catch (e) {} + try { moment = __webpack_require__(/*! moment */ 101); } catch (e) {} module.exports = factory(moment); } else {} }(this, function (moment) @@ -18595,8 +18763,8 @@ Opentip.styles.rainloopErrorTip = { isLeapYear = function(year) { - // solution by Matti Virkkunen: http://stackoverflow.com/a/4881951 - return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0; + // solution lifted from date.js (MIT license): https://github.com/datejs/Datejs + return ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0); }, getDaysInMonth = function(year, month) @@ -18679,7 +18847,7 @@ Opentip.styles.rainloopErrorTip = { // automatically show/hide the picker on `field` focus (default `true` if `field` is set) bound: undefined, - // data-attribute on the input field with an aria assistance tekst (only applied when `bound` is set) + // data-attribute on the input field with an aria assistance text (only applied when `bound` is set) ariaLabel: 'Use the arrow keys to pick a date', // position of the datepicker, relative to the field (default to bottom & left) @@ -18708,6 +18876,10 @@ Opentip.styles.rainloopErrorTip = { // first day of week (0: Sunday, 1: Monday etc) firstDay: 0, + // minimum number of days in the week that gets week number one + // default ISO 8601, week 01 is the week with the first Thursday (4) + firstWeekOfYearMinDays: 4, + // the default flag for moment's strict date parsing formatStrict: false, @@ -18845,11 +19017,35 @@ Opentip.styles.rainloopErrorTip = { ''; }, - renderWeek = function (d, m, y) { - // Lifted from http://javascript.about.com/library/blweekyear.htm, lightly modified. - var onejan = new Date(y, 0, 1), - weekNum = Math.ceil((((new Date(y, m, d) - onejan) / 86400000) + onejan.getDay()+1)/7); - return '' + weekNum + ''; + isoWeek = function(date, firstWeekOfYearMinDays) { + // Ensure we're at the start of the day. + date.setHours(0, 0, 0, 0); + + // Thursday in current week decides the year because January 4th + // is always in the first week according to ISO8601. + var yearDay = date.getDate(), + weekDay = date.getDay(), + dayInFirstWeek = firstWeekOfYearMinDays, + dayShift = dayInFirstWeek - 1, // counting starts at 0 + daysPerWeek = 7, + prevWeekDay = function(day) { return (day + daysPerWeek - 1) % daysPerWeek; }; + + // Adjust to Thursday in week 1 and count number of weeks from date to week 1. + date.setDate(yearDay + dayShift - prevWeekDay(weekDay)); + + var jan4th = new Date(date.getFullYear(), 0, dayInFirstWeek), + msPerDay = 24 * 60 * 60 * 1000, + daysBetween = (date.getTime() - jan4th.getTime()) / msPerDay, + weekNum = 1 + Math.round((daysBetween - dayShift + prevWeekDay(jan4th.getDay())) / daysPerWeek); + + return weekNum; + }, + + renderWeek = function (d, m, y, firstWeekOfYearMinDays) { + var date = new Date(y, m, d), + week = hasMoment ? moment(date).isoWeek() : isoWeek(date, firstWeekOfYearMinDays); + + return '' + week + ''; }, renderRow = function(days, isRTL, pickWholeWeek, isRowSelected) @@ -18889,7 +19085,7 @@ Opentip.styles.rainloopErrorTip = { for (arr = [], i = 0; i < 12; i++) { arr.push(''); } @@ -19020,7 +19216,6 @@ Opentip.styles.rainloopErrorTip = { } break; case 37: - e.preventDefault(); self.adjustDate('subtract', 1); break; case 38: @@ -19032,10 +19227,26 @@ Opentip.styles.rainloopErrorTip = { case 40: self.adjustDate('add', 7); break; + case 8: + case 46: + self.setDate(null); + break; } } }; + self._parseFieldValue = function() + { + if (opts.parse) { + return opts.parse(opts.field.value, opts.format); + } else if (hasMoment) { + var date = moment(opts.field.value, opts.format, opts.formatStrict); + return (date && date.isValid()) ? date.toDate() : null; + } else { + return new Date(Date.parse(opts.field.value)); + } + }; + self._onInputChange = function(e) { var date; @@ -19043,15 +19254,7 @@ Opentip.styles.rainloopErrorTip = { if (e.firedBy === self) { return; } - if (opts.parse) { - date = opts.parse(opts.field.value, opts.format); - } else if (hasMoment) { - date = moment(opts.field.value, opts.format, opts.formatStrict); - date = (date && date.isValid()) ? date.toDate() : null; - } - else { - date = new Date(Date.parse(opts.field.value)); - } + date = self._parseFieldValue(); if (isDate(date)) { self.setDate(date); } @@ -19136,11 +19339,7 @@ Opentip.styles.rainloopErrorTip = { addEvent(opts.field, 'change', self._onInputChange); if (!opts.defaultDate) { - if (hasMoment && opts.field.value) { - opts.defaultDate = moment(opts.field.value, opts.format).toDate(); - } else { - opts.defaultDate = new Date(Date.parse(opts.field.value)); - } + opts.defaultDate = self._parseFieldValue(); opts.setDefaultDate = true; } } @@ -19321,6 +19520,14 @@ Opentip.styles.rainloopErrorTip = { } }, + /** + * clear and reset the date + */ + clear: function() + { + this.setDate(null); + }, + /** * change view to a specific date */ @@ -19500,9 +19707,8 @@ Opentip.styles.rainloopErrorTip = { } } - randId = 'pika-title-' + Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 2); - for (var c = 0; c < opts.numberOfMonths; c++) { + randId = 'pika-title-' + Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 2); html += '
' + renderTitle(this, c, this.calendars[c].year, this.calendars[c].month, this.calendars[0].year, randId) + this.render(this.calendars[c].year, this.calendars[c].month, randId) + '
'; } @@ -19670,7 +19876,7 @@ Opentip.styles.rainloopErrorTip = { if (++r === 7) { if (opts.showWeekNumber) { - row.unshift(renderWeek(i - before, month, year)); + row.unshift(renderWeek(i - before, month, year, opts.firstWeekOfYearMinDays)); } data.push(renderRow(row, opts.isRTL, opts.pickWholeWeek, isWeekSelected)); row = []; @@ -19709,9 +19915,12 @@ Opentip.styles.rainloopErrorTip = { if (this._o.bound) { removeEvent(document, 'click', this._onClick); } - this.el.style.position = 'static'; // reset - this.el.style.left = 'auto'; - this.el.style.top = 'auto'; + + if (!this._o.container) { + this.el.style.position = 'static'; // reset + this.el.style.left = 'auto'; + this.el.style.top = 'auto'; + } addClass(this.el, 'is-hidden'); this._v = false; if (v !== undefined && typeof this._o.onClose === 'function') { @@ -19754,7 +19963,7 @@ Opentip.styles.rainloopErrorTip = { /***/ }), -/* 215 */ +/* 231 */ /*!************************************!*\ !*** external "window.Autolinker" ***! \************************************/ @@ -19765,7 +19974,7 @@ Opentip.styles.rainloopErrorTip = { module.exports = window.Autolinker; /***/ }), -/* 216 */ +/* 232 */ /*!****************************!*\ !*** ./dev/Common/Mime.js ***! \****************************/ @@ -19933,7 +20142,7 @@ var Mime = { /***/ }), -/* 217 */ +/* 233 */ /*!***********************************!*\ !*** ./dev/Stores/User/Filter.js ***! \***********************************/ @@ -19963,7 +20172,7 @@ var FilterUserStore = function FilterUserStore() { /* harmony default export */ __webpack_exports__["a"] = (new FilterUserStore()); /***/ }), -/* 218 */ +/* 234 */ /*!*******************************************************!*\ !*** ./node_modules/core-js/internals/object-keys.js ***! \*******************************************************/ @@ -19971,18 +20180,19 @@ var FilterUserStore = function FilterUserStore() { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ 141); -var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ 108); +var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ 156); +var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ 112); // `Object.keys` method -// https://tc39.github.io/ecma262/#sec-object.keys +// https://tc39.es/ecma262/#sec-object.keys +// eslint-disable-next-line es/no-object-keys -- safe module.exports = Object.keys || function keys(O) { return internalObjectKeys(O, enumBugKeys); }; /***/ }), -/* 219 */ +/* 235 */ /*!**************************************************************!*\ !*** ./node_modules/core-js/internals/add-to-unscopables.js ***! \**************************************************************/ @@ -19990,15 +20200,15 @@ module.exports = Object.keys || function keys(O) { /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); -var create = __webpack_require__(/*! ../internals/object-create */ 151); -var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ 52); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 39); +var create = __webpack_require__(/*! ../internals/object-create */ 168); +var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ 66); var UNSCOPABLES = wellKnownSymbol('unscopables'); var ArrayPrototype = Array.prototype; // Array.prototype[@@unscopables] -// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables if (ArrayPrototype[UNSCOPABLES] == undefined) { definePropertyModule.f(ArrayPrototype, UNSCOPABLES, { configurable: true, @@ -20013,7 +20223,45 @@ module.exports = function (key) { /***/ }), -/* 220 */ +/* 236 */ +/*!************************************************!*\ + !*** ./node_modules/core-js/internals/html.js ***! + \************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ 79); + +module.exports = getBuiltIn('document', 'documentElement'); + + +/***/ }), +/* 237 */ +/*!***************************************************************!*\ + !*** ./node_modules/core-js/internals/species-constructor.js ***! + \***************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var anObject = __webpack_require__(/*! ../internals/an-object */ 42); +var aFunction = __webpack_require__(/*! ../internals/a-function */ 132); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 39); + +var SPECIES = wellKnownSymbol('species'); + +// `SpeciesConstructor` abstract operation +// https://tc39.es/ecma262/#sec-speciesconstructor +module.exports = function (O, defaultConstructor) { + var C = anObject(O).constructor; + var S; + return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S); +}; + + +/***/ }), +/* 238 */ /*!***********************************************************!*\ !*** ./node_modules/core-js/internals/define-iterator.js ***! \***********************************************************/ @@ -20023,17 +20271,17 @@ module.exports = function (key) { "use strict"; -var $ = __webpack_require__(/*! ../internals/export */ 50); -var createIteratorConstructor = __webpack_require__(/*! ../internals/create-iterator-constructor */ 230); -var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ 152); -var setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ 221); -var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ 109); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 48); -var redefine = __webpack_require__(/*! ../internals/redefine */ 53); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); -var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ 80); -var Iterators = __webpack_require__(/*! ../internals/iterators */ 74); -var IteratorsCore = __webpack_require__(/*! ../internals/iterators-core */ 170); +var $ = __webpack_require__(/*! ../internals/export */ 65); +var createIteratorConstructor = __webpack_require__(/*! ../internals/create-iterator-constructor */ 247); +var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ 169); +var setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ 216); +var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ 170); +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 47); +var redefine = __webpack_require__(/*! ../internals/redefine */ 69); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 39); +var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ 99); +var Iterators = __webpack_require__(/*! ../internals/iterators */ 113); +var IteratorsCore = __webpack_require__(/*! ../internals/iterators-core */ 185); var IteratorPrototype = IteratorsCore.IteratorPrototype; var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; @@ -20115,136 +20363,7 @@ module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, I /***/ }), -/* 221 */ -/*!*******************************************************************!*\ - !*** ./node_modules/core-js/internals/object-set-prototype-of.js ***! - \*******************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); -var aPossiblePrototype = __webpack_require__(/*! ../internals/a-possible-prototype */ 232); - -// `Object.setPrototypeOf` method -// https://tc39.github.io/ecma262/#sec-object.setprototypeof -// Works with __proto__ only. Old v8 can't work with null proto objects. -/* eslint-disable no-proto */ -module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () { - var CORRECT_SETTER = false; - var test = {}; - var setter; - try { - setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set; - setter.call(test, []); - CORRECT_SETTER = test instanceof Array; - } catch (error) { /* empty */ } - return function setPrototypeOf(O, proto) { - anObject(O); - aPossiblePrototype(proto); - if (CORRECT_SETTER) setter.call(O, proto); - else O.__proto__ = proto; - return O; - }; -}() : undefined); - - -/***/ }), -/* 222 */ -/*!***************************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/web.dom-collections.iterator.js ***! - \***************************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(/*! ./es.array.iterator */ 223); -var DOMIterables = __webpack_require__(/*! ../internals/dom-iterables */ 314); -var global = __webpack_require__(/*! ../internals/global */ 66); -var classof = __webpack_require__(/*! ../internals/classof */ 147); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 84); -var Iterators = __webpack_require__(/*! ../internals/iterators */ 158); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 69); - -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); - -for (var COLLECTION_NAME in DOMIterables) { - var Collection = global[COLLECTION_NAME]; - var CollectionPrototype = Collection && Collection.prototype; - if (CollectionPrototype && classof(CollectionPrototype) !== TO_STRING_TAG) { - createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME); - } - Iterators[COLLECTION_NAME] = Iterators.Array; -} - - -/***/ }), -/* 223 */ -/*!****************************************************************!*\ - !*** ./node_modules/core-js-pure/modules/es.array.iterator.js ***! - \****************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 96); -var addToUnscopables = __webpack_require__(/*! ../internals/add-to-unscopables */ 243); -var Iterators = __webpack_require__(/*! ../internals/iterators */ 158); -var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ 299); -var defineIterator = __webpack_require__(/*! ../internals/define-iterator */ 303); - -var ARRAY_ITERATOR = 'Array Iterator'; -var setInternalState = InternalStateModule.set; -var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); - -// `Array.prototype.entries` method -// https://tc39.es/ecma262/#sec-array.prototype.entries -// `Array.prototype.keys` method -// https://tc39.es/ecma262/#sec-array.prototype.keys -// `Array.prototype.values` method -// https://tc39.es/ecma262/#sec-array.prototype.values -// `Array.prototype[@@iterator]` method -// https://tc39.es/ecma262/#sec-array.prototype-@@iterator -// `CreateArrayIterator` internal method -// https://tc39.es/ecma262/#sec-createarrayiterator -module.exports = defineIterator(Array, 'Array', function (iterated, kind) { - setInternalState(this, { - type: ARRAY_ITERATOR, - target: toIndexedObject(iterated), // target - index: 0, // next index - kind: kind // kind - }); -// `%ArrayIteratorPrototype%.next` method -// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next -}, function () { - var state = getInternalState(this); - var target = state.target; - var kind = state.kind; - var index = state.index++; - if (!target || index >= target.length) { - state.target = undefined; - return { value: undefined, done: true }; - } - if (kind == 'keys') return { value: index, done: false }; - if (kind == 'values') return { value: target[index], done: false }; - return { value: [index, target[index]], done: false }; -}, 'values'); - -// argumentsList[@@iterator] is %ArrayProto_values% -// https://tc39.es/ecma262/#sec-createunmappedargumentsobject -// https://tc39.es/ecma262/#sec-createmappedargumentsobject -Iterators.Arguments = Iterators.Array; - -// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables -addToUnscopables('keys'); -addToUnscopables('values'); -addToUnscopables('entries'); - - -/***/ }), -/* 224 */ +/* 239 */ /*!*******************************!*\ !*** ./dev/View/Popup/Ask.js ***! \*******************************/ @@ -20258,13 +20377,13 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return AskPopupView; }); /* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); /* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! key */ 21); +/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! key */ 20); /* harmony import */ var key__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(key__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/Enums */ 0); /* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Utils */ 2); /* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Translator */ 9); /* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Knoin/Knoin */ 7); -/* harmony import */ var Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Knoin/AbstractViewNext */ 28); +/* harmony import */ var Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Knoin/AbstractViewNext */ 25); var _dec, _class; @@ -20404,7 +20523,7 @@ var AskPopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_6__["popu /***/ }), -/* 225 */ +/* 240 */ /*!**********************************!*\ !*** ./dev/Stores/User/Quota.js ***! \**********************************/ @@ -20440,45 +20559,386 @@ var QuotaUserStore = /*#__PURE__*/function () { */ - var _proto = QuotaUserStore.prototype; + var _proto = QuotaUserStore.prototype; + + _proto.populateData = function populateData(quota, usage) { + this.quota(quota * Common_Enums__WEBPACK_IMPORTED_MODULE_2__["Magics"].BitLength1024); + this.usage(usage * Common_Enums__WEBPACK_IMPORTED_MODULE_2__["Magics"].BitLength1024); + }; + + return QuotaUserStore; +}(); + +/* harmony default export */ __webpack_exports__["a"] = (new QuotaUserStore()); + +/***/ }), +/* 241 */ +/*!***********************************!*\ + !*** external "window.ifvisible" ***! + \***********************************/ +/*! no static exports found */ +/*! exports used: default */ +/***/ (function(module, exports) { + +module.exports = window.ifvisible; + +/***/ }), +/* 242 */ +/*!********************************************************************!*\ + !*** ./node_modules/core-js/internals/object-define-properties.js ***! + \********************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 55); +var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ 66); +var anObject = __webpack_require__(/*! ../internals/an-object */ 42); +var objectKeys = __webpack_require__(/*! ../internals/object-keys */ 234); + +// `Object.defineProperties` method +// https://tc39.es/ecma262/#sec-object.defineproperties +// eslint-disable-next-line es/no-object-defineproperties -- safe +module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var keys = objectKeys(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]); + return O; +}; + + +/***/ }), +/* 243 */ +/*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/is-regexp.js ***! + \*****************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(/*! ../internals/is-object */ 49); +var classof = __webpack_require__(/*! ../internals/classof-raw */ 74); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 39); + +var MATCH = wellKnownSymbol('match'); + +// `IsRegExp` abstract operation +// https://tc39.es/ecma262/#sec-isregexp +module.exports = function (it) { + var isRegExp; + return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp'); +}; + + +/***/ }), +/* 244 */ +/*!********************************************************************!*\ + !*** ./node_modules/core-js/internals/correct-prototype-getter.js ***! + \********************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var fails = __webpack_require__(/*! ../internals/fails */ 37); + +module.exports = !fails(function () { + function F() { /* empty */ } + F.prototype.constructor = null; + // eslint-disable-next-line es/no-object-getprototypeof -- required for testing + return Object.getPrototypeOf(new F()) !== F.prototype; +}); + + +/***/ }), +/* 245 */ +/*!****************************************************************!*\ + !*** ./node_modules/core-js/internals/a-possible-prototype.js ***! + \****************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(/*! ../internals/is-object */ 49); + +module.exports = function (it) { + if (!isObject(it) && it !== null) { + throw TypeError("Can't set " + String(it) + ' as a prototype'); + } return it; +}; + + +/***/ }), +/* 246 */, +/* 247 */ +/*!***********************************************************************!*\ + !*** ./node_modules/core-js/internals/create-iterator-constructor.js ***! + \***********************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var IteratorPrototype = __webpack_require__(/*! ../internals/iterators-core */ 185).IteratorPrototype; +var create = __webpack_require__(/*! ../internals/object-create */ 168); +var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ 96); +var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ 170); +var Iterators = __webpack_require__(/*! ../internals/iterators */ 113); + +var returnThis = function () { return this; }; + +module.exports = function (IteratorConstructor, NAME, next) { + var TO_STRING_TAG = NAME + ' Iterator'; + IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) }); + setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); + Iterators[TO_STRING_TAG] = returnThis; + return IteratorConstructor; +}; + + +/***/ }), +/* 248 */ +/*!**********************************************************************!*\ + !*** ./node_modules/core-js/modules/web.dom-collections.iterator.js ***! + \**********************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(/*! ../internals/global */ 30); +var DOMIterables = __webpack_require__(/*! ../internals/dom-iterables */ 219); +var ArrayIteratorMethods = __webpack_require__(/*! ../modules/es.array.iterator */ 220); +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 47); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 39); + +var ITERATOR = wellKnownSymbol('iterator'); +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var ArrayValues = ArrayIteratorMethods.values; + +for (var COLLECTION_NAME in DOMIterables) { + var Collection = global[COLLECTION_NAME]; + var CollectionPrototype = Collection && Collection.prototype; + if (CollectionPrototype) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[ITERATOR] !== ArrayValues) try { + createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues); + } catch (error) { + CollectionPrototype[ITERATOR] = ArrayValues; + } + if (!CollectionPrototype[TO_STRING_TAG]) { + createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME); + } + if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { + // some Chrome versions have non-configurable methods on DOMTokenList + if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { + createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); + } catch (error) { + CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; + } + } + } +} + + +/***/ }), +/* 249 */ +/*!*********************************************************!*\ + !*** ./node_modules/core-js-pure/stable/set-timeout.js ***! + \*********************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(/*! ../modules/web.timers */ 186); +var path = __webpack_require__(/*! ../internals/path */ 51); + +module.exports = path.setTimeout; + + +/***/ }), +/* 250 */ +/*!******************************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/object-property-is-enumerable.js ***! + \******************************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var nativePropertyIsEnumerable = {}.propertyIsEnumerable; +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// Nashorn ~ JDK8 bug +var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1); + +// `Object.prototype.propertyIsEnumerable` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable +exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor(this, V); + return !!descriptor && descriptor.enumerable; +} : nativePropertyIsEnumerable; + + +/***/ }), +/* 251 */, +/* 252 */ +/*!***********************************************************!*\ + !*** ./node_modules/core-js-pure/stable/promise/index.js ***! + \***********************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var parent = __webpack_require__(/*! ../../es/promise */ 253); + +module.exports = parent; + + +/***/ }), +/* 253 */ +/*!*******************************************************!*\ + !*** ./node_modules/core-js-pure/es/promise/index.js ***! + \*******************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(/*! ../../modules/es.aggregate-error */ 254); +__webpack_require__(/*! ../../modules/es.object.to-string */ 265); +__webpack_require__(/*! ../../modules/es.promise */ 266); +__webpack_require__(/*! ../../modules/es.promise.all-settled */ 276); +__webpack_require__(/*! ../../modules/es.promise.any */ 277); +__webpack_require__(/*! ../../modules/es.promise.finally */ 278); +__webpack_require__(/*! ../../modules/es.string.iterator */ 279); +__webpack_require__(/*! ../../modules/web.dom-collections.iterator */ 162); +var path = __webpack_require__(/*! ../../internals/path */ 51); + +module.exports = path.Promise; + + +/***/ }), +/* 254 */ +/*!*****************************************************************!*\ + !*** ./node_modules/core-js-pure/modules/es.aggregate-error.js ***! + \*****************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $ = __webpack_require__(/*! ../internals/export */ 34); +var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ 140); +var setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ 160); +var create = __webpack_require__(/*! ../internals/object-create */ 161); +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 52); +var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ 91); +var iterate = __webpack_require__(/*! ../internals/iterate */ 108); + +var $AggregateError = function AggregateError(errors, message) { + var that = this; + if (!(that instanceof $AggregateError)) return new $AggregateError(errors, message); + if (setPrototypeOf) { + // eslint-disable-next-line unicorn/error-message + that = setPrototypeOf(new Error(undefined), getPrototypeOf(that)); + } + if (message !== undefined) createNonEnumerableProperty(that, 'message', String(message)); + var errorsArray = []; + iterate(errors, errorsArray.push, { that: errorsArray }); + createNonEnumerableProperty(that, 'errors', errorsArray); + return that; +}; + +$AggregateError.prototype = create(Error.prototype, { + constructor: createPropertyDescriptor(5, $AggregateError), + message: createPropertyDescriptor(5, ''), + name: createPropertyDescriptor(5, 'AggregateError') +}); + +// `AggregateError` constructor +// https://tc39.es/ecma262/#sec-aggregate-error-constructor +$({ global: true }, { + AggregateError: $AggregateError +}); + + +/***/ }), +/* 255 */ +/*!***********************************************************!*\ + !*** ./node_modules/core-js-pure/internals/set-global.js ***! + \***********************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(/*! ../internals/global */ 31); +var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 52); + +module.exports = function (key, value) { + try { + createNonEnumerableProperty(global, key, value); + } catch (error) { + global[key] = value; + } return value; +}; + + +/***/ }), +/* 256 */ +/*!*************************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/correct-prototype-getter.js ***! + \*************************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { - _proto.populateData = function populateData(quota, usage) { - this.quota(quota * Common_Enums__WEBPACK_IMPORTED_MODULE_2__["Magics"].BitLength1024); - this.usage(usage * Common_Enums__WEBPACK_IMPORTED_MODULE_2__["Magics"].BitLength1024); - }; +var fails = __webpack_require__(/*! ../internals/fails */ 43); - return QuotaUserStore; -}(); +module.exports = !fails(function () { + function F() { /* empty */ } + F.prototype.constructor = null; + return Object.getPrototypeOf(new F()) !== F.prototype; +}); -/* harmony default export */ __webpack_exports__["a"] = (new QuotaUserStore()); /***/ }), -/* 226 */ -/*!***********************************!*\ - !*** external "window.ifvisible" ***! - \***********************************/ +/* 257 */ +/*!*********************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/a-possible-prototype.js ***! + \*********************************************************************/ /*! no static exports found */ -/*! exports used: default */ -/***/ (function(module, exports) { +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(/*! ../internals/is-object */ 50); + +module.exports = function (it) { + if (!isObject(it) && it !== null) { + throw TypeError("Can't set " + String(it) + ' as a prototype'); + } return it; +}; -module.exports = window.ifvisible; /***/ }), -/* 227 */ -/*!********************************************************************!*\ - !*** ./node_modules/core-js/internals/object-define-properties.js ***! - \********************************************************************/ +/* 258 */ +/*!*************************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/object-define-properties.js ***! + \*************************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 47); -var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ 52); -var anObject = __webpack_require__(/*! ../internals/an-object */ 37); -var objectKeys = __webpack_require__(/*! ../internals/object-keys */ 218); +var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 53); +var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ 82); +var anObject = __webpack_require__(/*! ../internals/an-object */ 58); +var objectKeys = __webpack_require__(/*! ../internals/object-keys */ 221); // `Object.defineProperties` method -// https://tc39.github.io/ecma262/#sec-object.defineproperties +// https://tc39.es/ecma262/#sec-object.defineproperties module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { anObject(O); var keys = objectKeys(Properties); @@ -20491,778 +20951,1287 @@ module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperti /***/ }), -/* 228 */ -/*!***********************************************************************!*\ - !*** ./node_modules/core-js/internals/array-method-uses-to-length.js ***! - \***********************************************************************/ +/* 259 */ +/*!*********************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/object-keys-internal.js ***! + \*********************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 47); -var fails = __webpack_require__(/*! ../internals/fails */ 36); -var has = __webpack_require__(/*! ../internals/has */ 42); +var has = __webpack_require__(/*! ../internals/has */ 54); +var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 81); +var indexOf = __webpack_require__(/*! ../internals/array-includes */ 260).indexOf; +var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ 144); -var defineProperty = Object.defineProperty; -var cache = {}; +module.exports = function (object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key; + for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key); + // Don't enum bug & hidden keys + while (names.length > i) if (has(O, key = names[i++])) { + ~indexOf(result, key) || result.push(key); + } + return result; +}; -var thrower = function (it) { throw it; }; -module.exports = function (METHOD_NAME, options) { - if (has(cache, METHOD_NAME)) return cache[METHOD_NAME]; - if (!options) options = {}; - var method = [][METHOD_NAME]; - var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false; - var argument0 = has(options, 0) ? options[0] : thrower; - var argument1 = has(options, 1) ? options[1] : undefined; +/***/ }), +/* 260 */ +/*!***************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/array-includes.js ***! + \***************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { - return cache[METHOD_NAME] = !!method && !fails(function () { - if (ACCESSORS && !DESCRIPTORS) return true; - var O = { length: -1 }; +var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 81); +var toLength = __webpack_require__(/*! ../internals/to-length */ 92); +var toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ 222); - if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower }); - else O[1] = 1; +// `Array.prototype.{ indexOf, includes }` methods implementation +var createMethod = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = toLength(O.length); + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; - method.call(O, argument0, argument1); - }); +module.exports = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod(false) }; /***/ }), -/* 229 */ -/*!*****************************************************!*\ - !*** ./node_modules/core-js/internals/is-regexp.js ***! - \*****************************************************/ +/* 261 */ +/*!*************************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/is-array-iterator-method.js ***! + \*************************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var isObject = __webpack_require__(/*! ../internals/is-object */ 44); -var classof = __webpack_require__(/*! ../internals/classof-raw */ 49); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 38); +var Iterators = __webpack_require__(/*! ../internals/iterators */ 76); -var MATCH = wellKnownSymbol('match'); +var ITERATOR = wellKnownSymbol('iterator'); +var ArrayPrototype = Array.prototype; -// `IsRegExp` abstract operation -// https://tc39.github.io/ecma262/#sec-isregexp +// check on default Array iterator module.exports = function (it) { - var isRegExp; - return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp'); + return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); }; /***/ }), -/* 230 */ -/*!***********************************************************************!*\ - !*** ./node_modules/core-js/internals/create-iterator-constructor.js ***! - \***********************************************************************/ +/* 262 */ +/*!******************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/use-symbol-as-uid.js ***! + \******************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; +var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ 193); -var IteratorPrototype = __webpack_require__(/*! ../internals/iterators-core */ 170).IteratorPrototype; -var create = __webpack_require__(/*! ../internals/object-create */ 151); -var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ 92); -var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ 109); -var Iterators = __webpack_require__(/*! ../internals/iterators */ 74); +module.exports = NATIVE_SYMBOL + // eslint-disable-next-line no-undef + && !Symbol.sham + // eslint-disable-next-line no-undef + && typeof Symbol.iterator == 'symbol'; -var returnThis = function () { return this; }; -module.exports = function (IteratorConstructor, NAME, next) { - var TO_STRING_TAG = NAME + ' Iterator'; - IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) }); - setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); - Iterators[TO_STRING_TAG] = returnThis; - return IteratorConstructor; +/***/ }), +/* 263 */ +/*!********************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/get-iterator-method.js ***! + \********************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +var classof = __webpack_require__(/*! ../internals/classof */ 93); +var Iterators = __webpack_require__(/*! ../internals/iterators */ 76); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 38); + +var ITERATOR = wellKnownSymbol('iterator'); + +module.exports = function (it) { + if (it != undefined) return it[ITERATOR] + || it['@@iterator'] + || Iterators[classof(it)]; }; /***/ }), -/* 231 */ -/*!********************************************************************!*\ - !*** ./node_modules/core-js/internals/correct-prototype-getter.js ***! - \********************************************************************/ +/* 264 */ +/*!***************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/iterator-close.js ***! + \***************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var fails = __webpack_require__(/*! ../internals/fails */ 36); +var anObject = __webpack_require__(/*! ../internals/an-object */ 58); -module.exports = !fails(function () { - function F() { /* empty */ } - F.prototype.constructor = null; - return Object.getPrototypeOf(new F()) !== F.prototype; +module.exports = function (iterator) { + var returnMethod = iterator['return']; + if (returnMethod !== undefined) { + return anObject(returnMethod.call(iterator)).value; + } +}; + + +/***/ }), +/* 265 */ +/*!******************************************************************!*\ + !*** ./node_modules/core-js-pure/modules/es.object.to-string.js ***! + \******************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports) { + +// empty + + +/***/ }), +/* 266 */ +/*!*********************************************************!*\ + !*** ./node_modules/core-js-pure/modules/es.promise.js ***! + \*********************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $ = __webpack_require__(/*! ../internals/export */ 34); +var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ 87); +var global = __webpack_require__(/*! ../internals/global */ 31); +var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ 75); +var NativePromise = __webpack_require__(/*! ../internals/native-promise-constructor */ 194); +var redefine = __webpack_require__(/*! ../internals/redefine */ 109); +var redefineAll = __webpack_require__(/*! ../internals/redefine-all */ 267); +var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ 146); +var setSpecies = __webpack_require__(/*! ../internals/set-species */ 269); +var isObject = __webpack_require__(/*! ../internals/is-object */ 50); +var aFunction = __webpack_require__(/*! ../internals/a-function */ 70); +var anInstance = __webpack_require__(/*! ../internals/an-instance */ 270); +var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ 195); +var iterate = __webpack_require__(/*! ../internals/iterate */ 108); +var checkCorrectnessOfIteration = __webpack_require__(/*! ../internals/check-correctness-of-iteration */ 271); +var speciesConstructor = __webpack_require__(/*! ../internals/species-constructor */ 196); +var task = __webpack_require__(/*! ../internals/task */ 197).set; +var microtask = __webpack_require__(/*! ../internals/microtask */ 272); +var promiseResolve = __webpack_require__(/*! ../internals/promise-resolve */ 199); +var hostReportErrors = __webpack_require__(/*! ../internals/host-report-errors */ 274); +var newPromiseCapabilityModule = __webpack_require__(/*! ../internals/new-promise-capability */ 110); +var perform = __webpack_require__(/*! ../internals/perform */ 147); +var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ 148); +var isForced = __webpack_require__(/*! ../internals/is-forced */ 188); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 38); +var IS_NODE = __webpack_require__(/*! ../internals/engine-is-node */ 118); +var V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ 149); + +var SPECIES = wellKnownSymbol('species'); +var PROMISE = 'Promise'; +var getInternalState = InternalStateModule.get; +var setInternalState = InternalStateModule.set; +var getInternalPromiseState = InternalStateModule.getterFor(PROMISE); +var PromiseConstructor = NativePromise; +var TypeError = global.TypeError; +var document = global.document; +var process = global.process; +var $fetch = getBuiltIn('fetch'); +var newPromiseCapability = newPromiseCapabilityModule.f; +var newGenericPromiseCapability = newPromiseCapability; +var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent); +var NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function'; +var UNHANDLED_REJECTION = 'unhandledrejection'; +var REJECTION_HANDLED = 'rejectionhandled'; +var PENDING = 0; +var FULFILLED = 1; +var REJECTED = 2; +var HANDLED = 1; +var UNHANDLED = 2; +var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; + +var FORCED = isForced(PROMISE, function () { + var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor); + if (!GLOBAL_CORE_JS_PROMISE) { + // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables + // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 + // We can't detect it synchronously, so just check versions + if (V8_VERSION === 66) return true; + // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test + if (!IS_NODE && !NATIVE_REJECTION_EVENT) return true; + } + // We need Promise#finally in the pure version for preventing prototype pollution + if (IS_PURE && !PromiseConstructor.prototype['finally']) return true; + // We can't use @@species feature detection in V8 since it causes + // deoptimization and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false; + // Detect correctness of subclassing with @@species support + var promise = PromiseConstructor.resolve(1); + var FakePromise = function (exec) { + exec(function () { /* empty */ }, function () { /* empty */ }); + }; + var constructor = promise.constructor = {}; + constructor[SPECIES] = FakePromise; + return !(promise.then(function () { /* empty */ }) instanceof FakePromise); +}); + +var INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) { + PromiseConstructor.all(iterable)['catch'](function () { /* empty */ }); +}); + +// helpers +var isThenable = function (it) { + var then; + return isObject(it) && typeof (then = it.then) == 'function' ? then : false; +}; + +var notify = function (state, isReject) { + if (state.notified) return; + state.notified = true; + var chain = state.reactions; + microtask(function () { + var value = state.value; + var ok = state.state == FULFILLED; + var index = 0; + // variable length - can't use forEach + while (chain.length > index) { + var reaction = chain[index++]; + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + try { + if (handler) { + if (!ok) { + if (state.rejection === UNHANDLED) onHandleUnhandled(state); + state.rejection = HANDLED; + } + if (handler === true) result = value; + else { + if (domain) domain.enter(); + result = handler(value); // can throw + if (domain) { + domain.exit(); + exited = true; + } + } + if (result === reaction.promise) { + reject(TypeError('Promise-chain cycle')); + } else if (then = isThenable(result)) { + then.call(result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (error) { + if (domain && !exited) domain.exit(); + reject(error); + } + } + state.reactions = []; + state.notified = false; + if (isReject && !state.rejection) onUnhandled(state); + }); +}; + +var dispatchEvent = function (name, promise, reason) { + var event, handler; + if (DISPATCH_EVENT) { + event = document.createEvent('Event'); + event.promise = promise; + event.reason = reason; + event.initEvent(name, false, true); + global.dispatchEvent(event); + } else event = { promise: promise, reason: reason }; + if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event); + else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); +}; + +var onUnhandled = function (state) { + task.call(global, function () { + var promise = state.facade; + var value = state.value; + var IS_UNHANDLED = isUnhandled(state); + var result; + if (IS_UNHANDLED) { + result = perform(function () { + if (IS_NODE) { + process.emit('unhandledRejection', value, promise); + } else dispatchEvent(UNHANDLED_REJECTION, promise, value); + }); + // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should + state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; + if (result.error) throw result.value; + } + }); +}; + +var isUnhandled = function (state) { + return state.rejection !== HANDLED && !state.parent; +}; + +var onHandleUnhandled = function (state) { + task.call(global, function () { + var promise = state.facade; + if (IS_NODE) { + process.emit('rejectionHandled', promise); + } else dispatchEvent(REJECTION_HANDLED, promise, state.value); + }); +}; + +var bind = function (fn, state, unwrap) { + return function (value) { + fn(state, value, unwrap); + }; +}; + +var internalReject = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + state.value = value; + state.state = REJECTED; + notify(state, true); +}; + +var internalResolve = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + try { + if (state.facade === value) throw TypeError("Promise can't be resolved itself"); + var then = isThenable(value); + if (then) { + microtask(function () { + var wrapper = { done: false }; + try { + then.call(value, + bind(internalResolve, wrapper, state), + bind(internalReject, wrapper, state) + ); + } catch (error) { + internalReject(wrapper, error, state); + } + }); + } else { + state.value = value; + state.state = FULFILLED; + notify(state, false); + } + } catch (error) { + internalReject({ done: false }, error, state); + } +}; + +// constructor polyfill +if (FORCED) { + // 25.4.3.1 Promise(executor) + PromiseConstructor = function Promise(executor) { + anInstance(this, PromiseConstructor, PROMISE); + aFunction(executor); + Internal.call(this); + var state = getInternalState(this); + try { + executor(bind(internalResolve, state), bind(internalReject, state)); + } catch (error) { + internalReject(state, error); + } + }; + // eslint-disable-next-line no-unused-vars + Internal = function Promise(executor) { + setInternalState(this, { + type: PROMISE, + done: false, + notified: false, + parent: false, + reactions: [], + rejection: false, + state: PENDING, + value: undefined + }); + }; + Internal.prototype = redefineAll(PromiseConstructor.prototype, { + // `Promise.prototype.then` method + // https://tc39.es/ecma262/#sec-promise.prototype.then + then: function then(onFulfilled, onRejected) { + var state = getInternalPromiseState(this); + var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor)); + reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; + reaction.fail = typeof onRejected == 'function' && onRejected; + reaction.domain = IS_NODE ? process.domain : undefined; + state.parent = true; + state.reactions.push(reaction); + if (state.state != PENDING) notify(state, false); + return reaction.promise; + }, + // `Promise.prototype.catch` method + // https://tc39.es/ecma262/#sec-promise.prototype.catch + 'catch': function (onRejected) { + return this.then(undefined, onRejected); + } + }); + OwnPromiseCapability = function () { + var promise = new Internal(); + var state = getInternalState(promise); + this.promise = promise; + this.resolve = bind(internalResolve, state); + this.reject = bind(internalReject, state); + }; + newPromiseCapabilityModule.f = newPromiseCapability = function (C) { + return C === PromiseConstructor || C === PromiseWrapper + ? new OwnPromiseCapability(C) + : newGenericPromiseCapability(C); + }; + + if (!IS_PURE && typeof NativePromise == 'function') { + nativeThen = NativePromise.prototype.then; + + // wrap native Promise#then for native async functions + redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) { + var that = this; + return new PromiseConstructor(function (resolve, reject) { + nativeThen.call(that, resolve, reject); + }).then(onFulfilled, onRejected); + // https://github.com/zloirock/core-js/issues/640 + }, { unsafe: true }); + + // wrap fetch result + if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, { + // eslint-disable-next-line no-unused-vars + fetch: function fetch(input /* , init */) { + return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments)); + } + }); + } +} + +$({ global: true, wrap: true, forced: FORCED }, { + Promise: PromiseConstructor +}); + +setToStringTag(PromiseConstructor, PROMISE, false, true); +setSpecies(PROMISE); + +PromiseWrapper = getBuiltIn(PROMISE); + +// statics +$({ target: PROMISE, stat: true, forced: FORCED }, { + // `Promise.reject` method + // https://tc39.es/ecma262/#sec-promise.reject + reject: function reject(r) { + var capability = newPromiseCapability(this); + capability.reject.call(undefined, r); + return capability.promise; + } +}); + +$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, { + // `Promise.resolve` method + // https://tc39.es/ecma262/#sec-promise.resolve + resolve: function resolve(x) { + return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x); + } +}); + +$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, { + // `Promise.all` method + // https://tc39.es/ecma262/#sec-promise.all + all: function all(iterable) { + var C = this; + var capability = newPromiseCapability(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var $promiseResolve = aFunction(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + values.push(undefined); + remaining++; + $promiseResolve.call(C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + }, + // `Promise.race` method + // https://tc39.es/ecma262/#sec-promise.race + race: function race(iterable) { + var C = this; + var capability = newPromiseCapability(C); + var reject = capability.reject; + var result = perform(function () { + var $promiseResolve = aFunction(C.resolve); + iterate(iterable, function (promise) { + $promiseResolve.call(C, promise).then(capability.resolve, reject); + }); + }); + if (result.error) reject(result.value); + return capability.promise; + } }); /***/ }), -/* 232 */ -/*!****************************************************************!*\ - !*** ./node_modules/core-js/internals/a-possible-prototype.js ***! - \****************************************************************/ +/* 267 */ +/*!*************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/redefine-all.js ***! + \*************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var isObject = __webpack_require__(/*! ../internals/is-object */ 44); +var redefine = __webpack_require__(/*! ../internals/redefine */ 109); -module.exports = function (it) { - if (!isObject(it) && it !== null) { - throw TypeError("Can't set " + String(it) + ' as a prototype'); - } return it; +module.exports = function (target, src, options) { + for (var key in src) { + if (options && options.unsafe && target[key]) target[key] = src[key]; + else redefine(target, key, src[key], options); + } return target; }; /***/ }), -/* 233 */ -/*!**********************************************************************!*\ - !*** ./node_modules/core-js/modules/web.dom-collections.iterator.js ***! - \**********************************************************************/ +/* 268 */ +/*!*****************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/object-to-string.js ***! + \*****************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var global = __webpack_require__(/*! ../internals/global */ 27); -var DOMIterables = __webpack_require__(/*! ../internals/dom-iterables */ 234); -var ArrayIteratorMethods = __webpack_require__(/*! ../modules/es.array.iterator */ 188); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 48); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 32); - -var ITERATOR = wellKnownSymbol('iterator'); -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -var ArrayValues = ArrayIteratorMethods.values; - -for (var COLLECTION_NAME in DOMIterables) { - var Collection = global[COLLECTION_NAME]; - var CollectionPrototype = Collection && Collection.prototype; - if (CollectionPrototype) { - // some Chrome versions have non-configurable methods on DOMTokenList - if (CollectionPrototype[ITERATOR] !== ArrayValues) try { - createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues); - } catch (error) { - CollectionPrototype[ITERATOR] = ArrayValues; - } - if (!CollectionPrototype[TO_STRING_TAG]) { - createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME); - } - if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { - // some Chrome versions have non-configurable methods on DOMTokenList - if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { - createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); - } catch (error) { - CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; - } - } - } -} - +"use strict"; -/***/ }), -/* 234 */ -/*!*********************************************************!*\ - !*** ./node_modules/core-js/internals/dom-iterables.js ***! - \*********************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports) { +var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ 145); +var classof = __webpack_require__(/*! ../internals/classof */ 93); -// iterable DOM collections -// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods -module.exports = { - CSSRuleList: 0, - CSSStyleDeclaration: 0, - CSSValueList: 0, - ClientRectList: 0, - DOMRectList: 0, - DOMStringList: 0, - DOMTokenList: 1, - DataTransferItemList: 0, - FileList: 0, - HTMLAllCollection: 0, - HTMLCollection: 0, - HTMLFormElement: 0, - HTMLSelectElement: 0, - MediaList: 0, - MimeTypeArray: 0, - NamedNodeMap: 0, - NodeList: 1, - PaintRequestList: 0, - Plugin: 0, - PluginArray: 0, - SVGLengthList: 0, - SVGNumberList: 0, - SVGPathSegList: 0, - SVGPointList: 0, - SVGStringList: 0, - SVGTransformList: 0, - SourceBufferList: 0, - StyleSheetList: 0, - TextTrackCueList: 0, - TextTrackList: 0, - TouchList: 0 +// `Object.prototype.toString` method implementation +// https://tc39.es/ecma262/#sec-object.prototype.tostring +module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() { + return '[object ' + classof(this) + ']'; }; /***/ }), -/* 235 */, -/* 236 */ -/*!*****************************************************************!*\ - !*** ./node_modules/core-js/internals/regexp-sticky-helpers.js ***! - \*****************************************************************/ +/* 269 */ +/*!************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/set-species.js ***! + \************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ 75); +var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ 82); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 38); +var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 53); -var fails = __webpack_require__(/*! ./fails */ 36); - -// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError, -// so we use an intermediate function. -function RE(s, f) { - return RegExp(s, f); -} +var SPECIES = wellKnownSymbol('species'); -exports.UNSUPPORTED_Y = fails(function () { - // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError - var re = RE('a', 'y'); - re.lastIndex = 2; - return re.exec('abcd') != null; -}); +module.exports = function (CONSTRUCTOR_NAME) { + var Constructor = getBuiltIn(CONSTRUCTOR_NAME); + var defineProperty = definePropertyModule.f; -exports.BROKEN_CARET = fails(function () { - // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 - var re = RE('^r', 'gy'); - re.lastIndex = 2; - return re.exec('str') != null; -}); + if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) { + defineProperty(Constructor, SPECIES, { + configurable: true, + get: function () { return this; } + }); + } +}; /***/ }), -/* 237 */ -/*!*********************************************************!*\ - !*** ./node_modules/core-js-pure/es/instance/reduce.js ***! - \*********************************************************/ +/* 270 */ +/*!************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/an-instance.js ***! + \************************************************************/ /*! no static exports found */ /*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var reduce = __webpack_require__(/*! ../array/virtual/reduce */ 291); - -var ArrayPrototype = Array.prototype; +/***/ (function(module, exports) { -module.exports = function (it) { - var own = it.reduce; - return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.reduce) ? reduce : own; +module.exports = function (it, Constructor, name) { + if (!(it instanceof Constructor)) { + throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation'); + } return it; }; /***/ }), -/* 238 */ -/*!***********************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-get-own-property-descriptor.js ***! - \***********************************************************************************/ +/* 271 */ +/*!*******************************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/check-correctness-of-iteration.js ***! + \*******************************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 76); -var propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ 293); -var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ 155); -var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 96); -var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ 201); -var has = __webpack_require__(/*! ../internals/has */ 78); -var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ 239); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 38); -var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; +var ITERATOR = wellKnownSymbol('iterator'); +var SAFE_CLOSING = false; -// `Object.getOwnPropertyDescriptor` method -// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor -exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { - O = toIndexedObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return nativeGetOwnPropertyDescriptor(O, P); +try { + var called = 0; + var iteratorWithReturn = { + next: function () { + return { done: !!called++ }; + }, + 'return': function () { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR] = function () { + return this; + }; + // eslint-disable-next-line no-throw-literal + Array.from(iteratorWithReturn, function () { throw 2; }); +} catch (error) { /* empty */ } + +module.exports = function (exec, SKIP_CLOSING) { + if (!SKIP_CLOSING && !SAFE_CLOSING) return false; + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR] = function () { + return { + next: function () { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); } catch (error) { /* empty */ } - if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); + return ITERATION_SUPPORT; }; /***/ }), -/* 239 */ -/*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/ie8-dom-define.js ***! - \***************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { - -var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ 76); -var fails = __webpack_require__(/*! ../internals/fails */ 55); -var createElement = __webpack_require__(/*! ../internals/document-create-element */ 240); - -// Thank's IE8 for his funny defineProperty -module.exports = !DESCRIPTORS && !fails(function () { - return Object.defineProperty(createElement('div'), 'a', { - get: function () { return 7; } - }).a != 7; -}); - - -/***/ }), -/* 240 */ -/*!************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/document-create-element.js ***! - \************************************************************************/ +/* 272 */ +/*!**********************************************************!*\ + !*** ./node_modules/core-js-pure/internals/microtask.js ***! + \**********************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var global = __webpack_require__(/*! ../internals/global */ 66); -var isObject = __webpack_require__(/*! ../internals/is-object */ 77); +var global = __webpack_require__(/*! ../internals/global */ 31); +var getOwnPropertyDescriptor = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ 158).f; +var macrotask = __webpack_require__(/*! ../internals/task */ 197).set; +var IS_IOS = __webpack_require__(/*! ../internals/engine-is-ios */ 198); +var IS_WEBOS_WEBKIT = __webpack_require__(/*! ../internals/engine-is-webos-webkit */ 273); +var IS_NODE = __webpack_require__(/*! ../internals/engine-is-node */ 118); +var MutationObserver = global.MutationObserver || global.WebKitMutationObserver; var document = global.document; -// typeof document.createElement is 'object' in old IE -var EXISTS = isObject(document) && isObject(document.createElement); - -module.exports = function (it) { - return EXISTS ? document.createElement(it) : {}; -}; - +var process = global.process; +var Promise = global.Promise; +// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask` +var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask'); +var queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value; -/***/ }), -/* 241 */ -/*!**********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/function-bind-context.js ***! - \**********************************************************************/ -/*! no static exports found */ -/*! all exports used */ -/***/ (function(module, exports, __webpack_require__) { +var flush, head, last, notify, toggle, node, promise, then; -var aFunction = __webpack_require__(/*! ../internals/a-function */ 176); +// modern engines have queueMicrotask method +if (!queueMicrotask) { + flush = function () { + var parent, fn; + if (IS_NODE && (parent = process.domain)) parent.exit(); + while (head) { + fn = head.fn; + head = head.next; + try { + fn(); + } catch (error) { + if (head) notify(); + else last = undefined; + throw error; + } + } last = undefined; + if (parent) parent.enter(); + }; -// optional / simple context binding -module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - switch (length) { - case 0: return function () { - return fn.call(that); + // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 + // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898 + if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) { + toggle = true; + node = document.createTextNode(''); + new MutationObserver(flush).observe(node, { characterData: true }); + notify = function () { + node.data = toggle = !toggle; }; - case 1: return function (a) { - return fn.call(that, a); + // environments with maybe non-completely correct, but existent Promise + } else if (Promise && Promise.resolve) { + // Promise.resolve without an argument throws an error in LG WebOS 2 + promise = Promise.resolve(undefined); + then = promise.then; + notify = function () { + then.call(promise, flush); }; - case 2: return function (a, b) { - return fn.call(that, a, b); + // Node.js without promises + } else if (IS_NODE) { + notify = function () { + process.nextTick(flush); }; - case 3: return function (a, b, c) { - return fn.call(that, a, b, c); + // for other environments - macrotask based on: + // - setImmediate + // - MessageChannel + // - window.postMessag + // - onreadystatechange + // - setTimeout + } else { + notify = function () { + // strange IE + webpack dev server bug - use .call(global) + macrotask.call(global, flush); }; } - return function (/* ...args */) { - return fn.apply(that, arguments); - }; +} + +module.exports = queueMicrotask || function (fn) { + var task = { fn: fn, next: undefined }; + if (last) last.next = task; + if (!head) { + head = task; + notify(); + } last = task; }; /***/ }), -/* 242 */ -/*!*************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/get-built-in.js ***! - \*************************************************************/ +/* 273 */ +/*!***********************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/engine-is-webos-webkit.js ***! + \***********************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var path = __webpack_require__(/*! ../internals/path */ 97); -var global = __webpack_require__(/*! ../internals/global */ 66); - -var aFunction = function (variable) { - return typeof variable == 'function' ? variable : undefined; -}; +var userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ 107); -module.exports = function (namespace, method) { - return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) - : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method]; -}; +module.exports = /web0s(?!.*chrome)/i.test(userAgent); /***/ }), -/* 243 */ +/* 274 */ /*!*******************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/add-to-unscopables.js ***! + !*** ./node_modules/core-js-pure/internals/host-report-errors.js ***! \*******************************************************************/ /*! no static exports found */ /*! all exports used */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -module.exports = function () { /* empty */ }; +var global = __webpack_require__(/*! ../internals/global */ 31); + +module.exports = function (a, b) { + var console = global.console; + if (console && console.error) { + arguments.length === 1 ? console.error(a) : console.error(a, b); + } +}; /***/ }), -/* 244 */ -/*!*******************************************************!*\ - !*** ./node_modules/core-js-pure/internals/shared.js ***! - \*******************************************************/ +/* 275 */ +/*!****************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/native-weak-map.js ***! + \****************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ 206); -var store = __webpack_require__(/*! ../internals/shared-store */ 204); +var global = __webpack_require__(/*! ../internals/global */ 31); +var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ 195); -(module.exports = function (key, value) { - return store[key] || (store[key] = value !== undefined ? value : {}); -})('versions', []).push({ - version: '3.8.2', - mode: IS_PURE ? 'pure' : 'global', - copyright: '© 2021 Denis Pushkarev (zloirock.ru)' -}); +var WeakMap = global.WeakMap; + +module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap)); /***/ }), -/* 245 */ -/*!****************************************************!*\ - !*** ./node_modules/core-js-pure/internals/uid.js ***! - \****************************************************/ +/* 276 */ +/*!*********************************************************************!*\ + !*** ./node_modules/core-js-pure/modules/es.promise.all-settled.js ***! + \*********************************************************************/ /*! no static exports found */ /*! all exports used */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -var id = 0; -var postfix = Math.random(); +"use strict"; -module.exports = function (key) { - return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); -}; +var $ = __webpack_require__(/*! ../internals/export */ 34); +var aFunction = __webpack_require__(/*! ../internals/a-function */ 70); +var newPromiseCapabilityModule = __webpack_require__(/*! ../internals/new-promise-capability */ 110); +var perform = __webpack_require__(/*! ../internals/perform */ 147); +var iterate = __webpack_require__(/*! ../internals/iterate */ 108); + +// `Promise.allSettled` method +// https://tc39.es/ecma262/#sec-promise.allsettled +$({ target: 'Promise', stat: true }, { + allSettled: function allSettled(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var promiseResolve = aFunction(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + values.push(undefined); + remaining++; + promiseResolve.call(C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'fulfilled', value: value }; + --remaining || resolve(values); + }, function (error) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'rejected', reason: error }; + --remaining || resolve(values); + }); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); /***/ }), -/* 246 */ -/*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/iterators-core.js ***! - \***************************************************************/ +/* 277 */ +/*!*************************************************************!*\ + !*** ./node_modules/core-js-pure/modules/es.promise.any.js ***! + \*************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ 247); -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 84); -var has = __webpack_require__(/*! ../internals/has */ 78); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 69); -var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ 206); +var $ = __webpack_require__(/*! ../internals/export */ 34); +var aFunction = __webpack_require__(/*! ../internals/a-function */ 70); +var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ 75); +var newPromiseCapabilityModule = __webpack_require__(/*! ../internals/new-promise-capability */ 110); +var perform = __webpack_require__(/*! ../internals/perform */ 147); +var iterate = __webpack_require__(/*! ../internals/iterate */ 108); -var ITERATOR = wellKnownSymbol('iterator'); -var BUGGY_SAFARI_ITERATORS = false; +var PROMISE_ANY_ERROR = 'No one promise resolved'; -var returnThis = function () { return this; }; +// `Promise.any` method +// https://tc39.es/ecma262/#sec-promise.any +$({ target: 'Promise', stat: true }, { + any: function any(iterable) { + var C = this; + var capability = newPromiseCapabilityModule.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var promiseResolve = aFunction(C.resolve); + var errors = []; + var counter = 0; + var remaining = 1; + var alreadyResolved = false; + iterate(iterable, function (promise) { + var index = counter++; + var alreadyRejected = false; + errors.push(undefined); + remaining++; + promiseResolve.call(C, promise).then(function (value) { + if (alreadyRejected || alreadyResolved) return; + alreadyResolved = true; + resolve(value); + }, function (error) { + if (alreadyRejected || alreadyResolved) return; + alreadyRejected = true; + errors[index] = error; + --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR)); + }); + }); + --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR)); + }); + if (result.error) reject(result.value); + return capability.promise; + } +}); -// `%IteratorPrototype%` object -// https://tc39.es/ecma262/#sec-%iteratorprototype%-object -var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; -if ([].keys) { - arrayIterator = [].keys(); - // Safari 8 has buggy iterators w/o `next` - if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true; - else { - PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); - if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; - } -} +/***/ }), +/* 278 */ +/*!*****************************************************************!*\ + !*** ./node_modules/core-js-pure/modules/es.promise.finally.js ***! + \*****************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports, __webpack_require__) { -if (IteratorPrototype == undefined) IteratorPrototype = {}; +"use strict"; -// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() -if (!IS_PURE && !has(IteratorPrototype, ITERATOR)) { - createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis); -} +var $ = __webpack_require__(/*! ../internals/export */ 34); +var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ 87); +var NativePromise = __webpack_require__(/*! ../internals/native-promise-constructor */ 194); +var fails = __webpack_require__(/*! ../internals/fails */ 43); +var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ 75); +var speciesConstructor = __webpack_require__(/*! ../internals/species-constructor */ 196); +var promiseResolve = __webpack_require__(/*! ../internals/promise-resolve */ 199); +var redefine = __webpack_require__(/*! ../internals/redefine */ 109); + +// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829 +var NON_GENERIC = !!NativePromise && fails(function () { + NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ }); +}); -module.exports = { - IteratorPrototype: IteratorPrototype, - BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS -}; +// `Promise.prototype.finally` method +// https://tc39.es/ecma262/#sec-promise.prototype.finally +$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, { + 'finally': function (onFinally) { + var C = speciesConstructor(this, getBuiltIn('Promise')); + var isFunction = typeof onFinally == 'function'; + return this.then( + isFunction ? function (x) { + return promiseResolve(C, onFinally()).then(function () { return x; }); + } : onFinally, + isFunction ? function (e) { + return promiseResolve(C, onFinally()).then(function () { throw e; }); + } : onFinally + ); + } +}); + +// patch native Promise.prototype for native async functions +if (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) { + redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']); +} /***/ }), -/* 247 */ -/*!************************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-get-prototype-of.js ***! - \************************************************************************/ +/* 279 */ +/*!*****************************************************************!*\ + !*** ./node_modules/core-js-pure/modules/es.string.iterator.js ***! + \*****************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var has = __webpack_require__(/*! ../internals/has */ 78); -var toObject = __webpack_require__(/*! ../internals/to-object */ 122); -var sharedKey = __webpack_require__(/*! ../internals/shared-key */ 205); -var CORRECT_PROTOTYPE_GETTER = __webpack_require__(/*! ../internals/correct-prototype-getter */ 305); +"use strict"; -var IE_PROTO = sharedKey('IE_PROTO'); -var ObjectPrototype = Object.prototype; +var charAt = __webpack_require__(/*! ../internals/string-multibyte */ 280).charAt; +var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ 148); +var defineIterator = __webpack_require__(/*! ../internals/define-iterator */ 200); -// `Object.getPrototypeOf` method -// https://tc39.es/ecma262/#sec-object.getprototypeof -module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) return O[IE_PROTO]; - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } return O instanceof Object ? ObjectPrototype : null; -}; +var STRING_ITERATOR = 'String Iterator'; +var setInternalState = InternalStateModule.set; +var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); +// `String.prototype[@@iterator]` method +// https://tc39.es/ecma262/#sec-string.prototype-@@iterator +defineIterator(String, 'String', function (iterated) { + setInternalState(this, { + type: STRING_ITERATOR, + string: String(iterated), + index: 0 + }); +// `%StringIteratorPrototype%.next` method +// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next +}, function next() { + var state = getInternalState(this); + var string = state.string; + var index = state.index; + var point; + if (index >= string.length) return { value: undefined, done: true }; + point = charAt(string, index); + state.index += point.length; + return { value: point, done: false }; +}); -/***/ }), -/* 248 */ -/*!**************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/native-symbol.js ***! - \**************************************************************/ + +/***/ }), +/* 280 */ +/*!*****************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/string-multibyte.js ***! + \*****************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var fails = __webpack_require__(/*! ../internals/fails */ 55); +var toInteger = __webpack_require__(/*! ../internals/to-integer */ 143); +var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ 115); -module.exports = !!Object.getOwnPropertySymbols && !fails(function () { - // Chrome 38 Symbol has incorrect toString conversion - // eslint-disable-next-line no-undef - return !String(Symbol()); -}); +// `String.prototype.{ codePointAt, at }` methods implementation +var createMethod = function (CONVERT_TO_STRING) { + return function ($this, pos) { + var S = String(requireObjectCoercible($this)); + var position = toInteger(pos); + var size = S.length; + var first, second; + if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; + first = S.charCodeAt(position); + return first < 0xD800 || first > 0xDBFF || position + 1 === size + || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF + ? CONVERT_TO_STRING ? S.charAt(position) : first + : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; + }; +}; + +module.exports = { + // `String.prototype.codePointAt` method + // https://tc39.es/ecma262/#sec-string.prototype.codepointat + codeAt: createMethod(false), + // `String.prototype.at` method + // https://github.com/mathiasbynens/String.prototype.at + charAt: createMethod(true) +}; /***/ }), -/* 249 */ -/*!**************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-create.js ***! - \**************************************************************/ +/* 281 */ +/*!****************************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/create-iterator-constructor.js ***! + \****************************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var anObject = __webpack_require__(/*! ../internals/an-object */ 157); -var defineProperties = __webpack_require__(/*! ../internals/object-define-properties */ 307); -var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ 253); -var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ 207); -var html = __webpack_require__(/*! ../internals/html */ 309); -var documentCreateElement = __webpack_require__(/*! ../internals/document-create-element */ 240); -var sharedKey = __webpack_require__(/*! ../internals/shared-key */ 205); - -var GT = '>'; -var LT = '<'; -var PROTOTYPE = 'prototype'; -var SCRIPT = 'script'; -var IE_PROTO = sharedKey('IE_PROTO'); - -var EmptyConstructor = function () { /* empty */ }; +"use strict"; -var scriptTag = function (content) { - return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; -}; +var IteratorPrototype = __webpack_require__(/*! ../internals/iterators-core */ 201).IteratorPrototype; +var create = __webpack_require__(/*! ../internals/object-create */ 161); +var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ 91); +var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ 146); +var Iterators = __webpack_require__(/*! ../internals/iterators */ 76); -// Create object with fake `null` prototype: use ActiveX Object with cleared prototype -var NullProtoObjectViaActiveX = function (activeXDocument) { - activeXDocument.write(scriptTag('')); - activeXDocument.close(); - var temp = activeXDocument.parentWindow.Object; - activeXDocument = null; // avoid memory leak - return temp; -}; +var returnThis = function () { return this; }; -// Create object with fake `null` prototype: use iframe Object with cleared prototype -var NullProtoObjectViaIFrame = function () { - // Thrash, waste and sodomy: IE GC bug - var iframe = documentCreateElement('iframe'); - var JS = 'java' + SCRIPT + ':'; - var iframeDocument; - iframe.style.display = 'none'; - html.appendChild(iframe); - // https://github.com/zloirock/core-js/issues/475 - iframe.src = String(JS); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(scriptTag('document.F=Object')); - iframeDocument.close(); - return iframeDocument.F; +module.exports = function (IteratorConstructor, NAME, next) { + var TO_STRING_TAG = NAME + ' Iterator'; + IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) }); + setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); + Iterators[TO_STRING_TAG] = returnThis; + return IteratorConstructor; }; -// Check for document.domain and active x support -// No need to use active x approach when document.domain is not set -// see https://github.com/es-shims/es5-shim/issues/150 -// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 -// avoid IE GC bug -var activeXDocument; -var NullProtoObject = function () { - try { - /* global ActiveXObject */ - activeXDocument = document.domain && new ActiveXObject('htmlfile'); - } catch (error) { /* ignore */ } - NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame(); - var length = enumBugKeys.length; - while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; - return NullProtoObject(); -}; -hiddenKeys[IE_PROTO] = true; +/***/ }), +/* 282 */ +/*!**************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/dom-iterables.js ***! + \**************************************************************/ +/*! no static exports found */ +/*! all exports used */ +/***/ (function(module, exports) { -// `Object.create` method -// https://tc39.es/ecma262/#sec-object.create -module.exports = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - EmptyConstructor[PROTOTYPE] = anObject(O); - result = new EmptyConstructor(); - EmptyConstructor[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = NullProtoObject(); - return Properties === undefined ? result : defineProperties(result, Properties); +// iterable DOM collections +// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods +module.exports = { + CSSRuleList: 0, + CSSStyleDeclaration: 0, + CSSValueList: 0, + ClientRectList: 0, + DOMRectList: 0, + DOMStringList: 0, + DOMTokenList: 1, + DataTransferItemList: 0, + FileList: 0, + HTMLAllCollection: 0, + HTMLCollection: 0, + HTMLFormElement: 0, + HTMLSelectElement: 0, + MediaList: 0, + MimeTypeArray: 0, + NamedNodeMap: 0, + NodeList: 1, + PaintRequestList: 0, + Plugin: 0, + PluginArray: 0, + SVGLengthList: 0, + SVGNumberList: 0, + SVGPathSegList: 0, + SVGPointList: 0, + SVGStringList: 0, + SVGTransformList: 0, + SourceBufferList: 0, + StyleSheetList: 0, + TextTrackCueList: 0, + TextTrackList: 0, + TouchList: 0 }; /***/ }), -/* 250 */ +/* 283 */ /*!************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/object-keys.js ***! + !*** ./node_modules/core-js/internals/get-substitution.js ***! \************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ 308); -var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ 253); +var toObject = __webpack_require__(/*! ../internals/to-object */ 90); -// `Object.keys` method -// https://tc39.es/ecma262/#sec-object.keys -module.exports = Object.keys || function keys(O) { - return internalObjectKeys(O, enumBugKeys); +var floor = Math.floor; +var replace = ''.replace; +var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g; +var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g; + +// https://tc39.es/ecma262/#sec-getsubstitution +module.exports = function (matched, str, position, captures, namedCaptures, replacement) { + var tailPos = position + matched.length; + var m = captures.length; + var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; + if (namedCaptures !== undefined) { + namedCaptures = toObject(namedCaptures); + symbols = SUBSTITUTION_SYMBOLS; + } + return replace.call(replacement, symbols, function (match, ch) { + var capture; + switch (ch.charAt(0)) { + case '$': return '$'; + case '&': return matched; + case '`': return str.slice(0, position); + case "'": return str.slice(tailPos); + case '<': + capture = namedCaptures[ch.slice(1, -1)]; + break; + default: // \d\d? + var n = +ch; + if (n === 0) return match; + if (n > m) { + var f = floor(n / 10); + if (f === 0) return match; + if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1); + return match; + } + capture = captures[n - 1]; + } + return capture === undefined ? '' : capture; + }); }; /***/ }), -/* 251 */ -/*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/array-includes.js ***! - \***************************************************************/ +/* 284 */ +/*!**********************************************************!*\ + !*** ./node_modules/core-js-pure/stable/set-interval.js ***! + \**********************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ 96); -var toLength = __webpack_require__(/*! ../internals/to-length */ 112); -var toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ 252); - -// `Array.prototype.{ indexOf, includes }` methods implementation -var createMethod = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIndexedObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - // eslint-disable-next-line no-self-compare - if (value != value) return true; - // Array#indexOf ignores holes, Array#includes - not - } else for (;length > index; index++) { - if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; -}; +__webpack_require__(/*! ../modules/web.timers */ 186); +var path = __webpack_require__(/*! ../internals/path */ 51); -module.exports = { - // `Array.prototype.includes` method - // https://tc39.es/ecma262/#sec-array.prototype.includes - includes: createMethod(true), - // `Array.prototype.indexOf` method - // https://tc39.es/ecma262/#sec-array.prototype.indexof - indexOf: createMethod(false) -}; +module.exports = path.setInterval; /***/ }), -/* 252 */ +/* 285 */ /*!******************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/to-absolute-index.js ***! + !*** ./node_modules/core-js/internals/array-method-is-strict.js ***! \******************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var toInteger = __webpack_require__(/*! ../internals/to-integer */ 202); +"use strict"; -var max = Math.max; -var min = Math.min; +var fails = __webpack_require__(/*! ../internals/fails */ 37); -// Helper for a popular repeating case of the spec: -// Let integer be ? ToInteger(index). -// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). -module.exports = function (index, length) { - var integer = toInteger(index); - return integer < 0 ? max(integer + length, 0) : min(integer, length); +module.exports = function (METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails(function () { + // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing + method.call(null, argument || function () { throw 1; }, 1); + }); }; /***/ }), -/* 253 */ -/*!**************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/enum-bug-keys.js ***! - \**************************************************************/ +/* 286 */ +/*!************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/whitespaces.js ***! + \************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports) { -// IE8- don't enum bug keys -module.exports = [ - 'constructor', - 'hasOwnProperty', - 'isPrototypeOf', - 'propertyIsEnumerable', - 'toLocaleString', - 'toString', - 'valueOf' -]; +// a string of all valid unicode whitespaces +// eslint-disable-next-line max-len +module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; /***/ }), -/* 254 */ -/*!******************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/set-to-string-tag.js ***! - \******************************************************************/ +/* 287 */ +/*!*********************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/array-species-create.js ***! + \*********************************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ 208); -var defineProperty = __webpack_require__(/*! ../internals/object-define-property */ 137).f; -var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ 84); -var has = __webpack_require__(/*! ../internals/has */ 78); -var toString = __webpack_require__(/*! ../internals/object-to-string */ 310); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 69); +var isObject = __webpack_require__(/*! ../internals/is-object */ 50); +var isArray = __webpack_require__(/*! ../internals/is-array */ 174); +var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 38); -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var SPECIES = wellKnownSymbol('species'); -module.exports = function (it, TAG, STATIC, SET_METHOD) { - if (it) { - var target = STATIC ? it : it.prototype; - if (!has(target, TO_STRING_TAG)) { - defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG }); - } - if (SET_METHOD && !TO_STRING_TAG_SUPPORT) { - createNonEnumerableProperty(target, 'toString', toString); +// `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +module.exports = function (originalArray, length) { + var C; + if (isArray(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; + else if (isObject(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; } - } + } return new (C === undefined ? Array : C)(length === 0 ? 0 : length); }; /***/ }), -/* 255 */ +/* 288 */ /*!****************************************************************!*\ !*** ./node_modules/core-js-pure/internals/create-property.js ***! \****************************************************************/ @@ -21272,9 +22241,9 @@ module.exports = function (it, TAG, STATIC, SET_METHOD) { "use strict"; -var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ 201); -var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ 137); -var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ 155); +var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ 159); +var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ 82); +var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ 91); module.exports = function (object, key, value) { var propertyKey = toPrimitive(key); @@ -21284,79 +22253,131 @@ module.exports = function (object, key, value) { /***/ }), -/* 256 */ -/*!*********************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/array-species-create.js ***! - \*********************************************************************/ +/* 289 */ +/*!*********************************************************!*\ + !*** ./node_modules/core-js-pure/es/instance/reduce.js ***! + \*********************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -var isObject = __webpack_require__(/*! ../internals/is-object */ 77); -var isArray = __webpack_require__(/*! ../internals/is-array */ 159); -var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ 69); +var reduce = __webpack_require__(/*! ../array/virtual/reduce */ 346); -var SPECIES = wellKnownSymbol('species'); +var ArrayPrototype = Array.prototype; -// `ArraySpeciesCreate` abstract operation -// https://tc39.es/ecma262/#sec-arrayspeciescreate -module.exports = function (originalArray, length) { - var C; - if (isArray(originalArray)) { - C = originalArray.constructor; - // cross-realm fallback - if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; - else if (isObject(C)) { - C = C[SPECIES]; - if (C === null) C = undefined; - } - } return new (C === undefined ? Array : C)(length === 0 ? 0 : length); +module.exports = function (it) { + var own = it.reduce; + return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.reduce) ? reduce : own; }; /***/ }), -/* 257 */ -/*!************************************************************!*\ - !*** ./node_modules/core-js-pure/internals/whitespaces.js ***! - \************************************************************/ +/* 290 */ +/*!***********************************************************************!*\ + !*** ./node_modules/core-js-pure/internals/array-method-is-strict.js ***! + \***********************************************************************/ /*! no static exports found */ /*! all exports used */ -/***/ (function(module, exports) { +/***/ (function(module, exports, __webpack_require__) { -// a string of all valid unicode whitespaces -// eslint-disable-next-line max-len -module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; +"use strict"; + +var fails = __webpack_require__(/*! ../internals/fails */ 43); + +module.exports = function (METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails(function () { + // eslint-disable-next-line no-useless-call,no-throw-literal + method.call(null, argument || function () { throw 1; }, 1); + }); +}; /***/ }), -/* 258 */ -/*!***************************************************************!*\ - !*** ./node_modules/core-js-pure/stable/instance/for-each.js ***! - \***************************************************************/ +/* 291 */ +/*!***********************************************************!*\ + !*** ./node_modules/core-js/internals/array-iteration.js ***! + \***********************************************************/ /*! no static exports found */ /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -__webpack_require__(/*! ../../modules/web.dom-collections.iterator */ 222); -var forEach = __webpack_require__(/*! ../array/virtual/for-each */ 356); -var classof = __webpack_require__(/*! ../../internals/classof */ 147); -var ArrayPrototype = Array.prototype; +var bind = __webpack_require__(/*! ../internals/function-bind-context */ 215); +var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ 129); +var toObject = __webpack_require__(/*! ../internals/to-object */ 90); +var toLength = __webpack_require__(/*! ../internals/to-length */ 85); +var arraySpeciesCreate = __webpack_require__(/*! ../internals/array-species-create */ 353); -var DOMIterables = { - DOMTokenList: true, - NodeList: true +var push = [].push; + +// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation +var createMethod = function (TYPE) { + var IS_MAP = TYPE == 1; + var IS_FILTER = TYPE == 2; + var IS_SOME = TYPE == 3; + var IS_EVERY = TYPE == 4; + var IS_FIND_INDEX = TYPE == 6; + var IS_FILTER_OUT = TYPE == 7; + var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject($this); + var self = IndexedObject(O); + var boundFunction = bind(callbackfn, that, 3); + var length = toLength(self.length); + var index = 0; + var create = specificCreate || arraySpeciesCreate; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push.call(target, value); // filter + } else switch (TYPE) { + case 4: return false; // every + case 7: push.call(target, value); // filterOut + } + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; + }; }; -module.exports = function (it) { - var own = it.forEach; - return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.forEach) - // eslint-disable-next-line no-prototype-builtins - || DOMIterables.hasOwnProperty(classof(it)) ? forEach : own; +module.exports = { + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + forEach: createMethod(0), + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + map: createMethod(1), + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + filter: createMethod(2), + // `Array.prototype.some` method + // https://tc39.es/ecma262/#sec-array.prototype.some + some: createMethod(3), + // `Array.prototype.every` method + // https://tc39.es/ecma262/#sec-array.prototype.every + every: createMethod(4), + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + find: createMethod(5), + // `Array.prototype.findIndex` method + // https://tc39.es/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod(6), + // `Array.prototype.filterOut` method + // https://github.com/tc39/proposal-array-filtering + filterOut: createMethod(7) }; /***/ }), -/* 259 */ +/* 292 */ /*!*************************************!*\ !*** ./dev/View/Popup/Languages.js ***! \*************************************/ @@ -21368,22 +22389,22 @@ module.exports = function (it) { __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LanguagesPopupView", function() { return LanguagesPopupView; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return LanguagesPopupView; }); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 18); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/map */ 17); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! _ */ 3); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ko */ 1); /* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Utils */ 2); /* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Knoin/Knoin */ 7); -/* harmony import */ var Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Knoin/AbstractViewNext */ 28); - +/* harmony import */ var Knoin_AbstractViewNext__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Knoin/AbstractViewNext */ 25); var _dec, _class; + // import {view, ViewType} from 'Knoin/Knoin'; @@ -21392,7 +22413,7 @@ var LanguagesPopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_5__ name: 'View/Popup/Languages', templateID: 'PopupsLanguages' }), _dec(_class = /*#__PURE__*/function (_AbstractViewNext) { - Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(LanguagesPopupView, _AbstractViewNext); + Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(LanguagesPopupView, _AbstractViewNext); function LanguagesPopupView() { var _this; @@ -21404,7 +22425,7 @@ var LanguagesPopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_5__ _this.languages = ko__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].computed(function () { var userLanguage = _this.userLanguage(); - return _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, _this.langs(), function (language) { + return _babel_runtime_corejs3_core_js_stable_instance_map__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, _this.langs(), function (language) { return { key: language, user: language === userLanguage, @@ -21424,8 +22445,7 @@ var LanguagesPopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_5__ var _proto = LanguagesPopupView.prototype; _proto.languageTooltipName = function languageTooltipName(language) { - var result = Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["convertLangName"])(language, true); - return Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["convertLangName"])(language, false) === result ? '' : result; + return Object(Common_Utils__WEBPACK_IMPORTED_MODULE_4__["convertLangName"])(language, true); }; _proto.setLanguageSelection = function setLanguageSelection() { @@ -21461,7 +22481,7 @@ var LanguagesPopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_5__ /***/ }), -/* 260 */ +/* 293 */ /*!**************************!*\ !*** ./dev/bootstrap.js ***! \**************************/ @@ -21470,16 +22490,16 @@ var LanguagesPopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_5__ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.timers */ 68); -/* harmony import */ var core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_timers__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/set-timeout */ 33); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var window__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! window */ 4); /* harmony import */ var window__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Common/Utils */ 2); /* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/Globals */ 6); /* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Common_Plugins__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Plugins */ 39); +/* harmony import */ var Common_Plugins__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Plugins */ 36); /* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Common/Translator */ 9); -/* harmony import */ var Model_Email__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Model/Email */ 82); +/* harmony import */ var Model_Email__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Model/Email */ 83); @@ -21508,7 +22528,7 @@ var LanguagesPopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_5__ window__WEBPACK_IMPORTED_MODULE_1___default.a.rl = rl; var start = function start() { - window__WEBPACK_IMPORTED_MODULE_1___default.a.setTimeout(function () { + _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_0___default()(function () { Common_Globals__WEBPACK_IMPORTED_MODULE_3__["$html"].removeClass('no-js rl-booted-trigger').addClass('rl-booted'); App.bootstart(); }, Common_Enums__WEBPACK_IMPORTED_MODULE_4__["Magics"].Time10ms); @@ -21516,7 +22536,7 @@ var LanguagesPopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_5__ window__WEBPACK_IMPORTED_MODULE_1___default.a.__APP_BOOT = function (fErrorCallback) { Object(Common_Utils__WEBPACK_IMPORTED_MODULE_2__["domReady"])(function () { - window__WEBPACK_IMPORTED_MODULE_1___default.a.setTimeout(function () { + _babel_runtime_corejs3_core_js_stable_set_timeout__WEBPACK_IMPORTED_MODULE_0___default()(function () { if (window__WEBPACK_IMPORTED_MODULE_1___default.a.document.getElementById('rainloop-templates-id')) { start(); } else if (window__WEBPACK_IMPORTED_MODULE_1___default.a.rainloopTEMPLATES && window__WEBPACK_IMPORTED_MODULE_1___default.a.rainloopTEMPLATES[0]) { @@ -21533,7 +22553,7 @@ var LanguagesPopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_5__ }); /***/ }), -/* 261 */ +/* 294 */ /*!**********************************************************************!*\ !*** ./node_modules/@babel/runtime-corejs3/core-js/object/create.js ***! \**********************************************************************/ @@ -21541,10 +22561,44 @@ var LanguagesPopupView = (_dec = Object(Knoin_Knoin__WEBPACK_IMPORTED_MODULE_5__ /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! core-js-pure/features/object/create */ 366); +module.exports = __webpack_require__(/*! core-js-pure/features/object/create */ 363); /***/ }), -/* 262 */ +/* 295 */ +/*!***************************************************************************!*\ + !*** ./node_modules/@babel/runtime-corejs3/helpers/esm/setPrototypeOf.js ***! + \***************************************************************************/ +/*! exports provided: default */ +/*! exports used: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _setPrototypeOf; }); +/* harmony import */ var _babel_runtime_corejs3_core_js_object_set_prototype_of__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js/object/set-prototype-of */ 296); +/* harmony import */ var _babel_runtime_corejs3_core_js_object_set_prototype_of__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_object_set_prototype_of__WEBPACK_IMPORTED_MODULE_0__); + +function _setPrototypeOf(o, p) { + _setPrototypeOf = _babel_runtime_corejs3_core_js_object_set_prototype_of__WEBPACK_IMPORTED_MODULE_0___default.a || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); +} + +/***/ }), +/* 296 */ +/*!********************************************************************************!*\ + !*** ./node_modules/@babel/runtime-corejs3/core-js/object/set-prototype-of.js ***! + \********************************************************************************/ +/*! no static exports found */ +/*! exports used: default */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(/*! core-js-pure/features/object/set-prototype-of */ 366); + +/***/ }), +/* 297 */ /*!***********************************!*\ !*** ./dev/Stores/AbstractApp.js ***! \***********************************/ @@ -21594,29 +22648,29 @@ var AbstractAppStore = /*#__PURE__*/function () { /***/ }), -/* 263 */ -/*!***********************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js/instance/slice.js ***! - \***********************************************************************/ +/* 298 */ +/*!**************************************************************************!*\ + !*** ./node_modules/@babel/runtime-corejs3/core-js/instance/for-each.js ***! + \**************************************************************************/ /*! no static exports found */ /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! core-js-pure/features/instance/slice */ 372); +module.exports = __webpack_require__(/*! core-js-pure/features/instance/for-each */ 369); /***/ }), -/* 264 */ -/*!*************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js/instance/reverse.js ***! - \*************************************************************************/ +/* 299 */ +/*!********************************************************************!*\ + !*** ./node_modules/@babel/runtime-corejs3/core-js/object/keys.js ***! + \********************************************************************/ /*! no static exports found */ /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! core-js-pure/features/instance/reverse */ 376); +module.exports = __webpack_require__(/*! core-js-pure/features/object/keys */ 375); /***/ }), -/* 265 */ +/* 300 */ /*!************************************************************************!*\ !*** ./node_modules/@babel/runtime-corejs3/core-js/instance/reduce.js ***! \************************************************************************/ @@ -21624,32 +22678,43 @@ module.exports = __webpack_require__(/*! core-js-pure/features/instance/reverse /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! core-js-pure/features/instance/reduce */ 380); +module.exports = __webpack_require__(/*! core-js-pure/features/instance/reduce */ 378); /***/ }), -/* 266 */ -/*!********************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js/object/keys.js ***! - \********************************************************************/ +/* 301 */ +/*!*************************************************************************!*\ + !*** ./node_modules/@babel/runtime-corejs3/core-js/instance/reverse.js ***! + \*************************************************************************/ /*! no static exports found */ /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! core-js-pure/features/object/keys */ 381); +module.exports = __webpack_require__(/*! core-js-pure/features/instance/reverse */ 379); /***/ }), -/* 267 */ -/*!**************************************************************************!*\ - !*** ./node_modules/@babel/runtime-corejs3/core-js/instance/for-each.js ***! - \**************************************************************************/ +/* 302 */ +/*!***********************************************************************!*\ + !*** ./node_modules/@babel/runtime-corejs3/core-js/instance/slice.js ***! + \***********************************************************************/ /*! no static exports found */ /*! exports used: default */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(/*! core-js-pure/features/instance/for-each */ 384); +module.exports = __webpack_require__(/*! core-js-pure/features/instance/slice */ 383); /***/ }), -/* 268 */ +/* 303 */ +/*!*******************************************************************************!*\ + !*** ./node_modules/@babel/runtime-corejs3/core-js/object/define-property.js ***! + \*******************************************************************************/ +/*! no static exports found */ +/*! exports used: default */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(/*! core-js-pure/features/object/define-property */ 387); + +/***/ }), +/* 304 */ /*!************************************!*\ !*** ./dev/Remote/AbstractAjax.js ***! \************************************/ @@ -21666,12 +22731,12 @@ module.exports = __webpack_require__(/*! core-js-pure/features/instance/for-each /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var $__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $ */ 8); /* harmony import */ var $__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var Common_Consts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/Consts */ 25); +/* harmony import */ var Common_Consts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Common/Consts */ 24); /* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Common/Enums */ 0); /* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Common/Utils */ 2); /* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Common/Globals */ 6); /* harmony import */ var Common_Links__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Common/Links */ 15); -/* harmony import */ var Common_Plugins__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Common/Plugins */ 39); +/* harmony import */ var Common_Plugins__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Common/Plugins */ 36); /* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Storage/Settings */ 5); @@ -21915,7 +22980,7 @@ var AbstractAjaxRemote = /*#__PURE__*/function () { /***/ }), -/* 269 */ +/* 305 */ /*!****************************************!*\ !*** ./dev/Screen/AbstractSettings.js ***! \****************************************/ @@ -21926,9 +22991,9 @@ var AbstractAjaxRemote = /*#__PURE__*/function () { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AbstractSettingsScreen; }); /* unused harmony export default */ -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find */ 12); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/find */ 12); +/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! _ */ 3); /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var $__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $ */ 8); @@ -21938,7 +23003,7 @@ var AbstractAjaxRemote = /*#__PURE__*/function () { /* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! Common/Utils */ 2); /* harmony import */ var Common_Links__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Common/Links */ 15); /* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Knoin/Knoin */ 7); -/* harmony import */ var Knoin_AbstractScreen__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Knoin/AbstractScreen */ 138); +/* harmony import */ var Knoin_AbstractScreen__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Knoin/AbstractScreen */ 153); @@ -21951,7 +23016,7 @@ var AbstractAjaxRemote = /*#__PURE__*/function () { var AbstractSettingsScreen = /*#__PURE__*/function (_AbstractScreen) { - Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(AbstractSettingsScreen, _AbstractScreen); + Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(AbstractSettingsScreen, _AbstractScreen); /** * @param {Array} viewModels @@ -21992,18 +23057,18 @@ var AbstractSettingsScreen = /*#__PURE__*/function (_AbstractScreen) { RoutedSettingsViewModel = null, viewModelPlace = null, viewModelDom = null; - RoutedSettingsViewModel = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, Common_Globals__WEBPACK_IMPORTED_MODULE_5__["VIEW_MODELS"].settings, function (SettingsViewModel) { + RoutedSettingsViewModel = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, Common_Globals__WEBPACK_IMPORTED_MODULE_5__["VIEW_MODELS"].settings, function (SettingsViewModel) { return SettingsViewModel && SettingsViewModel.__rlSettingsData && subName === SettingsViewModel.__rlSettingsData.Route; }); if (RoutedSettingsViewModel) { - if (_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, Common_Globals__WEBPACK_IMPORTED_MODULE_5__["VIEW_MODELS"]['settings-removed'], function (DisabledSettingsViewModel) { + if (_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, Common_Globals__WEBPACK_IMPORTED_MODULE_5__["VIEW_MODELS"]['settings-removed'], function (DisabledSettingsViewModel) { return DisabledSettingsViewModel && DisabledSettingsViewModel === RoutedSettingsViewModel; })) { RoutedSettingsViewModel = null; } - if (RoutedSettingsViewModel && _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, Common_Globals__WEBPACK_IMPORTED_MODULE_5__["VIEW_MODELS"]['settings-disabled'], function (DisabledSettingsViewModel) { + if (RoutedSettingsViewModel && _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, Common_Globals__WEBPACK_IMPORTED_MODULE_5__["VIEW_MODELS"]['settings-disabled'], function (DisabledSettingsViewModel) { return DisabledSettingsViewModel && DisabledSettingsViewModel === RoutedSettingsViewModel; })) { RoutedSettingsViewModel = null; @@ -22087,14 +23152,14 @@ var AbstractSettingsScreen = /*#__PURE__*/function (_AbstractScreen) { var _this3 = this; ___WEBPACK_IMPORTED_MODULE_2___default.a.each(Common_Globals__WEBPACK_IMPORTED_MODULE_5__["VIEW_MODELS"].settings, function (SettingsViewModel) { - if (SettingsViewModel && SettingsViewModel.__rlSettingsData && !_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, Common_Globals__WEBPACK_IMPORTED_MODULE_5__["VIEW_MODELS"]['settings-removed'], function (RemoveSettingsViewModel) { + if (SettingsViewModel && SettingsViewModel.__rlSettingsData && !_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, Common_Globals__WEBPACK_IMPORTED_MODULE_5__["VIEW_MODELS"]['settings-removed'], function (RemoveSettingsViewModel) { return RemoveSettingsViewModel && RemoveSettingsViewModel === SettingsViewModel; })) { _this3.menu.push({ route: SettingsViewModel.__rlSettingsData.Route, label: SettingsViewModel.__rlSettingsData.Label, selected: ko__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].observable(false), - disabled: !!_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, Common_Globals__WEBPACK_IMPORTED_MODULE_5__["VIEW_MODELS"]['settings-disabled'], function (DisabledSettingsViewModel) { + disabled: !!_babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, Common_Globals__WEBPACK_IMPORTED_MODULE_5__["VIEW_MODELS"]['settings-disabled'], function (DisabledSettingsViewModel) { return DisabledSettingsViewModel && DisabledSettingsViewModel === SettingsViewModel; }) }); @@ -22105,7 +23170,7 @@ var AbstractSettingsScreen = /*#__PURE__*/function (_AbstractScreen) { }; _proto.routes = function routes() { - var DefaultViewModel = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_0___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, Common_Globals__WEBPACK_IMPORTED_MODULE_5__["VIEW_MODELS"].settings, function (SettingsViewModel) { + var DefaultViewModel = _babel_runtime_corejs3_core_js_stable_instance_find__WEBPACK_IMPORTED_MODULE_1___default()(___WEBPACK_IMPORTED_MODULE_2___default.a).call(___WEBPACK_IMPORTED_MODULE_2___default.a, Common_Globals__WEBPACK_IMPORTED_MODULE_5__["VIEW_MODELS"].settings, function (SettingsViewModel) { return SettingsViewModel && SettingsViewModel.__rlSettingsData && SettingsViewModel.__rlSettingsData.IsDefault; }), defaultRoute = DefaultViewModel && DefaultViewModel.__rlSettingsData ? DefaultViewModel.__rlSettingsData.Route : 'general', @@ -22126,7 +23191,7 @@ var AbstractSettingsScreen = /*#__PURE__*/function (_AbstractScreen) { /***/ }), -/* 270 */ +/* 306 */ /*!*****************************!*\ !*** ./dev/App/Abstract.js ***! \*****************************/ @@ -22137,33 +23202,30 @@ var AbstractSettingsScreen = /*#__PURE__*/function (_AbstractScreen) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AbstractApp; }); /* unused harmony export default */ -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/core-js-stable/instance/index-of */ 30); -/* harmony import */ var _babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_corejs3_core_js_stable_instance_index_of__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! window */ 4); -/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $ */ 8); -/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! _ */ 3); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ko */ 1); -/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! key */ 21); -/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(key__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var ssm__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ssm */ 140); -/* harmony import */ var ssm__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(ssm__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Common/Globals */ 6); -/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Common/Utils */ 2); -/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Common/Enums */ 0); -/* harmony import */ var Common_Links__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Common/Links */ 15); -/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! Common/Translator */ 9); -/* harmony import */ var Common_Events__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! Common/Events */ 24); -/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! Storage/Settings */ 5); -/* harmony import */ var Stores_Language__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! Stores/Language */ 71); -/* harmony import */ var Stores_Theme__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! Stores/Theme */ 115); -/* harmony import */ var Stores_Social__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! Stores/Social */ 29); -/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! Knoin/Knoin */ 7); -/* harmony import */ var Knoin_AbstractBoot__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! Knoin/AbstractBoot */ 271); - +/* harmony import */ var _babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime-corejs3/helpers/esm/inheritsLoose */ 10); +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! window */ 4); +/* harmony import */ var window__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(window__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $ */ 8); +/* harmony import */ var $__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n($__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! _ */ 3); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(___WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var ko__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ko */ 1); +/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! key */ 20); +/* harmony import */ var key__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(key__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var ssm__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ssm */ 155); +/* harmony import */ var ssm__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(ssm__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var Common_Globals__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! Common/Globals */ 6); +/* harmony import */ var Common_Utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Common/Utils */ 2); +/* harmony import */ var Common_Enums__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! Common/Enums */ 0); +/* harmony import */ var Common_Links__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! Common/Links */ 15); +/* harmony import */ var Common_Translator__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! Common/Translator */ 9); +/* harmony import */ var Common_Events__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! Common/Events */ 23); +/* harmony import */ var Storage_Settings__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! Storage/Settings */ 5); +/* harmony import */ var Stores_Language__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! Stores/Language */ 72); +/* harmony import */ var Stores_Theme__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! Stores/Theme */ 123); +/* harmony import */ var Stores_Social__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! Stores/Social */ 26); +/* harmony import */ var Knoin_Knoin__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! Knoin/Knoin */ 7); +/* harmony import */ var Knoin_AbstractBoot__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! Knoin/AbstractBoot */ 307); @@ -22185,7 +23247,7 @@ var AbstractSettingsScreen = /*#__PURE__*/function (_AbstractScreen) { var AbstractApp = /*#__PURE__*/function (_AbstractBoot) { - Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(AbstractApp, _AbstractBoot); + Object(_babel_runtime_corejs3_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(AbstractApp, _AbstractBoot); /** * @param {RemoteStorage|AdminRemoteStorage} Remote @@ -22198,20 +23260,20 @@ var AbstractApp = /*#__PURE__*/function (_AbstractBoot) { _this.isLocalAutocomplete = true; _this.iframe = null; _this.lastErrorTime = 0; - _this.iframe = $__WEBPACK_IMPORTED_MODULE_3___default()('');else if(d){var m;m=g&&g.youtube?"lg-has-youtube":g&&g.vimeo?"lg-has-vimeo":"lg-has-html5",h.$slide.eq(i).prepend('
')}else g?(h.$slide.eq(i).prepend('
'),h.$el.trigger("hasVideo.lg",[i,r,c])):h.$slide.eq(i).prepend('
');if(h.$el.trigger("onAferAppendSlide.lg",[i]),s=h.$slide.eq(i).find(".lg-object"),u&&s.attr("sizes",u),l){s.attr("srcset",l);try{picturefill({elements:[s[0]]})}catch(t){console.error("Make sure you have included Picturefill version 2")}}".lg-sub-html"!==this.s.appendSubHtmlTo&&h.addHtml(i),h.$slide.eq(i).addClass("lg-loaded")}h.$slide.eq(i).find(".lg-object").on("load.lg error.lg",(function(){var e=0;o&&!t("body").hasClass("lg-from-hash")&&(e=o),setTimeout((function(){h.$slide.eq(i).addClass("lg-complete"),h.$el.trigger("onSlideItemLoad.lg",[i,o||0])}),e)})),g&&g.html5&&!d&&h.$slide.eq(i).addClass("lg-complete"),!0===n&&(h.$slide.eq(i).hasClass("lg-complete")?h.preload(i):h.$slide.eq(i).find(".lg-object").on("load.lg error.lg",(function(){h.preload(i)})))},o.prototype.slide=function(e,i,n){var o=this.$outer.find(".lg-current").index(),s=this;if(!s.lGalleryOn||o!==e){var r=this.$slide.length,a=s.lGalleryOn?this.s.speed:0,l=!1,u=!1;if(!s.lgBusy){var c;if(this.s.download)(c=s.s.dynamic?!1!==s.s.dynamicEl[e].downloadUrl&&(s.s.dynamicEl[e].downloadUrl||s.s.dynamicEl[e].src):"false"!==s.$items.eq(e).attr("data-download-url")&&(s.$items.eq(e).attr("data-download-url")||s.$items.eq(e).attr("href")||s.$items.eq(e).attr("data-src")))?(t("#lg-download").attr("href",c),s.$outer.removeClass("lg-hide-download")):s.$outer.addClass("lg-hide-download");if(this.$el.trigger("onBeforeSlide.lg",[o,e,i,n]),s.lgBusy=!0,clearTimeout(s.hideBartimeout),".lg-sub-html"===this.s.appendSubHtmlTo&&setTimeout((function(){s.addHtml(e)}),a),this.arrowDisable(e),i){var h=e-1,d=e+1;(0===e&&o===r-1||e===r-1&&0===o)&&(d=0,h=r-1),this.$slide.removeClass("lg-prev-slide lg-current lg-next-slide"),s.$slide.eq(h).addClass("lg-prev-slide"),s.$slide.eq(d).addClass("lg-next-slide"),s.$slide.eq(e).addClass("lg-current")}else s.$outer.addClass("lg-no-trans"),this.$slide.removeClass("lg-prev-slide lg-next-slide"),o>e?(u=!0,0!==e||o!==r-1||n||(u=!1,l=!0)):e>o&&(l=!0,e!==r-1||0!==o||n||(u=!0,l=!1)),u?(this.$slide.eq(e).addClass("lg-prev-slide"),this.$slide.eq(o).addClass("lg-next-slide")):l&&(this.$slide.eq(e).addClass("lg-next-slide"),this.$slide.eq(o).addClass("lg-prev-slide")),setTimeout((function(){s.$slide.removeClass("lg-current"),s.$slide.eq(e).addClass("lg-current"),s.$outer.removeClass("lg-no-trans")}),50);s.lGalleryOn?(setTimeout((function(){s.loadContent(e,!0,0)}),this.s.speed+50),setTimeout((function(){s.lgBusy=!1,s.$el.trigger("onAfterSlide.lg",[o,e,i,n])}),this.s.speed)):(s.loadContent(e,!0,s.s.backdropDuration),s.lgBusy=!1,s.$el.trigger("onAfterSlide.lg",[o,e,i,n])),s.lGalleryOn=!0,this.s.counter&&t("#lg-counter-current").text(e+1)}}},o.prototype.goToNextSlide=function(t){var e=this;e.lgBusy||(e.index+10?(e.index--,e.$el.trigger("onBeforePrevSlide.lg",[e.index,t]),e.slide(e.index,t,!1)):e.s.loop?(e.index=e.$items.length-1,e.$el.trigger("onBeforePrevSlide.lg",[e.index,t]),e.slide(e.index,t,!1)):e.s.slideEndAnimatoin&&(e.$outer.addClass("lg-left-end"),setTimeout((function(){e.$outer.removeClass("lg-left-end")}),400)))},o.prototype.keyPress=function(){var i=this;this.$items.length>1&&t(e).on("keyup.lg",(function(t){i.$items.length>1&&(37===t.keyCode&&(t.preventDefault(),i.goToPrevSlide()),39===t.keyCode&&(t.preventDefault(),i.goToNextSlide()))})),t(e).on("keydown.lg",(function(t){!0===i.s.escKey&&27===t.keyCode&&(t.preventDefault(),i.$outer.hasClass("lg-thumb-open")?i.$outer.removeClass("lg-thumb-open"):i.destroy())}))},o.prototype.arrow=function(){var t=this;this.$outer.find(".lg-prev").on("click.lg",(function(){t.goToPrevSlide()})),this.$outer.find(".lg-next").on("click.lg",(function(){t.goToNextSlide()}))},o.prototype.arrowDisable=function(t){!this.s.loop&&this.s.hideControlOnEnd&&(t+10?this.$outer.find(".lg-prev").removeAttr("disabled").removeClass("disabled"):this.$outer.find(".lg-prev").attr("disabled","disabled").addClass("disabled"))},o.prototype.setTranslate=function(t,e,i){this.s.useLeft?t.css("left",e):t.css({transform:"translate3d("+e+"px, "+i+"px, 0px)"})},o.prototype.touchMove=function(e,i){var n=i-e;Math.abs(n)>15&&(this.$outer.addClass("lg-dragging"),this.setTranslate(this.$slide.eq(this.index),n,0),this.setTranslate(t(".lg-prev-slide"),-this.$slide.eq(this.index).width()+n,0),this.setTranslate(t(".lg-next-slide"),this.$slide.eq(this.index).width()+n,0))},o.prototype.touchEnd=function(t){var e=this;"lg-slide"!==e.s.mode&&e.$outer.addClass("lg-slide"),this.$slide.not(".lg-current, .lg-prev-slide, .lg-next-slide").css("opacity","0"),setTimeout((function(){e.$outer.removeClass("lg-dragging"),0>t&&Math.abs(t)>e.s.swipeThreshold?e.goToNextSlide(!0):t>0&&Math.abs(t)>e.s.swipeThreshold?e.goToPrevSlide(!0):Math.abs(t)<5&&e.$el.trigger("onSlideClick.lg"),e.$slide.removeAttr("style")})),setTimeout((function(){e.$outer.hasClass("lg-dragging")||"lg-slide"===e.s.mode||e.$outer.removeClass("lg-slide")}),e.s.speed+100)},o.prototype.enableSwipe=function(){var t=this,e=0,i=0,n=!1;t.s.enableSwipe&&t.isTouch&&t.doCss()&&(t.$slide.on("touchstart.lg",(function(i){t.$outer.hasClass("lg-zoomed")||t.lgBusy||(i.preventDefault(),t.manageSwipeClass(),e=i.originalEvent.targetTouches[0].pageX)})),t.$slide.on("touchmove.lg",(function(o){t.$outer.hasClass("lg-zoomed")||(o.preventDefault(),i=o.originalEvent.targetTouches[0].pageX,t.touchMove(e,i),n=!0)})),t.$slide.on("touchend.lg",(function(){t.$outer.hasClass("lg-zoomed")||(n?(n=!1,t.touchEnd(i-e)):t.$el.trigger("onSlideClick.lg"))})))},o.prototype.enableDrag=function(){var i=this,n=0,o=0,s=!1,r=!1;i.s.enableDrag&&!i.isTouch&&i.doCss()&&(i.$slide.on("mousedown.lg",(function(e){i.$outer.hasClass("lg-zoomed")||(t(e.target).hasClass("lg-object")||t(e.target).hasClass("lg-video-play"))&&(e.preventDefault(),i.lgBusy||(i.manageSwipeClass(),n=e.pageX,s=!0,i.$outer.scrollLeft+=1,i.$outer.scrollLeft-=1,i.$outer.removeClass("lg-grab").addClass("lg-grabbing"),i.$el.trigger("onDragstart.lg")))})),t(e).on("mousemove.lg",(function(t){s&&(r=!0,o=t.pageX,i.touchMove(n,o),i.$el.trigger("onDragmove.lg"))})),t(e).on("mouseup.lg",(function(e){r?(r=!1,i.touchEnd(o-n),i.$el.trigger("onDragend.lg")):(t(e.target).hasClass("lg-object")||t(e.target).hasClass("lg-video-play"))&&i.$el.trigger("onSlideClick.lg"),s&&(s=!1,i.$outer.removeClass("lg-grabbing").addClass("lg-grab"))})))},o.prototype.manageSwipeClass=function(){var t=this.index+1,e=this.index-1,i=this.$slide.length;this.s.loop&&(0===this.index?e=i-1:this.index===i-1&&(t=0)),this.$slide.removeClass("lg-next-slide lg-prev-slide"),e>-1&&this.$slide.eq(e).addClass("lg-prev-slide"),this.$slide.eq(t).addClass("lg-next-slide")},o.prototype.mousewheel=function(){var t=this;t.$outer.on("mousewheel.lg",(function(e){e.deltaY&&(e.deltaY>0?t.goToPrevSlide():t.goToNextSlide(),e.preventDefault())}))},o.prototype.closeGallery=function(){var e=this,i=!1;this.$outer.find(".lg-close").on("click.lg",(function(){e.destroy()})),e.s.closable&&(e.$outer.on("mousedown.lg",(function(e){i=!!(t(e.target).is(".lg-outer")||t(e.target).is(".lg-item ")||t(e.target).is(".lg-img-wrap"))})),e.$outer.on("mouseup.lg",(function(n){(t(n.target).is(".lg-outer")||t(n.target).is(".lg-item ")||t(n.target).is(".lg-img-wrap")&&i)&&(e.$outer.hasClass("lg-dragging")||e.destroy())})))},o.prototype.destroy=function(i){var n=this;i||n.$el.trigger("onBeforeClose.lg"),t(e).scrollTop(n.prevScrollTop),i&&(n.s.dynamic||this.$items.off("click.lg click.lgcustom"),t.removeData(n.el,"lightGallery")),this.$el.off(".lg.tm"),t.each(t.fn.lightGallery.modules,(function(t){n.modules[t]&&n.modules[t].destroy()})),this.lGalleryOn=!1,clearTimeout(n.hideBartimeout),this.hideBartimeout=!1,t(e).off(".lg"),t("body").removeClass("lg-on lg-from-hash"),n.$outer&&n.$outer.removeClass("lg-visible"),t(".lg-backdrop").removeClass("in"),setTimeout((function(){n.$outer&&n.$outer.remove(),t(".lg-backdrop").remove(),i||n.$el.trigger("onCloseAfter.lg")}),n.s.backdropDuration+50)},t.fn.lightGallery=function(e){return this.each((function(){if(t.data(this,"lightGallery"))try{t(this).data("lightGallery").init()}catch(t){console.error("lightGallery has not initiated properly")}else t.data(this,"lightGallery",new o(this,e))}))},t.fn.lightGallery.modules={}}(jQuery,window,document),function(t,e,i,n){"use strict";var o={fullScreen:!0},s=function(e){return this.core=t(e).data("lightGallery"),this.$el=t(e),this.core.s=t.extend({},o,this.core.s),this.init(),this};s.prototype.init=function(){var t="";if(this.core.s.fullScreen){if(!(i.fullscreenEnabled||i.webkitFullscreenEnabled||i.mozFullScreenEnabled||i.msFullscreenEnabled))return;t='',this.core.$outer.find(".lg-toolbar").append(t),this.fullScreen()}},s.prototype.requestFullscreen=function(){var t=i.documentElement;t.requestFullscreen?t.requestFullscreen():t.msRequestFullscreen?t.msRequestFullscreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.webkitRequestFullscreen&&t.webkitRequestFullscreen()},s.prototype.exitFullscreen=function(){i.exitFullscreen?i.exitFullscreen():i.msExitFullscreen?i.msExitFullscreen():i.mozCancelFullScreen?i.mozCancelFullScreen():i.webkitExitFullscreen&&i.webkitExitFullscreen()},s.prototype.fullScreen=function(){var e=this;t(i).on("fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg",(function(){e.core.$outer.toggleClass("lg-fullscreen-on")})),this.core.$outer.find(".lg-fullscreen").on("click.lg",(function(){i.fullscreenElement||i.mozFullScreenElement||i.webkitFullscreenElement||i.msFullscreenElement?e.exitFullscreen():e.requestFullscreen()}))},s.prototype.destroy=function(){this.exitFullscreen(),t(i).off("fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg")},t.fn.lightGallery.modules.fullscreen=s}(jQuery,window,document),function(t,e,i,n){"use strict";var o={thumbnail:!0,animateThumb:!0,currentPagerPosition:"middle",thumbWidth:100,thumbContHeight:100,thumbMargin:5,exThumbImage:!1,showThumbByDefault:!0,toogleThumb:!0,pullCaptionUp:!0,enableThumbDrag:!0,enableThumbSwipe:!0,swipeThreshold:50,loadYoutubeThumbnail:!0,youtubeThumbSize:1,loadVimeoThumbnail:!0,vimeoThumbSize:"thumbnail_small",loadDailymotionThumbnail:!0},s=function(e){return this.core=t(e).data("lightGallery"),this.core.s=t.extend({},o,this.core.s),this.$el=t(e),this.$thumbOuter=null,this.thumbOuterWidth=0,this.thumbTotalWidth=this.core.$items.length*(this.core.s.thumbWidth+this.core.s.thumbMargin),this.thumbIndex=this.core.index,this.left=0,this.init(),this};s.prototype.init=function(){var t=this;this.core.s.thumbnail&&this.core.$items.length>1&&(this.core.s.showThumbByDefault&&setTimeout((function(){t.core.$outer.addClass("lg-thumb-open")}),700),this.core.s.pullCaptionUp&&this.core.$outer.addClass("lg-pull-caption-up"),this.build(),this.core.s.animateThumb?(this.core.s.enableThumbDrag&&!this.core.isTouch&&this.core.doCss()&&this.enableThumbDrag(),this.core.s.enableThumbSwipe&&this.core.isTouch&&this.core.doCss()&&this.enableThumbSwipe(),this.thumbClickable=!1):this.thumbClickable=!0,this.toogle(),this.thumbkeyPress())},s.prototype.build=function(){function i(t,e,i){var n,a=o.core.isVideo(t,i)||{},l="";a.youtube||a.vimeo||a.dailymotion?a.youtube?n=o.core.s.loadYoutubeThumbnail?"//img.youtube.com/vi/"+a.youtube[1]+"/"+o.core.s.youtubeThumbSize+".jpg":e:a.vimeo?o.core.s.loadVimeoThumbnail?(n="//i.vimeocdn.com/video/error_"+r+".jpg",l=a.vimeo[1]):n=e:a.dailymotion&&(n=o.core.s.loadDailymotionThumbnail?"//www.dailymotion.com/thumbnail/video/"+a.dailymotion[1]:e):n=e,s+='
',l=""}var n,o=this,s="",r="";switch(this.core.s.vimeoThumbSize){case"thumbnail_large":r="640";break;case"thumbnail_medium":r="200x150";break;case"thumbnail_small":r="100x75"}if(o.core.$outer.addClass("lg-has-thumb"),o.core.$outer.find(".lg").append('
'),o.$thumbOuter=o.core.$outer.find(".lg-thumb-outer"),o.thumbOuterWidth=o.$thumbOuter.width(),o.core.s.animateThumb&&o.core.$outer.find(".lg-thumb").css({width:o.thumbTotalWidth+"px",position:"relative"}),this.core.s.animateThumb&&o.$thumbOuter.css("height",o.core.s.thumbContHeight+"px"),o.core.s.dynamic)for(var a=0;athis.thumbTotalWidth-this.thumbOuterWidth&&(this.left=this.thumbTotalWidth-this.thumbOuterWidth),this.left<0&&(this.left=0),this.core.lGalleryOn?(e.hasClass("on")||this.core.$outer.find(".lg-thumb").css("transition-duration",this.core.s.speed+"ms"),this.core.doCss()||e.animate({left:-this.left+"px"},this.core.s.speed)):this.core.doCss()||e.css("left",-this.left+"px"),this.setTranslate(this.left)}},s.prototype.enableThumbDrag=function(){var i=this,n=0,o=0,s=!1,r=!1,a=0;i.$thumbOuter.addClass("lg-grab"),i.core.$outer.find(".lg-thumb").on("mousedown.lg.thumb",(function(t){i.thumbTotalWidth>i.thumbOuterWidth&&(t.preventDefault(),n=t.pageX,s=!0,i.core.$outer.scrollLeft+=1,i.core.$outer.scrollLeft-=1,i.thumbClickable=!1,i.$thumbOuter.removeClass("lg-grab").addClass("lg-grabbing"))})),t(e).on("mousemove.lg.thumb",(function(t){s&&(a=i.left,r=!0,o=t.pageX,i.$thumbOuter.addClass("lg-dragging"),(a-=o-n)>i.thumbTotalWidth-i.thumbOuterWidth&&(a=i.thumbTotalWidth-i.thumbOuterWidth),0>a&&(a=0),i.setTranslate(a))})),t(e).on("mouseup.lg.thumb",(function(){r?(r=!1,i.$thumbOuter.removeClass("lg-dragging"),i.left=a,Math.abs(o-n)t.thumbOuterWidth&&(i.preventDefault(),e=i.originalEvent.targetTouches[0].pageX,t.thumbClickable=!1)})),t.core.$outer.find(".lg-thumb").on("touchmove.lg",(function(s){t.thumbTotalWidth>t.thumbOuterWidth&&(s.preventDefault(),i=s.originalEvent.targetTouches[0].pageX,n=!0,t.$thumbOuter.addClass("lg-dragging"),o=t.left,(o-=i-e)>t.thumbTotalWidth-t.thumbOuterWidth&&(o=t.thumbTotalWidth-t.thumbOuterWidth),0>o&&(o=0),t.setTranslate(o))})),t.core.$outer.find(".lg-thumb").on("touchend.lg",(function(){t.thumbTotalWidth>t.thumbOuterWidth&&n?(n=!1,t.$thumbOuter.removeClass("lg-dragging"),Math.abs(i-e)'),t.core.$outer.find(".lg-toogle-thumb").on("click.lg",(function(){t.core.$outer.toggleClass("lg-thumb-open")})))},s.prototype.thumbkeyPress=function(){var i=this;t(e).on("keydown.lg.thumb",(function(t){38===t.keyCode?(t.preventDefault(),i.core.$outer.addClass("lg-thumb-open")):40===t.keyCode&&(t.preventDefault(),i.core.$outer.removeClass("lg-thumb-open"))}))},s.prototype.destroy=function(){this.core.s.thumbnail&&this.core.$items.length>1&&(t(e).off("resize.lg.thumb orientationchange.lg.thumb keydown.lg.thumb"),this.$thumbOuter.remove(),this.core.$outer.removeClass("lg-has-thumb"))},t.fn.lightGallery.modules.Thumbnail=s}(jQuery,window,document),function(t,e,i,n){"use strict";var o={scale:1,zoom:!0,actualSize:!0,enableZoomAfter:300},s=function(i){return this.core=t(i).data("lightGallery"),this.core.s=t.extend({},o,this.core.s),this.core.s.zoom&&this.core.doCss()&&(this.init(),this.zoomabletimeout=!1,this.pageX=t(e).width()/2,this.pageY=t(e).height()/2+t(e).scrollTop()),this};s.prototype.init=function(){var i=this,n='';i.core.s.actualSize&&(n+=''),this.core.$outer.find(".lg-toolbar").append(n),i.core.$el.on("onSlideItemLoad.lg.tm.zoom",(function(e,n,o){var s=i.core.s.enableZoomAfter+o;t("body").hasClass("lg-from-hash")&&o?s=0:t("body").removeClass("lg-from-hash"),i.zoomabletimeout=setTimeout((function(){i.core.$slide.eq(n).addClass("lg-zoomable")}),s+30)}));var o=1,s=function(n){var o=i.core.$outer.find(".lg-current .lg-image"),s=(t(e).width()-o.width())/2,r=(t(e).height()-o.height())/2+t(e).scrollTop(),a=(n-1)*(i.pageX-s),l=(n-1)*(i.pageY-r);o.css("transform","scale3d("+n+", "+n+", 1)").attr("data-scale",n),o.parent().css({left:-a+"px",top:-l+"px"}).attr("data-x",a).attr("data-y",l)},r=function(){o>1?i.core.$outer.addClass("lg-zoomed"):i.resetZoom(),1>o&&(o=1),s(o)},a=function(n,s,a,l){var u,c=s.width();u=i.core.s.dynamic?i.core.s.dynamicEl[a].width||s[0].naturalWidth||c:i.core.$items.eq(a).attr("data-width")||s[0].naturalWidth||c,i.core.$outer.hasClass("lg-zoomed")?o=1:u>c&&(o=u/c||2),l?(i.pageX=t(e).width()/2,i.pageY=t(e).height()/2+t(e).scrollTop()):(i.pageX=n.pageX||n.originalEvent.targetTouches[0].pageX,i.pageY=n.pageY||n.originalEvent.targetTouches[0].pageY),r(),setTimeout((function(){i.core.$outer.removeClass("lg-grabbing").addClass("lg-grab")}),10)},l=!1;i.core.$el.on("onAferAppendSlide.lg.tm.zoom",(function(t,e){var n=i.core.$slide.eq(e).find(".lg-image");n.on("dblclick",(function(t){a(t,n,e)})),n.on("touchstart",(function(t){l?(clearTimeout(l),l=null,a(t,n,e)):l=setTimeout((function(){l=null}),300),t.preventDefault()}))})),t(e).on("resize.lg.zoom scroll.lg.zoom orientationchange.lg.zoom",(function(){i.pageX=t(e).width()/2,i.pageY=t(e).height()/2+t(e).scrollTop(),s(o)})),t("#lg-zoom-out").on("click.lg",(function(){i.core.$outer.find(".lg-current .lg-image").length&&(o-=i.core.s.scale,r())})),t("#lg-zoom-in").on("click.lg",(function(){i.core.$outer.find(".lg-current .lg-image").length&&(o+=i.core.s.scale,r())})),t("#lg-actual-size").on("click.lg",(function(t){a(t,i.core.$slide.eq(i.core.index).find(".lg-image"),i.core.index,!0)})),i.core.$el.on("onBeforeSlide.lg.tm",(function(){o=1,i.resetZoom()})),i.core.isTouch||i.zoomDrag(),i.core.isTouch&&i.zoomSwipe()},s.prototype.resetZoom=function(){this.core.$outer.removeClass("lg-zoomed"),this.core.$slide.find(".lg-img-wrap").removeAttr("style data-x data-y"),this.core.$slide.find(".lg-image").removeAttr("style data-scale"),this.pageX=t(e).width()/2,this.pageY=t(e).height()/2+t(e).scrollTop()},s.prototype.zoomSwipe=function(){var t=this,e={},i={},n=!1,o=!1,s=!1;t.core.$slide.on("touchstart.lg",(function(i){if(t.core.$outer.hasClass("lg-zoomed")){var n=t.core.$slide.eq(t.core.index).find(".lg-object");s=n.outerHeight()*n.attr("data-scale")>t.core.$outer.find(".lg").height(),((o=n.outerWidth()*n.attr("data-scale")>t.core.$outer.find(".lg").width())||s)&&(i.preventDefault(),e={x:i.originalEvent.targetTouches[0].pageX,y:i.originalEvent.targetTouches[0].pageY})}})),t.core.$slide.on("touchmove.lg",(function(r){if(t.core.$outer.hasClass("lg-zoomed")){var a,l,u=t.core.$slide.eq(t.core.index).find(".lg-img-wrap");r.preventDefault(),n=!0,i={x:r.originalEvent.targetTouches[0].pageX,y:r.originalEvent.targetTouches[0].pageY},t.core.$outer.addClass("lg-zoom-dragging"),l=s?-Math.abs(u.attr("data-y"))+(i.y-e.y):-Math.abs(u.attr("data-y")),a=o?-Math.abs(u.attr("data-x"))+(i.x-e.x):-Math.abs(u.attr("data-x")),(Math.abs(i.x-e.x)>15||Math.abs(i.y-e.y)>15)&&u.css({left:a+"px",top:l+"px"})}})),t.core.$slide.on("touchend.lg",(function(){t.core.$outer.hasClass("lg-zoomed")&&n&&(n=!1,t.core.$outer.removeClass("lg-zoom-dragging"),t.touchendZoom(e,i,o,s))}))},s.prototype.zoomDrag=function(){var i=this,n={},o={},s=!1,r=!1,a=!1,l=!1;i.core.$slide.on("mousedown.lg.zoom",(function(e){var o=i.core.$slide.eq(i.core.index).find(".lg-object");l=o.outerHeight()*o.attr("data-scale")>i.core.$outer.find(".lg").height(),a=o.outerWidth()*o.attr("data-scale")>i.core.$outer.find(".lg").width(),i.core.$outer.hasClass("lg-zoomed")&&t(e.target).hasClass("lg-object")&&(a||l)&&(e.preventDefault(),n={x:e.pageX,y:e.pageY},s=!0,i.core.$outer.scrollLeft+=1,i.core.$outer.scrollLeft-=1,i.core.$outer.removeClass("lg-grab").addClass("lg-grabbing"))})),t(e).on("mousemove.lg.zoom",(function(t){if(s){var e,u,c=i.core.$slide.eq(i.core.index).find(".lg-img-wrap");r=!0,o={x:t.pageX,y:t.pageY},i.core.$outer.addClass("lg-zoom-dragging"),u=l?-Math.abs(c.attr("data-y"))+(o.y-n.y):-Math.abs(c.attr("data-y")),e=a?-Math.abs(c.attr("data-x"))+(o.x-n.x):-Math.abs(c.attr("data-x")),c.css({left:e+"px",top:u+"px"})}})),t(e).on("mouseup.lg.zoom",(function(t){s&&(s=!1,i.core.$outer.removeClass("lg-zoom-dragging"),!r||n.x===o.x&&n.y===o.y||(o={x:t.pageX,y:t.pageY},i.touchendZoom(n,o,a,l)),r=!1),i.core.$outer.removeClass("lg-grabbing").addClass("lg-grab")}))},s.prototype.touchendZoom=function(t,e,i,n){var o=this,s=o.core.$slide.eq(o.core.index).find(".lg-img-wrap"),r=o.core.$slide.eq(o.core.index).find(".lg-object"),a=-Math.abs(s.attr("data-x"))+(e.x-t.x),l=-Math.abs(s.attr("data-y"))+(e.y-t.y),u=(o.core.$outer.find(".lg").height()-r.outerHeight())/2,c=Math.abs(r.outerHeight()*Math.abs(r.attr("data-scale"))-o.core.$outer.find(".lg").height()+u),h=(o.core.$outer.find(".lg").width()-r.outerWidth())/2,d=Math.abs(r.outerWidth()*Math.abs(r.attr("data-scale"))-o.core.$outer.find(".lg").width()+h);(Math.abs(e.x-t.x)>15||Math.abs(e.y-t.y)>15)&&(n&&(-c>=l?l=-c:l>=-u&&(l=-u)),i&&(-d>=a?a=-d:a>=-h&&(a=-h)),n?s.attr("data-y",Math.abs(l)):l=-Math.abs(s.attr("data-y")),i?s.attr("data-x",Math.abs(a)):a=-Math.abs(s.attr("data-x")),s.css({left:a+"px",top:l+"px"}))},s.prototype.destroy=function(){var i=this;i.core.$el.off(".lg.zoom"),t(e).off(".lg.zoom"),i.core.$slide.off(".lg.zoom"),i.core.$el.off(".lg.tm.zoom"),i.resetZoom(),clearTimeout(i.zoomabletimeout),i.zoomabletimeout=!1},t.fn.lightGallery.modules.zoom=s}(jQuery,window,document),function(t,e,i,n){"use strict";var o={autoplay:!1,pause:5e3,progressBar:!0,fourceAutoplay:!1,autoplayControls:!0,appendAutoplayControlsTo:".lg-toolbar"},s=function(e){return this.core=t(e).data("lightGallery"),this.$el=t(e),!(this.core.$items.length<2)&&(this.core.s=t.extend({},o,this.core.s),this.interval=!1,this.fromAuto=!0,this.canceledOnTouch=!1,this.fourceAutoplayTemp=this.core.s.fourceAutoplay,this.core.doCss()||(this.core.s.progressBar=!1),this.init(),this)};s.prototype.init=function(){var t=this;t.core.s.autoplayControls&&t.controls(),t.core.s.progressBar&&t.core.$outer.find(".lg").append('
'),t.progress(),t.core.s.autoplay&&t.startlAuto(),t.$el.on("onDragstart.lg.tm touchstart.lg.tm",(function(){t.interval&&(t.cancelAuto(),t.canceledOnTouch=!0)})),t.$el.on("onDragend.lg.tm touchend.lg.tm onSlideClick.lg.tm",(function(){!t.interval&&t.canceledOnTouch&&(t.startlAuto(),t.canceledOnTouch=!1)}))},s.prototype.progress=function(){var t,e,i=this;i.$el.on("onBeforeSlide.lg.tm",(function(){i.core.s.progressBar&&i.fromAuto&&(t=i.core.$outer.find(".lg-progress-bar"),e=i.core.$outer.find(".lg-progress"),i.interval&&(e.removeAttr("style"),t.removeClass("lg-start"),setTimeout((function(){e.css("transition","width "+(i.core.s.speed+i.core.s.pause)+"ms ease 0s"),t.addClass("lg-start")}),20))),i.fromAuto||i.core.s.fourceAutoplay||i.cancelAuto(),i.fromAuto=!1}))},s.prototype.controls=function(){var e=this;t(this.core.s.appendAutoplayControlsTo).append(''),e.core.$outer.find(".lg-autoplay-button").on("click.lg",(function(){t(e.core.$outer).hasClass("lg-show-autoplay")?(e.cancelAuto(),e.core.s.fourceAutoplay=!1):e.interval||(e.startlAuto(),e.core.s.fourceAutoplay=e.fourceAutoplayTemp)}))},s.prototype.startlAuto=function(){var t=this;t.core.$outer.find(".lg-progress").css("transition","width "+(t.core.s.speed+t.core.s.pause)+"ms ease 0s"),t.core.$outer.addClass("lg-show-autoplay"),t.core.$outer.find(".lg-progress-bar").addClass("lg-start"),t.interval=setInterval((function(){t.core.index+1a;r=++a)if((s=u[r])===o)return e[i[t]][n].splice(r,1),s}else if(i[t]&&e[i[t]]&&e[i[t]][n])return delete e[i[t]][n]},fire:function(i,n,o){var s,r,a,l,u;if(i[t]&&e[i[t]]&&e[i[t]][n]){for(u=[],r=0,a=(l=e[i[t]][n]).length;a>r;r++)s=l[r],u.push(s(o||{}));return u}}}}(),t=function(){var t;return t=!1,function(e,i,n){return t||(t=e.addEventListener?function(t,e,i){return t.addEventListener(e,i,!1)}:e.attachEvent?function(t,e,i){return t.attachEvent("on"+e,i,!1)}:function(t,e,i){return t["on"+e]=i}),t(e,i,n)}}(),r=function(){var t,e,n,o;for(o=3,n=i.createElement("div"),t=n.getElementsByTagName("i"),e=function(){return n.innerHTML="\x3c!--[if gt IE "+ ++o+"]>4?o:void 0}(),n=!1,d=void 0,void 0!==i.hidden?(n="hidden",d="visibilitychange"):void 0!==i.mozHidden?(n="mozHidden",d="mozvisibilitychange"):void 0!==i.msHidden?(n="msHidden",d="msvisibilitychange"):void 0!==i.webkitHidden&&(n="webkitHidden",d="webkitvisibilitychange"),h=function(){var e,n;return e=!1,(n=function(){return clearTimeout(e),"active"!==c&&a.wakeup(),o=+new Date,e=setTimeout((function(){return"active"===c?a.idle():void 0}),s)})(),t(i,"mousemove",n),t(i,"keyup",n),t(i,"touchstart",n),t(window,"scroll",n),a.focus(n),a.wakeup(n)},l=function(){var e;return!!u||(!1===n?(e="blur",9>r&&(e="focusout"),t(window,e,(function(){return a.blur()})),t(window,"focus",(function(){return a.focus()}))):t(i,d,(function(){return i[n]?a.blur():a.focus()}),!1),u=!0,h())},a={setIdleDuration:function(t){return s=1e3*t},getIdleDuration:function(){return s},getIdleInfo:function(){var t,e;return t=+new Date,e={},"idle"===c?(e.isIdle=!0,e.idleFor=t-o,e.timeLeft=0,e.timeLeftPer=100):(e.isIdle=!1,e.idleFor=t-o,e.timeLeft=o+s-t,e.timeLeftPer=(100-100*e.timeLeft/s).toFixed(2)),e},focus:function(t){return"function"==typeof t?this.on("focus",t):(c="active",e.fire(this,"focus"),e.fire(this,"wakeup"),e.fire(this,"statusChanged",{status:c})),this},blur:function(t){return"function"==typeof t?this.on("blur",t):(c="hidden",e.fire(this,"blur"),e.fire(this,"idle"),e.fire(this,"statusChanged",{status:c})),this},idle:function(t){return"function"==typeof t?this.on("idle",t):(c="idle",e.fire(this,"idle"),e.fire(this,"statusChanged",{status:c})),this},wakeup:function(t){return"function"==typeof t?this.on("wakeup",t):(c="active",e.fire(this,"wakeup"),e.fire(this,"statusChanged",{status:c})),this},on:function(t,i){return l(),e.add(this,t,i),this},off:function(t,i){return l(),e.remove(this,t,i),this},onEvery:function(t,e){var i,n;return l(),i=!1,e&&(n=setInterval((function(){return"active"===c&&!1===i?e():void 0}),1e3*t)),{stop:function(){return clearInterval(n)},pause:function(){return i=!0},resume:function(){return i=!1},code:n,callback:e}},now:function(t){return l(),c===(t||"active")}}},"function"==typeof define&&define.amd?define((function(){return e()})):"object"==typeof exports?module.exports=e():t.ifvisible=e()}.call(this); diff --git a/app/rainloop/v/1.15.0/static/js/min/openpgp.min.js b/app/rainloop/v/1.16.0/static/js/min/openpgp.min.js similarity index 100% rename from app/rainloop/v/1.15.0/static/js/min/openpgp.min.js rename to app/rainloop/v/1.16.0/static/js/min/openpgp.min.js diff --git a/app/rainloop/v/1.15.0/static/js/min/openpgp.worker.min.js b/app/rainloop/v/1.16.0/static/js/min/openpgp.worker.min.js similarity index 100% rename from app/rainloop/v/1.15.0/static/js/min/openpgp.worker.min.js rename to app/rainloop/v/1.16.0/static/js/min/openpgp.worker.min.js diff --git a/app/rainloop/v/1.16.0/static/js/min/polyfills.min.js b/app/rainloop/v/1.16.0/static/js/min/polyfills.min.js new file mode 100644 index 0000000..28cbff5 --- /dev/null +++ b/app/rainloop/v/1.16.0/static/js/min/polyfills.min.js @@ -0,0 +1 @@ +!function(t){var n={};function r(e){if(n[e])return n[e].exports;var o=n[e]={i:e,l:!1,exports:{}};return t[e].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=t,r.c=n,r.d=function(t,n,e){r.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:e})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,n){if(1&n&&(t=r(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var e=Object.create(null);if(r.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var o in t)r.d(e,o,function(n){return t[n]}.bind(null,o));return e},r.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(n,"a",n),n},r.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},r.p="rainloop/v/0.0.0/static/js/min/",r(r.s=484)}(Array(30).concat([function(t,n,r){(function(n){var r=function(t){return t&&t.Math==Math&&t};t.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n&&n)||function(){return this}()||Function("return this")()}).call(this,r(127))},,,,,,,function(t,n){t.exports=function(t){try{return!!t()}catch(t){return!0}}},,function(t,n,r){var e=r(30),o=r(105),i=r(44),c=r(137),u=r(138),a=r(214),f=o("wks"),s=e.Symbol,l=a?s:s&&s.withoutSetter||c;t.exports=function(t){return i(f,t)&&(u||"string"==typeof f[t])||(u&&i(s,t)?f[t]=s[t]:f[t]=l("Symbol."+t)),f[t]}},,,function(t,n,r){var e=r(49);t.exports=function(t){if(!e(t))throw TypeError(String(t)+" is not an object");return t}},,function(t,n,r){var e=r(90),o={}.hasOwnProperty;t.exports=function(t,n){return o.call(e(t),n)}},,,function(t,n,r){var e=r(55),o=r(66),i=r(96);t.exports=e?function(t,n,r){return o.f(t,n,i(1,r))}:function(t,n,r){return t[n]=r,t}},,function(t,n){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},,,,,,function(t,n,r){var e=r(37);t.exports=!e((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},function(t,n){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},,,,,,,,,function(t,n,r){var e=r(30),o=r(128).f,i=r(47),c=r(69),u=r(97),a=r(210),f=r(183);t.exports=function(t,n){var r,s,l,p,v,h=t.target,d=t.global,y=t.stat;if(r=d?e:y?e[h]||u(h,{}):(e[h]||{}).prototype)for(s in n){if(p=n[s],l=t.noTargetGet?(v=o(r,s))&&v.value:r[s],!f(d?s:h+(y?".":"#")+s,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;a(p,l)}(t.sham||l&&l.sham)&&i(p,"sham",!0),c(r,s,p,t)}}},function(t,n,r){var e=r(55),o=r(135),i=r(42),c=r(134),u=Object.defineProperty;n.f=e?u:function(t,n,r){if(i(t),n=c(n,!0),i(r),o)try{return u(t,n,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(t[n]=r.value),t}},,,function(t,n,r){var e=r(30),o=r(47),i=r(44),c=r(97),u=r(130),a=r(131),f=a.get,s=a.enforce,l=String(String).split("String");(t.exports=function(t,n,r,u){var a,f=!!u&&!!u.unsafe,p=!!u&&!!u.enumerable,v=!!u&&!!u.noTargetGet;"function"==typeof r&&("string"!=typeof n||i(r,"name")||o(r,"name",n),(a=s(r)).source||(a.source=l.join("string"==typeof n?n:""))),t!==e?(f?!v&&t[n]&&(p=!0):delete t[n],p?t[n]=r:o(t,n,r)):p?t[n]=r:c(n,r)})(Function.prototype,"toString",(function(){return"function"==typeof this&&f(this).source||u(this)}))},,,,function(t,n,r){var e=r(129),o=r(56);t.exports=function(t){return e(o(t))}},function(t,n){var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}},,,,,function(t,n,r){var e=r(166),o=r(30),i=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,n){return arguments.length<2?i(e[t])||i(o[t]):e[t]&&e[t][n]||o[t]&&o[t][n]}},function(t,n){var r=Math.ceil,e=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?e:r)(t)}},,,,,function(t,n,r){var e=r(80),o=Math.min;t.exports=function(t){return t>0?o(e(t),9007199254740991):0}},function(t,n,r){var e=r(100),o=r(69),i=r(217);e||o(Object.prototype,"toString",i,{unsafe:!0})},,,,function(t,n,r){var e=r(56);t.exports=function(t){return Object(e(t))}},,,,,,function(t,n){t.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},function(t,n,r){var e=r(30),o=r(47);t.exports=function(t,n){try{o(e,t,n)}catch(r){e[t]=n}return n}},function(t,n,r){var e=r(30),o=r(97),i="__core-js_shared__",c=e[i]||o(i,{});t.exports=c},function(t,n){t.exports=!1},function(t,n,r){var e={};e[r(39)("toStringTag")]="z",t.exports="[object z]"===String(e)},,,,,function(t,n,r){var e=r(99),o=r(98);(t.exports=function(t,n){return o[t]||(o[t]=void 0!==n?n:{})})("versions",[]).push({version:"3.12.0",mode:e?"pure":"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})},function(t,n){t.exports={}},,,,,function(t,n,r){var e=r(105),o=r(137),i=e("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},function(t,n){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(t,n){t.exports={}},,,,,,,,,,,,,,function(t,n){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(t){"object"==typeof window&&(r=window)}t.exports=r},function(t,n,r){var e=r(55),o=r(180),i=r(96),c=r(73),u=r(134),a=r(44),f=r(135),s=Object.getOwnPropertyDescriptor;n.f=e?s:function(t,n){if(t=c(t),n=u(n,!0),f)try{return s(t,n)}catch(t){}if(a(t,n))return i(!o.f.call(t,n),t[n])}},function(t,n,r){var e=r(37),o=r(74),i="".split;t.exports=e((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==o(t)?i.call(t,""):Object(t)}:Object},function(t,n,r){var e=r(98),o=Function.toString;"function"!=typeof e.inspectSource&&(e.inspectSource=function(t){return o.call(t)}),t.exports=e.inspectSource},function(t,n,r){var e,o,i,c=r(209),u=r(30),a=r(49),f=r(47),s=r(44),l=r(98),p=r(111),v=r(106),h="Object already initialized",d=u.WeakMap;if(c){var y=l.state||(l.state=new d),g=y.get,m=y.has,x=y.set;e=function(t,n){if(m.call(y,t))throw new TypeError(h);return n.facade=t,x.call(y,t,n),n},o=function(t){return g.call(y,t)||{}},i=function(t){return m.call(y,t)}}else{var b=p("state");v[b]=!0,e=function(t,n){if(s(t,b))throw new TypeError(h);return n.facade=t,f(t,b,n),n},o=function(t){return s(t,b)?t[b]:{}},i=function(t){return s(t,b)}}t.exports={set:e,get:o,has:i,enforce:function(t){return i(t)?o(t):e(t,{})},getterFor:function(t){return function(n){var r;if(!a(n)||(r=o(n)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return r}}}},function(t,n){t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},,function(t,n,r){var e=r(49);t.exports=function(t,n){if(!e(t))return t;var r,o;if(n&&"function"==typeof(r=t.toString)&&!e(o=r.call(t)))return o;if("function"==typeof(r=t.valueOf)&&!e(o=r.call(t)))return o;if(!n&&"function"==typeof(r=t.toString)&&!e(o=r.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,n,r){var e=r(55),o=r(37),i=r(136);t.exports=!e&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},function(t,n,r){var e=r(30),o=r(49),i=e.document,c=o(i)&&o(i.createElement);t.exports=function(t){return c?i.createElement(t):{}}},function(t,n){var r=0,e=Math.random();t.exports=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++r+e).toString(36)}},function(t,n,r){var e=r(157),o=r(37);t.exports=!!Object.getOwnPropertySymbols&&!o((function(){return!String(Symbol())||!Symbol.sham&&e&&e<41}))},,,,,,,,,,,,,,,,,,function(t,n,r){var e=r(44),o=r(73),i=r(181).indexOf,c=r(106);t.exports=function(t,n){var r,u=o(t),a=0,f=[];for(r in u)!e(c,r)&&e(u,r)&&f.push(r);for(;n.length>a;)e(u,r=n[a++])&&(~i(f,r)||f.push(r));return f}},function(t,n,r){var e,o,i=r(30),c=r(167),u=i.process,a=u&&u.versions,f=a&&a.v8;f?o=(e=f.split("."))[0]<4?1:e[0]+e[1]:c&&(!(e=c.match(/Edge\/(\d+)/))||e[1]>=74)&&(e=c.match(/Chrome\/(\d+)/))&&(o=e[1]),t.exports=o&&+o},,,,,,,,,function(t,n,r){var e=r(30);t.exports=e},function(t,n,r){var e=r(79);t.exports=e("navigator","userAgent")||""},function(t,n,r){var e,o=r(42),i=r(242),c=r(112),u=r(106),a=r(236),f=r(136),s=r(111),l=s("IE_PROTO"),p=function(){},v=function(t){return"