Version Description
- June 24, 2022 = UPDATE: Updated all packages for security updates. FIX: Fixed issue with Unsplash API variable declaration.
Download this release
Release Info
Developer | dcooney |
Plugin | ![]() |
Version | 4.6.2 |
Comparing to | |
See all releases |
Code changes from version 4.6.1 to 4.6.2
- README.txt +4 -0
- dist/js/instant-images-block.js +2804 -294
- dist/js/instant-images-block.min.js +21 -12
- dist/js/instant-images-media.js +2773 -294
- dist/js/instant-images-media.min.js +8 -9
README.txt
CHANGED
@@ -131,6 +131,10 @@ How to install Instant Images.
|
|
131 |
|
132 |
== Changelog ==
|
133 |
|
|
|
|
|
|
|
|
|
134 |
= 4.6.1 - January 14, 2022 =
|
135 |
NEW: Added default API keys for all API providers 🎉 . Default API keys can still be overwritten in the plugin settings shouls you want to use your own key.
|
136 |
NEW: Added rate-limit checker to determine the status of the API and display an alert warning if the limit has been exceeded.
|
131 |
|
132 |
== Changelog ==
|
133 |
|
134 |
+
= 4.6.2 - June 24, 2022 =
|
135 |
+
UPDATE: Updated all packages for security updates.
|
136 |
+
FIX: Fixed issue with Unsplash API variable declaration.
|
137 |
+
|
138 |
= 4.6.1 - January 14, 2022 =
|
139 |
NEW: Added default API keys for all API providers 🎉 . Default API keys can still be overwritten in the plugin settings shouls you want to use your own key.
|
140 |
NEW: Added rate-limit checker to determine the status of the API and display an alert warning if the limit has been exceeded.
|
dist/js/instant-images-block.js
CHANGED
@@ -125,15 +125,28 @@ var buildURL = __webpack_require__(/*! ./../helpers/buildURL */ "./node_modules/
|
|
125 |
var buildFullPath = __webpack_require__(/*! ../core/buildFullPath */ "./node_modules/axios/lib/core/buildFullPath.js");
|
126 |
var parseHeaders = __webpack_require__(/*! ./../helpers/parseHeaders */ "./node_modules/axios/lib/helpers/parseHeaders.js");
|
127 |
var isURLSameOrigin = __webpack_require__(/*! ./../helpers/isURLSameOrigin */ "./node_modules/axios/lib/helpers/isURLSameOrigin.js");
|
128 |
-
var
|
|
|
|
|
|
|
129 |
|
130 |
module.exports = function xhrAdapter(config) {
|
131 |
return new Promise(function dispatchXhrRequest(resolve, reject) {
|
132 |
var requestData = config.data;
|
133 |
var requestHeaders = config.headers;
|
134 |
var responseType = config.responseType;
|
|
|
|
|
|
|
|
|
|
|
135 |
|
136 |
-
|
|
|
|
|
|
|
|
|
|
|
137 |
delete requestHeaders['Content-Type']; // Let the browser set it
|
138 |
}
|
139 |
|
@@ -147,6 +160,7 @@ module.exports = function xhrAdapter(config) {
|
|
147 |
}
|
148 |
|
149 |
var fullPath = buildFullPath(config.baseURL, config.url);
|
|
|
150 |
request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);
|
151 |
|
152 |
// Set the request timeout in MS
|
@@ -169,7 +183,13 @@ module.exports = function xhrAdapter(config) {
|
|
169 |
request: request
|
170 |
};
|
171 |
|
172 |
-
settle(
|
|
|
|
|
|
|
|
|
|
|
|
|
173 |
|
174 |
// Clean up request
|
175 |
request = null;
|
@@ -204,7 +224,7 @@ module.exports = function xhrAdapter(config) {
|
|
204 |
return;
|
205 |
}
|
206 |
|
207 |
-
reject(
|
208 |
|
209 |
// Clean up request
|
210 |
request = null;
|
@@ -214,7 +234,7 @@ module.exports = function xhrAdapter(config) {
|
|
214 |
request.onerror = function handleError() {
|
215 |
// Real errors are hidden from us by the browser
|
216 |
// onerror should only fire if it's a network error
|
217 |
-
reject(
|
218 |
|
219 |
// Clean up request
|
220 |
request = null;
|
@@ -222,14 +242,15 @@ module.exports = function xhrAdapter(config) {
|
|
222 |
|
223 |
// Handle timeout
|
224 |
request.ontimeout = function handleTimeout() {
|
225 |
-
var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';
|
|
|
226 |
if (config.timeoutErrorMessage) {
|
227 |
timeoutErrorMessage = config.timeoutErrorMessage;
|
228 |
}
|
229 |
-
reject(
|
230 |
timeoutErrorMessage,
|
|
|
231 |
config,
|
232 |
-
config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',
|
233 |
request));
|
234 |
|
235 |
// Clean up request
|
@@ -283,24 +304,36 @@ module.exports = function xhrAdapter(config) {
|
|
283 |
request.upload.addEventListener('progress', config.onUploadProgress);
|
284 |
}
|
285 |
|
286 |
-
if (config.cancelToken) {
|
287 |
// Handle cancellation
|
288 |
-
|
|
|
289 |
if (!request) {
|
290 |
return;
|
291 |
}
|
292 |
-
|
293 |
request.abort();
|
294 |
-
reject(cancel);
|
295 |
-
// Clean up request
|
296 |
request = null;
|
297 |
-
}
|
|
|
|
|
|
|
|
|
|
|
298 |
}
|
299 |
|
300 |
if (!requestData) {
|
301 |
requestData = null;
|
302 |
}
|
303 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
304 |
// Send the request
|
305 |
request.send(requestData);
|
306 |
});
|
@@ -323,7 +356,7 @@ var utils = __webpack_require__(/*! ./utils */ "./node_modules/axios/lib/utils.j
|
|
323 |
var bind = __webpack_require__(/*! ./helpers/bind */ "./node_modules/axios/lib/helpers/bind.js");
|
324 |
var Axios = __webpack_require__(/*! ./core/Axios */ "./node_modules/axios/lib/core/Axios.js");
|
325 |
var mergeConfig = __webpack_require__(/*! ./core/mergeConfig */ "./node_modules/axios/lib/core/mergeConfig.js");
|
326 |
-
var defaults = __webpack_require__(/*! ./defaults */ "./node_modules/axios/lib/defaults.js");
|
327 |
|
328 |
/**
|
329 |
* Create an instance of Axios
|
@@ -341,6 +374,11 @@ function createInstance(defaultConfig) {
|
|
341 |
// Copy context to instance
|
342 |
utils.extend(instance, context);
|
343 |
|
|
|
|
|
|
|
|
|
|
|
344 |
return instance;
|
345 |
}
|
346 |
|
@@ -350,15 +388,18 @@ var axios = createInstance(defaults);
|
|
350 |
// Expose Axios class to allow class inheritance
|
351 |
axios.Axios = Axios;
|
352 |
|
353 |
-
// Factory for creating new instances
|
354 |
-
axios.create = function create(instanceConfig) {
|
355 |
-
return createInstance(mergeConfig(axios.defaults, instanceConfig));
|
356 |
-
};
|
357 |
-
|
358 |
// Expose Cancel & CancelToken
|
359 |
-
axios.
|
360 |
axios.CancelToken = __webpack_require__(/*! ./cancel/CancelToken */ "./node_modules/axios/lib/cancel/CancelToken.js");
|
361 |
axios.isCancel = __webpack_require__(/*! ./cancel/isCancel */ "./node_modules/axios/lib/cancel/isCancel.js");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
362 |
|
363 |
// Expose all/spread
|
364 |
axios.all = function all(promises) {
|
@@ -375,37 +416,6 @@ module.exports = axios;
|
|
375 |
module.exports.default = axios;
|
376 |
|
377 |
|
378 |
-
/***/ }),
|
379 |
-
|
380 |
-
/***/ "./node_modules/axios/lib/cancel/Cancel.js":
|
381 |
-
/*!*************************************************!*\
|
382 |
-
!*** ./node_modules/axios/lib/cancel/Cancel.js ***!
|
383 |
-
\*************************************************/
|
384 |
-
/*! no static exports found */
|
385 |
-
/***/ (function(module, exports, __webpack_require__) {
|
386 |
-
|
387 |
-
"use strict";
|
388 |
-
|
389 |
-
|
390 |
-
/**
|
391 |
-
* A `Cancel` is an object that is thrown when an operation is canceled.
|
392 |
-
*
|
393 |
-
* @class
|
394 |
-
* @param {string=} message The message.
|
395 |
-
*/
|
396 |
-
function Cancel(message) {
|
397 |
-
this.message = message;
|
398 |
-
}
|
399 |
-
|
400 |
-
Cancel.prototype.toString = function toString() {
|
401 |
-
return 'Cancel' + (this.message ? ': ' + this.message : '');
|
402 |
-
};
|
403 |
-
|
404 |
-
Cancel.prototype.__CANCEL__ = true;
|
405 |
-
|
406 |
-
module.exports = Cancel;
|
407 |
-
|
408 |
-
|
409 |
/***/ }),
|
410 |
|
411 |
/***/ "./node_modules/axios/lib/cancel/CancelToken.js":
|
@@ -418,7 +428,7 @@ module.exports = Cancel;
|
|
418 |
"use strict";
|
419 |
|
420 |
|
421 |
-
var
|
422 |
|
423 |
/**
|
424 |
* A `CancelToken` is an object that can be used to request cancellation of an operation.
|
@@ -432,24 +442,55 @@ function CancelToken(executor) {
|
|
432 |
}
|
433 |
|
434 |
var resolvePromise;
|
|
|
435 |
this.promise = new Promise(function promiseExecutor(resolve) {
|
436 |
resolvePromise = resolve;
|
437 |
});
|
438 |
|
439 |
var token = this;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
440 |
executor(function cancel(message) {
|
441 |
if (token.reason) {
|
442 |
// Cancellation has already been requested
|
443 |
return;
|
444 |
}
|
445 |
|
446 |
-
token.reason = new
|
447 |
resolvePromise(token.reason);
|
448 |
});
|
449 |
}
|
450 |
|
451 |
/**
|
452 |
-
* Throws a `
|
453 |
*/
|
454 |
CancelToken.prototype.throwIfRequested = function throwIfRequested() {
|
455 |
if (this.reason) {
|
@@ -457,6 +498,37 @@ CancelToken.prototype.throwIfRequested = function throwIfRequested() {
|
|
457 |
}
|
458 |
};
|
459 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
460 |
/**
|
461 |
* Returns an object that contains a new `CancelToken` and a function that, when called,
|
462 |
* cancels the `CancelToken`.
|
@@ -475,6 +547,40 @@ CancelToken.source = function source() {
|
|
475 |
module.exports = CancelToken;
|
476 |
|
477 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
478 |
/***/ }),
|
479 |
|
480 |
/***/ "./node_modules/axios/lib/cancel/isCancel.js":
|
@@ -509,6 +615,7 @@ var buildURL = __webpack_require__(/*! ../helpers/buildURL */ "./node_modules/ax
|
|
509 |
var InterceptorManager = __webpack_require__(/*! ./InterceptorManager */ "./node_modules/axios/lib/core/InterceptorManager.js");
|
510 |
var dispatchRequest = __webpack_require__(/*! ./dispatchRequest */ "./node_modules/axios/lib/core/dispatchRequest.js");
|
511 |
var mergeConfig = __webpack_require__(/*! ./mergeConfig */ "./node_modules/axios/lib/core/mergeConfig.js");
|
|
|
512 |
var validator = __webpack_require__(/*! ../helpers/validator */ "./node_modules/axios/lib/helpers/validator.js");
|
513 |
|
514 |
var validators = validator.validators;
|
@@ -530,14 +637,14 @@ function Axios(instanceConfig) {
|
|
530 |
*
|
531 |
* @param {Object} config The config specific for this request (merged with this.defaults)
|
532 |
*/
|
533 |
-
Axios.prototype.request = function request(config) {
|
534 |
/*eslint no-param-reassign:0*/
|
535 |
// Allow for axios('example/url'[, config]) a la fetch API
|
536 |
-
if (typeof
|
537 |
-
config = arguments[1] || {};
|
538 |
-
config.url = arguments[0];
|
539 |
-
} else {
|
540 |
config = config || {};
|
|
|
|
|
|
|
541 |
}
|
542 |
|
543 |
config = mergeConfig(this.defaults, config);
|
@@ -555,9 +662,9 @@ Axios.prototype.request = function request(config) {
|
|
555 |
|
556 |
if (transitional !== undefined) {
|
557 |
validator.assertOptions(transitional, {
|
558 |
-
silentJSONParsing: validators.transitional(validators.boolean
|
559 |
-
forcedJSONParsing: validators.transitional(validators.boolean
|
560 |
-
clarifyTimeoutError: validators.transitional(validators.boolean
|
561 |
}, false);
|
562 |
}
|
563 |
|
@@ -623,7 +730,8 @@ Axios.prototype.request = function request(config) {
|
|
623 |
|
624 |
Axios.prototype.getUri = function getUri(config) {
|
625 |
config = mergeConfig(this.defaults, config);
|
626 |
-
|
|
|
627 |
};
|
628 |
|
629 |
// Provide aliases for supported request methods
|
@@ -640,18 +748,126 @@ utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData
|
|
640 |
|
641 |
utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
|
642 |
/*eslint func-names:0*/
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
650 |
});
|
651 |
|
652 |
module.exports = Axios;
|
653 |
|
654 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
655 |
/***/ }),
|
656 |
|
657 |
/***/ "./node_modules/axios/lib/core/InterceptorManager.js":
|
@@ -750,36 +966,6 @@ module.exports = function buildFullPath(baseURL, requestedURL) {
|
|
750 |
};
|
751 |
|
752 |
|
753 |
-
/***/ }),
|
754 |
-
|
755 |
-
/***/ "./node_modules/axios/lib/core/createError.js":
|
756 |
-
/*!****************************************************!*\
|
757 |
-
!*** ./node_modules/axios/lib/core/createError.js ***!
|
758 |
-
\****************************************************/
|
759 |
-
/*! no static exports found */
|
760 |
-
/***/ (function(module, exports, __webpack_require__) {
|
761 |
-
|
762 |
-
"use strict";
|
763 |
-
|
764 |
-
|
765 |
-
var enhanceError = __webpack_require__(/*! ./enhanceError */ "./node_modules/axios/lib/core/enhanceError.js");
|
766 |
-
|
767 |
-
/**
|
768 |
-
* Create an Error with the specified message, config, error code, request and response.
|
769 |
-
*
|
770 |
-
* @param {string} message The error message.
|
771 |
-
* @param {Object} config The config.
|
772 |
-
* @param {string} [code] The error code (for example, 'ECONNABORTED').
|
773 |
-
* @param {Object} [request] The request.
|
774 |
-
* @param {Object} [response] The response.
|
775 |
-
* @returns {Error} The created error.
|
776 |
-
*/
|
777 |
-
module.exports = function createError(message, config, code, request, response) {
|
778 |
-
var error = new Error(message);
|
779 |
-
return enhanceError(error, config, code, request, response);
|
780 |
-
};
|
781 |
-
|
782 |
-
|
783 |
/***/ }),
|
784 |
|
785 |
/***/ "./node_modules/axios/lib/core/dispatchRequest.js":
|
@@ -795,15 +981,20 @@ module.exports = function createError(message, config, code, request, response)
|
|
795 |
var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
|
796 |
var transformData = __webpack_require__(/*! ./transformData */ "./node_modules/axios/lib/core/transformData.js");
|
797 |
var isCancel = __webpack_require__(/*! ../cancel/isCancel */ "./node_modules/axios/lib/cancel/isCancel.js");
|
798 |
-
var defaults = __webpack_require__(/*! ../defaults */ "./node_modules/axios/lib/defaults.js");
|
|
|
799 |
|
800 |
/**
|
801 |
-
* Throws a `
|
802 |
*/
|
803 |
function throwIfCancellationRequested(config) {
|
804 |
if (config.cancelToken) {
|
805 |
config.cancelToken.throwIfRequested();
|
806 |
}
|
|
|
|
|
|
|
|
|
807 |
}
|
808 |
|
809 |
/**
|
@@ -874,60 +1065,6 @@ module.exports = function dispatchRequest(config) {
|
|
874 |
};
|
875 |
|
876 |
|
877 |
-
/***/ }),
|
878 |
-
|
879 |
-
/***/ "./node_modules/axios/lib/core/enhanceError.js":
|
880 |
-
/*!*****************************************************!*\
|
881 |
-
!*** ./node_modules/axios/lib/core/enhanceError.js ***!
|
882 |
-
\*****************************************************/
|
883 |
-
/*! no static exports found */
|
884 |
-
/***/ (function(module, exports, __webpack_require__) {
|
885 |
-
|
886 |
-
"use strict";
|
887 |
-
|
888 |
-
|
889 |
-
/**
|
890 |
-
* Update an Error with the specified config, error code, and response.
|
891 |
-
*
|
892 |
-
* @param {Error} error The error to update.
|
893 |
-
* @param {Object} config The config.
|
894 |
-
* @param {string} [code] The error code (for example, 'ECONNABORTED').
|
895 |
-
* @param {Object} [request] The request.
|
896 |
-
* @param {Object} [response] The response.
|
897 |
-
* @returns {Error} The error.
|
898 |
-
*/
|
899 |
-
module.exports = function enhanceError(error, config, code, request, response) {
|
900 |
-
error.config = config;
|
901 |
-
if (code) {
|
902 |
-
error.code = code;
|
903 |
-
}
|
904 |
-
|
905 |
-
error.request = request;
|
906 |
-
error.response = response;
|
907 |
-
error.isAxiosError = true;
|
908 |
-
|
909 |
-
error.toJSON = function toJSON() {
|
910 |
-
return {
|
911 |
-
// Standard
|
912 |
-
message: this.message,
|
913 |
-
name: this.name,
|
914 |
-
// Microsoft
|
915 |
-
description: this.description,
|
916 |
-
number: this.number,
|
917 |
-
// Mozilla
|
918 |
-
fileName: this.fileName,
|
919 |
-
lineNumber: this.lineNumber,
|
920 |
-
columnNumber: this.columnNumber,
|
921 |
-
stack: this.stack,
|
922 |
-
// Axios
|
923 |
-
config: this.config,
|
924 |
-
code: this.code
|
925 |
-
};
|
926 |
-
};
|
927 |
-
return error;
|
928 |
-
};
|
929 |
-
|
930 |
-
|
931 |
/***/ }),
|
932 |
|
933 |
/***/ "./node_modules/axios/lib/core/mergeConfig.js":
|
@@ -955,17 +1092,6 @@ module.exports = function mergeConfig(config1, config2) {
|
|
955 |
config2 = config2 || {};
|
956 |
var config = {};
|
957 |
|
958 |
-
var valueFromConfig2Keys = ['url', 'method', 'data'];
|
959 |
-
var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];
|
960 |
-
var defaultToConfig2Keys = [
|
961 |
-
'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',
|
962 |
-
'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',
|
963 |
-
'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',
|
964 |
-
'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',
|
965 |
-
'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'
|
966 |
-
];
|
967 |
-
var directMergeKeys = ['validateStatus'];
|
968 |
-
|
969 |
function getMergedValue(target, source) {
|
970 |
if (utils.isPlainObject(target) && utils.isPlainObject(source)) {
|
971 |
return utils.merge(target, source);
|
@@ -977,51 +1103,75 @@ module.exports = function mergeConfig(config1, config2) {
|
|
977 |
return source;
|
978 |
}
|
979 |
|
|
|
980 |
function mergeDeepProperties(prop) {
|
981 |
if (!utils.isUndefined(config2[prop])) {
|
982 |
-
|
983 |
} else if (!utils.isUndefined(config1[prop])) {
|
984 |
-
|
985 |
}
|
986 |
}
|
987 |
|
988 |
-
|
|
|
989 |
if (!utils.isUndefined(config2[prop])) {
|
990 |
-
|
991 |
}
|
992 |
-
}
|
993 |
-
|
994 |
-
utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);
|
995 |
|
996 |
-
|
|
|
997 |
if (!utils.isUndefined(config2[prop])) {
|
998 |
-
|
999 |
} else if (!utils.isUndefined(config1[prop])) {
|
1000 |
-
|
1001 |
}
|
1002 |
-
}
|
1003 |
|
1004 |
-
|
|
|
1005 |
if (prop in config2) {
|
1006 |
-
|
1007 |
} else if (prop in config1) {
|
1008 |
-
|
1009 |
-
}
|
1010 |
-
}
|
1011 |
-
|
1012 |
-
var
|
1013 |
-
|
1014 |
-
|
1015 |
-
|
1016 |
-
|
1017 |
-
|
1018 |
-
|
1019 |
-
|
1020 |
-
|
1021 |
-
|
1022 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1023 |
|
1024 |
-
utils.forEach(
|
|
|
|
|
|
|
|
|
1025 |
|
1026 |
return config;
|
1027 |
};
|
@@ -1039,7 +1189,7 @@ module.exports = function mergeConfig(config1, config2) {
|
|
1039 |
"use strict";
|
1040 |
|
1041 |
|
1042 |
-
var
|
1043 |
|
1044 |
/**
|
1045 |
* Resolve or reject a Promise based on response status.
|
@@ -1053,10 +1203,10 @@ module.exports = function settle(resolve, reject, response) {
|
|
1053 |
if (!response.status || !validateStatus || validateStatus(response.status)) {
|
1054 |
resolve(response);
|
1055 |
} else {
|
1056 |
-
reject(
|
1057 |
'Request failed with status code ' + response.status,
|
|
|
1058 |
response.config,
|
1059 |
-
null,
|
1060 |
response.request,
|
1061 |
response
|
1062 |
));
|
@@ -1077,7 +1227,7 @@ module.exports = function settle(resolve, reject, response) {
|
|
1077 |
|
1078 |
|
1079 |
var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
|
1080 |
-
var defaults = __webpack_require__(/*!
|
1081 |
|
1082 |
/**
|
1083 |
* Transform the data for a request or a response
|
@@ -1100,19 +1250,21 @@ module.exports = function transformData(data, headers, fns) {
|
|
1100 |
|
1101 |
/***/ }),
|
1102 |
|
1103 |
-
/***/ "./node_modules/axios/lib/defaults.js":
|
1104 |
-
|
1105 |
-
!*** ./node_modules/axios/lib/defaults.js ***!
|
1106 |
-
|
1107 |
/*! no static exports found */
|
1108 |
/***/ (function(module, exports, __webpack_require__) {
|
1109 |
|
1110 |
"use strict";
|
1111 |
/* WEBPACK VAR INJECTION */(function(process) {
|
1112 |
|
1113 |
-
var utils = __webpack_require__(/*!
|
1114 |
-
var normalizeHeaderName = __webpack_require__(/*!
|
1115 |
-
var
|
|
|
|
|
1116 |
|
1117 |
var DEFAULT_CONTENT_TYPE = {
|
1118 |
'Content-Type': 'application/x-www-form-urlencoded'
|
@@ -1128,10 +1280,10 @@ function getDefaultAdapter() {
|
|
1128 |
var adapter;
|
1129 |
if (typeof XMLHttpRequest !== 'undefined') {
|
1130 |
// For browsers use XHR adapter
|
1131 |
-
adapter = __webpack_require__(/*!
|
1132 |
} else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {
|
1133 |
// For node use HTTP adapter
|
1134 |
-
adapter = __webpack_require__(/*!
|
1135 |
}
|
1136 |
return adapter;
|
1137 |
}
|
@@ -1153,11 +1305,7 @@ function stringifySafely(rawValue, parser, encoder) {
|
|
1153 |
|
1154 |
var defaults = {
|
1155 |
|
1156 |
-
transitional:
|
1157 |
-
silentJSONParsing: true,
|
1158 |
-
forcedJSONParsing: true,
|
1159 |
-
clarifyTimeoutError: false
|
1160 |
-
},
|
1161 |
|
1162 |
adapter: getDefaultAdapter(),
|
1163 |
|
@@ -1181,15 +1329,25 @@ var defaults = {
|
|
1181 |
setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');
|
1182 |
return data.toString();
|
1183 |
}
|
1184 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1185 |
setContentTypeIfUnset(headers, 'application/json');
|
1186 |
return stringifySafely(data);
|
1187 |
}
|
|
|
1188 |
return data;
|
1189 |
}],
|
1190 |
|
1191 |
transformResponse: [function transformResponse(data) {
|
1192 |
-
var transitional = this.transitional;
|
1193 |
var silentJSONParsing = transitional && transitional.silentJSONParsing;
|
1194 |
var forcedJSONParsing = transitional && transitional.forcedJSONParsing;
|
1195 |
var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';
|
@@ -1200,7 +1358,7 @@ var defaults = {
|
|
1200 |
} catch (e) {
|
1201 |
if (strictJSONParsing) {
|
1202 |
if (e.name === 'SyntaxError') {
|
1203 |
-
throw
|
1204 |
}
|
1205 |
throw e;
|
1206 |
}
|
@@ -1222,14 +1380,18 @@ var defaults = {
|
|
1222 |
maxContentLength: -1,
|
1223 |
maxBodyLength: -1,
|
1224 |
|
|
|
|
|
|
|
|
|
1225 |
validateStatus: function validateStatus(status) {
|
1226 |
return status >= 200 && status < 300;
|
1227 |
-
}
|
1228 |
-
};
|
1229 |
|
1230 |
-
|
1231 |
-
|
1232 |
-
|
|
|
1233 |
}
|
1234 |
};
|
1235 |
|
@@ -1243,7 +1405,39 @@ utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
|
|
1243 |
|
1244 |
module.exports = defaults;
|
1245 |
|
1246 |
-
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1247 |
|
1248 |
/***/ }),
|
1249 |
|
@@ -1463,7 +1657,7 @@ module.exports = function isAbsoluteURL(url) {
|
|
1463 |
// A URL is considered absolute if it begins with "<scheme>://" or "//" (protocol-relative URL).
|
1464 |
// RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
|
1465 |
// by any combination of letters, digits, plus, period, or hyphen.
|
1466 |
-
return /^([a-z][a-z\d
|
1467 |
};
|
1468 |
|
1469 |
|
@@ -1479,6 +1673,8 @@ module.exports = function isAbsoluteURL(url) {
|
|
1479 |
"use strict";
|
1480 |
|
1481 |
|
|
|
|
|
1482 |
/**
|
1483 |
* Determines whether the payload is an error thrown by Axios
|
1484 |
*
|
@@ -1486,7 +1682,7 @@ module.exports = function isAbsoluteURL(url) {
|
|
1486 |
* @returns {boolean} True if the payload is an error thrown by Axios, otherwise false
|
1487 |
*/
|
1488 |
module.exports = function isAxiosError(payload) {
|
1489 |
-
return (
|
1490 |
};
|
1491 |
|
1492 |
|
@@ -1594,6 +1790,19 @@ module.exports = function normalizeHeaderName(headers, normalizedName) {
|
|
1594 |
};
|
1595 |
|
1596 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1597 |
/***/ }),
|
1598 |
|
1599 |
/***/ "./node_modules/axios/lib/helpers/parseHeaders.js":
|
@@ -1659,6 +1868,24 @@ module.exports = function parseHeaders(headers) {
|
|
1659 |
};
|
1660 |
|
1661 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1662 |
/***/ }),
|
1663 |
|
1664 |
/***/ "./node_modules/axios/lib/helpers/spread.js":
|
@@ -1698,6 +1925,91 @@ module.exports = function spread(callback) {
|
|
1698 |
};
|
1699 |
|
1700 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1701 |
/***/ }),
|
1702 |
|
1703 |
/***/ "./node_modules/axios/lib/helpers/validator.js":
|
@@ -1710,7 +2022,8 @@ module.exports = function spread(callback) {
|
|
1710 |
"use strict";
|
1711 |
|
1712 |
|
1713 |
-
var
|
|
|
1714 |
|
1715 |
var validators = {};
|
1716 |
|
@@ -1722,48 +2035,29 @@ var validators = {};
|
|
1722 |
});
|
1723 |
|
1724 |
var deprecatedWarnings = {};
|
1725 |
-
var currentVerArr = pkg.version.split('.');
|
1726 |
-
|
1727 |
-
/**
|
1728 |
-
* Compare package versions
|
1729 |
-
* @param {string} version
|
1730 |
-
* @param {string?} thanVersion
|
1731 |
-
* @returns {boolean}
|
1732 |
-
*/
|
1733 |
-
function isOlderVersion(version, thanVersion) {
|
1734 |
-
var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;
|
1735 |
-
var destVer = version.split('.');
|
1736 |
-
for (var i = 0; i < 3; i++) {
|
1737 |
-
if (pkgVersionArr[i] > destVer[i]) {
|
1738 |
-
return true;
|
1739 |
-
} else if (pkgVersionArr[i] < destVer[i]) {
|
1740 |
-
return false;
|
1741 |
-
}
|
1742 |
-
}
|
1743 |
-
return false;
|
1744 |
-
}
|
1745 |
|
1746 |
/**
|
1747 |
* Transitional option validator
|
1748 |
-
* @param {function|boolean?} validator
|
1749 |
-
* @param {string?} version
|
1750 |
-
* @param {string} message
|
1751 |
* @returns {function}
|
1752 |
*/
|
1753 |
validators.transitional = function transitional(validator, version, message) {
|
1754 |
-
var isDeprecated = version && isOlderVersion(version);
|
1755 |
-
|
1756 |
function formatMessage(opt, desc) {
|
1757 |
-
return '[Axios v' +
|
1758 |
}
|
1759 |
|
1760 |
// eslint-disable-next-line func-names
|
1761 |
return function(value, opt, opts) {
|
1762 |
if (validator === false) {
|
1763 |
-
throw new
|
|
|
|
|
|
|
1764 |
}
|
1765 |
|
1766 |
-
if (
|
1767 |
deprecatedWarnings[opt] = true;
|
1768 |
// eslint-disable-next-line no-console
|
1769 |
console.warn(
|
@@ -1787,7 +2081,7 @@ validators.transitional = function transitional(validator, version, message) {
|
|
1787 |
|
1788 |
function assertOptions(options, schema, allowUnknown) {
|
1789 |
if (typeof options !== 'object') {
|
1790 |
-
throw new
|
1791 |
}
|
1792 |
var keys = Object.keys(options);
|
1793 |
var i = keys.length;
|
@@ -1798,18 +2092,17 @@ function assertOptions(options, schema, allowUnknown) {
|
|
1798 |
var value = options[opt];
|
1799 |
var result = value === undefined || validator(value, opt, options);
|
1800 |
if (result !== true) {
|
1801 |
-
throw new
|
1802 |
}
|
1803 |
continue;
|
1804 |
}
|
1805 |
if (allowUnknown !== true) {
|
1806 |
-
throw
|
1807 |
}
|
1808 |
}
|
1809 |
}
|
1810 |
|
1811 |
module.exports = {
|
1812 |
-
isOlderVersion: isOlderVersion,
|
1813 |
assertOptions: assertOptions,
|
1814 |
validators: validators
|
1815 |
};
|
@@ -1833,6 +2126,22 @@ var bind = __webpack_require__(/*! ./helpers/bind */ "./node_modules/axios/lib/h
|
|
1833 |
|
1834 |
var toString = Object.prototype.toString;
|
1835 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1836 |
/**
|
1837 |
* Determine if a value is an Array
|
1838 |
*
|
@@ -1840,7 +2149,7 @@ var toString = Object.prototype.toString;
|
|
1840 |
* @returns {boolean} True if value is an Array, otherwise false
|
1841 |
*/
|
1842 |
function isArray(val) {
|
1843 |
-
return
|
1844 |
}
|
1845 |
|
1846 |
/**
|
@@ -1867,22 +2176,12 @@ function isBuffer(val) {
|
|
1867 |
/**
|
1868 |
* Determine if a value is an ArrayBuffer
|
1869 |
*
|
|
|
1870 |
* @param {Object} val The value to test
|
1871 |
* @returns {boolean} True if value is an ArrayBuffer, otherwise false
|
1872 |
*/
|
1873 |
-
|
1874 |
-
return toString.call(val) === '[object ArrayBuffer]';
|
1875 |
-
}
|
1876 |
|
1877 |
-
/**
|
1878 |
-
* Determine if a value is a FormData
|
1879 |
-
*
|
1880 |
-
* @param {Object} val The value to test
|
1881 |
-
* @returns {boolean} True if value is an FormData, otherwise false
|
1882 |
-
*/
|
1883 |
-
function isFormData(val) {
|
1884 |
-
return (typeof FormData !== 'undefined') && (val instanceof FormData);
|
1885 |
-
}
|
1886 |
|
1887 |
/**
|
1888 |
* Determine if a value is a view on an ArrayBuffer
|
@@ -1895,7 +2194,7 @@ function isArrayBufferView(val) {
|
|
1895 |
if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {
|
1896 |
result = ArrayBuffer.isView(val);
|
1897 |
} else {
|
1898 |
-
result = (val) && (val.buffer) && (val.buffer
|
1899 |
}
|
1900 |
return result;
|
1901 |
}
|
@@ -1937,7 +2236,7 @@ function isObject(val) {
|
|
1937 |
* @return {boolean} True if value is a plain Object, otherwise false
|
1938 |
*/
|
1939 |
function isPlainObject(val) {
|
1940 |
-
if (
|
1941 |
return false;
|
1942 |
}
|
1943 |
|
@@ -1948,32 +2247,38 @@ function isPlainObject(val) {
|
|
1948 |
/**
|
1949 |
* Determine if a value is a Date
|
1950 |
*
|
|
|
1951 |
* @param {Object} val The value to test
|
1952 |
* @returns {boolean} True if value is a Date, otherwise false
|
1953 |
*/
|
1954 |
-
|
1955 |
-
return toString.call(val) === '[object Date]';
|
1956 |
-
}
|
1957 |
|
1958 |
/**
|
1959 |
* Determine if a value is a File
|
1960 |
*
|
|
|
1961 |
* @param {Object} val The value to test
|
1962 |
* @returns {boolean} True if value is a File, otherwise false
|
1963 |
*/
|
1964 |
-
|
1965 |
-
return toString.call(val) === '[object File]';
|
1966 |
-
}
|
1967 |
|
1968 |
/**
|
1969 |
* Determine if a value is a Blob
|
1970 |
*
|
|
|
1971 |
* @param {Object} val The value to test
|
1972 |
* @returns {boolean} True if value is a Blob, otherwise false
|
1973 |
*/
|
1974 |
-
|
1975 |
-
|
1976 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1977 |
|
1978 |
/**
|
1979 |
* Determine if a value is a Function
|
@@ -1996,14 +2301,27 @@ function isStream(val) {
|
|
1996 |
}
|
1997 |
|
1998 |
/**
|
1999 |
-
* Determine if a value is a
|
2000 |
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2001 |
* @param {Object} val The value to test
|
2002 |
* @returns {boolean} True if value is a URLSearchParams object, otherwise false
|
2003 |
*/
|
2004 |
-
|
2005 |
-
return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;
|
2006 |
-
}
|
2007 |
|
2008 |
/**
|
2009 |
* Trim excess whitespace off the beginning and end of a string
|
@@ -2150,6 +2468,94 @@ function stripBOM(content) {
|
|
2150 |
return content;
|
2151 |
}
|
2152 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2153 |
module.exports = {
|
2154 |
isArray: isArray,
|
2155 |
isArrayBuffer: isArrayBuffer,
|
@@ -2172,20 +2578,1981 @@ module.exports = {
|
|
2172 |
merge: merge,
|
2173 |
extend: extend,
|
2174 |
trim: trim,
|
2175 |
-
stripBOM: stripBOM
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2176 |
};
|
2177 |
|
2178 |
|
2179 |
/***/ }),
|
2180 |
|
2181 |
-
/***/ "./node_modules/
|
2182 |
/*!*****************************************!*\
|
2183 |
-
!*** ./node_modules/
|
2184 |
\*****************************************/
|
2185 |
-
/*!
|
2186 |
-
/***/ (function(module) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|