David PHAM-VAN

Add a Certificate demo

  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<svg version="1.1" viewBox="0 0 1e3 1e3" xmlns="http://www.w3.org/2000/svg">
  3 +<path d="m272.3 60c-0.1 0-0.1 0-0.2 0.1-0.4 0.1-0.9 0.3-1.2 0.6l-46.1 42.9c-0.3 0.2-0.4 0.5-0.6 0.9l-12.9 35.2c-0.1 0.3-0.1 0.7-0.1 1l4.9 41.7 1.3 10.7-30.2 82.2c-31 44.5-52.3 94.9-62.7 147.9l-8-46.1 9.5-30.8 6.1-20.2c0.1-0.3 0.2-0.6 0.1-1l-6.4-37c0-0.3-0.2-0.7-0.4-1l-12.6-16.8-12.5-16.9-12.6-16.9c-0.5-0.7-1.4-1-2.2-0.9-0.3 0-0.5 0.1-0.8 0.3-0.1 0-0.1 0.1-0.2 0.2-0.3 0.3-0.6 0.7-0.7 1.1l-6.1 20.1-6.2 20.1-6.1 20.1c-0.1 0.3-0.1 0.7-0.1 1.1l6.4 36.9c0.1 0.3 0.2 0.7 0.4 1l12.5 16.8 12.5 16.9 6.4 8.6 15 86.5c-0.9 10.9-1.4 21.8-1.4 32.8 0 44.2 7.4 86.7 21 126.4l-29.9-35.9-2.5-11-4.7-20.5-4.8-20.5c-0.1-0.3-0.2-0.7-0.4-0.9l-24.1-28.8c-0.2-0.3-0.5-0.5-0.8-0.6l-57.9-24.9c-1-0.5-2.4 0-2.9 1 0 0.1 0 0.1-0.1 0.2-0.2 0.4-0.2 0.9-0.1 1.3l14.1 61.5c0.1 0.3 0.2 0.7 0.5 0.9l24 28.8c0.2 0.3 0.5 0.4 0.8 0.6l38.7 16.6 9.9 4.2 56.2 67.4c23.2 49.2 56.4 92.8 96.9 128.2l-44.2-16.2-7.7-8.2-14.3-15.4-14.4-15.4c-0.2-0.2-0.5-0.4-0.8-0.6l-35.2-12.9c-0.3-0.1-0.7-0.2-1-0.2l-20.9 2.5-41.7 4.9c-1.1 0.1-2 1.2-2 2.3 0 0.1 0 0.1 0.1 0.2 0.1 0.4 0.3 0.9 0.6 1.2l42.9 46.1c0.2 0.3 0.5 0.4 0.9 0.6l35.2 12.9c0.3 0.1 0.7 0.2 1 0.1l52.4-6.1 82.7 30.4c43.5 30.3 93.6 51.9 147.5 62.4l-46.3 8-51-15.6c-0.3-0.1-0.6-0.2-1-0.1l-37 6.4c-0.3 0-0.7 0.2-1 0.4l-16.9 12.6-33.7 25.1c-0.9 0.6-1.2 2-0.6 2.9 0 0.1 0.1 0.1 0.2 0.2 0.3 0.3 0.7 0.6 1.1 0.7l20.1 6.1 20.1 6.2 20.1 6.1c0.3 0.1 0.7 0.1 1 0.1l37-6.3c0.3-0.1 0.6-0.2 0.9-0.5l42.3-31.5 86.8-15c6.2 0.5 12.3 0.8 18.6 1.1v0.2c2.3 0 4.7-0.1 7-0.1s4.7 0.1 7 0.1v-0.2c6.2-0.2 12.4-0.6 18.6-1.1l86.8 15 8.6 6.4 33.7 25.1c0.3 0.2 0.6 0.4 0.9 0.5l37 6.3c0.3 0.1 0.7 0 1-0.1l20.1-6.1 20.1-6.2 20.1-6.1c0.4-0.1 0.8-0.4 1.1-0.7 0.1 0 0.1-0.1 0.2-0.2 0.6-0.9 0.3-2.3-0.6-2.9l-33.7-25.1-16.7-12.5c-0.3-0.2-0.6-0.4-1-0.4l-37-6.4c-0.3 0-0.6 0-1 0.1l-51 15.6-46.3-8c54-10.5 104-32.1 147.5-62.4l82.7-30.4 10.7 1.3 41.7 4.9c0.3 0 0.7 0 1-0.1l35.2-12.9c0.3-0.1 0.6-0.3 0.9-0.6l42.9-46.1c0.3-0.3 0.5-0.7 0.6-1.2 0-0.1 0-0.1 0.1-0.2 0.1-1.1-0.9-2.2-2-2.3l-62.6-7.4c-0.3 0-0.7 0-1 0.2l-35.2 12.9c-0.3 0.1-0.6 0.3-0.8 0.6l-14.4 15.4-22 23.6-44.2 16.2c40.6-35.3 73.7-79 96.9-128.2l56.2-67.4 9.9-4.2 38.6-16.6c0.3-0.1 0.6-0.3 0.8-0.6l24-28.8c0.2-0.3 0.4-0.6 0.5-0.9l14.1-61.5c0.1-0.4 0.1-0.9-0.1-1.3 0-0.1 0-0.1-0.1-0.2-0.5-1-1.9-1.4-2.9-1l-19.2 8.3-38.6 16.6c-0.3 0.1-0.6 0.3-0.8 0.6l-24.1 28.8c-0.2 0.3-0.3 0.6-0.4 0.9l-4.8 20.5-4.7 20.5-2.5 11-30 35.9c13.6-39.6 21-82.1 21-126.4 0-11-0.5-21.9-1.4-32.8l15-86.5 6.4-8.6 12.5-16.9 12.5-16.8c0.2-0.3 0.3-0.6 0.4-1l6.4-36.9c0.1-0.3 0-0.7-0.1-1.1l-6.1-20.1-6.2-20.1-6.1-20.1c-0.1-0.4-0.4-0.8-0.7-1.1 0-0.1-0.1-0.1-0.2-0.2-0.2-0.2-0.5-0.2-0.8-0.3-0.8-0.1-1.7 0.2-2.2 0.9l-12.6 16.9-12.5 16.9-12.6 16.8c-0.2 0.3-0.3 0.6-0.4 1l-6.4 37c0 0.3 0 0.6 0.1 1l6.1 20.2 9.5 30.8-8 46.1c-10.4-53-31.7-103.3-62.7-147.9l-30.2-82.2 1.3-10.7 4.9-41.7c0-0.3 0-0.7-0.1-1l-12.9-35.2c-0.1-0.3-0.3-0.6-0.6-0.9l-46.1-42.9c-0.3-0.3-0.7-0.5-1.2-0.6-0.1 0-0.1 0-0.2-0.1-1.1-0.1-2.2 0.9-2.3 2l-4.9 41.7-2.5 20.9c0 0.3 0 0.7 0.2 1l12.9 35.2c0.1 0.3 0.3 0.6 0.6 0.8l15.4 14.4 23.6 22 21 57.3-3.1 2.6-104.9-87.5-1.5-3.6-16.7-38.6-28.8-24-44.4-10.5-0.6-0.5-0.3 0.3-15.9-3.7 6.4 15.1-0.7 0.8 1.6 1.3 0.9 2.1 16.6 38.6 28.8 24 43.2 9.9 106.1 88.5c12.5 15.7 23.7 32.3 33.4 49.7l-84.1-38.9-1.1-1.4-25.7-32.6-33-15.3-20.5 0.8-21 0.7-16.7 0.6 23.4 29.6 12.6 16.1 33.1 15.3 20.5-0.8 23.9-0.8 98.4 45.5c23.8 49.3 36.4 103.6 36.4 159.1 0 1.7 0 3.4-0.1 5.1l-53.3-75.5-0.3-1.8-3-20.8-2.9-20.3-20.6-29.6-18.2-9.6-18.5-9.9-14.8-7.8 2.4 16.5 3.1 20.8 2.9 20.3 21 29.8 18.2 9.6 18.5 9.8 2.6 1.4 62.3 88.5c-4.2 58.5-22.1 113.1-50.5 160.7l-8.4-92.2 0.7-1.7 15.4-38.5-3.2-36.2-22.1-35.2-8.8-14.2-6.2 15.5-7.8 19.6-7.6 19 3.3 36.3 10.9 17.4 12.6 20.3 9.7 107.9c-31.9 46.9-74.4 86-124.1 113.8l38.9-84 1.4-1.1 32.6-25.7 15.3-33-0.8-20.5-0.7-21-0.6-16.7-29.6 23.4-16.1 12.6-15.3 33.1 0.8 20.5 0.7 21 0.1 2.9-45.5 98.4c-37.1 18-77.7 29.9-120.5 34.4l-20.5-14.4 52.2-36.8 1.8-0.2 41.1-5.9 29.8-21 9.6-18.2 9.9-18.5 7.8-14.8-37.4 5.5-20.3 2.9-29.8 21-9.6 18.2-9.9 18.5-1.4 2.6-54.9 38.6-55.2-38.9-1.4-2.6-9.9-18.5-9.6-18.2-29.8-21-20.3-2.9-37.4-5.5 7.8 14.8 9.9 18.5 9.6 18.2 29.8 21 42.9 6.2 52.2 36.8-20.5 14.4c-42.8-4.5-83.4-16.4-120.5-34.4l-45.5-98.4 0.1-2.9 0.7-21 0.8-20.5-15.3-33.1-16.1-12.6-29.6-23.4-0.6 16.7-0.7 21-0.8 20.5 15.3 33 34 26.8 38.9 84c-49.7-27.8-92.2-66.9-124.1-113.8l9.7-107.9 1.6-2.5 11.1-17.8 10.9-17.4 3.3-36.3-7.6-19-7.8-19.6-6.2-15.5-8.8 14.2-21.9 35.4-3.2 36.2 15.4 38.5 0.7 1.7-8.4 92.2c-28.5-47.5-46.4-102.1-50.5-160.6l62.3-88.5 2.6-1.4 18.5-9.8 18.2-9.6 21-29.8 2.9-20.3 3.1-20.8 2.4-16.5-14.8 7.8-18.5 9.9-18.2 9.6-20.9 29.8-2.9 20.3-3 20.8-0.3 1.8-53.3 75.5c0-1.7-0.1-3.4-0.1-5.1 0-55.5 12.6-109.8 36.4-159.1l98.4-45.5 23.9 0.8 20.5 0.8 33.1-15.3 12.6-16.1 23.4-29.6-16.7-0.6-21-0.7-20.5-0.8-33 15.3-26.8 34-84.1 38.9c9.7-17.4 20.9-34 33.4-49.7l106.1-88.5 2.2-0.5 41-9.4 28.8-24 16.6-38.6 0.9-2.1 1.6-1.3-0.7-0.8 6.4-15.1-15.9 3.7-0.3-0.3-0.6 0.5-3.7 0.9-41 9.4-28.8 24-16.7 38.6-1.5 3.6-104.9 87.5-3.1-2.6 21-57.3 39-36.3c0.2-0.2 0.4-0.5 0.6-0.8l12.9-35.2c0.1-0.3 0.2-0.7 0.2-1l-2.5-20.9-4.7-42.1c-0.1-1.1-1.1-2-2.2-2zm227.7 794.6 11.4 8c-3.8 0.2-7.6 0.3-11.4 0.4-3.8-0.1-7.6-0.2-11.4-0.4l11.4-8z" fill="#fffee5"/>
  4 +</svg>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<svg version="1.1" viewBox="0 0 112.86 169.26" xmlns="http://www.w3.org/2000/svg">
  3 +<polygon points="87.429 163.55 87.429 85.111 23.453 85.134 23.43 163.55 55.429 142.24" fill="#ed5564"/>
  4 +<path d="m98.085 56.892c0 23.562-19.094 42.656-42.656 42.656s-42.663-19.094-42.663-42.656 19.102-42.663 42.663-42.663c23.562 0 42.656 19.1 42.656 42.663z" fill="#f6bb42"/>
  5 +<g transform="translate(-200.57 -183.11)" fill="#ffce54">
  6 +<path d="m256 293.34c-29.405 0-53.335-23.937-53.335-53.343s23.93-53.334 53.335-53.334c29.406 0 53.344 23.928 53.344 53.334s-23.938 53.343-53.344 53.343zm0-85.342c-17.647 0-31.999 14.351-31.999 31.999s14.352 32 31.999 32c17.656 0 32-14.352 32-32s-14.344-31.999-32-31.999z"/>
  7 +<circle cx="256" cy="240" r="10.664"/>
  8 +</g>
  9 +</svg>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<svg viewBox="-.965 153.8 328.07 69.047" xmlns="http://www.w3.org/2000/svg">
  3 + <g fill="#ffe435" fill-rule="evenodd">
  4 + <path d="m130.42 192.48c5.3472-7.5674 3.6727-18.679-0.89786-21.885-8.0631-5.8563-16.876 6.3663-12.837 18.527 4.0311 12.517 14.122 21.268 27.86 23.77 29.803 5.2656 88.754-27.178 126.14-37.106 27.773-7.375 44.738 3.707 53.892 15.981-18.815-13.327-35.963-8.692-53.611-5.4198-40.492 7.5078-82.376 39.384-126.76 34.37-20.721-3.0955-35.239-23.671-34.045-39.805 0.10605-1.4338 0.33619-2.8325 0.69714-4.1808 2.7276-9.5617 7.52-13.483 11.766-14.646 11.541-3.1619 22.973 17.872 7.7949 30.395z"/>
  5 + <path d="m120.25 199.32c-8.213-7.289-16.686-18.602-24.247-23.606-79.487-52.616-120.23 18.467-79.465 38.895 6.2895 3.152 19.323 5.044 28.661-7.507-11.426 8.713-24.104 5.722-29.342 1.216-13.942-11.992-9.053-29.009 7.3432-36.78 25.826-9.861 49.152 0.688 69.564 15.316 14.578 8.736 18.32 12.813 30.067 18.151-6.674 0.27699-3.168-8.494-9.519-12.61l6.937 6.925z"/>
  6 + </g>
  7 +</svg>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<svg viewBox="-195.92 -4.203 1099.5 283.9" xmlns="http://www.w3.org/2000/svg">
  3 +<g transform="matrix(-1 0 0 -1 708.01 276.82)" fill="#ffe435">
  4 +<path d="m332.63 121.08c0 6.241 3.577 16.041 11.139 25.843 0.9 1.345 1.796 2.231 3.119 3.572v6.686 1.783 6.239c-4.9-2.673-15.597-8.468-28.072-11.143 1.777 6.239-0.432 11.591-7.587 11.591-5.348 0-9.352-3.121-14.704-3.121-5.785 0-9.352 3.121-9.352 6.683 0 3.561 0.452 7.579 3.113 12.033-0.89 0-12.471-4.01-12.471-12.033 0-7.582 3.567-12.922 8.915-16.039-28.977 4.007-52.155 17.823-73.102 32.976 0.89 6.68 3.117 12.921 6.243 17.827 0.884-10.256 6.69-22.287 20.506-22.287 11.591 0 23.182 3.569 25.849 20.95-3.119-1.34-6.675-2.671-11.591-2.671-4.004 0-8.467 5.793-8.467 10.243 0 8.473 8.029 16.939 21.396 16.939 34.315 0 44.127-25.851 43.667-41.448h5.358c0 35.657-25.849 50.804-49.025 50.804-34.314 0-54.368-19.158-60.601-45.453-29.442 21.837-55.279 44.568-87.818 44.568-14.253 0-27.636-5.35-27.636-21.401 0-16.038 9.81-19.606 17.824-19.606 9.361 0 16.506 6.683 16.506 12.922 0 7.579-7.581 10.7-12.045 8.917 2.229-2.233 3.12-4.454 3.12-8.471 0-3.562-4.9-8.014-9.356-8.014-8.016 0-12.045 6.235-12.045 14.252 0 10.257 7.581 15.161 18.281 15.161 22.726 0 30.301-46.352 53.483-46.352 11.154 0 13.383 8.47 13.383 11.587 0 2.677-0.906 9.36-0.906 9.36 8.471-5.792 16.933-12.477 26.295-19.614-0.438-3.564-0.885-7.125-0.885-11.141 0-2.665 0-5.794 0.449-8.461-20.511 2.221-29.863-12.488-29.863-22.288 0-9.804 6.233-16.939 16.045-16.939 6.242 0 11.139 5.793 11.139 11.587 0 4.462-1.775 7.581-7.127 7.581-4.01 0-6.239-3.573-6.239-5.794 0-5.35 4.894-4.906 4.894-6.691-1.317-1.775-3.552-0.888-5.348-0.888-3.552 0-8.904 4.015-8.904 10.254 0 12.919 12.935 19.164 26.295 18.272 6.239-32.534 35.653-51.26 64.183-51.26 23.172 0 42.339 9.366 59.279 24.518-2.229-3.571-4.024-8.469-4.024-14.262 0-7.136 2.687-12.933 8.92-12.933 8.025 0 12.029 5.35 13.825 11.143-8.039-2.671-16.058-1.331-16.058 4.019zm-170.7 87.351c-4.897 0-10.701 8.469-17.372 17.837 4.462-2.233 15.595-8.025 21.375-12.931 0-2.233-0.432-4.906-4.003-4.906zm55.278-45.901c-2.686 5.792-4.009 11.59-4.009 16.483 14.71-10.245 30.743-20.501 49.478-27.186-14.71 2.675-32.107 7.137-45.469 10.703zm65.068-46.8c3.119 3.564 3.557 4.01 3.557 8.027 0 6.683-3.557 11.135-13.804 11.135-4.916 0-9.81-1.777-13.819-1.777-16.934 0-29.869 11.145-37.45 23.178 17.393-4.906 42.35-12.031 72.218-12.031-1.797-1.344-2.687-3.575-2.687-6.697 0-4.007 1.797-7.123 7.129-9.354-0.432 8.026 4.464 11.143 14.274 11.143 7.581 0 9.81 2.673 9.81 6.237l-0.904 2.677c9.372 2.673 19.626 6.234 24.078 8.025-21.399-25.407-41.906-40.119-62.402-40.563zm62.398-28.524c-0.9-3.563-3.566-11.589-8.03-11.589-10.242 0-19.604 7.133-29.848 7.133-7.581 0-17.397-5.792-17.397-14.26 0-3.575 2.687-5.792 6.242-6.248-0.438 1.34-0.89 2.673-0.89 4.015 0 2.676 1.775 4.908 4.464 4.908 8.898 0 16.048-6.694 24.952-6.694 2.665 0 5.354 0.898 8.016 1.786-5.349-4.015-12.91-8.023-19.601-9.357-22.291-3.57-51.253-15.603-48.134-38.781 0.885-7.573 7.129-11.132 12.477-10.246-2.665 2.231-5.348 4.008-5.348 7.581 0 12.922 16.485 13.368 25.843 13.368 9.81 0 30.321-2.231 30.321 13.375 0 5.341-4.462 9.358-9.352 10.245 13.361 6.683 26.723 15.604 29.848 31.201l-3.563 3.563zm243.35 148.42c-32.541 0-58.378-22.731-87.798-44.568-5.807 26.295-26.291 45.453-60.633 45.453-22.72 0-49.019-15.149-49.019-50.804h5.364c0 15.597 9.781 41.448 43.657 41.448 13.391 0 21.402-8.468 21.402-16.939 0-4.45-4.457-10.243-8.463-10.243-4.898 0-8.472 1.331-11.589 2.671 2.665-17.381 14.256-20.95 25.847-20.95 14.268 0 19.62 12.031 20.506 22.287 3.12-4.906 5.345-11.147 6.239-17.827-20.947-15.153-44.119-28.971-73.089-32.976 5.333 3.115 8.904 8.455 8.904 16.038 0 8.026-11.581 12.034-12.477 12.034 2.665-4.454 3.119-8.472 3.119-12.034 0-3.561-3.119-6.682-9.358-6.682-5.354 0-9.358 3.121-14.7 3.121-7.135 0-9.368-5.354-7.587-11.591-12.475 2.677-23.172 8.47-28.068 11.143v-6.239-1.783-6.686l3.55-3.572c7.575-9.802 10.704-19.602 10.704-25.843 0-5.35-8.017-6.69-16.05-4.017 1.796-5.793 5.798-11.143 13.817-11.143 6.239 0 8.914 5.796 8.914 12.933 0 5.793-1.781 10.691-4.004 14.262 17.376-15.152 36.09-24.518 59.261-24.518 28.988 0 57.945 18.726 64.195 51.26 13.362 0.89 26.291-5.355 26.291-18.272 0-6.239-4.9-10.254-8.904-10.254-1.802 0-4.025-0.889-5.354 0.888 0 1.787 4.9 1.341 4.9 6.691 0 2.221-1.781 5.794-6.239 5.794-5.354 0-7.134-3.119-7.134-7.581 0-5.792 4.9-11.587 11.138-11.587 9.81 0 16.049 7.133 16.049 16.939 0 9.8-9.358 24.509-29.863 22.288 0.443 2.665 0.443 5.794 0.443 8.461 0 4.016 0 7.577-0.443 11.141 8.926 7.139 17.818 13.822 25.859 19.614 0 0-0.886-6.683-0.886-9.36 0-3.115 2.665-11.587 13.363-11.587 23.182 0 30.757 46.352 53.477 46.352 10.694 0 18.283-4.904 18.283-15.161 0-8.017-4.025-14.252-12.045-14.252-4.457 0-9.358 4.452-9.358 8.014 0 4.017 0.897 6.238 3.12 8.471-4.458 1.785-12.033-1.338-12.033-8.917 0-6.239 7.575-12.922 16.502-12.922 8.008 0 17.818 3.568 17.818 19.606 2e-3 16.049-13.36 21.399-27.628 21.399zm-193.44-178.72c-6.691 1.334-14.256 5.342-19.601 9.357 2.666-0.888 5.345-1.786 8.01-1.786 8.923 0 16.058 6.694 24.952 6.694 3.13 0 4.466-2.23 4.466-4.908 0-1.342 0-2.675-0.896-4.015 3.583 0.456 6.25 2.673 6.25 6.248 0 8.468-9.358 14.26-17.387 14.26-10.254 0-19.168-7.133-29.862-7.133-4.458 0-7.123 8.026-8.01 11.589l-3.579-3.563c3.127-15.597 16.491-24.518 29.87-31.201-4.92-0.889-9.368-4.906-9.368-10.245 0-15.606 20.949-13.375 30.317-13.375 9.358 0 25.839-0.446 25.839-13.368 0-3.573-2.223-5.35-5.342-7.581 5.342-0.886 11.58 2.673 12.477 10.246 3.119 23.178-25.849 35.211-48.136 38.781zm54.374 76.215c-4.005 0-8.903 1.777-13.815 1.777-9.799 0-13.814-4.452-13.814-11.135 0-4.017 0.896-4.463 3.561-8.027-20.496 0.446-41.011 15.156-62.382 40.561 4.438-1.789 14.7-5.35 24.058-8.025l-0.886-2.677c0-3.564 2.213-6.237 9.79-6.237 9.808 0 14.708-3.117 14.278-11.143 5.354 2.231 7.123 5.349 7.123 9.354 0 3.122-0.885 5.353-2.675 6.697 29.862 0 54.817 7.125 72.644 12.031-8.021-12.031-20.948-23.176-37.882-23.176zm41 29.415c-13.362-3.564-30.739-8.028-45.448-10.701 18.714 6.683 34.763 16.939 49.473 27.186 0-4.895-1.346-10.693-4.025-16.485zm55.278 45.901c-3.571 0-4.003 2.673-4.003 4.906 5.774 4.906 16.933 10.698 21.371 12.931-6.671-9.368-12.475-17.837-17.368-17.837z"/>
  5 +<path d="m-77.49 247.08c-1.258-4.982-4.985-16.2-11.223-16.2-14.319 0-27.408 9.974-41.727 9.974-10.598 0-24.32-8.1-24.32-19.935 0-4.996 3.759-8.098 8.729-8.735-0.613 1.875-1.246 3.737-1.246 5.614 0 3.738 2.485 6.858 6.239 6.858 12.442 0 22.437-9.358 34.884-9.358 3.727 0 7.481 1.256 11.202 2.498-7.475-5.614-18.046-11.216-27.4-13.081-31.161-4.99-71.648-21.811-67.29-54.213 1.238-10.589 9.965-15.562 17.44-14.325-3.726 3.117-7.475 5.6-7.475 10.598 0 18.063 23.046 18.686 36.127 18.686 13.715 0 42.389-3.119 42.389 18.697 0 7.465-6.239 13.08-13.073 14.32 18.679 9.345 37.357 21.816 41.724 43.62l-4.98 4.982z"/>
  6 +<path d="m780.84 242.1c4.365-21.804 23.038-34.275 41.722-43.62-6.836-1.24-13.072-6.855-13.072-14.32 0-21.816 28.669-18.697 42.388-18.697 13.073 0 36.123-0.623 36.123-18.686 0-4.996-3.746-7.479-7.473-10.598 7.473-1.239 16.202 3.736 17.437 14.325 4.365 32.4-36.121 49.223-67.291 54.213-9.348 1.865-19.921 7.467-27.394 13.081 3.717-1.244 7.473-2.498 11.2-2.498 12.446 0 22.441 9.358 34.887 9.358 3.746 0 6.238-3.12 6.238-6.858 0-1.877-0.639-3.739-1.246-5.614 4.971 0.637 8.729 3.737 8.729 8.735 0 11.835-13.721 19.935-24.326 19.935-14.319 0-27.401-9.974-41.722-9.974-6.239 0-9.963 11.22-11.231 16.2l-4.969-4.982z"/>
  7 +<path d="m752.99 257.05c-13.556 9.939-35.782 22.949-109.33 15.541-20.064-1.989-39.952-5.059-60.191-8.131-12.652-1.807-25.477-3.436-38.314-4.7-9.038-0.904-31.808-3.255-40.302-2.349-8.862 0.904-12.29 3.979-12.477 5.604 0 0.36-0.175 1.087 0.187 1.447 0.187 1.083 0.906 1.808 0.906 2.529-0.187 1.63-4.344 3.253-8.133 2.894-2.532-0.181-5.064-1.809-4.889-3.979 0.362-1.983 6.691-9.759 21.875-11.926 12.29-1.624 26.383 0 74.643 4.699 59.992 5.966 100.31 6.144 130.85-4.153 22.409-7.414 56.39-26.568 59.633-53.862 3.078-24.394-18.427-36.142-36.502-37.95-37.408-3.617-75.001 29.278-77.895 52.415-1.627 12.829 9.398 19.877 21.144 20.962 12.477 1.266 22.596-3.793 31.448-10.299 15.906-11.748 17.718-20.247 18.25-24.22 0.547-4.155-0.174-7.589-2.162-10.118-1.635-1.989-2.893-2.17-5.063-2.351-0.906 0-2.347-0.185-2.172-1.63 0.187-1.987 2.172-1.806 2.903-1.627 5.962 0.541 13.549 7.77 12.096 19.697-2.522 19.702-27.464 36.508-54.219 33.797-21.865-2.168-31.799-18.252-29.812-33.613 3.253-26.749 42.289-52.776 79.697-48.981 33.621 3.255 56.217 30.185 52.592 60.545-2.174 17.169-11.563 30-24.758 39.759z"/>
  8 +<path d="m-68.238 219.91c-3.619-30.36 18.971-57.292 52.597-60.545 37.409-3.795 76.444 22.23 79.703 48.98 1.981 15.362-7.958 31.446-29.821 33.614-26.755 2.711-51.692-14.097-54.219-33.797-1.451-11.927 6.14-19.158 12.101-19.697 0.732-0.181 2.717-0.36 2.898 1.628 0.18 1.442-1.262 1.629-2.168 1.629-2.172 0.181-3.434 0.362-5.066 2.347-1.987 2.529-2.706 5.965-2.162 10.118 0.535 3.977 2.341 12.474 18.25 24.224 8.853 6.504 18.972 11.561 31.445 10.299 11.746-1.087 22.775-8.135 21.143-20.964-2.893-23.133-40.486-56.028-77.894-52.415-18.077 1.808-39.576 13.556-36.502 37.954 3.247 27.29 37.223 46.448 59.638 53.858 30.543 10.299 70.848 10.119 130.85 4.157 48.26-4.699 62.351-6.325 74.644-4.699 15.18 2.169 21.509 9.941 21.868 11.928 0.181 2.17-2.35 3.8-4.884 3.979-3.793 0.359-7.947-1.268-8.133-2.896 0-0.721 0.721-1.442 0.906-2.529 0.361-0.36 0.185-1.083 0.185-1.443-0.185-1.627-3.619-4.7-12.476-5.606-8.493-0.904-31.268 1.445-40.301 2.349-12.837 1.266-25.664 2.895-38.315 4.7-20.237 3.074-40.126 6.144-60.184 8.135-73.557 7.41-95.787-5.606-109.34-15.543-13.19-9.759-22.589-22.594-24.761-39.765z"/>
  9 +</g>
  10 +</svg>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<svg viewBox="27.318 120.08 598.65 158.05" xmlns="http://www.w3.org/2000/svg">
  3 +<g transform="matrix(1 0 0 .64549 0 44.076)" fill="#ffe435" fill-rule="evenodd">
  4 +<path transform="matrix(.000253 -.64549 1.5492 -.000456 -186.25 431)" d="m260.84 329.14c-92.581-21.534-94.129-32.561-72.333-40.61 30.779 12.081 78.822 25.61 149.69 40.445l0.526 0.012c-68.728-15.985-114.22-30.361-142.37-42.991 14.469-4.156 33.853-7.643 46.617-11.749 164.87-34.369 77.855-54.547 29.965-52.135-76.999-2.666-195.56 21.659-87.031 65.371-27.575 8.149-33.108 20.313 74.676 41.657l-1.148-0.461 1.411 0.461zm-64.882-43.509c-88.674-40.629 2.804-62.991 74.312-62.788-0.239 0.02-0.486 0.04-0.723 0.061 0.318-0.02 0.648-0.03 0.969-0.049 6.418 0.023 12.655 0.218 18.602 0.609-4.121-0.37-8.443-0.647-12.92-0.829 46.143-0.827 113.92 18.256-32.067 52.073l-48.173 10.923zm93.16-62.167c0.463 0.041 0.921 0.079 1.379 0.123h0.526c-0.628-0.046-1.271-0.082-1.905-0.123zm-19.571-0.56c-0.328 0.022-0.661 0.038-0.985 0.062h0.246c0.242-0.023 0.494-0.04 0.739-0.062z"/>
  5 +<path transform="matrix(.000253 -.64549 1.5492 -.000456 107.36 459.86)" d="m387.38 139.3c103.07 22.456 104.8 33.954 80.537 42.347-34.268-12.599-87.758-26.707-166.66-42.177l-0.585-0.013c76.516 16.67 127.16 31.661 158.51 44.833-16.106 4.333-37.685 7.968-51.893 12.25-183.54 35.836-86.659 56.878-33.345 54.363 85.722 2.782 217.71-22.581 96.871-68.164 30.696-8.497 35.279-20.219-83.147-43.439h-0.292zm73.814 45.851c98.73 42.368-3.104 65.685-82.711 65.471 0.266-0.02 0.541-0.042 0.804-0.064-0.354 0.022-0.721 0.032-1.079 0.051-7.145-0.024-14.088-0.227-20.709-0.634 4.588 0.385 9.399 0.674 14.383 0.864-51.369 0.861-126.83-19.039 35.685-54.299 13.595-3.902 35.791-7.324 53.627-11.389zm-103.7 64.824c-0.515-0.044-1.026-0.083-1.535-0.129h-0.585c0.698 0.048 1.414 0.085 2.12 0.129zm21.788 0.583c0.366-0.022 0.736-0.039 1.097-0.064h-0.274c-0.269 0.024-0.551 0.041-0.823 0.064z"/>
  6 +<path transform="matrix(.000253 -.64549 1.5492 -.000456 -123.91 314.59)" d="m157.93 292.58c106.21-38.229 108.11-57.839 83.263-72.171-35.368 21.464-90.512 45.489-171.79 71.82l-0.602 0.021c78.845-28.379 131.08-53.912 163.45-76.355-16.509-7.402-38.653-13.618-53.211-20.931-188.28-61.249-88.456-97.072-33.677-92.745 88.155-4.685 223.56 38.667 98.83 116.33 31.461 14.515 36.043 34.511-85.958 74.032h-0.301zm76.39-78.152c101.96-72.194-2.463-112.03-84.302-111.73 0.273 0.035 0.556 0.072 0.826 0.109-0.364-0.036-0.74-0.054-1.108-0.087-7.346 0.036-14.486 0.378-21.297 1.067 4.721-0.654 9.67-1.143 14.796-1.463-52.798-1.506-130.59 32.383 36.082 92.636 13.933 6.665 36.713 12.518 55.003 19.464zm-105.88-110.64c-0.53 0.074-1.055 0.141-1.579 0.219h-0.602c0.719-0.081 1.455-0.145 2.181-0.219zm22.405-0.98c0.376 0.039 0.756 0.068 1.127 0.11h-0.282c-0.276-0.041-0.565-0.071-0.845-0.11z"/>
  7 +<path transform="matrix(.000253 -.64549 1.5492 -.000456 37.713 586.2)" d="m496.64 185.47c-106.21 38.229-108.11 57.839-83.263 72.171 35.368-21.464 90.512-45.489 171.8-71.82l0.601-0.021c-78.845 28.379-131.08 53.912-163.45 76.355 16.51 7.402 38.653 13.618 53.212 20.931 188.28 61.249 88.456 97.072 33.676 92.745-88.154 4.685-223.56-38.667-98.829-116.33-31.462-14.515-36.044-34.511 85.957-74.032h0.301zm-76.39 78.152c-101.96 72.194 2.463 112.03 84.303 111.73-0.274-0.035-0.556-0.072-0.827-0.109 0.364 0.036 0.741 0.054 1.109 0.087 7.345-0.036 14.486-0.378 21.296-1.067-4.721 0.654-9.67 1.143-14.796 1.463 52.799 1.506 130.59-32.383-36.082-92.636-13.933-6.665-36.712-12.518-55.003-19.464zm105.88 110.64c0.53-0.074 1.055-0.141 1.58-0.219h0.601c-0.718 0.081-1.455 0.145-2.181 0.219zm-22.405 0.98c-0.375-0.039-0.756-0.068-1.127-0.11h0.282c0.276 0.041 0.565 0.071 0.845 0.11z"/>
  8 +</g>
  9 +</svg>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<svg viewBox="-27.602 -26.01 425.96 433.41" xmlns="http://www.w3.org/2000/svg">
  3 +<g fill="#ffe435">
  4 +<path transform="matrix(-.93883 .34438 -.34438 -.93883 141.84 178.65)" d="m35.707 130.45c-3.659-2.64-7.355-4.946-10.745-8.333-7.246-7.706-13.376-16.622-18.697-26.897-6.104-11.733-7.976-25.171-8.152-39.318 1.028-14.807 6.503-26.431 13.774-36.822 8.86-10.63 19.286-18.044 30.681-21.564 12.616-3.315 25.081-0.54 37.26 4.227 11.254 5.002 20.572 14.25 27.754 27.124 6.651 14.172 4.87 28.649 0.66 43.476-6.529 17.61-16.323 32.242-25.334 47.405-9.896 15.316-17.647 32.688-24.077 51.128-2.201 11.608-7.044 24.223-5.852 36.043 0.101 1-0.92 1.197-1.02 0.196-1.456-14.672-4.416-25.5 2.225-39.514 7.051-18.428 16.38-34.795 24.826-52 7.833-15.28 15.988-30.487 21.911-47.404 3.458-11.296 4.954-22.389 0.923-33.914-5.349-12.87-13.318-21.39-23.325-26.717-11.352-5.428-23.154-7.564-35.09-4.687-10.927 3.383-21.377 7.34-29.301 19.15-6.409 9.635-11.369 20.58-12.086 33.999-0.64 13.135 1.878 25.21 7.126 36.234 5.157 9.533 11.299 18.163 18.319 25.062 2.9 2.996 5.718 7.37 9.305 8.44 2.452 0.732 1.139 6.292-1.085 4.686z"/>
  5 +<path transform="matrix(-.93883 .34438 -.34438 -.93883 119.83 474.07)" d="m17.097 128.99c3.583-2.52 7.447-3.692 11.354-4.791 8.131-1.808 16.336-1.259 24.415 0.647 7.898 3.01 13.666 10.197 18.99 18.423 4.689 8.882 6.048 17.81 3.105 28.067-3.912 11.008-11.825 17.081-19.002 23.448-8.855 7.348-17.968 14.049-27.006 20.944-10.407 7.149-19.728 16.518-28.791 26.482-10.39 11.945-18.759 26.558-25.871 42.366-7.055 14.862-10.597 31.666-12.71 49.021-2.006 13.043-0.11 25.415 3.135 37.66 0.252 0.948-0.715 1.44-0.966 0.492-3.288-12.451-4.893-25.318-4.604-38.637 1.561-18.131 6.165-34.791 13.226-50.239 7.484-15.88 15.334-31.568 25.689-44.17 8.875-10.735 18.444-20.367 28.588-28.675 8.81-6.999 17.754-13.788 26.022-21.99 5.749-5.724 11.435-11.775 14.861-20.597 1.63-6.585 2.084-12.873-0.603-19.171-3.396-8.417-8.877-14.17-15.249-17.901-7.308-4.541-14.907-6.051-22.805-3.519-3.679 1.238-7.372 2.687-10.766 5.065-1.476 1.033-2.487-1.888-1.012-2.925z"/>
  6 +<path transform="matrix(-.93883 .34438 -.34438 -.93883 130 487.34)" d="m0.833 300.24c1.196-2.417 3.451-3.422 5.351-4.618 5.311-3.457 9.843-8.562 14.078-14.109 5.771-7.794 9.981-17.135 13.763-26.9 3.164-9.652 4.493-20.259 4.262-30.817-0.839-7.237-1.853-14.546-6.625-18.436-0.628-0.511-0.103-1.745 0.523-1.23 6.172 5.08 11.989 8.228 11.378 19.967-0.838 11.398-4.266 21.479-7.91 31.651-3.481 10.308-7.982 19.875-13.518 28.307-4.097 6.282-8.391 12.295-13.053 17.776-1.504 1.804-3.259 4.251-5.192 4.518-3.771 0.52-5.203-1.774-3.057-6.109z"/>
  7 +<path transform="matrix(-.93883 .34438 -.34438 -.93883 137.86 193.25)" d="m56.132 155.23c0.635-3.32 2.923-5.701 4.524-8.368 3.998-7.372 6.32-15.714 8.23-24.463 1.384-10.176 1.27-20.395-0.818-30.327-1.702-8.29-5.057-15.61-9.546-21.502-4.8-6.012-10.501-6.777-16.663-5.738-4.246 0.903-7.783 3.486-11.386 6.533-0.622 0.525-1.157-0.696-0.536-1.221 3.703-3.123 7.302-6.569 11.35-8.8 7.524-3.4 14.874-4.149 21.552 2.842 5.589 7.241 9.192 15.937 10.674 26.452 0.83 11.103 0.342 22.047-2.541 32.599-1.807 9.077-3.929 18.257-7.181 26.536-1.27 3.272-2.451 7.326-4.982 8.652-2.336 1.224-3.317 0.154-2.677-3.195z"/>
  8 +<path transform="matrix(-.93883 .34438 -.34438 -.93883 67.247 363.68)" d="m-35.77 230.76c1.777-2 2.854-4.804 4.032-7.47 3.048-7.088 6.679-13.621 10.417-20.021 5.366-9.286 11.343-17.809 17.501-26.073 6.194-6.804 10.988-14.995 15.729-23.627 4.34-9.341 9.704-13.337 17.398-9.554 4 2.826 5.347 8.1 7.349 13.252 0.537 0.6 1.075 1.2 1.613 1.8 0.567 0.633 0.61 0.878 0 1.429l-1.995 1.803c-3.99 3.34-8.669 3.103-12.833 0.091-1.358-4.289-4.819-2.977-7.923-2.15-7.444 3.812-13.235 9.853-18.623 17.983-6.128 8.224-12.077 16.704-17.416 25.945-3.711 6.352-7.315 12.835-10.34 19.869-1.16 2.625-2.538 5.175-3.104 8.189-0.373 1.985-2.952-0.173-1.805-1.466z"/>
  9 +<path transform="matrix(-.93883 .34438 -.34438 -.93883 279.68 195.61)" d="m165.02 66.804c-1.712-0.206-3.438-0.496-5.166-0.664-5.346 0.072-10.555 2.275-15.616 4.474-10.085 5.703-19.023 14.378-27.706 23.349-11.805 12.584-22.111 27.553-29.942 45.121-5.798 12.466-0.34 26.272-2.488 38.906 0.813 1.665 1.625 3.329 2.438 4.994 0.408 0.836-0.448 1.637-0.854 0.799-0.842-1.741-1.685-3.482-2.527-5.222-10.137-10.78-4.137-28.284 2.362-40.433 8.347-17.284 18.382-32.739 30.396-45.311 8.758-9.046 17.776-17.788 27.948-23.534 5.073-3.289 10.252-6.137 15.773-7.606 1.916-0.434 3.954-0.89 5.82-0.08 2.549 1.107 2.223 5.527-0.438 5.207z"/>
  10 +<path transform="matrix(-.93883 .34438 -.34438 -.93883 33.825 247.67)" d="m-38.016 157.73c1.783-2.673 3.655-5.263 5.628-7.68 5.39-6.093 10.037-13.142 14.855-20.074 4.935-8.984 11.245-16.382 17.193-24.065 7.443-8.929 14.057-11.264 23.605-8.407 1.346-1.405 2.693-2.809 4.039-4.214 0.582-0.607 1.201 0.536 0.619 1.143-1.364 1.42-2.727 2.841-4.09 4.262-2.289 13.649-6.966 20.418-16.407 25.323-7.494 3.38-14.664 7.729-22.075 11.396-6.159 4.265-12.207 8.653-17.014 15.65-1.666 2.588-3.3 5.113-4.102 8.459-0.579 2.418-3.497 0.076-2.251-1.793z"/>
  11 +<path transform="matrix(-.93883 .34438 -.34438 -.93883 197.82 728.73)" d="m47.905 402.97c-1.562-1.164-3.086-2.496-4.659-3.673-3.598-3.491-7.544-6.22-11.515-8.783-3.93-2.765-8.066-4.938-11.82-8.162-3.172-2.582-5.281-6.066-6.147-11.001 0.585-7.465 6.772-8.208 11.079-9.304 5.818-1.844 11.759-1.688 17.671-1.244 4.121 0.259 7.894 1.423 10.986 5.34 3.07 5.856-0.768 9.517-4.678 10.729-0.693 0.383-1.387 0.766-2.081 1.149-0.676 0.374-1.056-0.957-0.379-1.328 0.659-0.361 1.319-0.722 1.978-1.083 1.335-1.944 2.502-3.598 2.463-6.299-2.04-3.891-4.938-5.877-8.416-6.754-5.751-1.187-11.597-0.723-17.292 0.875-3.206 1.459-6.481 2.811-8.017 7.267 0.491 3.723 1.891 6.435 4.171 8.789 3.569 3.374 7.348 6.262 11.29 8.712 3.918 2.745 7.862 5.476 11.987 7.578 1.762 1.152 3.691 1.976 5.196 3.733 1.669 1.949 0.104 4.891-1.817 3.459z"/>
  12 +<path transform="matrix(-.31396 .94944 -.94944 -.31396 181.23 -8.6861)" d="m113.22 89.662c3.682-2.64 7.401-4.946 10.814-8.333 7.292-7.706 13.461-16.622 18.815-26.897 6.144-11.734 8.027-25.172 8.205-39.318-1.035-14.807-6.545-26.431-13.862-36.822-8.917-10.631-19.409-18.044-30.877-21.564-12.697-3.316-25.242-0.54-37.499 4.226-11.326 5.003-20.703 14.251-27.931 27.125-6.694 14.171-4.901 28.649-0.664 43.476 6.571 17.61 16.427 32.242 25.496 47.405 9.959 15.316 17.759 32.687 24.23 51.128 2.215 11.608 7.09 24.223 5.89 36.043-0.101 1 0.926 1.197 1.026 0.196 1.466-14.672 4.445-25.5-2.238-39.515-7.097-18.427-16.485-34.794-24.985-51.999-7.884-15.28-16.09-30.487-22.051-47.404-3.48-11.296-4.986-22.39-0.929-33.914 5.383-12.87 13.403-21.39 23.474-26.717 11.425-5.428 23.302-7.564 35.314-4.687 10.997 3.383 21.513 7.34 29.488 19.149 6.45 9.636 11.442 20.581 12.164 34 0.644 13.135-1.89 25.21-7.172 36.234-5.19 9.533-11.371 18.163-18.437 25.063-2.918 2.996-5.753 7.369-9.363 8.439-2.468 0.732-1.147 6.293 1.092 4.686z"/>
  13 +<path transform="matrix(-.31396 .94944 -.94944 -.31396 331.01 -201.78)" d="m239.12-99.987c-3.606-2.521-7.495-3.692-11.427-4.791-8.183-1.808-16.441-1.26-24.571 0.647-7.948 3.009-13.754 10.197-19.111 18.422-4.719 8.883-6.087 17.81-3.126 28.067 3.938 11.008 11.901 17.081 19.124 23.448 8.911 7.348 18.083 14.049 27.178 20.945 10.474 7.148 19.855 16.517 28.976 26.481 10.456 11.945 18.879 26.559 26.035 42.366 7.101 14.863 10.666 31.666 12.792 49.021 2.018 13.044 0.111 25.416-3.155 37.66-0.253 0.948 0.72 1.441 0.972 0.493 3.309-12.451 4.924-25.319 4.634-38.638-1.571-18.131-6.205-34.791-13.311-50.239-7.532-15.88-15.432-31.568-25.853-44.17-8.932-10.735-18.561-20.367-28.771-28.675-8.866-6.999-17.867-13.788-26.188-21.99-5.786-5.724-11.508-11.775-14.956-20.597-1.641-6.585-2.097-12.873 0.607-19.171 3.418-8.417 8.933-14.17 15.347-17.901 7.354-4.541 15.001-6.051 22.95-3.518 3.703 1.237 7.419 2.686 10.835 5.064 1.485 1.034 2.502-1.887 1.019-2.924z"/>
  14 +<path transform="matrix(-.31396 .94944 -.94944 -.31396 344.56 -204.23)" d="m267.09 67.394c-1.204-2.418-3.473-3.423-5.386-4.619-5.344-3.456-9.905-8.562-14.167-14.109-5.808-7.794-10.045-17.135-13.851-26.9-3.185-9.652-4.522-20.259-4.29-30.817 0.844-7.237 1.865-14.546 6.668-18.435 0.632-0.512 0.103-1.746-0.527-1.231-6.211 5.08-12.066 8.228-11.45 19.967 0.843 11.398 4.293 21.48 7.96 31.651 3.503 10.308 8.033 19.875 13.605 28.307 4.123 6.282 8.444 12.295 13.136 17.776 1.514 1.804 3.279 4.252 5.225 4.518 3.795 0.52 5.236-1.774 3.077-6.108z"/>
  15 +<path transform="matrix(-.31396 .94944 -.94944 -.31396 186.87 -19.845)" d="m96.213 103.95c-0.639-3.321-2.941-5.701-4.553-8.369-4.023-7.371-6.361-15.713-8.283-24.462-1.392-10.176-1.278-20.395 0.823-30.327 1.713-8.29 5.09-15.61 9.608-21.503 4.83-6.012 10.568-6.776 16.769-5.738 4.273 0.904 7.833 3.487 11.459 6.533 0.626 0.526 1.165-0.695 0.539-1.22-3.726-3.123-7.348-6.569-11.422-8.8-7.572-3.4-14.97-4.15-21.69 2.842-5.625 7.241-9.251 15.937-10.743 26.451-0.835 11.103-0.343 22.048 2.558 32.6 1.818 9.077 3.954 18.257 7.227 26.536 1.278 3.271 2.466 7.326 5.014 8.652 2.35 1.223 3.338 0.154 2.694-3.195z"/>
  16 +<path transform="matrix(-.31396 .94944 -.94944 -.31396 237.89 -163.54)" d="m215.36 47.125c-1.788-2.001-2.872-4.804-4.057-7.47-3.067-7.088-6.721-13.621-10.484-20.022-5.4-9.285-11.415-17.808-17.612-26.072-6.234-6.804-11.058-14.995-15.83-23.627-4.368-9.341-9.766-13.337-17.509-9.554-4.026 2.826-5.382 8.1-7.396 13.252l-1.623 1.8c-0.571 0.633-0.615 0.877-1e-3 1.428 0.67 0.601 1.339 1.202 2.008 1.803 4.016 3.341 8.725 3.103 12.915 0.092 1.367-4.289 4.85-2.977 7.973-2.15 7.493 3.812 13.321 9.853 18.743 17.983 6.167 8.224 12.154 16.704 17.527 25.945 3.735 6.351 7.362 12.834 10.406 19.869 1.167 2.625 2.555 5.175 3.124 8.188 0.375 1.986 2.971-0.172 1.816-1.465z"/>
  17 +<path transform="matrix(-.31396 .94944 -.94944 -.31396 274.81 57.797)" d="m73.7 72.344c1.723-0.206 3.46-0.496 5.199-0.664 5.38 0.071 10.622 2.275 15.716 4.474 10.149 5.703 19.144 14.378 27.883 23.349 11.88 12.585 22.253 27.553 30.133 45.122 5.836 12.465 0.343 26.271 2.504 38.905-0.818 1.665-1.635 3.33-2.453 4.994-0.411 0.836 0.45 1.638 0.859 0.799 0.848-1.741 1.696-3.481 2.544-5.222 10.201-10.78 4.163-28.283-2.378-40.433-8.4-17.284-18.499-32.738-30.59-45.311-8.814-9.047-17.889-17.788-28.127-23.534-5.105-3.289-10.317-6.137-15.873-7.607-1.929-0.433-3.98-0.889-5.857-0.079-2.566 1.106-2.237 5.527 0.44 5.207z"/>
  18 +<path transform="matrix(-.31396 .94944 -.94944 -.31396 152.06 -110.21)" d="m148.99 30.724c-1.794-2.673-3.679-5.263-5.664-7.68-5.425-6.093-10.101-13.142-14.95-20.074-4.967-8.984-11.317-16.382-17.302-24.065-7.491-8.929-14.148-11.264-23.756-8.407-1.356-1.405-2.711-2.809-4.066-4.214-0.586-0.607-1.208 0.536-0.622 1.142 1.372 1.421 2.744 2.842 4.116 4.263 2.304 13.649 7.01 20.418 16.511 25.323 7.542 3.38 14.759 7.729 22.217 11.396 6.198 4.265 12.285 8.653 17.122 15.65 1.677 2.588 3.321 5.113 4.128 8.459 0.583 2.418 3.52 0.076 2.266-1.793z"/>
  19 +<path transform="matrix(-.31396 .94944 -.94944 -.31396 519.36 -314.16)" d="m359.38 51.593c1.571-1.164 3.106-2.495 4.688-3.672 3.621-3.492 7.592-6.22 11.589-8.784 3.955-2.765 8.117-4.938 11.896-8.161 3.192-2.583 5.314-6.067 6.186-11.002-0.59-7.465-6.816-8.207-11.15-9.304-5.855-1.844-11.834-1.688-17.784-1.243-4.147 0.258-7.945 1.422-11.056 5.34-3.09 5.856 0.773 9.516 4.707 10.728 0.699 0.383 1.397 0.767 2.095 1.15 0.68 0.373 1.063-0.958 0.381-1.328-0.663-0.362-1.327-0.723-1.99-1.084-1.344-1.944-2.518-3.597-2.479-6.299 2.053-3.891 4.969-5.876 8.47-6.753 5.787-1.187 11.671-0.724 17.402 0.874 3.226 1.46 6.522 2.812 8.068 7.267-0.493 3.724-1.903 6.435-4.197 8.789-3.592 3.375-7.395 6.262-11.363 8.712-3.942 2.745-7.912 5.477-12.063 7.579-1.773 1.152-3.714 1.976-5.229 3.733-1.68 1.948-0.105 4.891 1.829 3.458z"/>
  20 +</g>
  21 +</svg>
