mod-build 3.4.24 → 3.4.26-beta.3
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.
- package/gulp-tasks/grab-cdn.js +2 -1
- package/gulp-tasks/templates.js +7 -1
- package/package.json +1 -1
- package/src/data/components/qs-footer.js +43 -0
- package/src/data/components/quote-footer.js +54 -0
- package/src/scripts/qs-form.js +10 -0
- package/src/templates/components/qs-footer.html +57 -0
- package/src/templates/components/quote-footer-v1.html +89 -0
- package/src/templates/components/quote-footer-v2.html +111 -0
package/gulp-tasks/grab-cdn.js
CHANGED
|
@@ -48,7 +48,8 @@ module.exports = function(gulp, gulpPlugins, siteSettings, siteData) {
|
|
|
48
48
|
// local dev files
|
|
49
49
|
const remoteFilesForLocalDev = {
|
|
50
50
|
'/scripts/mod-form.js': ['/temp/scripts/', 'mod-form.js'],
|
|
51
|
-
'/scripts/mod-utils.js': ['/temp/scripts/', 'mod-utils.js']
|
|
51
|
+
'/scripts/mod-utils.js': ['/temp/scripts/', 'mod-utils.js'],
|
|
52
|
+
'/scripts/qs-form.js': ['/temp/scripts/', 'qs-form.js']
|
|
52
53
|
};
|
|
53
54
|
|
|
54
55
|
if (!nodeEnv) {
|
package/gulp-tasks/templates.js
CHANGED
|
@@ -3,10 +3,16 @@ module.exports = function(gulp, gulpPlugins, siteSettings, siteData) {
|
|
|
3
3
|
/* eslint brace-style: 0 */
|
|
4
4
|
const { isLocal, nodeEnv, buildPath } = siteSettings;
|
|
5
5
|
const { isWhiteLabel } = siteData;
|
|
6
|
+
|
|
6
7
|
var commonData = require('../src/data/common.js');
|
|
8
|
+
|
|
7
9
|
var assetsPath = isLocal ? '/temp/assets' : 'https://' + nodeEnv + '/quote/resources/assets';
|
|
8
10
|
assetsPath = isWhiteLabel ? '' : assetsPath;
|
|
9
|
-
|
|
11
|
+
|
|
12
|
+
var qsFooterData = require('../src/data/components/qs-footer.js');
|
|
13
|
+
var quoteFooterData = require('../src/data/components/quote-footer.js');
|
|
14
|
+
|
|
15
|
+
var templatesData = Object.assign(commonData(), qsFooterData(), quoteFooterData(), siteData, { isLocal, nodeEnv, assetsPath, buildPath });
|
|
10
16
|
|
|
11
17
|
// This is helper function to evaluate JS expressions
|
|
12
18
|
// in Handlebars, e.g. for conditions
|
package/package.json
CHANGED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
var qsFooterData = function() {
|
|
2
|
+
var data = {
|
|
3
|
+
qsFooterData: {
|
|
4
|
+
links: [
|
|
5
|
+
{
|
|
6
|
+
name: 'About',
|
|
7
|
+
url: '/about/',
|
|
8
|
+
modal: true
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
name: 'Privacy Notice',
|
|
12
|
+
url: '/privacy/',
|
|
13
|
+
modal: true
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: 'Affiliates',
|
|
17
|
+
url: '/publisher/',
|
|
18
|
+
modal: true
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: 'Terms of Use',
|
|
22
|
+
url: '/terms/',
|
|
23
|
+
modal: true
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: 'Contact Us',
|
|
27
|
+
url: '/contact-us/',
|
|
28
|
+
modal: true
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: 'California - Do not sell my info',
|
|
32
|
+
url: 'https://privacy-central.securiti.ai/#/dsr/983cfd4b-c36a-4601-89e9-b651e5a05708',
|
|
33
|
+
modal: false
|
|
34
|
+
}
|
|
35
|
+
],
|
|
36
|
+
copyright: 'QuinStreet, Inc. All Rights Reserved.'
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
return data;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
module.exports = qsFooterData;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
var quoteFooterData = function() {
|
|
2
|
+
var data = {
|
|
3
|
+
quoteFooterData: {
|
|
4
|
+
copyright: 'All Rights Reserved.',
|
|
5
|
+
capchaDisclosure: {
|
|
6
|
+
text: 'This site is protected by reCAPTCHA and the Google',
|
|
7
|
+
privacy: {
|
|
8
|
+
text: 'Privacy Policy',
|
|
9
|
+
url: 'https://policies.google.com/privacy'
|
|
10
|
+
},
|
|
11
|
+
terms: {
|
|
12
|
+
text: 'Terms of Service',
|
|
13
|
+
url: 'https://policies.google.com/terms'
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
privacyLinks: [
|
|
17
|
+
{
|
|
18
|
+
text: 'California Privacy',
|
|
19
|
+
anchor: 'ccpa'
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
text: 'New York Privacy',
|
|
23
|
+
anchor: 'nyna'
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
text: 'Do Not Sell My Personal Information',
|
|
27
|
+
anchor: 'uspi'
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
links: [
|
|
31
|
+
{
|
|
32
|
+
type: 'about',
|
|
33
|
+
text: 'About Us'
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
type: 'terms',
|
|
37
|
+
text: 'Terms of Use'
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
type: 'privacy',
|
|
41
|
+
text: 'Privacy Policy'
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
type: 'publisher',
|
|
45
|
+
text: 'I\'m a publisher'
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
return data;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
module.exports = quoteFooterData;
|
package/src/scripts/qs-form.js
CHANGED
|
@@ -349,6 +349,16 @@ modForm.getDefaultQuadByDomain = function() {
|
|
|
349
349
|
c: '1667462',
|
|
350
350
|
s: '26401',
|
|
351
351
|
f: '201910011622030'
|
|
352
|
+
},
|
|
353
|
+
'kitchencabinetrefacing.org': {
|
|
354
|
+
c: '1668109',
|
|
355
|
+
s: '26393',
|
|
356
|
+
f: '201910231539300'
|
|
357
|
+
},
|
|
358
|
+
'm.kitchencabinetrefacing.org': {
|
|
359
|
+
c: '1670076',
|
|
360
|
+
s: '26401',
|
|
361
|
+
f: '202002181625140'
|
|
352
362
|
}
|
|
353
363
|
};
|
|
354
364
|
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<footer class="footer">
|
|
2
|
+
<div class="container">
|
|
3
|
+
{{#xif 'this.contractorLink === "y"'}}
|
|
4
|
+
<div class="footer__head-link">
|
|
5
|
+
Are you a contractor?
|
|
6
|
+
<a target="_blank" href="https://modernize.com/pro/register/leads/?trade=bathrooms&utm_campaign=quinstreet-referral">
|
|
7
|
+
Join Our Contractor Network
|
|
8
|
+
</a>
|
|
9
|
+
</div>
|
|
10
|
+
{{/xif}}
|
|
11
|
+
<ul class="footer__links">
|
|
12
|
+
{{#each qsFooterData.links}}
|
|
13
|
+
<li>
|
|
14
|
+
<a
|
|
15
|
+
{{#xif "!this.modal" }}
|
|
16
|
+
href="{{this.url}}"
|
|
17
|
+
target="_blank"
|
|
18
|
+
rel="noopener noreferrer"
|
|
19
|
+
{{/xif}}
|
|
20
|
+
{{#xif "this.modal" }}
|
|
21
|
+
data-bind="modal-link"
|
|
22
|
+
data-load="/modals{{this.url}}index.html"
|
|
23
|
+
{{/xif}}
|
|
24
|
+
>
|
|
25
|
+
{{this.name}}
|
|
26
|
+
</a>
|
|
27
|
+
</li>
|
|
28
|
+
{{/each}}
|
|
29
|
+
<!--
|
|
30
|
+
- Define the customFooterLinks array of objects in template.js / siteconfig.js
|
|
31
|
+
- e.g customFooterLinks: [{name: 'Test Link', url: '/test/', modal: true}]
|
|
32
|
+
-->
|
|
33
|
+
{{#if this.customFooterLinks}}
|
|
34
|
+
{{#each this.customFooterLinks}}
|
|
35
|
+
<li>
|
|
36
|
+
<a
|
|
37
|
+
{{#xif "!this.modal" }}
|
|
38
|
+
href="{{this.url}}"
|
|
39
|
+
target="_blank"
|
|
40
|
+
rel="noopener noreferrer"
|
|
41
|
+
{{/xif}}
|
|
42
|
+
{{#xif "this.modal" }}
|
|
43
|
+
data-bind="modal-link"
|
|
44
|
+
data-load="/modals{{this.url}}index.html"
|
|
45
|
+
{{/xif}}
|
|
46
|
+
>
|
|
47
|
+
{{this.name}}
|
|
48
|
+
</a>
|
|
49
|
+
</li>
|
|
50
|
+
{{/each}}
|
|
51
|
+
{{/if}}
|
|
52
|
+
</ul>
|
|
53
|
+
<p class="footer__copyright">
|
|
54
|
+
Copyright © {{year}} {{qsFooterData.copyright}}
|
|
55
|
+
</p>
|
|
56
|
+
</div>
|
|
57
|
+
</footer>
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
<div class="footer">
|
|
2
|
+
<div class="container">
|
|
3
|
+
<img src="{{assetsPath}}/images/logos/misc/bbb.svg" alt="BBB Accredited Logo" class="footer__bbb-logo">
|
|
4
|
+
<div class="footer__content">
|
|
5
|
+
{{#xif 'this.copyright === "top"'}}
|
|
6
|
+
<div class="footer__copyright">
|
|
7
|
+
© Copyright {{year}} {{website_name}}.
|
|
8
|
+
{{{quoteFooterData.copyright}}}
|
|
9
|
+
<div class="footer__captcha-disclosure">
|
|
10
|
+
{{quoteFooterData.capchaDisclosure.text}}
|
|
11
|
+
<a href="{{quoteFooterData.capchaDisclosure.privacy.url}}" target="_blank">{{quoteFooterData.capchaDisclosure.privacy.text}}</a> and
|
|
12
|
+
<a href="{{quoteFooterData.capchaDisclosure.terms.url}}" target="_blank">{{{quoteFooterData.capchaDisclosure.terms.text}}}</a> apply.
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
{{/xif}}
|
|
16
|
+
{{#xif "this.privacylinks === 'top'"}}
|
|
17
|
+
<div class="footer__links">
|
|
18
|
+
{{#each quoteFooterData.privacyLinks}}
|
|
19
|
+
<a href="{{../links.privacy}}" data-load="./modals/privacy/index.html" data-bind="modal-link" data-anchor="#{{this.anchor}}">{{{this.text}}}</a>
|
|
20
|
+
{{/each}}
|
|
21
|
+
<!--
|
|
22
|
+
- Define the customPrivacyLinks array of objects in template.js / siteconfig.js
|
|
23
|
+
- e.g customPrivacyLinks: [{ text: 'This is a custom link', anchor: 'ccpa' }]
|
|
24
|
+
-->
|
|
25
|
+
{{#if this.customPrivacyLinks}}
|
|
26
|
+
{{#each this.customPrivacyLinks}}
|
|
27
|
+
<a href="{{../links.privacy}}" data-load="./modals/privacy/index.html" data-bind="modal-link" data-anchor="#{{this.anchor}}">{{{this.text}}}</a>
|
|
28
|
+
{{/each}}
|
|
29
|
+
{{/if}}
|
|
30
|
+
</div>
|
|
31
|
+
{{/xif}}
|
|
32
|
+
{{#xif 'this.copyright === "middle"'}}
|
|
33
|
+
<div class="footer__copyright">
|
|
34
|
+
© Copyright {{year}} {{website_name}}.
|
|
35
|
+
{{{quoteFooterData.copyright}}}
|
|
36
|
+
<div class="footer__captcha-disclosure">
|
|
37
|
+
{{quoteFooterData.capchaDisclosure.text}}
|
|
38
|
+
<a href="{{quoteFooterData.capchaDisclosure.privacy.url}}" target="_blank">{{quoteFooterData.capchaDisclosure.privacy.text}}</a> and
|
|
39
|
+
<a href="{{quoteFooterData.capchaDisclosure.terms.url}}" target="_blank">{{{quoteFooterData.capchaDisclosure.terms.text}}}</a> apply.
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
{{/xif}}
|
|
43
|
+
|
|
44
|
+
<div class="footer__links">
|
|
45
|
+
{{#each quoteFooterData.links}}
|
|
46
|
+
<a href="/{{this.type}}" data-load="./modals/{{this.type}}/index.html" data-bind="modal-link">{{this.text}}</a>
|
|
47
|
+
{{/each}}
|
|
48
|
+
<!--
|
|
49
|
+
- Define the customFooterLinks array of objects in template.js / siteconfig.js
|
|
50
|
+
- e.g customFooterLinks: [{type: 'test', text: 'Test Link'}]
|
|
51
|
+
-->
|
|
52
|
+
{{#if this.customFooterLinks}}
|
|
53
|
+
{{#each this.customFooterLinks}}
|
|
54
|
+
<a href="/{{this.type}}" data-load="./modals/{{this.type}}/index.html" data-bind="modal-link">{{this.text}}</a>
|
|
55
|
+
{{/each}}
|
|
56
|
+
{{/if}}
|
|
57
|
+
</div>
|
|
58
|
+
|
|
59
|
+
{{#xif "this.privacylinks === 'bottom'"}}
|
|
60
|
+
<div class="footer__links">
|
|
61
|
+
{{#each quoteFooterData.privacyLinks}}
|
|
62
|
+
<a href="{{../links.privacy}}" data-load="./modals/privacy/index.html" data-bind="modal-link" data-anchor="#{{this.anchor}}">{{{this.text}}}</a>
|
|
63
|
+
{{/each}}
|
|
64
|
+
<!--
|
|
65
|
+
- Define the customPrivacyLinks array of objects in template.js / siteconfig.js
|
|
66
|
+
- e.g customPrivacyLinks: [{ text: 'This is a custom link', anchor: 'ccpa' }]
|
|
67
|
+
-->
|
|
68
|
+
{{#if this.customPrivacyLinks}}
|
|
69
|
+
{{#each this.customPrivacyLinks}}
|
|
70
|
+
<a href="{{../links.privacy}}" data-load="./modals/privacy/index.html" data-bind="modal-link" data-anchor="#{{this.anchor}}">{{{this.text}}}</a>
|
|
71
|
+
{{/each}}
|
|
72
|
+
{{/if}}
|
|
73
|
+
</div>
|
|
74
|
+
{{/xif}}
|
|
75
|
+
|
|
76
|
+
{{#xif 'this.copyright === "bottom"'}}
|
|
77
|
+
<div class="footer__copyright">
|
|
78
|
+
© Copyright {{year}} {{website_name}}.
|
|
79
|
+
{{{quoteFooterData.copyright}}}
|
|
80
|
+
<div class="footer__captcha-disclosure">
|
|
81
|
+
{{quoteFooterData.capchaDisclosure.text}}
|
|
82
|
+
<a href="{{quoteFooterData.capchaDisclosure.privacy.url}}" target="_blank">{{quoteFooterData.capchaDisclosure.privacy.text}}</a> and
|
|
83
|
+
<a href="{{quoteFooterData.capchaDisclosure.terms.url}}" target="_blank">{{{quoteFooterData.capchaDisclosure.terms.text}}}</a> apply.
|
|
84
|
+
</div>
|
|
85
|
+
</div>
|
|
86
|
+
{{/xif}}
|
|
87
|
+
</div>
|
|
88
|
+
</div>
|
|
89
|
+
</div>
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
<div class="footer container">
|
|
2
|
+
<img src="{{assetsPath}}/images/logos/misc/bbb.svg" alt="BBB Accredited Logo" class="footer__bbb-logo">
|
|
3
|
+
{{#xif 'this.copyright === "top"'}}
|
|
4
|
+
<div class="footer__row">
|
|
5
|
+
<div class="footer__copyright">
|
|
6
|
+
© Copyright {{year}} {{company_name}}. {{{quoteFooterData.copyright}}}
|
|
7
|
+
</div>
|
|
8
|
+
<div class="footer__captcha-disclosure">
|
|
9
|
+
{{quoteFooterData.capchaDisclosure.text}}
|
|
10
|
+
<a href="{{quoteFooterData.capchaDisclosure.privacy.url}}" target="_blank">{{quoteFooterData.capchaDisclosure.privacy.text}}</a> and
|
|
11
|
+
<a href="{{quoteFooterData.capchaDisclosure.terms.url}}" target="_blank">{{{quoteFooterData.capchaDisclosure.terms.text}}}</a> apply.
|
|
12
|
+
</div>
|
|
13
|
+
</div>
|
|
14
|
+
{{/xif}}
|
|
15
|
+
{{#xif "this.privacylinks === 'top'"}}
|
|
16
|
+
<div class="footer__row">
|
|
17
|
+
<ul class="footer__links">
|
|
18
|
+
{{#each quoteFooterData.privacyLinks}}
|
|
19
|
+
<li>
|
|
20
|
+
<a href="{{../links.privacy}}" data-load="./modals/privacy/index.html" data-bind="modal-link" data-anchor="#{{this.anchor}}">
|
|
21
|
+
{{{this.text}}}
|
|
22
|
+
</a>
|
|
23
|
+
</li>
|
|
24
|
+
{{/each}}
|
|
25
|
+
<!--
|
|
26
|
+
- Define the customPrivacyLinks array of objects in template.js / siteconfig.js
|
|
27
|
+
- e.g customPrivacyLinks: [{ text: 'This is a custom link', anchor: 'ccpa' }]
|
|
28
|
+
-->
|
|
29
|
+
{{#if this.customPrivacyLinks}}
|
|
30
|
+
{{#each this.customPrivacyLinks}}
|
|
31
|
+
<li>
|
|
32
|
+
<a href="{{../links.privacy}}" data-load="./modals/privacy/index.html" data-bind="modal-link" data-anchor="#{{this.anchor}}">
|
|
33
|
+
{{{this.text}}}
|
|
34
|
+
</a>
|
|
35
|
+
</li>
|
|
36
|
+
{{/each}}
|
|
37
|
+
{{/if}}
|
|
38
|
+
</ul>
|
|
39
|
+
</div>
|
|
40
|
+
{{/xif}}
|
|
41
|
+
<div class="footer__row">
|
|
42
|
+
<ul class="footer__links">
|
|
43
|
+
{{#each quoteFooterData.links}}
|
|
44
|
+
<li>
|
|
45
|
+
<a href="{{this.type}}" data-load="./modals/{{this.type}}/index.html" data-bind="modal-link">{{this.text}}</a>
|
|
46
|
+
</li>
|
|
47
|
+
{{/each}}
|
|
48
|
+
<!--
|
|
49
|
+
- Define the customFooterLinks array of objects in template.js / siteconfig.js
|
|
50
|
+
- e.g customFooterLinks: [{type: 'test', text: 'Test Link'}]
|
|
51
|
+
-->
|
|
52
|
+
{{#if this.customFooterLinks}}
|
|
53
|
+
{{#each this.customFooterLinks}}
|
|
54
|
+
<li>
|
|
55
|
+
<a href="{{this.type}}" data-load="./modals/{{this.type}}/index.html" data-bind="modal-link">{{this.text}}</a>
|
|
56
|
+
</li>
|
|
57
|
+
{{/each}}
|
|
58
|
+
{{/if}}
|
|
59
|
+
</ul>
|
|
60
|
+
</div>
|
|
61
|
+
{{#xif 'this.copyright === "middle"'}}
|
|
62
|
+
<div class="footer__row">
|
|
63
|
+
<div class="footer__copyright">
|
|
64
|
+
© Copyright {{year}} {{company_name}}. {{{quoteFooterData.copyright}}}
|
|
65
|
+
</div>
|
|
66
|
+
<div class="footer__captcha-disclosure">
|
|
67
|
+
{{quoteFooterData.capchaDisclosure.text}}
|
|
68
|
+
<a href="{{quoteFooterData.capchaDisclosure.privacy.url}}" target="_blank">{{quoteFooterData.capchaDisclosure.privacy.text}}</a> and
|
|
69
|
+
<a href="{{quoteFooterData.capchaDisclosure.terms.url}}" target="_blank">{{{quoteFooterData.capchaDisclosure.terms.text}}}</a> apply.
|
|
70
|
+
</div>
|
|
71
|
+
</div>
|
|
72
|
+
{{/xif}}
|
|
73
|
+
{{#xif "this.privacylinks === 'bottom'"}}
|
|
74
|
+
<div class="footer__row">
|
|
75
|
+
<ul class="footer__links">
|
|
76
|
+
{{#each quoteFooterData.privacyLinks}}
|
|
77
|
+
<li>
|
|
78
|
+
<a href="{{../links.privacy}}" data-load="./modals/privacy/index.html" data-bind="modal-link" data-anchor="#{{this.anchor}}">
|
|
79
|
+
{{{this.text}}}
|
|
80
|
+
</a>
|
|
81
|
+
</li>
|
|
82
|
+
{{/each}}
|
|
83
|
+
<!--
|
|
84
|
+
- Define the customPrivacyLinks array of objects in template.js / siteconfig.js
|
|
85
|
+
- e.g customPrivacyLinks: [{ text: 'This is a custom link', anchor: 'ccpa' }]
|
|
86
|
+
-->
|
|
87
|
+
{{#if this.customPrivacyLinks}}
|
|
88
|
+
{{#each this.customPrivacyLinks}}
|
|
89
|
+
<li>
|
|
90
|
+
<a href="{{../links.privacy}}" data-load="./modals/privacy/index.html" data-bind="modal-link" data-anchor="#{{this.anchor}}">
|
|
91
|
+
{{{this.text}}}
|
|
92
|
+
</a>
|
|
93
|
+
</li>
|
|
94
|
+
{{/each}}
|
|
95
|
+
{{/if}}
|
|
96
|
+
</ul>
|
|
97
|
+
</div>
|
|
98
|
+
{{/xif}}
|
|
99
|
+
{{#xif 'this.copyright === "bottom"'}}
|
|
100
|
+
<div class="footer__row">
|
|
101
|
+
<div class="footer__copyright">
|
|
102
|
+
© Copyright {{year}} {{company_name}}. {{{quoteFooterData.copyright}}}
|
|
103
|
+
</div>
|
|
104
|
+
<div class="footer__captcha-disclosure">
|
|
105
|
+
{{quoteFooterData.capchaDisclosure.text}}
|
|
106
|
+
<a href="{{quoteFooterData.capchaDisclosure.privacy.url}}" target="_blank">{{quoteFooterData.capchaDisclosure.privacy.text}}</a> and
|
|
107
|
+
<a href="{{quoteFooterData.capchaDisclosure.terms.url}}" target="_blank">{{{quoteFooterData.capchaDisclosure.terms.text}}}</a> apply.
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
{{/xif}}
|
|
111
|
+
</div>
|