Преглед изворни кода

Make worded questions work again..

Gregory Huxley пре 1 недеља
родитељ
комит
6df801a403
100 измењених фајлова са 262 додато и 167 уклоњено
  1. 4 1
      README.md
  2. 8 8
      TK2.php
  3. 4 8
      answerChecker2.php
  4. 180 150
      questionGenerators/math/math_word_problems.php
  5. BIN
      resources/flags/AFG.png
  6. 0 0
      resources/flags/AFG.svg
  7. 0 0
      resources/flags/AGO.svg
  8. BIN
      resources/flags/ALB.png
  9. 0 0
      resources/flags/ALB.svg
  10. 0 0
      resources/flags/AND.svg
  11. 1 0
      resources/flags/ARE.svg
  12. 0 0
      resources/flags/ARG.svg
  13. 1 0
      resources/flags/ARM.svg
  14. 1 0
      resources/flags/ATG.svg
  15. 1 0
      resources/flags/AUS.svg
  16. 1 0
      resources/flags/AUT.svg
  17. 1 0
      resources/flags/AZE.svg
  18. 1 0
      resources/flags/BDI.svg
  19. 1 0
      resources/flags/BEL.svg
  20. 1 0
      resources/flags/BEN.svg
  21. 1 0
      resources/flags/BFA.svg
  22. 1 0
      resources/flags/BGD.svg
  23. 1 0
      resources/flags/BGR.svg
  24. 1 0
      resources/flags/BHR.svg
  25. 1 0
      resources/flags/BHS.svg
  26. 1 0
      resources/flags/BIH.svg
  27. 1 0
      resources/flags/BLR.svg
  28. 0 0
      resources/flags/BLZ.svg
  29. 0 0
      resources/flags/BOL.svg
  30. 0 0
      resources/flags/BRA.svg
  31. 1 0
      resources/flags/BRB.svg
  32. 0 0
      resources/flags/BRN.svg
  33. 0 0
      resources/flags/BTN.svg
  34. 1 0
      resources/flags/BWA.svg
  35. 1 0
      resources/flags/CAF.svg
  36. 1 0
      resources/flags/CAN.svg
  37. 1 0
      resources/flags/CHE.svg
  38. 1 0
      resources/flags/CHL.svg
  39. 1 0
      resources/flags/CHN.svg
  40. 1 0
      resources/flags/CIV.svg
  41. 1 0
      resources/flags/CMR.svg
  42. 1 0
      resources/flags/COD.svg
  43. 1 0
      resources/flags/COG.svg
  44. 1 0
      resources/flags/COL.svg
  45. 1 0
      resources/flags/COM.svg
  46. 1 0
      resources/flags/CPV.svg
  47. 0 0
      resources/flags/CRI.svg
  48. 1 0
      resources/flags/CUB.svg
  49. 0 0
      resources/flags/CYP.svg
  50. 1 0
      resources/flags/CZE.svg
  51. 1 0
      resources/flags/DEU.svg
  52. 1 0
      resources/flags/DJI.svg
  53. 0 0
      resources/flags/DMA.svg
  54. 1 0
      resources/flags/DNK.svg
  55. 0 0
      resources/flags/DOM.svg
  56. BIN
      resources/flags/DZA.png
  57. 1 0
      resources/flags/DZA.svg
  58. 0 0
      resources/flags/ECU.svg
  59. 0 0
      resources/flags/EGY.svg
  60. 0 0
      resources/flags/ERI.svg
  61. 0 0
      resources/flags/ESP.svg
  62. 1 0
      resources/flags/EST.svg
  63. 1 0
      resources/flags/ETH.svg
  64. 1 0
      resources/flags/FIN.svg
  65. 0 0
      resources/flags/FJI.svg
  66. 1 0
      resources/flags/FRA.svg
  67. 1 0
      resources/flags/FSM.svg
  68. 1 0
      resources/flags/GAB.svg
  69. 1 0
      resources/flags/GBR.svg
  70. 1 0
      resources/flags/GEO.svg
  71. 1 0
      resources/flags/GHA.svg
  72. 1 0
      resources/flags/GIN.svg
  73. 1 0
      resources/flags/GMB.svg
  74. 1 0
      resources/flags/GNB.svg
  75. 0 0
      resources/flags/GNQ.svg
  76. 1 0
      resources/flags/GRC.svg
  77. 1 0
      resources/flags/GRD.svg
  78. 0 0
      resources/flags/GTM.svg
  79. 1 0
      resources/flags/GUY.svg
  80. 1 0
      resources/flags/HKG.svg
  81. 1 0
      resources/flags/HND.svg
  82. 0 0
      resources/flags/HRV.svg
  83. 0 0
      resources/flags/HTI.svg
  84. 1 0
      resources/flags/HUN.svg
  85. 1 0
      resources/flags/IDN.svg
  86. 1 0
      resources/flags/IND.svg
  87. 1 0
      resources/flags/IRL.svg
  88. 1 0
      resources/flags/IRN.svg
  89. 1 0
      resources/flags/IRQ.svg
  90. 1 0
      resources/flags/ISL.svg
  91. 1 0
      resources/flags/ISR.svg
  92. 1 0
      resources/flags/ITA.svg
  93. 1 0
      resources/flags/JAM.svg
  94. 1 0
      resources/flags/JOR.svg
  95. 1 0
      resources/flags/JPN.svg
  96. 0 0
      resources/flags/KAZ.svg
  97. 1 0
      resources/flags/KEN.svg
  98. 0 0
      resources/flags/KGZ.svg
  99. 0 0
      resources/flags/KHM.svg
  100. 0 0
      resources/flags/KIR.svg

+ 4 - 1
README.md

@@ -71,7 +71,10 @@ generator in `questionGenerators/`. A subject unlocks at a difficulty threshold:
 | anagrams | 4,000,000 |
 
 Division, rounding, worded problems and the geography/history/health subjects exist or are
-stubbed but are switched off (weight 0 in `$subjectsList`).
+stubbed but are switched off (the `0` in `$subjectsList` in `TK2.php`). To switch one on, change
+that `0` to a `1`. Worded problems (`word_problems`) would unlock at 250,000 and use whole-number
+answers only: pillow cases, sponges, an elephant's dinner, sandwiches, marbles, a day at the beach,
+cupcakes and sugar bags. The numbers get bigger as the student's accuracy and number of answers grow.
 
 **Answers.** The expected answer never goes to the browser. The generator stores it in the
 `tkPendingAnswer` table (`TkAnswerStore.php`) and the form carries a random single-use token

+ 8 - 8
TK2.php

@@ -25,6 +25,8 @@
  *  - showMessage(): user name escaped
  *  - someone with neither the student nor the teacher class now sees a
  *    message instead of an empty page
+ *  - new word_problems subject (switched off: see $subjectsList); the old
+ *    worded_* subjects were mapped to the spelling generator and are gone
  */
 require_once __DIR__ . '/TkAnswerStore.php';
 