@@ -24,6 +24,7 @@ import 'package:path_provider/path_provider.dart'; @@ -24,6 +24,7 @@ import 'package:path_provider/path_provider.dart';
24 import 'package:pdf/pdf.dart'; 24 import 'package:pdf/pdf.dart';
25 import 'package:pdf/widgets.dart' as pw; 25 import 'package:pdf/widgets.dart' as pw;
26 import 'package:printing/printing.dart'; 26 import 'package:printing/printing.dart';
  27 +import 'package:printing_demo/certificate.dart';
27 import 'package:url_launcher/url_launcher.dart' as ul; 28 import 'package:url_launcher/url_launcher.dart' as ul;
28 29
29 import 'calendar.dart'; 30 import 'calendar.dart';
@@ -33,6 +34,15 @@ import 'report.dart'; @@ -33,6 +34,15 @@ import 'report.dart';
33 import 'resume.dart'; 34 import 'resume.dart';
34 35
35 class MyApp extends StatefulWidget { 36 class MyApp extends StatefulWidget {
  37 + static const examples = <Example>[
  38 + Example('RÉSUMÉ', 'resume.dart', generateResume),
  39 + Example('DOCUMENT', 'document.dart', generateDocument),
  40 + Example('INVOICE', 'invoice.dart', generateInvoice),
  41 + Example('REPORT', 'report.dart', generateReport),
  42 + Example('CALENDAR', 'calendar.dart', generateCalendar),
  43 + Example('CERTIFICATE', 'certificate.dart', generateCertificate),
  44 + ];
  45 +
36 @override 46 @override
37 MyAppState createState() { 47 MyAppState createState() {
38 return MyAppState(); 48 return MyAppState();
@@ -40,9 +50,6 @@ class MyApp extends StatefulWidget { @@ -40,9 +50,6 @@ class MyApp extends StatefulWidget {
40 } 50 }
41 51
42 class MyAppState extends State<MyApp> with SingleTickerProviderStateMixin { 52 class MyAppState extends State<MyApp> with SingleTickerProviderStateMixin {
43 - List<Tab>? _myTabs;  
44 - List<LayoutCallback>? _tabGen;  
45 - List<String>? _tabUrl;  
46 int _tab = 0; 53 int _tab = 0;
47 TabController? _tabController; 54 TabController? _tabController;
48 55
@@ -57,33 +64,9 @@ class MyAppState extends State<MyApp> with SingleTickerProviderStateMixin { @@ -57,33 +64,9 @@ class MyAppState extends State<MyApp> with SingleTickerProviderStateMixin {
57 Future<void> _init() async { 64 Future<void> _init() async {
58 final info = await Printing.info(); 65 final info = await Printing.info();
59 66
60 - _myTabs = const <Tab>[  
61 - Tab(text: 'RÉSUMÉ'),  
62 - Tab(text: 'DOCUMENT'),  
63 - Tab(text: 'INVOICE'),  
64 - Tab(text: 'REPORT'),  
65 - Tab(text: 'CALENDAR'),  
66 - ];  
67 -  
68 - _tabGen = const <LayoutCallback>[  
69 - generateResume,  
70 - generateDocument,  
71 - generateInvoice,  
72 - generateReport,  
73 - generateCalendar,  
74 - ];  
75 -  
76 - _tabUrl = const <String>[  
77 - 'resume.dart',  
78 - 'document.dart',  
79 - 'invoice.dart',  
80 - 'report.dart',  
81 - 'calendar.dart',  
82 - ];  
83 -  
84 _tabController = TabController( 67 _tabController = TabController(
85 vsync: this, 68 vsync: this,
86 - length: _myTabs!.length, 69 + length: MyApp.examples.length,
87 initialIndex: _tab, 70 initialIndex: _tab,
88 ); 71 );
89 _tabController!.addListener(() { 72 _tabController!.addListener(() {
@@ -155,12 +138,13 @@ class MyAppState extends State<MyApp> with SingleTickerProviderStateMixin { @@ -155,12 +138,13 @@ class MyAppState extends State<MyApp> with SingleTickerProviderStateMixin {
155 title: const Text('Pdf Printing Example'), 138 title: const Text('Pdf Printing Example'),
156 bottom: TabBar( 139 bottom: TabBar(
157 controller: _tabController, 140 controller: _tabController,
158 - tabs: _myTabs!, 141 + tabs: MyApp.examples.map<Tab>((e) => Tab(text: e.name)).toList(),
  142 + isScrollable: true,
159 ), 143 ),
160 ), 144 ),
161 body: PdfPreview( 145 body: PdfPreview(
162 maxPageWidth: 700, 146 maxPageWidth: 700,
163 - build: _tabGen![_tab], 147 + build: MyApp.examples[_tab].builder,
164 actions: actions, 148 actions: actions,
165 onPrinted: _showPrintedToast, 149 onPrinted: _showPrintedToast,
166 onShared: _showSharedToast, 150 onShared: _showSharedToast,
@@ -175,7 +159,17 @@ class MyAppState extends State<MyApp> with SingleTickerProviderStateMixin { @@ -175,7 +159,17 @@ class MyAppState extends State<MyApp> with SingleTickerProviderStateMixin {
175 159
176 void _showSources() { 160 void _showSources() {
177 ul.launch( 161 ul.launch(
178 - 'https://github.com/DavBfr/dart_pdf/blob/master/demo/lib/${_tabUrl![_tab]}', 162 + 'https://github.com/DavBfr/dart_pdf/blob/master/demo/lib/${MyApp.examples[_tab].file}',
179 ); 163 );
180 } 164 }
181 } 165 }
  166 +
  167 +class Example {
  168 + const Example(this.name, this.file, this.builder);
  169 +
  170 + final String name;
  171 +
  172 + final String file;
  173 +
  174 + final LayoutCallback builder;
  175 +}
  1 +/*
  2 + * Copyright (C) 2017, David PHAM-VAN <dev.nfet.net@gmail.com>
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + */
  16 +
  17 +import 'dart:io';
  18 +import 'dart:typed_data';
  19 +
  20 +import 'package:flutter/material.dart';
  21 +import 'package:flutter/services.dart';
  22 +import 'package:pdf/pdf.dart';
  23 +import 'package:vector_math/vector_math_64.dart';
  24 +import 'package:pdf/widgets.dart' as pw;
  25 +
  26 +final _cache = <String, Uint8List>{};
  27 +
  28 +Future<Uint8List> _download(String url) async {
  29 + if (!_cache.containsKey(url)) {
  30 + print('Downloading $url');
  31 + final client = HttpClient();
  32 + final request = await client.getUrl(Uri.parse(url));
  33 + final response = await request.close();
  34 + final builder = await response.fold(
  35 + BytesBuilder(), (BytesBuilder b, List<int> d) => b..add(d));
  36 + final List<int> data = builder.takeBytes();
  37 + _cache[url] = Uint8List.fromList(data);
  38 + }
  39 +
  40 + return _cache[url]!;
  41 +}
  42 +
  43 +Future<pw.Font> _downloadFont(String url) async {
  44 + final data = await _download(url);
  45 + return pw.Font.ttf(data.buffer.asByteData());
  46 +}
  47 +
  48 +Future<Uint8List> generateCertificate(PdfPageFormat pageFormat) async {
  49 + final lorem = pw.LoremText();
  50 + final pdf = pw.Document();
  51 +
  52 + final libreBaskerville = await _downloadFont(
  53 + 'https://fonts.gstatic.com/s/librebaskerville/v9/kmKnZrc3Hgbbcjq75U4uslyuy4kn0pNe.ttf');
  54 + final libreBaskervilleItalic = await _downloadFont(
  55 + 'https://fonts.gstatic.com/s/librebaskerville/v9/kmKhZrc3Hgbbcjq75U4uslyuy4kn0qNcaxY.ttf');
  56 + final libreBaskervilleBold = await _downloadFont(
  57 + 'https://fonts.gstatic.com/s/librebaskerville/v9/kmKiZrc3Hgbbcjq75U4uslyuy4kn0qviTjYw.ttf');
  58 + final robotoLight = pw.Font.ttf(await rootBundle.load('assets/roboto3.ttf'));
  59 + final medail = await rootBundle.loadString('assets/medail.svg');
  60 + final swirls = await rootBundle.loadString('assets/swirls.svg');
  61 + final swirls1 = await rootBundle.loadString('assets/swirls1.svg');
  62 + final swirls2 = await rootBundle.loadString('assets/swirls2.svg');
  63 + final swirls3 = await rootBundle.loadString('assets/swirls3.svg');
  64 + final garland = await rootBundle.loadString('assets/garland.svg');
  65 +
  66 + pdf.addPage(
  67 + pw.Page(
  68 + build: (context) => pw.Column(
  69 + children: [
  70 + pw.Spacer(flex: 2),
  71 + pw.RichText(
  72 + text: pw.TextSpan(
  73 + style: pw.TextStyle(
  74 + fontWeight: pw.FontWeight.bold,
  75 + fontSize: 25,
  76 + ),
  77 + children: [
  78 + pw.TextSpan(text: 'CERTIFICATE '),
  79 + pw.TextSpan(
  80 + text: 'of',
  81 + style: pw.TextStyle(
  82 + fontStyle: pw.FontStyle.italic,
  83 + fontWeight: pw.FontWeight.normal,
  84 + ),
  85 + ),
  86 + pw.TextSpan(text: ' ACHIEVEMENT'),
  87 + ]),
  88 + ),
  89 + pw.Spacer(),
  90 + pw.Text(
  91 + 'THIS ACKNOWLEDGES THAT',
  92 + style: pw.TextStyle(
  93 + font: robotoLight,
  94 + fontSize: 10,
  95 + letterSpacing: 2,
  96 + wordSpacing: 2,
  97 + ),
  98 + ),
  99 + pw.SizedBox(
  100 + width: 300,
  101 + child: pw.Divider(color: PdfColors.grey, thickness: 1.5),
  102 + ),
  103 + pw.Text(
  104 + 'Louis Mitchell',
  105 + style: pw.TextStyle(
  106 + fontWeight: pw.FontWeight.bold,
  107 + fontSize: 20,
  108 + ),
  109 + ),
  110 + pw.SizedBox(
  111 + width: 300,
  112 + child: pw.Divider(color: PdfColors.grey, thickness: 1.5),
  113 + ),
  114 + pw.Text(
  115 + 'HAS SUCCESSFULLY COMPLETED THE',
  116 + style: pw.TextStyle(
  117 + font: robotoLight,
  118 + fontSize: 10,
  119 + letterSpacing: 2,
  120 + wordSpacing: 2,
  121 + ),
  122 + ),
  123 + pw.SizedBox(height: 10),
  124 + pw.Row(
  125 + mainAxisAlignment: pw.MainAxisAlignment.center,
  126 + children: [
  127 + pw.SvgImage(
  128 + svg: swirls,
  129 + height: 10,
  130 + ),
  131 + pw.Padding(
  132 + padding: pw.EdgeInsets.symmetric(horizontal: 10),
  133 + child: pw.Text(
  134 + 'Rubix Cube Challenge',
  135 + style: pw.TextStyle(
  136 + fontSize: 10,
  137 + ),
  138 + ),
  139 + ),
  140 + pw.Transform(
  141 + transform: Matrix4.diagonal3Values(-1, 1, 1),
  142 + adjustLayout: true,
  143 + child: pw.SvgImage(
  144 + svg: swirls,
  145 + height: 10,
  146 + ),
  147 + ),
  148 + ],
  149 + ),
  150 + pw.Spacer(),
  151 + pw.SvgImage(
  152 + svg: swirls2,
  153 + width: 150,
  154 + ),
  155 + pw.Spacer(),
  156 + pw.Row(
  157 + crossAxisAlignment: pw.CrossAxisAlignment.start,
  158 + children: [
  159 + pw.Flexible(
  160 + child: pw.Text(
  161 + lorem.paragraph(40),
  162 + style: pw.TextStyle(fontSize: 6),
  163 + textAlign: pw.TextAlign.justify,
  164 + ),
  165 + ),
  166 + pw.SizedBox(width: 100),
  167 + pw.SvgImage(
  168 + svg: medail,
  169 + width: 100,
  170 + ),
  171 + ],
  172 + ),
  173 + ],
  174 + ),
  175 + pageTheme: pw.PageTheme(
  176 + pageFormat: pageFormat,
  177 + theme: pw.ThemeData.withFont(
  178 + base: libreBaskerville,
  179 + italic: libreBaskervilleItalic,
  180 + bold: libreBaskervilleBold,
  181 + ),
  182 + buildBackground: (context) => pw.FullPage(
  183 + ignoreMargins: true,
  184 + child: pw.Container(
  185 + margin: pw.EdgeInsets.all(10),
  186 + decoration: pw.BoxDecoration(
  187 + border:
  188 + pw.Border.all(color: PdfColor.fromInt(0xffe435), width: 1),
  189 + ),
  190 + child: pw.Container(
  191 + margin: pw.EdgeInsets.all(5),
  192 + decoration: pw.BoxDecoration(
  193 + border:
  194 + pw.Border.all(color: PdfColor.fromInt(0xffe435), width: 5),
  195 + ),
  196 + width: double.infinity,
  197 + height: double.infinity,
  198 + child: pw.Stack(
  199 + alignment: pw.Alignment.center,
  200 + children: [
  201 + pw.Positioned(
  202 + top: 5,
  203 + child: pw.SvgImage(
  204 + svg: swirls1,
  205 + height: 60,
  206 + ),
  207 + ),
  208 + pw.Positioned(
  209 + bottom: 5,
  210 + child: pw.Transform(
  211 + transform: Matrix4.diagonal3Values(1, -1, 1),
  212 + adjustLayout: true,
  213 + child: pw.SvgImage(
  214 + svg: swirls1,
  215 + height: 60,
  216 + ),
  217 + ),
  218 + ),
  219 + pw.Positioned(
  220 + top: 5,
  221 + left: 5,
  222 + child: pw.SvgImage(
  223 + svg: swirls3,
  224 + height: 160,
  225 + ),
  226 + ),
  227 + pw.Positioned(
  228 + top: 5,
  229 + right: 5,
  230 + child: pw.Transform(
  231 + transform: Matrix4.diagonal3Values(-1, 1, 1),
  232 + adjustLayout: true,
  233 + child: pw.SvgImage(
  234 + svg: swirls3,
  235 + height: 160,
  236 + ),
  237 + ),
  238 + ),
  239 + pw.Positioned(
  240 + bottom: 5,
  241 + left: 5,
  242 + child: pw.Transform(
  243 + transform: Matrix4.diagonal3Values(1, -1, 1),
  244 + adjustLayout: true,
  245 + child: pw.SvgImage(
  246 + svg: swirls3,
  247 + height: 160,
  248 + ),
  249 + ),
  250 + ),
  251 + pw.Positioned(
  252 + bottom: 5,
  253 + right: 5,
  254 + child: pw.Transform(
  255 + transform: Matrix4.diagonal3Values(-1, -1, 1),
  256 + adjustLayout: true,
  257 + child: pw.SvgImage(
  258 + svg: swirls3,
  259 + height: 160,
  260 + ),
  261 + ),
  262 + ),
  263 + pw.Padding(
  264 + padding: pw.EdgeInsets.only(
  265 + top: 120,
  266 + left: 80,
  267 + right: 80,
  268 + bottom: 80,
  269 + ),
  270 + child: pw.SvgImage(
  271 + svg: garland,
  272 + ),
  273 + ),
  274 + ],
  275 + ),
  276 + ),
  277 + ),
  278 + ),
  279 + ),
  280 + ),
  281 + );
  282 +
  283 + return pdf.save();
  284 +}