@senior-agronegocio/angular-components 0.0.89 → 0.0.90

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/bundles/senior-agronegocio-angular-components.umd.js +345 -342
  2. package/bundles/senior-agronegocio-angular-components.umd.js.map +1 -1
  3. package/bundles/senior-agronegocio-angular-components.umd.min.js +2 -2
  4. package/bundles/senior-agronegocio-angular-components.umd.min.js.map +1 -1
  5. package/common/agro-platform-utils.class.d.ts +9 -0
  6. package/common/agro-string-utils.class.d.ts +46 -146
  7. package/common/colors.class.d.ts +2 -0
  8. package/components/cancel-event-dialog/cancel-event-dialog.component.d.ts +2 -2
  9. package/enums/agro-numbers.enum.d.ts +3 -2
  10. package/esm2015/common/agro-cookie-utils.class.js +7 -3
  11. package/esm2015/common/agro-date-utils.class.js +7 -3
  12. package/esm2015/common/agro-logics.class.js +22 -20
  13. package/esm2015/common/agro-name-utils.class.js +5 -4
  14. package/esm2015/common/agro-number-utils.class.js +20 -10
  15. package/esm2015/common/agro-object-utils.class.js +9 -7
  16. package/esm2015/common/agro-platform-utils.class.js +46 -50
  17. package/esm2015/common/agro-string-utils.class.js +217 -215
  18. package/esm2015/common/colors.class.js +3 -1
  19. package/esm2015/components/cancel-event-dialog/cancel-event-dialog.component.js +8 -8
  20. package/esm2015/components/event-control-board/event-control-board.component.js +2 -2
  21. package/esm2015/components/event-steps/index.js +1 -1
  22. package/esm2015/enums/agro-numbers.enum.js +3 -2
  23. package/esm2015/services/websocket/websocket.service.js +2 -2
  24. package/esm5/common/agro-cookie-utils.class.js +7 -3
  25. package/esm5/common/agro-date-utils.class.js +7 -3
  26. package/esm5/common/agro-logics.class.js +34 -42
  27. package/esm5/common/agro-name-utils.class.js +5 -4
  28. package/esm5/common/agro-number-utils.class.js +20 -10
  29. package/esm5/common/agro-object-utils.class.js +9 -7
  30. package/esm5/common/agro-platform-utils.class.js +46 -50
  31. package/esm5/common/agro-string-utils.class.js +217 -215
  32. package/esm5/common/colors.class.js +3 -1
  33. package/esm5/components/cancel-event-dialog/cancel-event-dialog.component.js +8 -8
  34. package/esm5/components/event-control-board/event-control-board.component.js +2 -2
  35. package/esm5/components/event-steps/index.js +1 -1
  36. package/esm5/enums/agro-numbers.enum.js +3 -2
  37. package/esm5/services/websocket/websocket.service.js +2 -2
  38. package/fesm2015/senior-agronegocio-angular-components.js +334 -321
  39. package/fesm2015/senior-agronegocio-angular-components.js.map +1 -1
  40. package/fesm5/senior-agronegocio-angular-components.js +345 -342
  41. package/fesm5/senior-agronegocio-angular-components.js.map +1 -1
  42. package/package.json +1 -1
  43. package/common/numbers.d.ts +0 -6
  44. package/esm2015/common/numbers.js +0 -8
  45. package/esm5/common/numbers.js +0 -8
@@ -1,4 +1,5 @@
1
1
  import { AGRO_NUMBERS } from '../enums';