@@ -39,10 +41,7 @@ class TK2 {
             ['multiplication', 1, 200000], // Numeracy times'
             ['division', 0, 0], // Numeracy deviding
             ['rounding', 0, 0], // Numeracy rounding
-            ['worded_add', 0, 0], // Numeracy worded adding
-            ['worded_sub', 0, 0], // Numeracy worded minusing
-            ['worded_mult', 0, 0], // Numeracy worded timesing
-            ['worded_devi', 0, 0], // Numeracy worded deviding
+            ['word_problems', 0, 250000], // Worded maths problems: change the 0 to a 1 to switch them on
         ],
         // English
         [['spelling', 1, 0], // Plain spelling
@@ -171,10 +170,11 @@ class TK2 {
                 $questionGen = new numeracy2($this->data['user'], $this->data['selectedSubject']);
                 $questionGen->getNumeracy();
                 break;
-            case 'worded_add':
-            case 'worded_sub':
-            case 'worded_mult':
-            case 'worded_devi':
+            case 'word_problems':
+                require_once __DIR__ . '/questionGenerators/math/math_word_problems.php';
+                $questionGen = new math_word_problems($this->data['user']);
+                $questionGen->getWordProblem();
+                break;
             case 'spelling':
                 require_once __DIR__ . '/questionGenerators/english/spelling2.php';
                 $questionGen = new spelling2($this->data['user']);

+ 4 - 8
answerChecker2.php

@@ -33,10 +33,7 @@ class answerChecker2 {
         'multiplication' => ['Solve the following equation. {QUESTION}.', "Congratulations '{USER_ANSWER}' was correct for Solve the following equation. '{ANSWER}'", "Sorry but '{USER_ANSWER}' was incorrect it should have been '{ANSWER}' for 'Solve the following equation in {QUESTION}'"],
         'division' => ['Solve the following equation. {QUESTION}.', "Congratulations '{USER_ANSWER}' was correct for Solve the following equation. '{ANSWER}'", "Sorry but '{USER_ANSWER}' was incorrect it should have been '{ANSWER}' for 'Solve the following equation in {QUESTION}'"],
         'rounding' => ['Round to the nearest 5 cents. {QUESTION}', "Congratulations '{USER_ANSWER}' was correct for rounding to the nearest 5 cents '{ANSWER}'", "Sorry but '{USER_ANSWER}' was incorrect it should have been '{ANSWER}' for 'Round {QUESTION} to the nearest 5 cents'"],
-        'worded_add' => [],
-        'worded_sub' => [],
-        'worded_mult' => [],
-        'worded_devi' => [],
+        'word_problems' => ['{QUESTION}', "Congratulations '{USER_ANSWER}' was correct for '{QUESTION}'", "Sorry but '{USER_ANSWER}' was incorrect it should have been '{ANSWER}' for '{QUESTION}'"],
         'anagrams' => ['Unjumble the letters to find the word. {QUESTION}.', "Congratulations '{USER_ANSWER}' was correct for Unjumble the letters '{ANSWER}'", "Sorry but '{USER_ANSWER}' was incorrect it should have been '{ANSWER}' for 'Unjumble the letters in {QUESTION}'"],
         'generalKnowledge' => [],
         'elements' => ['Fill in the missing element information. {QUESTION}', "Congratulations '{USER_ANSWER}' was correct for Fill in the missing element information '{ANSWER}'", "Sorry but '{USER_ANSWER}' was incorrect it should have been '{ANSWER}' for 'Fill in the missing element information in {QUESTION}'"],
@@ -63,12 +60,9 @@ class answerChecker2 {
             case 'multiplication':
             case 'division':
             case 'rounding':
+            case 'word_problems':
                 $this->checkGeneric($subject);
                 break;
-            case 'worded_add':
-            case 'worded_sub':
-            case 'worded_mult':
-            case 'worded_devi':
             case 'spelling':
                 $this->checkSpelling(); //Custom checker
                 break;
@@ -248,6 +242,8 @@ class answerChecker2 {
                     return 'You found <b>' . htmlspecialchars($usersAnswer) . '</b>. I was thinking of <b>' . $e . '</b>, but that is a real word too!';
                 }
                 return 'You unjumbled it: <b>' . $e . '</b>!';
+            case 'word_problems':
+                return 'The answer was <b>' . $e . '</b>.';
             case 'spelling':
                 return 'You spelled <b>' . $e . '</b> perfectly!';
             default:

+ 180 - 150
questionGenerators/math/math_word_problems.php

@@ -1,179 +1,209 @@
 <?php
 
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-
 /**
- * Description of Math_word_Problems
+ * Worded maths problems ("word_problems").
+ *
+ * Rewritten. What was wrong with the old version:
+ *  - it didn't work like the other generators: no form, no stored answer, no
+ *    constructor taking the user, and TK2 never called it (the worded_*
+ *    subjects were mapped to the spelling generator)
+ *  - answers came from eval() of a text expression and were cut to an integer
+ *    with (int), so most were wrong: ((7/2)*5) is 17.5, not 17
+ *  - the sponge problem ignored the sponge's starting mass
+ *  - difficulty() returned null for a new student, and the "diff" token in the
+ *    templates broke when it did
+ *  - `e107.e107_tkReport` hard-coded, user not escaped
  *
- * @author gregory
+ * Now every problem is built backwards from its answer, so the answer is
+ * always a whole number, there is no eval(), and the number ranges grow with
+ * the student's accuracy over the last month (and with how many they have
+ * answered, so one lucky answer doesn't jump to the hardest numbers).
  */
 class math_word_problems {
-   
-    public $state = "error";
-    private $debug = false;
-    private $sql;
+
+    const SUBJECT = 'word_problems';
+
     private $user;
-    private $difficultyValue;
-    private $returnData;
+    private $level = 0; // 0-100: how hard to make the numbers
+    private $names = ['Anna', 'George', 'Marie', 'Elliot', 'Paul', 'Stacey', 'Maureen', 'Priya', 'Sam', 'Mia'];
 
     /**
-     * Setup new numbers engine
-     * 
-     * @param bool $test Enable debug mode.
+     * @param string $user User to supply the question for.
      */
-    public function __construct($test = false) {
-       
-        if ($test) {
-            $this->debug = true;
-        }
-        $this->sql = e107::getDB();
-        $this->user = e107::getUser()->getLoginName();
-        $this->state = "ready";
+    public function __construct($user) {
+        $this->user = $user;
     }
 
-    public function getProblem() {
+    /**
+     * Make a problem, show it, and remember it as the student's open question.
+     */
+    public function getWordProblem() {
+        $problem = $this->getProblem();
+        $questionHtml = $this->htmlify($problem);
 
-        $this->difficultyValue = $this->difficulty();
-        
-        if($this->debug) {
-            $this->returnData['difficulty'] = $this->difficultyValue;            
-        }
-        
-        $this->questionAssembler();
-        
-        return $this->returnData;
-    }
-    
-    private function questionAssembler() { //return [ 'answer1'=>$solution['/'], 'question'=>$TempQuestion, 'type'=>__CLASS__];
-        
-        $questionIndexSelected = array_rand($this->questionData());
-        $question = $this->questionData()[$questionIndexSelected];
-        $this->returnData['question'] = $this->substitutor($question);
-        //print_a([__CLASS__.' '.__FUNCTION__=>['rawQuestion'=>$question,'processedQuestion'=>$this->returnData['question']]]);
+        $db = e107::getDb();
+        $db->delete('tkLastQuestion', "user = '" . $db->escape($this->user) . "'");
+        $db->insert('tkLastQuestion', ['user' => $this->user, 'LastQuestionHtml' => base64_encode($questionHtml)]);
+
+        e107::getRender()->tablerender('Word problems', $questionHtml);
     }
-    
-    private function questionData() { 
-        $wordedMath = [
-            ['{name1} used {int,1,1,diff} meters of cloth to sew {int,2,1,diff} pillow cases. How much cloth would be used to sew {int,3,2,diff} pillow cases?','(({int,1,1,diff}/{int,2,1,diff})*{int,3,2,diff})'],
-            //['A mother makes {int,1,1,diff} sandwiches for a party. Each child received {int,2,1,diff} sandwiches. How many children were at the party?','({int,1,1,diff}/{int,2,1,diff})'],
-            ['The mass of a sponge is {int,1,1,diff} g. When put in water it expanded and gained a mass of {int,2,1,diff} g. Find the mass difference if {int,3,1,diff} similar sponges were used in the experiment?','({int,2,1,diff}*{int,3,1,diff})'],
-            //['{name1} is {int,1,1,diff} years old. His brother is {int,2,1,diff} months older than him. How old is {name1}’s brother?','({int,1,1,diff}+({int,1,1,diff}/12))'],
-            ['An elephant eats {int,1,1,diff} kg of food a week. How much will it eat in {int,2,1,10} years?','(({int,1,1,diff}*52)*{int,2,1,10})'],
-//            ['A cake recipe uses 60 g of flour. How many cakes can I bake with 4.2 kg of flour?'],
-//            ['On a scale there is 88 grams on side A and 1.3 kg on side B. How much more weight do I need to put on side A to balance the scale?','()'],
-//            ['{name1} baked 400 cupcakes and she sold 2 fifths at the market. How many cupcakes does she have left?'],
-//            ['A baker baked 720 slices of pizza. He sold 5 nineths of the pizzas and threw away 45 slices. How many slices were left?'],
-//            ['A cake recipe uses 1 quarter kilogram of sugar. How many cakes can I bake with 750 grams of sugar?'],
-//            ['There were 280 marbles in a jar. {name1} dropped the jar and lost 3 quarters of the marbles. How many marbles were left?'],
-//            ['At the beach there were 675 people. One fifth were children and the rest were adults. How many adults were at the beach?'],
-//            ['{name1} is 56 years old and has a brother who is 84 months younger. How old is his brother?'],
-//            ['{name1} has to pack 28.35 kg of sugar into 10 bags equally. How much sugar would each bag contain?'],
-//            ['There was 310.4 kg of sand. It has to be divided into 100 tubs equally. How much sand would each tub contain?'],
-//            ['A packet contains 2.39 kg of flour. {name1} bought 1000 packets for her cake shop. How much flour does she have in total?'],
-        ];
-        return $wordedMath;
+
+    /**
+     * Make a problem without showing it.
+     *
+     * @return array ['answer1' => int, 'question' => string, 'type' => 'word_problems']
+     */
+    public function getProblem() {
+        $this->level = $this->difficulty();
+
+        $makers = ['pillowCases', 'sponges', 'elephant', 'sandwiches', 'marbles', 'beach', 'cupcakes', 'sugarBags'];
+        $maker = $makers[array_rand($makers)];
+        list($question, $answer) = $this->$maker();
+
+        return ['answer1' => (int) $answer, 'question' => $question, 'type' => self::SUBJECT];
     }
 
     /**
-     * Return the difficulty based on previously answered questions.
+     * How hard to make the numbers, 0-100: last month's accuracy, scaled up
+     * over the first 30 answers.
      *
-     * @return int Difficulty as percent.
+     * @return float
      */
     private function difficulty() {
+        $db = e107::getDb();
+        $stats = $db->retrieve(
+            "SELECT (SUM(correct)/COUNT(correct)*100) AS percent, COUNT(correct) AS count
+             FROM `" . MPREFIX . "tkReport`
+             WHERE answereddatestamp >= UNIX_TIMESTAMP(NOW() - INTERVAL 1 MONTH)
+             AND username = '" . $db->escape($this->user) . "' AND subject = '" . self::SUBJECT . "'"
+        );
 
-        $query = "SELECT (SUM(correct)/COUNT(correct)*100) as percent
-            FROM e107.`e107_tkReport` WHERE 
-            answereddatestamp >= unix_timestamp((NOW()) - INTERVAL 1 MONTH)
-            AND username = '$this->user' AND subject = '".__CLASS__."';";
-
-        if($this->debug) {
-            $this->returnData['difficultySQL'] = $query;
+        if (!is_array($stats) || (int) $stats['count'] === 0) {
+            return 0.0;
         }
-        
-        $this->sql->gen($query);
-        while ($row = $this->sql->fetch()) {
-            if (is_numeric($row["percent"])) {
-                return (int)$row["percent"];
-            } else {
-                return 1;
-            }
-        }
-     
+
+        $sample = min(1.0, ((int) $stats['count']) / 30);
+        return max(0.0, min(100.0, (float) $stats['percent'])) * $sample;
     }
-    
-    private function substitutor($question) {
-        
-        $questionStr = $this->names($question[0]);
-        $solutionStr = $this->names($question[1]);
-        
-        $questionArray = preg_split("/{|}/",$questionStr);
-        
-        foreach ($questionArray as $questionPart) {
-            if($this->contains('int', $questionPart)) {
-                $substituteString = $this->ints(explode(',',$questionPart));
-                $questionStr = str_replace('{'.$questionPart.'}', $substituteString, $questionStr);
-                $solutionStr = str_replace('{'.$questionPart.'}', $substituteString, $solutionStr);
-            }
-            
-        }
-        // eval needed
-        return [ 'answer1'=>(int)eval("return ".$solutionStr.";"), 'question'=>$questionStr, 'type'=>__CLASS__];
+
+    /**
+     * A random whole number from $min up to $maxAtFull. At level 0 the top of
+     * the range is a quarter of the way there; at level 100 it is all of it.
+     */
+    private function num($min, $maxAtFull) {
+        $span = max(0, $maxAtFull - $min);
+        $max = $min + (int) ceil($span * (0.25 + 0.75 * $this->level / 100));
+        return mt_rand($min, max($min, $max));
     }
-    
-    private function names($questionString) { 
-        
-        $freeNames = ['Anna','George','Marie','Elliot','Paul','Stacey','Maureen'];
-        
-        for ($int = 1; $int <= 10; $int++) {
-            $randomName = array_rand($freeNames);
-            
-            if($this->contains('{name'.$int.'}', $questionString)) {
-                $name = $freeNames[$randomName];
-                
-                $questionString = str_replace('{name'.$int.'}', $name, $questionString);
-                unset($freeNames[$randomName]);
-            }else{
-                break;
-            }
-        } 
-        return $questionString;
+
+    private function name() {
+        return $this->names[array_rand($this->names)];
     }
 
-    
-    private function ints($dataBlock) {
-        foreach ($dataBlock as $key=>&$data) {
-            if($this->contains('diff', $data)) {
-                $data = (int)$this->difficultyValue;
-                if($data<$dataBlock[($key-1)]) {
-                    $data = $dataBlock[($key-1)];
-                }
-            }
-                            
+    // ---- the problems: each returns [question text, whole number answer]
+
+    private function pillowCases() {
+        $perCase = $this->num(2, 12);
+        $made = $this->num(2, 10);
+        $wanted = $this->num(2, 20);
+        if ($wanted === $made) {
+            $wanted++;
         }
-        
-        return mt_rand($dataBlock[2],$dataBlock[3]);
+
+        return [
+            $this->name() . ' used ' . ($perCase * $made) . ' metres of cloth to sew ' . $made . ' pillow cases. How much cloth would be used to sew ' . $wanted . ' pillow cases?',
+            $perCase * $wanted,
+        ];
     }
-    
-    /**
-     * contains($needle, $haystack)
-     * 
-     * <code>
-     * Example;<br/>
-     * $haystack = 'Hello how are you';<br/>
-     * $needle = 'are';<br/>
-     * contains($needle, $haystack); // == true<br/>
-     * </code>
-     * @param string $needle
-     * @param string $haystack
-     * @return bool
-     */
-    function contains($needle, $haystack)
-    {
-        return strpos($haystack, $needle) !== false;
+
+    private function sponges() {
+        $mass = $this->num(10, 60);
+        $gain = $this->num(2, 30);
+        $count = $this->num(2, 12);
+
+        return [
+            'The mass of a sponge is ' . $mass . ' g. When put in water it expanded and its mass became ' . ($mass + $gain) . ' g. How much extra mass would ' . $count . ' similar sponges gain altogether?',
+            $gain * $count,
+        ];
+    }
+
+    private function elephant() {
+        $kg = $this->num(10, 150);
+        $years = $this->num(2, 10);
+
+        return [
+            'An elephant eats ' . $kg . ' kg of food a week. How many kg will it eat in ' . $years . ' years? (Use 52 weeks in a year.)',
+            $kg * 52 * $years,
+        ];
+    }
+
+    private function sandwiches() {
+        $each = $this->num(2, 5);
+        $children = $this->num(3, 30);
+
+        return [
+            'A mother makes ' . ($each * $children) . ' sandwiches for a party. Each child receives ' . $each . ' sandwiches. How many children were at the party?',
+            $children,
+        ];
+    }
+
+    private function marbles() {
+        $quarter = $this->num(5, 60);
+
+        return [
+            'There were ' . ($quarter * 4) . ' marbles in a jar. ' . $this->name() . ' dropped the jar and lost 3 quarters of the marbles. How many marbles were left?',
+            $quarter,
+        ];
+    }
+
+    private function beach() {
+        $fifth = $this->num(10, 200);
+
+        return [
+            'At the beach there were ' . ($fifth * 5) . ' people. One fifth were children and the rest were adults. How many adults were at the beach?',
+            $fifth * 4,
+        ];
+    }
+
+    private function cupcakes() {
+        $fifth = $this->num(10, 100);
+
+        return [
+            $this->name() . ' baked ' . ($fifth * 5) . ' cupcakes and sold 2 fifths of them at the market. How many cupcakes were left?',
+            $fifth * 3,
+        ];
+    }
+
+    private function sugarBags() {
+        $perBag = $this->num(2, 20);
+        $bags = $this->num(2, 10);
+
+        return [
+            $this->name() . ' has to pack ' . ($perBag * $bags) . ' kg of sugar equally into ' . $bags . ' bags. How many kg of sugar will each bag contain?',
+            $perBag,
+        ];
+    }
+
+    private function htmlify($problem) {
+        // Expected answer stays on the server; the form only carries a token.
+        $token = TkAnswerStore::issue($this->user, $problem);
+
+        $frm = e107::getForm();
+
+        $fString = $frm->open('questionForm', 'post', '', ['autocomplete' => 'off', 'class' => 'formclass']);
+        $fString .= $frm->label('<h4>Word problems</h4>') . "</br>\n";
+        $fString .= $frm->label('Read the problem and write just the number as your answer.') . "\n";
+        $fString .= '</br>';
+        $fString .= '<p style="font-size:120%;">' . htmlspecialchars($problem['question']) . '</p>';
+        $fString .= '</br>';
+        $fString .= $frm->text('a1', '', 80, ['placeholder' => 'Write answer here!', 'autocomplete' => "off", 'spellcheck' => "false"]) . "\n";
+        $fString .= $frm->hidden('checkerData', $token, ['id' => 'checkerData']);
+        $fString .= $frm->hidden('subject', self::SUBJECT, ['id' => 'subject']);
+        $fString .= '</br>' . "\n";
+        $fString .= $frm->button('Answer', 'Check answer') . "\n";
+        $fString .= $frm->close();
+        $fString .= '</br></br>';
+
+        return $fString;
     }
-    
-}
+}

BIN
resources/flags/AFG.png


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/AFG.svg


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/AGO.svg


BIN
resources/flags/ALB.png


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/ALB.svg


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/AND.svg


+ 1 - 0
resources/flags/ARE.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="600" viewBox="0 0 12 6"><path fill="#00843d" d="M0 0h12v6H0z"/><path fill="#fff" d="M0 2h12v4H0z"/><path d="M0 4h12v2H0z"/><path fill="#c8102e" d="M0 0h3v6H0z"/></svg>

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/ARG.svg


+ 1 - 0
resources/flags/ARM.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="600"><path fill="#F2A800" d="M0 0h1200v600H0z"/><path fill="#0033A0" d="M0 0h1200v400H0z"/><path fill="#D90012" d="M0 0h1200v200H0z"/></svg>

+ 1 - 0
resources/flags/ATG.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600" viewBox="0 0 138 92"><path fill="#fff" d="M0 0h138v92H0z"/><path d="M0 0h138l-9 46H9z"/><path fill="#fcd116" d="M69 46 39 36l15.288-2.926-13.004-8.555 15.244 3.147-8.741-12.879 12.879 8.741-3.147-15.244 8.555 13.004L69 6l2.926 15.288 8.555-13.004-3.147 15.244 12.879-8.741-8.741 12.879 15.244-3.147-13.004 8.555L99 36z"/><path fill="#0072c6" d="M9 36h120v20H9z"/><path fill="#ce1126" d="m0 0 69 92 69-92v92H0z"/></svg>

+ 1 - 0
resources/flags/AUS.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1280" height="640" viewBox="0 0 10080 5040"><defs><clipPath id="a"><path d="M0 0h6v3H0z"/></clipPath><clipPath id="b"><path d="M0 0v1.5h6V3zm6 0H3v3H0z"/></clipPath><path id="c" d="m0-360 69.421 215.845 212.038-80.301L155.99-35.603l194.985 115.71-225.881 19.651 31.105 224.59L0 160l-156.198 164.349 31.105-224.59-225.881-19.651 194.986-115.711-125.471-188.853 212.038 80.301z"/><path id="d" d="M0-210 54.86-75.508l144.862 10.614L88.765 28.842l34.67 141.052L0 93.334l-123.435 76.56 34.67-141.052-110.957-93.736L-54.86-75.508z"/></defs><path fill="#012169" d="M0 0h10080v5040H0z"/><path d="m0 0 6 3m0-3L0 3" stroke="#fff" stroke-width=".6" clip-path="url(#a)" transform="scale(840)"/><path d="m0 0 6 3m0-3L0 3" stroke="#e4002b" stroke-width=".4" clip-path="url(#b)" transform="scale(840)"/><path d="M2520 0v2520M0 1260h5040" stroke="#fff" stroke-width="840"/><path d="M2520 0v2520M0 1260h5040" stroke="#e4002b" stroke-width="504"/><g fill="#fff"><use xlink:href="#c" transform="matrix(2.1 0 0 2.1 2520 3780)"/><use xlink:href="#c" x="7560" y="4200"/><use xlink:href="#c" x="6300" y="2205"/><use xlink:href="#c" x="7560" y="840"/><use xlink:href="#c" x="8680" y="1869"/><use xlink:href="#d" x="8064" y="2730"/></g></svg>

+ 1 - 0
resources/flags/AUT.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600"><path fill="#c8102e" d="M0 0h900v600H0z"/><path fill="#fff" d="M0 200h900v200H0z"/></svg>

+ 1 - 0
resources/flags/AZE.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="600"><path fill="#509e2f" d="M0 0h1200v600H0z"/><path fill="#ef3340" d="M0 0h1200v400H0z"/><path fill="#00b5e2" d="M0 0h1200v200H0z"/><circle cx="570" cy="300" r="90" fill="#fff"/><circle cx="590" cy="300" r="75" fill="#ef3340"/><path d="m670 250 9.567 26.903 25.788-12.258-12.258 25.788L720 300l-26.903 9.567 12.258 25.788-25.788-12.258L670 350l-9.567-26.903-25.788 12.258 12.258-25.788L620 300l26.903-9.567-12.258-25.788 25.788 12.258z" fill="#fff"/></svg>

+ 1 - 0
resources/flags/BDI.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1000" height="600" viewBox="-50 -30 100 60" fill="#c8102e"><defs><clipPath id="a"><path d="M-50-30H50v60H-50z"/></clipPath></defs><path d="M-50-30H50v60H-50z"/><path fill="#43b02a" stroke="#fff" stroke-width="8" clip-path="url(#a)" d="M-55-33v66L55-33v66z"/><circle fill="#fff" r="17"/><path id="b" stroke="#43b02a" stroke-width=".36" d="m0-12.44 1.051 1.82h2.101L2.102-8.8l1.05 1.82H1.051L0-5.16l-1.051-1.82h-2.101l1.05-1.82-1.05-1.82h2.101z"/><use xlink:href="#b" transform="rotate(120)"/><use xlink:href="#b" transform="rotate(240)"/></svg>

+ 1 - 0
resources/flags/BEL.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="900" height="780"><path fill="#ef3340" d="M0 0h900v780H0z"/><path fill="#fdda25" d="M0 0h600v780H0z"/><path d="M0 0h300v780H0z"/></svg>

+ 1 - 0
resources/flags/BEN.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600"><path fill="#e8112d" d="M0 0h900v600H0z"/><path fill="#fcd116" d="M0 0h900v300H0z"/><path fill="#008751" d="M0 0h360v600H0z"/></svg>

+ 1 - 0
resources/flags/BFA.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="900" height="600" version="1.0"><path fill="#009e49" d="M0 0h900v600H0z"/><path fill="#ef2b2d" d="M0 0h900v300H0z"/><g fill="#fcd116" transform="translate(450 300)"><g id="b"><path id="a" d="M0-100V0h50" transform="rotate(18 0 -100)"/><use xlink:href="#a" transform="scale(-1 1)"/></g><use xlink:href="#b" transform="rotate(72)"/><use xlink:href="#b" transform="rotate(144)"/><use xlink:href="#b" transform="rotate(216)"/><use xlink:href="#b" transform="rotate(288)"/></g></svg>

+ 1 - 0
resources/flags/BGD.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 6"><path fill="#006a4e" d="M0 0h10v6H0z"/><circle cx="4.5" cy="3" r="2" fill="#f42a41"/></svg>

+ 1 - 0
resources/flags/BGR.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1000" height="600" viewBox="0 0 5 3"><path fill="#fff" d="M0 0h5v3H0z"/><path fill="#00966E" d="M0 1h5v2H0z"/><path fill="#D62612" d="M0 2h5v1H0z"/></svg>

+ 1 - 0
resources/flags/BHR.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1000" height="600" viewBox="0 0 100 60"><path fill="#fff" d="M0 0h100v60H0z"/><path fill="#da291c" d="M25 0h75v60H25l15-6-15-6 15-6-15-6 15-6-15-6 15-6-15-6 15-6z"/></svg>

+ 1 - 0
resources/flags/BHS.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="600" viewBox="0 0 6 3"><path fill="#00778b" d="M0 0h6v3H0z"/><path fill="#ffc72c" d="M1 1h5v1H1z"/><path d="M2.598 1.5 0 3V0z"/></svg>

+ 1 - 0
resources/flags/BIH.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="800" height="400" viewBox="0 0 16 8"><path fill="#002395" d="M0 0h16v8H0z"/><path d="M4.24 0h8v8z" fill="#fecb00"/><g id="b"><path d="M2.353.525 2.8-.85 3.247.525l-1.17-.85h1.446z" fill="#fff" id="a"/><use xlink:href="#a" x="1" y="1"/><use xlink:href="#a" x="2" y="2"/></g><use xlink:href="#b" x="3" y="3"/><use xlink:href="#b" x="6" y="6"/></svg>

+ 1 - 0
resources/flags/BLR.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1200" height="600" viewBox="0 0 378 189"><defs><clipPath id="a"><path d="M0 0h200v608h8v284l-8 8H0z"/></clipPath></defs><path fill="#ce1720" d="M0 0h378v189H0z"/><g transform="translate(2) scale(.21)" clip-path="url(#a)" fill="#fff"><g id="c"><path id="b" d="M36 0v14h-9v14H16v16H8v13H-8V24H8V6H-8V0zm26 77v15h-8v12h-8V92h-8V77h-8V57h8V42h8V30h8v12h8v15h8v20zm-17-1h10V58H45zM19 183h8v-18h-8zm54 0h8v-18h-8zM-8 305H6v13h6v16h9v15h12v-15h9v-16h8v-13H38v-15h21v10h13v17h11v19h-8v14h-7v13h-6v14h-9v12h-7v11h-9v14H24v-15h-9v-14H8v-9H-8v-23H8v-20H-8z"/><use xlink:href="#b" transform="matrix(-1 0 0 1 200 0)"/><path d="M96 0v32h8V0h32v14h-8v14h-12v16h-8v13H92V44h-8V28H72V14h-8V0zm-2 274v-11h-6v-13h-7v-14h-8v-14h-8v-10h-9v-14H44v14h-9v10h-7v14h-8v14h-6v13H8v17H-8v-44H8v-20H-8v-33H8v14h10v14h10v-14h10v-14h8v-18h-8v-14H28v-14H18v14H8v14H-8v-41H8v-19H-8V77H8v13h8v16h11v13h9v15h7v12h14v-12h7v-15h9v-13h11V90h8V77h16v13h8v16h11v13h9v15h7v12h14v-12h7v-15h9v-13h11V90h8V77h16v28h-16v19h16v41h-16v-14h-10v-14h-10v14h-10v14h-8v18h8v14h10v14h10v-14h10v-14h16v33h-16v20h16v44h-16v-17h-6v-13h-6v-14h-8v-14h-7v-10h-9v-14h-12v14h-9v10h-8v14h-8v14h-7v13h-6v11zm2-167v27h8v-27zm-4 58v-14H82v-14H72v14H62v14h-8v18h8v14h10v14h10v-14h10v-14h16v14h10v14h10v-14h10v-14h8v-18h-8v-14h-10v-14h-10v14h-10v14zm4 46v27h8v-27z"/></g><use xlink:href="#c" transform="matrix(1 0 0 -1 0 900)"/><path d="M-8 408H8v14h7v8h8v14h7v12h-7v14h-8v8H8v14H-8zm216 0v84h-16v-14h-7v-8h-8v-14h-7v-12h7v-14h8v-8h7v-14zM62 459h8v-18h-8zm76 0v-18h-8v18zm-42-59h8v-18h-8zm0 100v18h8v-18zm-50-75h14v-11h10v-10h5v-10h6v-14h8v-14h4v-13h14v13h4v14h8v14h6v10h5v10h10v11h14v50h-14v11h-10v10h-5v10h-6v14h-8v14h-4v13H93v-13h-4v-14h-8v-14h-6v-10h-5v-10H60v-11H46zm50 9v-15h-8v-10h-8v25h8v9h5v14h-5v9h-8v25h8v-10h8v-15h8v15h8v10h8v-25h-8v-9h-5v-14h5v-9h8v-25h-8v10h-8v15z"/></g><path fill="#007c30" d="M44 126h334v63H44z"/></svg>

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/BLZ.svg


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/BOL.svg


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/BRA.svg


+ 1 - 0
resources/flags/BRB.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1500" height="1000" viewBox="0 0 24000 16000"><path fill="#00267f" d="M0 0h24000v16000H0z"/><path fill="#ffc726" d="M8000 0h8000v16000H8000z"/><path id="a" fill="#000" d="M12000 4124c-260 709-525 1447-1092 2012 176-58 484-110 682-105v2982l-842 125c-30-3-40-50-40-114-81-926-300-1704-552-2509-18-110-337-530-91-456 30 4 359 138 307 74-448-464-1103-798-1739-897-56-14-89 14-39 79 844 1299 1550 2832 1544 4651 328 0 1123-194 1452-194v2104h415l95-5876z"/><use xlink:href="#a" transform="matrix(-1 0 0 1 24000 0)"/></svg>

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/BRN.svg


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/BTN.svg


+ 1 - 0
resources/flags/BWA.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="800" viewBox="0 0 36 24"><path fill="#6DA9D2" d="M0 0h36v24H0z"/><path fill="#fff" d="M0 9h36v6H0z"/><path d="M0 10h36v4H0z"/></svg>

+ 1 - 0
resources/flags/CAF.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600" viewBox="0 0 12 8"><path fill="#fff" d="M0 0h12v8H0z"/><path fill="#003082" d="M0 0h12v2H0z"/><path fill="#ffce00" d="m6 4 6 2v2H0V6zM2 .186l.529 1.628L1.144.808h1.712L1.471 1.814z"/><path fill="#289728" d="M0 4h12v2H0z"/><path fill="#d21034" d="M5 0h2v8H5z"/></svg>

+ 1 - 0
resources/flags/CAN.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="600" viewBox="0 0 9600 4800"><path fill="red" d="M0 0h2400l99 99h4602l99-99h2400v4800H7200l-99-99H2499l-99 99H0z"/><path fill="#fff" d="M2400 0h4800v4800H2400zm2490 4430-45-863a95 95 0 0 1 111-98l859 151-116-320a65 65 0 0 1 20-73l941-762-212-99a65 65 0 0 1-34-79l186-572-542 115a65 65 0 0 1-73-38l-105-247-423 454a65 65 0 0 1-111-57l204-1052-327 189a65 65 0 0 1-91-27l-332-652-332 652a65 65 0 0 1-91 27l-327-189 204 1052a65 65 0 0 1-111 57l-423-454-105 247a65 65 0 0 1-73 38l-542-115 186 572a65 65 0 0 1-34 79l-212 99 941 762a65 65 0 0 1 20 73l-116 320 859-151a95 95 0 0 1 111 98l-45 863z"/></svg>

+ 1 - 0
resources/flags/CHE.svg

@@ -0,0 +1 @@
+<svg width="512" height="512" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h32v32H0z" fill="red"/><path d="M13 6h6v7h7v6h-7v7h-6v-7H6v-6h7z" fill="#fff"/></svg>

+ 1 - 0
resources/flags/CHL.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="900" height="600"><path fill="#FFF" d="M0 0h900v600H0z"/><path fill="#0032A0" d="M0 0h300v450H0z"/><path fill="#DA291C" d="M0 300h900v300H0z"/><g fill="#FFF" transform="translate(150 150)"><g id="b"><path id="a" d="M0-75V0h37.5" transform="rotate(18 0 -75)"/><use xlink:href="#a" transform="scale(-1 1)"/></g><use xlink:href="#b" transform="rotate(72)"/><use xlink:href="#b" transform="rotate(144)"/><use xlink:href="#b" transform="rotate(216)"/><use xlink:href="#b" transform="rotate(288)"/></g></svg>

+ 1 - 0
resources/flags/CHN.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="900" height="600"><path fill="#EE1C25" d="M0 0h900v600H0"/><g transform="matrix(3 0 0 3 150 150)"><path id="a" fill="#FF0" d="m0-30 17.634 54.27-46.166-33.54h57.064l-46.166 33.54Z"/></g><use xlink:href="#a" transform="rotate(23.036 2.784 766.082)"/><use xlink:href="#a" transform="rotate(45.87 38.201 485.396)"/><use xlink:href="#a" transform="rotate(69.945 29.892 362.328)"/><use xlink:href="#a" transform="rotate(20.66 -590.66 957.955)"/></svg>

+ 1 - 0
resources/flags/CIV.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600"><path fill="#009e60" d="M0 0h900v600H0z"/><path fill="#fff" d="M0 0h600v600H0z"/><path fill="#f77f00" d="M0 0h300v600H0z"/></svg>

+ 1 - 0
resources/flags/CMR.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" version="1.0" width="900" height="600" viewBox="0 0 9 6"><path d="M0 0h9v6H0Z" fill="#ce1126"/><path d="M0 0h3v6H0Z" fill="#007a5e"/><path d="M6 0h3v6H6ZM4.032 3.645l1.226-.891H3.742l1.226.89L4.5 2.204Z" fill="#fcd116"/></svg>

+ 1 - 0
resources/flags/COD.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="800" height="600"><path style="fill:#007fff" d="M0 0h800v600H0z"/><path d="M36 120h84l26-84 26 84h84l-68 52 26 84-68-52-68 52 26-84-68-52zM750 0 0 450v150h50l750-450V0h-50" style="fill:#f7d618"/><path d="M800 0 0 480v120l800-480V0" style="fill:#ce1021"/></svg>

+ 1 - 0
resources/flags/COG.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600"><path fill="#009543" d="M0 0h900v600H0z"/><path fill="#fbde4a" d="M0 600 600 0h300v600z"/><path fill="#dc241f" d="M900 0v600H300z"/></svg>

+ 1 - 0
resources/flags/COL.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600"><path fill="#ffcd00" d="M0 0h900v600H0z"/><path fill="#003087" d="M0 300h900v300H0z"/><path fill="#c8102e" d="M0 450h900v150H0z"/></svg>

+ 1 - 0
resources/flags/COM.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1000" height="600" viewBox="0 0 60 36" fill="#fff"><path d="M0 0h60v36H0z"/><path fill="#ffd100" d="M0 0h60v9H0z"/><path fill="#ef3340" d="M0 18h60v18H0z"/><path fill="#003da5" d="M0 27h60v9H0z"/><path fill="#009639" d="M30 18 0 36V0z"/><path d="M12.519 9.809a8.25 8.25 0 0 0 0 16.382 8.5 8.5 0 1 1 0-16.382z"/><g id="b"><path id="a" d="m12.519 10.75 1.029 3.166-2.693-1.957h3.329l-2.693 1.957z"/><use xlink:href="#a" y="3.75"/></g><use xlink:href="#b" y="7.5"/></svg>

+ 1 - 0
resources/flags/CPV.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1020" height="600"><path fill="#003893" d="M0 0h1020v600H0z"/><path fill="#fff" d="M0 300h1020v150H0z"/><path fill="#cf2027" d="M0 350h1020v50H0z"/><path fill="#f7d116" d="m382.5 198.715 5.933 18.119 19.066.043-15.4 11.242 5.852 18.148-15.452-11.173-15.45 11.173 5.851-18.148-15.4-11.242 19.066-.043zm-88.168 28.646 5.933 18.121 19.066.043-15.4 11.242 5.852 18.147-15.452-11.172-15.45 11.172 5.851-18.147-15.4-11.242 19.066-.043zm176.336 0 5.933 18.121 19.066.043-15.4 11.242 5.852 18.147-15.452-11.172-15.45 11.172 5.851-18.147-15.4-11.242 19.066-.043zm-230.826 73.863 5.933 18.12 19.067.043-15.4 11.242 5.85 18.148-15.45-11.174-15.452 11.174 5.852-18.148-15.4-11.242 19.066-.043zm285.316 0 5.934 18.12 19.066.043-15.4 11.242 5.851 18.148-15.451-11.174-15.451 11.174 5.851-18.148-15.4-11.242 19.066-.043zm-285.316 100 5.933 18.119 19.067.044-15.4 11.242 5.85 18.148-15.45-11.173-15.452 11.173 5.852-18.148-15.4-11.242 19.066-.043zm285.316 0 5.934 18.119 19.066.044-15.4 11.242 5.851 18.148-15.451-11.173-15.451 11.173 5.851-18.148-15.4-11.242 19.066-.043zm-230.826 68.842 5.933 18.121 19.066.044-15.4 11.242 5.852 18.146-15.452-11.172-15.45 11.172 5.851-18.146-15.4-11.242 19.066-.044zm176.336 0 5.933 18.121 19.066.044-15.4 11.242 5.852 18.146-15.452-11.172-15.45 11.172 5.851-18.146-15.4-11.242 19.066-.044zM382.5 498.715l5.933 18.119 19.066.043-15.4 11.242 5.852 18.149-15.452-11.174-15.45 11.174 5.851-18.149-15.4-11.242 19.066-.043z"/></svg>

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/CRI.svg


+ 1 - 0
resources/flags/CUB.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="600" viewBox="0 0 30 15" fill="#fff"><path fill="#002a8f" d="M0 0h30v15H0z"/><path d="M3 3h27v3H9v3h21v3H3z"/><path fill="#cb1515" d="M12.99 7.5 0 15V0z"/><path d="M4.33 5 2.861 9.523l3.847-2.796H1.952L5.8 9.523z"/></svg>

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/CYP.svg


+ 1 - 0
resources/flags/CZE.svg

@@ -0,0 +1 @@
+<svg version="1.0" xmlns="http://www.w3.org/2000/svg" width="900" height="600"><path fill="#d7141a" d="M0 0h900v600H0z"/><path fill="#fff" d="M0 0h900v300H0z"/><path d="M450 300 0 0v600z" fill="#11457e"/></svg>

+ 1 - 0
resources/flags/DEU.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1000" height="600" viewBox="0 0 5 3"><path d="M0 0h5v3H0z"/><path fill="#D00" d="M0 1h5v2H0z"/><path fill="#FFCE00" d="M0 2h5v1H0z"/></svg>

+ 1 - 0
resources/flags/DJI.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600"><path fill="#6ab2e7" d="M0 0h900v600H0z"/><path fill="#12ad2b" d="M0 300h900v300H0z"/><path d="M0 0v600l259.808-150 259.807-150-259.807-150z" fill="#fff"/><path d="m198.86 225 18.616 57.295h60.243l-48.738 35.41L247.598 375l-48.738-35.41L150.122 375l18.616-57.295L120 282.295h60.243z" fill="#d7141a"/></svg>

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/DMA.svg


+ 1 - 0
resources/flags/DNK.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 28"><path fill="#c8102e" d="M0 0h37v28H0Z"/><path stroke="#fff" stroke-width="4" d="M0 14h37M14 0v28"/></svg>

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/DOM.svg


BIN
resources/flags/DZA.png


+ 1 - 0
resources/flags/DZA.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600"><path fill="#fff" d="M0 0h900v600H0z"/><path fill="#063" d="M0 0h450v600H0z"/><path fill="#d21034" d="M579.904 225a150 150 0 1 0 0 150 120 120 0 1 1 0-150m5.772 75L450 255.916l83.853 115.413V228.671L450 344.084z"/></svg>

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/ECU.svg


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/EGY.svg


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/ERI.svg


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/ESP.svg


+ 1 - 0
resources/flags/EST.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="990" height="630"><path fill="#0072ce" d="M0 0h990v315H0z"/><path d="M0 210h990v315H0z"/><path fill="#fff" d="M0 420h990v210H0z"/></svg>

+ 1 - 0
resources/flags/ETH.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1200" height="600"><path fill="#da121a" d="M0 0h1200v600H0z"/><path fill="#fcdd09" d="M0 0h1200v400H0z"/><path fill="#078930" d="M0 0h1200v200H0z"/><g transform="matrix(1.66667 0 0 1.66667 600 300)"><circle r="120" fill="#0f47af"/><g id="a"><path d="m0-96-4.206 12.944 17.348 53.39h-23.13l-2.599 8h74.163l11.011-8H21.553Z" fill="#fcdd09"/><path d="m25.863-35.597 30.564-42.069" stroke="#fcdd09" stroke-width="4"/></g><use xlink:href="#a" transform="rotate(72)" width="100%" height="100%"/><use xlink:href="#a" transform="rotate(144)" width="100%" height="100%"/><use xlink:href="#a" transform="rotate(-144)" width="100%" height="100%"/><use xlink:href="#a" transform="rotate(-72)" width="100%" height="100%"/></g></svg>

+ 1 - 0
resources/flags/FIN.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1800" height="1100" viewBox="0 0 18 11"><path fill="#fff" d="M0 0h18v11H0z"/><path d="M0 5.5h18M6.5 0v11" stroke="#002F6C" stroke-width="3"/></svg>

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/FJI.svg


+ 1 - 0
resources/flags/FRA.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600"><path fill="#CE1126" d="M0 0h900v600H0"/><path fill="#fff" d="M0 0h600v600H0"/><path fill="#002654" d="M0 0h300v600H0"/></svg>

+ 1 - 0
resources/flags/FSM.svg

@@ -0,0 +1 @@
+<svg version="1.0" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="760" height="400" viewBox="-19 -10 38 20"><path fill="#75b2dd" d="M-19-10h38v20h-38z"/><g id="c" transform="translate(0 -6)" fill="#fff"><g id="b"><path id="a" d="M0-2v2h1" transform="rotate(18 0 -2)"/><use xlink:href="#a" transform="scale(-1 1)"/></g><use xlink:href="#b" transform="rotate(72)"/><use xlink:href="#b" transform="rotate(144)"/><use xlink:href="#b" transform="rotate(216)"/><use xlink:href="#b" transform="rotate(288)"/></g><use xlink:href="#c" transform="rotate(90)"/><use xlink:href="#c" transform="rotate(180)"/><use xlink:href="#c" transform="rotate(270)"/></svg>

+ 1 - 0
resources/flags/GAB.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1000" height="750"><path fill="#3a75c4" d="M0 0h1000v750H0z"/><path fill="#fcd116" d="M0 0h1000v500H0z"/><path fill="#009e60" d="M0 0h1000v250H0z"/></svg>

+ 1 - 0
resources/flags/GBR.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 30" width="1200" height="600"><clipPath id="a"><path d="M0 0v30h60V0z"/></clipPath><clipPath id="b"><path d="M30 15h30v15zv15H0zH0V0zV0h30z"/></clipPath><g clip-path="url(#a)"><path d="M0 0v30h60V0z" fill="#012169"/><path d="m0 0 60 30m0-30L0 30" stroke="#fff" stroke-width="6"/><path d="m0 0 60 30m0-30L0 30" clip-path="url(#b)" stroke="#C8102E" stroke-width="4"/><path d="M30 0v30M0 15h60" stroke="#fff" stroke-width="10"/><path d="M30 0v30M0 15h60" stroke="#C8102E" stroke-width="6"/></g></svg>

+ 1 - 0
resources/flags/GEO.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="900" height="600" viewBox="0 0 30 20" fill="red"><path fill="#fff" d="M0 0h30v20H0z"/><path d="M13 0h4v20h-4zM0 8h30v4H0z"/><g id="c"><g id="b"><path id="a" d="M5.797 1.954a5.4 5.4 0 0 0 1.406 0 10.4 10.4 0 0 0 0 4.092 5.4 5.4 0 0 0-1.406 0 10.4 10.4 0 0 0 0-4.092z"/><use transform="rotate(90 6.5 4)" xlink:href="#a"/></g><use x="17" xlink:href="#b"/></g><use y="12" xlink:href="#c"/></svg>

+ 1 - 0
resources/flags/GHA.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600"><path fill="#006b3f" d="M0 0h900v600H0"/><path fill="#fcd116" d="M0 0h900v400H0"/><path fill="#ce1126" d="M0 0h900v200H0"/><path d="m450 200 64.98 200-170.13-123.61h210.3L385.02 400"/></svg>

+ 1 - 0
resources/flags/GIN.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600"><path fill="#ce1126" d="M0 0h900v600H0z"/><path fill="#fcd116" d="M300 0h600v600H300z"/><path fill="#009460" d="M600 0h300v600H600z"/></svg>

+ 1 - 0
resources/flags/GMB.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600" viewBox="0 0 27 18"><path fill="#fff" d="M0 0h27v18H0z"/><path fill="#ce1126" d="M0 0h27v6H0z"/><path fill="#0c1c8c" d="M0 7h27v4H0z"/><path fill="#3a7728" d="M0 12h27v6H0z"/></svg>

+ 1 - 0
resources/flags/GNB.svg

@@ -0,0 +1 @@
+<svg version="1.0" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1200" height="600" viewBox="-2 -3 12 6"><path fill="#fcd116" d="M-2-3h12v6H-2z"/><path fill="#009e49" d="M-2 0h12v3H-2z"/><path fill="#ce1126" d="M-2-3h4v6h-4z"/><g id="b"><path id="a" d="M0-1v1h.5" transform="rotate(18 0 -1)" fill="#000"/><use xlink:href="#a" transform="scale(-1 1)"/></g><use xlink:href="#b" transform="rotate(72)"/><use xlink:href="#b" transform="rotate(144)"/><use xlink:href="#b" transform="rotate(216)"/><use xlink:href="#b" transform="rotate(288)"/></svg>

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/GNQ.svg


+ 1 - 0
resources/flags/GRC.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="600" height="400" viewBox="0 0 27 18"><path fill="#0D5EAF" d="M0 0h27v18H0z"/><path fill="none" stroke-width="2" stroke="#FFF" d="M5 0v11M0 5h10m0-2h17M10 7h17M0 11h27M0 15h27"/></svg>

+ 1 - 0
resources/flags/GRD.svg

@@ -0,0 +1 @@
+<svg width="1000" height="600" viewBox="0 0 500 300" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><path fill="#ce1126" d="M0 0h500v300H0z"/><path fill="#007a5e" d="M42 42h416v216H42z"/><path d="M42 42h416L42 258h416z" fill="#fcd116"/><circle r="36" cy="150" cx="250" fill="#ce1126"/><path d="M67.944 150.113c4.262 8.515 12.757 17.893 20.313 21.321.367-8.513-2.341-19.515-6.224-28.33z" fill="#ce1126"/><path d="M60.284 121.487c6.35 13.695-17.533 45.856 21.453 53.976-4.736-6.643-7.33-17.752-6.04-26.456 8.095 3.448 16.212 11.464 19.402 18.972 13.444-37.484-26.456-33.922-34.815-46.492z" fill="#fcd116"/><use xlink:href="#a" fill="#fcd116"/><use xlink:href="#a" x="100" fill="#fcd116"/><use xlink:href="#a" x="200" fill="#fcd116"/><use xlink:href="#a" x="200" y="-258" fill="#fcd116"/><use xlink:href="#a" x="100" y="-258" fill="#fcd116"/><use xlink:href="#a" y="-258" fill="#fcd116"/><path d="m250 117-19.397 59.697 50.782-36.895h-62.769l50.782 36.895z" fill="#fcd116"/><defs><path id="a" d="m150 259.5-11.462 35.276 30.007-21.802h-37.091l30.007 21.802z"/></defs></svg>

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/GTM.svg


+ 1 - 0
resources/flags/GUY.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1000" height="600" viewBox="0 0 100 60"><defs><clipPath id="a"><path d="m0 0 100 30L0 60z"/></clipPath><clipPath id="b"><path d="m0 0 50 30L0 60z"/></clipPath></defs><path fill="#2A936A" d="M0 0h100v60H0z"/><path fill="#FFC20E" stroke="#fff" stroke-width="4" d="m0 0 100 30L0 60" clip-path="url(#a)"/><path fill="#BE1E2D" stroke="#000" stroke-width="4" d="m0 0 50 30L0 60" clip-path="url(#b)"/></svg>

+ 1 - 0
resources/flags/HKG.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="900" height="600" fill="#ee1c25"><path d="M0 0h900v600H0z"/><g id="a"><path d="M492.936 125.196a27.917 27.917 0 0 0-14.902 41.792 45.171 45.171 0 0 1-20.29 66.204 38.65 38.65 0 0 0-10.816 64.313 68.375 68.375 0 0 1-17.068-93.914 15.81 15.81 0 0 1-1.109-1.047 69.88 69.88 0 0 0 16.755 95.793 90.342 90.342 0 0 1 47.43-173.141" fill="#fff"/><path d="m451.98 181.1-27.565 12.021 29.366 6.476-19.951-22.5 2.915 29.93"/></g><g id="b"><use xlink:href="#a" transform="rotate(72 450 300)"/><use xlink:href="#a" transform="rotate(216 450 300)"/></g><use xlink:href="#b" transform="rotate(72 450 300)"/></svg>

+ 1 - 0
resources/flags/HND.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1200" height="600" viewBox="0 0 72 36" fill="#00BCE4"><path fill="#fff" d="M0 0h72v36H0z"/><path d="M0 0h72v12H0zm0 24h72v12H0z"/><g id="b"><path id="a" d="m26 13 1.176 3.618-3.078-2.236h3.804l-3.078 2.236z"/><use xlink:href="#a" y="6"/></g><use xlink:href="#a" x="10" y="3"/><use xlink:href="#b" x="20"/></svg>

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/HRV.svg


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/HTI.svg


+ 1 - 0
resources/flags/HUN.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="600"><path d="M0 0h1200v600H0" fill="#477050"/><path d="M0 0h1200v400H0" fill="#fff"/><path d="M0 0h1200v200H0" fill="#ce2939"/></svg>

+ 1 - 0
resources/flags/IDN.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600"><path fill="#fff" d="M0 0h900v600H0z"/><path fill="red" d="M0 0h900v300H0z"/></svg>

+ 1 - 0
resources/flags/IND.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="900" height="600" fill="#07038D" viewBox="-45 -30 90 60"><path fill="#FFF" d="M-45-30h90v60h-90z"/><path fill="#FF6820" d="M-45-30h90v20h-90z"/><path fill="#046A38" d="M-45 10h90v20h-90z"/><circle r="9.25"/><circle r="8" fill="#FFF"/><circle r="1.6"/><g id="d"><g id="c"><g id="b"><g id="a"><path d="m0-8 .3 4.814L0-.802l-.3-2.384z"/><circle cy="-8" r=".35" transform="rotate(7.5)"/></g><use xlink:href="#a" transform="scale(-1)"/></g><use xlink:href="#b" transform="rotate(15)"/></g><use xlink:href="#c" transform="rotate(30)"/></g><use xlink:href="#d" transform="rotate(60)"/><use xlink:href="#d" transform="rotate(120)"/></svg>

+ 1 - 0
resources/flags/IRL.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="600"><path fill="#169b62" d="M0 0h1200v600H0z"/><path fill="#fff" d="M400 0h800v600H400z"/><path fill="#ff883e" d="M800 0h400v600H800z"/></svg>

+ 1 - 0
resources/flags/IRN.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="630" height="360"><path fill="#da0000" d="M0 0h630v360H0z"/><path fill="#fff" d="M0 0h630v240H0z"/><path fill="#239f40" d="M0 0h630v120H0z"/><g transform="translate(8.4 100.4)"><g id="e"><g id="c" fill="none" stroke="#fff" stroke-width="2"><path id="b" d="M0 1h26M1 10V5h8v4h8V5h-5M4 9h2m20 0h-5V5h8m0-5v9h8V0m-4 0v9" transform="scale(1.4)"/><path id="a" d="M0 7h9m1 0h9" transform="scale(2.8)"/><use xlink:href="#a" y="120"/><use xlink:href="#b" y="145.2"/></g><g id="d"><use xlink:href="#c" x="56"/><use xlink:href="#c" x="112"/><use xlink:href="#c" x="168"/></g></g><use xlink:href="#d" x="168"/><use xlink:href="#e" x="392"/></g><g fill="#da0000" transform="matrix(45 0 0 45 315 180)"><g id="f"><path d="M1.016-.016a.78.78 0 0 1-.414.687A1.004 1.004 0 0 0 .444-.741L.4-.775a.776.776 0 0 1 .617.76"/><path d="M.656-.047A.927.927 0 0 1-.557.834l.05.001A1.016 1.016 0 0 0 .333-.749a.92.92 0 0 1 .322.702M.262-.944A.142.142 0 0 1 0-.869l-.017-.017L0-.969A.132.132 0 0 0 .25-1a.14.14 0 0 1 .012.056"/><path d="M.12-.714A.3.3 0 0 1 0-.81l-.05.794L0 1 .079.892l.01-.25L.1.38.101.348V.335L.105.281.111.117l.005-.132.002-.039.002-.048zM0-.55Zm0 .865Z"/></g><use xlink:href="#f" transform="scale(-1 1)"/></g></svg>

+ 1 - 0
resources/flags/IRQ.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600" viewBox="0 0 11880 7920"><path fill="#fff" d="M0 0h11880v7920H0z"/><path fill="#cd1125" d="M0 0h11880v2640H0z"/><path d="M0 5280h11880v2640H0z"/><path fill="#017b3d" d="M5864 4515H3929a288 248 0 0 1-365 215c271-133 254-268 83-568 95-34 110-43 206-108-68 206 176 181 356 181 0-72 7-154-47-165 70-25 76-33 187-127v277h1335v-190a40 40 0 0 0-80 0v110a30 30 0 0 1-30 30H4554v-180l766-740c-5 38 74 140 107 157-25 4-53-1-71 17l-627 606h695c0-161 150-161 220-218 70 57 220 57 220 218zm145 0V3250c71 39 126 84 214 106-4 50-49 66-49 101v778c98 22 120-35 167-64 12 124 91 246 88 344zm1322-845 155-130v680h110v-773c54-45 124-94 155-151v1219h-975c-14-252-14-511 280-455v-103c0-24-36-5-36-27l201-168v458h110zm-51-348c-19 1-48-103-41-123 7-23 33-23 44-12 18 17 16 134-3 135zm-181 141c-55-32-46-45 2-31 83 25 125 4 185-57l45 23c59 30 95 17 116-55 6-22 24-16 29 9 19 100-57 131-134 103-42-14-49-14-70 2-46 36-112 42-173 6zm797 1052V3250c71 39 126 84 214 106-4 50-49 66-49 101v778c98 22 120-35 167-64 12 124 91 246 88 344zm-3791 140a1 1 0 0 1 118 0 1 1 0 0 1-118 0zm2861-460a45 34 0 0 0 90 0 45 34 0 0 0-90 0z"/></svg>

+ 1 - 0
resources/flags/ISL.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1250" height="900" viewBox="0 0 25 18"><path d="M0 0h25v18H0Z" fill="#02529C"/><path d="M0 9h25M9 0v18" stroke-width="4" stroke="#FFF"/><path d="M0 9h25M9 0v18" stroke-width="2" stroke="#DC1E35"/></svg>

+ 1 - 0
resources/flags/ISR.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1100" height="800"><path d="M0 0h1100v800H0Z" fill="#fff"/><path d="M0 75h1100v125H0ZM0 600h1100v125H0Z" fill="#0038b8"/><path d="M423.816 472.853h252.368L550 254.295ZM550 545.705l126.184-218.558H423.816Z" fill="none" stroke="#0038b8" stroke-width="27.5"/></svg>

+ 1 - 0
resources/flags/ITA.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1500" height="1000" viewBox="0 0 3 2"><path fill="#009246" d="M0 0h3v2H0z"/><path fill="#fff" d="M1 0h2v2H1z"/><path fill="#ce2b37" d="M2 0h1v2H2z"/></svg>

+ 1 - 0
resources/flags/JAM.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="600" viewBox="0 0 12 6"><defs><clipPath id="a"><path d="M0 0h12v6H0z"/></clipPath></defs><path fill="#007749" d="M0 0h12v6H0z"/><path stroke="#ffb81c" clip-path="url(#a)" d="M-2-1v8l16-8v8z"/></svg>

+ 1 - 0
resources/flags/JOR.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="600" viewBox="0 0 10080 5040"><path fill="#fff" d="M0 0h10080v5040H0z"/><path d="M0 0h10080v1680H0z"/><path fill="#007a3d" d="M0 3360h10080v1680H0z"/><path fill="#ce1126" d="M5040 2520 0 5040V0m1557 2160-78 198-203-62 106 184-176 120 211 32-16 212 156-144 157 144-16-212 210-32-175-120 106-184-203 62z"/></svg>

+ 1 - 0
resources/flags/JPN.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600"><path fill="#fff" d="M0 0h900v600H0z"/><circle fill="#bc002d" cx="450" cy="300" r="180"/></svg>

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/KAZ.svg


+ 1 - 0
resources/flags/KEN.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="900" height="600" viewBox="-120 -80 240 160"><defs><path id="a" stroke-miterlimit="10" d="M-1 55.426h2V-38c2-2 2-5 2-8 0-2 0-10-3-18.663C-3-56-3-48-3-46c0 3 0 6 2 8z" transform="rotate(30)"/></defs><path fill="#fff" d="M-120-80h240V80h-240z"/><path d="M-120-80h240v48h-240z"/><path fill="#060" d="M-120 32h240v48h-240z"/><g id="b"><use xlink:href="#a" stroke="#000"/><use xlink:href="#a" fill="#fff"/></g><use xlink:href="#b" transform="scale(-1 1)"/><path fill="#b00" d="M-120-24v48h101c3 8 13 24 19 24s16-16 19-24h101v-48H19C16-32 6-48 0-48s-16 16-19 24z"/><path id="c" d="M19 24c3-8 5-16 5-24s-2-16-5-24c-3 8-5 16-5 24s2 16 5 24"/><use xlink:href="#c" transform="scale(-1 1)"/><g fill="#fff"><ellipse rx="4" ry="6"/><path id="d" d="M1 5.85s4 8 4 21-4 21-4 21z"/><use xlink:href="#d" transform="scale(-1)"/><use xlink:href="#d" transform="scale(-1 1)"/><use xlink:href="#d" transform="scale(1 -1)"/></g></svg>

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/KGZ.svg


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/KHM.svg


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
resources/flags/KIR.svg


Неке датотеке нису приказане због велике количине промена