• Edit
  • Download
    1. <!doctype html>
    2. <html>
    3.  
    4. <head>
    5. <meta charset="utf-8">
    6. <title>ZingSoft Demo</title>
    7. <script nonce="undefined" src="https://cdn.zingchart.com/zingchart.min.js"></script>
    8. <style>
    9. .zc-parties {
    10. padding: 1rem;
    11. display: flex;
    12. justify-content: center;
    13. background: #fff;
    14. box-sizing: border-box;
    15. }
    16.  
    17. .zc-body {
    18. background: #fff;
    19. }
    20.  
    21. .chart--container {
    22. height: 100%;
    23. width: 100%;
    24. min-height: 530px;
    25. }
    26.  
    27. .zc-ref {
    28. display: none;
    29. }
    30. </style>
    31. </head>
    32.  
    33. <body class="zc-body">
    34.  
    35. <div class="zc-parties">
    36.  
    37. <div id="myChart">
    38. <a href="https://www.zingchart.com/" rel="noopener" class="zc-ref">Powered by ZingChart</a>
    39. </div>
    40.  
    41. </div>
    42.  
    43. <script>
    44. ZC.LICENSE = ["569d52cefae586f634c54f86dc99e6a9", "b55b025e438fa8a98e32482b5f768ff5"];
    45. // INIT
    46. // -----------------------------
    47. // Define Module Location
    48. zingchart.MODULESDIR = "https://cdn.zingchart.com/modules/";
    49. // Load Maps
    50. zingchart.loadModules('maps, maps-fraL2, color-scale', init);
    51.  
    52. function init() {
    53.  
    54. // DEFINE CHART LOCATIONS (IDS)
    55. // -----------------------------
    56. // Main chart render location(s)
    57. let chartId = 'myChart';
    58.  
    59.  
    60. // PARTY CHARTS DATA & CONFIG
    61. // -----------------------------
    62.  
    63. // 3 main parties
    64. let parties = {
    65. REM: {
    66. name: 'REM: La Republique En Marche!',
    67. color: '#FB8B24',
    68. leader: 'Christophe Castaner',
    69. icon: 'data:image/png;base64,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'
    70. },
    71. LR: {
    72. name: 'LR: The Republicans',
    73. color: '#00A8E8',
    74. leader: 'Laurent Wauquiez',
    75. icon: 'data:image/png;base64,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'
    76. },
    77. PS: {
    78. name: 'PS: Socialist Party',
    79. color: '#FD2C88',
    80. leader: 'Olivier Faure',
    81. icon: 'data:image/png;base64,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'
    82. }
    83. };
    84.  
    85. let items = zingchart.maps.getItems('fraL2'),
    86. i;
    87.  
    88. // For each department, create fake data with percentages for each party
    89. let scores = {
    90. REM: {},
    91. LR: {},
    92. PS: {}
    93. }
    94. // Fill w/ data
    95. for (let i = 0; i < items.length; i++) {
    96. let base = 35000;
    97. let above90 = rand(0, 100) > 90;
    98. let lenCheck = i % (Math.round(items.length / 4)) === 0;
    99. if (above90 || lenCheck) base = 25000;
    100. let pp1 = parseFloat((rand(base, 45000) / 1000).toFixed(3));
    101. let pp2 = parseFloat((rand(base, 45000) / 1000).toFixed(3));
    102. let pp3 = parseFloat((100 - pp1 - pp2).toFixed(3));
    103. scores['REM'][items[i]] = pp1;
    104. scores['LR'][items[i]] = pp2;
    105. scores['PS'][items[i]] = pp3;
    106. }
    107.  
    108. // Main chart config
    109. let gmain = {
    110. type: 'null',
    111. backgroundColor: 'none',
    112. borderColor: '#ddd',
    113. borderWidth: 1,
    114. width: '66.66%',
    115. height: '55%',
    116. x: '0%',
    117. y: '0%',
    118. title: {
    119. fontSize: '13px',
    120. text: 'Projected election results'
    121. },
    122. shapes: [{
    123. type: 'zingchart.maps',
    124. options: {
    125. id: 'mapmain',
    126. name: 'fraL2',
    127. x: '2.5%',
    128. y: '5%',
    129. width: '95%',
    130. height: '95%',
    131. scale: true,
    132. zooming: false,
    133. panning: false,
    134. scrolling: false,
    135. choropleth: {
    136. aspect: 'intervals',
    137. steps: [0, 1, 2, 3],
    138. colors: [parties['REM'].color, parties['LR'].color, parties['PS'].color]
    139. },
    140. style: {
    141. borderAlpha: 0.1,
    142. borderColor: '#fff',
    143. controls: {
    144. visible: false
    145. },
    146. label: {
    147. visible: false
    148. },
    149. hoverState: {
    150. backgroundColor: 'none',
    151. shadowAlpha: 0.2,
    152. shadowDistance: 2,
    153. shadow: true,
    154. shadowColor: '#333'
    155. },
    156. tooltip: {
    157. text: '<span style="font-size:29px;font-weight:bold;">%text</span>%data-preview<br><br><br><br>',
    158. align: 'left',
    159. backgroundColor: '#f9f9f9',
    160. borderRadius: '3px',
    161. borderWidth: 0,
    162. callout: true,
    163. calloutWidth: 16,
    164. calloutHeight: 8,
    165. color: '#000',
    166. fontSize: '13px',
    167. lineHeight: 15,
    168. padding: '10px 20px',
    169. shadow: true,
    170. shadowAlpha: 0.7,
    171. shadowColor: '#333',
    172. shadowDistance: 2,
    173. },
    174. items: {}
    175. }
    176. }
    177. }]
    178. };
    179.  
    180. for (let i = 0; i < items.length; i++) {
    181. let fVal = 0,
    182. sPreview = '';
    183.  
    184. let aPreview = [];
    185. aPreview.push(['REM', scores['REM'][items[i]]]);
    186. aPreview.push(['LR', scores['LR'][items[i]]]);
    187. aPreview.push(['PS', scores['PS'][items[i]]]);
    188. aPreview.sort(function(a, b) {
    189. return b[1] - a[1];
    190. });
    191. for (let p = 0; p < aPreview.length; p++) {
    192. let bars = createBar(aPreview[p][1], parties[aPreview[p][0]].color);
    193. sPreview += '<br>' + (p + 1) + ' ' + bars + ' ' + aPreview[p][0] + ': ' + aPreview[p][1] + '%';
    194. }
    195.  
    196. if (scores['REM'][items[i]] > scores['LR'][items[i]] && scores['REM'][items[i]] > scores['PS'][items[i]]) {
    197. fVal = 0.5;
    198. }
    199. if (scores['LR'][items[i]] > scores['REM'][items[i]] && scores['LR'][items[i]] > scores['PS'][items[i]]) {
    200. fVal = 1.5;
    201. }
    202. if (scores['PS'][items[i]] > scores['REM'][items[i]] && scores['PS'][items[i]] > scores['LR'][items[i]]) {
    203. fVal = 2.5;
    204. }
    205. gmain.shapes[0].options.style.items[items[i]] = {
    206. dataValue: fVal,
    207. dataPreview: sPreview
    208. };
    209. }
    210.  
    211.  
    212. // PARTY 1
    213. // -----------------------------
    214. let gp1 = {
    215. type: 'null',
    216. backgroundColor: 'none',
    217. borderColor: '#ddd',
    218. borderWidth: 1,
    219. width: '33.33%',
    220. height: '33.33%',
    221. x: '66.66%',
    222. y: '0%',
    223. title: {
    224. fontSize: '11px',
    225. text: parties['REM'].name
    226. },
    227. colorScale: {
    228. cursor: {
    229. size: 3
    230. },
    231. item: {
    232. fontSize: 10,
    233. offsetY: -5
    234. },
    235. layout: 'h',
    236. map: true,
    237. margin: 'auto auto 20 auto',
    238. width: '100px',
    239. height: '10px'
    240. },
    241. shapes: [{
    242. type: 'zingchart.maps',
    243. options: {
    244. id: 'mapp1',
    245. name: 'fraL2',
    246. colorScale: true,
    247. panning: false,
    248. scale: true,
    249. scrolling: false,
    250. x: '5%',
    251. y: '10%',
    252. width: '90%',
    253. height: '80%',
    254. zooming: false,
    255. choropleth: {
    256. aspect: 'gradient',
    257. progression: 'lin',
    258. color: parties['REM'].color,
    259. maxPercent: 50,
    260. effect: 'lighten',
    261. mirrored: true
    262. },
    263. style: {
    264. borderAlpha: 0.1,
    265. borderColor: parties['REM'].color,
    266. controls: {
    267. visible: false
    268. },
    269. label: {
    270. visible: false
    271. },
    272. hoverState: {
    273. backgroundColor: 'none',
    274. shadowAlpha: 0.1,
    275. shadowDistance: 0,
    276. shadow: true,
    277. shadowColor: '#369'
    278. },
    279. tooltip: {
    280. text: '%text: %data-value%',
    281. backgroundColor: parties['REM'].color,
    282. borderRadius: '3px',
    283. borderWidth: 0,
    284. callout: true,
    285. calloutWidth: '16px',
    286. calloutHeight: '8px',
    287. color: '#fff',
    288. fontSize: 13,
    289. fontWeight: 'bold',
    290. padding: '10px 20px',
    291. shadow: true,
    292. shadowColor: '#333',
    293. shadowAlpha: 0.7,
    294. shadowDistance: 2
    295. },
    296. items: {}
    297. }
    298. }
    299. }]
    300. };
    301.  
    302. for (let i = 0; i < items.length; i++) {
    303. gp1.shapes[0].options.style.items[items[i]] = {
    304. dataValue: scores['REM'][items[i]]
    305. };
    306. }
    307.  
    308.  
    309. // PARTY 2
    310. // -----------------------------
    311. let gp2 = {
    312. type: 'null',
    313. backgroundColor: 'none',
    314. borderColor: '#ddd',
    315. borderWidth: 1,
    316. x: '66.66%',
    317. y: '33.33%',
    318. width: '33.33%',
    319. height: '33.33%',
    320. title: {
    321. fontSize: '11px',
    322. text: parties['LR'].name
    323. },
    324. colorScale: {
    325. layout: 'h',
    326. width: '100px',
    327. height: '10px',
    328. map: true,
    329. margin: 'auto auto 20px auto',
    330. cursor: {
    331. size: 3
    332. },
    333. item: {
    334. fontSize: '10px',
    335. offsetY: '-5px'
    336. }
    337. },
    338. shapes: [{
    339. type: 'zingchart.maps',
    340. options: {
    341. id: 'mapp2',
    342. name: 'fraL2',
    343. colorScale: true,
    344. panning: false,
    345. scale: true,
    346. scrolling: false,
    347. width: '90%',
    348. height: '80%',
    349. x: '5%',
    350. y: '10%',
    351. zooming: false,
    352. choropleth: {
    353. aspect: 'gradient',
    354. color: parties['LR'].color,
    355. effect: 'lighten',
    356. maxPercent: 50,
    357. mirrored: true,
    358. progression: 'lin'
    359. },
    360. style: {
    361. borderAlpha: 0.1,
    362. borderColor: parties['LR'].color,
    363. controls: {
    364. visible: false
    365. },
    366. label: {
    367. visible: false
    368. },
    369. hoverState: {
    370. backgroundColor: 'none',
    371. shadow: true,
    372. shadowAlpha: 0.1,
    373. shadowColor: '#369',
    374. shadowDistance: 0
    375. },
    376. tooltip: {
    377. text: '%text: %data-value%',
    378. backgroundColor: parties['LR'].color,
    379. borderRadius: '3px',
    380. borderWidth: 0,
    381. callout: true,
    382. calloutWidth: '16px',
    383. calloutHeight: '8px',
    384. color: '#fff',
    385. fontSize: '13px',
    386. fontWeight: 'bold',
    387. padding: '10px 20px',
    388. shadow: true,
    389. shadowAlpha: 0.7,
    390. shadowColor: '#333',
    391. shadowDistance: 2,
    392. },
    393. items: {}
    394. }
    395. }
    396. }]
    397. };
    398.  
    399. for (let i = 0; i < items.length; i++) {
    400. gp2.shapes[0].options.style.items[items[i]] = {
    401. dataValue: scores['LR'][items[i]]
    402. };
    403. }
    404.  
    405.  
    406. // PARTY 3
    407. // -----------------------------
    408. let gp3 = {
    409. type: 'null',
    410. backgroundColor: 'none',
    411. borderColor: '#ddd',
    412. borderWidth: 1,
    413. width: '33.33%',
    414. height: '33.33%',
    415. x: '66.66%',
    416. y: '66.66%',
    417. title: {
    418. fontSize: '11px',
    419. text: parties['PS'].name
    420. },
    421. colorScale: {
    422. layout: 'h',
    423. map: true,
    424. margin: 'auto auto 20px auto',
    425. width: '100px',
    426. height: '10px',
    427. cursor: {
    428. size: 3
    429. },
    430. item: {
    431. fontSize: '10px',
    432. offsetY: '-5px'
    433. }
    434. },
    435. shapes: [{
    436. type: 'zingchart.maps',
    437. options: {
    438. id: 'mapp3',
    439. name: 'fraL2',
    440. colorScale: true,
    441. panning: false,
    442. scale: true,
    443. scrolling: false,
    444. width: '90%',
    445. height: '80%',
    446. x: '5%',
    447. y: '10%',
    448. zooming: false,
    449. choropleth: {
    450. aspect: 'gradient',
    451. color: parties['PS'].color,
    452. effect: 'lighten',
    453. maxPercent: 50,
    454. mirrored: true,
    455. progression: 'lin'
    456. },
    457. style: {
    458. borderAlpha: 0.1,
    459. borderColor: parties['PS'].color,
    460. controls: {
    461. visible: false
    462. },
    463. label: {
    464. visible: false
    465. },
    466. hoverState: {
    467. backgroundColor: 'none',
    468. shadow: true,
    469. shadowAlpha: 0.1,
    470. shadowColor: '#369',
    471. shadowDistance: 0
    472. },
    473. tooltip: {
    474. text: '%text: %data-value%',
    475. backgroundColor: parties['PS'].color,
    476. borderRadius: '3px',
    477. borderWidth: 0,
    478. callout: true,
    479. calloutWidth: '16px',
    480. calloutHeight: '8px',
    481. color: '#fff',
    482. fontSize: '13px',
    483. fontWeight: 'bold',
    484. padding: '10px 20px',
    485. shadow: true,
    486. shadowAlpha: 0.7,
    487. shadowColor: '#333',
    488. shadowDistance: 2
    489. },
    490. items: {}
    491. }
    492. }
    493. }]
    494. };
    495.  
    496. for (let i = 0; i < items.length; i++) {
    497. gp3.shapes[0].options.style.items[items[i]] = {
    498. dataValue: scores['PS'][items[i]]
    499. };
    500. }
    501.  
    502.  
    503. // TIME CHART
    504. // -----------------------------
    505. let gtime = {
    506. type: 'line',
    507. backgroundColor: 'none',
    508. borderColor: '#ddd',
    509. borderWidth: '1px',
    510. width: '66.66%',
    511. height: '45%',
    512. x: '0%',
    513. y: '55%',
    514. title: {
    515. text: 'Public trust for leaders of main political parties (trend)',
    516. fontSize: '13px'
    517. },
    518. plot: {
    519. maxNodes: 0,
    520. maxTrackers: 0
    521. },
    522. plotarea: {
    523. margin: '140px 30px 30px 40px'
    524. },
    525. scaleX: {
    526. maxItems: 6,
    527. step: 'month',
    528. item: {
    529. fontSize: 10
    530. },
    531. transform: {
    532. type: 'date',
    533. text: '%M %Y'
    534. }
    535. },
    536. scaleY: {
    537. maxItems: 6,
    538. format: '%v%',
    539. step: 20,
    540. item: {
    541. fontSize: '10px'
    542. }
    543. },
    544. crosshairX: {
    545. plotLabel: {
    546. text: '<span style="color:%color;font-weight:bold;">%node-value%</span> %plot-text',
    547. backgroundColor: '#f9f9f9',
    548. borderRadius: '5px',
    549. borderWidth: 0,
    550. callout: false,
    551. distance: 10,
    552. fontSize: '12px',
    553. multiple: false,
    554. padding: '8px',
    555. shadow: true,
    556. shadowAlpha: 0.5,
    557. shadowColor: '#333',
    558. shadowDistance: 1
    559. },
    560. scaleLabel: {
    561. fontSize: '10px'
    562. },
    563. mask: {
    564. backgroundColor: '#eee'
    565. }
    566. },
    567. shapes: [{
    568. type: 'circle',
    569. backgroundImage: parties['REM'].icon,
    570. borderWidth: '6px',
    571. borderColor: parties['REM'].color,
    572. size: '32px',
    573. x: '20%',
    574. y: '64px',
    575. label: {
    576. text: parties['REM'].leader + '<br>(REM)',
    577. fontSize: '10px',
    578. offsetY: '48px'
    579. }
    580. },
    581. {
    582. type: 'circle',
    583. backgroundImage: parties['LR'].icon,
    584. borderWidth: '6px',
    585. borderColor: parties['LR'].color,
    586. size: 32,
    587. x: '50%',
    588. y: '64px',
    589. label: {
    590. text: parties['LR'].leader + '<br>(LR)',
    591. fontSize: '10px',
    592. offsetY: '48px'
    593. }
    594. },
    595. {
    596. type: 'circle',
    597. size: 32,
    598. backgroundImage: parties['PS'].icon,
    599. borderColor: parties['PS'].color,
    600. borderWidth: '6px',
    601. x: '80%',
    602. y: '64px',
    603. label: {
    604. text: parties['PS'].leader + '<br>(PS)',
    605. fontSize: '10px',
    606. offsetY: '48px'
    607. }
    608. }
    609. ],
    610. series: []
    611. };
    612. let sdata = [
    613. [],
    614. [],
    615. []
    616. ];
    617.  
    618. let ts = Date.UTC(2018, 10, 15);
    619. let pc1 = 20 + 40 * Math.random();
    620. let pc2 = 20 + 40 * Math.random();
    621. let pc3 = 10 + 20 * Math.random();
    622.  
    623. for (let d = 0; d < 48; d++) {
    624. pc1 += -6 + 12 * Math.random();
    625. if (pc1 > 80 || pc1 < 20) {
    626. pc1 += ((pc1 > 80) ? -1 : 1) * 6 * Math.random();
    627. }
    628. pc1 = parseFloat(pc1.toFixed(1));
    629.  
    630. pc2 += -5 + 10 * Math.random();
    631. if (pc1 > 80 || pc1 < 20) {
    632. pc2 += ((pc2 > 80) ? -1 : 1) * 5 * Math.random();
    633. }
    634. pc2 = parseFloat(pc2.toFixed(1));
    635.  
    636. pc3 += -3 + 6 * Math.random();
    637. if (pc1 > 80 || pc1 < 20) {
    638. pc3 += ((pc3 > 80) ? -1 : 1) * 3 * Math.random();
    639. }
    640. pc3 = parseFloat(pc3.toFixed(1));
    641.  
    642. sdata[0].push([ts, pc1]);
    643. sdata[1].push([ts, pc2]);
    644. sdata[2].push([ts, pc3]);
    645.  
    646. ts -= 1000 * 60 * 60 * 24 * 30.5;
    647. }
    648.  
    649. gtime.series.push({
    650. lineColor: parties['REM'].color,
    651. text: parties['REM'].leader,
    652. values: sdata[0].reverse()
    653. });
    654. gtime.series.push({
    655. lineColor: parties['LR'].color,
    656. text: parties['LR'].leader,
    657. values: sdata[1].reverse()
    658. });
    659. gtime.series.push({
    660. lineColor: parties['PS'].color,
    661. text: parties['PS'].leader,
    662. values: sdata[2].reverse()
    663. });
    664.  
    665.  
    666. // CHART CONFIG
    667. // -----------------------------
    668. let cdata = {
    669. backgroundColor: '#fff',
    670. borderColor: '#ddd',
    671. borderWidth: '2px',
    672. graphset: [
    673. gmain,
    674. gp1,
    675. gp2,
    676. gp3,
    677. gtime
    678. ]
    679. };
    680.  
    681.  
    682. // RENDER CHARTS
    683. // -----------------------------
    684. zingchart.render({
    685. id: chartId,
    686. width: 600,
    687. height: 600,
    688. output: 'svg',
    689. data: cdata,
    690. modules: 'color-scale'
    691. });
    692. }
    693.  
    694.  
    695. // HELPER FNS
    696. // -----------------------------
    697.  
    698. function createBar(score, color) {
    699. let sBar = "<span style='font-weight:bold;color:" + color + "'>";
    700. for (let b = 0; b < Math.round(score / 4); b++) {
    701. sBar += '\u2588';
    702. }
    703. sBar += '</span>';
    704. return sBar;
    705. }
    706.  
    707. function rand(min, max) {
    708. return Math.round(min + (max - min) * Math.random());
    709. };
    710. </script>
    711. </body>
    712.  
    713. </html>
    1. <!doctype html>
    2. <html>
    3.  
    4. <head>
    5. <meta charset="utf-8">
    6. <title>ZingSoft Demo</title>
    7. <script src="https://cdn.zingchart.com/zingchart.min.js"></script>
    8. </head>
    9.  
    10. <body class="zc-body">
    11.  
    12. <div class="zc-parties">
    13.  
    14. <div id="myChart">
    15. <a href="https://www.zingchart.com/" rel="noopener" class="zc-ref">Powered by ZingChart</a>
    16. </div>
    17.  
    18. </div>
    19.  
    20. </body>
    21.  
    22. </html>
    1. .zc-parties {
    2. padding: 1rem;
    3. display: flex;
    4. justify-content: center;
    5. background: #fff;
    6. box-sizing: border-box;
    7. }
    8.  
    9. .zc-body {
    10. background: #fff;
    11. }
    12.  
    13. .chart--container {
    14. height: 100%;
    15. width: 100%;
    16. min-height: 530px;
    17. }
    18.  
    19. .zc-ref {
    20. display: none;
    21. }
    1. // INIT
    2. // -----------------------------
    3. // Define Module Location
    4. zingchart.MODULESDIR = "https://cdn.zingchart.com/modules/";
    5. // Load Maps
    6. zingchart.loadModules('maps, maps-fraL2, color-scale', init);
    7.  
    8. function init() {
    9.  
    10. // DEFINE CHART LOCATIONS (IDS)
    11. // -----------------------------
    12. // Main chart render location(s)
    13. let chartId = 'myChart';
    14.  
    15.  
    16. // PARTY CHARTS DATA & CONFIG
    17. // -----------------------------
    18.  
    19. // 3 main parties
    20. let parties = {
    21. REM: {
    22. name: 'REM: La Republique En Marche!',
    23. color: '#FB8B24',
    24. leader: 'Christophe Castaner',
    25. icon: 'data:image/png;base64,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'
    26. },
    27. LR: {
    28. name: 'LR: The Republicans',
    29. color: '#00A8E8',
    30. leader: 'Laurent Wauquiez',
    31. icon: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAACjiSURBVHhe1XsHdFzneSXtlI3jnM2ud+WTjZNIMkVV2/Kq2GqW1cVeAZLovRO99957B4jeOwGiDDAoM5jeZ1AIsBdJpEiJokiRYi937xtCzVEcxWt7s/85/3nTMHzf/b7v3vu9eVz1p1oAvldbO/y3Bw6c/IfR0ckn9u+XvLywcMj2/VNno9774Fze4tKRinMff1Lx3nvHKpYW9eUWkzRlzjwTYdRObNXpxp4zKEWrVSrxj6VS6d+sfOX/H+vs2Xs/vHzt1quffHotSala6JDJTYrePtGZ7p7R21PTamh1BzApNUJlWMbRU2ewsLQMjVYFs0kNk1EOo3Hqnl4/ddWonz5s0s1IjLrphjndtK9BPflzo9H4Vyv/zH++debMmf957tx5x5PvnZMN7p88LZ5S3RwbV95r6xiCee4YDh45g8HhKeQX1aC4sh0TBKGzfxxylRnTEiWG9o/CYDTCRCAMBMIKhl4Ks15y16KfvmzWTh836SRik0669uTJ/yRVIZT5R8DfXb583fP8+YvL77137ubC4rF7w6OzaGrqxcjoDA4fOYml5ePo7OrHps07EBoejb6hCfQMcBOAEZEM7Z37Mb94Er39Ipw4+R5MZiP0OhWMOjkshlnMGaZh0c+AANwzaSVXLXrpkMUg+5VIJPovK6fy511C4J9++unfX799/Z0Lly/v/+zq9esXL9/AmbMXcfz4xxgfV6Kysh5FRWU81iA7Oxd5+QXIzs1FUUkJ0tKz0dE5YAVo3+Ak1JpFVsICCorqoVTqMCtVQKNWw2zUYN6kxDyDnzdICIbUCoiZlWHSSy4YddJas2rmpT8rTwjBX7116/nPb9xov3H71vnrt2/i2q07OPvxJfbzSVjmj2Jwvxh1tXUoLylGZFgYEuPj0dvbwyroRFNzMxoaGtHb04ee3gE0t3SgvaMXbW09yM0tQlV5FYoKi1FbuxcKpRwHl+ewNK/GnJEAGGesAFj0rAy9QgDintkgOWkxzKQeOKD+0cop/mnXrVu3fnPj+q25y5/fuH3+00s4dfpD7B8Vo7NnCO+dPo/Wzl6kZ+UiKjIKzg4OCA4OQmREBIJDQhARGYHyigoM9A9AJBrH6MgYxkZFaGpsxv79IygoKMK+/n3o79uH0rJKVFbXQKdXQaVkCxhlDF6oAgJgUKxs4bGULSK5ZtZJBk2qmQdXTvOPv86ePfvDm9cuOXx+5fOLapWBZLWEpUMnERmdiOraZuiN88jIzoePvz9sd+1EWEQ4YmJj4cfnySkpyMzOgrOrC/IKC1BYWMT2KEJ1RTka9lajp7ODoPShrLSElVOLuroGjE1MobO3H9HxceSGLnKCAIDACV/fAgACR7A1yA/kibPzJtmrgPQvV077j7K+d/So/p+vfX6+9O6dm9dv3bwNlcrIvrWgsqqZZNcDmUyN5eXDPNF+hIYFIz4xDlXV1cjNy0dKaiqSUpIRnxCL2LhoZOdkICcnCw21VWiuLUdEgAf2eDggJjQAaYnRSIyJRH1dLUZZId0D+5CWlYXo2GjsH+pnsCrMG9U8CtkXAPkKgHmhEozWivjQYpE5UDL/duX8/++W2Sx/4ONz77XevHHl2p3bd3D06EnU17djakoBiURD0jJBo9Gjvb0de/YEwMXFCVFREQgJCYafny927bRBUJAf3FzssG3Luwj0d0duZjKaa0oQG+CClGA3JAU6IyXMC7FBBMPTESEB3shIT0FWdjaaWpuRn5+LkqJCyGfYCgaSo8ABK8H/KwCMsnvcZ+bNquDe3t6/XgnjD1vJycnfP3TAmHTl8sUbd+/cwbmzn2BSLMXIyAQ++vgCPvroAvV6AdXVtXBydoSdva215xMSEpCelgJXF0esf/cNbFz7GrZueAM7t70DX/ddSIgIQF1xOooTAlAc7Y7G7DA05MWgOjsaKRG+iAn2QqCvB8JCg5CSkoj83CwUCGCQWI8tH2CgQgUIinBfFea4vwBgTuAKk5xH5QWLUekgkPZKOP+xZTTW/pVSOuz7wcnDt+/cvYvPr97AwYPH0NbaBalUjuqaGnh4eiIpKRkxMdGIj49BTnY6ystKUFJchHSeeFJsBML9PeC1ezP8HTYhwssGycEuKE8OQV95CjrzwtFfGI7h8jiMVKdiqDodWaHuyIzyR2ZiJHKyUvld+aitLENBTjaKKaUGtQILFkEVrOX+NQCE4O8DMEcA5s1KzJkV10wmxXaC8P2VsL7boq7+pVw+5DY3p7h4+fIlXLlGjT/3EQ4sLWFwcBCVJK+wsFDsCQxAYEgA+z7ECkJuVjbyczKRmRqP9LhwJAZ6IdXXHlme29EY44bq0N3oTPVBH/dUcQQmS8IwVRYOSWUstE3ZkNemo59VkBPszr8PRkpyDNsgjcRYxe9MJiB8v68TC3M6ljqrwKoMXwNCCJ57ngAsmAkU97xFcYSc8KvvXAnCBxWKsbeN5umj8/Pqe7du3sDVz6/h7IcfE4CDqBH0vbIKyWlp8PDxhn9oCMKjGDwJr6SwELns3bhQf5QnBqEiwgX14Q7oi3PGvjh79EfbYjjFEaNpHpgtDoG0JAiyMh5LQ6GqiYeyOgkzNdmoTQ5FUSoJMzOR3iALFWVlqKooQ0gQW2dvFUwGZpcGyWISAv4aF3wbAGbFHe7uuTnVj1dC/P1LKh38b2qVqF8iHbp34sQyLl34FHdv3sGnn1zC6dNnqfHZzHow3D3dEB4eguBAf6TER6O7uRYt5XloL89BfXYs2tL8MJzjjxEGO5nqiulUJ4iT7SBOscN0lgcM1WHQVQZjttAXkgI/yEtCYGpIgbw+F80ZkajJSUDL3jKUsgU6OzrQ2dnJikhAVWUpdBqWvFnFEhd6/Wtq8O0ACO1wa86sdiYp/sVKmP/20ukU23Ta6ct6vYQBn8D1K9dx99ZdnD19DlKJHOKJCfZiNlLjQhHp64gEHzuUxPigPiUAXdkhaE/xRWO0C/qSPTCW5YPJbB9Isv0gzfKCJMsdk+lOmMlwhSLfG+piX8gKPCEv9OEOgKk2DrqmXAwVxaM+MxLVOfFopFo0UBZbW5qswedkpUE0OgCzIIXW4AXyuw/CFwB8GbxAhgJIQrUYVSfMGs2alTC/fRlksv9l1CnmTfpZypsYFz89j9vM/o1rN/lFixgbEWF6bBjFKTy5lGC0pPqjM8UbPake6E91Q3+SE/YlOEKU5okxPh9JccFEuickrARZXgAUBQGQ5ngSABdMpztjKsOR4LjwfXfM5vlAXxUFU0smZHtT0Z0dirI4XxQkhaMkP8ta+q0tDaiuKkVnewM0yikGdT/o362AbweA/sGkFs3NiX+4Eu43l9D7Zp08z6BT3NWq+OUWJYT+v33jDq5fv4n33zuD4cEh1JcUoCphD7qFEs/0w3hOAETZXhAxuyJmVsRyF6W4YTzZESPxuyDJ9IQi139le0PC4MeT7DGSsBMTqUI7OGOGAEgJgKY8DIa6BBgaU6CoT0VfQQzSgl2RmRRlDbyvt5NusRCNdZWQTo+wCr7q/38PgDmThgBobnM7roT8zaVWTzyi1yrOGui2hD84fWoZlz/7BHdu38WtG7dx+r33sa+7A701xejNi8RE/h7Ii9jD+cIOhDTfn1n0YzYZZI4PZDkseQYrzXSHLNubR2Y+zYV84IDRxB0EZys5YTdf52dyBVL0hbIyBMb6ZOibU2Fqz4axLZ8gxCEzxg+FRWlUoF601rMKqEJTU8MwmCTsb/a8tRK+2F8AwCnSdB+E+8f7LnLeopo8cED6dyth318COei1E2l6k+yWnh80EU3NrIhAqHH37m3cpQN8/8QJ7O9px1hzBaarmaGyUGtJy3ID2MshUBQGQS48zyepsczFDHYilQGnuWKGwU+lu1mfi9OcqQK2GE3fCXGms7X0rTvfB8qyYOjr06Fry4SuNR2W5ixoGnKRGeZCGQxH/d5KlNNjVBbnQjLQgnn5EBZ0Yiz8KwCU3AyYibwPgLCF5wTApDzHann9G7KoV0z91KAWHzAKV2HMahh1MzAoJ2DWzeLSZxdwg61w5MghTAz2Y6anAcrGXKio37JcX/a0D4HwswYhzfXCTLYbpjJdSXYMmMGLeZxhi0xleliPs7kkPH5ulkCJC/0xkOVNj2CHqsBNaAjZjv25wZCxCkztmZhrzYa5rRDtOTRFMYGoKCqgLCYh2dcWIxmBGIjzxHRrMQGY+e4AmJV3+DzLaBz+albQy8fcjGrxRRPNhXBJykQAdPIRGLXT1H4LLl/9jMcFVkAnJL3NzFAxZIWsAJa9jGw+xTKezHC2lrIAgJgEJwQvSuGRnCBl0DJ+VlUcCGXBHuiyAzFF8qwL3YlU73WIdn0TYfa/QYLT60hxeosq4ojJolAYKIvmtjyIq1KRE+aNIpJhWpQPKr02Qprhhnavt9Ea5YZFzcTvACC0wLcDIIAzZ5pVGY1T/2IN/sCB3r/WKsarCMBdQVpMJAujZgpm1RgMKjEOHZrHnTu3cJAefIgkNNZaA0N3FWQlUVAWBq5k3MWadUmOAIAHH7tbeWAyg31PKRQUQEOzoy6h4WG7jGX4oTLQBn4bnoHDG0/Ba+0zSHVah5oQRzQyq32pvhjlZ6b4WX1LBgxtBSgI90RcfBCq4vwhjnRixblgIGoLWvxtsawYsw5EXwBwv+cZKBMqPL//GsEw3gfFYpRcntPOvGFtA7lc9IBeJZ40qwVZobayBSy6aRgVw9ApR3Hs6AKl8Do++vA0xPsH0VVZCEPfXihrUyBlNoWghdJXFgVAVRTIQEN4DLYGqyii0ysI5DEYmrIwaMtpe0mexXs2I3jHCwja8QoyvW1Q5G+PvWEeqNrjiNoIVwwmk0wLQiHh55XNyZjvLkJbahD8PLehKTMc4ih37E9zIJh70Ba4C0uaMarAfwAAg+SuSSuOEiz/Kp187FG9auI9EwEQxkyz8AHdlBUAg2oUx4/M48bnV3D98meYnRCho7IA5uEWWLpLaGPD2MveDH4PtHysIS/oKiKhLY2EvjKam1VSzKwXhVgB0ZVHQJzhhTrfrShz24wcx42I3bkW/jvexPpXn8S61x5Hqssm5O9+m9bZFbLKcKjbUrDYQ9BJhol+O5ActAs9BKk3ejdmOVPsT9vDQWj83wFgpQVWAJgzSmHQTkyr1T0/WKVRiF7RKyfuGIUKELSU/WM2SGBUjWNOAEIzzbH3DD3BVZiUUspgKQ5JhnB4sgszHGKm6eJEGR4kJS/0Z3jT/tL1MWBtdRyMtQnQl8VAWxQGdV4gtIXB9ABOqPF6B4k7XoT/uheQGuSBiCBvvPzq8/j1y09joroIzZGeaIm0w3i+HwxCBXTmY4mADxdHItVzLYod3kKNzSvo9dmG8dIkzGsFDvjaeMyA728BACHg+2AIwQscIFxUZdV/ZlFP/2SVTjnuqVeO4ysAZDDqZ/iBcZjVYpjIAyeOL+L27as4tDSPjroqnDDI8AHlZ4Tja1GwM9KctyKamfTb9Ap81z2P1N1voSXCicNONFsiFvqSSMxmkfUZfGfQOmRt/yWiN/wC4VteQU1iOPr2liI1IgAOG99AV3oUZjkaz5AzZkrZUnVxONBdjIN9FZjrKkJNlAPawnehlgDW7/otRnIjcEB9vwK+DoBwyew+APQ1wvBkfSyAYL2YCq1SfFOrnHidLSDKMqgmvhUAE183q0SsgjFcvPQhDp84hu6ePhxbmsPpRTWaOLQk2G1Aws4NSHbchgzOBRmeNsh13Yoi9mul/070J3hiMtPXKoGSbHcMxu5A/q7nUez8BpK2vYxUu3fRlRaC3swwNMd6YYAEOE7SnCzwwUyJP9R1sVjsK8XhvkoskgzHymMwRu6pc3gZlVufwUiqHxZnBynZwhXj+3PB7wNAeM+kk0CjmLinU0/6rtLIxvvYAlYABGS+AECnFFkrwKIeg3KmHYePGHD5+lVIlLSUZiM+OGRBKcfd5hAb9CV6oyzQHukB9nBa+wJc33kBCfYEhb1c5bsNHeE2GKcxEuRRzulvr/9a5Dr+Bqm7XuJ+GSWe76IlzAbd7OtBVomYxCop9Ia8PBD6xgQs9pfh2L4amOs4JzRnYLjAHzWOL0IUvgNjab6Yn+6zAmDmACfEIFwvFIK1XjjVM/hvAEClIwCsACHG8lVauWjiPgCT3wqAIIcqaSf0WlbBpx/i7NnTOHHkIC5wUuwpTYSkIholfrbI2OOMioJ0vLv2Dbzywq+o745weeExVPhuQVvodqsRmkhxgr4iHLPlkWiOtkO+51vIc3sdlb6sghiCRCmdLSSH5HtBUeIHXU04nWECS78QB7vLcKC1EKq2HIhJuK3eb0PPSulN8sS8bN996SYAQhV/HQCzXjh+OwAamahjlVouWv59AJgEAGa7IRW14tL5o/j8/Pu4dOYkLrx/AsaxLkyWxiPf2xb7qwowPdSJxJhQuO/ejgSX7Yi3fR0VPhvRFrIV0yRKcZIr9CSypZZcmJsyCUQ0x2YXtEZsR2/sTowSIGGgkuRRVosDYKyOIghxsLTmYqmzGMbmHGi78qEgwYrjnKHND8VkTSpJUAS99fy/BQDdFyDcbwthG7UzQgtApRAZV2nkoqMkQtAKw0QAzOwhA9lf8AACB5j4unq2H9rJVpw9wS8aasDVU0v46OghGPe1YionEKPU7VH28GhxHEbK4tEQ7YYin63Id6O58VmPfbG7MZboiLE4J8jS90DPyjnQTGbnsKOrTYQ42w9jKa4YS3LmGO2KqSwvyPM5Pgt+ojyKA1IajE0ZVlOkZAtoa5PoJH05btNg7W9gmU/BwAoQnOsXLfDFjydC8FZ5F8CwAsAEU9k08nEmdnRuFVEgACICwGDp/Y06GXR8rFPupxSSAImsdqYfBnEjtOo6vD9YiQuUnY8PL2J+iABQqsTUY3FGEMaygzGYFYBOBtoUYYv6wM0YiuP0l8zAyAHCqKzM3QNTTToJrRiWJgGAVEj42lQa3WO6OxSUURXNkuAddAxeS6nVVMVDV5dEQoyHppHTIqunj8GL9+bRBouZsGkCcH8LMVgzLWSd/W9m+Zv42KSXfQMArWwcSqkAgHx8QascYwmR9fkhE9HS0VvrVARAAEZ1HwD9TDNks1U4RSA+Nk3j0rlTOMMvk1QmoD/WFR309R2RO9EVa4998S5oi7Tl63YYiXPkzO8LeWk4Zjg5yrICsdRcBHM9GT2DRqogGkOxTphOdYOELaChvdbSAmtL6R1KyAHVCdBVJ9JXJEJPX6HloKRuyYasvRjHdZMwKCjhLOmvA2AWgtUx88L+HQDMeiZZzQrgtKuSjOoIwNiYWjF6X/etpaIkopMEYJgAcB4Q2FLaz3Jpxay0DsapJpyYn8Xla5wSz56Bub+Fc3wypc4To6l2GE60xxBNTA/BEEpflODGcTmaWUwmscVDlkOdz0+AoSYf+hpmkK0wys+MxuzCLFVCUUhXScdorI61GikheFUlK6AqCbqyBCh5lLXmQStuZSAimDQzzKjkWwBgLARAuID6JQBCgnV0gVQ8AQBWQPMqpWysQSNUgKD7LP8vAWALGDhkGMgPWmkP5NJWyCVNmJW0kCRFuHDpDO5e+QwfqGZhaipgz/pzLhCu9thBFOWIwZjdGI51wFSyL8zV7NvqTKgrMyDNi0UTFcPrxWcQ/NpzrIIQDCe4YyLJBbOc8GY5T6g4Axhq42FuTGWbZEJfl87sp9JUJfC9REibciHqr4JWz+QwmwYVfQuDEirhdwEwMqnWzdiE9wQArBwgACAZSV+lko0maBionv1u/WMCoNeKKRNfAaCR9tILtEEx04IZSSumJ9tw8pAOdy+dw/sKollFcsrbwznfk73siukkSh7ZfTSW5Z/oi2Y/e9j9Yg1K3G0wydl+KDWE0meH5nB3tISTG9IDaJJoeoSLKpQ4ZWUkdHsTCGwa5ljuxvpMaAiAsjKRICRCVpuJkc5SaA0TPFfBtn8bAPdbQLjJQgjeaA1+BQB+Vi0ZvaOSjjqtUstEDmr5KEv+awCQWLTKISsHmAS5YAXopjugmmmFdLoJi5ZRvK+bwJK4D+epGIsNHJCKY+n3gwnCHihyAyHhbDCR4IIxDi5jCXuQ77Qe9SH2GEj2oXb7oIEmqiPBF4OZIZjIC8e0cCGkMBRyq08Ih6KKM8TeFJibCUBjNlT16ZBTMXQlcVCWp2CoIRuzsgFoyf56Jfd3AMC6CZhBNcVYRm5opaIXVsmmR36lkY1e1wrzgFa4J0fOLyMAwjRo5QCy5WwvNJPtUIzX46BxEEdVXVBVJWBvkC2mKXsHm3Nh4VGVFwZVYTg0nAGU+YGYSfVgb7ugKcAGe/fYojXaGY0ky71hO9EU64x6tkpTtCu6ErwwmCJcYA3GVHEYFNR+WSUDFYivMYvEl2G9SDrL19XFMVDw3+oti8XESKM1YL2Kw80XAFjdIEGwtoAKZq3SCoKBrxv0bBcmzEBlU0nHzpnlogdWaaTjD2mkYwfUcgZr1dFZBs2ylo2xCoTWGGWv9EImbsPpQ7OYl7RhZm8yxAUhtLAbkOO2EfnOazHA8XUqkzxAGVQXRVLKgiFOcedY64jOKDu0MdjmcKHs7dFB1u9MYODxbmiNomSGO/CxJ/qS/DCUJswBkdaqkLPkFTUpUJEDZqv4mGQoJwBTRRygOGZXZoeiv6uVwTPTzKyZBs5ioCUWhiIm0qJXwaLVWEHQ0x/oBAAEzyC0wOx49xHhHiPrL0GSkUGNbAQm7STm+EE9icXqlWmE1LL9zHw3zp60wEJzNDvCuYAVcmFJj48OmbE4M4KxqmxUBu5C+rZfo97rXUg5/MjYBiNJ7pzbnTi9MUCao072e3+0J5r9bTEQ7Y795IfhZH8MJvqhn3s4NRgDiT7YR+LcTyBmSmIhKY3DbEUi5GR/eUU8R+0oTLFVuimtbXzfzX4HaqvKrUyvoyJYx3kjK4BDz33ZYxXohOucwk1XfE/L9lBO3jbNirwh/FIkXBXRzY7l6eXDty2aSaImYeBTUEjoBMmWJw+bceXCWdy8cgHXLp/HdRLf1fOnceHYMk7Sbn5AtE9yGjO1F6InxgmFu19CV+gODCV68rkbg3dCV5Qb+mO8IUoMwng8gYnwxlCIOxrdtqHKaSPKHDaghLvcdTOqPLegMWCn9arQRE4Yg42yVsRsWRymhcf54RjO8EF3sit6CiNRmZ+Kd954DamJsZBJOL2Swyyc/4WfyIXfDgVnawVCx3mAQCywHeY14o/n5KO/BlbdvzKsmRlZr50d+dCknSKSUmiY/UUi+BEt7+WPTuH86fdx/oMTOHNsEZ+8t4QTBo7OIy2YpqObKYvh1MZdGoE+yl41rW++w+toDLJDa6gLemK9meE92Bfjiw5fR1Tv3Ig6u00o3/42sta+hOyNr6DI9k20+O9GX6Q7moN2o3HPTitwQ6kBGM8NgygnFBPCMTsEA7TAffFOnB3sURfpAAXnkd22W/Hr55/Blo3rUJSXTZUaY/Acgy3CDZiCvWdlcEZYFK4W6Wfuzeun9s2pxF/9WKpQjP53lUyk1Wmm7xkEDmA/HRSunMwM4eKpBSxKBmGZ6IRprAnKriLMcBiRlEVAzUnQwMemmni6tjCMp3ujyOUtxG95AcUum9Ae5saS9keDvx1ytr6GvM2/RaXNu8z8drT77kYHx+f9MVSL1D00UsEcgsIxxmNnlCsag+3QToIcZCv0UTn2UTmENmqLcUa7UGEcnVvCdmFhdh9iooPw9C+ewLPP/JJAPAeb7duQm0PilE9jYV4H4X6BBQ55C2bhYonsptkwG/67d51+TyGbDlCppTd1VsmQMPPHsTw7jMWRJihqIyGrDrXu2UqeKCc1hXCJuywa2jpKVGUKnV0KpMVRPCl7RK17Bpk7XkMjs9oe6oy9PjvoBXZhHwGZYCUMx/uiNdCO9tmBJCn8juhHL0AVyPCnErC/SYjCFaX2WDd0xHugK8kbPfxca6gjaoN3EtjtbCMbtAVtxzHtKPbWFOC5Z3+Gn//sCTz/7HN49n8/h9+8/Ao2rF+LtCSqx/Q0jiybcXBRC7ls+oPewcFnV+L+aimVk/+o0s4e1tIoqDkpfXbxI1z44Cjm+yqh4VwuK/cjK/tDVx8ObU0kBmhyWsM45BQkojWELq4gBmra3f2c9pK3/wYFzutQ6bEFnSHO6AsXvIAfJtOoDNy9UV7oivBAO9/rZVaHGeAQ7fA+qkJvEoepJH+0xPugMZafSfCmghCISKEq7FHJKbMzeCv6g9ajI2IHjhtFmJ4exksvPYefEYCnnnoKv3z6l3jpxRfx7jtv4Y033sTG9ZsRHhSMrRvX4sf/8ONehvvtN1bKtVI7rXbmhpkVcOXKFdy+ehnmnnLIq6MhrwmDpiECuqZoTJeEYF+qL4YKY6DqrkD2zrfR5LeTNjYGk2TpLPu3kWTzGso8t2Gvtw16gpwwHO2FEbK+iFNjR5Q7Kr13sF3Wo8iVI7P/VjTTG3TQJ/Smh2GwIB49edHoyApFa4IPmllF9X42KHenmfLbzu/bht7gjRBxbji+KIXJosXmzRvw+OOPEoQnrfsXv/gZfvH0z/HU00/x+DRe/vVLeOXFly794L/+4Fcr4f7rJZU2/Y1eM905Z5DfEwDA9Sucv7MwWxsBTX0kDPXRnMsTsD8vEGPU6DlpFyyKfvRyqmsMsOOwk0DCCrFeBwjb8CLyXLaihLve0wbte3ajh2XdH+eGMp+NyHV7G0Xe61Hqtwm1obZo4ABVF2GP9rQw7CtJxj5a3o7sMFSHOaHSbweq3Ddir/tatPhtQ1fQDladDRaH63B0QQPLvAkeHm549NFH8MQTj+HJJx+37sf5eM1jj2DNo2vw5KNP3H31pVeTbG1tf/9NEmqJ+OXled3HV69+jnvXP4OsMR2yOma+MRamxjha0zSIaUiMI/WQTTbTJ3SjIyOUrOwHdVkK9dyHBmkjIje/ipTdG5HnuAXFTptQRx6o892Gau+NqKBSVARsondghYTtZvB0hOz3FjrCxtRQdObGoiElECUMPp8lX8DMV7iuRTuBa/dnW9FMdacF4RQle9ks3LRpREREGH7604ewevXDWLNmNR57bI11r3mUjwnA42vWGJ988sl//3ZasVj8w3OnT5Zfu3b95vULpzHDqUzZGANDaxLMbWkwt+dghoSn7a3EqcVpLMp60MOsDSYEc9CJofw5oNbXBim2axGz5W2k7lxLEDay1DexJTYz+C2oC7RFY5gDWtjXLdEeaKZU1kd5Ym+UN8qifFEaSTUhP+T52SLfcxNKvTaTULehxXM9elgtTVQJzVAblUpP52ek5JmQnJxoDfyRR35q3QIYwvNHH32Mzx8+v3r1P61leN/tbrF7926suXr9+uwHRyx3pfUJUDdxFu/IhK4rB4auApjailDHku+kuVGWk2XzWK7BXmgL80ZnhA8qHbYgw2YtSrzsEbf1TaTsWoscZwZCJagg+zexWpppiBoTAtGSGoaG5BAUh3shy98Jmf7OyN3jhFyfncgiaIW02jUs+2bOEh0ErputMkrVWTLS3ZnnqfEWzJvNXwIgVMDXK+HRNY/dWLN6deqTTz7wzXsCft8SfjS8ePHiMxwWzqjbM6FtSYeuOw/q3gIYekuw3F2ODr/dqN5OA2O3DgM86VoXGwwkhKHWywENzjuRu2Md1eAdJO1cj8htbyHFeTOD2oXyMHdUx4WgKiEchVF7UJoQiiwClxjgjAQ/RyR77kaK63aksW1KvLbTWG23El8zrXYP1aCN1npxugcWlr5ufokAzFHfTUhKSvgSAGEL5S9UwuqHH9GuWbPmJyuhffdlvV2uv+EtTXfeZwIAhu4CaHtKCEA5lgdq0BrsiL0O76LF4S20u21CI8luLC4Itc42aPZwQIn9duS6ODCbIeipq0N+ShSi/eyQFuiERD9XxPm6I8rHHdHe7oj3ckGShyMS+LfJ9hs5YG1Bkcdm8sVWVHvxu/0JAAm0nJwgbinDEbL+3NwcyW8JRqOJA44OYWEhX7bAShXce+ihfzm3+l9Wv7QS0h+0vqdoSrLVtWacM/UUsQVKYWT2Dw/Vo5/yVMOy7nDfgS4vGwLAPiXblzhvRZ7bTpRER6C/vhWHF2mhz3yETz86g77qQtTEBaM2OQwZge5I9HFGorczUrwckcHKyfV2YM/vQIn3dpR7bcFeZr6WW7DFtRykBjh0HbcIv/GbsLBwAGbLInQ6HdQqJVxdnb+sAIJwj0fLww8//PxKHH/4UveE/sDUme9r7i09Y2Dwpq4KLPVWYzgtEOUs0yaPXWjiEFPj+C4K7N9FlqcD2iur0Ng+gj7xHJbfv4HOfVM4vHwQJw0qtKXEYaI6C935McihRU4lgDneu1Hga49CHzsU0jeUeHNI8t2KxhA7NIQ5opETpKiuEIdMahywmHBgcQnzC8vQG8xQK1WYlc5g+/at1uAffvihOz/96cPiRx558AWe/n/sFtl/a0mbkv/G1FPmaOosv2DpqsQBgjCRE44ympg6b+q42zsoceRw47wDHeXV0BpOoXPiKCZMl6A9cheZZR3YNzyGTz88hZHGapRFemCkMhnVVIA8KkbJHnuU0yxVkx9qwzklCuoQ5YJmzgLNnCX6S9OxrJZieYFzCYNfOHCI5mcRWq0BKoUSExMivPnm61Yf8OCD/zz38MP/9HOe9h8n+C8Wafb7lq7q18xtpYcX2kvvTOVHoZZ63hS4Dg0BG6jVW9CenYXjy2eQXzWNio4jmDbfg9RyB3E5TUjMLsDndJbzJi1qs+NQHE2rS9dXHuGGUlrp8lA31Eb7oibCC+3Jwm14gejKDEF1UjD002M4tLiAhcVlHGDw8wtL1uwrVWooFQqMjY7g1VdfuUniMz300EOP8XT/sDvEv8taaCp43NRU2DldEH2lMWAL+qI4ujJTxSE+mO4fRm5+C7a5pKOq9xjGNLchNd1GVFodXnpjHc5+ch4fnDkDrUKKgZZaApGIavKBoP3lkf5WfqhPpP2lGWpNDUZNwh5Ih7qwvHQAC0uHmH0BAFbA/AJMJD+1WsMq0N0Ticbe37hxfdrjjz/+P1ZO80+7zA2lD8wWxe7sDXc0jCb73etkEBXxiUhPSMNv396GXd6ZqOo/hubxTzBluoHQxAqsfuwp9PT24PJnn2N+juTF7GmlU5ge6EBrcQaKYvcgN9IHuWFeSPbdhTS2hGSwA8vz87AsHcfSkTM4efw0Dh88jsX5RcqgCXqd7q7BYBqVSOS/bWpq+vP+X8LeXtu/6En2+NFwdnhaW1rc5dzoGGzdtAm/fOE3CE/pQnzRLFrFn6JPdhHe4blYTTu6af3buPb5VRw9fAIGHQPQ6mBQyaCTiTE20IaSrETYvrsJ6377FpwdvODuFgMPzxwEBJYhKLAYqQk1kE6ZYDYtUP70J40WnSvn+r//xj1/f+4l3GRZm5r4W8dtG7qffe6FU1tswq/7RtTei8gaQ/XAGTSOnIFrYCaeeIrz+pNrcIBEduaDczDqLdBp9NCqDJBMatBQPQAvp0TsWpsM2/UZsN1YBHubJrjat2PzumyEBtbc3T+gvKqUzy1PTkiSlUrlP/4/Dfx3l+2TT/71gw8++3hIREugnUdmZ0Bc96ns+uVrhc3L8AopxFM//yVWP/SP6GMbnPvwPBYpY4uLhzA7a0FsbCN22ZZi24ZK7NiYh63r87FtYxUcd7bds7epuOzplmXq65qpVCsXPfX6xX9m4H9chv9jLlvb3r+w8Uj+UUBU+8/TKue2FzYdyHT2yVA99tjPPn3wJw9cy83Jvn3u7Mf3rly+hvOffIaSsk68/U4kdmxvvGu7bd+t7Vtqr21YW/7+to1NQ7u2tUbb7yhbFxGYt7q3V/p3/6ky/l1WcjK+X1uLv/L2Tv7bNWue/slPfvLA00FBATvOnz/ve+fOvZBDh06GNDSJQnY75IRs2VLh6ukm3rZjR/NTNu/U/cjGpucHyb+V/qXwH7dWvu5PsFat+j9aecBXcSLihQAAAABJRU5ErkJggg=='
    32. },
    33. PS: {
    34. name: 'PS: Socialist Party',
    35. color: '#FD2C88',
    36. leader: 'Olivier Faure',
    37. icon: 'data:image/png;base64,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'
    38. }
    39. };
    40.  
    41. let items = zingchart.maps.getItems('fraL2'),
    42. i;
    43.  
    44. // For each department, create fake data with percentages for each party
    45. let scores = {
    46. REM: {},
    47. LR: {},
    48. PS: {}
    49. }
    50. // Fill w/ data
    51. for (let i = 0; i < items.length; i++) {
    52. let base = 35000;
    53. let above90 = rand(0, 100) > 90;
    54. let lenCheck = i % (Math.round(items.length / 4)) === 0;
    55. if (above90 || lenCheck) base = 25000;
    56. let pp1 = parseFloat((rand(base, 45000) / 1000).toFixed(3));
    57. let pp2 = parseFloat((rand(base, 45000) / 1000).toFixed(3));
    58. let pp3 = parseFloat((100 - pp1 - pp2).toFixed(3));
    59. scores['REM'][items[i]] = pp1;
    60. scores['LR'][items[i]] = pp2;
    61. scores['PS'][items[i]] = pp3;
    62. }
    63.  
    64. // Main chart config
    65. let gmain = {
    66. type: 'null',
    67. backgroundColor: 'none',
    68. borderColor: '#ddd',
    69. borderWidth: 1,
    70. width: '66.66%',
    71. height: '55%',
    72. x: '0%',
    73. y: '0%',
    74. title: {
    75. fontSize: '13px',
    76. text: 'Projected election results'
    77. },
    78. shapes: [{
    79. type: 'zingchart.maps',
    80. options: {
    81. id: 'mapmain',
    82. name: 'fraL2',
    83. x: '2.5%',
    84. y: '5%',
    85. width: '95%',
    86. height: '95%',
    87. scale: true,
    88. zooming: false,
    89. panning: false,
    90. scrolling: false,
    91. choropleth: {
    92. aspect: 'intervals',
    93. steps: [0, 1, 2, 3],
    94. colors: [parties['REM'].color, parties['LR'].color, parties['PS'].color]
    95. },
    96. style: {
    97. borderAlpha: 0.1,
    98. borderColor: '#fff',
    99. controls: {
    100. visible: false
    101. },
    102. label: {
    103. visible: false
    104. },
    105. hoverState: {
    106. backgroundColor: 'none',
    107. shadowAlpha: 0.2,
    108. shadowDistance: 2,
    109. shadow: true,
    110. shadowColor: '#333'
    111. },
    112. tooltip: {
    113. text: '<span style="font-size:29px;font-weight:bold;">%text</span>%data-preview<br><br><br><br>',
    114. align: 'left',
    115. backgroundColor: '#f9f9f9',
    116. borderRadius: '3px',
    117. borderWidth: 0,
    118. callout: true,
    119. calloutWidth: 16,
    120. calloutHeight: 8,
    121. color: '#000',
    122. fontSize: '13px',
    123. lineHeight: 15,
    124. padding: '10px 20px',
    125. shadow: true,
    126. shadowAlpha: 0.7,
    127. shadowColor: '#333',
    128. shadowDistance: 2,
    129. },
    130. items: {}
    131. }
    132. }
    133. }]
    134. };
    135.  
    136. for (let i = 0; i < items.length; i++) {
    137. let fVal = 0,
    138. sPreview = '';
    139.  
    140. let aPreview = [];
    141. aPreview.push(['REM', scores['REM'][items[i]]]);
    142. aPreview.push(['LR', scores['LR'][items[i]]]);
    143. aPreview.push(['PS', scores['PS'][items[i]]]);
    144. aPreview.sort(function(a, b) {
    145. return b[1] - a[1];
    146. });
    147. for (let p = 0; p < aPreview.length; p++) {
    148. let bars = createBar(aPreview[p][1], parties[aPreview[p][0]].color);
    149. sPreview += '<br>' + (p + 1) + ' ' + bars + ' ' + aPreview[p][0] + ': ' + aPreview[p][1] + '%';
    150. }
    151.  
    152. if (scores['REM'][items[i]] > scores['LR'][items[i]] && scores['REM'][items[i]] > scores['PS'][items[i]]) {
    153. fVal = 0.5;
    154. }
    155. if (scores['LR'][items[i]] > scores['REM'][items[i]] && scores['LR'][items[i]] > scores['PS'][items[i]]) {
    156. fVal = 1.5;
    157. }
    158. if (scores['PS'][items[i]] > scores['REM'][items[i]] && scores['PS'][items[i]] > scores['LR'][items[i]]) {
    159. fVal = 2.5;
    160. }
    161. gmain.shapes[0].options.style.items[items[i]] = {
    162. dataValue: fVal,
    163. dataPreview: sPreview
    164. };
    165. }
    166.  
    167.  
    168. // PARTY 1
    169. // -----------------------------
    170. let gp1 = {
    171. type: 'null',
    172. backgroundColor: 'none',
    173. borderColor: '#ddd',
    174. borderWidth: 1,
    175. width: '33.33%',
    176. height: '33.33%',
    177. x: '66.66%',
    178. y: '0%',
    179. title: {
    180. fontSize: '11px',
    181. text: parties['REM'].name
    182. },
    183. colorScale: {
    184. cursor: {
    185. size: 3
    186. },
    187. item: {
    188. fontSize: 10,
    189. offsetY: -5
    190. },
    191. layout: 'h',
    192. map: true,
    193. margin: 'auto auto 20 auto',
    194. width: '100px',
    195. height: '10px'
    196. },
    197. shapes: [{
    198. type: 'zingchart.maps',
    199. options: {
    200. id: 'mapp1',
    201. name: 'fraL2',
    202. colorScale: true,
    203. panning: false,
    204. scale: true,
    205. scrolling: false,
    206. x: '5%',
    207. y: '10%',
    208. width: '90%',
    209. height: '80%',
    210. zooming: false,
    211. choropleth: {
    212. aspect: 'gradient',
    213. progression: 'lin',
    214. color: parties['REM'].color,
    215. maxPercent: 50,
    216. effect: 'lighten',
    217. mirrored: true
    218. },
    219. style: {
    220. borderAlpha: 0.1,
    221. borderColor: parties['REM'].color,
    222. controls: {
    223. visible: false
    224. },
    225. label: {
    226. visible: false
    227. },
    228. hoverState: {
    229. backgroundColor: 'none',
    230. shadowAlpha: 0.1,
    231. shadowDistance: 0,
    232. shadow: true,
    233. shadowColor: '#369'
    234. },
    235. tooltip: {
    236. text: '%text: %data-value%',
    237. backgroundColor: parties['REM'].color,
    238. borderRadius: '3px',
    239. borderWidth: 0,
    240. callout: true,
    241. calloutWidth: '16px',
    242. calloutHeight: '8px',
    243. color: '#fff',
    244. fontSize: 13,
    245. fontWeight: 'bold',
    246. padding: '10px 20px',
    247. shadow: true,
    248. shadowColor: '#333',
    249. shadowAlpha: 0.7,
    250. shadowDistance: 2
    251. },
    252. items: {}
    253. }
    254. }
    255. }]
    256. };
    257.  
    258. for (let i = 0; i < items.length; i++) {
    259. gp1.shapes[0].options.style.items[items[i]] = {
    260. dataValue: scores['REM'][items[i]]
    261. };
    262. }
    263.  
    264.  
    265. // PARTY 2
    266. // -----------------------------
    267. let gp2 = {
    268. type: 'null',
    269. backgroundColor: 'none',
    270. borderColor: '#ddd',
    271. borderWidth: 1,
    272. x: '66.66%',
    273. y: '33.33%',
    274. width: '33.33%',
    275. height: '33.33%',
    276. title: {
    277. fontSize: '11px',
    278. text: parties['LR'].name
    279. },
    280. colorScale: {
    281. layout: 'h',
    282. width: '100px',
    283. height: '10px',
    284. map: true,
    285. margin: 'auto auto 20px auto',
    286. cursor: {
    287. size: 3
    288. },
    289. item: {
    290. fontSize: '10px',
    291. offsetY: '-5px'
    292. }
    293. },
    294. shapes: [{
    295. type: 'zingchart.maps',
    296. options: {
    297. id: 'mapp2',
    298. name: 'fraL2',
    299. colorScale: true,
    300. panning: false,
    301. scale: true,
    302. scrolling: false,
    303. width: '90%',
    304. height: '80%',
    305. x: '5%',
    306. y: '10%',
    307. zooming: false,
    308. choropleth: {
    309. aspect: 'gradient',
    310. color: parties['LR'].color,
    311. effect: 'lighten',
    312. maxPercent: 50,
    313. mirrored: true,
    314. progression: 'lin'
    315. },
    316. style: {
    317. borderAlpha: 0.1,
    318. borderColor: parties['LR'].color,
    319. controls: {
    320. visible: false
    321. },
    322. label: {
    323. visible: false
    324. },
    325. hoverState: {
    326. backgroundColor: 'none',
    327. shadow: true,
    328. shadowAlpha: 0.1,
    329. shadowColor: '#369',
    330. shadowDistance: 0
    331. },
    332. tooltip: {
    333. text: '%text: %data-value%',
    334. backgroundColor: parties['LR'].color,
    335. borderRadius: '3px',
    336. borderWidth: 0,
    337. callout: true,
    338. calloutWidth: '16px',
    339. calloutHeight: '8px',
    340. color: '#fff',
    341. fontSize: '13px',
    342. fontWeight: 'bold',
    343. padding: '10px 20px',
    344. shadow: true,
    345. shadowAlpha: 0.7,
    346. shadowColor: '#333',
    347. shadowDistance: 2,
    348. },
    349. items: {}
    350. }
    351. }
    352. }]
    353. };
    354.  
    355. for (let i = 0; i < items.length; i++) {
    356. gp2.shapes[0].options.style.items[items[i]] = {
    357. dataValue: scores['LR'][items[i]]
    358. };
    359. }
    360.  
    361.  
    362. // PARTY 3
    363. // -----------------------------
    364. let gp3 = {
    365. type: 'null',
    366. backgroundColor: 'none',
    367. borderColor: '#ddd',
    368. borderWidth: 1,
    369. width: '33.33%',
    370. height: '33.33%',
    371. x: '66.66%',
    372. y: '66.66%',
    373. title: {
    374. fontSize: '11px',
    375. text: parties['PS'].name
    376. },
    377. colorScale: {
    378. layout: 'h',
    379. map: true,
    380. margin: 'auto auto 20px auto',
    381. width: '100px',
    382. height: '10px',
    383. cursor: {
    384. size: 3
    385. },
    386. item: {
    387. fontSize: '10px',
    388. offsetY: '-5px'
    389. }
    390. },
    391. shapes: [{
    392. type: 'zingchart.maps',
    393. options: {
    394. id: 'mapp3',
    395. name: 'fraL2',
    396. colorScale: true,
    397. panning: false,
    398. scale: true,
    399. scrolling: false,
    400. width: '90%',
    401. height: '80%',
    402. x: '5%',
    403. y: '10%',
    404. zooming: false,
    405. choropleth: {
    406. aspect: 'gradient',
    407. color: parties['PS'].color,
    408. effect: 'lighten',
    409. maxPercent: 50,
    410. mirrored: true,
    411. progression: 'lin'
    412. },
    413. style: {
    414. borderAlpha: 0.1,
    415. borderColor: parties['PS'].color,
    416. controls: {
    417. visible: false
    418. },
    419. label: {
    420. visible: false
    421. },
    422. hoverState: {
    423. backgroundColor: 'none',
    424. shadow: true,
    425. shadowAlpha: 0.1,
    426. shadowColor: '#369',
    427. shadowDistance: 0
    428. },
    429. tooltip: {
    430. text: '%text: %data-value%',
    431. backgroundColor: parties['PS'].color,
    432. borderRadius: '3px',
    433. borderWidth: 0,
    434. callout: true,
    435. calloutWidth: '16px',
    436. calloutHeight: '8px',
    437. color: '#fff',
    438. fontSize: '13px',
    439. fontWeight: 'bold',
    440. padding: '10px 20px',
    441. shadow: true,
    442. shadowAlpha: 0.7,
    443. shadowColor: '#333',
    444. shadowDistance: 2
    445. },
    446. items: {}
    447. }
    448. }
    449. }]
    450. };
    451.  
    452. for (let i = 0; i < items.length; i++) {
    453. gp3.shapes[0].options.style.items[items[i]] = {
    454. dataValue: scores['PS'][items[i]]
    455. };
    456. }
    457.  
    458.  
    459. // TIME CHART
    460. // -----------------------------
    461. let gtime = {
    462. type: 'line',
    463. backgroundColor: 'none',
    464. borderColor: '#ddd',
    465. borderWidth: '1px',
    466. width: '66.66%',
    467. height: '45%',
    468. x: '0%',
    469. y: '55%',
    470. title: {
    471. text: 'Public trust for leaders of main political parties (trend)',
    472. fontSize: '13px'
    473. },
    474. plot: {
    475. maxNodes: 0,
    476. maxTrackers: 0
    477. },
    478. plotarea: {
    479. margin: '140px 30px 30px 40px'
    480. },
    481. scaleX: {
    482. maxItems: 6,
    483. step: 'month',
    484. item: {
    485. fontSize: 10
    486. },
    487. transform: {
    488. type: 'date',
    489. text: '%M %Y'
    490. }
    491. },
    492. scaleY: {
    493. maxItems: 6,
    494. format: '%v%',
    495. step: 20,
    496. item: {
    497. fontSize: '10px'
    498. }
    499. },
    500. crosshairX: {
    501. plotLabel: {
    502. text: '<span style="color:%color;font-weight:bold;">%node-value%</span> %plot-text',
    503. backgroundColor: '#f9f9f9',
    504. borderRadius: '5px',
    505. borderWidth: 0,
    506. callout: false,
    507. distance: 10,
    508. fontSize: '12px',
    509. multiple: false,
    510. padding: '8px',
    511. shadow: true,
    512. shadowAlpha: 0.5,
    513. shadowColor: '#333',
    514. shadowDistance: 1
    515. },
    516. scaleLabel: {
    517. fontSize: '10px'
    518. },
    519. mask: {
    520. backgroundColor: '#eee'
    521. }
    522. },
    523. shapes: [{
    524. type: 'circle',
    525. backgroundImage: parties['REM'].icon,
    526. borderWidth: '6px',
    527. borderColor: parties['REM'].color,
    528. size: '32px',
    529. x: '20%',
    530. y: '64px',
    531. label: {
    532. text: parties['REM'].leader + '<br>(REM)',
    533. fontSize: '10px',
    534. offsetY: '48px'
    535. }
    536. },
    537. {
    538. type: 'circle',
    539. backgroundImage: parties['LR'].icon,
    540. borderWidth: '6px',
    541. borderColor: parties['LR'].color,
    542. size: 32,
    543. x: '50%',
    544. y: '64px',
    545. label: {
    546. text: parties['LR'].leader + '<br>(LR)',
    547. fontSize: '10px',
    548. offsetY: '48px'
    549. }
    550. },
    551. {
    552. type: 'circle',
    553. size: 32,
    554. backgroundImage: parties['PS'].icon,
    555. borderColor: parties['PS'].color,
    556. borderWidth: '6px',
    557. x: '80%',
    558. y: '64px',
    559. label: {
    560. text: parties['PS'].leader + '<br>(PS)',
    561. fontSize: '10px',
    562. offsetY: '48px'
    563. }
    564. }
    565. ],
    566. series: []
    567. };
    568. let sdata = [
    569. [],
    570. [],
    571. []
    572. ];
    573.  
    574. let ts = Date.UTC(2018, 10, 15);
    575. let pc1 = 20 + 40 * Math.random();
    576. let pc2 = 20 + 40 * Math.random();
    577. let pc3 = 10 + 20 * Math.random();
    578.  
    579. for (let d = 0; d < 48; d++) {
    580. pc1 += -6 + 12 * Math.random();
    581. if (pc1 > 80 || pc1 < 20) {
    582. pc1 += ((pc1 > 80) ? -1 : 1) * 6 * Math.random();
    583. }
    584. pc1 = parseFloat(pc1.toFixed(1));
    585.  
    586. pc2 += -5 + 10 * Math.random();
    587. if (pc1 > 80 || pc1 < 20) {
    588. pc2 += ((pc2 > 80) ? -1 : 1) * 5 * Math.random();
    589. }
    590. pc2 = parseFloat(pc2.toFixed(1));
    591.  
    592. pc3 += -3 + 6 * Math.random();
    593. if (pc1 > 80 || pc1 < 20) {
    594. pc3 += ((pc3 > 80) ? -1 : 1) * 3 * Math.random();
    595. }
    596. pc3 = parseFloat(pc3.toFixed(1));
    597.  
    598. sdata[0].push([ts, pc1]);
    599. sdata[1].push([ts, pc2]);
    600. sdata[2].push([ts, pc3]);
    601.  
    602. ts -= 1000 * 60 * 60 * 24 * 30.5;
    603. }
    604.  
    605. gtime.series.push({
    606. lineColor: parties['REM'].color,
    607. text: parties['REM'].leader,
    608. values: sdata[0].reverse()
    609. });
    610. gtime.series.push({
    611. lineColor: parties['LR'].color,
    612. text: parties['LR'].leader,
    613. values: sdata[1].reverse()
    614. });
    615. gtime.series.push({
    616. lineColor: parties['PS'].color,
    617. text: parties['PS'].leader,
    618. values: sdata[2].reverse()
    619. });
    620.  
    621.  
    622. // CHART CONFIG
    623. // -----------------------------
    624. let cdata = {
    625. backgroundColor: '#fff',
    626. borderColor: '#ddd',
    627. borderWidth: '2px',
    628. graphset: [
    629. gmain,
    630. gp1,
    631. gp2,
    632. gp3,
    633. gtime
    634. ]
    635. };
    636.  
    637.  
    638. // RENDER CHARTS
    639. // -----------------------------
    640. zingchart.render({
    641. id: chartId,
    642. width: 600,
    643. height: 600,
    644. output: 'svg',
    645. data: cdata,
    646. modules: 'color-scale'
    647. });
    648. }
    649.  
    650.  
    651. // HELPER FNS
    652. // -----------------------------
    653.  
    654. function createBar(score, color) {
    655. let sBar = "<span style='font-weight:bold;color:" + color + "'>";
    656. for (let b = 0; b < Math.round(score / 4); b++) {
    657. sBar += '\u2588';
    658. }
    659. sBar += '</span>';
    660. return sBar;
    661. }
    662.  
    663. function rand(min, max) {
    664. return Math.round(min + (max - min) * Math.random());
    665. };