2
+ var DEFAULT_DATE_FORMAT = 'DD/MM/YYYY';
2
3
  var AgroDateUtils = /** @class */ (function () {
3
4
  function AgroDateUtils() {
4
5
  }
@@ -104,7 +105,7 @@ var AgroDateUtils = /** @class */ (function () {
104
105
  * @returns
105
106
  */
106
107
  AgroDateUtils.formatDate = function (date, format) {
107
- if (format === void 0) { format = 'DD/MM/YYYY'; }
108
+ if (format === void 0) { format = DEFAULT_DATE_FORMAT; }
108
109
  var moment = require('moment');
109
110
  return moment(date).utc().format(format);
110
111
  };
@@ -114,9 +115,12 @@ var AgroDateUtils = /** @class */ (function () {
114
115
  * @returns
115
116
  */
116
117
  AgroDateUtils.padZero = function (value) {
117
- return value < AGRO_NUMBERS.TEN ? '0' + value : value.toString();
118
+ if (value < AGRO_NUMBERS.TEN) {
119
+ return '0' + value;
120
+ }
121
+ return value.toString();
118
122
  };
119
123
  return AgroDateUtils;
120
124
  }());
121
125
  export { AgroDateUtils };
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1kYXRlLXV0aWxzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1hZ3JvbmVnb2Npby9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21tb24vYWdyby1kYXRlLXV0aWxzLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFeEM7SUFBQTtJQThIQSxDQUFDO0lBN0hHOzs7O09BSUc7SUFDVywrQkFBaUIsR0FBL0IsVUFBZ0MsSUFBNkI7UUFDekQsT0FBTyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxTQUFTLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDVyxrQ0FBb0IsR0FBbEMsVUFBbUMsSUFBNkI7UUFDNUQsT0FBTyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNXLHFCQUFPLEdBQXJCLFVBQXNCLElBQVk7UUFDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDVyx1QkFBUyxHQUF2QixVQUF3QixJQUFZO1FBQ2hDLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNXLHNCQUFRLEdBQXRCLFVBQXVCLElBQVUsRUFBRSxTQUFlO1FBQzlDLE9BQU8sSUFBSSxHQUFHLFNBQVMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDVyxxQkFBTyxHQUFyQixVQUFzQixJQUFVLEVBQUUsU0FBZTtRQUM3QyxPQUFPLElBQUksR0FBRyxTQUFTLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ1cscUJBQU8sR0FBckIsVUFBc0IsSUFBVSxFQUFFLFNBQWU7UUFDN0MsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNXLDJCQUFhLEdBQTNCLFVBQTRCLElBQVUsRUFBRSxTQUFlO1FBQ25ELE9BQU8sSUFBSSxJQUFJLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDVyw4QkFBZ0IsR0FBOUIsVUFBK0IsSUFBVSxFQUFFLFNBQWU7UUFDdEQsT0FBTyxJQUFJLElBQUksU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNXLG9CQUFNLEdBQXBCLFVBQXFCLElBQVUsRUFBRSxTQUFlO1FBQzVDLE9BQU8sSUFBSSxHQUFHLFNBQVMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDVyx1QkFBUyxHQUF2QixVQUF3QixJQUFVLEVBQUUsU0FBZTtRQUMvQyxPQUFPLElBQUksR0FBRyxTQUFTLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksd0JBQVUsR0FBakIsVUFBa0IsSUFBVSxFQUFFLE1BQTZCO1FBQTdCLHVCQUFBLEVBQUEscUJBQTZCO1FBQ3ZELElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxxQkFBTyxHQUFkLFVBQWUsS0FBYTtRQUN4QixPQUFPLEtBQUssR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDckUsQ0FBQztJQUNMLG9CQUFDO0FBQUQsQ0FBQyxBQTlIRCxJQThIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFHUk9fTlVNQkVSUyB9IGZyb20gJy4uL2VudW1zJztcclxuXHJcbmV4cG9ydCBjbGFzcyBBZ3JvRGF0ZVV0aWxzIHtcclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW1hIGRhdGEgw6kgbnVsYSBvdSBpbmRlZmluaWRhLlxyXG4gICAgICogQHBhcmFtIGRhdGUgLSBBIGRhdGEgYSBzZXIgdmVyaWZpY2FkYS5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgYSBkYXRhIGZvciBudWxhIG91IGluZGVmaW5pZGEsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBpc051bGxPclVuZGVmaW5lZChkYXRlOiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBkYXRlID09PSBudWxsIHx8IGRhdGUgPT09IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtYSBkYXRhIG7Do28gw6kgbnVsYSBlIG7Do28gw6kgaW5kZWZpbmlkYS5cclxuICAgICAqIEBwYXJhbSBkYXRlIC0gQSBkYXRhIGEgc2VyIHZlcmlmaWNhZGEuXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIGEgZGF0YSBuw6NvIGZvciBudWxhIGUgbsOjbyBmb3IgaW5kZWZpbmlkYSwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzTm90TnVsbE9yVW5kZWZpbmVkKGRhdGU6IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICFBZ3JvRGF0ZVV0aWxzLmlzTnVsbE9yVW5kZWZpbmVkKGRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW1hIGRhdGEgw6kgdsOhbGlkYS5cclxuICAgICAqIEBwYXJhbSBkYXRlIC0gQSBkYXRhIGEgc2VyIHZlcmlmaWNhZGEuXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIGEgZGF0YSBmb3IgdsOhbGlkYSwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzVmFsaWQoZGF0ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICFpc05hTihEYXRlLnBhcnNlKGRhdGUpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtYSBkYXRhIMOpIGludsOhbGlkYS5cclxuICAgICAqIEBwYXJhbSBkYXRlIC0gQSBkYXRhIGEgc2VyIHZlcmlmaWNhZGEuXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIGEgZGF0YSBmb3IgaW52w6FsaWRhLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNJbnZhbGlkKGRhdGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhQWdyb0RhdGVVdGlscy5pc1ZhbGlkKGRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW1hIGRhdGEgw6kgYW50ZXMgZGUgb3V0cmEgZGF0YS5cclxuICAgICAqIEBwYXJhbSBkYXRlIC0gQSBkYXRhIGEgc2VyIHZlcmlmaWNhZGEuXHJcbiAgICAgKiBAcGFyYW0gb3RoZXJEYXRlIC0gQSBvdXRyYSBkYXRhIGEgc2VyIGNvbXBhcmFkYS5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgYSBkYXRhIGZvciBhbnRlcyBkYSBvdXRyYSBkYXRhLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNCZWZvcmUoZGF0ZTogRGF0ZSwgb3RoZXJEYXRlOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGUgPCBvdGhlckRhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bWEgZGF0YSDDqSBkZXBvaXMgZGUgb3V0cmEgZGF0YS5cclxuICAgICAqIEBwYXJhbSBkYXRlIC0gQSBkYXRhIGEgc2VyIHZlcmlmaWNhZGEuXHJcbiAgICAgKiBAcGFyYW0gb3RoZXJEYXRlIC0gQSBvdXRyYSBkYXRhIGEgc2VyIGNvbXBhcmFkYS5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgYSBkYXRhIGZvciBkZXBvaXMgZGEgb3V0cmEgZGF0YSwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzQWZ0ZXIoZGF0ZTogRGF0ZSwgb3RoZXJEYXRlOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGUgPiBvdGhlckRhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bWEgZGF0YSDDqSBpZ3VhbCBhIG91dHJhIGRhdGEuXHJcbiAgICAgKiBAcGFyYW0gZGF0ZSAtIEEgZGF0YSBhIHNlciB2ZXJpZmljYWRhLlxyXG4gICAgICogQHBhcmFtIG90aGVyRGF0ZSAtIEEgb3V0cmEgZGF0YSBhIHNlciBjb21wYXJhZGEuXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIGEgZGF0YSBmb3IgaWd1YWwgYSBvdXRyYSBkYXRhLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNFcXVhbChkYXRlOiBEYXRlLCBvdGhlckRhdGU6IERhdGUpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZGF0ZS5nZXRUaW1lKCkgPT09IG90aGVyRGF0ZS5nZXRUaW1lKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bWEgZGF0YSDDqSBtZW5vciBvdSBpZ3VhbCBhIG91dHJhIGRhdGEuXHJcbiAgICAgKiBAcGFyYW0gZGF0ZSAtIEEgZGF0YSBhIHNlciB2ZXJpZmljYWRhLlxyXG4gICAgICogQHBhcmFtIG90aGVyRGF0ZSAtIEEgb3V0cmEgZGF0YSBhIHNlciBjb21wYXJhZGEuXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIGEgZGF0YSBmb3IgbWVub3Igb3UgaWd1YWwgYSBvdXRyYSBkYXRhLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNMZXNzT3JFcXVhbChkYXRlOiBEYXRlLCBvdGhlckRhdGU6IERhdGUpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZGF0ZSA8PSBvdGhlckRhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bWEgZGF0YSDDqSBtYWlvciBvdSBpZ3VhbCBhIG91dHJhIGRhdGEuXHJcbiAgICAgKiBAcGFyYW0gZGF0ZSAtIEEgZGF0YSBhIHNlciB2ZXJpZmljYWRhLlxyXG4gICAgICogQHBhcmFtIG90aGVyRGF0ZSAtIEEgb3V0cmEgZGF0YSBhIHNlciBjb21wYXJhZGEuXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIGEgZGF0YSBmb3IgbWFpb3Igb3UgaWd1YWwgYSBvdXRyYSBkYXRhLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNHcmVhdGVyT3JFcXVhbChkYXRlOiBEYXRlLCBvdGhlckRhdGU6IERhdGUpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZGF0ZSA+PSBvdGhlckRhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bWEgZGF0YSDDqSBtZW5vciBxdWUgb3V0cmEgZGF0YS5cclxuICAgICAqIEBwYXJhbSBkYXRlIC0gQSBkYXRhIGEgc2VyIHZlcmlmaWNhZGEuXHJcbiAgICAgKiBAcGFyYW0gb3RoZXJEYXRlIC0gQSBvdXRyYSBkYXRhIGEgc2VyIGNvbXBhcmFkYS5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgYSBkYXRhIGZvciBtZW5vciBxdWUgb3V0cmEgZGF0YSwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzTGVzcyhkYXRlOiBEYXRlLCBvdGhlckRhdGU6IERhdGUpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZGF0ZSA8IG90aGVyRGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtYSBkYXRhIMOpIG1haW9yIHF1ZSBvdXRyYSBkYXRhLlxyXG4gICAgICogQHBhcmFtIGRhdGUgLSBBIGRhdGEgYSBzZXIgdmVyaWZpY2FkYS5cclxuICAgICAqIEBwYXJhbSBvdGhlckRhdGUgLSBBIG91dHJhIGRhdGEgYSBzZXIgY29tcGFyYWRhLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBhIGRhdGEgZm9yIG1haW9yIHF1ZSBvdXRyYSBkYXRhLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNHcmVhdGVyKGRhdGU6IERhdGUsIG90aGVyRGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBkYXRlID4gb3RoZXJEYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0b3JuYSBhIGRhdGEgZm9ybWF0YWRhIGNvbmZvcm1lIG8gZm9ybWF0byBlc3BlY2lmaWNhZG8uXHJcbiAgICAgKiBAcGFyYW0gZGF0ZVxyXG4gICAgICogQHBhcmFtIGZvcm1hdFxyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGZvcm1hdERhdGUoZGF0ZTogRGF0ZSwgZm9ybWF0OiBzdHJpbmcgPSAnREQvTU0vWVlZWScpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IG1vbWVudCA9IHJlcXVpcmUoJ21vbWVudCcpO1xyXG4gICAgICAgIHJldHVybiBtb21lbnQoZGF0ZSkudXRjKCkuZm9ybWF0KGZvcm1hdCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRvcm5hIHVtYSBzdHJpbmcgY29tIG8gbsO6bWVybyBpbmZvcm1hZG8gYWRpY2lvbmFuZG8gdW0gMCDDoCBlc3F1ZXJkYSwgY2FzbyBvIG7Dum1lcm8gc2VqYSBtZW5vciBxdWUgMTAuXHJcbiAgICAgKiBAcGFyYW0gdmFsdWVcclxuICAgICAqIEByZXR1cm5zXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBwYWRaZXJvKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZSA8IEFHUk9fTlVNQkVSUy5URU4gPyAnMCcgKyB2YWx1ZSA6IHZhbHVlLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcbn0iXX0=
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1kYXRlLXV0aWxzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1hZ3JvbmVnb2Npby9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21tb24vYWdyby1kYXRlLXV0aWxzLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFeEMsSUFBTSxtQkFBbUIsR0FBRyxZQUFZLENBQUM7QUFFekM7SUFBQTtJQWlJQSxDQUFDO0lBaElHOzs7O09BSUc7SUFDVywrQkFBaUIsR0FBL0IsVUFBZ0MsSUFBNkI7UUFDekQsT0FBTyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxTQUFTLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDVyxrQ0FBb0IsR0FBbEMsVUFBbUMsSUFBNkI7UUFDNUQsT0FBTyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNXLHFCQUFPLEdBQXJCLFVBQXNCLElBQVk7UUFDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDVyx1QkFBUyxHQUF2QixVQUF3QixJQUFZO1FBQ2hDLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNXLHNCQUFRLEdBQXRCLFVBQXVCLElBQVUsRUFBRSxTQUFlO1FBQzlDLE9BQU8sSUFBSSxHQUFHLFNBQVMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDVyxxQkFBTyxHQUFyQixVQUFzQixJQUFVLEVBQUUsU0FBZTtRQUM3QyxPQUFPLElBQUksR0FBRyxTQUFTLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ1cscUJBQU8sR0FBckIsVUFBc0IsSUFBVSxFQUFFLFNBQWU7UUFDN0MsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNXLDJCQUFhLEdBQTNCLFVBQTRCLElBQVUsRUFBRSxTQUFlO1FBQ25ELE9BQU8sSUFBSSxJQUFJLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDVyw4QkFBZ0IsR0FBOUIsVUFBK0IsSUFBVSxFQUFFLFNBQWU7UUFDdEQsT0FBTyxJQUFJLElBQUksU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNXLG9CQUFNLEdBQXBCLFVBQXFCLElBQVUsRUFBRSxTQUFlO1FBQzVDLE9BQU8sSUFBSSxHQUFHLFNBQVMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDVyx1QkFBUyxHQUF2QixVQUF3QixJQUFVLEVBQUUsU0FBZTtRQUMvQyxPQUFPLElBQUksR0FBRyxTQUFTLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksd0JBQVUsR0FBakIsVUFBa0IsSUFBVSxFQUFFLE1BQW9DO1FBQXBDLHVCQUFBLEVBQUEsNEJBQW9DO1FBQzlELElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxxQkFBTyxHQUFkLFVBQWUsS0FBYTtRQUN4QixJQUFJLEtBQUssR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFO1lBQzFCLE9BQU8sR0FBRyxHQUFHLEtBQUssQ0FBQztTQUN0QjtRQUNELE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFDTCxvQkFBQztBQUFELENBQUMsQUFqSUQsSUFpSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBR1JPX05VTUJFUlMgfSBmcm9tICcuLi9lbnVtcyc7XHJcblxyXG5jb25zdCBERUZBVUxUX0RBVEVfRk9STUFUID0gJ0REL01NL1lZWVknO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFncm9EYXRlVXRpbHMge1xyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bWEgZGF0YSDDqSBudWxhIG91IGluZGVmaW5pZGEuXHJcbiAgICAgKiBAcGFyYW0gZGF0ZSAtIEEgZGF0YSBhIHNlciB2ZXJpZmljYWRhLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBhIGRhdGEgZm9yIG51bGEgb3UgaW5kZWZpbmlkYSwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzTnVsbE9yVW5kZWZpbmVkKGRhdGU6IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGUgPT09IG51bGwgfHwgZGF0ZSA9PT0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW1hIGRhdGEgbsOjbyDDqSBudWxhIGUgbsOjbyDDqSBpbmRlZmluaWRhLlxyXG4gICAgICogQHBhcmFtIGRhdGUgLSBBIGRhdGEgYSBzZXIgdmVyaWZpY2FkYS5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgYSBkYXRhIG7Do28gZm9yIG51bGEgZSBuw6NvIGZvciBpbmRlZmluaWRhLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNOb3ROdWxsT3JVbmRlZmluZWQoZGF0ZTogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIUFncm9EYXRlVXRpbHMuaXNOdWxsT3JVbmRlZmluZWQoZGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bWEgZGF0YSDDqSB2w6FsaWRhLlxyXG4gICAgICogQHBhcmFtIGRhdGUgLSBBIGRhdGEgYSBzZXIgdmVyaWZpY2FkYS5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgYSBkYXRhIGZvciB2w6FsaWRhLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNWYWxpZChkYXRlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIWlzTmFOKERhdGUucGFyc2UoZGF0ZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW1hIGRhdGEgw6kgaW52w6FsaWRhLlxyXG4gICAgICogQHBhcmFtIGRhdGUgLSBBIGRhdGEgYSBzZXIgdmVyaWZpY2FkYS5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgYSBkYXRhIGZvciBpbnbDoWxpZGEsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBpc0ludmFsaWQoZGF0ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICFBZ3JvRGF0ZVV0aWxzLmlzVmFsaWQoZGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bWEgZGF0YSDDqSBhbnRlcyBkZSBvdXRyYSBkYXRhLlxyXG4gICAgICogQHBhcmFtIGRhdGUgLSBBIGRhdGEgYSBzZXIgdmVyaWZpY2FkYS5cclxuICAgICAqIEBwYXJhbSBvdGhlckRhdGUgLSBBIG91dHJhIGRhdGEgYSBzZXIgY29tcGFyYWRhLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBhIGRhdGEgZm9yIGFudGVzIGRhIG91dHJhIGRhdGEsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBpc0JlZm9yZShkYXRlOiBEYXRlLCBvdGhlckRhdGU6IERhdGUpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZGF0ZSA8IG90aGVyRGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtYSBkYXRhIMOpIGRlcG9pcyBkZSBvdXRyYSBkYXRhLlxyXG4gICAgICogQHBhcmFtIGRhdGUgLSBBIGRhdGEgYSBzZXIgdmVyaWZpY2FkYS5cclxuICAgICAqIEBwYXJhbSBvdGhlckRhdGUgLSBBIG91dHJhIGRhdGEgYSBzZXIgY29tcGFyYWRhLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBhIGRhdGEgZm9yIGRlcG9pcyBkYSBvdXRyYSBkYXRhLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNBZnRlcihkYXRlOiBEYXRlLCBvdGhlckRhdGU6IERhdGUpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZGF0ZSA+IG90aGVyRGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtYSBkYXRhIMOpIGlndWFsIGEgb3V0cmEgZGF0YS5cclxuICAgICAqIEBwYXJhbSBkYXRlIC0gQSBkYXRhIGEgc2VyIHZlcmlmaWNhZGEuXHJcbiAgICAgKiBAcGFyYW0gb3RoZXJEYXRlIC0gQSBvdXRyYSBkYXRhIGEgc2VyIGNvbXBhcmFkYS5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgYSBkYXRhIGZvciBpZ3VhbCBhIG91dHJhIGRhdGEsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBpc0VxdWFsKGRhdGU6IERhdGUsIG90aGVyRGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBkYXRlLmdldFRpbWUoKSA9PT0gb3RoZXJEYXRlLmdldFRpbWUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtYSBkYXRhIMOpIG1lbm9yIG91IGlndWFsIGEgb3V0cmEgZGF0YS5cclxuICAgICAqIEBwYXJhbSBkYXRlIC0gQSBkYXRhIGEgc2VyIHZlcmlmaWNhZGEuXHJcbiAgICAgKiBAcGFyYW0gb3RoZXJEYXRlIC0gQSBvdXRyYSBkYXRhIGEgc2VyIGNvbXBhcmFkYS5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgYSBkYXRhIGZvciBtZW5vciBvdSBpZ3VhbCBhIG91dHJhIGRhdGEsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBpc0xlc3NPckVxdWFsKGRhdGU6IERhdGUsIG90aGVyRGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBkYXRlIDw9IG90aGVyRGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtYSBkYXRhIMOpIG1haW9yIG91IGlndWFsIGEgb3V0cmEgZGF0YS5cclxuICAgICAqIEBwYXJhbSBkYXRlIC0gQSBkYXRhIGEgc2VyIHZlcmlmaWNhZGEuXHJcbiAgICAgKiBAcGFyYW0gb3RoZXJEYXRlIC0gQSBvdXRyYSBkYXRhIGEgc2VyIGNvbXBhcmFkYS5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgYSBkYXRhIGZvciBtYWlvciBvdSBpZ3VhbCBhIG91dHJhIGRhdGEsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBpc0dyZWF0ZXJPckVxdWFsKGRhdGU6IERhdGUsIG90aGVyRGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBkYXRlID49IG90aGVyRGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtYSBkYXRhIMOpIG1lbm9yIHF1ZSBvdXRyYSBkYXRhLlxyXG4gICAgICogQHBhcmFtIGRhdGUgLSBBIGRhdGEgYSBzZXIgdmVyaWZpY2FkYS5cclxuICAgICAqIEBwYXJhbSBvdGhlckRhdGUgLSBBIG91dHJhIGRhdGEgYSBzZXIgY29tcGFyYWRhLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBhIGRhdGEgZm9yIG1lbm9yIHF1ZSBvdXRyYSBkYXRhLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNMZXNzKGRhdGU6IERhdGUsIG90aGVyRGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBkYXRlIDwgb3RoZXJEYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW1hIGRhdGEgw6kgbWFpb3IgcXVlIG91dHJhIGRhdGEuXHJcbiAgICAgKiBAcGFyYW0gZGF0ZSAtIEEgZGF0YSBhIHNlciB2ZXJpZmljYWRhLlxyXG4gICAgICogQHBhcmFtIG90aGVyRGF0ZSAtIEEgb3V0cmEgZGF0YSBhIHNlciBjb21wYXJhZGEuXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIGEgZGF0YSBmb3IgbWFpb3IgcXVlIG91dHJhIGRhdGEsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBpc0dyZWF0ZXIoZGF0ZTogRGF0ZSwgb3RoZXJEYXRlOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGUgPiBvdGhlckRhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRvcm5hIGEgZGF0YSBmb3JtYXRhZGEgY29uZm9ybWUgbyBmb3JtYXRvIGVzcGVjaWZpY2Fkby5cclxuICAgICAqIEBwYXJhbSBkYXRlXHJcbiAgICAgKiBAcGFyYW0gZm9ybWF0XHJcbiAgICAgKiBAcmV0dXJuc1xyXG4gICAgICovXHJcbiAgICBzdGF0aWMgZm9ybWF0RGF0ZShkYXRlOiBEYXRlLCBmb3JtYXQ6IHN0cmluZyA9IERFRkFVTFRfREFURV9GT1JNQVQpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IG1vbWVudCA9IHJlcXVpcmUoJ21vbWVudCcpO1xyXG4gICAgICAgIHJldHVybiBtb21lbnQoZGF0ZSkudXRjKCkuZm9ybWF0KGZvcm1hdCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRvcm5hIHVtYSBzdHJpbmcgY29tIG8gbsO6bWVybyBpbmZvcm1hZG8gYWRpY2lvbmFuZG8gdW0gMCDDoCBlc3F1ZXJkYSwgY2FzbyBvIG7Dum1lcm8gc2VqYSBtZW5vciBxdWUgMTAuXHJcbiAgICAgKiBAcGFyYW0gdmFsdWVcclxuICAgICAqIEByZXR1cm5zXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBwYWRaZXJvKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh2YWx1ZSA8IEFHUk9fTlVNQkVSUy5URU4pIHtcclxuICAgICAgICAgICAgcmV0dXJuICcwJyArIHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTtcclxuICAgIH1cclxufSJdfQ==
@@ -1,4 +1,5 @@
1
1
  import { __values } from "tslib";
2
+ import { AGRO_NUMBERS } from "../enums";
2
3
  var AgroLogics = /** @class */ (function () {
3
4
  function AgroLogics() {
4
5
  }
@@ -14,61 +15,52 @@ var AgroLogics = /** @class */ (function () {
14
15
  var e_1, _a;
15
16
  var total = data.length;
16
17
  var map = new Map();
17
- var _loop_1 = function (item) {
18
- var e_2, _a, e_3, _b;
19
- var uniqueKey = JSON.stringify(keys.map(function (c) {
20
- var e_4, _a;
21
- var parts = c.split(".");
22
- var value = item;
23
- try {
24
- for (var parts_2 = (e_4 = void 0, __values(parts)), parts_2_1 = parts_2.next(); !parts_2_1.done; parts_2_1 = parts_2.next()) {
25
- var p = parts_2_1.value;
26
- value = value === null || value === void 0 ? void 0 : value[p];
18
+ var resolvePath = function (source, path) {
19
+ var e_2, _a;
20
+ var parts = path.split(".");
21
+ var value = source;
22
+ try {
23
+ for (var parts_1 = __values(parts), parts_1_1 = parts_1.next(); !parts_1_1.done; parts_1_1 = parts_1.next()) {
24
+ var p = parts_1_1.value;
25
+ if (value == null) {
26
+ return undefined;
27
27
  }
28
+ value = value[p];
28
29
  }
29
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
30
- finally {
31
- try {
32
- if (parts_2_1 && !parts_2_1.done && (_a = parts_2.return)) _a.call(parts_2);
33
- }
34
- finally { if (e_4) throw e_4.error; }
30
+ }
31
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
32
+ finally {
33
+ try {
34
+ if (parts_1_1 && !parts_1_1.done && (_a = parts_1.return)) _a.call(parts_1);
35
35
  }
36
- return value;
37
- }));
36
+ finally { if (e_2) throw e_2.error; }
37
+ }
38
+ return value;
39
+ };
40
+ var _loop_1 = function (item) {
41
+ var e_3, _a;
42
+ var keyValues = keys.map(function (k) { return resolvePath(item, k); });
43
+ var uniqueKey = JSON.stringify(keyValues);
38
44
  if (!map.has(uniqueKey)) {
39
45
  var groupedData = {};
40
46
  try {
41
- for (var keys_1 = (e_2 = void 0, __values(keys)), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {
42
- var c = keys_1_1.value;
43
- var parts = c.split(".");
44
- var value = item;
45
- try {
46
- for (var parts_1 = (e_3 = void 0, __values(parts)), parts_1_1 = parts_1.next(); !parts_1_1.done; parts_1_1 = parts_1.next()) {
47
- var p = parts_1_1.value;
48
- value = value === null || value === void 0 ? void 0 : value[p];
49
- }
50
- }
51
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
52
- finally {
53
- try {
54
- if (parts_1_1 && !parts_1_1.done && (_b = parts_1.return)) _b.call(parts_1);
55
- }
56
- finally { if (e_3) throw e_3.error; }
57
- }
58
- // add the full entity (not only its ID)
59
- groupedData[c.toString().split(".")[0]] = value;
47
+ for (var keys_1 = (e_3 = void 0, __values(keys)), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {
48
+ var k = keys_1_1.value;
49
+ var rootName = k.toString().split(".")[0];
50
+ groupedData[rootName] = resolvePath(item, k);
60
51
  }
61
52
  }
62
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
53
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
63
54
  finally {
64
55
  try {
65
56
  if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);
66
57
  }
67
- finally { if (e_2) throw e_2.error; }
58
+ finally { if (e_3) throw e_3.error; }
68
59
  }
69
60
  map.set(uniqueKey, { data: groupedData, count: 0 });
70
61
  }
71
- map.get(uniqueKey).count++;
62
+ var entry = map.get(uniqueKey);
63
+ entry.count += AGRO_NUMBERS.ONE;
72
64
  };
73
65
  try {
74
66
  for (var data_1 = __values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {
@@ -86,7 +78,7 @@ var AgroLogics = /** @class */ (function () {
86
78
  var result = Array.from(map.values()).map(function (entry) { return ({
87
79
  data: entry.data,
88
80
  samplingQuantity: entry.count,
89
- samplingSuccess: Math.round((entry.count / total) * 100),
81
+ samplingSuccess: Math.round((entry.count / total) * AGRO_NUMBERS.ONE_HUNDRED),
90
82
  }); });
91
83
  result.sort(function (a, b) { return b.samplingSuccess - a.samplingSuccess; });
92
84
  return result;
@@ -94,4 +86,4 @@ var AgroLogics = /** @class */ (function () {
94
86
  return AgroLogics;
95
87
  }());
96
88
  export { AgroLogics };
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1sb2dpY3MuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLWxvZ2ljcy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBUUE7SUFBQTtJQXlEQSxDQUFDO0lBeEREOzs7Ozs7O09BT0c7SUFDTSxrQ0FBdUIsR0FBOUIsVUFDRSxJQUFTLEVBQ1QsSUFBMEI7O1FBRTFCLElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQStDLENBQUM7Z0NBRXhELElBQUk7O1lBQ2IsSUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFDLENBQUM7O2dCQUNULElBQU0sS0FBSyxHQUFJLENBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZDLElBQUksS0FBSyxHQUFRLElBQUksQ0FBQzs7b0JBQ3RCLEtBQWdCLElBQUEseUJBQUEsU0FBQSxLQUFLLENBQUEsQ0FBQSw0QkFBQSwrQ0FBRTt3QkFBbEIsSUFBTSxDQUFDLGtCQUFBO3dCQUNWLEtBQUssR0FBRyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUcsQ0FBQyxDQUFDLENBQUM7cUJBQ3BCOzs7Ozs7Ozs7Z0JBQ0QsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDLENBQUMsQ0FDSCxDQUFDO1lBRUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3ZCLElBQU0sV0FBVyxHQUFlLEVBQUUsQ0FBQzs7b0JBQ25DLEtBQWdCLElBQUEsd0JBQUEsU0FBQSxJQUFJLENBQUEsQ0FBQSwwQkFBQSw0Q0FBRTt3QkFBakIsSUFBTSxDQUFDLGlCQUFBO3dCQUNWLElBQU0sS0FBSyxHQUFJLENBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7d0JBQ3ZDLElBQUksS0FBSyxHQUFRLElBQUksQ0FBQzs7NEJBQ3RCLEtBQWdCLElBQUEseUJBQUEsU0FBQSxLQUFLLENBQUEsQ0FBQSw0QkFBQSwrQ0FBRTtnQ0FBbEIsSUFBTSxDQUFDLGtCQUFBO2dDQUNWLEtBQUssR0FBRyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUcsQ0FBQyxDQUFDLENBQUM7NkJBQ3BCOzs7Ozs7Ozs7d0JBQ0Qsd0NBQXdDO3dCQUN2QyxXQUFtQixDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7cUJBQzFEOzs7Ozs7Ozs7Z0JBQ0QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3JEO1lBRUQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQzs7O1lBMUI3QixLQUFtQixJQUFBLFNBQUEsU0FBQSxJQUFJLENBQUEsMEJBQUE7Z0JBQWxCLElBQU0sSUFBSSxpQkFBQTt3QkFBSixJQUFJO2FBMkJkOzs7Ozs7Ozs7UUFFRCxJQUFNLE1BQU0sR0FBNEIsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQ2xFLFVBQUMsS0FBSyxJQUFLLE9BQUEsQ0FBQztZQUNWLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsS0FBSztZQUM3QixlQUFlLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQ3pELENBQUMsRUFKUyxDQUlULENBQ0gsQ0FBQztRQUVGLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsZUFBZSxFQUFyQyxDQUFxQyxDQUFDLENBQUM7UUFFN0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNILGlCQUFDO0FBQUQsQ0FBQyxBQXpERCxJQXlEQyIsInNvdXJjZXNDb250ZW50IjpbInR5cGUgQW55UmVjb3JkID0gUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlzdHJpYnV0aW9uUmVzdWx0PFQ+IHtcclxuICBkYXRhOiBQYXJ0aWFsPFQ+O1xyXG4gIHNhbXBsaW5nU3VjY2VzczogbnVtYmVyOyAgIC8vIHBlcmNlbnRhZ2Ugb2YgdG90YWxcclxuICBzYW1wbGluZ1F1YW50aXR5OiBudW1iZXI7ICAvLyBhYnNvbHV0ZSBjb3VudFxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWdyb0xvZ2ljcyB7XHJcbi8qKlxyXG4gKiBBZ3J1cGEgbyBjb25qdW50byBkZSBkYWRvcyBwZWxvcyBjYW1wb3MgZGUgZW50aWRhZGUgZm9ybmVjaWRvcyBlIGNhbGN1bGFcclxuICogYSBkaXN0cmlidWnDp8OjbyBkZSBwcm9iYWJpbGlkYWRlIChmcmVxdcOqbmNpYSBlIHBvcmNlbnRhZ2VtKS5cclxuICpcclxuICogQHBhcmFtIGRhdGEgLSBBcnJheSBkZSBvYmpldG9zIGEgc2VyZW0gYW5hbGlzYWRvc1xyXG4gKiBAcGFyYW0ga2V5cyAtIENoYXZlcyBvdSBjYW1pbmhvcyBhbmluaGFkb3MgcGFyYSBhZ3J1cGFyIChleDogW1wiZW50aXR5MVwiLCBcImVudGl0eTJcIl0pXHJcbiAqIEByZXR1cm5zIEFycmF5IGRlIGVzdGF0w61zdGljYXMgYWdydXBhZGFzIG9yZGVuYWRhcyBwb3Igc2FtcGxpbmdTdWNjZXNzIChkZWNyZXNjZW50ZSlcclxuICovXHJcbiAgc3RhdGljIGVudGl0eURpc3RyaWJ1dGlvblN0YXRzPFQgZXh0ZW5kcyBBbnlSZWNvcmQ+KFxyXG4gICAgZGF0YTogVFtdLFxyXG4gICAga2V5czogKGtleW9mIFQgfCBzdHJpbmcpW11cclxuICApOiBEaXN0cmlidXRpb25SZXN1bHQ8VD5bXSB7XHJcbiAgICBjb25zdCB0b3RhbCA9IGRhdGEubGVuZ3RoO1xyXG4gICAgY29uc3QgbWFwID0gbmV3IE1hcDxzdHJpbmcsIHsgZGF0YTogUGFydGlhbDxUPjsgY291bnQ6IG51bWJlciB9PigpO1xyXG5cclxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBkYXRhKSB7XHJcbiAgICAgIGNvbnN0IHVuaXF1ZUtleSA9IEpTT04uc3RyaW5naWZ5KFxyXG4gICAgICAgIGtleXMubWFwKChjKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBwYXJ0cyA9IChjIGFzIHN0cmluZykuc3BsaXQoXCIuXCIpO1xyXG4gICAgICAgICAgbGV0IHZhbHVlOiBhbnkgPSBpdGVtO1xyXG4gICAgICAgICAgZm9yIChjb25zdCBwIG9mIHBhcnRzKSB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWU/LltwXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG5cclxuICAgICAgaWYgKCFtYXAuaGFzKHVuaXF1ZUtleSkpIHtcclxuICAgICAgICBjb25zdCBncm91cGVkRGF0YTogUGFydGlhbDxUPiA9IHt9O1xyXG4gICAgICAgIGZvciAoY29uc3QgYyBvZiBrZXlzKSB7XHJcbiAgICAgICAgICBjb25zdCBwYXJ0cyA9IChjIGFzIHN0cmluZykuc3BsaXQoXCIuXCIpO1xyXG4gICAgICAgICAgbGV0IHZhbHVlOiBhbnkgPSBpdGVtO1xyXG4gICAgICAgICAgZm9yIChjb25zdCBwIG9mIHBhcnRzKSB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWU/LltwXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIGFkZCB0aGUgZnVsbCBlbnRpdHkgKG5vdCBvbmx5IGl0cyBJRClcclxuICAgICAgICAgIChncm91cGVkRGF0YSBhcyBhbnkpW2MudG9TdHJpbmcoKS5zcGxpdChcIi5cIilbMF1dID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1hcC5zZXQodW5pcXVlS2V5LCB7IGRhdGE6IGdyb3VwZWREYXRhLCBjb3VudDogMCB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgbWFwLmdldCh1bmlxdWVLZXkpLmNvdW50Kys7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmVzdWx0OiBEaXN0cmlidXRpb25SZXN1bHQ8VD5bXSA9IEFycmF5LmZyb20obWFwLnZhbHVlcygpKS5tYXAoXHJcbiAgICAgIChlbnRyeSkgPT4gKHtcclxuICAgICAgICBkYXRhOiBlbnRyeS5kYXRhLFxyXG4gICAgICAgIHNhbXBsaW5nUXVhbnRpdHk6IGVudHJ5LmNvdW50LFxyXG4gICAgICAgIHNhbXBsaW5nU3VjY2VzczogTWF0aC5yb3VuZCgoZW50cnkuY291bnQgLyB0b3RhbCkgKiAxMDApLFxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICByZXN1bHQuc29ydCgoYSwgYikgPT4gYi5zYW1wbGluZ1N1Y2Nlc3MgLSBhLnNhbXBsaW5nU3VjY2Vzcyk7XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbn0iXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1sb2dpY3MuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLWxvZ2ljcy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQVN4QztJQUFBO0lBc0RBLENBQUM7SUFyREQ7Ozs7Ozs7T0FPRztJQUNNLGtDQUF1QixHQUE5QixVQUNFLElBQVMsRUFDVCxJQUEwQjs7UUFFNUIsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN4QixJQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBK0MsQ0FBQztRQUVuRSxJQUFNLFdBQVcsR0FBRyxVQUFDLE1BQVcsRUFBRSxJQUFZOztZQUM1QyxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQzs7Z0JBQ25CLEtBQWdCLElBQUEsVUFBQSxTQUFBLEtBQUssQ0FBQSw0QkFBQSwrQ0FBRTtvQkFBbEIsSUFBTSxDQUFDLGtCQUFBO29CQUNWLElBQUksS0FBSyxJQUFJLElBQUksRUFBRTt3QkFDakIsT0FBTyxTQUFTLENBQUM7cUJBQ2xCO29CQUNELEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ2xCOzs7Ozs7Ozs7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQztnQ0FFUyxJQUFJOztZQUNiLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxXQUFXLENBQUMsSUFBSSxFQUFFLENBQVcsQ0FBQyxFQUE5QixDQUE4QixDQUFDLENBQUM7WUFDaEUsSUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUU1QyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDdkIsSUFBTSxXQUFXLEdBQWUsRUFBRSxDQUFDOztvQkFDbkMsS0FBZ0IsSUFBQSx3QkFBQSxTQUFBLElBQUksQ0FBQSxDQUFBLDBCQUFBLDRDQUFFO3dCQUFqQixJQUFNLENBQUMsaUJBQUE7d0JBQ1YsSUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDM0MsV0FBbUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQVcsQ0FBQyxDQUFDO3FCQUNqRTs7Ozs7Ozs7O2dCQUNELEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNyRDtZQUNELElBQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakMsS0FBSyxDQUFDLEtBQUssSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDOzs7WUFibEMsS0FBbUIsSUFBQSxTQUFBLFNBQUEsSUFBSSxDQUFBLDBCQUFBO2dCQUFsQixJQUFNLElBQUksaUJBQUE7d0JBQUosSUFBSTthQWNkOzs7Ozs7Ozs7UUFFRCxJQUFNLE1BQU0sR0FBNEIsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQSxLQUFLLElBQUksT0FBQSxDQUFDO1lBQzdFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsS0FBSztZQUM3QixlQUFlLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQztTQUM5RSxDQUFDLEVBSjRFLENBSTVFLENBQUMsQ0FBQztRQUVKLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsZUFBZSxFQUFyQyxDQUFxQyxDQUFDLENBQUM7UUFFN0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNILGlCQUFDO0FBQUQsQ0FBQyxBQXRERCxJQXNEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFHUk9fTlVNQkVSUyB9IGZyb20gXCIuLi9lbnVtc1wiO1xyXG50eXBlIEFueVJlY29yZCA9IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERpc3RyaWJ1dGlvblJlc3VsdDxUPiB7XHJcbiAgZGF0YTogUGFydGlhbDxUPjtcclxuICBzYW1wbGluZ1N1Y2Nlc3M6IG51bWJlcjsgICAvLyBwZXJjZW50YWdlIG9mIHRvdGFsXHJcbiAgc2FtcGxpbmdRdWFudGl0eTogbnVtYmVyOyAgLy8gYWJzb2x1dGUgY291bnRcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFncm9Mb2dpY3Mge1xyXG4vKipcclxuICogQWdydXBhIG8gY29uanVudG8gZGUgZGFkb3MgcGVsb3MgY2FtcG9zIGRlIGVudGlkYWRlIGZvcm5lY2lkb3MgZSBjYWxjdWxhXHJcbiAqIGEgZGlzdHJpYnVpw6fDo28gZGUgcHJvYmFiaWxpZGFkZSAoZnJlcXXDqm5jaWEgZSBwb3JjZW50YWdlbSkuXHJcbiAqXHJcbiAqIEBwYXJhbSBkYXRhIC0gQXJyYXkgZGUgb2JqZXRvcyBhIHNlcmVtIGFuYWxpc2Fkb3NcclxuICogQHBhcmFtIGtleXMgLSBDaGF2ZXMgb3UgY2FtaW5ob3MgYW5pbmhhZG9zIHBhcmEgYWdydXBhciAoZXg6IFtcImVudGl0eTFcIiwgXCJlbnRpdHkyXCJdKVxyXG4gKiBAcmV0dXJucyBBcnJheSBkZSBlc3RhdMOtc3RpY2FzIGFncnVwYWRhcyBvcmRlbmFkYXMgcG9yIHNhbXBsaW5nU3VjY2VzcyAoZGVjcmVzY2VudGUpXHJcbiAqL1xyXG4gIHN0YXRpYyBlbnRpdHlEaXN0cmlidXRpb25TdGF0czxUIGV4dGVuZHMgQW55UmVjb3JkPihcclxuICAgIGRhdGE6IFRbXSxcclxuICAgIGtleXM6IChrZXlvZiBUIHwgc3RyaW5nKVtdXHJcbiAgKTogRGlzdHJpYnV0aW9uUmVzdWx0PFQ+W10ge1xyXG4gIGNvbnN0IHRvdGFsID0gZGF0YS5sZW5ndGg7XHJcbiAgICBjb25zdCBtYXAgPSBuZXcgTWFwPHN0cmluZywgeyBkYXRhOiBQYXJ0aWFsPFQ+OyBjb3VudDogbnVtYmVyIH0+KCk7XHJcblxyXG4gICAgY29uc3QgcmVzb2x2ZVBhdGggPSAoc291cmNlOiBhbnksIHBhdGg6IHN0cmluZyk6IGFueSA9PiB7XHJcbiAgICAgIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdChcIi5cIik7XHJcbiAgICAgIGxldCB2YWx1ZSA9IHNvdXJjZTtcclxuICAgICAgZm9yIChjb25zdCBwIG9mIHBhcnRzKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcclxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhbHVlID0gdmFsdWVbcF07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgZGF0YSkge1xyXG4gICAgICBjb25zdCBrZXlWYWx1ZXMgPSBrZXlzLm1hcChrID0+IHJlc29sdmVQYXRoKGl0ZW0sIGsgYXMgc3RyaW5nKSk7XHJcbiAgICAgIGNvbnN0IHVuaXF1ZUtleSA9IEpTT04uc3RyaW5naWZ5KGtleVZhbHVlcyk7XHJcblxyXG4gICAgICBpZiAoIW1hcC5oYXModW5pcXVlS2V5KSkge1xyXG4gICAgICAgIGNvbnN0IGdyb3VwZWREYXRhOiBQYXJ0aWFsPFQ+ID0ge307XHJcbiAgICAgICAgZm9yIChjb25zdCBrIG9mIGtleXMpIHtcclxuICAgICAgICAgIGNvbnN0IHJvb3ROYW1lID0gay50b1N0cmluZygpLnNwbGl0KFwiLlwiKVswXTtcclxuICAgICAgICAgIChncm91cGVkRGF0YSBhcyBhbnkpW3Jvb3ROYW1lXSA9IHJlc29sdmVQYXRoKGl0ZW0sIGsgYXMgc3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbWFwLnNldCh1bmlxdWVLZXksIHsgZGF0YTogZ3JvdXBlZERhdGEsIGNvdW50OiAwIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGVudHJ5ID0gbWFwLmdldCh1bmlxdWVLZXkpO1xyXG4gICAgICBlbnRyeS5jb3VudCArPSBBR1JPX05VTUJFUlMuT05FO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlc3VsdDogRGlzdHJpYnV0aW9uUmVzdWx0PFQ+W10gPSBBcnJheS5mcm9tKG1hcC52YWx1ZXMoKSkubWFwKGVudHJ5ID0+ICh7XHJcbiAgICAgIGRhdGE6IGVudHJ5LmRhdGEsXHJcbiAgICAgIHNhbXBsaW5nUXVhbnRpdHk6IGVudHJ5LmNvdW50LFxyXG4gICAgICBzYW1wbGluZ1N1Y2Nlc3M6IE1hdGgucm91bmQoKGVudHJ5LmNvdW50IC8gdG90YWwpICogQUdST19OVU1CRVJTLk9ORV9IVU5EUkVEKSxcclxuICAgIH0pKTtcclxuXHJcbiAgICByZXN1bHQuc29ydCgoYSwgYikgPT4gYi5zYW1wbGluZ1N1Y2Nlc3MgLSBhLnNhbXBsaW5nU3VjY2Vzcyk7XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbn0iXX0=
@@ -1,4 +1,5 @@
1
1
  import { AgroStringUtils } from "./agro-string-utils.class";
2
+ import { AGRO_NUMBERS } from "../enums";
2
3
  var AgroNameUtils = /** @class */ (function () {
3
4
  function AgroNameUtils() {
4
5
  }
@@ -12,8 +13,7 @@ var AgroNameUtils = /** @class */ (function () {
12
13
  return null;
13
14
  }
14
15
  var parts = fullName.trim().split(/\s+/);
15
- // Verifica se pelo menos duas partes no nome
16
- if (parts.length < 2) {
16
+ if (parts.length < AGRO_NUMBERS.TWO) {
17
17
  return fullName; // Retorna o nome original se não puder ser abreviado
18
18
  }
19
19
  var firstName = parts[0]; // Primeiro nome completo
@@ -32,8 +32,9 @@ var AgroNameUtils = /** @class */ (function () {
32
32
  return null;
33
33
  }
34
34
  var parts = fullName.trim().split(/\s+/);
35
- if (parts.length < 2)
35
+ if (parts.length < AGRO_NUMBERS.TWO) {
36
36
  return fullName;
37
+ }
37
38
  var firstName = parts[0];
38
39
  var abbreviatedLastNames = parts
39
40
  .slice(1)
@@ -60,4 +61,4 @@ var AgroNameUtils = /** @class */ (function () {
60
61
  return AgroNameUtils;
61
62
  }());
62
63
  export { AgroNameUtils };
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1uYW1lLXV0aWxzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1hZ3JvbmVnb2Npby9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21tb24vYWdyby1uYW1lLXV0aWxzLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RDtJQUFBO0lBaUVBLENBQUM7SUFoRUc7Ozs7T0FJRztJQUNJLDRCQUFjLEdBQXJCLFVBQXNCLFFBQWdCO1FBQ2xDLElBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNyQyxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsSUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUzQyxnREFBZ0Q7UUFDaEQsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNsQixPQUFPLFFBQVEsQ0FBQyxDQUFDLHFEQUFxRDtTQUN6RTtRQUVELElBQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHlCQUF5QjtRQUNyRCxJQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQjtRQUU3RCwyQkFBMkI7UUFDM0IsT0FBVSxTQUFTLFNBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBRyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLG9DQUFzQixHQUE3QixVQUE4QixRQUFnQjtRQUMxQyxJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDckMsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELElBQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUM7WUFBRSxPQUFPLFFBQVEsQ0FBQztRQUV0QyxJQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsSUFBTSxvQkFBb0IsR0FBRyxLQUFLO2FBQzdCLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDUixHQUFHLENBQUMsVUFBQyxJQUFJLElBQUssT0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFHLEVBQXBCLENBQW9CLENBQUM7YUFDbkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWYsT0FBVSxTQUFTLFNBQUksb0JBQXNCLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0kseUJBQVcsR0FBbEIsVUFBbUIsUUFBZ0I7UUFDL0IsSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxPQUFPLFFBQVE7YUFDVixJQUFJLEVBQUU7YUFDTixLQUFLLENBQUMsS0FBSyxDQUFDO2FBQ1osR0FBRyxDQUFDLFVBQUMsSUFBSSxJQUFLLE9BQUEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBNUIsQ0FBNEIsQ0FBQzthQUMzQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUNMLG9CQUFDO0FBQUQsQ0FBQyxBQWpFRCxJQWlFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFncm9TdHJpbmdVdGlscyB9IGZyb20gXCIuL2Fncm8tc3RyaW5nLXV0aWxzLmNsYXNzXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQWdyb05hbWVVdGlscyB7XHJcbiAgICAvKipcclxuICAgICAqIEFicmV2aWEgbyDDumx0aW1vIHNvYnJlbm9tZSwgbWFudGVuZG8gbyBwcmltZWlybyBub21lIGNvbXBsZXRvLlxyXG4gICAgICogQHBhcmFtIGZ1bGxOYW1lIHZhbG9yIGNvbXBsZXRvIGRvIG5vbWUgKEV4OiBUaWFnbyBCYXRpc3RhIENvcnLDqmEpXHJcbiAgICAgKiBAcmV0dXJucyBub21lIGFicmV2aWFkbyAoRXg6IFRpYWdvIEMuKVxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgYWJicmV2aWF0ZU5hbWUoZnVsbE5hbWU6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgICAgIGlmIChBZ3JvU3RyaW5nVXRpbHMuaXNJbnZhbGlkKGZ1bGxOYW1lKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHBhcnRzID0gZnVsbE5hbWUudHJpbSgpLnNwbGl0KC9cXHMrLyk7XHJcblxyXG4gICAgICAgIC8vIFZlcmlmaWNhIHNlIGjDoSBwZWxvIG1lbm9zIGR1YXMgcGFydGVzIG5vIG5vbWVcclxuICAgICAgICBpZiAocGFydHMubGVuZ3RoIDwgMikge1xyXG4gICAgICAgICAgICByZXR1cm4gZnVsbE5hbWU7IC8vIFJldG9ybmEgbyBub21lIG9yaWdpbmFsIHNlIG7Do28gcHVkZXIgc2VyIGFicmV2aWFkb1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZmlyc3ROYW1lID0gcGFydHNbMF07IC8vIFByaW1laXJvIG5vbWUgY29tcGxldG9cclxuICAgICAgICBjb25zdCBsYXN0TmFtZSA9IHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdOyAvLyDDmmx0aW1vIHNvYnJlbm9tZVxyXG5cclxuICAgICAgICAvLyBSZXRvcm5hIG8gbm9tZSBhYnJldmlhZG9cclxuICAgICAgICByZXR1cm4gYCR7Zmlyc3ROYW1lfSAke2xhc3ROYW1lLmNoYXJBdCgwKX0uYDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFicmV2aWEgdG9kb3Mgb3Mgc29icmVub21lcywgbWFudGVuZG8gbyBwcmltZWlybyBub21lIGNvbXBsZXRvLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBmdWxsTmFtZSBPIG5vbWUgY29tcGxldG8uIChFeDogVGlhZ28gQmF0aXN0YSBDb3Jyw6phKVxyXG4gICAgICogQHJldHVybnMgTyBub21lIGNvbSBvcyBzb2JyZW5vbWVzIGFicmV2aWFkb3MuIChFeDogVGlhZ28gQi4gQy4pXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBhYmJyZXZpYXRlQWxsTGFzdE5hbWVzKGZ1bGxOYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgICAgICBpZiAoQWdyb1N0cmluZ1V0aWxzLmlzSW52YWxpZChmdWxsTmFtZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBwYXJ0cyA9IGZ1bGxOYW1lLnRyaW0oKS5zcGxpdCgvXFxzKy8pO1xyXG4gICAgICAgIGlmIChwYXJ0cy5sZW5ndGggPCAyKSByZXR1cm4gZnVsbE5hbWU7XHJcblxyXG4gICAgICAgIGNvbnN0IGZpcnN0TmFtZSA9IHBhcnRzWzBdO1xyXG4gICAgICAgIGNvbnN0IGFiYnJldmlhdGVkTGFzdE5hbWVzID0gcGFydHNcclxuICAgICAgICAgICAgLnNsaWNlKDEpXHJcbiAgICAgICAgICAgIC5tYXAoKG5hbWUpID0+IGAke25hbWUuY2hhckF0KDApfS5gKVxyXG4gICAgICAgICAgICAuam9pbihcIiBcIik7XHJcblxyXG4gICAgICAgIHJldHVybiBgJHtmaXJzdE5hbWV9ICR7YWJicmV2aWF0ZWRMYXN0TmFtZXN9YDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldG9ybmEgYXMgaW5pY2lhaXMgZG8gbm9tZSBjb21wbGV0by5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gZnVsbE5hbWUgTyBub21lIGNvbXBsZXRvLiAoRXg6IFRpYWdvIEJhdGlzdGEgQ29ycsOqYSlcclxuICAgICAqIEByZXR1cm5zIFVtYSBzdHJpbmcgY29udGVuZG8gYXMgaW5pY2lhaXMgZG8gbm9tZS4gKEV4OiBUQkMpXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBnZXRJbml0aWFscyhmdWxsTmFtZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKEFncm9TdHJpbmdVdGlscy5pc0ludmFsaWQoZnVsbE5hbWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZ1bGxOYW1lXHJcbiAgICAgICAgICAgIC50cmltKClcclxuICAgICAgICAgICAgLnNwbGl0KC9cXHMrLylcclxuICAgICAgICAgICAgLm1hcCgobmFtZSkgPT4gbmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSlcclxuICAgICAgICAgICAgLmpvaW4oXCJcIik7XHJcbiAgICB9XHJcbn1cclxuIl19
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1uYW1lLXV0aWxzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1hZ3JvbmVnb2Npby9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21tb24vYWdyby1uYW1lLXV0aWxzLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXhDO0lBQUE7SUFpRUEsQ0FBQztJQWhFRzs7OztPQUlHO0lBQ0ksNEJBQWMsR0FBckIsVUFBc0IsUUFBZ0I7UUFDbEMsSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFTCxJQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFO1lBQzdCLE9BQU8sUUFBUSxDQUFDLENBQUMscURBQXFEO1NBQ3pFO1FBRUQsSUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMseUJBQXlCO1FBQ3JELElBQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CO1FBRTdELDJCQUEyQjtRQUMzQixPQUFVLFNBQVMsU0FBSSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFHLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksb0NBQXNCLEdBQTdCLFVBQThCLFFBQWdCO1FBQzFDLElBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNyQyxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUwsSUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRTtZQUM3QixPQUFPLFFBQVEsQ0FBQztTQUNuQjtRQUVELElBQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixJQUFNLG9CQUFvQixHQUFHLEtBQUs7YUFDN0IsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNSLEdBQUcsQ0FBQyxVQUFDLElBQUksSUFBSyxPQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQUcsRUFBcEIsQ0FBb0IsQ0FBQzthQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFZixPQUFVLFNBQVMsU0FBSSxvQkFBc0IsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSx5QkFBVyxHQUFsQixVQUFtQixRQUFnQjtRQUMvQixJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDckMsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELE9BQU8sUUFBUTthQUNWLElBQUksRUFBRTthQUNOLEtBQUssQ0FBQyxLQUFLLENBQUM7YUFDWixHQUFHLENBQUMsVUFBQyxJQUFJLElBQUssT0FBQSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUE1QixDQUE0QixDQUFDO2FBQzNDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBQ0wsb0JBQUM7QUFBRCxDQUFDLEFBakVELElBaUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWdyb1N0cmluZ1V0aWxzIH0gZnJvbSBcIi4vYWdyby1zdHJpbmctdXRpbHMuY2xhc3NcIjtcclxuaW1wb3J0IHsgQUdST19OVU1CRVJTIH0gZnJvbSBcIi4uL2VudW1zXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQWdyb05hbWVVdGlscyB7XHJcbiAgICAvKipcclxuICAgICAqIEFicmV2aWEgbyDDumx0aW1vIHNvYnJlbm9tZSwgbWFudGVuZG8gbyBwcmltZWlybyBub21lIGNvbXBsZXRvLlxyXG4gICAgICogQHBhcmFtIGZ1bGxOYW1lIHZhbG9yIGNvbXBsZXRvIGRvIG5vbWUgKEV4OiBUaWFnbyBCYXRpc3RhIENvcnLDqmEpXHJcbiAgICAgKiBAcmV0dXJucyBub21lIGFicmV2aWFkbyAoRXg6IFRpYWdvIEMuKVxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgYWJicmV2aWF0ZU5hbWUoZnVsbE5hbWU6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgICAgIGlmIChBZ3JvU3RyaW5nVXRpbHMuaXNJbnZhbGlkKGZ1bGxOYW1lKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgY29uc3QgcGFydHMgPSBmdWxsTmFtZS50cmltKCkuc3BsaXQoL1xccysvKTtcclxuICAgIGlmIChwYXJ0cy5sZW5ndGggPCBBR1JPX05VTUJFUlMuVFdPKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmdWxsTmFtZTsgLy8gUmV0b3JuYSBvIG5vbWUgb3JpZ2luYWwgc2UgbsOjbyBwdWRlciBzZXIgYWJyZXZpYWRvXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBmaXJzdE5hbWUgPSBwYXJ0c1swXTsgLy8gUHJpbWVpcm8gbm9tZSBjb21wbGV0b1xyXG4gICAgICAgIGNvbnN0IGxhc3ROYW1lID0gcGFydHNbcGFydHMubGVuZ3RoIC0gMV07IC8vIMOabHRpbW8gc29icmVub21lXHJcblxyXG4gICAgICAgIC8vIFJldG9ybmEgbyBub21lIGFicmV2aWFkb1xyXG4gICAgICAgIHJldHVybiBgJHtmaXJzdE5hbWV9ICR7bGFzdE5hbWUuY2hhckF0KDApfS5gO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWJyZXZpYSB0b2RvcyBvcyBzb2JyZW5vbWVzLCBtYW50ZW5kbyBvIHByaW1laXJvIG5vbWUgY29tcGxldG8uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGZ1bGxOYW1lIE8gbm9tZSBjb21wbGV0by4gKEV4OiBUaWFnbyBCYXRpc3RhIENvcnLDqmEpXHJcbiAgICAgKiBAcmV0dXJucyBPIG5vbWUgY29tIG9zIHNvYnJlbm9tZXMgYWJyZXZpYWRvcy4gKEV4OiBUaWFnbyBCLiBDLilcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGFiYnJldmlhdGVBbGxMYXN0TmFtZXMoZnVsbE5hbWU6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgICAgIGlmIChBZ3JvU3RyaW5nVXRpbHMuaXNJbnZhbGlkKGZ1bGxOYW1lKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgY29uc3QgcGFydHMgPSBmdWxsTmFtZS50cmltKCkuc3BsaXQoL1xccysvKTtcclxuICAgIGlmIChwYXJ0cy5sZW5ndGggPCBBR1JPX05VTUJFUlMuVFdPKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmdWxsTmFtZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGZpcnN0TmFtZSA9IHBhcnRzWzBdO1xyXG4gICAgICAgIGNvbnN0IGFiYnJldmlhdGVkTGFzdE5hbWVzID0gcGFydHNcclxuICAgICAgICAgICAgLnNsaWNlKDEpXHJcbiAgICAgICAgICAgIC5tYXAoKG5hbWUpID0+IGAke25hbWUuY2hhckF0KDApfS5gKVxyXG4gICAgICAgICAgICAuam9pbihcIiBcIik7XHJcblxyXG4gICAgICAgIHJldHVybiBgJHtmaXJzdE5hbWV9ICR7YWJicmV2aWF0ZWRMYXN0TmFtZXN9YDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldG9ybmEgYXMgaW5pY2lhaXMgZG8gbm9tZSBjb21wbGV0by5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gZnVsbE5hbWUgTyBub21lIGNvbXBsZXRvLiAoRXg6IFRpYWdvIEJhdGlzdGEgQ29ycsOqYSlcclxuICAgICAqIEByZXR1cm5zIFVtYSBzdHJpbmcgY29udGVuZG8gYXMgaW5pY2lhaXMgZG8gbm9tZS4gKEV4OiBUQkMpXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBnZXRJbml0aWFscyhmdWxsTmFtZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKEFncm9TdHJpbmdVdGlscy5pc0ludmFsaWQoZnVsbE5hbWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZ1bGxOYW1lXHJcbiAgICAgICAgICAgIC50cmltKClcclxuICAgICAgICAgICAgLnNwbGl0KC9cXHMrLylcclxuICAgICAgICAgICAgLm1hcCgobmFtZSkgPT4gbmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSlcclxuICAgICAgICAgICAgLmpvaW4oXCJcIik7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Classe de utilitários para operações com números.
3
3
  */
4
+ import { AGRO_NUMBERS } from "../enums";
4
5
  var AgroNumberUtils = /** @class */ (function () {
5
6
  function AgroNumberUtils() {
6
7
  }
@@ -27,7 +28,7 @@ var AgroNumberUtils = /** @class */ (function () {
27
28
  * @returns True se for par, false caso contrário.
28
29
  */
29
30
  AgroNumberUtils.isEven = function (value) {
30
- return value % 2 === 0;
31
+ return value % AGRO_NUMBERS.TWO === AGRO_NUMBERS.ZERO;
31
32
  };
32
33
  /**
33
34
  * Verifica se um número é ímpar.
@@ -36,7 +37,7 @@ var AgroNumberUtils = /** @class */ (function () {
36
37
  * @returns True se for ímpar, false caso contrário.
37
38
  */
38
39
  AgroNumberUtils.isOdd = function (value) {
39
- return value % 2 !== 0;
40
+ return value % AGRO_NUMBERS.TWO !== AGRO_NUMBERS.ZERO;
40
41
  };
41
42
  /**
42
43
  * Calcula a porcentagem de um valor em relação a um total.
@@ -46,9 +47,10 @@ var AgroNumberUtils = /** @class */ (function () {
46
47
  * @returns A porcentagem calculada.
47
48
  */
48
49
  AgroNumberUtils.percentage = function (partial, total) {
49
- if (total === 0)
50
+ if (total === AGRO_NUMBERS.ZERO) {
50
51
  throw new Error("O total não pode ser zero.");
51
- return (partial / total) * 100;
52
+ }
53
+ return (partial / total) * AGRO_NUMBERS.ONE_HUNDRED;
52
54
  };
53
55
  /**
54
56
  * Formata um número para o formato monetário.
@@ -74,6 +76,9 @@ var AgroNumberUtils = /** @class */ (function () {
74
76
  * @returns Um número aleatório no intervalo.
75
77
  */
76
78
  AgroNumberUtils.randomInRange = function (min, max) {
79
+ if (max <= min) {
80
+ throw new Error("O valor máximo deve ser maior que o mínimo.");
81
+ }
77
82
  return Math.random() * (max - min) + min;
78
83
  };
79
84
  /**
@@ -83,11 +88,13 @@ var AgroNumberUtils = /** @class */ (function () {
83
88
  * @returns True se for primo, false caso contrário.
84
89
  */
85
90
  AgroNumberUtils.isPrime = function (value) {
86
- if (value <= 1)
91
+ if (value <= AGRO_NUMBERS.ONE) {
87
92
  return false;
88
- for (var i = 2; i <= Math.sqrt(value); i++) {
89
- if (value % i === 0)
93
+ }
94
+ for (var i = AGRO_NUMBERS.TWO; i <= Math.sqrt(value); i++) {
95
+ if (value % i === AGRO_NUMBERS.ZERO) {
90
96
  return false;
97
+ }
91
98
  }
92
99
  return true;
93
100
  };
@@ -99,11 +106,14 @@ var AgroNumberUtils = /** @class */ (function () {
99
106
  * @returns O número arredondado.
100
107
  */
101
108
  AgroNumberUtils.roundTo = function (value, decimals) {
102
- if (decimals === void 0) { decimals = 2; }
103
- var factor = Math.pow(10, decimals);
109
+ if (decimals === void 0) { decimals = AGRO_NUMBERS.TWO; }
110
+ if (decimals < AGRO_NUMBERS.ZERO) {
111
+ throw new Error("O número de casas decimais não pode ser negativo.");
112
+ }
113
+ var factor = Math.pow(AGRO_NUMBERS.TEN, decimals);
104
114
  return Math.round(value * factor) / factor;
105
115
  };
106
116
  return AgroNumberUtils;
107
117
  }());
108
118
  export { AgroNumberUtils };
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1udW1iZXItdXRpbHMuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLW51bWJlci11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNIO0lBQUE7SUFzR0EsQ0FBQztJQXJHRzs7OztPQUlHO0lBQ0ksaUNBQWlCLEdBQXhCLFVBQXlCLEdBQVE7UUFDN0IsT0FBTyxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxTQUFTLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxvQ0FBb0IsR0FBM0IsVUFBNEIsR0FBUTtRQUNoQyxPQUFPLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLHNCQUFNLEdBQWIsVUFBYyxLQUFhO1FBQ3ZCLE9BQU8sS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0kscUJBQUssR0FBWixVQUFhLEtBQWE7UUFDdEIsT0FBTyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksMEJBQVUsR0FBakIsVUFBa0IsT0FBZSxFQUFFLEtBQWE7UUFDNUMsSUFBSSxLQUFLLEtBQUssQ0FBQztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUMvRCxPQUFPLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLDBCQUFVLEdBQWpCLFVBQWtCLEtBQWEsRUFBRSxRQUF3QixFQUFFLE1BQXdCO1FBQWxELHlCQUFBLEVBQUEsZ0JBQXdCO1FBQUUsdUJBQUEsRUFBQSxnQkFBd0I7UUFDL0UsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQ2pDLEtBQUssRUFBRSxVQUFVO1lBQ2pCLFFBQVEsRUFBRSxRQUFRO1NBQ3JCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLDZCQUFhLEdBQXBCLFVBQXFCLEdBQVcsRUFBRSxHQUFXO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSx1QkFBTyxHQUFkLFVBQWUsS0FBYTtRQUN4QixJQUFJLEtBQUssSUFBSSxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDN0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQUUsT0FBTyxLQUFLLENBQUM7U0FDckM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksdUJBQU8sR0FBZCxVQUFlLEtBQWEsRUFBRSxRQUFvQjtRQUFwQix5QkFBQSxFQUFBLFlBQW9CO1FBQzlDLElBQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQy9DLENBQUM7SUFDTCxzQkFBQztBQUFELENBQUMsQUF0R0QsSUFzR0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ2xhc3NlIGRlIHV0aWxpdMOhcmlvcyBwYXJhIG9wZXJhw6fDtWVzIGNvbSBuw7ptZXJvcy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBBZ3JvTnVtYmVyVXRpbHMge1xyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBuw7ptZXJvIMOpIG51bG8gb3UgaW5kZWZpbmlkby5cclxuICAgICAqIEBwYXJhbSBudW0gLSBPIG7Dum1lcm8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBuw7ptZXJvIGZvciBudWxvIG91IGluZGVmaW5pZG8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzTnVsbE9yVW5kZWZpbmVkKG51bTogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIG51bSA9PT0gbnVsbCB8fCBudW0gPT09IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG7Dum1lcm8gbsOjbyDDqSBudWxvIGUgbsOjbyDDqSBpbmRlZmluaWRvLlxyXG4gICAgICogQHBhcmFtIG51bSAtIE8gbsO6bWVybyBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG7Dum1lcm8gbsOjbyBmb3IgbnVsbyBlIG7Do28gZm9yIGluZGVmaW5pZG8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzTm90TnVsbE9yVW5kZWZpbmVkKG51bTogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICFBZ3JvTnVtYmVyVXRpbHMuaXNOdWxsT3JVbmRlZmluZWQobnVtKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG7Dum1lcm8gw6kgcGFyLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBPIG7Dum1lcm8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgZm9yIHBhciwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNFdmVuKHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdmFsdWUgJSAyID09PSAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gbsO6bWVybyDDqSDDrW1wYXIuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHZhbHVlIE8gbsO6bWVybyBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBmb3Igw61tcGFyLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc09kZCh2YWx1ZTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlICUgMiAhPT0gMDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGN1bGEgYSBwb3JjZW50YWdlbSBkZSB1bSB2YWxvciBlbSByZWxhw6fDo28gYSB1bSB0b3RhbC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gcGFydGlhbCBPIHZhbG9yIHBhcmNpYWwuXHJcbiAgICAgKiBAcGFyYW0gdG90YWwgTyB2YWxvciB0b3RhbC5cclxuICAgICAqIEByZXR1cm5zIEEgcG9yY2VudGFnZW0gY2FsY3VsYWRhLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgcGVyY2VudGFnZShwYXJ0aWFsOiBudW1iZXIsIHRvdGFsOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIGlmICh0b3RhbCA9PT0gMCkgdGhyb3cgbmV3IEVycm9yKFwiTyB0b3RhbCBuw6NvIHBvZGUgc2VyIHplcm8uXCIpO1xyXG4gICAgICAgIHJldHVybiAocGFydGlhbCAvIHRvdGFsKSAqIDEwMDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZvcm1hdGEgdW0gbsO6bWVybyBwYXJhIG8gZm9ybWF0byBtb25ldMOhcmlvLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBPIG7Dum1lcm8gYSBzZXIgZm9ybWF0YWRvLlxyXG4gICAgICogQHBhcmFtIGN1cnJlbmN5IE8gc8OtbWJvbG8gZGEgbW9lZGEgKHBhZHLDo286IFwiQlJMXCIpLlxyXG4gICAgICogQHBhcmFtIGxvY2FsZSBPIGPDs2RpZ28gZGEgbG9jYWxpZGFkZSAocGFkcsOjbzogXCJwdC1CUlwiKS5cclxuICAgICAqIEByZXR1cm5zIFVtYSBzdHJpbmcgbm8gZm9ybWF0byBtb25ldMOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgdG9DdXJyZW5jeSh2YWx1ZTogbnVtYmVyLCBjdXJyZW5jeTogc3RyaW5nID0gXCJCUkxcIiwgbG9jYWxlOiBzdHJpbmcgPSBcInB0LUJSXCIpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQobG9jYWxlLCB7XHJcbiAgICAgICAgICAgIHN0eWxlOiBcImN1cnJlbmN5XCIsXHJcbiAgICAgICAgICAgIGN1cnJlbmN5OiBjdXJyZW5jeSxcclxuICAgICAgICB9KS5mb3JtYXQodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2VyYSB1bSBuw7ptZXJvIGFsZWF0w7NyaW8gbm8gaW50ZXJ2YWxvIGVzcGVjaWZpY2Fkby5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gbWluIE8gdmFsb3IgbcOtbmltbyAoaW5jbHVzaXZvKS5cclxuICAgICAqIEBwYXJhbSBtYXggTyB2YWxvciBtw6F4aW1vIChleGNsdXNpdm8pLlxyXG4gICAgICogQHJldHVybnMgVW0gbsO6bWVybyBhbGVhdMOzcmlvIG5vIGludGVydmFsby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIHJhbmRvbUluUmFuZ2UobWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gTWF0aC5yYW5kb20oKSAqIChtYXggLSBtaW4pICsgbWluO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gbsO6bWVybyDDqSBwcmltby5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgTyBuw7ptZXJvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIGZvciBwcmltbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNQcmltZSh2YWx1ZTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHZhbHVlIDw9IDEpIHJldHVybiBmYWxzZTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMjsgaSA8PSBNYXRoLnNxcnQodmFsdWUpOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlICUgaSA9PT0gMCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFycmVkb25kYSB1bSBuw7ptZXJvIHBhcmEgYG5gIGNhc2FzIGRlY2ltYWlzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBPIG7Dum1lcm8gYSBzZXIgYXJyZWRvbmRhZG8uXHJcbiAgICAgKiBAcGFyYW0gZGVjaW1hbHMgTyBuw7ptZXJvIGRlIGNhc2FzIGRlY2ltYWlzIChwYWRyw6NvOiAyKS5cclxuICAgICAqIEByZXR1cm5zIE8gbsO6bWVybyBhcnJlZG9uZGFkby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIHJvdW5kVG8odmFsdWU6IG51bWJlciwgZGVjaW1hbHM6IG51bWJlciA9IDIpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IGZhY3RvciA9IE1hdGgucG93KDEwLCBkZWNpbWFscyk7XHJcbiAgICAgICAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUgKiBmYWN0b3IpIC8gZmFjdG9yO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1udW1iZXItdXRpbHMuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLW51bWJlci11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFeEM7SUFBQTtJQWtIQSxDQUFDO0lBakhHOzs7O09BSUc7SUFDSSxpQ0FBaUIsR0FBeEIsVUFBeUIsR0FBUTtRQUM3QixPQUFPLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLFNBQVMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLG9DQUFvQixHQUEzQixVQUE0QixHQUFRO1FBQ2hDLE9BQU8sQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksc0JBQU0sR0FBYixVQUFjLEtBQWE7UUFDM0IsT0FBTyxLQUFLLEdBQUcsWUFBWSxDQUFDLEdBQUcsS0FBSyxZQUFZLENBQUMsSUFBSSxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLHFCQUFLLEdBQVosVUFBYSxLQUFhO1FBQzFCLE9BQU8sS0FBSyxHQUFHLFlBQVksQ0FBQyxHQUFHLEtBQUssWUFBWSxDQUFDLElBQUksQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksMEJBQVUsR0FBakIsVUFBa0IsT0FBZSxFQUFFLEtBQWE7UUFDNUMsSUFBSSxLQUFLLEtBQUssWUFBWSxDQUFDLElBQUksRUFBRTtZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7U0FDakQ7UUFDTCxPQUFPLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSwwQkFBVSxHQUFqQixVQUFrQixLQUFhLEVBQUUsUUFBd0IsRUFBRSxNQUF3QjtRQUFsRCx5QkFBQSxFQUFBLGdCQUF3QjtRQUFFLHVCQUFBLEVBQUEsZ0JBQXdCO1FBQy9FLE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTtZQUNqQyxLQUFLLEVBQUUsVUFBVTtZQUNqQixRQUFRLEVBQUUsUUFBUTtTQUNyQixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSw2QkFBYSxHQUFwQixVQUFxQixHQUFXLEVBQUUsR0FBVztRQUN6QyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUU7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7U0FDbEU7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksdUJBQU8sR0FBZCxVQUFlLEtBQWE7UUFDeEIsSUFBSSxLQUFLLElBQUksWUFBWSxDQUFDLEdBQUcsRUFBRTtZQUMzQixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN2RCxJQUFJLEtBQUssR0FBRyxDQUFDLEtBQUssWUFBWSxDQUFDLElBQUksRUFBRTtnQkFDakMsT0FBTyxLQUFLLENBQUM7YUFDaEI7U0FDSjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSx1QkFBTyxHQUFkLFVBQWUsS0FBYSxFQUFFLFFBQW1DO1FBQW5DLHlCQUFBLEVBQUEsV0FBbUIsWUFBWSxDQUFDLEdBQUc7UUFDN0QsSUFBSSxRQUFRLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRTtZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7U0FDeEU7UUFDRCxJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDcEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDL0MsQ0FBQztJQUNMLHNCQUFDO0FBQUQsQ0FBQyxBQWxIRCxJQWtIQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDbGFzc2UgZGUgdXRpbGl0w6FyaW9zIHBhcmEgb3BlcmHDp8O1ZXMgY29tIG7Dum1lcm9zLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7IEFHUk9fTlVNQkVSUyB9IGZyb20gXCIuLi9lbnVtc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFncm9OdW1iZXJVdGlscyB7XHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG7Dum1lcm8gw6kgbnVsbyBvdSBpbmRlZmluaWRvLlxyXG4gICAgICogQHBhcmFtIG51bSAtIE8gbsO6bWVybyBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG7Dum1lcm8gZm9yIG51bG8gb3UgaW5kZWZpbmlkbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOdWxsT3JVbmRlZmluZWQobnVtOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gbnVtID09PSBudWxsIHx8IG51bSA9PT0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gbsO6bWVybyBuw6NvIMOpIG51bG8gZSBuw6NvIMOpIGluZGVmaW5pZG8uXHJcbiAgICAgKiBAcGFyYW0gbnVtIC0gTyBuw7ptZXJvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gbsO6bWVybyBuw6NvIGZvciBudWxvIGUgbsOjbyBmb3IgaW5kZWZpbmlkbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOb3ROdWxsT3JVbmRlZmluZWQobnVtOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIUFncm9OdW1iZXJVdGlscy5pc051bGxPclVuZGVmaW5lZChudW0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gbsO6bWVybyDDqSBwYXIuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHZhbHVlIE8gbsO6bWVybyBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBmb3IgcGFyLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc0V2ZW4odmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHZhbHVlICUgQUdST19OVU1CRVJTLlRXTyA9PT0gQUdST19OVU1CRVJTLlpFUk87XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBuw7ptZXJvIMOpIMOtbXBhci5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgTyBuw7ptZXJvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIGZvciDDrW1wYXIsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzT2RkKHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB2YWx1ZSAlIEFHUk9fTlVNQkVSUy5UV08gIT09IEFHUk9fTlVNQkVSUy5aRVJPO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsY3VsYSBhIHBvcmNlbnRhZ2VtIGRlIHVtIHZhbG9yIGVtIHJlbGHDp8OjbyBhIHVtIHRvdGFsLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBwYXJ0aWFsIE8gdmFsb3IgcGFyY2lhbC5cclxuICAgICAqIEBwYXJhbSB0b3RhbCBPIHZhbG9yIHRvdGFsLlxyXG4gICAgICogQHJldHVybnMgQSBwb3JjZW50YWdlbSBjYWxjdWxhZGEuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBwZXJjZW50YWdlKHBhcnRpYWw6IG51bWJlciwgdG90YWw6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKHRvdGFsID09PSBBR1JPX05VTUJFUlMuWkVSTykge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPIHRvdGFsIG7Do28gcG9kZSBzZXIgemVyby5cIik7XHJcbiAgICAgICAgfVxyXG4gICAgcmV0dXJuIChwYXJ0aWFsIC8gdG90YWwpICogQUdST19OVU1CRVJTLk9ORV9IVU5EUkVEO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRm9ybWF0YSB1bSBuw7ptZXJvIHBhcmEgbyBmb3JtYXRvIG1vbmV0w6FyaW8uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHZhbHVlIE8gbsO6bWVybyBhIHNlciBmb3JtYXRhZG8uXHJcbiAgICAgKiBAcGFyYW0gY3VycmVuY3kgTyBzw61tYm9sbyBkYSBtb2VkYSAocGFkcsOjbzogXCJCUkxcIikuXHJcbiAgICAgKiBAcGFyYW0gbG9jYWxlIE8gY8OzZGlnbyBkYSBsb2NhbGlkYWRlIChwYWRyw6NvOiBcInB0LUJSXCIpLlxyXG4gICAgICogQHJldHVybnMgVW1hIHN0cmluZyBubyBmb3JtYXRvIG1vbmV0w6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyB0b0N1cnJlbmN5KHZhbHVlOiBudW1iZXIsIGN1cnJlbmN5OiBzdHJpbmcgPSBcIkJSTFwiLCBsb2NhbGU6IHN0cmluZyA9IFwicHQtQlJcIik6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBJbnRsLk51bWJlckZvcm1hdChsb2NhbGUsIHtcclxuICAgICAgICAgICAgc3R5bGU6IFwiY3VycmVuY3lcIixcclxuICAgICAgICAgICAgY3VycmVuY3k6IGN1cnJlbmN5LFxyXG4gICAgICAgIH0pLmZvcm1hdCh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXJhIHVtIG7Dum1lcm8gYWxlYXTDs3JpbyBubyBpbnRlcnZhbG8gZXNwZWNpZmljYWRvLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBtaW4gTyB2YWxvciBtw61uaW1vIChpbmNsdXNpdm8pLlxyXG4gICAgICogQHBhcmFtIG1heCBPIHZhbG9yIG3DoXhpbW8gKGV4Y2x1c2l2bykuXHJcbiAgICAgKiBAcmV0dXJucyBVbSBuw7ptZXJvIGFsZWF0w7NyaW8gbm8gaW50ZXJ2YWxvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgcmFuZG9tSW5SYW5nZShtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIGlmIChtYXggPD0gbWluKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk8gdmFsb3IgbcOheGltbyBkZXZlIHNlciBtYWlvciBxdWUgbyBtw61uaW1vLlwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluKSArIG1pbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG7Dum1lcm8gw6kgcHJpbW8uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHZhbHVlIE8gbsO6bWVybyBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBmb3IgcHJpbW8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzUHJpbWUodmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh2YWx1ZSA8PSBBR1JPX05VTUJFUlMuT05FKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IEFHUk9fTlVNQkVSUy5UV087IGkgPD0gTWF0aC5zcXJ0KHZhbHVlKTsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSAlIGkgPT09IEFHUk9fTlVNQkVSUy5aRVJPKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcnJlZG9uZGEgdW0gbsO6bWVybyBwYXJhIGBuYCBjYXNhcyBkZWNpbWFpcy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgTyBuw7ptZXJvIGEgc2VyIGFycmVkb25kYWRvLlxyXG4gICAgICogQHBhcmFtIGRlY2ltYWxzIE8gbsO6bWVybyBkZSBjYXNhcyBkZWNpbWFpcyAocGFkcsOjbzogMikuXHJcbiAgICAgKiBAcmV0dXJucyBPIG7Dum1lcm8gYXJyZWRvbmRhZG8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyByb3VuZFRvKHZhbHVlOiBudW1iZXIsIGRlY2ltYWxzOiBudW1iZXIgPSBBR1JPX05VTUJFUlMuVFdPKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAoZGVjaW1hbHMgPCBBR1JPX05VTUJFUlMuWkVSTykge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPIG7Dum1lcm8gZGUgY2FzYXMgZGVjaW1haXMgbsOjbyBwb2RlIHNlciBuZWdhdGl2by5cIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGZhY3RvciA9IE1hdGgucG93KEFHUk9fTlVNQkVSUy5URU4sIGRlY2ltYWxzKTtcclxuICAgICAgICByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSAqIGZhY3RvcikgLyBmYWN0b3I7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -125,10 +125,7 @@ var AgroObjectUtils = /** @class */ (function () {
125
125
  * @returns True se os objetos forem iguais, false caso contrário.
126
126
  */
127
127
  AgroObjectUtils.isEqual = function (obj1, obj2) {
128
- if (JSON.stringify(obj1) === JSON.stringify(obj2)) {
129
- return true;
130
- }
131
- return false;
128
+ return JSON.stringify(obj1) === JSON.stringify(obj2);
132
129
  };
133
130
  /**
134
131
  * Verifica se um objeto é nulo.
@@ -163,7 +160,7 @@ var AgroObjectUtils = /** @class */ (function () {
163
160
  if (!AgroObjectUtils.isObject(obj)) {
164
161
  return false;
165
162
  }
166
- return Object.keys(obj).length !== 0;
163
+ return Object.keys(obj).length !== AGRO_NUMBERS.ZERO;
167
164
  };
168
165
  /**
169
166
  * Verifica se um objeto é vazio.
@@ -242,9 +239,14 @@ var AgroObjectUtils = /** @class */ (function () {
242
239
  * @param value
243
240
  */
244
241
  AgroObjectUtils.fromString = function (value) {
245
- return JSON.parse(value) || undefined;
242
+ try {
243
+ return JSON.parse(value);
244
+ }
245
+ catch (e) {
246
+ return undefined;
247
+ }
246
248
  };
247
249
  return AgroObjectUtils;
248
250
  }());
249
251
  export { AgroObjectUtils };
250
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1vYmplY3QtdXRpbHMuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLW9iamVjdC11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXhDLE9BQU8sRUFBRSxlQUFlLElBQUksR0FBRyxFQUFFLGVBQWUsSUFBSSxXQUFXLEVBQUUsQ0FBQztBQUVsRTs7R0FFRztBQUNIO0lBQUE7SUE4UUEsQ0FBQztJQTdRRzs7OztPQUlHO0lBQ0ksaUNBQWlCLEdBQXhCLFVBQXlCLEdBQVE7UUFDN0IsT0FBTyxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxTQUFTLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxvQ0FBb0IsR0FBM0IsVUFBNEIsR0FBUTtRQUNoQyxPQUFPLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksd0JBQVEsR0FBZixVQUFnQixHQUFRO1FBQ3BCLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksd0JBQVEsR0FBZixVQUFnQixHQUFRO1FBQ3BCLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0kseUJBQVMsR0FBaEIsVUFBaUIsR0FBUTtRQUNyQixPQUFPLE9BQU8sR0FBRyxLQUFLLFNBQVMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLDBCQUFVLEdBQWpCLFVBQWtCLEdBQVE7UUFDdEIsT0FBTyxPQUFPLEdBQUcsS0FBSyxVQUFVLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSx1QkFBTyxH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SUFBSSxDQUFDLElBQUksT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUSxFQUFFO29CQUMzRCxJQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7b0JBQ3hFLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTt3QkFDdEIsT0FBTyxNQUFNLENBQUM7cUJBQ2pCO2lCQUNKO2FBQ0o7U0FDSjtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7O09BR0c7SUFDSSwwQkFBVSxHQUFqQixVQUFrQixLQUFhO1FBQzNCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUM7SUFDMUMsQ0FBQztJQUNMLHNCQUFDO0FBQUQsQ0FBQyxBQTlRRCxJQThRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFHUk9fTlVNQkVSUyB9IGZyb20gXCIuLi9lbnVtc1wiO1xyXG5cclxuZXhwb3J0IHsgQWdyb09iamVjdFV0aWxzIGFzIEFPVSwgQWdyb09iamVjdFV0aWxzIGFzIE9iamVjdFV0aWxzIH07XHJcblxyXG4vKipcclxuICogQ2xhc3NlIHV0aWxpdMOhcmlhIHBhcmEgb3BlcmHDp8O1ZXMgZGUgb2JqZXRvLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFncm9PYmplY3RVdGlscyB7XHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSBudWxvIG91IGluZGVmaW5pZG8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIG51bG8gb3UgaW5kZWZpbmlkbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOdWxsT3JVbmRlZmluZWQob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gb2JqID09PSBudWxsIHx8IG9iaiA9PT0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIG7Do28gw6kgbnVsbyBlIG7Do28gw6kgaW5kZWZpbmlkby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBuw6NvIGZvciBudWxvIGUgbsOjbyBmb3IgaW5kZWZpbmlkbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOb3ROdWxsT3JVbmRlZmluZWQob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIUFncm9PYmplY3RVdGlscy5pc051bGxPclVuZGVmaW5lZChvYmopO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHVtYSBzdHJpbmcuXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtYSBzdHJpbmcsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzU3RyaW5nKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW0gbsO6bWVyby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW0gbsO6bWVybywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOdW1iZXIob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJudW1iZXJcIjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB1bSBib29sZWFuby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW0gYm9vbGVhbm8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzQm9vbGVhbihvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSBcImJvb2xlYW5cIjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB1bWEgZnVuw6fDo28uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtYSBmdW7Dp8OjbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNGdW5jdGlvbihvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSBcImZ1bmN0aW9uXCI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW0gYXJyYXkuXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtIGFycmF5LCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc0FycmF5KG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIG8gdmFsb3IgaW5mb3JtYWRvIMOpIHVtIG9iamV0by5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW0gb2JqZXRvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc09iamVjdChvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSBcIm9iamVjdFwiO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHVtYSBkYXRhLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciB1bWEgZGF0YSwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNEYXRlKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIERhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW0gZXJyby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW0gZXJybywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNFcnJvcihvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBFcnJvcjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB1bWEgZXhwcmVzc8OjbyByZWd1bGFyLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciB1bWEgZXhwcmVzc8OjbyByZWd1bGFyLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc1JlZ0V4cChvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBSZWdFeHA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW0gdmFsb3IgcHJpbWl0aXZvLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciB1bSB2YWxvciBwcmltaXRpdm8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzUHJpbWl0aXZlKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIEFncm9PYmplY3RVdGlscy5pc1N0cmluZyhvYmopIHx8IEFncm9PYmplY3RVdGlscy5pc051bWJlcihvYmopIHx8IEFncm9PYmplY3RVdGlscy5pc0Jvb2xlYW4ob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHRvZG9zIG9zIHZhbG9yZXMgZGUgdW0gb2JqZXRvIHPDo28gbnVsb3Mgb3UgaW5kZWZpbmlkb3MuXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgdG9kb3Mgb3MgdmFsb3JlcyBkbyBvYmpldG8gZm9yZW0gbnVsb3Mgb3UgaW5kZWZpbmlkb3MsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGFsbE51bGwob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIUFncm9PYmplY3RVdGlscy5pc09iamVjdChvYmopKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xyXG4gICAgICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkgJiYgIUFncm9PYmplY3RVdGlscy5pc051bGxPclVuZGVmaW5lZChvYmpba2V5XSkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb21wYXJhIGRvaXMgb2JqZXRvcyBwYXJhIHZlcmlmaWNhciBzZSBzw6NvIGlndWFpcy5cclxuICAgICAqIEBwYXJhbSBvYmoxIC0gTyBwcmltZWlybyBvYmpldG8gYSBzZXIgY29tcGFyYWRvLlxyXG4gICAgICogQHBhcmFtIG9iajIgLSBPIHNlZ3VuZG8gb2JqZXRvIGEgc2VyIGNvbXBhcmFkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2Ugb3Mgb2JqZXRvcyBmb3JlbSBpZ3VhaXMsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzRXF1YWwob2JqMTogYW55LCBvYmoyOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkob2JqMSkgPT09IEpTT04uc3RyaW5naWZ5KG9iajIpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIG51bG8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIG51bG8gb3UgdW0gb2JqZXRvIHZhemlvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc051bGwob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gb2JqID09PSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIG7Do28gw6kgbnVsby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBuw6NvIGZvciBudWxvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc05vdE51bGwob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIUFncm9PYmplY3RVdGlscy5pc051bGwob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnZlcnRlIHVtIG9iamV0byBwYXJhIHVtYSBzdHJpbmcgSlNPTi5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciBjb252ZXJ0aWRvLlxyXG4gICAgICogQHJldHVybnMgQSBzdHJpbmcgSlNPTiByZXByZXNlbnRhbmRvIG8gb2JqZXRvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgdG9KU09OKG9iajogYW55KTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byBuw6NvIMOpIHZhemlvLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIG7Do28gZm9yIHZhemlvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc05vdEVtcHR5KG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFBZ3JvT2JqZWN0VXRpbHMuaXNPYmplY3Qob2JqKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5sZW5ndGggIT09IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdmF6aW8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHZhemlvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc0VtcHR5KG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICFBZ3JvT2JqZWN0VXRpbHMuaXNOb3RFbXB0eShvYmopO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIG7Do28gZXN0w6EgdmF6aW8gZSBjb250w6ltIHVtYSBkZXRlcm1pbmFkYSBwcm9wcmllZGFkZS5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHBhcmFtIHByb3BlcnR5IC0gQSBwcm9wcmllZGFkZSBhIHNlciB2ZXJpZmljYWRhLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBuw6NvIGVzdGl2ZXIgdmF6aW8gZSBjb250aXZlciBhIHByb3ByaWVkYWRlLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBjb250YWluc1Byb3BlcnR5KG9iajogYW55LCBwcm9wZXJ0eTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIEFncm9PYmplY3RVdGlscy5pc05vdEVtcHR5KG9iaikgJiYgb2JqLmhhc093blByb3BlcnR5KHByb3BlcnR5KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIG8gcGFyw6JtZXRybyByZWNlYmlkbyDDqSB1bSBvYmpldG8gZSBzZSBlbGUgY29udMOpbSBhIHByb3ByaWVkYWRlIElELlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaGFzSWQob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gQWdyb09iamVjdFV0aWxzLmlzTm90RW1wdHkob2JqKSAmJiBvYmouaGFzT3duUHJvcGVydHkoXCJpZFwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIG8gdmFsb3IgaW5mb3JtYWRvIG5vIHBhcsOibWV0cm8gcG9zc3VpIGFzIHByb3ByaWVkYWRlcyBkZSB1bWEgZW50aWRhZGUgU0RMIChpZCBlIGNyZWF0ZWRBdCkuXHJcbiAgICAgKiBAcGFyYW0gb2JqXHJcbiAgICAgKiBAcmV0dXJuc1xyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNTRExFbnRpdHkob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gQWdyb09iamVjdFV0aWxzLmlzTm90RW1wdHkob2JqKSAmJiBvYmouaGFzT3duUHJvcGVydHkoXCJpZFwiKSAmJiBvYmouaGFzT3duUHJvcGVydHkoXCJjcmVhdGVkQXRcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdmFsaWRvLCBjb25zaWRlcmFuZG8gcXVlIGhhamEgbm8gbcOtbmltbyAxIHByb3ByaWVkYWRlXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc1ZhbGlkKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikubGVuZ3RoID4gQUdST19OVU1CRVJTLlpFUk8gJiYgQWdyb09iamVjdFV0aWxzLmlzTm90RW1wdHkob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSBpbnbDoWxpZG8sIGNvbnNpZGVyYW5kbyBxdWUgbsOjbyBoYWphIG5lbmh1bWEgcHJvcHJpZWRhZGVcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzSW52YWxpZChvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhQWdyb09iamVjdFV0aWxzLmlzVmFsaWQob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEVuY29udHJhIHVtYSBwcm9wcmllZGFkZSBlbSB1bSBvYmpldG8gcGVsbyBub21lIGUgcmV0b3JuYSBzZXUgdmFsb3IuXHJcbiAgICAgKiBTZSBvIHZhbG9yIGZvciB1bSBvYmpldG8sIHJldG9ybmEgbyBwcsOzcHJpbyBvYmpldG8uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG9iaiBPIG9iamV0byBvbmRlIGJ1c2Nhci5cclxuICAgICAqIEBwYXJhbSBrZXkgTyBub21lIGRhIHByb3ByaWVkYWRlIGEgc2VyIGVuY29udHJhZGEuXHJcbiAgICAgKiBAcGFyYW0gZGVlcFNlYXJjaCBJbmRpY2Egc2UgYSBidXNjYSBkZXZlIHNlciBlbSBwcm9mdW5kaWRhZGUgKHBhZHLDo286IHRydWUpLlxyXG4gICAgICogQHJldHVybnMgTyB2YWxvciBkYSBwcm9wcmllZGFkZSwgb3UgdW5kZWZpbmVkIHNlIG7Do28gZm9yIGVuY29udHJhZGEuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBmaW5kUHJvcGVydHkob2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBrZXk6IHN0cmluZywgZGVlcFNlYXJjaDogYm9vbGVhbiA9IHRydWUpOiBhbnkge1xyXG4gICAgICAgIGlmIChBZ3JvT2JqZWN0VXRpbHMuaXNJbnZhbGlkKG9iaikpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTyBwcmltZWlybyBhcmd1bWVudG8gZGV2ZSBzZXIgdW0gb2JqZXRvLlwiKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChrZXkgaW4gb2JqKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBvYmpba2V5XTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChkZWVwU2VhcmNoKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcHJvcCBpbiBvYmopIHtcclxuICAgICAgICAgICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkocHJvcCkgJiYgdHlwZW9mIG9ialtwcm9wXSA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IEFncm9PYmplY3RVdGlscy5maW5kUHJvcGVydHkob2JqW3Byb3BdLCBrZXksIGRlZXBTZWFyY2gpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlY2ViZSB1bWEgc3RyaW5nIChKU09OKSBlIHRlbnRhIGNvbnZlcnRlciBwYXJhIHVtIG9iamV0by5cclxuICAgICAqIEBwYXJhbSB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgZnJvbVN0cmluZyh2YWx1ZTogc3RyaW5nKTogYW55IHtcclxuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh2YWx1ZSkgfHwgdW5kZWZpbmVkO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1vYmplY3QtdXRpbHMuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLW9iamVjdC11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXhDLE9BQU8sRUFBRSxlQUFlLElBQUksR0FBRyxFQUFFLGVBQWUsSUFBSSxXQUFXLEVBQUUsQ0FBQztBQUVsRTs7R0FFRztBQUNIO0lBQUE7SUE2UUEsQ0FBQztJQTVRRzs7OztPQUlHO0lBQ0ksaUNBQWlCLEdBQXhCLFVBQXlCLEdBQVE7UUFDN0IsT0FBTyxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxTQUFTLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxvQ0FBb0IsR0FBM0IsVUFBNEIsR0FBUTtRQUNoQyxPQUFPLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksd0JBQVEsR0FBZixVQUFnQixHQUFRO1FBQ3BCLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksd0JBQVEsR0FBZixVQUFnQixHQUFRO1FBQ3BCLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0kseUJBQVMsR0FBaEIsVUFBaUIsR0FBUTtRQUNyQixPQUFPLE9BQU8sR0FBRyxLQUFLLFNBQVMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLDBCQUFVLEdBQWpCLFVBQWtCLEdBQVE7UUFDdEIsT0FBTyxPQUFPLEdBQUcsS0FBSyxVQUFVLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSx1QkFBTyxH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QUFDLEtBQUssUUFBUSxFQUFFO29CQUMzRCxJQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7b0JBQ3hFLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTt3QkFDdEIsT0FBTyxNQUFNLENBQUM7cUJBQ2pCO2lCQUNKO2FBQ0o7U0FDSjtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7O09BR0c7SUFDSSwwQkFBVSxHQUFqQixVQUFrQixLQUFhO1FBQzNCLElBQUk7WUFDQSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUI7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNSLE9BQU8sU0FBUyxDQUFDO1NBQ3BCO0lBQ0wsQ0FBQztJQUNMLHNCQUFDO0FBQUQsQ0FBQyxBQTdRRCxJQTZRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFHUk9fTlVNQkVSUyB9IGZyb20gXCIuLi9lbnVtc1wiO1xyXG5cclxuZXhwb3J0IHsgQWdyb09iamVjdFV0aWxzIGFzIEFPVSwgQWdyb09iamVjdFV0aWxzIGFzIE9iamVjdFV0aWxzIH07XHJcblxyXG4vKipcclxuICogQ2xhc3NlIHV0aWxpdMOhcmlhIHBhcmEgb3BlcmHDp8O1ZXMgZGUgb2JqZXRvLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFncm9PYmplY3RVdGlscyB7XHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSBudWxvIG91IGluZGVmaW5pZG8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIG51bG8gb3UgaW5kZWZpbmlkbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOdWxsT3JVbmRlZmluZWQob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gb2JqID09PSBudWxsIHx8IG9iaiA9PT0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIG7Do28gw6kgbnVsbyBlIG7Do28gw6kgaW5kZWZpbmlkby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBuw6NvIGZvciBudWxvIGUgbsOjbyBmb3IgaW5kZWZpbmlkbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOb3ROdWxsT3JVbmRlZmluZWQob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIUFncm9PYmplY3RVdGlscy5pc051bGxPclVuZGVmaW5lZChvYmopO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHVtYSBzdHJpbmcuXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtYSBzdHJpbmcsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzU3RyaW5nKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW0gbsO6bWVyby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW0gbsO6bWVybywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOdW1iZXIob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJudW1iZXJcIjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB1bSBib29sZWFuby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW0gYm9vbGVhbm8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzQm9vbGVhbihvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSBcImJvb2xlYW5cIjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB1bWEgZnVuw6fDo28uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtYSBmdW7Dp8OjbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNGdW5jdGlvbihvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSBcImZ1bmN0aW9uXCI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW0gYXJyYXkuXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtIGFycmF5LCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc0FycmF5KG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIG8gdmFsb3IgaW5mb3JtYWRvIMOpIHVtIG9iamV0by5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW0gb2JqZXRvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc09iamVjdChvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSBcIm9iamVjdFwiO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHVtYSBkYXRhLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciB1bWEgZGF0YSwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNEYXRlKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIERhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW0gZXJyby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW0gZXJybywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNFcnJvcihvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBFcnJvcjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB1bWEgZXhwcmVzc8OjbyByZWd1bGFyLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciB1bWEgZXhwcmVzc8OjbyByZWd1bGFyLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc1JlZ0V4cChvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBSZWdFeHA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW0gdmFsb3IgcHJpbWl0aXZvLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciB1bSB2YWxvciBwcmltaXRpdm8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzUHJpbWl0aXZlKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIEFncm9PYmplY3RVdGlscy5pc1N0cmluZyhvYmopIHx8IEFncm9PYmplY3RVdGlscy5pc051bWJlcihvYmopIHx8IEFncm9PYmplY3RVdGlscy5pc0Jvb2xlYW4ob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHRvZG9zIG9zIHZhbG9yZXMgZGUgdW0gb2JqZXRvIHPDo28gbnVsb3Mgb3UgaW5kZWZpbmlkb3MuXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgdG9kb3Mgb3MgdmFsb3JlcyBkbyBvYmpldG8gZm9yZW0gbnVsb3Mgb3UgaW5kZWZpbmlkb3MsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGFsbE51bGwob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIUFncm9PYmplY3RVdGlscy5pc09iamVjdChvYmopKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xyXG4gICAgICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkgJiYgIUFncm9PYmplY3RVdGlscy5pc051bGxPclVuZGVmaW5lZChvYmpba2V5XSkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb21wYXJhIGRvaXMgb2JqZXRvcyBwYXJhIHZlcmlmaWNhciBzZSBzw6NvIGlndWFpcy5cclxuICAgICAqIEBwYXJhbSBvYmoxIC0gTyBwcmltZWlybyBvYmpldG8gYSBzZXIgY29tcGFyYWRvLlxyXG4gICAgICogQHBhcmFtIG9iajIgLSBPIHNlZ3VuZG8gb2JqZXRvIGEgc2VyIGNvbXBhcmFkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2Ugb3Mgb2JqZXRvcyBmb3JlbSBpZ3VhaXMsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzRXF1YWwob2JqMTogYW55LCBvYmoyOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShvYmoxKSA9PT0gSlNPTi5zdHJpbmdpZnkob2JqMik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgbnVsby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgbnVsbyBvdSB1bSBvYmpldG8gdmF6aW8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzTnVsbChvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBvYmogPT09IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gbsOjbyDDqSBudWxvLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIG7Do28gZm9yIG51bG8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzTm90TnVsbChvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhQWdyb09iamVjdFV0aWxzLmlzTnVsbChvYmopO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29udmVydGUgdW0gb2JqZXRvIHBhcmEgdW1hIHN0cmluZyBKU09OLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIGNvbnZlcnRpZG8uXHJcbiAgICAgKiBAcmV0dXJucyBBIHN0cmluZyBKU09OIHJlcHJlc2VudGFuZG8gbyBvYmpldG8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyB0b0pTT04ob2JqOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShvYmopO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIG7Do28gw6kgdmF6aW8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gbsOjbyBmb3IgdmF6aW8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzTm90RW1wdHkob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIUFncm9PYmplY3RVdGlscy5pc09iamVjdChvYmopKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5sZW5ndGggIT09IEFHUk9fTlVNQkVSUy5aRVJPO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHZhemlvLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciB2YXppbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNFbXB0eShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhQWdyb09iamVjdFV0aWxzLmlzTm90RW1wdHkob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byBuw6NvIGVzdMOhIHZhemlvIGUgY29udMOpbSB1bWEgZGV0ZXJtaW5hZGEgcHJvcHJpZWRhZGUuXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEBwYXJhbSBwcm9wZXJ0eSAtIEEgcHJvcHJpZWRhZGUgYSBzZXIgdmVyaWZpY2FkYS5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gbsOjbyBlc3RpdmVyIHZhemlvIGUgY29udGl2ZXIgYSBwcm9wcmllZGFkZSwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgY29udGFpbnNQcm9wZXJ0eShvYmo6IGFueSwgcHJvcGVydHk6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBZ3JvT2JqZWN0VXRpbHMuaXNOb3RFbXB0eShvYmopICYmIG9iai5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSBvIHBhcsOibWV0cm8gcmVjZWJpZG8gw6kgdW0gb2JqZXRvIGUgc2UgZWxlIGNvbnTDqW0gYSBwcm9wcmllZGFkZSBJRC5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGhhc0lkKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIEFncm9PYmplY3RVdGlscy5pc05vdEVtcHR5KG9iaikgJiYgb2JqLmhhc093blByb3BlcnR5KFwiaWRcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSBvIHZhbG9yIGluZm9ybWFkbyBubyBwYXLDom1ldHJvIHBvc3N1aSBhcyBwcm9wcmllZGFkZXMgZGUgdW1hIGVudGlkYWRlIFNETCAoaWQgZSBjcmVhdGVkQXQpLlxyXG4gICAgICogQHBhcmFtIG9ialxyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzU0RMRW50aXR5KG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIEFncm9PYmplY3RVdGlscy5pc05vdEVtcHR5KG9iaikgJiYgb2JqLmhhc093blByb3BlcnR5KFwiaWRcIikgJiYgb2JqLmhhc093blByb3BlcnR5KFwiY3JlYXRlZEF0XCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHZhbGlkbywgY29uc2lkZXJhbmRvIHF1ZSBoYWphIG5vIG3DrW5pbW8gMSBwcm9wcmllZGFkZVxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNWYWxpZChvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikubGVuZ3RoID4gQUdST19OVU1CRVJTLlpFUk8gJiYgQWdyb09iamVjdFV0aWxzLmlzTm90RW1wdHkob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSBpbnbDoWxpZG8sIGNvbnNpZGVyYW5kbyBxdWUgbsOjbyBoYWphIG5lbmh1bWEgcHJvcHJpZWRhZGVcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzSW52YWxpZChvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhQWdyb09iamVjdFV0aWxzLmlzVmFsaWQob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEVuY29udHJhIHVtYSBwcm9wcmllZGFkZSBlbSB1bSBvYmpldG8gcGVsbyBub21lIGUgcmV0b3JuYSBzZXUgdmFsb3IuXHJcbiAgICAgKiBTZSBvIHZhbG9yIGZvciB1bSBvYmpldG8sIHJldG9ybmEgbyBwcsOzcHJpbyBvYmpldG8uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG9iaiBPIG9iamV0byBvbmRlIGJ1c2Nhci5cclxuICAgICAqIEBwYXJhbSBrZXkgTyBub21lIGRhIHByb3ByaWVkYWRlIGEgc2VyIGVuY29udHJhZGEuXHJcbiAgICAgKiBAcGFyYW0gZGVlcFNlYXJjaCBJbmRpY2Egc2UgYSBidXNjYSBkZXZlIHNlciBlbSBwcm9mdW5kaWRhZGUgKHBhZHLDo286IHRydWUpLlxyXG4gICAgICogQHJldHVybnMgTyB2YWxvciBkYSBwcm9wcmllZGFkZSwgb3UgdW5kZWZpbmVkIHNlIG7Do28gZm9yIGVuY29udHJhZGEuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBmaW5kUHJvcGVydHkob2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBrZXk6IHN0cmluZywgZGVlcFNlYXJjaDogYm9vbGVhbiA9IHRydWUpOiBhbnkge1xyXG4gICAgICAgIGlmIChBZ3JvT2JqZWN0VXRpbHMuaXNJbnZhbGlkKG9iaikpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTyBwcmltZWlybyBhcmd1bWVudG8gZGV2ZSBzZXIgdW0gb2JqZXRvLlwiKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChrZXkgaW4gb2JqKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBvYmpba2V5XTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChkZWVwU2VhcmNoKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcHJvcCBpbiBvYmopIHtcclxuICAgICAgICAgICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkocHJvcCkgJiYgdHlwZW9mIG9ialtwcm9wXSA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IEFncm9PYmplY3RVdGlscy5maW5kUHJvcGVydHkob2JqW3Byb3BdLCBrZXksIGRlZXBTZWFyY2gpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlY2ViZSB1bWEgc3RyaW5nIChKU09OKSBlIHRlbnRhIGNvbnZlcnRlciBwYXJhIHVtIG9iamV0by5cclxuICAgICAqIEBwYXJhbSB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgZnJvbVN0cmluZyh2YWx1ZTogc3RyaW5nKTogYW55IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh2YWx1ZSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=