@elliemae/ds-mobile 3.57.0-next.9 → 3.57.0-rc.1
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.
|
@@ -38,36 +38,11 @@ function stripUnit(value) {
|
|
|
38
38
|
const matchedValue = value.match(cssRegex);
|
|
39
39
|
return matchedValue ? parseFloat(value) : value;
|
|
40
40
|
}
|
|
41
|
-
const ERRORS = preval`
|
|
42
|
-
const fs = require('fs');
|
|
43
|
-
const md = fs.readFileSync(__dirname + '/errors.md', 'utf8');
|
|
44
|
-
module.exports = md.split(/^#/gm).slice(1).reduce((errors, str) => {
|
|
45
|
-
const [, code, message] = str.split(/^.*?(\\d+)\\s*\\n/)
|
|
46
|
-
errors[code] = message
|
|
47
|
-
return errors;
|
|
48
|
-
}, {});
|
|
49
|
-
`;
|
|
50
|
-
function format(...args) {
|
|
51
|
-
let a = args[0];
|
|
52
|
-
const b = [];
|
|
53
|
-
let c;
|
|
54
|
-
for (c = 1; c < args.length; c += 1) {
|
|
55
|
-
b.push(args[c]);
|
|
56
|
-
}
|
|
57
|
-
b.forEach((d) => {
|
|
58
|
-
a = a.replace(/%[a-z]/, d);
|
|
59
|
-
});
|
|
60
|
-
return a;
|
|
61
|
-
}
|
|
62
41
|
class PolishedError extends Error {
|
|
63
42
|
constructor(code, ...args) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
);
|
|
68
|
-
} else {
|
|
69
|
-
super(format(ERRORS[code], ...args));
|
|
70
|
-
}
|
|
43
|
+
super(
|
|
44
|
+
`An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#${code} for more information.`
|
|
45
|
+
);
|
|
71
46
|
}
|
|
72
47
|
}
|
|
73
48
|
function endsWith(string, suffix) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/MobileCard/polishedUtil.ts", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable no-var */\n\
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;
|
|
4
|
+
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable no-var */\n\nconst cssRegex = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n\n// copying from polished github repostiory at https://github.com/styled-components/polished/blob/main/src/helpers/stripUnit.js\n/**\n * Returns a given CSS value minus its unit of measure.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': stripUnit('100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${stripUnit('100px')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100\n * }\n */\nfunction stripUnit(value: string | number): string | number {\n if (typeof value !== 'string') return value;\n const matchedValue = value.match(cssRegex);\n return matchedValue ? parseFloat(value) : value;\n}\n\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n * @private\n */\nclass PolishedError extends Error {\n constructor(code: string | number, ...args: Array<unknown>) {\n super(\n `An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#${code} for more information.`,\n );\n }\n}\n\n// copied from polished github repostiory at https://github.com/styled-components/polished/blob/main/src/internalHelpers/_endsWith.js\n/**\n * Check if a string ends with something\n * @private\n */\nfunction endsWith(string: string, suffix: string): boolean {\n return string.substr(-suffix.length) === suffix;\n}\n\n// copied from polished github repostiory at https://github.com/styled-components/polished/blob/main/src/internalHelpers/_pxto.js\n/**\n * Factory function that creates pixel-to-x converters\n * @private\n */\nconst pxtoFactory =\n (to: string) =>\n (pxval: string | number, base: string | number = '16px'): string => {\n let newPxval = pxval;\n let newBase = base;\n if (typeof pxval === 'string') {\n if (!endsWith(pxval, 'px')) {\n throw new PolishedError(69, to, pxval);\n }\n newPxval = stripUnit(pxval);\n }\n\n if (typeof base === 'string') {\n if (!endsWith(base, 'px')) {\n throw new PolishedError(70, to, base);\n }\n newBase = stripUnit(base);\n }\n\n if (typeof newPxval === 'string') {\n throw new PolishedError(71, pxval, to);\n }\n\n if (typeof newBase === 'string') {\n throw new PolishedError(72, base, to);\n }\n\n return `${newPxval / newBase}${to}`;\n };\n\n// copied from polished github repostiory at https://github.com/styled-components/polished/blob/main/src/helpers/rem.js\n/**\n * Convert pixel value to rems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': rem('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${rem('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1rem'\n * }\n */\nexport const rem: (value: string | number, base?: string | number) => string = pxtoFactory('rem');\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADQvB,MAAM,WAAW;AAuBjB,SAAS,UAAU,OAAyC;AAC1D,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,QAAM,eAAe,MAAM,MAAM,QAAQ;AACzC,SAAO,eAAe,WAAW,KAAK,IAAI;AAC5C;AAOA,MAAM,sBAAsB,MAAM;AAAA,EAChC,YAAY,SAA0B,MAAsB;AAC1D;AAAA,MACE,gHAAgH,IAAI;AAAA,IACtH;AAAA,EACF;AACF;AAOA,SAAS,SAAS,QAAgB,QAAyB;AACzD,SAAO,OAAO,OAAO,CAAC,OAAO,MAAM,MAAM;AAC3C;AAOA,MAAM,cACJ,CAAC,OACD,CAAC,OAAwB,OAAwB,WAAmB;AAClE,MAAI,WAAW;AACf,MAAI,UAAU;AACd,MAAI,OAAO,UAAU,UAAU;AAC7B,QAAI,CAAC,SAAS,OAAO,IAAI,GAAG;AAC1B,YAAM,IAAI,cAAc,IAAI,IAAI,KAAK;AAAA,IACvC;AACA,eAAW,UAAU,KAAK;AAAA,EAC5B;AAEA,MAAI,OAAO,SAAS,UAAU;AAC5B,QAAI,CAAC,SAAS,MAAM,IAAI,GAAG;AACzB,YAAM,IAAI,cAAc,IAAI,IAAI,IAAI;AAAA,IACtC;AACA,cAAU,UAAU,IAAI;AAAA,EAC1B;AAEA,MAAI,OAAO,aAAa,UAAU;AAChC,UAAM,IAAI,cAAc,IAAI,OAAO,EAAE;AAAA,EACvC;AAEA,MAAI,OAAO,YAAY,UAAU;AAC/B,UAAM,IAAI,cAAc,IAAI,MAAM,EAAE;AAAA,EACtC;AAEA,SAAO,GAAG,WAAW,OAAO,GAAG,EAAE;AACnC;AA0BK,MAAM,MAAkE,YAAY,KAAK;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -5,36 +5,11 @@ function stripUnit(value) {
|
|
|
5
5
|
const matchedValue = value.match(cssRegex);
|
|
6
6
|
return matchedValue ? parseFloat(value) : value;
|
|
7
7
|
}
|
|
8
|
-
const ERRORS = preval`
|
|
9
|
-
const fs = require('fs');
|
|
10
|
-
const md = fs.readFileSync(__dirname + '/errors.md', 'utf8');
|
|
11
|
-
module.exports = md.split(/^#/gm).slice(1).reduce((errors, str) => {
|
|
12
|
-
const [, code, message] = str.split(/^.*?(\\d+)\\s*\\n/)
|
|
13
|
-
errors[code] = message
|
|
14
|
-
return errors;
|
|
15
|
-
}, {});
|
|
16
|
-
`;
|
|
17
|
-
function format(...args) {
|
|
18
|
-
let a = args[0];
|
|
19
|
-
const b = [];
|
|
20
|
-
let c;
|
|
21
|
-
for (c = 1; c < args.length; c += 1) {
|
|
22
|
-
b.push(args[c]);
|
|
23
|
-
}
|
|
24
|
-
b.forEach((d) => {
|
|
25
|
-
a = a.replace(/%[a-z]/, d);
|
|
26
|
-
});
|
|
27
|
-
return a;
|
|
28
|
-
}
|
|
29
8
|
class PolishedError extends Error {
|
|
30
9
|
constructor(code, ...args) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
);
|
|
35
|
-
} else {
|
|
36
|
-
super(format(ERRORS[code], ...args));
|
|
37
|
-
}
|
|
10
|
+
super(
|
|
11
|
+
`An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#${code} for more information.`
|
|
12
|
+
);
|
|
38
13
|
}
|
|
39
14
|
}
|
|
40
15
|
function endsWith(string, suffix) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../src/MobileCard/polishedUtil.ts"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable no-var */\n\
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable no-var */\n\nconst cssRegex = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n\n// copying from polished github repostiory at https://github.com/styled-components/polished/blob/main/src/helpers/stripUnit.js\n/**\n * Returns a given CSS value minus its unit of measure.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': stripUnit('100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${stripUnit('100px')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100\n * }\n */\nfunction stripUnit(value: string | number): string | number {\n if (typeof value !== 'string') return value;\n const matchedValue = value.match(cssRegex);\n return matchedValue ? parseFloat(value) : value;\n}\n\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n * @private\n */\nclass PolishedError extends Error {\n constructor(code: string | number, ...args: Array<unknown>) {\n super(\n `An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#${code} for more information.`,\n );\n }\n}\n\n// copied from polished github repostiory at https://github.com/styled-components/polished/blob/main/src/internalHelpers/_endsWith.js\n/**\n * Check if a string ends with something\n * @private\n */\nfunction endsWith(string: string, suffix: string): boolean {\n return string.substr(-suffix.length) === suffix;\n}\n\n// copied from polished github repostiory at https://github.com/styled-components/polished/blob/main/src/internalHelpers/_pxto.js\n/**\n * Factory function that creates pixel-to-x converters\n * @private\n */\nconst pxtoFactory =\n (to: string) =>\n (pxval: string | number, base: string | number = '16px'): string => {\n let newPxval = pxval;\n let newBase = base;\n if (typeof pxval === 'string') {\n if (!endsWith(pxval, 'px')) {\n throw new PolishedError(69, to, pxval);\n }\n newPxval = stripUnit(pxval);\n }\n\n if (typeof base === 'string') {\n if (!endsWith(base, 'px')) {\n throw new PolishedError(70, to, base);\n }\n newBase = stripUnit(base);\n }\n\n if (typeof newPxval === 'string') {\n throw new PolishedError(71, pxval, to);\n }\n\n if (typeof newBase === 'string') {\n throw new PolishedError(72, base, to);\n }\n\n return `${newPxval / newBase}${to}`;\n };\n\n// copied from polished github repostiory at https://github.com/styled-components/polished/blob/main/src/helpers/rem.js\n/**\n * Convert pixel value to rems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': rem('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${rem('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1rem'\n * }\n */\nexport const rem: (value: string | number, base?: string | number) => string = pxtoFactory('rem');\n"],
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACQvB,MAAM,WAAW;AAuBjB,SAAS,UAAU,OAAyC;AAC1D,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,QAAM,eAAe,MAAM,MAAM,QAAQ;AACzC,SAAO,eAAe,WAAW,KAAK,IAAI;AAC5C;AAOA,MAAM,sBAAsB,MAAM;AAAA,EAChC,YAAY,SAA0B,MAAsB;AAC1D;AAAA,MACE,gHAAgH,IAAI;AAAA,IACtH;AAAA,EACF;AACF;AAOA,SAAS,SAAS,QAAgB,QAAyB;AACzD,SAAO,OAAO,OAAO,CAAC,OAAO,MAAM,MAAM;AAC3C;AAOA,MAAM,cACJ,CAAC,OACD,CAAC,OAAwB,OAAwB,WAAmB;AAClE,MAAI,WAAW;AACf,MAAI,UAAU;AACd,MAAI,OAAO,UAAU,UAAU;AAC7B,QAAI,CAAC,SAAS,OAAO,IAAI,GAAG;AAC1B,YAAM,IAAI,cAAc,IAAI,IAAI,KAAK;AAAA,IACvC;AACA,eAAW,UAAU,KAAK;AAAA,EAC5B;AAEA,MAAI,OAAO,SAAS,UAAU;AAC5B,QAAI,CAAC,SAAS,MAAM,IAAI,GAAG;AACzB,YAAM,IAAI,cAAc,IAAI,IAAI,IAAI;AAAA,IACtC;AACA,cAAU,UAAU,IAAI;AAAA,EAC1B;AAEA,MAAI,OAAO,aAAa,UAAU;AAChC,UAAM,IAAI,cAAc,IAAI,OAAO,EAAE;AAAA,EACvC;AAEA,MAAI,OAAO,YAAY,UAAU;AAC/B,UAAM,IAAI,cAAc,IAAI,MAAM,EAAE;AAAA,EACtC;AAEA,SAAO,GAAG,WAAW,OAAO,GAAG,EAAE;AACnC;AA0BK,MAAM,MAAkE,YAAY,KAAK;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-mobile",
|
|
3
|
-
"version": "3.57.0-
|
|
3
|
+
"version": "3.57.0-rc.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - System",
|
|
6
6
|
"files": [
|
|
@@ -35,55 +35,56 @@
|
|
|
35
35
|
"reportFile": "tests.xml",
|
|
36
36
|
"indent": 4
|
|
37
37
|
},
|
|
38
|
+
"scripts": {
|
|
39
|
+
"test": "pui-cli test --passWithNoTests --coverage=\"false\"",
|
|
40
|
+
"lint": "node ../../../scripts/lint.mjs --fix",
|
|
41
|
+
"lint:strict": "node ../../../scripts/lint-strict.mjs",
|
|
42
|
+
"dts": "exit 0 | echo",
|
|
43
|
+
"build": "cross-env NODE_ENV=production node ../../../scripts/build/build.mjs",
|
|
44
|
+
"checkDeps": "npm exec ../../util/ds-codemods -- check-missing-packages --projectFolderPath=\"./\" --ignorePackagesGlobPattern=\"\" --ignoreFilesGlobPattern=\"**/test-ables/*,**/tests/*\"",
|
|
45
|
+
"dev": "cross-env NODE_ENV=development node ../../../scripts/build/build.mjs --watch"
|
|
46
|
+
},
|
|
38
47
|
"publishConfig": {
|
|
39
48
|
"access": "public",
|
|
40
49
|
"typeSafety": false
|
|
41
50
|
},
|
|
42
51
|
"dependencies": {
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"@elliemae/ds-
|
|
46
|
-
"@elliemae/ds-button": "3.57.0-
|
|
47
|
-
"@elliemae/ds-
|
|
48
|
-
"@elliemae/ds-
|
|
49
|
-
"@elliemae/ds-
|
|
50
|
-
"@elliemae/ds-
|
|
51
|
-
"@elliemae/ds-
|
|
52
|
-
"@elliemae/ds-
|
|
53
|
-
"@elliemae/ds-
|
|
54
|
-
"@elliemae/ds-
|
|
55
|
-
"@elliemae/ds-
|
|
56
|
-
"@elliemae/ds-
|
|
57
|
-
"@elliemae/ds-
|
|
58
|
-
"@elliemae/ds-
|
|
59
|
-
"
|
|
60
|
-
"
|
|
52
|
+
"@elliemae/ds-accordion": "3.57.0-rc.1",
|
|
53
|
+
"@elliemae/ds-backdrop": "3.57.0-rc.1",
|
|
54
|
+
"@elliemae/ds-button": "3.57.0-rc.1",
|
|
55
|
+
"@elliemae/ds-button-v2": "3.57.0-rc.1",
|
|
56
|
+
"@elliemae/ds-circular-progress-indicator": "3.57.0-rc.1",
|
|
57
|
+
"@elliemae/ds-form": "3.57.0-rc.1",
|
|
58
|
+
"@elliemae/ds-form-checkbox": "3.57.0-rc.1",
|
|
59
|
+
"@elliemae/ds-grid": "3.57.0-rc.1",
|
|
60
|
+
"@elliemae/ds-icon": "3.57.0-rc.1",
|
|
61
|
+
"@elliemae/ds-icons": "3.57.0-rc.1",
|
|
62
|
+
"@elliemae/ds-indeterminate-progress-indicator": "3.57.0-rc.1",
|
|
63
|
+
"@elliemae/ds-props-helpers": "3.57.0-rc.1",
|
|
64
|
+
"@elliemae/ds-shared": "3.57.0-rc.1",
|
|
65
|
+
"@elliemae/ds-system": "3.57.0-rc.1",
|
|
66
|
+
"@elliemae/ds-tabs": "3.57.0-rc.1",
|
|
67
|
+
"@elliemae/ds-truncated-expandable-text": "3.57.0-rc.1",
|
|
68
|
+
"react-window": "catalog:",
|
|
69
|
+
"react-window-infinite-loader": "catalog:"
|
|
61
70
|
},
|
|
62
71
|
"devDependencies": {
|
|
63
|
-
"@elliemae/
|
|
64
|
-
"@elliemae/
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
72
|
+
"@elliemae/ds-monorepo-devops": "3.57.0-rc.1",
|
|
73
|
+
"@elliemae/ds-test-utils": "3.57.0-rc.1",
|
|
74
|
+
"@elliemae/pui-cli": "catalog:",
|
|
75
|
+
"@elliemae/pui-theme": "catalog:",
|
|
76
|
+
"jest": "catalog:",
|
|
77
|
+
"jest-cli": "catalog:",
|
|
78
|
+
"styled-components": "catalog:",
|
|
79
|
+
"styled-system": "catalog:"
|
|
71
80
|
},
|
|
72
81
|
"peerDependencies": {
|
|
73
|
-
"@elliemae/pui-theme": "
|
|
74
|
-
"lodash-es": "
|
|
75
|
-
"react": "
|
|
76
|
-
"react-dom": "
|
|
77
|
-
"styled-components": "
|
|
78
|
-
"styled-system": "
|
|
82
|
+
"@elliemae/pui-theme": "catalog:",
|
|
83
|
+
"lodash-es": "catalog:",
|
|
84
|
+
"react": "catalog:",
|
|
85
|
+
"react-dom": "catalog:",
|
|
86
|
+
"styled-components": "catalog:",
|
|
87
|
+
"styled-system": "catalog:"
|
|
79
88
|
},
|
|
80
|
-
"
|
|
81
|
-
|
|
82
|
-
"lint": "node ../../../scripts/lint.mjs --fix",
|
|
83
|
-
"lint:strict": "node ../../../scripts/lint-strict.mjs",
|
|
84
|
-
"dts": "exit 0 | echo",
|
|
85
|
-
"build": "cross-env NODE_ENV=production node ../../../scripts/build/build.mjs",
|
|
86
|
-
"checkDeps": "npm exec ../../util/ds-codemods -- check-missing-packages --projectFolderPath=\"./\" --ignorePackagesGlobPattern=\"\" --ignoreFilesGlobPattern=\"**/test-ables/*,**/tests/*\"",
|
|
87
|
-
"dev": "cross-env NODE_ENV=development node ../../../scripts/build/build.mjs --watch"
|
|
88
|
-
}
|
|
89
|
-
}
|
|
89
|
+
"gitHead": "d0d7cac7600d5ba2b1c5c80cba7573e6acc11a96"
|
|
90
|
+
}
|