diff --git a/.github/_typos.toml b/.github/_typos.toml index 924d92c5a390..e506ebe3a0c4 100644 --- a/.github/_typos.toml +++ b/.github/_typos.toml @@ -17,7 +17,10 @@ extend-exclude = [ "*response.json", "test_content.txt", "serializedChatHistoryV1_15_1.json", - "MultipleFunctionsVsParameters.cs" + "MultipleFunctionsVsParameters.cs", + "PopulationByCountry.csv", + "PopulationByAdmin1.csv", + "WomensSuffrage.txt", ] [default.extend-words] diff --git a/dotnet/samples/LearnResources/Plugins/GitHub/GitHubModels.cs b/dotnet/samples/LearnResources/Plugins/GitHub/GitHubModels.cs new file mode 100644 index 000000000000..579933e32ed7 --- /dev/null +++ b/dotnet/samples/LearnResources/Plugins/GitHub/GitHubModels.cs @@ -0,0 +1,90 @@ +// Copyright (c) Microsoft. All rights reserved. + +using System.Text.Json.Serialization; + +namespace Plugins; + +/// +/// Models for GitHub REST API GET responses: +/// https://docs.github.com/en/rest +/// +internal static class GitHubModels +{ + public sealed class Repo + { + [JsonPropertyName("id")] + public long Id { get; set; } + + [JsonPropertyName("full_name")] + public string Name { get; set; } + + [JsonPropertyName("description")] + public string Description { get; set; } + + [JsonPropertyName("html_url")] + public string Url { get; set; } + } + + public sealed class User + { + [JsonPropertyName("id")] + public long Id { get; set; } + + [JsonPropertyName("login")] + public string Login { get; set; } + + [JsonPropertyName("name")] + public string Name { get; set; } + + [JsonPropertyName("company")] + public string Company { get; set; } + + [JsonPropertyName("html_url")] + public string Url { get; set; } + } + + public class Issue + { + [JsonPropertyName("id")] + public long Id { get; set; } + + [JsonPropertyName("number")] + public int Number { get; set; } + + [JsonPropertyName("html_url")] + public string Url { get; set; } + + [JsonPropertyName("title")] + public string Title { get; set; } + + [JsonPropertyName("state")] + public string State { get; set; } + + [JsonPropertyName("labels")] + public Label[] Labels { get; set; } + + [JsonPropertyName("created_at")] + public string WhenCreated { get; set; } + + [JsonPropertyName("closed_at")] + public string WhenClosed { get; set; } + } + + public sealed class IssueDetail : Issue + { + [JsonPropertyName("body")] + public string Body { get; set; } + } + + public sealed class Label + { + [JsonPropertyName("id")] + public long Id { get; set; } + + [JsonPropertyName("name")] + public string Name { get; set; } + + [JsonPropertyName("description")] + public string Description { get; set; } + } +} diff --git a/dotnet/samples/LearnResources/Plugins/GitHub/GitHubPlugin.cs b/dotnet/samples/LearnResources/Plugins/GitHub/GitHubPlugin.cs new file mode 100644 index 000000000000..56333898e467 --- /dev/null +++ b/dotnet/samples/LearnResources/Plugins/GitHub/GitHubPlugin.cs @@ -0,0 +1,107 @@ +// Copyright (c) Microsoft. All rights reserved. + +using System.ComponentModel; +using System.Text.Json; +using Microsoft.SemanticKernel; + +namespace Plugins; + +internal sealed class GitHubSettings +{ + public string BaseUrl { get; set; } = "https://api.github.com"; + + public string Token { get; set; } = string.Empty; +} + +internal sealed class GitHubPlugin(GitHubSettings settings) +{ + [KernelFunction] + public async Task GetUserProfileAsync() + { + using HttpClient client = this.CreateClient(); + JsonDocument response = await MakeRequestAsync(client, "/user"); + return response.Deserialize() ?? throw new InvalidDataException($"Request failed: {nameof(GetUserProfileAsync)}"); + } + + [KernelFunction] + public async Task GetRepositoryAsync(string organization, string repo) + { + using HttpClient client = this.CreateClient(); + JsonDocument response = await MakeRequestAsync(client, $"/repos/{organization}/{repo}"); + + return response.Deserialize() ?? throw new InvalidDataException($"Request failed: {nameof(GetRepositoryAsync)}"); + } + + [KernelFunction] + public async Task GetIssuesAsync( + string organization, + string repo, + [Description("default count is 30")] + int? maxResults = null, + [Description("open, closed, or all")] + string state = "", + string label = "", + string assignee = "") + { + using HttpClient client = this.CreateClient(); + + string path = $"/repos/{organization}/{repo}/issues?"; + path = BuildQuery(path, "state", state); + path = BuildQuery(path, "assignee", assignee); + path = BuildQuery(path, "labels", label); + path = BuildQuery(path, "per_page", maxResults?.ToString() ?? string.Empty); + + JsonDocument response = await MakeRequestAsync(client, path); + + return response.Deserialize() ?? throw new InvalidDataException($"Request failed: {nameof(GetIssuesAsync)}"); + } + + [KernelFunction] + public async Task GetIssueDetailAsync(string organization, string repo, int issueId) + { + using HttpClient client = this.CreateClient(); + + string path = $"/repos/{organization}/{repo}/issues/{issueId}"; + + JsonDocument response = await MakeRequestAsync(client, path); + + return response.Deserialize() ?? throw new InvalidDataException($"Request failed: {nameof(GetIssueDetailAsync)}"); + } + + private HttpClient CreateClient() + { + HttpClient client = new() + { + BaseAddress = new Uri(settings.BaseUrl) + }; + + client.DefaultRequestHeaders.Clear(); + client.DefaultRequestHeaders.Add("User-Agent", "request"); + client.DefaultRequestHeaders.Add("Accept", "application/vnd.github+json"); + client.DefaultRequestHeaders.Add("Authorization", $"Bearer {settings.Token}"); + client.DefaultRequestHeaders.Add("X-GitHub-Api-Version", "2022-11-28"); + + return client; + } + + private static string BuildQuery(string path, string key, string value) + { + if (!string.IsNullOrWhiteSpace(value)) + { + return $"{path}{key}={value}&"; + } + + return path; + } + + private static async Task MakeRequestAsync(HttpClient client, string path) + { + Console.WriteLine($"REQUEST: {path}"); + Console.WriteLine(); + + HttpResponseMessage response = await client.GetAsync(new Uri(path)); + response.EnsureSuccessStatusCode(); + string content = await response.Content.ReadAsStringAsync(); + return JsonDocument.Parse(content); + } +} diff --git a/dotnet/samples/LearnResources/Resources/Grimms-The-King-of-the-Golden-Mountain.txt b/dotnet/samples/LearnResources/Resources/Grimms-The-King-of-the-Golden-Mountain.txt new file mode 100644 index 000000000000..a5279d6e8c51 --- /dev/null +++ b/dotnet/samples/LearnResources/Resources/Grimms-The-King-of-the-Golden-Mountain.txt @@ -0,0 +1,36 @@ +The King of the Golden Mountain +By the Grimm Brothers + +There was once a merchant who had only one child, a son, that was very young, and barely able to run alone. He had two richly laden ships then making a voyage upon the seas, in which he had embarked all his wealth, in the hope of making great gains, when the news came that both were lost. Thus from being a rich man he became all at once so very poor that nothing was left to him but one small plot of land; and there he often went in an evening to take his walk, and ease his mind of a little of his trouble. + +One day, as he was roaming along in a brown study, thinking with no great comfort on what he had been and what he now was, and was like to be, all on a sudden there stood before him a little, rough-looking, black dwarf. ’Prithee, friend, why so sorrowful?’ said he to the merchant; ’what is it you take so deeply to heart?’ ’If you would do me any good I would willingly tell you,’ said the merchant. ’Who knows but I may?’ said the little man: ’tell me what ails you, and perhaps you will find I may be of some use.’ Then the merchant told him how all his wealth was gone to the bottom of the sea, and how he had nothing left but that little plot of land. ’Oh, trouble not yourself about that,’ said the dwarf; ’only undertake to bring me here, twelve years hence, whatever meets you first on your going home, and I will give you as much as you please.’ The merchant thought this was no great thing to ask; that it would most likely be his dog or his cat, or something of that sort, but forgot his little boy Heinel; so he agreed to the bargain, and signed and sealed the bond to do what was asked of him. + +But as he drew near home, his little boy was so glad to see him that he crept behind him, and laid fast hold of his legs, and looked up in his face and laughed. Then the father started, trembling with fear and horror, and saw what it was that he had bound himself to do; but as no gold was come, he made himself easy by thinking that it was only a joke that the dwarf was playing him, and that, at any rate, when the money came, he should see the bearer, and would not take it in. + +About a month afterwards he went upstairs into a lumber-room to look for some old iron, that he might sell it and raise a little money; and there, instead of his iron, he saw a large pile of gold lying on the floor. At the sight of this he was overjoyed, and forgetting all about his son, went into trade again, and became a richer merchant than before. + +Meantime little Heinel grew up, and as the end of the twelve years drew near the merchant began to call to mind his bond, and became very sad and thoughtful; so that care and sorrow were written upon his face. The boy one day asked what was the matter, but his father would not tell for some time; at last, however, he said that he had, without knowing it, sold him for gold to a little, ugly-looking, black dwarf, and that the twelve years were coming round when he must keep his word. Then Heinel said, ’Father, give yourself very little trouble about that; I shall be too much for the little man.’ + +When the time came, the father and son went out together to the place agreed upon: and the son drew a circle on the ground, and set himself and his father in the middle of it. The little black dwarf soon came, and walked round and round about the circle, but could not find any way to get into it, and he either could not, or dared not, jump over it. At last the boy said to him. ’Have you anything to say to us, my friend, or what do you want?’ Now Heinel had found a friend in a good fairy, that was fond of him, and had told him what to do; for this fairy knew what good luck was in store for him. ’Have you brought me what you said you would?’ said the dwarf to the merchant. The old man held his tongue, but Heinel said again, ’What do you want here?’ The dwarf said, ’I come to talk with your father, not with you.’ ’You have cheated and taken in my father,’ said the son; ’pray give him up his bond at once.’ ’Fair and softly,’ said the little old man; ’right is right; I have paid my money, and your father has had it, and spent it; so be so good as to let me have what I paid it for.’ ’You must have my consent to that first,’ said Heinel, ’so please to step in here, and let us talk it over.’ The old man grinned, and showed his teeth, as if he should have been very glad to get into the circle if he could. Then at last, after a long talk, they came to terms. Heinel agreed that his father must give him up, and that so far the dwarf should have his way: but, on the other hand, the fairy had told Heinel what fortune was in store for him, if he followed his own course; and he did not choose to be given up to his hump-backed friend, who seemed so anxious for his company. + +So, to make a sort of drawn battle of the matter, it was settled that Heinel should be put into an open boat, that lay on the sea-shore hard by; that the father should push him off with his own hand, and that he should thus be set adrift, and left to the bad or good luck of wind and weather. Then he took leave of his father, and set himself in the boat, but before it got far off a wave struck it, and it fell with one side low in the water, so the merchant thought that poor Heinel was lost, and went home very sorrowful, while the dwarf went his way, thinking that at any rate he had had his revenge. + +The boat, however, did not sink, for the good fairy took care of her friend, and soon raised the boat up again, and it went safely on. The young man sat safe within, till at length it ran ashore upon an unknown land. As he jumped upon the shore he saw before him a beautiful castle but empty and dreary within, for it was enchanted. ’Here,’ said he to himself, ’must I find the prize the good fairy told me of.’ So he once more searched the whole palace through, till at last he found a white snake, lying coiled up on a cushion in one of the chambers. + +Now the white snake was an enchanted princess; and she was very glad to see him, and said, ’Are you at last come to set me free? Twelve long years have I waited here for the fairy to bring you hither as she promised, for you alone can save me. This night twelve men will come: their faces will be black, and they will be dressed in chain armour. They will ask what you do here, but give no answer; and let them do what they will–beat, whip, pinch, prick, or torment you–bear all; only speak not a word, and at twelve o’clock they must go away. The second night twelve others will come: and the third night twenty-four, who will even cut off your head; but at the twelfth hour of that night their power is gone, and I shall be free, and will come and bring you the Water of Life, and will wash you with it, and bring you back to life and health.’ And all came to pass as she had said; Heinel bore all, and spoke not a word; and the third night the princess came, and fell on his neck and kissed him. Joy and gladness burst forth throughout the castle, the wedding was celebrated, and he was crowned king of the Golden Mountain. + +They lived together very happily, and the queen had a son. And thus eight years had passed over their heads, when the king thought of his father; and he began to long to see him once again. But the queen was against his going, and said, ’I know well that misfortunes will come upon us if you go.’ However, he gave her no rest till she agreed. At his going away she gave him a wishing-ring, and said, ’Take this ring, and put it on your finger; whatever you wish it will bring you; only promise never to make use of it to bring me hence to your father’s house.’ Then he said he would do what she asked, and put the ring on his finger, and wished himself near the town where his father lived. + +Heinel found himself at the gates in a moment; but the guards would not let him go in, because he was so strangely clad. So he went up to a neighbouring hill, where a shepherd dwelt, and borrowed his old frock, and thus passed unknown into the town. When he came to his father’s house, he said he was his son; but the merchant would not believe him, and said he had had but one son, his poor Heinel, who he knew was long since dead: and as he was only dressed like a poor shepherd, he would not even give him anything to eat. The king, however, still vowed that he was his son, and said, ’Is there no mark by which you would know me if I am really your son?’ ’Yes,’ said his mother, ’our Heinel had a mark like a raspberry on his right arm.’ Then he showed them the mark, and they knew that what he had said was true. + +He next told them how he was king of the Golden Mountain, and was married to a princess, and had a son seven years old. But the merchant said, ’that can never be true; he must be a fine king truly who travels about in a shepherd’s frock!’ At this the son was vexed; and forgetting his word, turned his ring, and wished for his queen and son. In an instant they stood before him; but the queen wept, and said he had broken his word, and bad luck would follow. He did all he could to soothe her, and she at last seemed to be appeased; but she was not so in truth, and was only thinking how she should punish him. + +One day he took her to walk with him out of the town, and showed her the spot where the boat was set adrift upon the wide waters. Then he sat himself down, and said, ’I am very much tired; sit by me, I will rest my head in your lap, and sleep a while.’ As soon as he had fallen asleep, however, she drew the ring from his finger, and crept softly away, and wished herself and her son at home in their kingdom. And when he awoke he found himself alone, and saw that the ring was gone from his finger. ’I can never go back to my father’s house,’ said he; ’they would say I am a sorcerer: I will journey forth into the world, till I come again to my kingdom.’ + +So saying he set out and travelled till he came to a hill, where three giants were sharing their father’s goods; and as they saw him pass they cried out and said, ’Little men have sharp wits; he shall part the goods between us.’ Now there was a sword that cut off an enemy’s head whenever the wearer gave the words, ’Heads off!’; a cloak that made the owner invisible, or gave him any form he pleased; and a pair of boots that carried the wearer wherever he wished. Heinel said they must first let him try these wonderful things, then he might know how to set a value upon them. Then they gave him the cloak, and he wished himself a fly, and in a moment he was a fly. ’The cloak is very well,’ said he: ’now give me the sword.’ ’No,’ said they; ’not unless you undertake not to say, “Heads off!” for if you do we are all dead men.’ So they gave it him, charging him to try it on a tree. He next asked for the boots also; and the moment he had all three in his power, he wished himself at the Golden Mountain; and there he was at once. So the giants were left behind with no goods to share or quarrel about. + +As Heinel came near his castle he heard the sound of merry music; and the people around told him that his queen was about to marry another husband. Then he threw his cloak around him, and passed through the castle hall, and placed himself by the side of the queen, where no one saw him. But when anything to eat was put upon her plate, he took it away and ate it himself; and when a glass of wine was handed to her, he took it and drank it; and thus, though they kept on giving her meat and drink, her plate and cup were always empty. + +Upon this, fear and remorse came over her, and she went into her chamber alone, and sat there weeping; and he followed her there. ’Alas!’ said she to herself, ’was I not once set free? Why then does this enchantment still seem to bind me?’ + +’False and fickle one!’ said he. ’One indeed came who set thee free, and he is now near thee again; but how have you used him? Ought he to have had such treatment from thee?’ Then he went out and sent away the company, and said the wedding was at an end, for that he was come back to the kingdom. But the princes, peers, and great men mocked at him. However, he would enter into no parley with them, but only asked them if they would go in peace or not. Then they turned upon him and tried to seize him; but he drew his sword. ’Heads Off!’ cried he; and with the word the traitors’ heads fell before him, and Heinel was once more king of the Golden Mountain. \ No newline at end of file diff --git a/dotnet/samples/LearnResources/Resources/Grimms-The-Water-of-Life.txt b/dotnet/samples/LearnResources/Resources/Grimms-The-Water-of-Life.txt new file mode 100644 index 000000000000..3a5487beb5cc --- /dev/null +++ b/dotnet/samples/LearnResources/Resources/Grimms-The-Water-of-Life.txt @@ -0,0 +1,44 @@ +The Water of Life +By the Grimm Brothers + +Long before you or I were born, there reigned, in a country a great way off, a king who had three sons. This king once fell very ill–so ill that nobody thought he could live. His sons were very much grieved at their father’s sickness; and as they were walking together very mournfully in the garden of the palace, a little old man met them and asked what was the matter. They told him that their father was very ill, and that they were afraid nothing could save him. ’I know what would,’ said the little old man; ’it is the Water of Life. If he could have a draught of it he would be well again; but it is very hard to get.’ Then the eldest son said, ’I will soon find it’: and he went to the sick king, and begged that he might go in search of the Water of Life, as it was the only thing that could save him. ’No,’ said the king. ’I had rather die than place you in such great danger as you must meet with in your journey.’ But he begged so hard that the king let him go; and the prince thought to himself, ’If I bring my father this water, he will make me sole heir to his kingdom.’ + +Then he set out: and when he had gone on his way some time he came to a deep valley, overhung with rocks and woods; and as he looked around, he saw standing above him on one of the rocks a little ugly dwarf, with a sugarloaf cap and a scarlet cloak; and the dwarf called to him and said, ’Prince, whither so fast?’ ’What is that to thee, you ugly imp?’ said the prince haughtily, and rode on. + +But the dwarf was enraged at his behaviour, and laid a fairy spell of ill-luck upon him; so that as he rode on the mountain pass became narrower and narrower, and at last the way was so straitened that he could not go to step forward: and when he thought to have turned his horse round and go back the way he came, he heard a loud laugh ringing round him, and found that the path was closed behind him, so that he was shut in all round. He next tried to get off his horse and make his way on foot, but again the laugh rang in his ears, and he found himself unable to move a step, and thus he was forced to abide spellbound. + +Meantime the old king was lingering on in daily hope of his son’s return, till at last the second son said, ’Father, I will go in search of the Water of Life.’ For he thought to himself, ’My brother is surely dead, and the kingdom will fall to me if I find the water.’ The king was at first very unwilling to let him go, but at last yielded to his wish. So he set out and followed the same road which his brother had done, and met with the same elf, who stopped him at the same spot in the mountains, saying, as before, ’Prince, prince, whither so fast?’ ’Mind your own affairs, busybody!’ said the prince scornfully, and rode on. + +But the dwarf put the same spell upon him as he put on his elder brother, and he, too, was at last obliged to take up his abode in the heart of the mountains. Thus it is with proud silly people, who think themselves above everyone else, and are too proud to ask or take advice. + +When the second prince had thus been gone a long time, the youngest son said he would go and search for the Water of Life, and trusted he should soon be able to make his father well again. So he set out, and the dwarf met him too at the same spot in the valley, among the mountains, and said, ’Prince, whither so fast?’ And the prince said, ’I am going in search of the Water of Life, because my father is ill, and like to die: can you help me? Pray be kind, and aid me if you can!’ ’Do you know where it is to be found?’ asked the dwarf. ’No,’ said the prince, ’I do not. Pray tell me if you know.’ ’Then as you have spoken to me kindly, and are wise enough to seek for advice, I will tell you how and where to go. The water you seek springs from a well in an enchanted castle; and, that you may be able to reach it in safety, I will give you an iron wand and two little loaves of bread; strike the iron door of the castle three times with the wand, and it will open: two hungry lions will be lying down inside gaping for their prey, but if you throw them the bread they will let you pass; then hasten on to the well, and take some of the Water of Life before the clock strikes twelve; for if you tarry longer the door will shut upon you for ever.’ + +Then the prince thanked his little friend with the scarlet cloak for his friendly aid, and took the wand and the bread, and went travelling on and on, over sea and over land, till he came to his journey’s end, and found everything to be as the dwarf had told him. The door flew open at the third stroke of the wand, and when the lions were quieted he went on through the castle and came at length to a beautiful hall. Around it he saw several knights sitting in a trance; then he pulled off their rings and put them on his own fingers. In another room he saw on a table a sword and a loaf of bread, which he also took. Further on he came to a room where a beautiful young lady sat upon a couch; and she welcomed him joyfully, and said, if he would set her free from the spell that bound her, the kingdom should be his, if he would come back in a year and marry her. Then she told him that the well that held the Water of Life was in the palace gardens; and bade him make haste, and draw what he wanted before the clock struck twelve. + +He walked on; and as he walked through beautiful gardens he came to a delightful shady spot in which stood a couch; and he thought to himself, as he felt tired, that he would rest himself for a while, and gaze on the lovely scenes around him. So he laid himself down, and sleep fell upon him unawares, so that he did not wake up till the clock was striking a quarter to twelve. Then he sprang from the couch dreadfully frightened, ran to the well, filled a cup that was standing by him full of water, and hastened to get away in time. Just as he was going out of the iron door it struck twelve, and the door fell so quickly upon him that it snapped off a piece of his heel. + +When he found himself safe, he was overjoyed to think that he had got the Water of Life; and as he was going on his way homewards, he passed by the little dwarf, who, when he saw the sword and the loaf, said, ’You have made a noble prize; with the sword you can at a blow slay whole armies, and the bread will never fail you.’ Then the prince thought to himself, ’I cannot go home to my father without my brothers’; so he said, ’My dear friend, cannot you tell me where my two brothers are, who set out in search of the Water of Life before me, and never came back?’ ’I have shut them up by a charm between two mountains,’ said the dwarf, ’because they were proud and ill-behaved, and scorned to ask advice.’ The prince begged so hard for his brothers, that the dwarf at last set them free, though unwillingly, saying, ’Beware of them, for they have bad hearts.’ Their brother, however, was greatly rejoiced to see them, and told them all that had happened to him; how he had found the Water of Life, and had taken a cup full of it; and how he had set a beautiful princess free from a spell that bound her; and how she had engaged to wait a whole year, and then to marry him, and to give him the kingdom. + +Then they all three rode on together, and on their way home came to a country that was laid waste by war and a dreadful famine, so that it was feared all must die for want. But the prince gave the king of the land the bread, and all his kingdom ate of it. And he lent the king the wonderful sword, and he slew the enemy’s army with it; and thus the kingdom was once more in peace and plenty. In the same manner he befriended two other countries through which they passed on their way. + +When they came to the sea, they got into a ship and during their voyage the two eldest said to themselves, ’Our brother has got the water which we could not find, therefore our father will forsake us and give him the kingdom, which is our right’; so they were full of envy and revenge, and agreed together how they could ruin him. Then they waited till he was fast asleep, and poured the Water of Life out of the cup, and took it for themselves, giving him bitter sea-water instead. + +When they came to their journey’s end, the youngest son brought his cup to the sick king, that he might drink and be healed. Scarcely, however, had he tasted the bitter sea-water when he became worse even than he was before; and then both the elder sons came in, and blamed the youngest for what they had done; and said that he wanted to poison their father, but that they had found the Water of Life, and had brought it with them. He no sooner began to drink of what they brought him, than he felt his sickness leave him, and was as strong and well as in his younger days. Then they went to their brother, and laughed at him, and said, ’Well, brother, you found the Water of Life, did you? You have had the trouble and we shall have the reward. Pray, with all your cleverness, why did not you manage to keep your eyes open? Next year one of us will take away your beautiful princess, if you do not take care. You had better say nothing about this to our father, for he does not believe a word you say; and if you tell tales, you shall lose your life into the bargain: but be quiet, and we will let you off.’ + +The old king was still very angry with his youngest son, and thought that he really meant to have taken away his life; so he called his court together, and asked what should be done, and all agreed that he ought to be put to death. The prince knew nothing of what was going on, till one day, when the king’s chief huntsmen went a-hunting with him, and they were alone in the wood together, the huntsman looked so sorrowful that the prince said, ’My friend, what is the matter with you?’ ’I cannot and dare not tell you,’ said he. But the prince begged very hard, and said, ’Only tell me what it is, and do not think I shall be angry, for I will forgive you.’ ’Alas!’ said the huntsman; ’the king has ordered me to shoot you.’ The prince started at this, and said, ’Let me live, and I will change dresses with you; you shall take my royal coat to show to my father, and do you give me your shabby one.’ ’With all my heart,’ said the huntsman; ’I am sure I shall be glad to save you, for I could not have shot you.’ Then he took the prince’s coat, and gave him the shabby one, and went away through the wood. + +Some time after, three grand embassies came to the old king’s court, with rich gifts of gold and precious stones for his youngest son; now all these were sent from the three kings to whom he had lent his sword and loaf of bread, in order to rid them of their enemy and feed their people. This touched the old king’s heart, and he thought his son might still be guiltless, and said to his court, ’O that my son were still alive! how it grieves me that I had him killed!’ ’He is still alive,’ said the huntsman; ’and I am glad that I had pity on him, but let him go in peace, and brought home his royal coat.’ At this the king was overwhelmed with joy, and made it known throughout all his kingdom, that if his son would come back to his court he would forgive him. + +Meanwhile the princess was eagerly waiting till her deliverer should come back; and had a road made leading up to her palace all of shining gold; and told her courtiers that whoever came on horseback, and rode straight up to the gate upon it, was her true lover; and that they must let him in: but whoever rode on one side of it, they must be sure was not the right one; and that they must send him away at once. + +The time soon came, when the eldest brother thought that he would make haste to go to the princess, and say that he was the one who had set her free, and that he should have her for his wife, and the kingdom with her. As he came before the palace and saw the golden road, he stopped to look at it, and he thought to himself, ’It is a pity to ride upon this beautiful road’; so he turned aside and rode on the right-hand side of it. But when he came to the gate, the guards, who had seen the road he took, said to him, he could not be what he said he was, and must go about his business. + +The second prince set out soon afterwards on the same errand; and when he came to the golden road, and his horse had set one foot upon it, he stopped to look at it, and thought it very beautiful, and said to himself, ’What a pity it is that anything should tread here!’ Then he too turned aside and rode on the left side of it. But when he came to the gate the guards said he was not the true prince, and that he too must go away about his business; and away he went. + +Now when the full year was come round, the third brother left the forest in which he had lain hid for fear of his father’s anger, and set out in search of his betrothed bride. So he journeyed on, thinking of her all the way, and rode so quickly that he did not even see what the road was made of, but went with his horse straight over it; and as he came to the gate it flew open, and the princess welcomed him with joy, and said he was her deliverer, and should now be her husband and lord of the kingdom. When the first joy at their meeting was over, the princess told him she had heard of his father having forgiven him, and of his wish to have him home again: so, before his wedding with the princess, he went to visit his father, taking her with him. Then he told him everything; how his brothers had cheated and robbed him, and yet that he had borne all those wrongs for the love of his father. And the old king was very angry, and wanted to punish his wicked sons; but they made their escape, and got into a ship and sailed away over the wide sea, and where they went to nobody knew and nobody cared. + +And now the old king gathered together his court, and asked all his kingdom to come and celebrate the wedding of his son and the princess. And young and old, noble and squire, gentle and simple, came at once on the summons; and among the rest came the friendly dwarf, with the sugarloaf hat, and a new scarlet cloak. + + And the wedding was held, and the merry bells run. + And all the good people they danced and they sung, + And feasted and frolick’d I can’t tell how long. \ No newline at end of file diff --git a/dotnet/samples/LearnResources/Resources/Grimms-The-White-Snake.txt b/dotnet/samples/LearnResources/Resources/Grimms-The-White-Snake.txt new file mode 100644 index 000000000000..75ff737109f1 --- /dev/null +++ b/dotnet/samples/LearnResources/Resources/Grimms-The-White-Snake.txt @@ -0,0 +1,28 @@ +The White Snake +By the Grimm Brothers + +A long time ago there lived a king who was famed for his wisdom through all the land. Nothing was hidden from him, and it seemed as if news of the most secret things was brought to him through the air. But he had a strange custom; every day after dinner, when the table was cleared, and no one else was present, a trusty servant had to bring him one more dish. It was covered, however, and even the servant did not know what was in it, neither did anyone know, for the king never took off the cover to eat of it until he was quite alone. + +This had gone on for a long time, when one day the servant, who took away the dish, was overcome with such curiosity that he could not help carrying the dish into his room. When he had carefully locked the door, he lifted up the cover, and saw a white snake lying on the dish. But when he saw it he could not deny himself the pleasure of tasting it, so he cut of a little bit and put it into his mouth. No sooner had it touched his tongue than he heard a strange whispering of little voices outside his window. He went and listened, and then noticed that it was the sparrows who were chattering together, and telling one another of all kinds of things which they had seen in the fields and woods. Eating the snake had given him power of understanding the language of animals. + +Now it so happened that on this very day the queen lost her most beautiful ring, and suspicion of having stolen it fell upon this trusty servant, who was allowed to go everywhere. The king ordered the man to be brought before him, and threatened with angry words that unless he could before the morrow point out the thief, he himself should be looked upon as guilty and executed. In vain he declared his innocence; he was dismissed with no better answer. + +In his trouble and fear he went down into the courtyard and took thought how to help himself out of his trouble. Now some ducks were sitting together quietly by a brook and taking their rest; and, whilst they were making their feathers smooth with their bills, they were having a confidential conversation together. The servant stood by and listened. They were telling one another of all the places where they had been waddling about all the morning, and what good food they had found; and one said in a pitiful tone: ’Something lies heavy on my stomach; as I was eating in haste I swallowed a ring which lay under the queen’s window.’ The servant at once seized her by the neck, carried her to the kitchen, and said to the cook: ’Here is a fine duck; pray, kill her.’ ’Yes,’ said the cook, and weighed her in his hand; ’she has spared no trouble to fatten herself, and has been waiting to be roasted long enough.’ So he cut off her head, and as she was being dressed for the spit, the queen’s ring was found inside her. + +The servant could now easily prove his innocence; and the king, to make amends for the wrong, allowed him to ask a favour, and promised him the best place in the court that he could wish for. The servant refused everything, and only asked for a horse and some money for travelling, as he had a mind to see the world and go about a little. When his request was granted he set out on his way, and one day came to a pond, where he saw three fishes caught in the reeds and gasping for water. Now, though it is said that fishes are dumb, he heard them lamenting that they must perish so miserably, and, as he had a kind heart, he got off his horse and put the three prisoners back into the water. They leapt with delight, put out their heads, and cried to him: ’We will remember you and repay you for saving us!’ + +He rode on, and after a while it seemed to him that he heard a voice in the sand at his feet. He listened, and heard an ant-king complain: ’Why cannot folks, with their clumsy beasts, keep off our bodies? That stupid horse, with his heavy hoofs, has been treading down my people without mercy!’ So he turned on to a side path and the ant-king cried out to him: ’We will remember you–one good turn deserves another!’ + +The path led him into a wood, and there he saw two old ravens standing by their nest, and throwing out their young ones. ’Out with you, you idle, good-for-nothing creatures!’ cried they; ’we cannot find food for you any longer; you are big enough, and can provide for yourselves.’ But the poor young ravens lay upon the ground, flapping their wings, and crying: ’Oh, what helpless chicks we are! We must shift for ourselves, and yet we cannot fly! What can we do, but lie here and starve?’ So the good young fellow alighted and killed his horse with his sword, and gave it to them for food. Then they came hopping up to it, satisfied their hunger, and cried: ’We will remember you–one good turn deserves another!’ + +And now he had to use his own legs, and when he had walked a long way, he came to a large city. There was a great noise and crowd in the streets, and a man rode up on horseback, crying aloud: ’The king’s daughter wants a husband; but whoever seeks her hand must perform a hard task, and if he does not succeed he will forfeit his life.’ Many had already made the attempt, but in vain; nevertheless when the youth saw the king’s daughter he was so overcome by her great beauty that he forgot all danger, went before the king, and declared himself a suitor. + +So he was led out to the sea, and a gold ring was thrown into it, before his eyes; then the king ordered him to fetch this ring up from the bottom of the sea, and added: ’If you come up again without it you will be thrown in again and again until you perish amid the waves.’ All the people grieved for the handsome youth; then they went away, leaving him alone by the sea. + +He stood on the shore and considered what he should do, when suddenly he saw three fishes come swimming towards him, and they were the very fishes whose lives he had saved. The one in the middle held a mussel in its mouth, which it laid on the shore at the youth’s feet, and when he had taken it up and opened it, there lay the gold ring in the shell. Full of joy he took it to the king and expected that he would grant him the promised reward. + +But when the proud princess perceived that he was not her equal in birth, she scorned him, and required him first to perform another task. She went down into the garden and strewed with her own hands ten sacksful of millet-seed on the grass; then she said: ’Tomorrow morning before sunrise these must be picked up, and not a single grain be wanting.’ + +The youth sat down in the garden and considered how it might be possible to perform this task, but he could think of nothing, and there he sat sorrowfully awaiting the break of day, when he should be led to death. But as soon as the first rays of the sun shone into the garden he saw all the ten sacks standing side by side, quite full, and not a single grain was missing. The ant-king had come in the night with thousands and thousands of ants, and the grateful creatures had by great industry picked up all the millet-seed and gathered them into the sacks. + +Presently the king’s daughter herself came down into the garden, and was amazed to see that the young man had done the task she had given him. But she could not yet conquer her proud heart, and said: ’Although he has performed both the tasks, he shall not be my husband until he had brought me an apple from the Tree of Life.’ The youth did not know where the Tree of Life stood, but he set out, and would have gone on for ever, as long as his legs would carry him, though he had no hope of finding it. After he had wandered through three kingdoms, he came one evening to a wood, and lay down under a tree to sleep. But he heard a rustling in the branches, and a golden apple fell into his hand. At the same time three ravens flew down to him, perched themselves upon his knee, and said: ’We are the three young ravens whom you saved from starving; when we had grown big, and heard that you were seeking the Golden Apple, we flew over the sea to the end of the world, where the Tree of Life stands, and have brought you the apple.’ The youth, full of joy, set out homewards, and took the Golden Apple to the king’s beautiful daughter, who had now no more excuses left to make. They cut the Apple of Life in two and ate it together; and then her heart became full of love for him, and they lived in undisturbed happiness to a great age. \ No newline at end of file diff --git a/dotnet/samples/LearnResources/Resources/PopulationByAdmin1.csv b/dotnet/samples/LearnResources/Resources/PopulationByAdmin1.csv new file mode 100644 index 000000000000..7fc6970985da --- /dev/null +++ b/dotnet/samples/LearnResources/Resources/PopulationByAdmin1.csv @@ -0,0 +1,744 @@ +UID,iso2,iso3,code3,Province_State,Country_Region,Lat,Long,Combined_Key,Population +5601,BE,BEL,56,Antwerp,Belgium,51.2195,4.4024,"Antwerp, Belgium",1869730 +5602,BE,BEL,56,Brussels,Belgium,50.8503,4.3517,"Brussels, Belgium",1218255 +5603,BE,BEL,56,East Flanders,Belgium,51.0362,3.7373,"East Flanders, Belgium",1525255 +5604,BE,BEL,56,Flemish Brabant,Belgium,50.9167,4.5833,"Flemish Brabant, Belgium",1155843 +5605,BE,BEL,56,Hainaut,Belgium,50.5257,4.0621,"Hainaut, Belgium",1346840 +5606,BE,BEL,56,Liege,Belgium,50.4496,5.8492,"Liege, Belgium",1109800 +5607,BE,BEL,56,Limburg,Belgium,50.9739,5.342,"Limburg, Belgium",877370 +5608,BE,BEL,56,Luxembourg,Belgium,50.0547,5.4677,"Luxembourg, Belgium",286752 +5609,BE,BEL,56,Namur,Belgium,50.331,4.8221,"Namur, Belgium",495832 +5611,BE,BEL,56,Walloon Brabant,Belgium,50.4,4.35,"Walloon Brabant, Belgium",406019 +5612,BE,BEL,56,West Flanders,Belgium,51.0536,3.1458,"West Flanders, Belgium",1200945 +7601,BR,BRA,76,Acre,Brazil,-9.0238,-70.812,"Acre, Brazil",881935 +7602,BR,BRA,76,Alagoas,Brazil,-9.5713,-36.782,"Alagoas, Brazil",3337357 +7603,BR,BRA,76,Amapa,Brazil,0.902,-52.003,"Amapa, Brazil",845731 +7604,BR,BRA,76,Amazonas,Brazil,-3.4168,-65.8561,"Amazonas, Brazil",4144597 +7605,BR,BRA,76,Bahia,Brazil,-12.5797,-41.7007,"Bahia, Brazil",14873064 +7606,BR,BRA,76,Ceara,Brazil,-5.4984,-39.3206,"Ceara, Brazil",9132078 +7607,BR,BRA,76,Distrito Federal,Brazil,-15.7998,-47.8645,"Distrito Federal, Brazil",3015268 +7608,BR,BRA,76,Espirito Santo,Brazil,-19.1834,-40.3089,"Espirito Santo, Brazil",4018650 +7609,BR,BRA,76,Goias,Brazil,-15.827,-49.8362,"Goias, Brazil",7018354 +7610,BR,BRA,76,Maranhao,Brazil,-4.9609,-45.2744,"Maranhao, Brazil",7075181 +7611,BR,BRA,76,Mato Grosso,Brazil,-12.6819,-56.9211,"Mato Grosso, Brazil",3484466 +7612,BR,BRA,76,Mato Grosso do Sul,Brazil,-20.7722,-54.7852,"Mato Grosso do Sul, Brazil",2778986 +7613,BR,BRA,76,Minas Gerais,Brazil,-18.5122,-44.555,"Minas Gerais, Brazil",21168791 +7614,BR,BRA,76,Para,Brazil,-1.9981,-54.9306,"Para, Brazil",8602865 +7615,BR,BRA,76,Paraiba,Brazil,-7.24,-36.782,"Paraiba, Brazil",4018127 +7616,BR,BRA,76,Parana,Brazil,-25.2521,-52.0215,"Parana, Brazil",11433957 +7617,BR,BRA,76,Pernambuco,Brazil,-8.8137,-36.9541,"Pernambuco, Brazil",9557071 +7618,BR,BRA,76,Piaui,Brazil,-7.7183,-42.7289,"Piaui, Brazil",3273227 +7619,BR,BRA,76,Rio de Janeiro,Brazil,-22.9068,-43.1729,"Rio de Janeiro, Brazil",17264943 +7620,BR,BRA,76,Rio Grande do Norte,Brazil,-5.4026,-36.9541,"Rio Grande do Norte, Brazil",3506853 +7621,BR,BRA,76,Rio Grande do Sul,Brazil,-30.0346,-51.2177,"Rio Grande do Sul, Brazil",11377239 +7622,BR,BRA,76,Rondonia,Brazil,-11.5057,-63.5806,"Rondonia, Brazil",1777225 +7623,BR,BRA,76,Roraima,Brazil,-2.7376,-62.0751,"Roraima, Brazil",605761 +7624,BR,BRA,76,Santa Catarina,Brazil,-27.2423,-50.2189,"Santa Catarina, Brazil",7164788 +7625,BR,BRA,76,Sao Paulo,Brazil,-23.5505,-46.6333,"Sao Paulo, Brazil",45919049 +7626,BR,BRA,76,Sergipe,Brazil,-10.5741,-37.3857,"Sergipe, Brazil",2298696 +7627,BR,BRA,76,Tocantins,Brazil,-10.1753,-48.2982,"Tocantins, Brazil",1572866 +15201,CL,CHL,152,Antofagasta,Chile,-23.6509,-70.3975,"Antofagasta, Chile",607534 +15202,CL,CHL,152,Araucania,Chile,-38.9489,-72.3311,"Araucania, Chile",957224 +15203,CL,CHL,152,Arica y Parinacota,Chile,-18.594,-69.4785,"Arica y Parinacota, Chile",226068 +15204,CL,CHL,152,Atacama,Chile,-27.5661,-70.0503,"Atacama, Chile",288944 +15205,CL,CHL,152,Aysen,Chile,-45.9864,-73.7669,"Aysen, Chile",103158 +15206,CL,CHL,152,Biobio,Chile,-37.4464,-72.1416,"Biobio, Chile",1556805 +15207,CL,CHL,152,Coquimbo,Chile,-29.959,-71.3389,"Coquimbo, Chile",757586 +15208,CL,CHL,152,Los Lagos,Chile,-41.9198,-72.1416,"Los Lagos, Chile",828708 +15209,CL,CHL,152,Los Rios,Chile,-40.231,-72.3311,"Los Rios, Chile",384837 +15210,CL,CHL,152,Magallanes,Chile,-52.368,-70.9863,"Magallanes, Chile",166533 +15211,CL,CHL,152,Maule,Chile,-35.5183,-71.6885,"Maule, Chile",1044950 +15212,CL,CHL,152,Metropolitana,Chile,-33.4376,-70.6505,"Metropolitana, Chile",7112808 +15213,CL,CHL,152,Nuble,Chile,-36.7226,-71.7622,"Nuble, Chile",480609 +15214,CL,CHL,152,OHiggins,Chile,-34.5755,-71.0022,"OHiggins, Chile",914555 +15215,CL,CHL,152,Tarapaca,Chile,-19.9232,-69.5132,"Tarapaca, Chile",330558 +15216,CL,CHL,152,Valparaiso,Chile,-33.0472,-71.6127,"Valparaiso, Chile",1815902 +17001,CO,COL,170,Amazonas,Colombia,-1.4429,-71.5724,"Amazonas, Colombia",76589 +17002,CO,COL,170,Antioquia,Colombia,7.1986,-75.3412,"Antioquia, Colombia",6407102 +17003,CO,COL,170,Arauca,Colombia,7.0762,-70.7105,"Arauca, Colombia",262174 +17004,CO,COL,170,Atlantico,Colombia,10.6966,-74.8741,"Atlantico, Colombia",2535517 +17005,CO,COL,170,Bolivar,Colombia,8.6704,-74.03,"Bolivar, Colombia",2070110 +17006,CO,COL,170,Boyaca,Colombia,5.4545,-73.362,"Boyaca, Colombia",1217376 +17007,CO,COL,170,Caldas,Colombia,5.2983,-75.2479,"Caldas, Colombia",998255 +17008,CO,COL,170,Capital District,Colombia,4.711,-74.0721,"Capital District, Colombia",7412566 +17009,CO,COL,170,Caqueta,Colombia,0.8699,-73.8419,"Caqueta, Colombia",401489 +17010,CO,COL,170,Casanare,Colombia,5.7589,-71.5724,"Casanare, Colombia",420504 +17011,CO,COL,170,Cauca,Colombia,2.705,-76.826,"Cauca, Colombia",1464488 +17012,CO,COL,170,Cesar,Colombia,9.3373,-73.6536,"Cesar, Colombia",1200574 +17013,CO,COL,170,Choco,Colombia,5.2528,-76.826,"Choco, Colombia",534826 +17014,CO,COL,170,Cordoba,Colombia,8.0493,-75.574,"Cordoba, Colombia",1784783 +17015,CO,COL,170,Cundinamarca,Colombia,5.026,-74.03,"Cundinamarca, Colombia",2919060 +17016,CO,COL,170,Guainia,Colombia,2.5854,-68.5247,"Guainia, Colombia",48114 +17017,CO,COL,170,Guaviare,Colombia,1.0654,-73.2603,"Guaviare, Colombia",82767 +17018,CO,COL,170,Huila,Colombia,2.5359,-75.5277,"Huila, Colombia",1100386 +17019,CO,COL,170,La Guajira,Colombia,11.3548,-72.5205,"La Guajira, Colombia",880560 +17020,CO,COL,170,Magdalena,Colombia,10.4113,-74.4057,"Magdalena, Colombia",1341746 +17021,CO,COL,170,Meta,Colombia,3.272,-73.0877,"Meta, Colombia",1039722 +17022,CO,COL,170,Narino,Colombia,1.2892,-77.3579,"Narino, Colombia",1630592 +17023,CO,COL,170,Norte de Santander,Colombia,7.9463,-72.8988,"Norte de Santander, Colombia",1491689 +17024,CO,COL,170,Putumayo,Colombia,0.436,-75.5277,"Putumayo, Colombia",348182 +17025,CO,COL,170,Quindio,Colombia,4.461,-75.6674,"Quindio, Colombia",539904 +17026,CO,COL,170,Risaralda,Colombia,5.3158,-75.9928,"Risaralda, Colombia",943401 +17027,CO,COL,170,San Andres y Providencia,Colombia,12.5567,-81.7185,"San Andres y Providencia, Colombia",61280 +17028,CO,COL,170,Santander,Colombia,6.6437,-73.6536,"Santander, Colombia",2184837 +17029,CO,COL,170,Sucre,Colombia,8.814,-74.7233,"Sucre, Colombia",904863 +17030,CO,COL,170,Tolima,Colombia,4.0925,-75.1545,"Tolima, Colombia",1330187 +17031,CO,COL,170,Valle del Cauca,Colombia,3.8009,-76.6413,"Valle del Cauca, Colombia",4475886 +17032,CO,COL,170,Vaupes,Colombia,0.8554,-70.812,"Vaupes, Colombia",40797 +17033,CO,COL,170,Vichada,Colombia,4.4234,-69.2878,"Vichada, Colombia",107808 +234,FO,FRO,234,Faroe Islands,Denmark,61.8926,-6.9118,"Faroe Islands, Denmark",48865 +304,GL,GRL,304,Greenland,Denmark,71.7069,-42.6043,"Greenland, Denmark",56772 +254,GF,GUF,254,French Guiana,France,4,-53,"French Guiana, France",298682 +258,PF,PYF,258,French Polynesia,France,-17.6797,-149.4068,"French Polynesia, France",280904 +312,GP,GLP,312,Guadeloupe,France,16.265,-61.551,"Guadeloupe, France",400127 +474,MQ,MTQ,474,Martinique,France,14.6415,-61.0242,"Martinique, France",375265 +175,YT,MYT,175,Mayotte,France,-12.8275,45.166244,"Mayotte, France",272813 +540,NC,NCL,540,New Caledonia,France,-20.904305,165.618042,"New Caledonia, France",285491 +638,RE,REU,638,Reunion,France,-21.1151,55.5364,"Reunion, France",895308 +652,BL,BLM,652,Saint Barthelemy,France,17.9,-62.8333,"Saint Barthelemy, France",9885 +666,PM,SPM,666,Saint Pierre and Miquelon,France,46.8852,-56.3159,"Saint Pierre and Miquelon, France",5795 +663,MF,MAF,663,St Martin,France,18.0708,-63.0501,"St Martin, France",38659 +876,WF,WLF,876,Wallis and Futuna,France,-14.2938,-178.1165,"Wallis and Futuna, France",15289 +27601,DE,DEU,276,Baden-Wurttemberg,Germany,48.6616,9.3501,"Baden-Wurttemberg, Germany",11103043 +27602,DE,DEU,276,Bayern,Germany,48.7904,11.4979,"Bayern, Germany",13140183 +27603,DE,DEU,276,Berlin,Germany,52.52,13.405,"Berlin, Germany",3664088 +27604,DE,DEU,276,Brandenburg,Germany,52.4125,12.5316,"Brandenburg, Germany",2531071 +27605,DE,DEU,276,Bremen,Germany,53.0793,8.8017,"Bremen, Germany",680130 +27606,DE,DEU,276,Hamburg,Germany,53.5511,9.9937,"Hamburg, Germany",1852478 +27607,DE,DEU,276,Hessen,Germany,50.6521,9.1624,"Hessen, Germany",6293154 +27608,DE,DEU,276,Mecklenburg-Vorpommern,Germany,53.6127,12.4296,"Mecklenburg-Vorpommern, Germany",1610774 +27609,DE,DEU,276,Niedersachsen,Germany,52.6367,9.8451,"Niedersachsen, Germany",8003421 +27610,DE,DEU,276,Nordrhein-Westfalen,Germany,51.4332,7.6616,"Nordrhein-Westfalen, Germany",17925570 +27611,DE,DEU,276,Rheinland-Pfalz,Germany,50.1183,7.309,"Rheinland-Pfalz, Germany",4098391 +27612,DE,DEU,276,Saarland,Germany,49.3964,7.023,"Saarland, Germany",983991 +27613,DE,DEU,276,Sachsen,Germany,51.1045,13.2017,"Sachsen, Germany",4056941 +27614,DE,DEU,276,Sachsen-Anhalt,Germany,51.9503,11.6923,"Sachsen-Anhalt, Germany",2180684 +27615,DE,DEU,276,Schleswig-Holstein,Germany,54.2194,9.6961,"Schleswig-Holstein, Germany",2910875 +27616,DE,DEU,276,Thuringen,Germany,51.011,10.8453,"Thuringen, Germany",2120237 +35601,IN,IND,356,Andaman and Nicobar Islands,India,11.225999,92.968178,"Andaman and Nicobar Islands, India",417036 +35602,IN,IND,356,Andhra Pradesh,India,15.9129,79.74,"Andhra Pradesh, India",53903393 +35603,IN,IND,356,Arunachal Pradesh,India,27.768456,96.384277,"Arunachal Pradesh, India",1570458 +35604,IN,IND,356,Assam,India,26.357149,92.830441,"Assam, India",35607039 +35605,IN,IND,356,Bihar,India,25.679658,85.60484,"Bihar, India",124799926 +35606,IN,IND,356,Chandigarh,India,30.733839,76.768278,"Chandigarh, India",1158473 +35607,IN,IND,356,Chhattisgarh,India,21.264705,82.035366,"Chhattisgarh, India",29436231 +35608,IN,IND,356,Dadra and Nagar Haveli and Daman and Diu,India,20.194742,73.080901,"Dadra and Nagar Haveli and Daman and Diu, India",615724 +35609,IN,IND,356,Delhi,India,28.646519,77.10898,"Delhi, India",18710922 +35610,IN,IND,356,Goa,India,15.359682,74.057396,"Goa, India",1586250 +35611,IN,IND,356,Gujarat,India,22.694884,71.590923,"Gujarat, India",63872399 +35612,IN,IND,356,Haryana,India,29.20004,76.332824,"Haryana, India",28204692 +35613,IN,IND,356,Himachal Pradesh,India,31.927213,77.233081,"Himachal Pradesh, India",7451955 +35614,IN,IND,356,Jammu and Kashmir,India,33.75943,76.612638,"Jammu and Kashmir, India",13606320 +35615,IN,IND,356,Jharkhand,India,23.654536,85.557631,"Jharkhand, India",38593948 +35616,IN,IND,356,Karnataka,India,14.70518,76.166436,"Karnataka, India",67562686 +35617,IN,IND,356,Kerala,India,10.450898,76.405749,"Kerala, India",35699443 +35618,IN,IND,356,Ladakh,India,34.1526,77.5771,"Ladakh, India",274289 +35619,IN,IND,356,Madhya Pradesh,India,23.541513,78.289633,"Madhya Pradesh, India",85358965 +35620,IN,IND,356,Maharashtra,India,19.449759,76.108221,"Maharashtra, India",123144223 +35621,IN,IND,356,Manipur,India,24.738975,93.882541,"Manipur, India",3091545 +35622,IN,IND,356,Meghalaya,India,25.536934,91.278882,"Meghalaya, India",3366710 +35623,IN,IND,356,Mizoram,India,23.309381,92.83822,"Mizoram, India",1239244 +35624,IN,IND,356,Nagaland,India,26.06702,94.470302,"Nagaland, India",2249695 +35625,IN,IND,356,Odisha,India,20.505428,84.418059,"Odisha, India",46356334 +35626,IN,IND,356,Puducherry,India,11.882658,78.86498,"Puducherry, India",1413542 +35627,IN,IND,356,Punjab,India,30.841465,75.40879,"Punjab, India",30141373 +35628,IN,IND,356,Rajasthan,India,26.583423,73.847973,"Rajasthan, India",81032689 +35629,IN,IND,356,Sikkim,India,27.571671,88.472712,"Sikkim, India",690251 +35630,IN,IND,356,Tamil Nadu,India,11.006091,78.400624,"Tamil Nadu, India",77841267 +35631,IN,IND,356,Telangana,India,18.1124,79.0193,"Telangana, India",39362732 +35632,IN,IND,356,Tripura,India,23.746783,91.743565,"Tripura, India",4169794 +35633,IN,IND,356,Uttar Pradesh,India,26.925425,80.560982,"Uttar Pradesh, India",237882725 +35634,IN,IND,356,Uttarakhand,India,30.156447,79.197608,"Uttarakhand, India",11250858 +35635,IN,IND,356,West Bengal,India,23.814082,87.979803,"West Bengal, India",99609303 +35637,IN,IND,356,Lakshadweep,India,13.6999972,72.1833326,"Lakshadweep, India",64429 +38013,IT,ITA,380,Abruzzo,Italy,42.35122196,13.39843823,"Abruzzo, Italy",1311580 +38017,IT,ITA,380,Basilicata,Italy,40.63947052,15.80514834,"Basilicata, Italy",562869 +38018,IT,ITA,380,Calabria,Italy,38.90597598,16.59440194,"Calabria, Italy",1947131 +38015,IT,ITA,380,Campania,Italy,40.83956555,14.25084984,"Campania, Italy",5801692 +38008,IT,ITA,380,Emilia-Romagna,Italy,44.49436681,11.3417208,"Emilia-Romagna, Italy",4459477 +38006,IT,ITA,380,Friuli Venezia Giulia,Italy,45.6494354,13.76813649,"Friuli Venezia Giulia, Italy",1215220 +38012,IT,ITA,380,Lazio,Italy,41.89277044,12.48366722,"Lazio, Italy",5879082 +38007,IT,ITA,380,Liguria,Italy,44.41149315,8.9326992,"Liguria, Italy",1550640 +38003,IT,ITA,380,Lombardia,Italy,45.46679409,9.190347404,"Lombardia, Italy",10060574 +38011,IT,ITA,380,Marche,Italy,43.61675973,13.5188753,"Marche, Italy",1525271 +38014,IT,ITA,380,Molise,Italy,41.55774754,14.65916051,"Molise, Italy",305617 +38041,IT,ITA,380,P.A. Bolzano,Italy,46.49933453,11.35662422,"P.A. Bolzano, Italy",532318 +38042,IT,ITA,380,P.A. Trento,Italy,46.06893511,11.12123097,"P.A. Trento, Italy",541418 +38001,IT,ITA,380,Piemonte,Italy,45.0732745,7.680687483,"Piemonte, Italy",4356406 +38016,IT,ITA,380,Puglia,Italy,41.12559576,16.86736689,"Puglia, Italy",4029053 +38020,IT,ITA,380,Sardegna,Italy,39.21531192,9.110616306,"Sardegna, Italy",1639591 +38019,IT,ITA,380,Sicilia,Italy,38.11569725,13.3623567,"Sicilia, Italy",4999891 +38009,IT,ITA,380,Toscana,Italy,43.76923077,11.25588885,"Toscana, Italy",3729641 +38010,IT,ITA,380,Umbria,Italy,43.10675841,12.38824698,"Umbria, Italy",882015 +38002,IT,ITA,380,Valle d'Aosta,Italy,45.73750286,7.320149366,"Valle d'Aosta, Italy",125666 +38005,IT,ITA,380,Veneto,Italy,45.43490485,12.33845213,"Veneto, Italy",4905854 +39201,JP,JPN,392,Aichi,Japan,35.035551,137.211621,"Aichi, Japan",7552239 +39202,JP,JPN,392,Akita,Japan,39.748679,140.408228,"Akita, Japan",966490 +39203,JP,JPN,392,Aomori,Japan,40.781541,140.828896,"Aomori, Japan",1246371 +39204,JP,JPN,392,Chiba,Japan,35.510141,140.198917,"Chiba, Japan",6259382 +39205,JP,JPN,392,Ehime,Japan,33.624835,132.856842,"Ehime, Japan",1339215 +39206,JP,JPN,392,Fukui,Japan,35.846614,136.224654,"Fukui, Japan",767937 +39207,JP,JPN,392,Fukuoka,Japan,33.526032,130.666949,"Fukuoka, Japan",5103679 +39208,JP,JPN,392,Fukushima,Japan,37.378867,140.223295,"Fukushima, Japan",1845519 +39209,JP,JPN,392,Gifu,Japan,35.778671,137.055925,"Gifu, Japan",1986587 +39210,JP,JPN,392,Gunma,Japan,36.504479,138.985605,"Gunma, Japan",1942456 +39211,JP,JPN,392,Hiroshima,Japan,34.605309,132.788719,"Hiroshima, Japan",2804177 +39212,JP,JPN,392,Hokkaido,Japan,43.385711,142.552318,"Hokkaido, Japan",5250049 +39213,JP,JPN,392,Hyogo,Japan,35.039913,134.828057,"Hyogo, Japan",5466190 +39214,JP,JPN,392,Ibaraki,Japan,36.303588,140.319591,"Ibaraki, Japan",2860307 +39215,JP,JPN,392,Ishikawa,Japan,36.769464,136.771027,"Ishikawa, Japan",1137649 +39216,JP,JPN,392,Iwate,Japan,39.593287,141.361777,"Iwate, Japan",1226816 +39217,JP,JPN,392,Kagawa,Japan,34.217292,133.969047,"Kagawa, Japan",956347 +39218,JP,JPN,392,Kagoshima,Japan,31.009484,130.430665,"Kagoshima, Japan",1602273 +39219,JP,JPN,392,Kanagawa,Japan,35.415312,139.338983,"Kanagawa, Japan",9198268 +39220,JP,JPN,392,Kochi,Japan,33.422519,133.367307,"Kochi, Japan",698029 +39221,JP,JPN,392,Kumamoto,Japan,32.608154,130.745231,"Kumamoto, Japan",1747567 +39222,JP,JPN,392,Kyoto,Japan,35.253815,135.443341,"Kyoto, Japan",2582957 +39223,JP,JPN,392,Mie,Japan,34.508018,136.376013,"Mie, Japan",1780882 +39224,JP,JPN,392,Miyagi,Japan,38.446859,140.927086,"Miyagi, Japan",2306365 +39225,JP,JPN,392,Miyazaki,Japan,32.193204,131.299374,"Miyazaki, Japan",1073301 +39226,JP,JPN,392,Nagano,Japan,36.132134,138.045528,"Nagano, Japan",2048790 +39227,JP,JPN,392,Nagasaki,Japan,33.235712,129.608033,"Nagasaki, Japan",1326524 +39228,JP,JPN,392,Nara,Japan,34.317451,135.871644,"Nara, Japan",1330123 +39229,JP,JPN,392,Niigata,Japan,37.521819,138.918647,"Niigata, Japan",2223106 +39230,JP,JPN,392,Oita,Japan,33.200697,131.43324,"Oita, Japan",1135434 +39231,JP,JPN,392,Okayama,Japan,34.89246,133.826252,"Okayama, Japan",1889586 +39232,JP,JPN,392,Okinawa,Japan,25.768923,126.668016,"Okinawa, Japan",1453168 +39233,JP,JPN,392,Osaka,Japan,34.620965,135.507481,"Osaka, Japan",8809363 +39234,JP,JPN,392,Saga,Japan,33.286977,130.115738,"Saga, Japan",814711 +39235,JP,JPN,392,Saitama,Japan,35.997101,139.347635,"Saitama, Japan",7349693 +39236,JP,JPN,392,Shiga,Japan,35.215827,136.138064,"Shiga, Japan",1413943 +39237,JP,JPN,392,Shimane,Japan,35.07076,132.554064,"Shimane, Japan",674346 +39238,JP,JPN,392,Shizuoka,Japan,34.916975,138.407784,"Shizuoka, Japan",3643528 +39239,JP,JPN,392,Tochigi,Japan,36.689912,139.819213,"Tochigi, Japan",1933990 +39240,JP,JPN,392,Tokushima,Japan,33.919178,134.242091,"Tokushima, Japan",727977 +39241,JP,JPN,392,Tokyo,Japan,35.711343,139.446921,"Tokyo, Japan",13920663 +39242,JP,JPN,392,Tottori,Japan,35.359069,133.863619,"Tottori, Japan",555558 +39243,JP,JPN,392,Toyama,Japan,36.637464,137.269346,"Toyama, Japan",1043502 +39244,JP,JPN,392,Wakayama,Japan,33.911879,135.505446,"Wakayama, Japan",924933 +39245,JP,JPN,392,Yamagata,Japan,38.448396,140.102154,"Yamagata, Japan",1077666 +39246,JP,JPN,392,Yamaguchi,Japan,34.20119,131.573293,"Yamaguchi, Japan",1358336 +39247,JP,JPN,392,Yamanashi,Japan,35.612364,138.611489,"Yamanashi, Japan",810956 +45801,MY,MYS,458,Johor,Malaysia,1.4854,103.7618,"Johor, Malaysia",3768200 +45802,MY,MYS,458,Kedah,Malaysia,6.1184,100.3685,"Kedah, Malaysia",2185900 +45803,MY,MYS,458,Kelantan,Malaysia,6.1254,102.2381,"Kelantan, Malaysia",1892200 +45804,MY,MYS,458,Melaka,Malaysia,2.1896,102.2501,"Melaka, Malaysia",932700 +45805,MY,MYS,458,Negeri Sembilan,Malaysia,2.7258,101.9424,"Negeri Sembilan, Malaysia",1132100 +45806,MY,MYS,458,Pahang,Malaysia,3.8126,103.3256,"Pahang, Malaysia",1677100 +45807,MY,MYS,458,Perak,Malaysia,4.5921,101.0901,"Perak, Malaysia",2514300 +45808,MY,MYS,458,Perlis,Malaysia,6.4449,100.2048,"Perlis, Malaysia",254600 +45809,MY,MYS,458,Pulau Pinang,Malaysia,5.4141,100.3288,"Pulau Pinang, Malaysia",1777600 +45810,MY,MYS,458,Sabah,Malaysia,5.9788,116.0753,"Sabah, Malaysia",3904700 +45811,MY,MYS,458,Sarawak,Malaysia,1.5533,110.3592,"Sarawak, Malaysia",2818100 +45812,MY,MYS,458,Selangor,Malaysia,3.0738,101.5183,"Selangor, Malaysia",6541900 +45813,MY,MYS,458,Terengganu,Malaysia,5.3117,103.1324,"Terengganu, Malaysia",1250100 +45814,MY,MYS,458,W.P. Kuala Lumpur,Malaysia,3.139,101.6869,"W.P. Kuala Lumpur, Malaysia",1778400 +45815,MY,MYS,458,W.P. Labuan,Malaysia,5.2831,115.2308,"W.P. Labuan, Malaysia",99400 +45816,MY,MYS,458,W.P. Putrajaya,Malaysia,2.9264,101.6964,"W.P. Putrajaya, Malaysia",105400 +48401,MX,MEX,484,Aguascalientes,Mexico,21.8853,-102.2916,"Aguascalientes, Mexico",1434635 +48402,MX,MEX,484,Baja California,Mexico,30.8406,-115.2838,"Baja California, Mexico",3634868 +48403,MX,MEX,484,Baja California Sur,Mexico,26.0444,-111.6661,"Baja California Sur, Mexico",804708 +48404,MX,MEX,484,Campeche,Mexico,19.8301,-90.5349,"Campeche, Mexico",1000617 +48405,MX,MEX,484,Chiapas,Mexico,16.7569,-93.1292,"Chiapas, Mexico",5730367 +48406,MX,MEX,484,Chihuahua,Mexico,28.633,-106.0691,"Chihuahua, Mexico",3801487 +48407,MX,MEX,484,Ciudad de Mexico,Mexico,19.4326,-99.1332,"Ciudad de Mexico, Mexico",9018645 +48408,MX,MEX,484,Coahuila,Mexico,27.0587,-101.7068,"Coahuila, Mexico",3218720 +48409,MX,MEX,484,Colima,Mexico,19.1223,-104.0072,"Colima, Mexico",785153 +48410,MX,MEX,484,Durango,Mexico,24.5593,-104.6588,"Durango, Mexico",1868996 +48411,MX,MEX,484,Guanajuato,Mexico,21.019,-101.2574,"Guanajuato, Mexico",6228175 +48412,MX,MEX,484,Guerrero,Mexico,17.4392,-99.5451,"Guerrero, Mexico",3657048 +48413,MX,MEX,484,Hidalgo,Mexico,20.0911,-98.7624,"Hidalgo, Mexico",3086414 +48414,MX,MEX,484,Jalisco,Mexico,20.6595,-103.3494,"Jalisco, Mexico",8409693 +48415,MX,MEX,484,Mexico,Mexico,19.4969,-99.7233,"Mexico, Mexico",17427790 +48416,MX,MEX,484,Michoacan,Mexico,19.5665,-101.7068,"Michoacan, Mexico",4825401 +48417,MX,MEX,484,Morelos,Mexico,18.6813,-99.1013,"Morelos, Mexico",2044058 +48418,MX,MEX,484,Nayarit,Mexico,21.7514,-104.8455,"Nayarit, Mexico",1288571 +48419,MX,MEX,484,Nuevo Leon,Mexico,25.5922,-99.9962,"Nuevo Leon, Mexico",5610153 +48420,MX,MEX,484,Oaxaca,Mexico,17.0732,-96.7266,"Oaxaca, Mexico",4143593 +48421,MX,MEX,484,Puebla,Mexico,19.0414,-98.2063,"Puebla, Mexico",6604451 +48422,MX,MEX,484,Queretaro,Mexico,20.5888,-100.3899,"Queretaro, Mexico",2279637 +48423,MX,MEX,484,Quintana Roo,Mexico,19.1817,-88.4791,"Quintana Roo, Mexico",1723259 +48424,MX,MEX,484,San Luis Potosi,Mexico,22.1565,-100.9855,"San Luis Potosi, Mexico",2866142 +48425,MX,MEX,484,Sinaloa,Mexico,25.1721,-107.4795,"Sinaloa, Mexico",3156674 +48426,MX,MEX,484,Sonora,Mexico,29.2972,-110.3309,"Sonora, Mexico",3074745 +48427,MX,MEX,484,Tabasco,Mexico,17.8409,-92.6189,"Tabasco, Mexico",2572287 +48428,MX,MEX,484,Tamaulipas,Mexico,24.2669,-98.8363,"Tamaulipas, Mexico",3650602 +48429,MX,MEX,484,Tlaxcala,Mexico,19.3139,-98.2404,"Tlaxcala, Mexico",1380011 +48430,MX,MEX,484,Veracruz,Mexico,19.1738,-96.1342,"Veracruz, Mexico",8539862 +48431,MX,MEX,484,Yucatan,Mexico,20.7099,-89.0943,"Yucatan, Mexico",2259098 +48432,MX,MEX,484,Zacatecas,Mexico,22.7709,-102.5832,"Zacatecas, Mexico",1666426 +49801,MD,MDA,498,Anenii Noi,Moldova,46.8833,29.2167,"Anenii Noi, Moldova",81710 +49802,MD,MDA,498,Balti,Moldova,47.754,27.9184,"Balti, Moldova",127561 +49803,MD,MDA,498,Basarabeasca,Moldova,46.3333,28.9667,"Basarabeasca, Moldova",28978 +49804,MD,MDA,498,Bender,Moldova,46.8228,29.462,"Bender, Moldova",91197 +49805,MD,MDA,498,Briceni,Moldova,48.36,27.0858,"Briceni, Moldova",78027 +49806,MD,MDA,498,Cahul,Moldova,45.9167,28.1833,"Cahul, Moldova",119231 +49807,MD,MDA,498,Calarasi,Moldova,47.25,28.3,"Calarasi, Moldova",75075 +49808,MD,MDA,498,Camenca,Moldova,48.0319,28.6978,"Camenca, Moldova",8871 +49809,MD,MDA,498,Cantemir,Moldova,46.2854,28.1979,"Cantemir, Moldova",60001 +49810,MD,MDA,498,Causeni,Moldova,46.6333,29.4,"Causeni, Moldova",90612 +49811,MD,MDA,498,Ceadir-Lunga,Moldova,46.057,28.826,"Ceadir-Lunga, Moldova",16605 +49812,MD,MDA,498,Chisinau,Moldova,47.0105,28.8638,"Chisinau, Moldova",712218 +49813,MD,MDA,498,Cimislia,Moldova,46.5289,28.7838,"Cimislia, Moldova",60925 +49814,MD,MDA,498,Comrat,Moldova,46.2956,28.6549,"Comrat, Moldova",72254 +49815,MD,MDA,498,Criuleni,Moldova,47.212,29.1617,"Criuleni, Moldova",46442 +49816,MD,MDA,498,Donduseni,Moldova,48.2372,27.6104,"Donduseni, Moldova",87092 +49817,MD,MDA,498,Drochia,Moldova,48.0333,27.75,"Drochia, Moldova",43015 +49818,MD,MDA,498,Dubasari,Moldova,47.267,29.167,"Dubasari, Moldova",28500 +49819,MD,MDA,498,Edinet,Moldova,48.1667,27.3167,"Edinet, Moldova",90320 +49820,MD,MDA,498,Falesti,Moldova,47.5,27.72,"Falesti, Moldova",89389 +49821,MD,MDA,498,Floresti,Moldova,47.8933,28.3014,"Floresti, Moldova",155646 +49822,MD,MDA,498,Glodeni,Moldova,47.7667,27.5167,"Glodeni, Moldova",119762 +49823,MD,MDA,498,Grigoriopol,Moldova,47.1536,29.2964,"Grigoriopol, Moldova",9381 +49824,MD,MDA,498,Hincesti,Moldova,46.8167,28.5833,"Hincesti, Moldova",97704 +49825,MD,MDA,498,Ialoveni,Moldova,46.9439,28.7772,"Ialoveni, Moldova",51056 +49826,MD,MDA,498,Leova,Moldova,46.4806,28.2644,"Leova, Moldova",64924 +49827,MD,MDA,498,Nisporeni,Moldova,47.0833,28.1833,"Nisporeni, Moldova",56510 +49828,MD,MDA,498,Ocnita,Moldova,48.4061,27.4859,"Ocnita, Moldova",116271 +49829,MD,MDA,498,Orhei,Moldova,47.3735,28.822,"Orhei, Moldova",48105 +49830,MD,MDA,498,Rezina,Moldova,47.7333,28.95,"Rezina, Moldova",69454 +49831,MD,MDA,498,Ribnita,Moldova,47.7667,29,"Ribnita, Moldova",47949 +49832,MD,MDA,498,Riscani,Moldova,47.9679,27.5565,"Riscani, Moldova",87153 +49833,MD,MDA,498,Singerei,Moldova,47.6333,28.15,"Singerei, Moldova",42227 +49834,MD,MDA,498,Slobozia,Moldova,46.7333,29.7,"Slobozia, Moldova",14618 +49835,MD,MDA,498,Soldanesti,Moldova,47.8167,28.8,"Soldanesti, Moldova",94986 +49836,MD,MDA,498,Soroca,Moldova,48.1618,28.3011,"Soroca, Moldova",70594 +49837,MD,MDA,498,Stefan Voda,Moldova,46.5153,29.5297,"Stefan Voda, Moldova",88900 +49838,MD,MDA,498,Straseni,Moldova,47.1333,28.6167,"Straseni, Moldova",43154 +49839,MD,MDA,498,Taraclia,Moldova,45.9,28.6667,"Taraclia, Moldova",70126 +49840,MD,MDA,498,Telenesti,Moldova,47.5032,28.3535,"Telenesti, Moldova",383806 +49841,MD,MDA,498,Tiraspol,Moldova,46.85,29.6333,"Tiraspol, Moldova",133807 +49842,MD,MDA,498,Transnistria,Moldova,47.2153,29.463,"Transnistria, Moldova",110545 +49843,MD,MDA,498,Ungheni,Moldova,47.2077,27.8073,"Ungheni, Moldova",30804 +49844,MD,MDA,498,Vulcanesti,Moldova,45.6833,28.4042,"Vulcanesti, Moldova",12185 +52801,NL,NLD,528,Drenthe,Netherlands,52.862485,6.618435,"Drenthe, Netherlands",493682 +52802,NL,NLD,528,Flevoland,Netherlands,52.550383,5.515162,"Flevoland, Netherlands",423021 +52803,NL,NLD,528,Friesland,Netherlands,53.087337,5.7925,"Friesland, Netherlands",649957 +52804,NL,NLD,528,Gelderland,Netherlands,52.061738,5.939114,"Gelderland, Netherlands",2085952 +52805,NL,NLD,528,Groningen,Netherlands,53.217922,6.741514,"Groningen, Netherlands",585866 +52806,NL,NLD,528,Limburg,Netherlands,51.209227,5.93387,"Limburg, Netherlands",1117201 +52807,NL,NLD,528,Noord-Brabant,Netherlands,51.561174,5.184942,"Noord-Brabant, Netherlands",2562955 +52808,NL,NLD,528,Noord-Holland,Netherlands,52.600906,4.918688,"Noord-Holland, Netherlands",2879527 +52809,NL,NLD,528,Overijssel,Netherlands,52.444558,6.441722,"Overijssel, Netherlands",1162406 +52810,NL,NLD,528,Utrecht,Netherlands,52.084251,5.163824,"Utrecht, Netherlands",1354834 +52811,NL,NLD,528,Zeeland,Netherlands,51.47936,3.861559,"Zeeland, Netherlands",383488 +52812,NL,NLD,528,Zuid-Holland,Netherlands,51.937835,4.462114,"Zuid-Holland, Netherlands",3708696 +533,AW,ABW,533,Aruba,Netherlands,12.5211,-69.9683,"Aruba, Netherlands",106766 +531,CW,CUW,531,Curacao,Netherlands,12.1696,-68.99,"Curacao, Netherlands",164100 +534,SX,SXM,534,Sint Maarten,Netherlands,18.0425,-63.0548,"Sint Maarten, Netherlands",42882 +535,BQ,BES,535,"Bonaire, Sint Eustatius and Saba",Netherlands,12.1784,-68.2385,"Bonaire, Sint Eustatius and Saba, Netherlands",26221 +184,CK,COK,184,Cook Islands,New Zealand,-21.2367,-159.7777,"Cook Islands, New Zealand",17459 +570,NU,NIU,570,Niue,New Zealand,-19.0544,-169.8672,"Niue, New Zealand",1650 +56601,NG,NGA,566,Abia,Nigeria,5.4527,7.5248,"Abia, Nigeria",3727347 +56602,NG,NGA,566,Adamawa,Nigeria,9.3265,12.3984,"Adamawa, Nigeria",4248436 +56603,NG,NGA,566,Akwa Ibom,Nigeria,4.9057,7.8537,"Akwa Ibom, Nigeria",5482177 +56604,NG,NGA,566,Anambra,Nigeria,6.2209,6.937,"Anambra, Nigeria",5527809 +56605,NG,NGA,566,Bauchi,Nigeria,10.7761,9.9992,"Bauchi, Nigeria",6537314 +56606,NG,NGA,566,Bayelsa,Nigeria,4.7719,6.0699,"Bayelsa, Nigeria",2277961 +56607,NG,NGA,566,Benue,Nigeria,7.3369,8.7404,"Benue, Nigeria",5741815 +56608,NG,NGA,566,Borno,Nigeria,11.8846,13.152,"Borno, Nigeria",5860183 +56609,NG,NGA,566,Cross River,Nigeria,5.8702,8.5988,"Cross River, Nigeria",3866269 +56610,NG,NGA,566,Delta,Nigeria,5.704,5.9339,"Delta, Nigeria",5663362 +56611,NG,NGA,566,Ebonyi,Nigeria,6.2649,8.0137,"Ebonyi, Nigeria",2880383 +56612,NG,NGA,566,Edo,Nigeria,6.6342,5.9304,"Edo, Nigeria",4235595 +56613,NG,NGA,566,Ekiti,Nigeria,7.719,5.311,"Ekiti, Nigeria",3270798 +56614,NG,NGA,566,Enugu,Nigeria,6.5364,7.4356,"Enugu, Nigeria",4411119 +56615,NG,NGA,566,Federal Capital Territory,Nigeria,8.8941,7.186,"Federal Capital Territory, Nigeria",3564126 +56616,NG,NGA,566,Gombe,Nigeria,10.3638,11.1928,"Gombe, Nigeria",3256962 +56617,NG,NGA,566,Imo,Nigeria,5.572,7.0588,"Imo, Nigeria",5408756 +56618,NG,NGA,566,Jigawa,Nigeria,12.228,9.5616,"Jigawa, Nigeria",5828163 +56619,NG,NGA,566,Kaduna,Nigeria,10.3764,7.7095,"Kaduna, Nigeria",8252366 +56620,NG,NGA,566,Kano,Nigeria,11.7471,8.5247,"Kano, Nigeria",13076892 +56621,NG,NGA,566,Katsina,Nigeria,12.3797,7.6306,"Katsina, Nigeria",7831319 +56622,NG,NGA,566,Kebbi,Nigeria,11.4942,4.2333,"Kebbi, Nigeria",4440050 +56623,NG,NGA,566,Kogi,Nigeria,7.7337,6.6906,"Kogi, Nigeria",4473490 +56624,NG,NGA,566,Kwara,Nigeria,8.9669,4.3874,"Kwara, Nigeria",3192893 +56625,NG,NGA,566,Lagos,Nigeria,6.5236,3.6006,"Lagos, Nigeria",12550598 +56626,NG,NGA,566,Nasarawa,Nigeria,8.4998,8.1997,"Nasarawa, Nigeria",2523395 +56627,NG,NGA,566,Niger,Nigeria,9.9309,5.5983,"Niger, Nigeria",5556247 +56628,NG,NGA,566,Ogun,Nigeria,6.998,3.4737,"Ogun, Nigeria",5217716 +56629,NG,NGA,566,Ondo,Nigeria,6.9149,5.1478,"Ondo, Nigeria",4671695 +56630,NG,NGA,566,Osun,Nigeria,7.5629,4.52,"Osun, Nigeria",4705589 +56631,NG,NGA,566,Oyo,Nigeria,8.1574,3.6147,"Oyo, Nigeria",7840864 +56632,NG,NGA,566,Plateau,Nigeria,9.2182,9.5179,"Plateau, Nigeria",4200442 +56633,NG,NGA,566,Rivers,Nigeria,4.8396,6.9112,"Rivers, Nigeria",7303924 +56634,NG,NGA,566,Sokoto,Nigeria,13.0533,5.3223,"Sokoto, Nigeria",4998090 +56635,NG,NGA,566,Taraba,Nigeria,7.9994,10.774,"Taraba, Nigeria",3066834 +56636,NG,NGA,566,Yobe,Nigeria,12.2939,11.439,"Yobe, Nigeria",3294137 +56637,NG,NGA,566,Zamfara,Nigeria,12.1222,6.2236,"Zamfara, Nigeria",4515427 +58601,PK,PAK,586,Azad Jammu and Kashmir,Pakistan,34.027401,73.947253,"Azad Jammu and Kashmir, Pakistan",4045366 +58602,PK,PAK,586,Balochistan,Pakistan,28.328492,65.898403,"Balochistan, Pakistan",12344408 +58603,PK,PAK,586,Gilgit-Baltistan,Pakistan,35.792146,74.982138,"Gilgit-Baltistan, Pakistan",1013584 +58604,PK,PAK,586,Islamabad,Pakistan,33.665087,73.121219,"Islamabad, Pakistan",2006572 +58605,PK,PAK,586,Khyber Pakhtunkhwa,Pakistan,34.485332,72.09169,"Khyber Pakhtunkhwa, Pakistan",30523371 +58606,PK,PAK,586,Punjab,Pakistan,30.811346,72.139132,"Punjab, Pakistan",110012442 +58607,PK,PAK,586,Sindh,Pakistan,26.009446,68.776807,"Sindh, Pakistan",47886051 +60401,PE,PER,604,Amazonas,Peru,-5.077253,-78.050172,"Amazonas, Peru",426800 +60402,PE,PER,604,Ancash,Peru,-9.407125,-77.671795,"Ancash, Peru",1180600 +60403,PE,PER,604,Apurimac,Peru,-14.027713,-72.975378,"Apurimac, Peru",430700 +60404,PE,PER,604,Arequipa,Peru,-15.843524,-72.475539,"Arequipa, Peru",1497400 +60405,PE,PER,604,Ayacucho,Peru,-14.091648,-74.08344,"Ayacucho, Peru",668200 +60406,PE,PER,604,Cajamarca,Peru,-6.430284,-78.745596,"Cajamarca, Peru",1453700 +60407,PE,PER,604,Callao,Peru,-11.954609,-77.136042,"Callao, Peru",1129900 +60408,PE,PER,604,Cusco,Peru,-13.191068,-72.153609,"Cusco, Peru",1357100 +60409,PE,PER,604,Huancavelica,Peru,-13.023888,-75.00277,"Huancavelica, Peru",365300 +60410,PE,PER,604,Huanuco,Peru,-9.421676,-76.040642,"Huanuco, Peru",760300 +60411,PE,PER,604,Ica,Peru,-14.235097,-75.574821,"Ica, Peru",975200 +60412,PE,PER,604,Junin,Peru,-11.541783,-74.876968,"Junin, Peru",1361500 +60413,PE,PER,604,La Libertad,Peru,-7.92139,-78.370238,"La Libertad, Peru",2016800 +60414,PE,PER,604,Lambayeque,Peru,-6.353049,-79.824113,"Lambayeque, Peru",1310800 +60415,PE,PER,604,Lima,Peru,-11.766533,-76.604498,"Lima, Peru",10628500 +60416,PE,PER,604,Loreto,Peru,-4.124847,-74.424115,"Loreto, Peru",1027600 +60417,PE,PER,604,Madre de Dios,Peru,-11.972699,-70.53172,"Madre de Dios, Peru",173800 +60418,PE,PER,604,Moquegua,Peru,-16.860271,-70.839046,"Moquegua, Peru",192700 +60419,PE,PER,604,Pasco,Peru,-10.39655,-75.307635,"Pasco, Peru",271900 +60420,PE,PER,604,Piura,Peru,-5.133361,-80.335861,"Piura, Peru",2048000 +60421,PE,PER,604,Puno,Peru,-14.995827,-69.922726,"Puno, Peru",1238000 +60422,PE,PER,604,San Martin,Peru,-7.039531,-76.729127,"San Martin, Peru",899600 +60423,PE,PER,604,Tacna,Peru,-17.644161,-70.27756,"Tacna, Peru",371000 +60424,PE,PER,604,Tumbes,Peru,-3.857496,-80.545255,"Tumbes, Peru",251500 +60425,PE,PER,604,Ucayali,Peru,-9.621718,-73.444929,"Ucayali, Peru",589100 +61601,PL,POL,616,Dolnoslaskie,Poland,51.134,16.8842,"Dolnoslaskie, Poland",2901225 +61602,PL,POL,616,Kujawsko-pomorskie,Poland,53.1648,18.4834,"Kujawsko-pomorskie, Poland",2077775 +61603,PL,POL,616,Lubelskie,Poland,51.2494,23.1011,"Lubelskie, Poland",2117619 +61604,PL,POL,616,Lubuskie,Poland,52.2275,15.2559,"Lubuskie, Poland",1014548 +61605,PL,POL,616,Lodzkie,Poland,51.4635,19.1727,"Lodzkie, Poland",2466322 +61606,PL,POL,616,Malopolskie,Poland,49.7225,20.2503,"Malopolskie, Poland",3400577 +61607,PL,POL,616,Mazowieckie,Poland,51.8927,21.0022,"Mazowieckie, Poland",5403412 +61608,PL,POL,616,Opolskie,Poland,50.8004,17.938,"Opolskie, Poland",986506 +61609,PL,POL,616,Podkarpackie,Poland,50.0575,22.0896,"Podkarpackie, Poland",2129015 +61610,PL,POL,616,Podlaskie,Poland,53.0697,22.9675,"Podlaskie, Poland",1181533 +61611,PL,POL,616,Pomorskie,Poland,54.2944,18.1531,"Pomorskie, Poland",2333523 +61612,PL,POL,616,Slaskie,Poland,50.5717,19.322,"Slaskie, Poland",4533565 +61613,PL,POL,616,Swietokrzyskie,Poland,50.6261,20.9406,"Swietokrzyskie, Poland",1241546 +61614,PL,POL,616,Warminsko-mazurskie,Poland,53.8671,20.7028,"Warminsko-mazurskie, Poland",1428983 +61615,PL,POL,616,Wielkopolskie,Poland,52.28,17.3523,"Wielkopolskie, Poland",3493969 +61616,PL,POL,616,Zachodniopomorskie,Poland,53.4658,15.1823,"Zachodniopomorskie, Poland",1701030 +64201,RO,ROU,642,Alba,Romania,46.1559,23.5556,"Alba, Romania",74000 +64202,RO,ROU,642,Arad,Romania,46.176,21.319,"Arad, Romania",409072 +64203,RO,ROU,642,Arges,Romania,45.0723,24.8143,"Arges, Romania",612431 +64204,RO,ROU,642,Bacau,Romania,46.5833,26.9167,"Bacau, Romania",616168 +64205,RO,ROU,642,Bihor,Romania,47.0158,22.1723,"Bihor, Romania",575398 +64206,RO,ROU,642,Bistrita-Nasaud,Romania,47.2486,24.5323,"Bistrita-Nasaud, Romania",277861 +64207,RO,ROU,642,Botosani,Romania,47.745,26.6621,"Botosani, Romania",412626 +64208,RO,ROU,642,Braila,Romania,45.271,27.9743,"Braila, Romania",304925 +64209,RO,ROU,642,Brasov,Romania,45.6667,25.6167,"Brasov, Romania",549217 +64210,RO,ROU,642,Bucuresti,Romania,44.4268,26.1025,"Bucuresti, Romania",1883425 +64211,RO,ROU,642,Buzau,Romania,45.1667,26.8167,"Buzau, Romania",432054 +64212,RO,ROU,642,Calarasi,Romania,44.2085,27.3137,"Calarasi, Romania",285050 +64213,RO,ROU,642,Caras-Severin,Romania,45.114,22.0741,"Caras-Severin, Romania",274277 +64214,RO,ROU,642,Cluj,Romania,46.7667,23.5833,"Cluj, Romania",691106 +64215,RO,ROU,642,Constanta,Romania,44.1773,28.6529,"Constanta, Romania",684082 +64216,RO,ROU,642,Covasna,Romania,45.8446,26.1687,"Covasna, Romania",210177 +64217,RO,ROU,642,Dambovita,Romania,44.929,25.4254,"Dambovita, Romania",518745 +64218,RO,ROU,642,Dolj,Romania,44.1623,23.6325,"Dolj, Romania",660544 +64219,RO,ROU,642,Galati,Romania,45.4382,28.0563,"Galati, Romania",536167 +64220,RO,ROU,642,Giurgiu,Romania,43.9008,25.9739,"Giurgiu, Romania",265494 +64221,RO,ROU,642,Gorj,Romania,44.9486,23.2427,"Gorj, Romania",334238 +64222,RO,ROU,642,Harghita,Romania,46.4929,25.6457,"Harghita, Romania",304969 +64223,RO,ROU,642,Hunedoara,Romania,45.7697,22.9203,"Hunedoara, Romania",396253 +64224,RO,ROU,642,Ialomita,Romania,44.6031,27.379,"Ialomita, Romania",258669 +64225,RO,ROU,642,Iasi,Romania,47.1598,27.5872,"Iasi, Romania",772348 +64226,RO,ROU,642,Ilfov,Romania,44.5355,26.2325,"Ilfov, Romania",388738 +64227,RO,ROU,642,Maramures,Romania,47.6738,23.7456,"Maramures, Romania",516562 +64228,RO,ROU,642,Mehedinti,Romania,44.5515,22.9044,"Mehedinti, Romania",254570 +64229,RO,ROU,642,Mures,Romania,46.557,24.6723,"Mures, Romania",550846 +64230,RO,ROU,642,Neamt,Romania,46.9759,26.3819,"Neamt, Romania",470766 +64231,RO,ROU,642,Olt,Romania,44.2008,24.5023,"Olt, Romania",415530 +64232,RO,ROU,642,Prahova,Romania,45.0892,26.0829,"Prahova, Romania",762886 +64233,RO,ROU,642,Salaj,Romania,47.2091,23.2122,"Salaj, Romania",224384 +64234,RO,ROU,642,Satu Mare,Romania,47.79,22.89,"Satu Mare, Romania",329079 +64235,RO,ROU,642,Sibiu,Romania,45.7969,24.15,"Sibiu, Romania",375992 +64236,RO,ROU,642,Suceava,Romania,47.6514,26.2556,"Suceava, Romania",634810 +64237,RO,ROU,642,Teleorman,Romania,44.016,25.2987,"Teleorman, Romania",360178 +64238,RO,ROU,642,Timis,Romania,45.8139,21.3331,"Timis, Romania",683540 +64239,RO,ROU,642,Tulcea,Romania,45.1767,28.8052,"Tulcea, Romania",201462 +64240,RO,ROU,642,Valcea,Romania,45.0798,24.0835,"Valcea, Romania",355320 +64241,RO,ROU,642,Vaslui,Romania,46.6381,27.7288,"Vaslui, Romania",395500 +64242,RO,ROU,642,Vrancea,Romania,45.8135,27.0658,"Vrancea, Romania",340310 +64301,RU,RUS,643,Adygea Republic,Russia,44.6939006,40.1520421,"Adygea Republic, Russia",453376 +64302,RU,RUS,643,Altai Krai,Russia,52.6932243,82.6931424,"Altai Krai, Russia",2350080 +64303,RU,RUS,643,Altai Republic,Russia,50.7114101,86.8572186,"Altai Republic, Russia",218063 +64304,RU,RUS,643,Amur Oblast,Russia,52.8032368,128.437295,"Amur Oblast, Russia",798424 +64305,RU,RUS,643,Arkhangelsk Oblast,Russia,63.5589686,43.1221646,"Arkhangelsk Oblast, Russia",1155028 +64306,RU,RUS,643,Astrakhan Oblast,Russia,47.1878186,47.608851,"Astrakhan Oblast, Russia",1017514 +64307,RU,RUS,643,Bashkortostan Republic,Russia,54.8573563,57.1439682,"Bashkortostan Republic, Russia",4063293 +64308,RU,RUS,643,Belgorod Oblast,Russia,50.7080119,37.5837615,"Belgorod Oblast, Russia",1549876 +64309,RU,RUS,643,Bryansk Oblast,Russia,52.8873315,33.415853,"Bryansk Oblast, Russia",1210982 +64310,RU,RUS,643,Buryatia Republic,Russia,52.7182426,109.492143,"Buryatia Republic, Russia",984511 +64311,RU,RUS,643,Chechen Republic,Russia,43.3976147,45.6985005,"Chechen Republic, Russia",1436981 +64312,RU,RUS,643,Chelyabinsk Oblast,Russia,54.4223954,61.1865846,"Chelyabinsk Oblast, Russia",3493036 +64313,RU,RUS,643,Chukotka Autonomous Okrug,Russia,66.0006475,169.4900869,"Chukotka Autonomous Okrug, Russia",49348 +64314,RU,RUS,643,Chuvashia Republic,Russia,55.4259922,47.0849429,"Chuvashia Republic, Russia",1231117 +64315,RU,RUS,643,Dagestan Republic,Russia,43.0574916,47.1332224,"Dagestan Republic, Russia",3063885 +64316,RU,RUS,643,Ingushetia Republic,Russia,43.11542075,45.01713552,"Ingushetia Republic, Russia",488043 +64317,RU,RUS,643,Irkutsk Oblast,Russia,56.6370122,104.719221,"Irkutsk Oblast, Russia",2404195 +64318,RU,RUS,643,Ivanovo Oblast,Russia,56.9167446,41.4352137,"Ivanovo Oblast, Russia",1014646 +64319,RU,RUS,643,Jewish Autonomous Okrug,Russia,48.57527615,132.6630746,"Jewish Autonomous Okrug, Russia",162014 +64320,RU,RUS,643,Kabardino-Balkarian Republic,Russia,43.4806048,43.5978976,"Kabardino-Balkarian Republic, Russia",865828 +64321,RU,RUS,643,Kaliningrad Oblast,Russia,54.7293041,21.1489473,"Kaliningrad Oblast, Russia",994599 +64322,RU,RUS,643,Kalmykia Republic,Russia,46.2313018,45.3275745,"Kalmykia Republic, Russia",275413 +64323,RU,RUS,643,Kaluga Oblast,Russia,54.4382773,35.5272854,"Kaluga Oblast, Russia",1012056 +64324,RU,RUS,643,Kamchatka Krai,Russia,57.1914882,160.0383819,"Kamchatka Krai, Russia",315557 +64325,RU,RUS,643,Karachay-Cherkess Republic,Russia,43.7368326,41.7267991,"Karachay-Cherkess Republic, Russia",466305 +64326,RU,RUS,643,Karelia Republic,Russia,62.6194031,33.4920267,"Karelia Republic, Russia",622484 +64327,RU,RUS,643,Kemerovo Oblast,Russia,54.5335781,87.342861,"Kemerovo Oblast, Russia",2694877 +64328,RU,RUS,643,Khabarovsk Krai,Russia,51.6312684,136.121524,"Khabarovsk Krai, Russia",1328302 +64329,RU,RUS,643,Khakassia Republic,Russia,53.72258845,91.44293627,"Khakassia Republic, Russia",537513 +64330,RU,RUS,643,Khanty-Mansi Autonomous Okrug,Russia,61.0259025,69.0982628,"Khanty-Mansi Autonomous Okrug, Russia",1532243 +64331,RU,RUS,643,Kirov Oblast,Russia,57.9665589,49.4074599,"Kirov Oblast, Russia",1283238 +64332,RU,RUS,643,Komi Republic,Russia,63.9881421,54.3326073,"Komi Republic, Russia",840873 +64333,RU,RUS,643,Kostroma Oblast,Russia,58.424756,44.2533273,"Kostroma Oblast, Russia",643324 +64334,RU,RUS,643,Krasnodar Krai,Russia,45.7684014,39.0261044,"Krasnodar Krai, Russia",5603420 +64335,RU,RUS,643,Krasnoyarsk Krai,Russia,63.3233807,97.0979974,"Krasnoyarsk Krai, Russia",2876497 +64336,RU,RUS,643,Kurgan Oblast,Russia,55.7655302,64.5632681,"Kurgan Oblast, Russia",845537 +64337,RU,RUS,643,Kursk Oblast,Russia,51.6568453,36.4852695,"Kursk Oblast, Russia",1115237 +64338,RU,RUS,643,Leningrad Oblast,Russia,60.1853296,32.3925325,"Leningrad Oblast, Russia",1813816 +64339,RU,RUS,643,Lipetsk Oblast,Russia,52.6935178,39.1122664,"Lipetsk Oblast, Russia",1150201 +64340,RU,RUS,643,Magadan Oblast,Russia,62.48858785,153.9903764,"Magadan Oblast, Russia",144091 +64341,RU,RUS,643,Mari El Republic,Russia,56.5767504,47.8817512,"Mari El Republic, Russia",682333 +64342,RU,RUS,643,Mordovia Republic,Russia,54.4419829,44.4661144,"Mordovia Republic, Russia",805056 +64343,RU,RUS,643,Moscow,Russia,55.7504461,37.6174943,"Moscow, Russia",12506468 +64344,RU,RUS,643,Moscow Oblast,Russia,55.5043158,38.0353929,"Moscow Oblast, Russia",7503385 +64345,RU,RUS,643,Murmansk Oblast,Russia,68.0000418,33.9999151,"Murmansk Oblast, Russia",753557 +64346,RU,RUS,643,Nenets Autonomous Okrug,Russia,68.27557185,57.1686375,"Nenets Autonomous Okrug, Russia",43997 +64347,RU,RUS,643,Nizhny Novgorod Oblast,Russia,55.4718033,44.0911594,"Nizhny Novgorod Oblast, Russia",3234752 +64348,RU,RUS,643,North Ossetia - Alania Republic,Russia,42.7933611,44.6324493,"North Ossetia - Alania Republic, Russia",701765 +64349,RU,RUS,643,Novgorod Oblast,Russia,58.2843833,32.5169757,"Novgorod Oblast, Russia",606476 +64350,RU,RUS,643,Novosibirsk Oblast,Russia,54.9720169,79.4813924,"Novosibirsk Oblast, Russia",2788849 +64351,RU,RUS,643,Omsk Oblast,Russia,56.0935263,73.5099936,"Omsk Oblast, Russia",1960081 +64352,RU,RUS,643,Orel Oblast,Russia,52.9685433,36.0692477,"Orel Oblast, Russia",747247 +64353,RU,RUS,643,Orenburg Oblast,Russia,52.0269262,54.7276647,"Orenburg Oblast, Russia",1977720 +64354,RU,RUS,643,Penza Oblast,Russia,53.1655415,44.7879181,"Penza Oblast, Russia",1331655 +64355,RU,RUS,643,Perm Krai,Russia,58.5951603,56.3159546,"Perm Krai, Russia",2623122 +64356,RU,RUS,643,Primorsky Krai,Russia,45.0819456,134.726645,"Primorsky Krai, Russia",1913037 +64357,RU,RUS,643,Pskov Oblast,Russia,57.5358729,28.8586826,"Pskov Oblast, Russia",636546 +64358,RU,RUS,643,Rostov Oblast,Russia,47.6222451,40.7957942,"Rostov Oblast, Russia",4220452 +64359,RU,RUS,643,Ryazan Oblast,Russia,54.4226732,40.5705246,"Ryazan Oblast, Russia",1121474 +64360,RU,RUS,643,Saint Petersburg,Russia,59.9606739,30.1586551,"Saint Petersburg, Russia",5351935 +64361,RU,RUS,643,Sakha (Yakutiya) Republic,Russia,66.941626,129.642371,"Sakha (Yakutiya) Republic, Russia",964330 +64362,RU,RUS,643,Sakhalin Oblast,Russia,49.7219665,143.448533,"Sakhalin Oblast, Russia",490181 +64363,RU,RUS,643,Samara Oblast,Russia,53.2128813,50.8914633,"Samara Oblast, Russia",3193514 +64364,RU,RUS,643,Saratov Oblast,Russia,51.6520555,46.8631952,"Saratov Oblast, Russia",2462950 +64365,RU,RUS,643,Smolensk Oblast,Russia,55.0343496,33.0192065,"Smolensk Oblast, Russia",949348 +64366,RU,RUS,643,Stavropol Krai,Russia,44.8632577,43.4406913,"Stavropol Krai, Russia",2800674 +64367,RU,RUS,643,Sverdlovsk Oblast,Russia,58.6414755,61.8021546,"Sverdlovsk Oblast, Russia",4325256 +64368,RU,RUS,643,Tambov Oblast,Russia,52.9019574,41.3578918,"Tambov Oblast, Russia",1033552 +64369,RU,RUS,643,Tatarstan Republic,Russia,55.7648572,52.43104273,"Tatarstan Republic, Russia",3894284 +64370,RU,RUS,643,Tomsk Oblast,Russia,58.6124279,82.0475315,"Tomsk Oblast, Russia",1078280 +64371,RU,RUS,643,Tula Oblast,Russia,53.9570701,37.3690909,"Tula Oblast, Russia",1491855 +64372,RU,RUS,643,Tver Oblast,Russia,57.1134475,35.1744428,"Tver Oblast, Russia",1283873 +64373,RU,RUS,643,Tyumen Oblast,Russia,58.8206488,70.3658837,"Tyumen Oblast, Russia",3692400 +64374,RU,RUS,643,Tyva Republic,Russia,51.4017149,93.8582593,"Tyva Republic, Russia",321722 +64375,RU,RUS,643,Udmurt Republic,Russia,57.1961165,52.6959832,"Udmurt Republic, Russia",1513044 +64376,RU,RUS,643,Ulyanovsk Oblast,Russia,54.1463177,47.2324921,"Ulyanovsk Oblast, Russia",1246618 +64377,RU,RUS,643,Vladimir Oblast,Russia,56.0503336,40.6561633,"Vladimir Oblast, Russia",1378337 +64378,RU,RUS,643,Volgograd Oblast,Russia,49.6048339,44.2903582,"Volgograd Oblast, Russia",2521276 +64379,RU,RUS,643,Vologda Oblast,Russia,60.0391461,43.1215213,"Vologda Oblast, Russia",1176689 +64380,RU,RUS,643,Voronezh Oblast,Russia,50.9800393,40.1506507,"Voronezh Oblast, Russia",2333768 +64381,RU,RUS,643,Yamalo-Nenets Autonomous Okrug,Russia,67.1471631,74.3415488,"Yamalo-Nenets Autonomous Okrug, Russia",538547 +64382,RU,RUS,643,Yaroslavl Oblast,Russia,57.7781976,39.0021095,"Yaroslavl Oblast, Russia",1265684 +64383,RU,RUS,643,Zabaykalsky Krai,Russia,52.248521,115.956325,"Zabaykalsky Krai, Russia",1072806 +70301,SK,SVK,703,Banska Bystrica,Slovakia,48.7363,19.1462,"Banska Bystrica, Slovakia",657119 +70302,SK,SVK,703,Bratislava,Slovakia,48.1486,17.107,"Bratislava, Slovakia",603699 +70303,SK,SVK,703,Kosice,Slovakia,48.7164,21.2611,"Kosice, Slovakia",771947 +70304,SK,SVK,703,Nitra,Slovakia,48.3061,18.0764,"Nitra, Slovakia",708498 +70305,SK,SVK,703,Presov,Slovakia,49.0018,21.2393,"Presov, Slovakia",798596 +70306,SK,SVK,703,Trencin,Slovakia,48.8849,18.0335,"Trencin, Slovakia",600386 +70307,SK,SVK,703,Trnava,Slovakia,48.3709,17.5833,"Trnava, Slovakia",554172 +70308,SK,SVK,703,Zilina,Slovakia,49.2194,18.7408,"Zilina, Slovakia",694763 +72401,ES,ESP,724,Andalusia,Spain,37.5443,-4.7278,"Andalusia, Spain",8427405 +72402,ES,ESP,724,Aragon,Spain,41.5976,-0.9057,"Aragon, Spain",1320586 +72403,ES,ESP,724,Asturias,Spain,43.3614,-5.8593,"Asturias, Spain",1022205 +72404,ES,ESP,724,Baleares,Spain,39.710358,2.995148,"Baleares, Spain",1188220 +72405,ES,ESP,724,Canarias,Spain,28.2916,-16.6291,"Canarias, Spain",2206901 +72406,ES,ESP,724,Cantabria,Spain,43.1828,-3.9878,"Cantabria, Spain",581641 +72407,ES,ESP,724,Castilla - La Mancha,Spain,39.2796,-3.0977,"Castilla - La Mancha, Spain",2034877 +72408,ES,ESP,724,Castilla y Leon,Spain,41.8357,-4.3976,"Castilla y Leon, Spain",2407733 +72409,ES,ESP,724,Catalonia,Spain,41.5912,1.5209,"Catalonia, Spain",7566431 +72410,ES,ESP,724,Ceuta,Spain,35.8894,-5.3213,"Ceuta, Spain",84829 +72411,ES,ESP,724,C. Valenciana,Spain,39.484,-0.7533,"C. Valenciana, Spain",4974969 +72412,ES,ESP,724,Extremadura,Spain,39.4937,-6.0679,"Extremadura, Spain",1065424 +72413,ES,ESP,724,Galicia,Spain,42.5751,-8.1339,"Galicia, Spain",2700441 +72414,ES,ESP,724,Madrid,Spain,40.4168,-3.7038,"Madrid, Spain",6641649 +72415,ES,ESP,724,Melilla,Spain,35.2923,-2.9381,"Melilla, Spain",84689 +72416,ES,ESP,724,Murcia,Spain,37.9922,-1.1307,"Murcia, Spain",1487663 +72417,ES,ESP,724,Navarra,Spain,42.6954,-1.6761,"Navarra, Spain",649946 +72418,ES,ESP,724,Pais Vasco,Spain,42.9896,-2.6189,"Pais Vasco, Spain",2177880 +72419,ES,ESP,724,La Rioja,Spain,42.2871,-2.5396,"La Rioja, Spain",313571 +75201,SE,SWE,752,Blekinge,Sweden,56.2784,15.018,"Blekinge, Sweden",159606 +75202,SE,SWE,752,Dalarna,Sweden,61.0917,14.6664,"Dalarna, Sweden",287966 +75203,SE,SWE,752,Gavleborg,Sweden,61.3012,16.1534,"Gavleborg, Sweden",287382 +75204,SE,SWE,752,Gotland,Sweden,57.4684,18.4867,"Gotland, Sweden",59686 +75205,SE,SWE,752,Halland,Sweden,56.8967,12.8034,"Halland, Sweden",333848 +75206,SE,SWE,752,Jamtland Harjedalen,Sweden,63.1712,14.9592,"Jamtland Harjedalen, Sweden",130810 +75207,SE,SWE,752,Jonkoping,Sweden,57.3708,14.3439,"Jonkoping, Sweden",363599 +75208,SE,SWE,752,Kalmar,Sweden,57.235,16.1849,"Kalmar, Sweden",245446 +75209,SE,SWE,752,Kronoberg,Sweden,56.7183,14.4115,"Kronoberg, Sweden",201469 +75210,SE,SWE,752,Norrbotten,Sweden,66.8309,20.3992,"Norrbotten, Sweden",250093 +75211,SE,SWE,752,Orebro,Sweden,59.535,15.0066,"Orebro, Sweden",304805 +75212,SE,SWE,752,Ostergotland,Sweden,58.3454,15.5198,"Ostergotland, Sweden",465495 +75213,SE,SWE,752,Skane,Sweden,55.9903,13.5958,"Skane, Sweden",1377827 +75214,SE,SWE,752,Sormland,Sweden,59.0336,16.7519,"Sormland, Sweden",297540 +75215,SE,SWE,752,Stockholm,Sweden,59.6025,18.1384,"Stockholm, Sweden",2377081 +75216,SE,SWE,752,Uppsala,Sweden,60.0092,17.2715,"Uppsala, Sweden",383713 +75217,SE,SWE,752,Varmland,Sweden,59.7294,13.2354,"Varmland, Sweden",282414 +75218,SE,SWE,752,Vasterbotten,Sweden,65.3337,16.5162,"Vasterbotten, Sweden",271736 +75219,SE,SWE,752,Vasternorrland,Sweden,63.4276,17.7292,"Vasternorrland, Sweden",245347 +75220,SE,SWE,752,Vastmanland,Sweden,59.6714,16.2159,"Vastmanland, Sweden",275845 +75221,SE,SWE,752,Vastra Gotaland,Sweden,58.2528,13.0596,"Vastra Gotaland, Sweden",1725881 +80401,UA,UKR,804,Cherkasy Oblast,Ukraine,49.4444,32.0598,"Cherkasy Oblast, Ukraine",1206351 +80402,UA,UKR,804,Chernihiv Oblast,Ukraine,51.4982,31.2893,"Chernihiv Oblast, Ukraine",1005745 +80403,UA,UKR,804,Chernivtsi Oblast,Ukraine,48.2917,25.9352,"Chernivtsi Oblast, Ukraine",904374 +80404,UA,UKR,804,Crimea Republic*,Ukraine,45.2835,34.2008,"Crimea Republic*, Ukraine",1913731 +80405,UA,UKR,804,Dnipropetrovsk Oblast,Ukraine,48.4647,35.0462,"Dnipropetrovsk Oblast, Ukraine",3206477 +80406,UA,UKR,804,Donetsk Oblast,Ukraine,48.0159,37.8028,"Donetsk Oblast, Ukraine",4165901 +80407,UA,UKR,804,Ivano-Frankivsk Oblast,Ukraine,48.9226,24.7111,"Ivano-Frankivsk Oblast, Ukraine",1373252 +80408,UA,UKR,804,Kharkiv Oblast,Ukraine,49.9935,36.2304,"Kharkiv Oblast, Ukraine",2675598 +80409,UA,UKR,804,Kherson Oblast,Ukraine,46.6354,32.6169,"Kherson Oblast, Ukraine",1037640 +80410,UA,UKR,804,Khmelnytskyi Oblast,Ukraine,49.423,26.9871,"Khmelnytskyi Oblast, Ukraine",1264705 +80411,UA,UKR,804,Kiev,Ukraine,50.4501,30.5234,"Kiev, Ukraine",2950800 +80412,UA,UKR,804,Kiev Oblast,Ukraine,50.053,30.7667,"Kiev Oblast, Ukraine",1767940 +80413,UA,UKR,804,Kirovohrad Oblast,Ukraine,48.5079,32.2623,"Kirovohrad Oblast, Ukraine",945549 +80414,UA,UKR,804,Luhansk Oblast,Ukraine,48.574,39.3078,"Luhansk Oblast, Ukraine",2151833 +80415,UA,UKR,804,Lviv Oblast,Ukraine,49.8397,24.0297,"Lviv Oblast, Ukraine",2522021 +80416,UA,UKR,804,Mykolaiv Oblast,Ukraine,46.975,31.9946,"Mykolaiv Oblast, Ukraine",2522021 +80417,UA,UKR,804,Odessa Oblast,Ukraine,46.4846,30.7326,"Odessa Oblast, Ukraine",2380308 +80418,UA,UKR,804,Poltava Oblast,Ukraine,49.5883,34.5514,"Poltava Oblast, Ukraine",1400439 +80419,UA,UKR,804,Rivne Oblast,Ukraine,50.6199,26.2516,"Rivne Oblast, Ukraine",1157301 +80420,UA,UKR,804,Sevastopol*,Ukraine,44.6054,33.522,"Sevastopol*, Ukraine",443211 +80421,UA,UKR,804,Sumy Oblast,Ukraine,50.9077,34.7981,"Sumy Oblast, Ukraine",1081418 +80422,UA,UKR,804,Ternopil Oblast,Ukraine,49.5535,25.5948,"Ternopil Oblast, Ukraine",1045879 +80423,UA,UKR,804,Vinnytsia Oblast,Ukraine,49.2331,28.4682,"Vinnytsia Oblast, Ukraine",1560394 +80424,UA,UKR,804,Volyn Oblast,Ukraine,50.7472,25.3254,"Volyn Oblast, Ukraine",1035330 +80425,UA,UKR,804,Zakarpattia Oblast,Ukraine,48.6208,22.2879,"Zakarpattia Oblast, Ukraine",1256802 +80426,UA,UKR,804,Zaporizhia Oblast,Ukraine,47.8388,35.1396,"Zaporizhia Oblast, Ukraine",1705836 +80427,UA,UKR,804,Zhytomyr Oblast,Ukraine,50.2547,28.6587,"Zhytomyr Oblast, Ukraine",1220193 +82601,GB,GBR,826,England,United Kingdom,52.3555,-1.1743,"England, United Kingdom",55977200 +82602,GB,GBR,826,Northern Ireland,United Kingdom,54.7877,-6.4923,"Northern Ireland, United Kingdom",1881600 +82603,GB,GBR,826,Scotland,United Kingdom,56.4907,-4.2026,"Scotland, United Kingdom",5463300 +82604,GB,GBR,826,Wales,United Kingdom,52.1307,-3.7837,"Wales, United Kingdom",3138600 +60,BM,BMU,60,Bermuda,United Kingdom,32.3078,-64.7505,"Bermuda, United Kingdom",62273 +92,VG,VGB,92,British Virgin Islands,United Kingdom,18.4207,-64.64,"British Virgin Islands, United Kingdom",30237 +136,KY,CYM,136,Cayman Islands,United Kingdom,19.3133,-81.2546,"Cayman Islands, United Kingdom",65720 +8261,GB,GBR,826,Channel Islands,United Kingdom,49.3723,-2.3644,"Channel Islands, United Kingdom",170499 +831,GG,GGY,831,Guernsey,United Kingdom,49.448196,-2.58949,"Guernsey, United Kingdom",63000 +832,JE,JEY,832,Jersey,United Kingdom,49.2138,-2.1358,"Jersey, United Kingdom",109300 +238,FK,FLK,238,Falkland Islands (Malvinas),United Kingdom,-51.7963,-59.5236,"Falkland Islands (Malvinas), United Kingdom",3483 +292,GI,GIB,292,Gibraltar,United Kingdom,36.1408,-5.3536,"Gibraltar, United Kingdom",33691 +833,IM,IMN,833,Isle of Man,United Kingdom,54.2361,-4.5481,"Isle of Man, United Kingdom",85032 +500,MS,MSR,500,Montserrat,United Kingdom,16.742498,-62.187366,"Montserrat, United Kingdom",4999 +796,TC,TCA,796,Turks and Caicos Islands,United Kingdom,21.694,-71.7979,"Turks and Caicos Islands, United Kingdom",38718 +612,PN,PCN,612,Pitcairn Islands,United Kingdom,-24.3768,-128.3242,"Pitcairn Islands, United Kingdom",67 +660,AI,AIA,660,Anguilla,United Kingdom,18.2206,-63.0686,"Anguilla, United Kingdom",15002 +654,SH,SHN,654,"Saint Helena, Ascension and Tristan da Cunha",United Kingdom,-7.9467,-14.3559,"Saint Helena, Ascension and Tristan da Cunha, United Kingdom",5661 +3601,AU,AUS,36,Australian Capital Territory,Australia,-35.4735,149.0124,"Australian Capital Territory, Australia",428100 +3602,AU,AUS,36,New South Wales,Australia,-33.8688,151.2093,"New South Wales, Australia",8118000 +3603,AU,AUS,36,Northern Territory,Australia,-12.4634,130.8456,"Northern Territory, Australia",245600 +3604,AU,AUS,36,Queensland,Australia,-27.4698,153.0251,"Queensland, Australia",5115500 +3605,AU,AUS,36,South Australia,Australia,-34.9285,138.6007,"South Australia, Australia",1756500 +3606,AU,AUS,36,Tasmania,Australia,-42.8821,147.3272,"Tasmania, Australia",535500 +3607,AU,AUS,36,Victoria,Australia,-37.8136,144.9631,"Victoria, Australia",6629900 +3608,AU,AUS,36,Western Australia,Australia,-31.9505,115.8605,"Western Australia, Australia",2630600 +12401,CA,CAN,124,Alberta,Canada,53.9333,-116.5765,"Alberta, Canada",4442879 +12402,CA,CAN,124,British Columbia,Canada,53.7267,-127.6476,"British Columbia, Canada",5214805 +12403,CA,CAN,124,Manitoba,Canada,53.7609,-98.8139,"Manitoba, Canada",1383765 +12404,CA,CAN,124,New Brunswick,Canada,46.5653,-66.4619,"New Brunswick, Canada",789225 +12405,CA,CAN,124,Newfoundland and Labrador,Canada,53.1355,-57.6604,"Newfoundland and Labrador, Canada",520553 +12406,CA,CAN,124,Northwest Territories,Canada,64.8255,-124.8457,"Northwest Territories,Canada",45504 +12407,CA,CAN,124,Nova Scotia,Canada,44.682,-63.7443,"Nova Scotia, Canada",992055 +12408,CA,CAN,124,Ontario,Canada,51.2538,-85.3232,"Ontario, Canada",14826276 +12409,CA,CAN,124,Prince Edward Island,Canada,46.5107,-63.4168,"Prince Edward Island, Canada",164318 +12410,CA,CAN,124,Quebec,Canada,52.9399,-73.5491,"Quebec, Canada",8604495 +12411,CA,CAN,124,Saskatchewan,Canada,52.9399,-106.4509,"Saskatchewan, Canada",1179844 +12412,CA,CAN,124,Yukon,Canada,64.2823,-135,"Yukon, Canada",42986 +12416,CA,CAN,124,Nunavut,Canada,70.2998,-83.1076,"Nunavut, Canada",39403 +15601,CN,CHN,156,Anhui,China,31.8257,117.2264,"Anhui, China",61027171 +15602,CN,CHN,156,Beijing,China,40.1824,116.4142,"Beijing, China",21893095 +15603,CN,CHN,156,Chongqing,China,30.0572,107.874,"Chongqing, China",32054159 +15604,CN,CHN,156,Fujian,China,26.0789,117.9874,"Fujian, China",41540086 +15605,CN,CHN,156,Gansu,China,35.7518,104.2861,"Gansu, China",25019831 +15606,CN,CHN,156,Guangdong,China,23.3417,113.4244,"Guangdong, China",126012510 +15607,CN,CHN,156,Guangxi,China,23.8298,108.7881,"Guangxi, China",50126804 +15608,CN,CHN,156,Guizhou,China,26.8154,106.8748,"Guizhou, China",38562148 +15609,CN,CHN,156,Hainan,China,19.1959,109.7453,"Hainan, China",10081232 +15610,CN,CHN,156,Hebei,China,37.8957,114.9042,"Hebei, China",74610235 +15611,CN,CHN,156,Heilongjiang,China,47.862,127.7615,"Heilongjiang, China",31850088 +15612,CN,CHN,156,Henan,China,33.882,113.614,"Henan, China",99365519 +15613,CN,CHN,156,Hubei,China,30.9756,112.2707,"Hubei, China",57752557 +15614,CN,CHN,156,Hunan,China,27.6104,111.7088,"Hunan, China",66444864 +15615,CN,CHN,156,Inner Mongolia,China,44.0935,113.9448,"Inner Mongolia, China",24049155 +15616,CN,CHN,156,Jiangsu,China,32.9711,119.455,"Jiangsu, China",84748016 +15617,CN,CHN,156,Jiangxi,China,27.614,115.7221,"Jiangxi, China",45188635 +15618,CN,CHN,156,Jilin,China,43.6661,126.1923,"Jilin, China",24073453 +15619,CN,CHN,156,Liaoning,China,41.2956,122.6085,"Liaoning, China",42591407 +15620,CN,CHN,156,Ningxia,China,37.2692,106.1655,"Ningxia, China",7202654 +15621,CN,CHN,156,Qinghai,China,35.7452,95.9956,"Qinghai, China",5923957 +15622,CN,CHN,156,Shaanxi,China,35.1917,108.8701,"Shaanxi, China",39528999 +15623,CN,CHN,156,Shandong,China,36.3427,118.1498,"Shandong, China",101527453 +15624,CN,CHN,156,Shanghai,China,31.202,121.4491,"Shanghai, China",24870895 +15625,CN,CHN,156,Shanxi,China,37.5777,112.2922,"Shanxi, China",34915616 +15626,CN,CHN,156,Sichuan,China,30.6171,102.7103,"Sichuan, China",83674866 +15627,CN,CHN,156,Tianjin,China,39.3054,117.323,"Tianjin, China",13866009 +15628,CN,CHN,156,Tibet,China,31.6927,88.0924,"Tibet, China",3648100 +15629,CN,CHN,156,Xinjiang,China,41.1129,85.2401,"Xinjiang, China",25852345 +15630,CN,CHN,156,Yunnan,China,24.974,101.487,"Yunnan, China",47209277 +15631,CN,CHN,156,Zhejiang,China,29.1832,120.0934,"Zhejiang, China",64567588 +344,HK,HKG,344,Hong Kong,China,22.3,114.2,"Hong Kong, China",7496988 +446,MO,MAC,446,Macau,China,22.1667,113.55,"Macau, China",649342 +16,AS,ASM,16,American Samoa,US,-14.271,-170.132,"American Samoa, US",55641 +316,GU,GUM,316,Guam,US,13.4443,144.7937,"Guam, US",164229 +580,MP,MNP,580,Northern Mariana Islands,US,15.0979,145.6739,"Northern Mariana Islands, US",55144 +850,VI,VIR,850,Virgin Islands,US,18.3358,-64.8963,"Virgin Islands, US",107268 +630,PR,PRI,630,Puerto Rico,US,18.2208,-66.5901,"Puerto Rico, US",3193694 +84000001,US,USA,840,Alabama,US,32.3182,-86.9023,"Alabama, US",4903185 +84000002,US,USA,840,Alaska,US,61.3707,-152.4044,"Alaska, US",731545 +84000004,US,USA,840,Arizona,US,33.7298,-111.4312,"Arizona, US",7278717 +84000005,US,USA,840,Arkansas,US,34.9697,-92.3731,"Arkansas, US",3017804 +84000006,US,USA,840,California,US,36.1162,-119.6816,"California, US",39512223 +84000008,US,USA,840,Colorado,US,39.0598,-105.3111,"Colorado, US",5758736 +84000009,US,USA,840,Connecticut,US,41.5978,-72.7554,"Connecticut, US",3565287 +84000010,US,USA,840,Delaware,US,39.3185,-75.5071,"Delaware, US",973764 +84000011,US,USA,840,District of Columbia,US,38.8974,-77.0268,"District of Columbia, US",705749 +84000012,US,USA,840,Florida,US,27.7663,-81.6868,"Florida, US",21477737 +84000013,US,USA,840,Georgia,US,33.0406,-83.6431,"Georgia, US",10617423 +84000015,US,USA,840,Hawaii,US,21.0943,-157.4983,"Hawaii, US",1415872 +84000016,US,USA,840,Idaho,US,44.2405,-114.4788,"Idaho, US",1787065 +84000017,US,USA,840,Illinois,US,40.3495,-88.9861,"Illinois, US",12671821 +84000018,US,USA,840,Indiana,US,39.8494,-86.2583,"Indiana, US",6732219 +84000019,US,USA,840,Iowa,US,42.0115,-93.2105,"Iowa, US",3155070 +84000020,US,USA,840,Kansas,US,38.5266,-96.7265,"Kansas, US",2913314 +84000021,US,USA,840,Kentucky,US,37.6681,-84.6701,"Kentucky, US",4467673 +84000022,US,USA,840,Louisiana,US,31.1695,-91.8678,"Louisiana, US",4648794 +84000023,US,USA,840,Maine,US,44.6939,-69.3819,"Maine, US",1344212 +84000024,US,USA,840,Maryland,US,39.0639,-76.8021,"Maryland, US",6045680 +84000025,US,USA,840,Massachusetts,US,42.2302,-71.5301,"Massachusetts, US",6892503 +84000026,US,USA,840,Michigan,US,43.3266,-84.5361,"Michigan, US",9986857 +84000027,US,USA,840,Minnesota,US,45.6945,-93.9002,"Minnesota, US",5639632 +84000028,US,USA,840,Mississippi,US,32.7416,-89.6787,"Mississippi, US",2976149 +84000029,US,USA,840,Missouri,US,38.4561,-92.2884,"Missouri, US",6137428 +84000030,US,USA,840,Montana,US,46.9219,-110.4544,"Montana, US",1068778 +84000031,US,USA,840,Nebraska,US,41.1254,-98.2681,"Nebraska, US",1934408 +84000032,US,USA,840,Nevada,US,38.3135,-117.0554,"Nevada, US",3080156 +84000033,US,USA,840,New Hampshire,US,43.4525,-71.5639,"New Hampshire, US",1359711 +84000034,US,USA,840,New Jersey,US,40.2989,-74.521,"New Jersey, US",8882190 +84000035,US,USA,840,New Mexico,US,34.8405,-106.2485,"New Mexico, US",2096829 +84000036,US,USA,840,New York,US,42.1657,-74.9481,"New York, US",19453561 +84000037,US,USA,840,North Carolina,US,35.6301,-79.8064,"North Carolina, US",10488084 +84000038,US,USA,840,North Dakota,US,47.5289,-99.784,"North Dakota, US",762062 +84000039,US,USA,840,Ohio,US,40.3888,-82.7649,"Ohio, US",11689100 +84000040,US,USA,840,Oklahoma,US,35.5653,-96.9289,"Oklahoma, US",3956971 +84000041,US,USA,840,Oregon,US,44.572,-122.0709,"Oregon, US",4217737 +84000042,US,USA,840,Pennsylvania,US,40.5908,-77.2098,"Pennsylvania, US",12801989 +84000044,US,USA,840,Rhode Island,US,41.6809,-71.5118,"Rhode Island, US",1059361 +84000045,US,USA,840,South Carolina,US,33.8569,-80.945,"South Carolina, US",5148714 +84000046,US,USA,840,South Dakota,US,44.2998,-99.4388,"South Dakota, US",884659 +84000047,US,USA,840,Tennessee,US,35.7478,-86.6923,"Tennessee, US",6829174 +84000048,US,USA,840,Texas,US,31.0545,-97.5635,"Texas, US",28995881 +84000049,US,USA,840,Utah,US,40.15,-111.8624,"Utah, US",3205958 +84000050,US,USA,840,Vermont,US,44.0459,-72.7107,"Vermont, US",623989 +84000051,US,USA,840,Virginia,US,37.7693,-78.17,"Virginia, US",8535519 +84000053,US,USA,840,Washington,US,47.4009,-121.4905,"Washington, US",7614893 +84000054,US,USA,840,West Virginia,US,38.4912,-80.9545,"West Virginia, US",1792147 +84000055,US,USA,840,Wisconsin,US,44.2685,-89.6165,"Wisconsin, US",5822434 +84000056,US,USA,840,Wyoming,US,42.756,-107.3025,"Wyoming, US",578759 diff --git a/dotnet/samples/LearnResources/Resources/PopulationByCountry.csv b/dotnet/samples/LearnResources/Resources/PopulationByCountry.csv new file mode 100644 index 000000000000..b3dcae49eb73 --- /dev/null +++ b/dotnet/samples/LearnResources/Resources/PopulationByCountry.csv @@ -0,0 +1,199 @@ +UID,iso2,iso3,code3,Country_Region,Lat,Long,Population +4,AF,AFG,4,Afghanistan,33.93911,67.709953,38928341 +8,AL,ALB,8,Albania,41.1533,20.1683,2877800 +10,AQ,ATA,10,Antarctica,-71.9499,23.347,0 +12,DZ,DZA,12,Algeria,28.0339,1.6596,43851043 +20,AD,AND,20,Andorra,42.5063,1.5218,77265 +24,AO,AGO,24,Angola,-11.2027,17.8739,32866268 +28,AG,ATG,28,Antigua and Barbuda,17.0608,-61.7964,97928 +32,AR,ARG,32,Argentina,-38.4161,-63.6167,45195777 +51,AM,ARM,51,Armenia,40.0691,45.0382,2963234 +40,AT,AUT,40,Austria,47.5162,14.5501,9006400 +31,AZ,AZE,31,Azerbaijan,40.1431,47.5769,10139175 +44,BS,BHS,44,Bahamas,25.025885,-78.035889,393248 +48,BH,BHR,48,Bahrain,26.0275,50.55,1701583 +50,BD,BGD,50,Bangladesh,23.685,90.3563,164689383 +52,BB,BRB,52,Barbados,13.1939,-59.5432,287371 +112,BY,BLR,112,Belarus,53.7098,27.9534,9449321 +56,BE,BEL,56,Belgium,50.8333,4.469936,11492641 +84,BZ,BLZ,84,Belize,17.1899,-88.4976,397621 +204,BJ,BEN,204,Benin,9.3077,2.3158,12123198 +64,BT,BTN,64,Bhutan,27.5142,90.4336,771612 +68,BO,BOL,68,Bolivia,-16.2902,-63.5887,11673029 +70,BA,BIH,70,Bosnia and Herzegovina,43.9159,17.6791,3280815 +72,BW,BWA,72,Botswana,-22.3285,24.6849,2351625 +76,BR,BRA,76,Brazil,-14.235,-51.9253,212559409 +96,BN,BRN,96,Brunei,4.5353,114.7277,437483 +100,BG,BGR,100,Bulgaria,42.7339,25.4858,6948445 +854,BF,BFA,854,Burkina Faso,12.2383,-1.5616,20903278 +104,MM,MMR,104,Burma,21.9162,95.956,54409794 +108,BI,BDI,108,Burundi,-3.3731,29.9189,11890781 +132,CV,CPV,132,Cabo Verde,16.5388,-23.0418,555988 +116,KH,KHM,116,Cambodia,11.55,104.9167,16718971 +120,CM,CMR,120,Cameroon,3.848,11.5021,26545864 +140,CF,CAF,140,Central African Republic,6.6111,20.9394,4829764 +148,TD,TCD,148,Chad,15.4542,18.7322,16425859 +152,CL,CHL,152,Chile,-35.6751,-71.543,19116209 +170,CO,COL,170,Colombia,4.5709,-74.2973,50882884 +178,CG,COG,178,Congo (Brazzaville),-0.228,15.8277,5518092 +180,CD,COD,180,Congo (Kinshasa),-4.0383,21.7587,89561404 +174,KM,COM,174,Comoros,-11.6455,43.3333,869595 +188,CR,CRI,188,Costa Rica,9.7489,-83.7534,5094114 +384,CI,CIV,384,Cote d'Ivoire,7.54,-5.5471,26378275 +191,HR,HRV,191,Croatia,45.1,15.2,4105268 +192,CU,CUB,192,Cuba,21.521757,-77.781167,11326616 +196,CY,CYP,196,Cyprus,35.1264,33.4299,1207361 +203,CZ,CZE,203,Czechia,49.8175,15.473,10708982 +208,DK,DNK,208,Denmark,56.2639,9.5018,5837213 +262,DJ,DJI,262,Djibouti,11.8251,42.5903,988002 +212,DM,DMA,212,Dominica,15.415,-61.371,71991 +214,DO,DOM,214,Dominican Republic,18.7357,-70.1627,10847904 +218,EC,ECU,218,Ecuador,-1.8312,-78.1834,17643060 +818,EG,EGY,818,Egypt,26.820553,30.802498,102334403 +222,SV,SLV,222,El Salvador,13.7942,-88.8965,6486201 +226,GQ,GNQ,226,Equatorial Guinea,1.6508,10.2679,1402985 +232,ER,ERI,232,Eritrea,15.1794,39.7823,3546427 +233,EE,EST,233,Estonia,58.5953,25.0136,1326539 +748,SZ,SWZ,748,Eswatini,-26.5225,31.4659,1160164 +231,ET,ETH,231,Ethiopia,9.145,40.4897,114963583 +242,FJ,FJI,242,Fiji,-17.7134,178.065,896444 +246,FI,FIN,246,Finland,61.92411,25.748151,5540718 +250,FR,FRA,250,France,46.2276,2.2137,65249843 +266,GA,GAB,266,Gabon,-0.8037,11.6094,2225728 +270,GM,GMB,270,Gambia,13.4432,-15.3101,2416664 +268,GE,GEO,268,Georgia,42.3154,43.3569,3989175 +276,DE,DEU,276,Germany,51.165691,10.451526,83155031 +288,GH,GHA,288,Ghana,7.9465,-1.0232,31072945 +300,GR,GRC,300,Greece,39.0742,21.8243,10423056 +308,GD,GRD,308,Grenada,12.1165,-61.679,112519 +320,GT,GTM,320,Guatemala,15.7835,-90.2308,17915567 +324,GN,GIN,324,Guinea,9.9456,-9.6966,13132792 +624,GW,GNB,624,Guinea-Bissau,11.8037,-15.1804,1967998 +328,GY,GUY,328,Guyana,4.860416,-58.93018,786559 +332,HT,HTI,332,Haiti,18.9712,-72.2852,11402533 +336,VA,VAT,336,Holy See,41.9029,12.4534,809 +340,HN,HND,340,Honduras,15.2,-86.2419,9904608 +348,HU,HUN,348,Hungary,47.1625,19.5033,9660350 +352,IS,ISL,352,Iceland,64.9631,-19.0208,341250 +356,IN,IND,356,India,20.593684,78.96288,1380004385 +360,ID,IDN,360,Indonesia,-0.7893,113.9213,273523621 +364,IR,IRN,364,Iran,32.427908,53.688046,83992953 +368,IQ,IRQ,368,Iraq,33.223191,43.679291,40222503 +372,IE,IRL,372,Ireland,53.1424,-7.6921,4937796 +376,IL,ISR,376,Israel,31.046051,34.851612,8655541 +380,IT,ITA,380,Italy,41.87194,12.56738,60461828 +388,JM,JAM,388,Jamaica,18.1096,-77.2975,2961161 +392,JP,JPN,392,Japan,36.204824,138.252924,126476458 +400,JO,JOR,400,Jordan,31.24,36.51,10203140 +398,KZ,KAZ,398,Kazakhstan,48.0196,66.9237,18776707 +404,KE,KEN,404,Kenya,-0.0236,37.9062,53771300 +296,KI,KIR,296,Kiribati,-3.3704,-168.734,117606 +408,KP,PRK,408,"Korea, North",40.3399,127.5101,25778815 +410,KR,KOR,410,"Korea, South",35.907757,127.766922,51269183 +383,XK,XKS,383,Kosovo,42.602636,20.902977,1810366 +414,KW,KWT,414,Kuwait,29.31166,47.481766,4270563 +417,KG,KGZ,417,Kyrgyzstan,41.20438,74.766098,6524191 +418,LA,LAO,418,Laos,19.85627,102.495496,7275556 +428,LV,LVA,428,Latvia,56.8796,24.6032,1886202 +422,LB,LBN,422,Lebanon,33.8547,35.8623,6825442 +426,LS,LSO,426,Lesotho,-29.61,28.2336,2142252 +430,LR,LBR,430,Liberia,6.428055,-9.429499,5057677 +434,LY,LBY,434,Libya,26.3351,17.228331,6871287 +438,LI,LIE,438,Liechtenstein,47.14,9.55,38137 +440,LT,LTU,440,Lithuania,55.1694,23.8813,2722291 +442,LU,LUX,442,Luxembourg,49.8153,6.1296,625976 +450,MG,MDG,450,Madagascar,-18.766947,46.869107,27691019 +454,MW,MWI,454,Malawi,-13.2543,34.3015,19129955 +458,MY,MYS,458,Malaysia,4.210484,101.975766,32365998 +462,MV,MDV,462,Maldives,3.2028,73.2207,540542 +466,ML,MLI,466,Mali,17.570692,-3.996166,20250834 +470,MT,MLT,470,Malta,35.9375,14.3754,441539 +584,MH,MHL,584,Marshall Islands,7.1315,171.1845,58413 +478,MR,MRT,478,Mauritania,21.0079,-10.9408,4649660 +480,MU,MUS,480,Mauritius,-20.348404,57.552152,1271767 +484,MX,MEX,484,Mexico,23.6345,-102.5528,127792286 +583,FM,FSM,583,Micronesia,7.4256,150.5508,113815 +498,MD,MDA,498,Moldova,47.4116,28.3699,4027690 +492,MC,MCO,492,Monaco,43.7333,7.4167,39244 +496,MN,MNG,496,Mongolia,46.8625,103.8467,3278292 +499,ME,MNE,499,Montenegro,42.708678,19.37439,628062 +504,MA,MAR,504,Morocco,31.7917,-7.0926,36910558 +508,MZ,MOZ,508,Mozambique,-18.665695,35.529562,31255435 +516,NA,NAM,516,Namibia,-22.9576,18.4904,2540916 +520,NR,NRU,520,Nauru,-0.5228,166.9315,10834 +524,NP,NPL,524,Nepal,28.1667,84.25,29136808 +528,NL,NLD,528,Netherlands,52.1326,5.2913,17134873 +554,NZ,NZL,554,New Zealand,-40.9006,174.886,4822233 +558,NI,NIC,558,Nicaragua,12.865416,-85.207229,6624554 +562,NE,NER,562,Niger,17.607789,8.081666,24206636 +566,NG,NGA,566,Nigeria,9.082,8.6753,206139587 +807,MK,MKD,807,North Macedonia,41.6086,21.7453,2083380 +578,NO,NOR,578,Norway,60.472,8.4689,5421242 +512,OM,OMN,512,Oman,21.512583,55.923255,5106622 +586,PK,PAK,586,Pakistan,30.3753,69.3451,220892331 +585,PW,PLW,8,Palau,7.515,134.5825,18008 +591,PA,PAN,591,Panama,8.538,-80.7821,4314768 +598,PG,PNG,598,Papua New Guinea,-6.314993,143.95555,8947027 +600,PY,PRY,600,Paraguay,-23.4425,-58.4438,7132530 +604,PE,PER,604,Peru,-9.19,-75.0152,32971846 +608,PH,PHL,608,Philippines,12.879721,121.774017,109581085 +616,PL,POL,616,Poland,51.9194,19.1451,37846605 +620,PT,PRT,620,Portugal,39.3999,-8.2245,10196707 +634,QA,QAT,634,Qatar,25.3548,51.1839,2881060 +642,RO,ROU,642,Romania,45.9432,24.9668,19237682 +643,RU,RUS,643,Russia,61.52401,105.318756,145934460 +646,RW,RWA,646,Rwanda,-1.9403,29.8739,12952209 +659,KN,KNA,659,Saint Kitts and Nevis,17.357822,-62.782998,53192 +662,LC,LCA,662,Saint Lucia,13.9094,-60.9789,183629 +670,VC,VCT,670,Saint Vincent and the Grenadines,12.9843,-61.2872,110947 +882,WS,WSM,882,Samoa,-13.759,-172.1046,196130 +674,SM,SMR,674,San Marino,43.9424,12.4578,33938 +678,ST,STP,678,Sao Tome and Principe,0.1864,6.6131,219161 +682,SA,SAU,682,Saudi Arabia,23.885942,45.079162,34813867 +686,SN,SEN,686,Senegal,14.4974,-14.4524,16743930 +688,RS,SRB,688,Serbia,44.0165,21.0059,8737370 +690,SC,SYC,690,Seychelles,-4.6796,55.492,98340 +694,SL,SLE,694,Sierra Leone,8.460555,-11.779889,7976985 +702,SG,SGP,702,Singapore,1.2833,103.8333,5850343 +703,SK,SVK,703,Slovakia,48.669,19.699,5434712 +705,SI,SVN,705,Slovenia,46.1512,14.9955,2078932 +90,SB,SLB,90,Solomon Islands,-9.6457,160.1562,652858 +706,SO,SOM,706,Somalia,5.152149,46.199616,15893219 +710,ZA,ZAF,710,South Africa,-30.5595,22.9375,59308690 +728,SS,SSD,728,South Sudan,6.877,31.307,11193729 +724,ES,ESP,724,Spain,40.463667,-3.74922,46754783 +144,LK,LKA,144,Sri Lanka,7.873054,80.771797,21413250 +729,SD,SDN,729,Sudan,12.8628,30.2176,43849269 +740,SR,SUR,740,Suriname,3.9193,-56.0278,586634 +752,SE,SWE,752,Sweden,60.128161,18.643501,10099270 +756,CH,CHE,756,Switzerland,46.8182,8.2275,8654618 +760,SY,SYR,760,Syria,34.802075,38.996815,17500657 +158,TW,TWN,158,Taiwan*,23.7,121,23816775 +762,TJ,TJK,762,Tajikistan,38.861,71.2761,9537642 +834,TZ,TZA,834,Tanzania,-6.369028,34.888822,59734213 +764,TH,THA,764,Thailand,15.870032,100.992541,69799978 +626,TL,TLS,626,Timor-Leste,-8.874217,125.727539,1318442 +768,TG,TGO,768,Togo,8.6195,0.8248,8278737 +776,TO,TON,776,Tonga,-21.179,-175.1982,105697 +780,TT,TTO,780,Trinidad and Tobago,10.6918,-61.2225,1399491 +788,TN,TUN,788,Tunisia,33.886917,9.537499,11818618 +792,TR,TUR,792,Turkey,38.9637,35.2433,84339067 +798,TV,TUV,798,Tuvalu,-7.1095,177.6493,11792 +800,UG,UGA,800,Uganda,1.373333,32.290275,45741000 +804,UA,UKR,804,Ukraine,48.3794,31.1656,43733759 +784,AE,ARE,784,United Arab Emirates,23.424076,53.847818,9890400 +826,GB,GBR,826,United Kingdom,55.3781,-3.436,67886004 +858,UY,URY,858,Uruguay,-32.5228,-55.7658,3473727 +860,UZ,UZB,860,Uzbekistan,41.377491,64.585262,33469199 +548,VU,VUT,548,Vanuatu,-15.3767,166.9592,292680 +862,VE,VEN,862,Venezuela,6.4238,-66.5897,28435943 +704,VN,VNM,704,Vietnam,14.058324,108.277199,97338583 +275,PS,PSE,275,West Bank and Gaza,31.9522,35.2332,5101416 +732,EH,ESH,732,Western Sahara,24.2155,-12.8858,597330 +887,YE,YEM,887,Yemen,15.552727,48.516388,29825968 +894,ZM,ZMB,894,Zambia,-13.133897,27.849332,18383956 +716,ZW,ZWE,716,Zimbabwe,-19.015438,29.154857,14862927 +36,AU,AUS,36,Australia,-25,133,25459700 +124,CA,CAN,124,Canada,60,-95,38246108 +156,CN,CHN,156,China,35.8617,104.19545,1411778724 +840,US,USA,840,US,40,-100,329466283 diff --git a/dotnet/samples/LearnResources/Resources/WomensSuffrage.txt b/dotnet/samples/LearnResources/Resources/WomensSuffrage.txt new file mode 100644 index 000000000000..3100274682f2 --- /dev/null +++ b/dotnet/samples/LearnResources/Resources/WomensSuffrage.txt @@ -0,0 +1,9 @@ +Women's suffrage is when women got the right to vote. A long time ago, only men could vote and make decisions. This was not fair because women should have the same rights as men. Women wanted to vote too, so they started asking for it. It took a long time, and they had to work very hard to make people listen to them. Many men did not think women should vote, and this made it very hard for the women. + +The women who fought for voting were called suffragets. They did many things to show they wanted the right to vote. Some gave speeches, others made signs and marched in the streets. Some even went to jail because they refused to stop fighting for what they believed was right. It was scary for some of the women, but they knew how important it was to keep trying. They wanted to change the world so that it was more fair for everyone. + +One of the most important suffragets was Susan B. Anthony. She worked very hard to help women get the right to vote. She gave speeches and wrote letters to the goverment to make them change the laws. Susan never gave up, even when people said mean things to her. Another important person was Elizabeth Cady Stanton. She also helped fight for women's rights and was friends with Susan B. Anthony. Together, they made a great team and helped make big changes. + +Finally, in 1920, the 19th amendment was passed in the United States. This law gave women the right to vote. It was a huge victory for the suffragets, and they were very happy. Many women went to vote for the first time, and it felt like they were finally equal with men. It took many years and a lot of hard work, but the women never gave up. They kept fighting until they won. + +Women's suffrage is very important because it shows that if you work hard and believe in something, you can make a change. The women who fought for the right to vote showed bravery and strengh, and they helped make the world a better place. Today, women can vote because of them, and it's important to remember their hard work. We should always stand up for what is right, just like the suffragets did. diff --git a/python/.vscode/settings.json b/python/.vscode/settings.json index dca92354cf5e..93b973d6fc73 100644 --- a/python/.vscode/settings.json +++ b/python/.vscode/settings.json @@ -30,5 +30,8 @@ "notebook.codeActionsOnSave": { "source.fixAll": true, "source.organizeImports": true - } + }, + "python.analysis.extraPaths": [ + "${workspaceFolder}/samples/learn_resources" + ], } \ No newline at end of file diff --git a/python/samples/learn_resources/agent_docs/agent_collaboration.py b/python/samples/learn_resources/agent_docs/agent_collaboration.py new file mode 100644 index 000000000000..c8e7d04bffb6 --- /dev/null +++ b/python/samples/learn_resources/agent_docs/agent_collaboration.py @@ -0,0 +1,173 @@ +# Copyright (c) Microsoft. All rights reserved. + +import asyncio +import os + +from semantic_kernel.agents import AgentGroupChat, ChatCompletionAgent +from semantic_kernel.agents.strategies.selection.kernel_function_selection_strategy import ( + KernelFunctionSelectionStrategy, +) +from semantic_kernel.agents.strategies.termination.kernel_function_termination_strategy import ( + KernelFunctionTerminationStrategy, +) +from semantic_kernel.agents.strategies.termination.termination_strategy import TerminationStrategy +from semantic_kernel.connectors.ai.open_ai.services.azure_chat_completion import AzureChatCompletion +from semantic_kernel.contents.chat_message_content import ChatMessageContent +from semantic_kernel.contents.utils.author_role import AuthorRole +from semantic_kernel.functions.kernel_function_from_prompt import KernelFunctionFromPrompt +from semantic_kernel.kernel import Kernel + +################################################################### +# The following sample demonstrates how to create a simple, # +# agent group chat that utilizes a Reviewer Chat Completion # +# Agent along with a Writer Chat Completion Agent to # +# complete a user's task. # +################################################################### + + +class ApprovalTerminationStrategy(TerminationStrategy): + """A strategy for determining when an agent should terminate.""" + + async def should_agent_terminate(self, agent, history): + """Check if the agent should terminate.""" + return "approved" in history[-1].content.lower() + + +REVIEWER_NAME = "Reviewer" +COPYWRITER_NAME = "Writer" + + +def _create_kernel_with_chat_completion(service_id: str) -> Kernel: + kernel = Kernel() + kernel.add_service(AzureChatCompletion(service_id=service_id)) + return kernel + + +async def main(): + agent_reviewer = ChatCompletionAgent( + service_id=REVIEWER_NAME, + kernel=_create_kernel_with_chat_completion(REVIEWER_NAME), + name=REVIEWER_NAME, + instructions=""" + Your responsibility is to review and identify how to improve user provided content. + If the user has providing input or direction for content already provided, specify how to + address this input. + Never directly perform the correction or provide example. + Once the content has been updated in a subsequent response, you will review the content + again until satisfactory. + Always copy satisfactory content to the clipboard using available tools and inform user. + + RULES: + - Only identify suggestions that are specific and actionable. + - Verify previous suggestions have been addressed. + - Never repeat previous suggestions. + """, + ) + + agent_writer = ChatCompletionAgent( + service_id=COPYWRITER_NAME, + kernel=_create_kernel_with_chat_completion(COPYWRITER_NAME), + name=COPYWRITER_NAME, + instructions=""" + Your sole responsibility is to rewrite content according to review suggestions. + + - Always apply all review direction. + - Always revise the content in its entirety without explanation. + - Never address the user. + """, + ) + + selection_function = KernelFunctionFromPrompt( + function_name="selection", + prompt=f""" + Determine which participant takes the next turn in a conversation based on the the most recent participant. + State only the name of the participant to take the next turn. + No participant should take more than one turn in a row. + + Choose only from these participants: + - {REVIEWER_NAME} + - {COPYWRITER_NAME} + + Always follow these rules when selecting the next participant: + - After user input, it is {COPYWRITER_NAME}'s turn. + - After {COPYWRITER_NAME} replies, it is {REVIEWER_NAME}'s turn. + - After {REVIEWER_NAME} provides feedback, it is {COPYWRITER_NAME}'s turn. + + History: + {{{{$history}}}} + """, + ) + + TERMINATION_KEYWORD = "yes" + + termination_function = KernelFunctionFromPrompt( + function_name="termination", + prompt=f""" + Examine the RESPONSE and determine whether the content has been deemed satisfactory. + If content is satisfactory, respond with a single word without explanation: {TERMINATION_KEYWORD}. + If specific suggestions are being provided, it is not satisfactory. + If no correction is suggested, it is satisfactory. + + RESPONSE: + {{{{$history}}}} + """, + ) + + chat = AgentGroupChat( + agents=[agent_writer, agent_reviewer], + selection_strategy=KernelFunctionSelectionStrategy( + function=selection_function, + kernel=_create_kernel_with_chat_completion("selection"), + result_parser=lambda result: str(result.value[0]) if result.value is not None else COPYWRITER_NAME, + agent_variable_name="agents", + history_variable_name="history", + ), + termination_strategy=KernelFunctionTerminationStrategy( + agents=[agent_reviewer], + function=termination_function, + kernel=_create_kernel_with_chat_completion("termination"), + result_parser=lambda result: TERMINATION_KEYWORD in str(result.value[0]).lower(), + history_variable_name="history", + maximum_iterations=10, + ), + ) + + is_complete: bool = False + while not is_complete: + user_input = input("User:> ") + if not user_input: + continue + + if user_input.lower() == "exit": + is_complete = True + break + + if user_input.lower() == "reset": + await chat.reset() + print("[Conversation has been reset]") + continue + + if user_input.startswith("@") and len(input) > 1: + file_path = input[1:] + try: + if not os.path.exists(file_path): + print(f"Unable to access file: {file_path}") + continue + with open(file_path) as file: + user_input = file.read() + except Exception: + print(f"Unable to access file: {file_path}") + continue + + await chat.add_chat_message(ChatMessageContent(role=AuthorRole.USER, content=user_input)) + + async for response in chat.invoke(): + print(f"# {response.role} - {response.name or '*'}: '{response.content}'") + + if chat.is_complete: + is_complete = True + break + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/python/samples/learn_resources/agent_docs/assistant_code.py b/python/samples/learn_resources/agent_docs/assistant_code.py new file mode 100644 index 000000000000..06a7bc8b29fd --- /dev/null +++ b/python/samples/learn_resources/agent_docs/assistant_code.py @@ -0,0 +1,118 @@ +# Copyright (c) Microsoft. All rights reserved. + +import asyncio +import os + +from semantic_kernel.agents.open_ai.azure_assistant_agent import AzureAssistantAgent +from semantic_kernel.contents.chat_message_content import ChatMessageContent +from semantic_kernel.contents.streaming_file_reference_content import StreamingFileReferenceContent +from semantic_kernel.contents.utils.author_role import AuthorRole +from semantic_kernel.kernel import Kernel + +################################################################### +# The following sample demonstrates how to create a simple, # +# OpenAI assistant agent that utilizes the code interpreter # +# to analyze uploaded files. # +################################################################### + +# Let's form the file paths that we will later pass to the assistant +csv_file_path_1 = os.path.join( + os.path.dirname(os.path.dirname(os.path.realpath(__file__))), + "PopulationByAdmin1.csv", +) + +csv_file_path_2 = os.path.join( + os.path.dirname(os.path.dirname(os.path.realpath(__file__))), + "PopulationByCountry.csv", +) + + +async def download_file_content(agent, file_id: str): + try: + # Fetch the content of the file using the provided method + response_content = await agent.client.files.content(file_id) + + # Get the current working directory of the file + current_directory = os.path.dirname(os.path.abspath(__file__)) + + # Define the path to save the image in the current directory + file_path = os.path.join( + current_directory, # Use the current directory of the file + f"{file_id}.png", # You can modify this to use the actual filename with proper extension + ) + + # Save content to a file asynchronously + with open(file_path, "wb") as file: + file.write(response_content.content) + + print(f"File saved to: {file_path}") + except Exception as e: + print(f"An error occurred while downloading file {file_id}: {str(e)}") + + +async def download_response_image(agent, file_ids: list[str]): + if file_ids: + # Iterate over file_ids and download each one + for file_id in file_ids: + await download_file_content(agent, file_id) + + +async def main(): + agent = await AzureAssistantAgent.create( + kernel=Kernel(), + service_id="agent", + name="SampleAssistantAgent", + instructions=""" + Analyze the available data to provide an answer to the user's question. + Always format response using markdown. + Always include a numerical index that starts at 1 for any lists or tables. + Always sort lists in ascending order. + """, + enable_code_interpreter=True, + code_interpreter_filenames=[csv_file_path_1, csv_file_path_2], + ) + + print("Creating thread...") + thread_id = await agent.create_thread() + + try: + is_complete: bool = False + file_ids: list[str] = [] + while not is_complete: + user_input = input("User:> ") + if not user_input: + continue + + if user_input.lower() == "exit": + is_complete = True + + await agent.add_chat_message( + thread_id=thread_id, message=ChatMessageContent(role=AuthorRole.USER, content=user_input) + ) + is_code: bool = False + async for response in agent.invoke_stream(thread_id=thread_id): + if is_code != response.metadata.get("code"): + print() + is_code = not is_code + + print(f"{response.content}", end="", flush=True) + + file_ids.extend([ + item.file_id for item in response.items if isinstance(item, StreamingFileReferenceContent) + ]) + + print() + + await download_response_image(agent, file_ids) + file_ids.clear() + + finally: + print("Cleaning up resources...") + if agent is not None: + [await agent.delete_file(file_id) for file_id in agent.code_interpreter_file_ids] + await agent.delete_thread(thread_id) + await agent.delete() + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/python/samples/learn_resources/agent_docs/assistant_search.py b/python/samples/learn_resources/agent_docs/assistant_search.py new file mode 100644 index 000000000000..5d91786e9bc4 --- /dev/null +++ b/python/samples/learn_resources/agent_docs/assistant_search.py @@ -0,0 +1,87 @@ +# Copyright (c) Microsoft. All rights reserved. + +import asyncio +import os + +from semantic_kernel.agents.open_ai.azure_assistant_agent import AzureAssistantAgent +from semantic_kernel.contents.chat_message_content import ChatMessageContent +from semantic_kernel.contents.streaming_annotation_content import StreamingAnnotationContent +from semantic_kernel.contents.utils.author_role import AuthorRole +from semantic_kernel.kernel import Kernel + +################################################################### +# The following sample demonstrates how to create a simple, # +# OpenAI assistant agent that utilizes the vector store # +# to answer questions based on the uploaded documents. # +################################################################### + + +def get_filepath_for_filename(filename: str) -> str: + base_directory = os.path.dirname(os.path.realpath(__file__)) + return os.path.join(base_directory, filename) + + +filenames = [ + "Grimms-The-King-of-the-Golden-Mountain.txt", + "Grimms-The-Water-of-Life.txt", + "Grimms-The-White-Snake.txt", +] + + +async def main(): + agent = await AzureAssistantAgent.create( + kernel=Kernel(), + service_id="agent", + name="SampleAssistantAgent", + instructions=""" + The document store contains the text of fictional stories. + Always analyze the document store to provide an answer to the user's question. + Never rely on your knowledge of stories not included in the document store. + Always format response using markdown. + """, + enable_file_search=True, + vector_store_filenames=[get_filepath_for_filename(filename) for filename in filenames], + ) + + print("Creating thread...") + thread_id = await agent.create_thread() + + try: + is_complete: bool = False + while not is_complete: + user_input = input("User:> ") + if not user_input: + continue + + if user_input.lower() == "exit": + is_complete = True + + await agent.add_chat_message( + thread_id=thread_id, message=ChatMessageContent(role=AuthorRole.USER, content=user_input) + ) + + footnotes: list[StreamingAnnotationContent] = [] + async for response in agent.invoke_stream(thread_id=thread_id): + footnotes.extend([item for item in response.items if isinstance(item, StreamingAnnotationContent)]) + + print(f"{response.content}", end="", flush=True) + + print() + + if len(footnotes) > 0: + for footnote in footnotes: + print( + f"\n`{footnote.quote}` => {footnote.file_id} " + f"(Index: {footnote.start_index} - {footnote.end_index})" + ) + + finally: + print("Cleaning up resources...") + if agent is not None: + [await agent.delete_file(file_id) for file_id in agent.file_search_file_ids] + await agent.delete_thread(thread_id) + await agent.delete() + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/python/samples/learn_resources/agent_docs/chat_agent.py b/python/samples/learn_resources/agent_docs/chat_agent.py new file mode 100644 index 000000000000..56429d5974cb --- /dev/null +++ b/python/samples/learn_resources/agent_docs/chat_agent.py @@ -0,0 +1,84 @@ +# Copyright (c) Microsoft. All rights reserved. + +import asyncio +import os +import sys +from datetime import datetime + +from semantic_kernel.agents import ChatCompletionAgent +from semantic_kernel.connectors.ai.function_choice_behavior import FunctionChoiceBehavior +from semantic_kernel.connectors.ai.open_ai import AzureChatCompletion +from semantic_kernel.contents.chat_history import ChatHistory +from semantic_kernel.contents.chat_message_content import ChatMessageContent +from semantic_kernel.contents.utils.author_role import AuthorRole +from semantic_kernel.kernel import Kernel + +# Adjust the sys.path so we can use the GitHubPlugin and GitHubSettings classes +# This is so we can run the code from the samples/learn_resources/agent_docs directory +# If you are running code from your own project, you may not need need to do this. +sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))) + +from plugins.GithubPlugin.github import GitHubPlugin, GitHubSettings # noqa: E402 + +################################################################### +# The following sample demonstrates how to create a simple, # +# ChatCompletionAgent to use a GitHub plugin to interact # +# with the GitHub API. # +################################################################### + + +async def main(): + kernel = Kernel() + + # Add the AzureChatCompletion AI Service to the Kernel + service_id = "agent" + kernel.add_service(AzureChatCompletion(service_id=service_id)) + + settings = kernel.get_prompt_execution_settings_from_service_id(service_id=service_id) + # Configure the function choice behavior to auto invoke kernel functions + settings.function_choice_behavior = FunctionChoiceBehavior.Auto() + + # Set your GitHub Personal Access Token (PAT) value here + gh_settings = GitHubSettings(token="") # nosec + kernel.add_plugin(plugin=GitHubPlugin(gh_settings), plugin_name="GithubPlugin") + + current_time = datetime.now().isoformat() + + # Create the agent + agent = ChatCompletionAgent( + service_id="agent", + kernel=kernel, + name="SampleAssistantAgent", + instructions=f""" + You are an agent designed to query and retrieve information from a single GitHub repository in a read-only + manner. + You are also able to access the profile of the active user. + + Use the current date and time to provide up-to-date details or time-sensitive responses. + + The repository you are querying is a public repository with the following name: microsoft/semantic-kernel + + The current date and time is: {current_time}. + """, + execution_settings=settings, + ) + + history = ChatHistory() + is_complete: bool = False + while not is_complete: + user_input = input("User:> ") + if not user_input: + continue + + if user_input.lower() == "exit": + is_complete = True + break + + history.add_message(ChatMessageContent(role=AuthorRole.USER, content=user_input)) + + async for response in agent.invoke(history=history): + print(f"{response.content}") + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/python/samples/learn_resources/plugins/GithubPlugin/github.py b/python/samples/learn_resources/plugins/GithubPlugin/github.py new file mode 100644 index 000000000000..ae3a32a5227e --- /dev/null +++ b/python/samples/learn_resources/plugins/GithubPlugin/github.py @@ -0,0 +1,118 @@ +# Copyright (c) Microsoft. All rights reserved. + + +import httpx +from pydantic import BaseModel, Field + +from semantic_kernel.functions.kernel_function_decorator import kernel_function + +# region GitHub Models + + +class Repo(BaseModel): + id: int = Field(..., alias="id") + name: str = Field(..., alias="full_name") + description: str | None = Field(None, alias="description") + url: str = Field(..., alias="html_url") + + +class User(BaseModel): + id: int = Field(..., alias="id") + login: str = Field(..., alias="login") + name: str | None = Field(None, alias="name") + company: str | None = Field(None, alias="company") + url: str = Field(..., alias="html_url") + + +class Label(BaseModel): + id: int = Field(..., alias="id") + name: str = Field(..., alias="name") + description: str | None = Field(None, alias="description") + + +class Issue(BaseModel): + id: int = Field(..., alias="id") + number: int = Field(..., alias="number") + url: str = Field(..., alias="html_url") + title: str = Field(..., alias="title") + state: str = Field(..., alias="state") + labels: list[Label] = Field(..., alias="labels") + when_created: str | None = Field(None, alias="created_at") + when_closed: str | None = Field(None, alias="closed_at") + + +class IssueDetail(Issue): + body: str | None = Field(None, alias="body") + + +# endregion + + +class GitHubSettings(BaseModel): + base_url: str = "https://api.github.com" + token: str + + +class GitHubPlugin: + def __init__(self, settings: GitHubSettings): + self.settings = settings + + @kernel_function + async def get_user_profile(self) -> "User": + async with self.create_client() as client: + response = await self.make_request(client, "/user") + return User(**response) + + @kernel_function + async def get_repository(self, organization: str, repo: str) -> "Repo": + async with self.create_client() as client: + response = await self.make_request(client, f"/repos/{organization}/{repo}") + return Repo(**response) + + @kernel_function + async def get_issues( + self, + organization: str, + repo: str, + max_results: int | None = None, + state: str = "", + label: str = "", + assignee: str = "", + ) -> list["Issue"]: + async with self.create_client() as client: + path = f"/repos/{organization}/{repo}/issues?" + path = self.build_query(path, "state", state) + path = self.build_query(path, "assignee", assignee) + path = self.build_query(path, "labels", label) + path = self.build_query(path, "per_page", str(max_results) if max_results else "") + response = await self.make_request(client, path) + return [Issue(**issue) for issue in response] + + @kernel_function + async def get_issue_detail(self, organization: str, repo: str, issue_id: int) -> "IssueDetail": + async with self.create_client() as client: + path = f"/repos/{organization}/{repo}/issues/{issue_id}" + response = await self.make_request(client, path) + return IssueDetail(**response) + + def create_client(self) -> httpx.AsyncClient: + headers = { + "User-Agent": "request", + "Accept": "application/vnd.github+json", + "Authorization": f"Bearer {self.settings.token}", + "X-GitHub-Api-Version": "2022-11-28", + } + return httpx.AsyncClient(base_url=self.settings.base_url, headers=headers) + + @staticmethod + def build_query(path: str, key: str, value: str) -> str: + if value: + return f"{path}{key}={value}&" + return path + + @staticmethod + async def make_request(client: httpx.AsyncClient, path: str) -> dict: + print(f"REQUEST: {path}\n") + response = await client.get(path) + response.raise_for_status() + return response.json() diff --git a/python/samples/learn_resources/resources/Grimms-The-King-of-the-Golden-Mountain.txt b/python/samples/learn_resources/resources/Grimms-The-King-of-the-Golden-Mountain.txt new file mode 100644 index 000000000000..a5279d6e8c51 --- /dev/null +++ b/python/samples/learn_resources/resources/Grimms-The-King-of-the-Golden-Mountain.txt @@ -0,0 +1,36 @@ +The King of the Golden Mountain +By the Grimm Brothers + +There was once a merchant who had only one child, a son, that was very young, and barely able to run alone. He had two richly laden ships then making a voyage upon the seas, in which he had embarked all his wealth, in the hope of making great gains, when the news came that both were lost. Thus from being a rich man he became all at once so very poor that nothing was left to him but one small plot of land; and there he often went in an evening to take his walk, and ease his mind of a little of his trouble. + +One day, as he was roaming along in a brown study, thinking with no great comfort on what he had been and what he now was, and was like to be, all on a sudden there stood before him a little, rough-looking, black dwarf. ’Prithee, friend, why so sorrowful?’ said he to the merchant; ’what is it you take so deeply to heart?’ ’If you would do me any good I would willingly tell you,’ said the merchant. ’Who knows but I may?’ said the little man: ’tell me what ails you, and perhaps you will find I may be of some use.’ Then the merchant told him how all his wealth was gone to the bottom of the sea, and how he had nothing left but that little plot of land. ’Oh, trouble not yourself about that,’ said the dwarf; ’only undertake to bring me here, twelve years hence, whatever meets you first on your going home, and I will give you as much as you please.’ The merchant thought this was no great thing to ask; that it would most likely be his dog or his cat, or something of that sort, but forgot his little boy Heinel; so he agreed to the bargain, and signed and sealed the bond to do what was asked of him. + +But as he drew near home, his little boy was so glad to see him that he crept behind him, and laid fast hold of his legs, and looked up in his face and laughed. Then the father started, trembling with fear and horror, and saw what it was that he had bound himself to do; but as no gold was come, he made himself easy by thinking that it was only a joke that the dwarf was playing him, and that, at any rate, when the money came, he should see the bearer, and would not take it in. + +About a month afterwards he went upstairs into a lumber-room to look for some old iron, that he might sell it and raise a little money; and there, instead of his iron, he saw a large pile of gold lying on the floor. At the sight of this he was overjoyed, and forgetting all about his son, went into trade again, and became a richer merchant than before. + +Meantime little Heinel grew up, and as the end of the twelve years drew near the merchant began to call to mind his bond, and became very sad and thoughtful; so that care and sorrow were written upon his face. The boy one day asked what was the matter, but his father would not tell for some time; at last, however, he said that he had, without knowing it, sold him for gold to a little, ugly-looking, black dwarf, and that the twelve years were coming round when he must keep his word. Then Heinel said, ’Father, give yourself very little trouble about that; I shall be too much for the little man.’ + +When the time came, the father and son went out together to the place agreed upon: and the son drew a circle on the ground, and set himself and his father in the middle of it. The little black dwarf soon came, and walked round and round about the circle, but could not find any way to get into it, and he either could not, or dared not, jump over it. At last the boy said to him. ’Have you anything to say to us, my friend, or what do you want?’ Now Heinel had found a friend in a good fairy, that was fond of him, and had told him what to do; for this fairy knew what good luck was in store for him. ’Have you brought me what you said you would?’ said the dwarf to the merchant. The old man held his tongue, but Heinel said again, ’What do you want here?’ The dwarf said, ’I come to talk with your father, not with you.’ ’You have cheated and taken in my father,’ said the son; ’pray give him up his bond at once.’ ’Fair and softly,’ said the little old man; ’right is right; I have paid my money, and your father has had it, and spent it; so be so good as to let me have what I paid it for.’ ’You must have my consent to that first,’ said Heinel, ’so please to step in here, and let us talk it over.’ The old man grinned, and showed his teeth, as if he should have been very glad to get into the circle if he could. Then at last, after a long talk, they came to terms. Heinel agreed that his father must give him up, and that so far the dwarf should have his way: but, on the other hand, the fairy had told Heinel what fortune was in store for him, if he followed his own course; and he did not choose to be given up to his hump-backed friend, who seemed so anxious for his company. + +So, to make a sort of drawn battle of the matter, it was settled that Heinel should be put into an open boat, that lay on the sea-shore hard by; that the father should push him off with his own hand, and that he should thus be set adrift, and left to the bad or good luck of wind and weather. Then he took leave of his father, and set himself in the boat, but before it got far off a wave struck it, and it fell with one side low in the water, so the merchant thought that poor Heinel was lost, and went home very sorrowful, while the dwarf went his way, thinking that at any rate he had had his revenge. + +The boat, however, did not sink, for the good fairy took care of her friend, and soon raised the boat up again, and it went safely on. The young man sat safe within, till at length it ran ashore upon an unknown land. As he jumped upon the shore he saw before him a beautiful castle but empty and dreary within, for it was enchanted. ’Here,’ said he to himself, ’must I find the prize the good fairy told me of.’ So he once more searched the whole palace through, till at last he found a white snake, lying coiled up on a cushion in one of the chambers. + +Now the white snake was an enchanted princess; and she was very glad to see him, and said, ’Are you at last come to set me free? Twelve long years have I waited here for the fairy to bring you hither as she promised, for you alone can save me. This night twelve men will come: their faces will be black, and they will be dressed in chain armour. They will ask what you do here, but give no answer; and let them do what they will–beat, whip, pinch, prick, or torment you–bear all; only speak not a word, and at twelve o’clock they must go away. The second night twelve others will come: and the third night twenty-four, who will even cut off your head; but at the twelfth hour of that night their power is gone, and I shall be free, and will come and bring you the Water of Life, and will wash you with it, and bring you back to life and health.’ And all came to pass as she had said; Heinel bore all, and spoke not a word; and the third night the princess came, and fell on his neck and kissed him. Joy and gladness burst forth throughout the castle, the wedding was celebrated, and he was crowned king of the Golden Mountain. + +They lived together very happily, and the queen had a son. And thus eight years had passed over their heads, when the king thought of his father; and he began to long to see him once again. But the queen was against his going, and said, ’I know well that misfortunes will come upon us if you go.’ However, he gave her no rest till she agreed. At his going away she gave him a wishing-ring, and said, ’Take this ring, and put it on your finger; whatever you wish it will bring you; only promise never to make use of it to bring me hence to your father’s house.’ Then he said he would do what she asked, and put the ring on his finger, and wished himself near the town where his father lived. + +Heinel found himself at the gates in a moment; but the guards would not let him go in, because he was so strangely clad. So he went up to a neighbouring hill, where a shepherd dwelt, and borrowed his old frock, and thus passed unknown into the town. When he came to his father’s house, he said he was his son; but the merchant would not believe him, and said he had had but one son, his poor Heinel, who he knew was long since dead: and as he was only dressed like a poor shepherd, he would not even give him anything to eat. The king, however, still vowed that he was his son, and said, ’Is there no mark by which you would know me if I am really your son?’ ’Yes,’ said his mother, ’our Heinel had a mark like a raspberry on his right arm.’ Then he showed them the mark, and they knew that what he had said was true. + +He next told them how he was king of the Golden Mountain, and was married to a princess, and had a son seven years old. But the merchant said, ’that can never be true; he must be a fine king truly who travels about in a shepherd’s frock!’ At this the son was vexed; and forgetting his word, turned his ring, and wished for his queen and son. In an instant they stood before him; but the queen wept, and said he had broken his word, and bad luck would follow. He did all he could to soothe her, and she at last seemed to be appeased; but she was not so in truth, and was only thinking how she should punish him. + +One day he took her to walk with him out of the town, and showed her the spot where the boat was set adrift upon the wide waters. Then he sat himself down, and said, ’I am very much tired; sit by me, I will rest my head in your lap, and sleep a while.’ As soon as he had fallen asleep, however, she drew the ring from his finger, and crept softly away, and wished herself and her son at home in their kingdom. And when he awoke he found himself alone, and saw that the ring was gone from his finger. ’I can never go back to my father’s house,’ said he; ’they would say I am a sorcerer: I will journey forth into the world, till I come again to my kingdom.’ + +So saying he set out and travelled till he came to a hill, where three giants were sharing their father’s goods; and as they saw him pass they cried out and said, ’Little men have sharp wits; he shall part the goods between us.’ Now there was a sword that cut off an enemy’s head whenever the wearer gave the words, ’Heads off!’; a cloak that made the owner invisible, or gave him any form he pleased; and a pair of boots that carried the wearer wherever he wished. Heinel said they must first let him try these wonderful things, then he might know how to set a value upon them. Then they gave him the cloak, and he wished himself a fly, and in a moment he was a fly. ’The cloak is very well,’ said he: ’now give me the sword.’ ’No,’ said they; ’not unless you undertake not to say, “Heads off!” for if you do we are all dead men.’ So they gave it him, charging him to try it on a tree. He next asked for the boots also; and the moment he had all three in his power, he wished himself at the Golden Mountain; and there he was at once. So the giants were left behind with no goods to share or quarrel about. + +As Heinel came near his castle he heard the sound of merry music; and the people around told him that his queen was about to marry another husband. Then he threw his cloak around him, and passed through the castle hall, and placed himself by the side of the queen, where no one saw him. But when anything to eat was put upon her plate, he took it away and ate it himself; and when a glass of wine was handed to her, he took it and drank it; and thus, though they kept on giving her meat and drink, her plate and cup were always empty. + +Upon this, fear and remorse came over her, and she went into her chamber alone, and sat there weeping; and he followed her there. ’Alas!’ said she to herself, ’was I not once set free? Why then does this enchantment still seem to bind me?’ + +’False and fickle one!’ said he. ’One indeed came who set thee free, and he is now near thee again; but how have you used him? Ought he to have had such treatment from thee?’ Then he went out and sent away the company, and said the wedding was at an end, for that he was come back to the kingdom. But the princes, peers, and great men mocked at him. However, he would enter into no parley with them, but only asked them if they would go in peace or not. Then they turned upon him and tried to seize him; but he drew his sword. ’Heads Off!’ cried he; and with the word the traitors’ heads fell before him, and Heinel was once more king of the Golden Mountain. \ No newline at end of file diff --git a/python/samples/learn_resources/resources/Grimms-The-Water-of-Life.txt b/python/samples/learn_resources/resources/Grimms-The-Water-of-Life.txt new file mode 100644 index 000000000000..3a5487beb5cc --- /dev/null +++ b/python/samples/learn_resources/resources/Grimms-The-Water-of-Life.txt @@ -0,0 +1,44 @@ +The Water of Life +By the Grimm Brothers + +Long before you or I were born, there reigned, in a country a great way off, a king who had three sons. This king once fell very ill–so ill that nobody thought he could live. His sons were very much grieved at their father’s sickness; and as they were walking together very mournfully in the garden of the palace, a little old man met them and asked what was the matter. They told him that their father was very ill, and that they were afraid nothing could save him. ’I know what would,’ said the little old man; ’it is the Water of Life. If he could have a draught of it he would be well again; but it is very hard to get.’ Then the eldest son said, ’I will soon find it’: and he went to the sick king, and begged that he might go in search of the Water of Life, as it was the only thing that could save him. ’No,’ said the king. ’I had rather die than place you in such great danger as you must meet with in your journey.’ But he begged so hard that the king let him go; and the prince thought to himself, ’If I bring my father this water, he will make me sole heir to his kingdom.’ + +Then he set out: and when he had gone on his way some time he came to a deep valley, overhung with rocks and woods; and as he looked around, he saw standing above him on one of the rocks a little ugly dwarf, with a sugarloaf cap and a scarlet cloak; and the dwarf called to him and said, ’Prince, whither so fast?’ ’What is that to thee, you ugly imp?’ said the prince haughtily, and rode on. + +But the dwarf was enraged at his behaviour, and laid a fairy spell of ill-luck upon him; so that as he rode on the mountain pass became narrower and narrower, and at last the way was so straitened that he could not go to step forward: and when he thought to have turned his horse round and go back the way he came, he heard a loud laugh ringing round him, and found that the path was closed behind him, so that he was shut in all round. He next tried to get off his horse and make his way on foot, but again the laugh rang in his ears, and he found himself unable to move a step, and thus he was forced to abide spellbound. + +Meantime the old king was lingering on in daily hope of his son’s return, till at last the second son said, ’Father, I will go in search of the Water of Life.’ For he thought to himself, ’My brother is surely dead, and the kingdom will fall to me if I find the water.’ The king was at first very unwilling to let him go, but at last yielded to his wish. So he set out and followed the same road which his brother had done, and met with the same elf, who stopped him at the same spot in the mountains, saying, as before, ’Prince, prince, whither so fast?’ ’Mind your own affairs, busybody!’ said the prince scornfully, and rode on. + +But the dwarf put the same spell upon him as he put on his elder brother, and he, too, was at last obliged to take up his abode in the heart of the mountains. Thus it is with proud silly people, who think themselves above everyone else, and are too proud to ask or take advice. + +When the second prince had thus been gone a long time, the youngest son said he would go and search for the Water of Life, and trusted he should soon be able to make his father well again. So he set out, and the dwarf met him too at the same spot in the valley, among the mountains, and said, ’Prince, whither so fast?’ And the prince said, ’I am going in search of the Water of Life, because my father is ill, and like to die: can you help me? Pray be kind, and aid me if you can!’ ’Do you know where it is to be found?’ asked the dwarf. ’No,’ said the prince, ’I do not. Pray tell me if you know.’ ’Then as you have spoken to me kindly, and are wise enough to seek for advice, I will tell you how and where to go. The water you seek springs from a well in an enchanted castle; and, that you may be able to reach it in safety, I will give you an iron wand and two little loaves of bread; strike the iron door of the castle three times with the wand, and it will open: two hungry lions will be lying down inside gaping for their prey, but if you throw them the bread they will let you pass; then hasten on to the well, and take some of the Water of Life before the clock strikes twelve; for if you tarry longer the door will shut upon you for ever.’ + +Then the prince thanked his little friend with the scarlet cloak for his friendly aid, and took the wand and the bread, and went travelling on and on, over sea and over land, till he came to his journey’s end, and found everything to be as the dwarf had told him. The door flew open at the third stroke of the wand, and when the lions were quieted he went on through the castle and came at length to a beautiful hall. Around it he saw several knights sitting in a trance; then he pulled off their rings and put them on his own fingers. In another room he saw on a table a sword and a loaf of bread, which he also took. Further on he came to a room where a beautiful young lady sat upon a couch; and she welcomed him joyfully, and said, if he would set her free from the spell that bound her, the kingdom should be his, if he would come back in a year and marry her. Then she told him that the well that held the Water of Life was in the palace gardens; and bade him make haste, and draw what he wanted before the clock struck twelve. + +He walked on; and as he walked through beautiful gardens he came to a delightful shady spot in which stood a couch; and he thought to himself, as he felt tired, that he would rest himself for a while, and gaze on the lovely scenes around him. So he laid himself down, and sleep fell upon him unawares, so that he did not wake up till the clock was striking a quarter to twelve. Then he sprang from the couch dreadfully frightened, ran to the well, filled a cup that was standing by him full of water, and hastened to get away in time. Just as he was going out of the iron door it struck twelve, and the door fell so quickly upon him that it snapped off a piece of his heel. + +When he found himself safe, he was overjoyed to think that he had got the Water of Life; and as he was going on his way homewards, he passed by the little dwarf, who, when he saw the sword and the loaf, said, ’You have made a noble prize; with the sword you can at a blow slay whole armies, and the bread will never fail you.’ Then the prince thought to himself, ’I cannot go home to my father without my brothers’; so he said, ’My dear friend, cannot you tell me where my two brothers are, who set out in search of the Water of Life before me, and never came back?’ ’I have shut them up by a charm between two mountains,’ said the dwarf, ’because they were proud and ill-behaved, and scorned to ask advice.’ The prince begged so hard for his brothers, that the dwarf at last set them free, though unwillingly, saying, ’Beware of them, for they have bad hearts.’ Their brother, however, was greatly rejoiced to see them, and told them all that had happened to him; how he had found the Water of Life, and had taken a cup full of it; and how he had set a beautiful princess free from a spell that bound her; and how she had engaged to wait a whole year, and then to marry him, and to give him the kingdom. + +Then they all three rode on together, and on their way home came to a country that was laid waste by war and a dreadful famine, so that it was feared all must die for want. But the prince gave the king of the land the bread, and all his kingdom ate of it. And he lent the king the wonderful sword, and he slew the enemy’s army with it; and thus the kingdom was once more in peace and plenty. In the same manner he befriended two other countries through which they passed on their way. + +When they came to the sea, they got into a ship and during their voyage the two eldest said to themselves, ’Our brother has got the water which we could not find, therefore our father will forsake us and give him the kingdom, which is our right’; so they were full of envy and revenge, and agreed together how they could ruin him. Then they waited till he was fast asleep, and poured the Water of Life out of the cup, and took it for themselves, giving him bitter sea-water instead. + +When they came to their journey’s end, the youngest son brought his cup to the sick king, that he might drink and be healed. Scarcely, however, had he tasted the bitter sea-water when he became worse even than he was before; and then both the elder sons came in, and blamed the youngest for what they had done; and said that he wanted to poison their father, but that they had found the Water of Life, and had brought it with them. He no sooner began to drink of what they brought him, than he felt his sickness leave him, and was as strong and well as in his younger days. Then they went to their brother, and laughed at him, and said, ’Well, brother, you found the Water of Life, did you? You have had the trouble and we shall have the reward. Pray, with all your cleverness, why did not you manage to keep your eyes open? Next year one of us will take away your beautiful princess, if you do not take care. You had better say nothing about this to our father, for he does not believe a word you say; and if you tell tales, you shall lose your life into the bargain: but be quiet, and we will let you off.’ + +The old king was still very angry with his youngest son, and thought that he really meant to have taken away his life; so he called his court together, and asked what should be done, and all agreed that he ought to be put to death. The prince knew nothing of what was going on, till one day, when the king’s chief huntsmen went a-hunting with him, and they were alone in the wood together, the huntsman looked so sorrowful that the prince said, ’My friend, what is the matter with you?’ ’I cannot and dare not tell you,’ said he. But the prince begged very hard, and said, ’Only tell me what it is, and do not think I shall be angry, for I will forgive you.’ ’Alas!’ said the huntsman; ’the king has ordered me to shoot you.’ The prince started at this, and said, ’Let me live, and I will change dresses with you; you shall take my royal coat to show to my father, and do you give me your shabby one.’ ’With all my heart,’ said the huntsman; ’I am sure I shall be glad to save you, for I could not have shot you.’ Then he took the prince’s coat, and gave him the shabby one, and went away through the wood. + +Some time after, three grand embassies came to the old king’s court, with rich gifts of gold and precious stones for his youngest son; now all these were sent from the three kings to whom he had lent his sword and loaf of bread, in order to rid them of their enemy and feed their people. This touched the old king’s heart, and he thought his son might still be guiltless, and said to his court, ’O that my son were still alive! how it grieves me that I had him killed!’ ’He is still alive,’ said the huntsman; ’and I am glad that I had pity on him, but let him go in peace, and brought home his royal coat.’ At this the king was overwhelmed with joy, and made it known throughout all his kingdom, that if his son would come back to his court he would forgive him. + +Meanwhile the princess was eagerly waiting till her deliverer should come back; and had a road made leading up to her palace all of shining gold; and told her courtiers that whoever came on horseback, and rode straight up to the gate upon it, was her true lover; and that they must let him in: but whoever rode on one side of it, they must be sure was not the right one; and that they must send him away at once. + +The time soon came, when the eldest brother thought that he would make haste to go to the princess, and say that he was the one who had set her free, and that he should have her for his wife, and the kingdom with her. As he came before the palace and saw the golden road, he stopped to look at it, and he thought to himself, ’It is a pity to ride upon this beautiful road’; so he turned aside and rode on the right-hand side of it. But when he came to the gate, the guards, who had seen the road he took, said to him, he could not be what he said he was, and must go about his business. + +The second prince set out soon afterwards on the same errand; and when he came to the golden road, and his horse had set one foot upon it, he stopped to look at it, and thought it very beautiful, and said to himself, ’What a pity it is that anything should tread here!’ Then he too turned aside and rode on the left side of it. But when he came to the gate the guards said he was not the true prince, and that he too must go away about his business; and away he went. + +Now when the full year was come round, the third brother left the forest in which he had lain hid for fear of his father’s anger, and set out in search of his betrothed bride. So he journeyed on, thinking of her all the way, and rode so quickly that he did not even see what the road was made of, but went with his horse straight over it; and as he came to the gate it flew open, and the princess welcomed him with joy, and said he was her deliverer, and should now be her husband and lord of the kingdom. When the first joy at their meeting was over, the princess told him she had heard of his father having forgiven him, and of his wish to have him home again: so, before his wedding with the princess, he went to visit his father, taking her with him. Then he told him everything; how his brothers had cheated and robbed him, and yet that he had borne all those wrongs for the love of his father. And the old king was very angry, and wanted to punish his wicked sons; but they made their escape, and got into a ship and sailed away over the wide sea, and where they went to nobody knew and nobody cared. + +And now the old king gathered together his court, and asked all his kingdom to come and celebrate the wedding of his son and the princess. And young and old, noble and squire, gentle and simple, came at once on the summons; and among the rest came the friendly dwarf, with the sugarloaf hat, and a new scarlet cloak. + + And the wedding was held, and the merry bells run. + And all the good people they danced and they sung, + And feasted and frolick’d I can’t tell how long. \ No newline at end of file diff --git a/python/samples/learn_resources/resources/Grimms-The-White-Snake.txt b/python/samples/learn_resources/resources/Grimms-The-White-Snake.txt new file mode 100644 index 000000000000..75ff737109f1 --- /dev/null +++ b/python/samples/learn_resources/resources/Grimms-The-White-Snake.txt @@ -0,0 +1,28 @@ +The White Snake +By the Grimm Brothers + +A long time ago there lived a king who was famed for his wisdom through all the land. Nothing was hidden from him, and it seemed as if news of the most secret things was brought to him through the air. But he had a strange custom; every day after dinner, when the table was cleared, and no one else was present, a trusty servant had to bring him one more dish. It was covered, however, and even the servant did not know what was in it, neither did anyone know, for the king never took off the cover to eat of it until he was quite alone. + +This had gone on for a long time, when one day the servant, who took away the dish, was overcome with such curiosity that he could not help carrying the dish into his room. When he had carefully locked the door, he lifted up the cover, and saw a white snake lying on the dish. But when he saw it he could not deny himself the pleasure of tasting it, so he cut of a little bit and put it into his mouth. No sooner had it touched his tongue than he heard a strange whispering of little voices outside his window. He went and listened, and then noticed that it was the sparrows who were chattering together, and telling one another of all kinds of things which they had seen in the fields and woods. Eating the snake had given him power of understanding the language of animals. + +Now it so happened that on this very day the queen lost her most beautiful ring, and suspicion of having stolen it fell upon this trusty servant, who was allowed to go everywhere. The king ordered the man to be brought before him, and threatened with angry words that unless he could before the morrow point out the thief, he himself should be looked upon as guilty and executed. In vain he declared his innocence; he was dismissed with no better answer. + +In his trouble and fear he went down into the courtyard and took thought how to help himself out of his trouble. Now some ducks were sitting together quietly by a brook and taking their rest; and, whilst they were making their feathers smooth with their bills, they were having a confidential conversation together. The servant stood by and listened. They were telling one another of all the places where they had been waddling about all the morning, and what good food they had found; and one said in a pitiful tone: ’Something lies heavy on my stomach; as I was eating in haste I swallowed a ring which lay under the queen’s window.’ The servant at once seized her by the neck, carried her to the kitchen, and said to the cook: ’Here is a fine duck; pray, kill her.’ ’Yes,’ said the cook, and weighed her in his hand; ’she has spared no trouble to fatten herself, and has been waiting to be roasted long enough.’ So he cut off her head, and as she was being dressed for the spit, the queen’s ring was found inside her. + +The servant could now easily prove his innocence; and the king, to make amends for the wrong, allowed him to ask a favour, and promised him the best place in the court that he could wish for. The servant refused everything, and only asked for a horse and some money for travelling, as he had a mind to see the world and go about a little. When his request was granted he set out on his way, and one day came to a pond, where he saw three fishes caught in the reeds and gasping for water. Now, though it is said that fishes are dumb, he heard them lamenting that they must perish so miserably, and, as he had a kind heart, he got off his horse and put the three prisoners back into the water. They leapt with delight, put out their heads, and cried to him: ’We will remember you and repay you for saving us!’ + +He rode on, and after a while it seemed to him that he heard a voice in the sand at his feet. He listened, and heard an ant-king complain: ’Why cannot folks, with their clumsy beasts, keep off our bodies? That stupid horse, with his heavy hoofs, has been treading down my people without mercy!’ So he turned on to a side path and the ant-king cried out to him: ’We will remember you–one good turn deserves another!’ + +The path led him into a wood, and there he saw two old ravens standing by their nest, and throwing out their young ones. ’Out with you, you idle, good-for-nothing creatures!’ cried they; ’we cannot find food for you any longer; you are big enough, and can provide for yourselves.’ But the poor young ravens lay upon the ground, flapping their wings, and crying: ’Oh, what helpless chicks we are! We must shift for ourselves, and yet we cannot fly! What can we do, but lie here and starve?’ So the good young fellow alighted and killed his horse with his sword, and gave it to them for food. Then they came hopping up to it, satisfied their hunger, and cried: ’We will remember you–one good turn deserves another!’ + +And now he had to use his own legs, and when he had walked a long way, he came to a large city. There was a great noise and crowd in the streets, and a man rode up on horseback, crying aloud: ’The king’s daughter wants a husband; but whoever seeks her hand must perform a hard task, and if he does not succeed he will forfeit his life.’ Many had already made the attempt, but in vain; nevertheless when the youth saw the king’s daughter he was so overcome by her great beauty that he forgot all danger, went before the king, and declared himself a suitor. + +So he was led out to the sea, and a gold ring was thrown into it, before his eyes; then the king ordered him to fetch this ring up from the bottom of the sea, and added: ’If you come up again without it you will be thrown in again and again until you perish amid the waves.’ All the people grieved for the handsome youth; then they went away, leaving him alone by the sea. + +He stood on the shore and considered what he should do, when suddenly he saw three fishes come swimming towards him, and they were the very fishes whose lives he had saved. The one in the middle held a mussel in its mouth, which it laid on the shore at the youth’s feet, and when he had taken it up and opened it, there lay the gold ring in the shell. Full of joy he took it to the king and expected that he would grant him the promised reward. + +But when the proud princess perceived that he was not her equal in birth, she scorned him, and required him first to perform another task. She went down into the garden and strewed with her own hands ten sacksful of millet-seed on the grass; then she said: ’Tomorrow morning before sunrise these must be picked up, and not a single grain be wanting.’ + +The youth sat down in the garden and considered how it might be possible to perform this task, but he could think of nothing, and there he sat sorrowfully awaiting the break of day, when he should be led to death. But as soon as the first rays of the sun shone into the garden he saw all the ten sacks standing side by side, quite full, and not a single grain was missing. The ant-king had come in the night with thousands and thousands of ants, and the grateful creatures had by great industry picked up all the millet-seed and gathered them into the sacks. + +Presently the king’s daughter herself came down into the garden, and was amazed to see that the young man had done the task she had given him. But she could not yet conquer her proud heart, and said: ’Although he has performed both the tasks, he shall not be my husband until he had brought me an apple from the Tree of Life.’ The youth did not know where the Tree of Life stood, but he set out, and would have gone on for ever, as long as his legs would carry him, though he had no hope of finding it. After he had wandered through three kingdoms, he came one evening to a wood, and lay down under a tree to sleep. But he heard a rustling in the branches, and a golden apple fell into his hand. At the same time three ravens flew down to him, perched themselves upon his knee, and said: ’We are the three young ravens whom you saved from starving; when we had grown big, and heard that you were seeking the Golden Apple, we flew over the sea to the end of the world, where the Tree of Life stands, and have brought you the apple.’ The youth, full of joy, set out homewards, and took the Golden Apple to the king’s beautiful daughter, who had now no more excuses left to make. They cut the Apple of Life in two and ate it together; and then her heart became full of love for him, and they lived in undisturbed happiness to a great age. \ No newline at end of file diff --git a/python/samples/learn_resources/resources/PopulationByAdmin1.csv b/python/samples/learn_resources/resources/PopulationByAdmin1.csv new file mode 100644 index 000000000000..7fc6970985da --- /dev/null +++ b/python/samples/learn_resources/resources/PopulationByAdmin1.csv @@ -0,0 +1,744 @@ +UID,iso2,iso3,code3,Province_State,Country_Region,Lat,Long,Combined_Key,Population +5601,BE,BEL,56,Antwerp,Belgium,51.2195,4.4024,"Antwerp, Belgium",1869730 +5602,BE,BEL,56,Brussels,Belgium,50.8503,4.3517,"Brussels, Belgium",1218255 +5603,BE,BEL,56,East Flanders,Belgium,51.0362,3.7373,"East Flanders, Belgium",1525255 +5604,BE,BEL,56,Flemish Brabant,Belgium,50.9167,4.5833,"Flemish Brabant, Belgium",1155843 +5605,BE,BEL,56,Hainaut,Belgium,50.5257,4.0621,"Hainaut, Belgium",1346840 +5606,BE,BEL,56,Liege,Belgium,50.4496,5.8492,"Liege, Belgium",1109800 +5607,BE,BEL,56,Limburg,Belgium,50.9739,5.342,"Limburg, Belgium",877370 +5608,BE,BEL,56,Luxembourg,Belgium,50.0547,5.4677,"Luxembourg, Belgium",286752 +5609,BE,BEL,56,Namur,Belgium,50.331,4.8221,"Namur, Belgium",495832 +5611,BE,BEL,56,Walloon Brabant,Belgium,50.4,4.35,"Walloon Brabant, Belgium",406019 +5612,BE,BEL,56,West Flanders,Belgium,51.0536,3.1458,"West Flanders, Belgium",1200945 +7601,BR,BRA,76,Acre,Brazil,-9.0238,-70.812,"Acre, Brazil",881935 +7602,BR,BRA,76,Alagoas,Brazil,-9.5713,-36.782,"Alagoas, Brazil",3337357 +7603,BR,BRA,76,Amapa,Brazil,0.902,-52.003,"Amapa, Brazil",845731 +7604,BR,BRA,76,Amazonas,Brazil,-3.4168,-65.8561,"Amazonas, Brazil",4144597 +7605,BR,BRA,76,Bahia,Brazil,-12.5797,-41.7007,"Bahia, Brazil",14873064 +7606,BR,BRA,76,Ceara,Brazil,-5.4984,-39.3206,"Ceara, Brazil",9132078 +7607,BR,BRA,76,Distrito Federal,Brazil,-15.7998,-47.8645,"Distrito Federal, Brazil",3015268 +7608,BR,BRA,76,Espirito Santo,Brazil,-19.1834,-40.3089,"Espirito Santo, Brazil",4018650 +7609,BR,BRA,76,Goias,Brazil,-15.827,-49.8362,"Goias, Brazil",7018354 +7610,BR,BRA,76,Maranhao,Brazil,-4.9609,-45.2744,"Maranhao, Brazil",7075181 +7611,BR,BRA,76,Mato Grosso,Brazil,-12.6819,-56.9211,"Mato Grosso, Brazil",3484466 +7612,BR,BRA,76,Mato Grosso do Sul,Brazil,-20.7722,-54.7852,"Mato Grosso do Sul, Brazil",2778986 +7613,BR,BRA,76,Minas Gerais,Brazil,-18.5122,-44.555,"Minas Gerais, Brazil",21168791 +7614,BR,BRA,76,Para,Brazil,-1.9981,-54.9306,"Para, Brazil",8602865 +7615,BR,BRA,76,Paraiba,Brazil,-7.24,-36.782,"Paraiba, Brazil",4018127 +7616,BR,BRA,76,Parana,Brazil,-25.2521,-52.0215,"Parana, Brazil",11433957 +7617,BR,BRA,76,Pernambuco,Brazil,-8.8137,-36.9541,"Pernambuco, Brazil",9557071 +7618,BR,BRA,76,Piaui,Brazil,-7.7183,-42.7289,"Piaui, Brazil",3273227 +7619,BR,BRA,76,Rio de Janeiro,Brazil,-22.9068,-43.1729,"Rio de Janeiro, Brazil",17264943 +7620,BR,BRA,76,Rio Grande do Norte,Brazil,-5.4026,-36.9541,"Rio Grande do Norte, Brazil",3506853 +7621,BR,BRA,76,Rio Grande do Sul,Brazil,-30.0346,-51.2177,"Rio Grande do Sul, Brazil",11377239 +7622,BR,BRA,76,Rondonia,Brazil,-11.5057,-63.5806,"Rondonia, Brazil",1777225 +7623,BR,BRA,76,Roraima,Brazil,-2.7376,-62.0751,"Roraima, Brazil",605761 +7624,BR,BRA,76,Santa Catarina,Brazil,-27.2423,-50.2189,"Santa Catarina, Brazil",7164788 +7625,BR,BRA,76,Sao Paulo,Brazil,-23.5505,-46.6333,"Sao Paulo, Brazil",45919049 +7626,BR,BRA,76,Sergipe,Brazil,-10.5741,-37.3857,"Sergipe, Brazil",2298696 +7627,BR,BRA,76,Tocantins,Brazil,-10.1753,-48.2982,"Tocantins, Brazil",1572866 +15201,CL,CHL,152,Antofagasta,Chile,-23.6509,-70.3975,"Antofagasta, Chile",607534 +15202,CL,CHL,152,Araucania,Chile,-38.9489,-72.3311,"Araucania, Chile",957224 +15203,CL,CHL,152,Arica y Parinacota,Chile,-18.594,-69.4785,"Arica y Parinacota, Chile",226068 +15204,CL,CHL,152,Atacama,Chile,-27.5661,-70.0503,"Atacama, Chile",288944 +15205,CL,CHL,152,Aysen,Chile,-45.9864,-73.7669,"Aysen, Chile",103158 +15206,CL,CHL,152,Biobio,Chile,-37.4464,-72.1416,"Biobio, Chile",1556805 +15207,CL,CHL,152,Coquimbo,Chile,-29.959,-71.3389,"Coquimbo, Chile",757586 +15208,CL,CHL,152,Los Lagos,Chile,-41.9198,-72.1416,"Los Lagos, Chile",828708 +15209,CL,CHL,152,Los Rios,Chile,-40.231,-72.3311,"Los Rios, Chile",384837 +15210,CL,CHL,152,Magallanes,Chile,-52.368,-70.9863,"Magallanes, Chile",166533 +15211,CL,CHL,152,Maule,Chile,-35.5183,-71.6885,"Maule, Chile",1044950 +15212,CL,CHL,152,Metropolitana,Chile,-33.4376,-70.6505,"Metropolitana, Chile",7112808 +15213,CL,CHL,152,Nuble,Chile,-36.7226,-71.7622,"Nuble, Chile",480609 +15214,CL,CHL,152,OHiggins,Chile,-34.5755,-71.0022,"OHiggins, Chile",914555 +15215,CL,CHL,152,Tarapaca,Chile,-19.9232,-69.5132,"Tarapaca, Chile",330558 +15216,CL,CHL,152,Valparaiso,Chile,-33.0472,-71.6127,"Valparaiso, Chile",1815902 +17001,CO,COL,170,Amazonas,Colombia,-1.4429,-71.5724,"Amazonas, Colombia",76589 +17002,CO,COL,170,Antioquia,Colombia,7.1986,-75.3412,"Antioquia, Colombia",6407102 +17003,CO,COL,170,Arauca,Colombia,7.0762,-70.7105,"Arauca, Colombia",262174 +17004,CO,COL,170,Atlantico,Colombia,10.6966,-74.8741,"Atlantico, Colombia",2535517 +17005,CO,COL,170,Bolivar,Colombia,8.6704,-74.03,"Bolivar, Colombia",2070110 +17006,CO,COL,170,Boyaca,Colombia,5.4545,-73.362,"Boyaca, Colombia",1217376 +17007,CO,COL,170,Caldas,Colombia,5.2983,-75.2479,"Caldas, Colombia",998255 +17008,CO,COL,170,Capital District,Colombia,4.711,-74.0721,"Capital District, Colombia",7412566 +17009,CO,COL,170,Caqueta,Colombia,0.8699,-73.8419,"Caqueta, Colombia",401489 +17010,CO,COL,170,Casanare,Colombia,5.7589,-71.5724,"Casanare, Colombia",420504 +17011,CO,COL,170,Cauca,Colombia,2.705,-76.826,"Cauca, Colombia",1464488 +17012,CO,COL,170,Cesar,Colombia,9.3373,-73.6536,"Cesar, Colombia",1200574 +17013,CO,COL,170,Choco,Colombia,5.2528,-76.826,"Choco, Colombia",534826 +17014,CO,COL,170,Cordoba,Colombia,8.0493,-75.574,"Cordoba, Colombia",1784783 +17015,CO,COL,170,Cundinamarca,Colombia,5.026,-74.03,"Cundinamarca, Colombia",2919060 +17016,CO,COL,170,Guainia,Colombia,2.5854,-68.5247,"Guainia, Colombia",48114 +17017,CO,COL,170,Guaviare,Colombia,1.0654,-73.2603,"Guaviare, Colombia",82767 +17018,CO,COL,170,Huila,Colombia,2.5359,-75.5277,"Huila, Colombia",1100386 +17019,CO,COL,170,La Guajira,Colombia,11.3548,-72.5205,"La Guajira, Colombia",880560 +17020,CO,COL,170,Magdalena,Colombia,10.4113,-74.4057,"Magdalena, Colombia",1341746 +17021,CO,COL,170,Meta,Colombia,3.272,-73.0877,"Meta, Colombia",1039722 +17022,CO,COL,170,Narino,Colombia,1.2892,-77.3579,"Narino, Colombia",1630592 +17023,CO,COL,170,Norte de Santander,Colombia,7.9463,-72.8988,"Norte de Santander, Colombia",1491689 +17024,CO,COL,170,Putumayo,Colombia,0.436,-75.5277,"Putumayo, Colombia",348182 +17025,CO,COL,170,Quindio,Colombia,4.461,-75.6674,"Quindio, Colombia",539904 +17026,CO,COL,170,Risaralda,Colombia,5.3158,-75.9928,"Risaralda, Colombia",943401 +17027,CO,COL,170,San Andres y Providencia,Colombia,12.5567,-81.7185,"San Andres y Providencia, Colombia",61280 +17028,CO,COL,170,Santander,Colombia,6.6437,-73.6536,"Santander, Colombia",2184837 +17029,CO,COL,170,Sucre,Colombia,8.814,-74.7233,"Sucre, Colombia",904863 +17030,CO,COL,170,Tolima,Colombia,4.0925,-75.1545,"Tolima, Colombia",1330187 +17031,CO,COL,170,Valle del Cauca,Colombia,3.8009,-76.6413,"Valle del Cauca, Colombia",4475886 +17032,CO,COL,170,Vaupes,Colombia,0.8554,-70.812,"Vaupes, Colombia",40797 +17033,CO,COL,170,Vichada,Colombia,4.4234,-69.2878,"Vichada, Colombia",107808 +234,FO,FRO,234,Faroe Islands,Denmark,61.8926,-6.9118,"Faroe Islands, Denmark",48865 +304,GL,GRL,304,Greenland,Denmark,71.7069,-42.6043,"Greenland, Denmark",56772 +254,GF,GUF,254,French Guiana,France,4,-53,"French Guiana, France",298682 +258,PF,PYF,258,French Polynesia,France,-17.6797,-149.4068,"French Polynesia, France",280904 +312,GP,GLP,312,Guadeloupe,France,16.265,-61.551,"Guadeloupe, France",400127 +474,MQ,MTQ,474,Martinique,France,14.6415,-61.0242,"Martinique, France",375265 +175,YT,MYT,175,Mayotte,France,-12.8275,45.166244,"Mayotte, France",272813 +540,NC,NCL,540,New Caledonia,France,-20.904305,165.618042,"New Caledonia, France",285491 +638,RE,REU,638,Reunion,France,-21.1151,55.5364,"Reunion, France",895308 +652,BL,BLM,652,Saint Barthelemy,France,17.9,-62.8333,"Saint Barthelemy, France",9885 +666,PM,SPM,666,Saint Pierre and Miquelon,France,46.8852,-56.3159,"Saint Pierre and Miquelon, France",5795 +663,MF,MAF,663,St Martin,France,18.0708,-63.0501,"St Martin, France",38659 +876,WF,WLF,876,Wallis and Futuna,France,-14.2938,-178.1165,"Wallis and Futuna, France",15289 +27601,DE,DEU,276,Baden-Wurttemberg,Germany,48.6616,9.3501,"Baden-Wurttemberg, Germany",11103043 +27602,DE,DEU,276,Bayern,Germany,48.7904,11.4979,"Bayern, Germany",13140183 +27603,DE,DEU,276,Berlin,Germany,52.52,13.405,"Berlin, Germany",3664088 +27604,DE,DEU,276,Brandenburg,Germany,52.4125,12.5316,"Brandenburg, Germany",2531071 +27605,DE,DEU,276,Bremen,Germany,53.0793,8.8017,"Bremen, Germany",680130 +27606,DE,DEU,276,Hamburg,Germany,53.5511,9.9937,"Hamburg, Germany",1852478 +27607,DE,DEU,276,Hessen,Germany,50.6521,9.1624,"Hessen, Germany",6293154 +27608,DE,DEU,276,Mecklenburg-Vorpommern,Germany,53.6127,12.4296,"Mecklenburg-Vorpommern, Germany",1610774 +27609,DE,DEU,276,Niedersachsen,Germany,52.6367,9.8451,"Niedersachsen, Germany",8003421 +27610,DE,DEU,276,Nordrhein-Westfalen,Germany,51.4332,7.6616,"Nordrhein-Westfalen, Germany",17925570 +27611,DE,DEU,276,Rheinland-Pfalz,Germany,50.1183,7.309,"Rheinland-Pfalz, Germany",4098391 +27612,DE,DEU,276,Saarland,Germany,49.3964,7.023,"Saarland, Germany",983991 +27613,DE,DEU,276,Sachsen,Germany,51.1045,13.2017,"Sachsen, Germany",4056941 +27614,DE,DEU,276,Sachsen-Anhalt,Germany,51.9503,11.6923,"Sachsen-Anhalt, Germany",2180684 +27615,DE,DEU,276,Schleswig-Holstein,Germany,54.2194,9.6961,"Schleswig-Holstein, Germany",2910875 +27616,DE,DEU,276,Thuringen,Germany,51.011,10.8453,"Thuringen, Germany",2120237 +35601,IN,IND,356,Andaman and Nicobar Islands,India,11.225999,92.968178,"Andaman and Nicobar Islands, India",417036 +35602,IN,IND,356,Andhra Pradesh,India,15.9129,79.74,"Andhra Pradesh, India",53903393 +35603,IN,IND,356,Arunachal Pradesh,India,27.768456,96.384277,"Arunachal Pradesh, India",1570458 +35604,IN,IND,356,Assam,India,26.357149,92.830441,"Assam, India",35607039 +35605,IN,IND,356,Bihar,India,25.679658,85.60484,"Bihar, India",124799926 +35606,IN,IND,356,Chandigarh,India,30.733839,76.768278,"Chandigarh, India",1158473 +35607,IN,IND,356,Chhattisgarh,India,21.264705,82.035366,"Chhattisgarh, India",29436231 +35608,IN,IND,356,Dadra and Nagar Haveli and Daman and Diu,India,20.194742,73.080901,"Dadra and Nagar Haveli and Daman and Diu, India",615724 +35609,IN,IND,356,Delhi,India,28.646519,77.10898,"Delhi, India",18710922 +35610,IN,IND,356,Goa,India,15.359682,74.057396,"Goa, India",1586250 +35611,IN,IND,356,Gujarat,India,22.694884,71.590923,"Gujarat, India",63872399 +35612,IN,IND,356,Haryana,India,29.20004,76.332824,"Haryana, India",28204692 +35613,IN,IND,356,Himachal Pradesh,India,31.927213,77.233081,"Himachal Pradesh, India",7451955 +35614,IN,IND,356,Jammu and Kashmir,India,33.75943,76.612638,"Jammu and Kashmir, India",13606320 +35615,IN,IND,356,Jharkhand,India,23.654536,85.557631,"Jharkhand, India",38593948 +35616,IN,IND,356,Karnataka,India,14.70518,76.166436,"Karnataka, India",67562686 +35617,IN,IND,356,Kerala,India,10.450898,76.405749,"Kerala, India",35699443 +35618,IN,IND,356,Ladakh,India,34.1526,77.5771,"Ladakh, India",274289 +35619,IN,IND,356,Madhya Pradesh,India,23.541513,78.289633,"Madhya Pradesh, India",85358965 +35620,IN,IND,356,Maharashtra,India,19.449759,76.108221,"Maharashtra, India",123144223 +35621,IN,IND,356,Manipur,India,24.738975,93.882541,"Manipur, India",3091545 +35622,IN,IND,356,Meghalaya,India,25.536934,91.278882,"Meghalaya, India",3366710 +35623,IN,IND,356,Mizoram,India,23.309381,92.83822,"Mizoram, India",1239244 +35624,IN,IND,356,Nagaland,India,26.06702,94.470302,"Nagaland, India",2249695 +35625,IN,IND,356,Odisha,India,20.505428,84.418059,"Odisha, India",46356334 +35626,IN,IND,356,Puducherry,India,11.882658,78.86498,"Puducherry, India",1413542 +35627,IN,IND,356,Punjab,India,30.841465,75.40879,"Punjab, India",30141373 +35628,IN,IND,356,Rajasthan,India,26.583423,73.847973,"Rajasthan, India",81032689 +35629,IN,IND,356,Sikkim,India,27.571671,88.472712,"Sikkim, India",690251 +35630,IN,IND,356,Tamil Nadu,India,11.006091,78.400624,"Tamil Nadu, India",77841267 +35631,IN,IND,356,Telangana,India,18.1124,79.0193,"Telangana, India",39362732 +35632,IN,IND,356,Tripura,India,23.746783,91.743565,"Tripura, India",4169794 +35633,IN,IND,356,Uttar Pradesh,India,26.925425,80.560982,"Uttar Pradesh, India",237882725 +35634,IN,IND,356,Uttarakhand,India,30.156447,79.197608,"Uttarakhand, India",11250858 +35635,IN,IND,356,West Bengal,India,23.814082,87.979803,"West Bengal, India",99609303 +35637,IN,IND,356,Lakshadweep,India,13.6999972,72.1833326,"Lakshadweep, India",64429 +38013,IT,ITA,380,Abruzzo,Italy,42.35122196,13.39843823,"Abruzzo, Italy",1311580 +38017,IT,ITA,380,Basilicata,Italy,40.63947052,15.80514834,"Basilicata, Italy",562869 +38018,IT,ITA,380,Calabria,Italy,38.90597598,16.59440194,"Calabria, Italy",1947131 +38015,IT,ITA,380,Campania,Italy,40.83956555,14.25084984,"Campania, Italy",5801692 +38008,IT,ITA,380,Emilia-Romagna,Italy,44.49436681,11.3417208,"Emilia-Romagna, Italy",4459477 +38006,IT,ITA,380,Friuli Venezia Giulia,Italy,45.6494354,13.76813649,"Friuli Venezia Giulia, Italy",1215220 +38012,IT,ITA,380,Lazio,Italy,41.89277044,12.48366722,"Lazio, Italy",5879082 +38007,IT,ITA,380,Liguria,Italy,44.41149315,8.9326992,"Liguria, Italy",1550640 +38003,IT,ITA,380,Lombardia,Italy,45.46679409,9.190347404,"Lombardia, Italy",10060574 +38011,IT,ITA,380,Marche,Italy,43.61675973,13.5188753,"Marche, Italy",1525271 +38014,IT,ITA,380,Molise,Italy,41.55774754,14.65916051,"Molise, Italy",305617 +38041,IT,ITA,380,P.A. Bolzano,Italy,46.49933453,11.35662422,"P.A. Bolzano, Italy",532318 +38042,IT,ITA,380,P.A. Trento,Italy,46.06893511,11.12123097,"P.A. Trento, Italy",541418 +38001,IT,ITA,380,Piemonte,Italy,45.0732745,7.680687483,"Piemonte, Italy",4356406 +38016,IT,ITA,380,Puglia,Italy,41.12559576,16.86736689,"Puglia, Italy",4029053 +38020,IT,ITA,380,Sardegna,Italy,39.21531192,9.110616306,"Sardegna, Italy",1639591 +38019,IT,ITA,380,Sicilia,Italy,38.11569725,13.3623567,"Sicilia, Italy",4999891 +38009,IT,ITA,380,Toscana,Italy,43.76923077,11.25588885,"Toscana, Italy",3729641 +38010,IT,ITA,380,Umbria,Italy,43.10675841,12.38824698,"Umbria, Italy",882015 +38002,IT,ITA,380,Valle d'Aosta,Italy,45.73750286,7.320149366,"Valle d'Aosta, Italy",125666 +38005,IT,ITA,380,Veneto,Italy,45.43490485,12.33845213,"Veneto, Italy",4905854 +39201,JP,JPN,392,Aichi,Japan,35.035551,137.211621,"Aichi, Japan",7552239 +39202,JP,JPN,392,Akita,Japan,39.748679,140.408228,"Akita, Japan",966490 +39203,JP,JPN,392,Aomori,Japan,40.781541,140.828896,"Aomori, Japan",1246371 +39204,JP,JPN,392,Chiba,Japan,35.510141,140.198917,"Chiba, Japan",6259382 +39205,JP,JPN,392,Ehime,Japan,33.624835,132.856842,"Ehime, Japan",1339215 +39206,JP,JPN,392,Fukui,Japan,35.846614,136.224654,"Fukui, Japan",767937 +39207,JP,JPN,392,Fukuoka,Japan,33.526032,130.666949,"Fukuoka, Japan",5103679 +39208,JP,JPN,392,Fukushima,Japan,37.378867,140.223295,"Fukushima, Japan",1845519 +39209,JP,JPN,392,Gifu,Japan,35.778671,137.055925,"Gifu, Japan",1986587 +39210,JP,JPN,392,Gunma,Japan,36.504479,138.985605,"Gunma, Japan",1942456 +39211,JP,JPN,392,Hiroshima,Japan,34.605309,132.788719,"Hiroshima, Japan",2804177 +39212,JP,JPN,392,Hokkaido,Japan,43.385711,142.552318,"Hokkaido, Japan",5250049 +39213,JP,JPN,392,Hyogo,Japan,35.039913,134.828057,"Hyogo, Japan",5466190 +39214,JP,JPN,392,Ibaraki,Japan,36.303588,140.319591,"Ibaraki, Japan",2860307 +39215,JP,JPN,392,Ishikawa,Japan,36.769464,136.771027,"Ishikawa, Japan",1137649 +39216,JP,JPN,392,Iwate,Japan,39.593287,141.361777,"Iwate, Japan",1226816 +39217,JP,JPN,392,Kagawa,Japan,34.217292,133.969047,"Kagawa, Japan",956347 +39218,JP,JPN,392,Kagoshima,Japan,31.009484,130.430665,"Kagoshima, Japan",1602273 +39219,JP,JPN,392,Kanagawa,Japan,35.415312,139.338983,"Kanagawa, Japan",9198268 +39220,JP,JPN,392,Kochi,Japan,33.422519,133.367307,"Kochi, Japan",698029 +39221,JP,JPN,392,Kumamoto,Japan,32.608154,130.745231,"Kumamoto, Japan",1747567 +39222,JP,JPN,392,Kyoto,Japan,35.253815,135.443341,"Kyoto, Japan",2582957 +39223,JP,JPN,392,Mie,Japan,34.508018,136.376013,"Mie, Japan",1780882 +39224,JP,JPN,392,Miyagi,Japan,38.446859,140.927086,"Miyagi, Japan",2306365 +39225,JP,JPN,392,Miyazaki,Japan,32.193204,131.299374,"Miyazaki, Japan",1073301 +39226,JP,JPN,392,Nagano,Japan,36.132134,138.045528,"Nagano, Japan",2048790 +39227,JP,JPN,392,Nagasaki,Japan,33.235712,129.608033,"Nagasaki, Japan",1326524 +39228,JP,JPN,392,Nara,Japan,34.317451,135.871644,"Nara, Japan",1330123 +39229,JP,JPN,392,Niigata,Japan,37.521819,138.918647,"Niigata, Japan",2223106 +39230,JP,JPN,392,Oita,Japan,33.200697,131.43324,"Oita, Japan",1135434 +39231,JP,JPN,392,Okayama,Japan,34.89246,133.826252,"Okayama, Japan",1889586 +39232,JP,JPN,392,Okinawa,Japan,25.768923,126.668016,"Okinawa, Japan",1453168 +39233,JP,JPN,392,Osaka,Japan,34.620965,135.507481,"Osaka, Japan",8809363 +39234,JP,JPN,392,Saga,Japan,33.286977,130.115738,"Saga, Japan",814711 +39235,JP,JPN,392,Saitama,Japan,35.997101,139.347635,"Saitama, Japan",7349693 +39236,JP,JPN,392,Shiga,Japan,35.215827,136.138064,"Shiga, Japan",1413943 +39237,JP,JPN,392,Shimane,Japan,35.07076,132.554064,"Shimane, Japan",674346 +39238,JP,JPN,392,Shizuoka,Japan,34.916975,138.407784,"Shizuoka, Japan",3643528 +39239,JP,JPN,392,Tochigi,Japan,36.689912,139.819213,"Tochigi, Japan",1933990 +39240,JP,JPN,392,Tokushima,Japan,33.919178,134.242091,"Tokushima, Japan",727977 +39241,JP,JPN,392,Tokyo,Japan,35.711343,139.446921,"Tokyo, Japan",13920663 +39242,JP,JPN,392,Tottori,Japan,35.359069,133.863619,"Tottori, Japan",555558 +39243,JP,JPN,392,Toyama,Japan,36.637464,137.269346,"Toyama, Japan",1043502 +39244,JP,JPN,392,Wakayama,Japan,33.911879,135.505446,"Wakayama, Japan",924933 +39245,JP,JPN,392,Yamagata,Japan,38.448396,140.102154,"Yamagata, Japan",1077666 +39246,JP,JPN,392,Yamaguchi,Japan,34.20119,131.573293,"Yamaguchi, Japan",1358336 +39247,JP,JPN,392,Yamanashi,Japan,35.612364,138.611489,"Yamanashi, Japan",810956 +45801,MY,MYS,458,Johor,Malaysia,1.4854,103.7618,"Johor, Malaysia",3768200 +45802,MY,MYS,458,Kedah,Malaysia,6.1184,100.3685,"Kedah, Malaysia",2185900 +45803,MY,MYS,458,Kelantan,Malaysia,6.1254,102.2381,"Kelantan, Malaysia",1892200 +45804,MY,MYS,458,Melaka,Malaysia,2.1896,102.2501,"Melaka, Malaysia",932700 +45805,MY,MYS,458,Negeri Sembilan,Malaysia,2.7258,101.9424,"Negeri Sembilan, Malaysia",1132100 +45806,MY,MYS,458,Pahang,Malaysia,3.8126,103.3256,"Pahang, Malaysia",1677100 +45807,MY,MYS,458,Perak,Malaysia,4.5921,101.0901,"Perak, Malaysia",2514300 +45808,MY,MYS,458,Perlis,Malaysia,6.4449,100.2048,"Perlis, Malaysia",254600 +45809,MY,MYS,458,Pulau Pinang,Malaysia,5.4141,100.3288,"Pulau Pinang, Malaysia",1777600 +45810,MY,MYS,458,Sabah,Malaysia,5.9788,116.0753,"Sabah, Malaysia",3904700 +45811,MY,MYS,458,Sarawak,Malaysia,1.5533,110.3592,"Sarawak, Malaysia",2818100 +45812,MY,MYS,458,Selangor,Malaysia,3.0738,101.5183,"Selangor, Malaysia",6541900 +45813,MY,MYS,458,Terengganu,Malaysia,5.3117,103.1324,"Terengganu, Malaysia",1250100 +45814,MY,MYS,458,W.P. Kuala Lumpur,Malaysia,3.139,101.6869,"W.P. Kuala Lumpur, Malaysia",1778400 +45815,MY,MYS,458,W.P. Labuan,Malaysia,5.2831,115.2308,"W.P. Labuan, Malaysia",99400 +45816,MY,MYS,458,W.P. Putrajaya,Malaysia,2.9264,101.6964,"W.P. Putrajaya, Malaysia",105400 +48401,MX,MEX,484,Aguascalientes,Mexico,21.8853,-102.2916,"Aguascalientes, Mexico",1434635 +48402,MX,MEX,484,Baja California,Mexico,30.8406,-115.2838,"Baja California, Mexico",3634868 +48403,MX,MEX,484,Baja California Sur,Mexico,26.0444,-111.6661,"Baja California Sur, Mexico",804708 +48404,MX,MEX,484,Campeche,Mexico,19.8301,-90.5349,"Campeche, Mexico",1000617 +48405,MX,MEX,484,Chiapas,Mexico,16.7569,-93.1292,"Chiapas, Mexico",5730367 +48406,MX,MEX,484,Chihuahua,Mexico,28.633,-106.0691,"Chihuahua, Mexico",3801487 +48407,MX,MEX,484,Ciudad de Mexico,Mexico,19.4326,-99.1332,"Ciudad de Mexico, Mexico",9018645 +48408,MX,MEX,484,Coahuila,Mexico,27.0587,-101.7068,"Coahuila, Mexico",3218720 +48409,MX,MEX,484,Colima,Mexico,19.1223,-104.0072,"Colima, Mexico",785153 +48410,MX,MEX,484,Durango,Mexico,24.5593,-104.6588,"Durango, Mexico",1868996 +48411,MX,MEX,484,Guanajuato,Mexico,21.019,-101.2574,"Guanajuato, Mexico",6228175 +48412,MX,MEX,484,Guerrero,Mexico,17.4392,-99.5451,"Guerrero, Mexico",3657048 +48413,MX,MEX,484,Hidalgo,Mexico,20.0911,-98.7624,"Hidalgo, Mexico",3086414 +48414,MX,MEX,484,Jalisco,Mexico,20.6595,-103.3494,"Jalisco, Mexico",8409693 +48415,MX,MEX,484,Mexico,Mexico,19.4969,-99.7233,"Mexico, Mexico",17427790 +48416,MX,MEX,484,Michoacan,Mexico,19.5665,-101.7068,"Michoacan, Mexico",4825401 +48417,MX,MEX,484,Morelos,Mexico,18.6813,-99.1013,"Morelos, Mexico",2044058 +48418,MX,MEX,484,Nayarit,Mexico,21.7514,-104.8455,"Nayarit, Mexico",1288571 +48419,MX,MEX,484,Nuevo Leon,Mexico,25.5922,-99.9962,"Nuevo Leon, Mexico",5610153 +48420,MX,MEX,484,Oaxaca,Mexico,17.0732,-96.7266,"Oaxaca, Mexico",4143593 +48421,MX,MEX,484,Puebla,Mexico,19.0414,-98.2063,"Puebla, Mexico",6604451 +48422,MX,MEX,484,Queretaro,Mexico,20.5888,-100.3899,"Queretaro, Mexico",2279637 +48423,MX,MEX,484,Quintana Roo,Mexico,19.1817,-88.4791,"Quintana Roo, Mexico",1723259 +48424,MX,MEX,484,San Luis Potosi,Mexico,22.1565,-100.9855,"San Luis Potosi, Mexico",2866142 +48425,MX,MEX,484,Sinaloa,Mexico,25.1721,-107.4795,"Sinaloa, Mexico",3156674 +48426,MX,MEX,484,Sonora,Mexico,29.2972,-110.3309,"Sonora, Mexico",3074745 +48427,MX,MEX,484,Tabasco,Mexico,17.8409,-92.6189,"Tabasco, Mexico",2572287 +48428,MX,MEX,484,Tamaulipas,Mexico,24.2669,-98.8363,"Tamaulipas, Mexico",3650602 +48429,MX,MEX,484,Tlaxcala,Mexico,19.3139,-98.2404,"Tlaxcala, Mexico",1380011 +48430,MX,MEX,484,Veracruz,Mexico,19.1738,-96.1342,"Veracruz, Mexico",8539862 +48431,MX,MEX,484,Yucatan,Mexico,20.7099,-89.0943,"Yucatan, Mexico",2259098 +48432,MX,MEX,484,Zacatecas,Mexico,22.7709,-102.5832,"Zacatecas, Mexico",1666426 +49801,MD,MDA,498,Anenii Noi,Moldova,46.8833,29.2167,"Anenii Noi, Moldova",81710 +49802,MD,MDA,498,Balti,Moldova,47.754,27.9184,"Balti, Moldova",127561 +49803,MD,MDA,498,Basarabeasca,Moldova,46.3333,28.9667,"Basarabeasca, Moldova",28978 +49804,MD,MDA,498,Bender,Moldova,46.8228,29.462,"Bender, Moldova",91197 +49805,MD,MDA,498,Briceni,Moldova,48.36,27.0858,"Briceni, Moldova",78027 +49806,MD,MDA,498,Cahul,Moldova,45.9167,28.1833,"Cahul, Moldova",119231 +49807,MD,MDA,498,Calarasi,Moldova,47.25,28.3,"Calarasi, Moldova",75075 +49808,MD,MDA,498,Camenca,Moldova,48.0319,28.6978,"Camenca, Moldova",8871 +49809,MD,MDA,498,Cantemir,Moldova,46.2854,28.1979,"Cantemir, Moldova",60001 +49810,MD,MDA,498,Causeni,Moldova,46.6333,29.4,"Causeni, Moldova",90612 +49811,MD,MDA,498,Ceadir-Lunga,Moldova,46.057,28.826,"Ceadir-Lunga, Moldova",16605 +49812,MD,MDA,498,Chisinau,Moldova,47.0105,28.8638,"Chisinau, Moldova",712218 +49813,MD,MDA,498,Cimislia,Moldova,46.5289,28.7838,"Cimislia, Moldova",60925 +49814,MD,MDA,498,Comrat,Moldova,46.2956,28.6549,"Comrat, Moldova",72254 +49815,MD,MDA,498,Criuleni,Moldova,47.212,29.1617,"Criuleni, Moldova",46442 +49816,MD,MDA,498,Donduseni,Moldova,48.2372,27.6104,"Donduseni, Moldova",87092 +49817,MD,MDA,498,Drochia,Moldova,48.0333,27.75,"Drochia, Moldova",43015 +49818,MD,MDA,498,Dubasari,Moldova,47.267,29.167,"Dubasari, Moldova",28500 +49819,MD,MDA,498,Edinet,Moldova,48.1667,27.3167,"Edinet, Moldova",90320 +49820,MD,MDA,498,Falesti,Moldova,47.5,27.72,"Falesti, Moldova",89389 +49821,MD,MDA,498,Floresti,Moldova,47.8933,28.3014,"Floresti, Moldova",155646 +49822,MD,MDA,498,Glodeni,Moldova,47.7667,27.5167,"Glodeni, Moldova",119762 +49823,MD,MDA,498,Grigoriopol,Moldova,47.1536,29.2964,"Grigoriopol, Moldova",9381 +49824,MD,MDA,498,Hincesti,Moldova,46.8167,28.5833,"Hincesti, Moldova",97704 +49825,MD,MDA,498,Ialoveni,Moldova,46.9439,28.7772,"Ialoveni, Moldova",51056 +49826,MD,MDA,498,Leova,Moldova,46.4806,28.2644,"Leova, Moldova",64924 +49827,MD,MDA,498,Nisporeni,Moldova,47.0833,28.1833,"Nisporeni, Moldova",56510 +49828,MD,MDA,498,Ocnita,Moldova,48.4061,27.4859,"Ocnita, Moldova",116271 +49829,MD,MDA,498,Orhei,Moldova,47.3735,28.822,"Orhei, Moldova",48105 +49830,MD,MDA,498,Rezina,Moldova,47.7333,28.95,"Rezina, Moldova",69454 +49831,MD,MDA,498,Ribnita,Moldova,47.7667,29,"Ribnita, Moldova",47949 +49832,MD,MDA,498,Riscani,Moldova,47.9679,27.5565,"Riscani, Moldova",87153 +49833,MD,MDA,498,Singerei,Moldova,47.6333,28.15,"Singerei, Moldova",42227 +49834,MD,MDA,498,Slobozia,Moldova,46.7333,29.7,"Slobozia, Moldova",14618 +49835,MD,MDA,498,Soldanesti,Moldova,47.8167,28.8,"Soldanesti, Moldova",94986 +49836,MD,MDA,498,Soroca,Moldova,48.1618,28.3011,"Soroca, Moldova",70594 +49837,MD,MDA,498,Stefan Voda,Moldova,46.5153,29.5297,"Stefan Voda, Moldova",88900 +49838,MD,MDA,498,Straseni,Moldova,47.1333,28.6167,"Straseni, Moldova",43154 +49839,MD,MDA,498,Taraclia,Moldova,45.9,28.6667,"Taraclia, Moldova",70126 +49840,MD,MDA,498,Telenesti,Moldova,47.5032,28.3535,"Telenesti, Moldova",383806 +49841,MD,MDA,498,Tiraspol,Moldova,46.85,29.6333,"Tiraspol, Moldova",133807 +49842,MD,MDA,498,Transnistria,Moldova,47.2153,29.463,"Transnistria, Moldova",110545 +49843,MD,MDA,498,Ungheni,Moldova,47.2077,27.8073,"Ungheni, Moldova",30804 +49844,MD,MDA,498,Vulcanesti,Moldova,45.6833,28.4042,"Vulcanesti, Moldova",12185 +52801,NL,NLD,528,Drenthe,Netherlands,52.862485,6.618435,"Drenthe, Netherlands",493682 +52802,NL,NLD,528,Flevoland,Netherlands,52.550383,5.515162,"Flevoland, Netherlands",423021 +52803,NL,NLD,528,Friesland,Netherlands,53.087337,5.7925,"Friesland, Netherlands",649957 +52804,NL,NLD,528,Gelderland,Netherlands,52.061738,5.939114,"Gelderland, Netherlands",2085952 +52805,NL,NLD,528,Groningen,Netherlands,53.217922,6.741514,"Groningen, Netherlands",585866 +52806,NL,NLD,528,Limburg,Netherlands,51.209227,5.93387,"Limburg, Netherlands",1117201 +52807,NL,NLD,528,Noord-Brabant,Netherlands,51.561174,5.184942,"Noord-Brabant, Netherlands",2562955 +52808,NL,NLD,528,Noord-Holland,Netherlands,52.600906,4.918688,"Noord-Holland, Netherlands",2879527 +52809,NL,NLD,528,Overijssel,Netherlands,52.444558,6.441722,"Overijssel, Netherlands",1162406 +52810,NL,NLD,528,Utrecht,Netherlands,52.084251,5.163824,"Utrecht, Netherlands",1354834 +52811,NL,NLD,528,Zeeland,Netherlands,51.47936,3.861559,"Zeeland, Netherlands",383488 +52812,NL,NLD,528,Zuid-Holland,Netherlands,51.937835,4.462114,"Zuid-Holland, Netherlands",3708696 +533,AW,ABW,533,Aruba,Netherlands,12.5211,-69.9683,"Aruba, Netherlands",106766 +531,CW,CUW,531,Curacao,Netherlands,12.1696,-68.99,"Curacao, Netherlands",164100 +534,SX,SXM,534,Sint Maarten,Netherlands,18.0425,-63.0548,"Sint Maarten, Netherlands",42882 +535,BQ,BES,535,"Bonaire, Sint Eustatius and Saba",Netherlands,12.1784,-68.2385,"Bonaire, Sint Eustatius and Saba, Netherlands",26221 +184,CK,COK,184,Cook Islands,New Zealand,-21.2367,-159.7777,"Cook Islands, New Zealand",17459 +570,NU,NIU,570,Niue,New Zealand,-19.0544,-169.8672,"Niue, New Zealand",1650 +56601,NG,NGA,566,Abia,Nigeria,5.4527,7.5248,"Abia, Nigeria",3727347 +56602,NG,NGA,566,Adamawa,Nigeria,9.3265,12.3984,"Adamawa, Nigeria",4248436 +56603,NG,NGA,566,Akwa Ibom,Nigeria,4.9057,7.8537,"Akwa Ibom, Nigeria",5482177 +56604,NG,NGA,566,Anambra,Nigeria,6.2209,6.937,"Anambra, Nigeria",5527809 +56605,NG,NGA,566,Bauchi,Nigeria,10.7761,9.9992,"Bauchi, Nigeria",6537314 +56606,NG,NGA,566,Bayelsa,Nigeria,4.7719,6.0699,"Bayelsa, Nigeria",2277961 +56607,NG,NGA,566,Benue,Nigeria,7.3369,8.7404,"Benue, Nigeria",5741815 +56608,NG,NGA,566,Borno,Nigeria,11.8846,13.152,"Borno, Nigeria",5860183 +56609,NG,NGA,566,Cross River,Nigeria,5.8702,8.5988,"Cross River, Nigeria",3866269 +56610,NG,NGA,566,Delta,Nigeria,5.704,5.9339,"Delta, Nigeria",5663362 +56611,NG,NGA,566,Ebonyi,Nigeria,6.2649,8.0137,"Ebonyi, Nigeria",2880383 +56612,NG,NGA,566,Edo,Nigeria,6.6342,5.9304,"Edo, Nigeria",4235595 +56613,NG,NGA,566,Ekiti,Nigeria,7.719,5.311,"Ekiti, Nigeria",3270798 +56614,NG,NGA,566,Enugu,Nigeria,6.5364,7.4356,"Enugu, Nigeria",4411119 +56615,NG,NGA,566,Federal Capital Territory,Nigeria,8.8941,7.186,"Federal Capital Territory, Nigeria",3564126 +56616,NG,NGA,566,Gombe,Nigeria,10.3638,11.1928,"Gombe, Nigeria",3256962 +56617,NG,NGA,566,Imo,Nigeria,5.572,7.0588,"Imo, Nigeria",5408756 +56618,NG,NGA,566,Jigawa,Nigeria,12.228,9.5616,"Jigawa, Nigeria",5828163 +56619,NG,NGA,566,Kaduna,Nigeria,10.3764,7.7095,"Kaduna, Nigeria",8252366 +56620,NG,NGA,566,Kano,Nigeria,11.7471,8.5247,"Kano, Nigeria",13076892 +56621,NG,NGA,566,Katsina,Nigeria,12.3797,7.6306,"Katsina, Nigeria",7831319 +56622,NG,NGA,566,Kebbi,Nigeria,11.4942,4.2333,"Kebbi, Nigeria",4440050 +56623,NG,NGA,566,Kogi,Nigeria,7.7337,6.6906,"Kogi, Nigeria",4473490 +56624,NG,NGA,566,Kwara,Nigeria,8.9669,4.3874,"Kwara, Nigeria",3192893 +56625,NG,NGA,566,Lagos,Nigeria,6.5236,3.6006,"Lagos, Nigeria",12550598 +56626,NG,NGA,566,Nasarawa,Nigeria,8.4998,8.1997,"Nasarawa, Nigeria",2523395 +56627,NG,NGA,566,Niger,Nigeria,9.9309,5.5983,"Niger, Nigeria",5556247 +56628,NG,NGA,566,Ogun,Nigeria,6.998,3.4737,"Ogun, Nigeria",5217716 +56629,NG,NGA,566,Ondo,Nigeria,6.9149,5.1478,"Ondo, Nigeria",4671695 +56630,NG,NGA,566,Osun,Nigeria,7.5629,4.52,"Osun, Nigeria",4705589 +56631,NG,NGA,566,Oyo,Nigeria,8.1574,3.6147,"Oyo, Nigeria",7840864 +56632,NG,NGA,566,Plateau,Nigeria,9.2182,9.5179,"Plateau, Nigeria",4200442 +56633,NG,NGA,566,Rivers,Nigeria,4.8396,6.9112,"Rivers, Nigeria",7303924 +56634,NG,NGA,566,Sokoto,Nigeria,13.0533,5.3223,"Sokoto, Nigeria",4998090 +56635,NG,NGA,566,Taraba,Nigeria,7.9994,10.774,"Taraba, Nigeria",3066834 +56636,NG,NGA,566,Yobe,Nigeria,12.2939,11.439,"Yobe, Nigeria",3294137 +56637,NG,NGA,566,Zamfara,Nigeria,12.1222,6.2236,"Zamfara, Nigeria",4515427 +58601,PK,PAK,586,Azad Jammu and Kashmir,Pakistan,34.027401,73.947253,"Azad Jammu and Kashmir, Pakistan",4045366 +58602,PK,PAK,586,Balochistan,Pakistan,28.328492,65.898403,"Balochistan, Pakistan",12344408 +58603,PK,PAK,586,Gilgit-Baltistan,Pakistan,35.792146,74.982138,"Gilgit-Baltistan, Pakistan",1013584 +58604,PK,PAK,586,Islamabad,Pakistan,33.665087,73.121219,"Islamabad, Pakistan",2006572 +58605,PK,PAK,586,Khyber Pakhtunkhwa,Pakistan,34.485332,72.09169,"Khyber Pakhtunkhwa, Pakistan",30523371 +58606,PK,PAK,586,Punjab,Pakistan,30.811346,72.139132,"Punjab, Pakistan",110012442 +58607,PK,PAK,586,Sindh,Pakistan,26.009446,68.776807,"Sindh, Pakistan",47886051 +60401,PE,PER,604,Amazonas,Peru,-5.077253,-78.050172,"Amazonas, Peru",426800 +60402,PE,PER,604,Ancash,Peru,-9.407125,-77.671795,"Ancash, Peru",1180600 +60403,PE,PER,604,Apurimac,Peru,-14.027713,-72.975378,"Apurimac, Peru",430700 +60404,PE,PER,604,Arequipa,Peru,-15.843524,-72.475539,"Arequipa, Peru",1497400 +60405,PE,PER,604,Ayacucho,Peru,-14.091648,-74.08344,"Ayacucho, Peru",668200 +60406,PE,PER,604,Cajamarca,Peru,-6.430284,-78.745596,"Cajamarca, Peru",1453700 +60407,PE,PER,604,Callao,Peru,-11.954609,-77.136042,"Callao, Peru",1129900 +60408,PE,PER,604,Cusco,Peru,-13.191068,-72.153609,"Cusco, Peru",1357100 +60409,PE,PER,604,Huancavelica,Peru,-13.023888,-75.00277,"Huancavelica, Peru",365300 +60410,PE,PER,604,Huanuco,Peru,-9.421676,-76.040642,"Huanuco, Peru",760300 +60411,PE,PER,604,Ica,Peru,-14.235097,-75.574821,"Ica, Peru",975200 +60412,PE,PER,604,Junin,Peru,-11.541783,-74.876968,"Junin, Peru",1361500 +60413,PE,PER,604,La Libertad,Peru,-7.92139,-78.370238,"La Libertad, Peru",2016800 +60414,PE,PER,604,Lambayeque,Peru,-6.353049,-79.824113,"Lambayeque, Peru",1310800 +60415,PE,PER,604,Lima,Peru,-11.766533,-76.604498,"Lima, Peru",10628500 +60416,PE,PER,604,Loreto,Peru,-4.124847,-74.424115,"Loreto, Peru",1027600 +60417,PE,PER,604,Madre de Dios,Peru,-11.972699,-70.53172,"Madre de Dios, Peru",173800 +60418,PE,PER,604,Moquegua,Peru,-16.860271,-70.839046,"Moquegua, Peru",192700 +60419,PE,PER,604,Pasco,Peru,-10.39655,-75.307635,"Pasco, Peru",271900 +60420,PE,PER,604,Piura,Peru,-5.133361,-80.335861,"Piura, Peru",2048000 +60421,PE,PER,604,Puno,Peru,-14.995827,-69.922726,"Puno, Peru",1238000 +60422,PE,PER,604,San Martin,Peru,-7.039531,-76.729127,"San Martin, Peru",899600 +60423,PE,PER,604,Tacna,Peru,-17.644161,-70.27756,"Tacna, Peru",371000 +60424,PE,PER,604,Tumbes,Peru,-3.857496,-80.545255,"Tumbes, Peru",251500 +60425,PE,PER,604,Ucayali,Peru,-9.621718,-73.444929,"Ucayali, Peru",589100 +61601,PL,POL,616,Dolnoslaskie,Poland,51.134,16.8842,"Dolnoslaskie, Poland",2901225 +61602,PL,POL,616,Kujawsko-pomorskie,Poland,53.1648,18.4834,"Kujawsko-pomorskie, Poland",2077775 +61603,PL,POL,616,Lubelskie,Poland,51.2494,23.1011,"Lubelskie, Poland",2117619 +61604,PL,POL,616,Lubuskie,Poland,52.2275,15.2559,"Lubuskie, Poland",1014548 +61605,PL,POL,616,Lodzkie,Poland,51.4635,19.1727,"Lodzkie, Poland",2466322 +61606,PL,POL,616,Malopolskie,Poland,49.7225,20.2503,"Malopolskie, Poland",3400577 +61607,PL,POL,616,Mazowieckie,Poland,51.8927,21.0022,"Mazowieckie, Poland",5403412 +61608,PL,POL,616,Opolskie,Poland,50.8004,17.938,"Opolskie, Poland",986506 +61609,PL,POL,616,Podkarpackie,Poland,50.0575,22.0896,"Podkarpackie, Poland",2129015 +61610,PL,POL,616,Podlaskie,Poland,53.0697,22.9675,"Podlaskie, Poland",1181533 +61611,PL,POL,616,Pomorskie,Poland,54.2944,18.1531,"Pomorskie, Poland",2333523 +61612,PL,POL,616,Slaskie,Poland,50.5717,19.322,"Slaskie, Poland",4533565 +61613,PL,POL,616,Swietokrzyskie,Poland,50.6261,20.9406,"Swietokrzyskie, Poland",1241546 +61614,PL,POL,616,Warminsko-mazurskie,Poland,53.8671,20.7028,"Warminsko-mazurskie, Poland",1428983 +61615,PL,POL,616,Wielkopolskie,Poland,52.28,17.3523,"Wielkopolskie, Poland",3493969 +61616,PL,POL,616,Zachodniopomorskie,Poland,53.4658,15.1823,"Zachodniopomorskie, Poland",1701030 +64201,RO,ROU,642,Alba,Romania,46.1559,23.5556,"Alba, Romania",74000 +64202,RO,ROU,642,Arad,Romania,46.176,21.319,"Arad, Romania",409072 +64203,RO,ROU,642,Arges,Romania,45.0723,24.8143,"Arges, Romania",612431 +64204,RO,ROU,642,Bacau,Romania,46.5833,26.9167,"Bacau, Romania",616168 +64205,RO,ROU,642,Bihor,Romania,47.0158,22.1723,"Bihor, Romania",575398 +64206,RO,ROU,642,Bistrita-Nasaud,Romania,47.2486,24.5323,"Bistrita-Nasaud, Romania",277861 +64207,RO,ROU,642,Botosani,Romania,47.745,26.6621,"Botosani, Romania",412626 +64208,RO,ROU,642,Braila,Romania,45.271,27.9743,"Braila, Romania",304925 +64209,RO,ROU,642,Brasov,Romania,45.6667,25.6167,"Brasov, Romania",549217 +64210,RO,ROU,642,Bucuresti,Romania,44.4268,26.1025,"Bucuresti, Romania",1883425 +64211,RO,ROU,642,Buzau,Romania,45.1667,26.8167,"Buzau, Romania",432054 +64212,RO,ROU,642,Calarasi,Romania,44.2085,27.3137,"Calarasi, Romania",285050 +64213,RO,ROU,642,Caras-Severin,Romania,45.114,22.0741,"Caras-Severin, Romania",274277 +64214,RO,ROU,642,Cluj,Romania,46.7667,23.5833,"Cluj, Romania",691106 +64215,RO,ROU,642,Constanta,Romania,44.1773,28.6529,"Constanta, Romania",684082 +64216,RO,ROU,642,Covasna,Romania,45.8446,26.1687,"Covasna, Romania",210177 +64217,RO,ROU,642,Dambovita,Romania,44.929,25.4254,"Dambovita, Romania",518745 +64218,RO,ROU,642,Dolj,Romania,44.1623,23.6325,"Dolj, Romania",660544 +64219,RO,ROU,642,Galati,Romania,45.4382,28.0563,"Galati, Romania",536167 +64220,RO,ROU,642,Giurgiu,Romania,43.9008,25.9739,"Giurgiu, Romania",265494 +64221,RO,ROU,642,Gorj,Romania,44.9486,23.2427,"Gorj, Romania",334238 +64222,RO,ROU,642,Harghita,Romania,46.4929,25.6457,"Harghita, Romania",304969 +64223,RO,ROU,642,Hunedoara,Romania,45.7697,22.9203,"Hunedoara, Romania",396253 +64224,RO,ROU,642,Ialomita,Romania,44.6031,27.379,"Ialomita, Romania",258669 +64225,RO,ROU,642,Iasi,Romania,47.1598,27.5872,"Iasi, Romania",772348 +64226,RO,ROU,642,Ilfov,Romania,44.5355,26.2325,"Ilfov, Romania",388738 +64227,RO,ROU,642,Maramures,Romania,47.6738,23.7456,"Maramures, Romania",516562 +64228,RO,ROU,642,Mehedinti,Romania,44.5515,22.9044,"Mehedinti, Romania",254570 +64229,RO,ROU,642,Mures,Romania,46.557,24.6723,"Mures, Romania",550846 +64230,RO,ROU,642,Neamt,Romania,46.9759,26.3819,"Neamt, Romania",470766 +64231,RO,ROU,642,Olt,Romania,44.2008,24.5023,"Olt, Romania",415530 +64232,RO,ROU,642,Prahova,Romania,45.0892,26.0829,"Prahova, Romania",762886 +64233,RO,ROU,642,Salaj,Romania,47.2091,23.2122,"Salaj, Romania",224384 +64234,RO,ROU,642,Satu Mare,Romania,47.79,22.89,"Satu Mare, Romania",329079 +64235,RO,ROU,642,Sibiu,Romania,45.7969,24.15,"Sibiu, Romania",375992 +64236,RO,ROU,642,Suceava,Romania,47.6514,26.2556,"Suceava, Romania",634810 +64237,RO,ROU,642,Teleorman,Romania,44.016,25.2987,"Teleorman, Romania",360178 +64238,RO,ROU,642,Timis,Romania,45.8139,21.3331,"Timis, Romania",683540 +64239,RO,ROU,642,Tulcea,Romania,45.1767,28.8052,"Tulcea, Romania",201462 +64240,RO,ROU,642,Valcea,Romania,45.0798,24.0835,"Valcea, Romania",355320 +64241,RO,ROU,642,Vaslui,Romania,46.6381,27.7288,"Vaslui, Romania",395500 +64242,RO,ROU,642,Vrancea,Romania,45.8135,27.0658,"Vrancea, Romania",340310 +64301,RU,RUS,643,Adygea Republic,Russia,44.6939006,40.1520421,"Adygea Republic, Russia",453376 +64302,RU,RUS,643,Altai Krai,Russia,52.6932243,82.6931424,"Altai Krai, Russia",2350080 +64303,RU,RUS,643,Altai Republic,Russia,50.7114101,86.8572186,"Altai Republic, Russia",218063 +64304,RU,RUS,643,Amur Oblast,Russia,52.8032368,128.437295,"Amur Oblast, Russia",798424 +64305,RU,RUS,643,Arkhangelsk Oblast,Russia,63.5589686,43.1221646,"Arkhangelsk Oblast, Russia",1155028 +64306,RU,RUS,643,Astrakhan Oblast,Russia,47.1878186,47.608851,"Astrakhan Oblast, Russia",1017514 +64307,RU,RUS,643,Bashkortostan Republic,Russia,54.8573563,57.1439682,"Bashkortostan Republic, Russia",4063293 +64308,RU,RUS,643,Belgorod Oblast,Russia,50.7080119,37.5837615,"Belgorod Oblast, Russia",1549876 +64309,RU,RUS,643,Bryansk Oblast,Russia,52.8873315,33.415853,"Bryansk Oblast, Russia",1210982 +64310,RU,RUS,643,Buryatia Republic,Russia,52.7182426,109.492143,"Buryatia Republic, Russia",984511 +64311,RU,RUS,643,Chechen Republic,Russia,43.3976147,45.6985005,"Chechen Republic, Russia",1436981 +64312,RU,RUS,643,Chelyabinsk Oblast,Russia,54.4223954,61.1865846,"Chelyabinsk Oblast, Russia",3493036 +64313,RU,RUS,643,Chukotka Autonomous Okrug,Russia,66.0006475,169.4900869,"Chukotka Autonomous Okrug, Russia",49348 +64314,RU,RUS,643,Chuvashia Republic,Russia,55.4259922,47.0849429,"Chuvashia Republic, Russia",1231117 +64315,RU,RUS,643,Dagestan Republic,Russia,43.0574916,47.1332224,"Dagestan Republic, Russia",3063885 +64316,RU,RUS,643,Ingushetia Republic,Russia,43.11542075,45.01713552,"Ingushetia Republic, Russia",488043 +64317,RU,RUS,643,Irkutsk Oblast,Russia,56.6370122,104.719221,"Irkutsk Oblast, Russia",2404195 +64318,RU,RUS,643,Ivanovo Oblast,Russia,56.9167446,41.4352137,"Ivanovo Oblast, Russia",1014646 +64319,RU,RUS,643,Jewish Autonomous Okrug,Russia,48.57527615,132.6630746,"Jewish Autonomous Okrug, Russia",162014 +64320,RU,RUS,643,Kabardino-Balkarian Republic,Russia,43.4806048,43.5978976,"Kabardino-Balkarian Republic, Russia",865828 +64321,RU,RUS,643,Kaliningrad Oblast,Russia,54.7293041,21.1489473,"Kaliningrad Oblast, Russia",994599 +64322,RU,RUS,643,Kalmykia Republic,Russia,46.2313018,45.3275745,"Kalmykia Republic, Russia",275413 +64323,RU,RUS,643,Kaluga Oblast,Russia,54.4382773,35.5272854,"Kaluga Oblast, Russia",1012056 +64324,RU,RUS,643,Kamchatka Krai,Russia,57.1914882,160.0383819,"Kamchatka Krai, Russia",315557 +64325,RU,RUS,643,Karachay-Cherkess Republic,Russia,43.7368326,41.7267991,"Karachay-Cherkess Republic, Russia",466305 +64326,RU,RUS,643,Karelia Republic,Russia,62.6194031,33.4920267,"Karelia Republic, Russia",622484 +64327,RU,RUS,643,Kemerovo Oblast,Russia,54.5335781,87.342861,"Kemerovo Oblast, Russia",2694877 +64328,RU,RUS,643,Khabarovsk Krai,Russia,51.6312684,136.121524,"Khabarovsk Krai, Russia",1328302 +64329,RU,RUS,643,Khakassia Republic,Russia,53.72258845,91.44293627,"Khakassia Republic, Russia",537513 +64330,RU,RUS,643,Khanty-Mansi Autonomous Okrug,Russia,61.0259025,69.0982628,"Khanty-Mansi Autonomous Okrug, Russia",1532243 +64331,RU,RUS,643,Kirov Oblast,Russia,57.9665589,49.4074599,"Kirov Oblast, Russia",1283238 +64332,RU,RUS,643,Komi Republic,Russia,63.9881421,54.3326073,"Komi Republic, Russia",840873 +64333,RU,RUS,643,Kostroma Oblast,Russia,58.424756,44.2533273,"Kostroma Oblast, Russia",643324 +64334,RU,RUS,643,Krasnodar Krai,Russia,45.7684014,39.0261044,"Krasnodar Krai, Russia",5603420 +64335,RU,RUS,643,Krasnoyarsk Krai,Russia,63.3233807,97.0979974,"Krasnoyarsk Krai, Russia",2876497 +64336,RU,RUS,643,Kurgan Oblast,Russia,55.7655302,64.5632681,"Kurgan Oblast, Russia",845537 +64337,RU,RUS,643,Kursk Oblast,Russia,51.6568453,36.4852695,"Kursk Oblast, Russia",1115237 +64338,RU,RUS,643,Leningrad Oblast,Russia,60.1853296,32.3925325,"Leningrad Oblast, Russia",1813816 +64339,RU,RUS,643,Lipetsk Oblast,Russia,52.6935178,39.1122664,"Lipetsk Oblast, Russia",1150201 +64340,RU,RUS,643,Magadan Oblast,Russia,62.48858785,153.9903764,"Magadan Oblast, Russia",144091 +64341,RU,RUS,643,Mari El Republic,Russia,56.5767504,47.8817512,"Mari El Republic, Russia",682333 +64342,RU,RUS,643,Mordovia Republic,Russia,54.4419829,44.4661144,"Mordovia Republic, Russia",805056 +64343,RU,RUS,643,Moscow,Russia,55.7504461,37.6174943,"Moscow, Russia",12506468 +64344,RU,RUS,643,Moscow Oblast,Russia,55.5043158,38.0353929,"Moscow Oblast, Russia",7503385 +64345,RU,RUS,643,Murmansk Oblast,Russia,68.0000418,33.9999151,"Murmansk Oblast, Russia",753557 +64346,RU,RUS,643,Nenets Autonomous Okrug,Russia,68.27557185,57.1686375,"Nenets Autonomous Okrug, Russia",43997 +64347,RU,RUS,643,Nizhny Novgorod Oblast,Russia,55.4718033,44.0911594,"Nizhny Novgorod Oblast, Russia",3234752 +64348,RU,RUS,643,North Ossetia - Alania Republic,Russia,42.7933611,44.6324493,"North Ossetia - Alania Republic, Russia",701765 +64349,RU,RUS,643,Novgorod Oblast,Russia,58.2843833,32.5169757,"Novgorod Oblast, Russia",606476 +64350,RU,RUS,643,Novosibirsk Oblast,Russia,54.9720169,79.4813924,"Novosibirsk Oblast, Russia",2788849 +64351,RU,RUS,643,Omsk Oblast,Russia,56.0935263,73.5099936,"Omsk Oblast, Russia",1960081 +64352,RU,RUS,643,Orel Oblast,Russia,52.9685433,36.0692477,"Orel Oblast, Russia",747247 +64353,RU,RUS,643,Orenburg Oblast,Russia,52.0269262,54.7276647,"Orenburg Oblast, Russia",1977720 +64354,RU,RUS,643,Penza Oblast,Russia,53.1655415,44.7879181,"Penza Oblast, Russia",1331655 +64355,RU,RUS,643,Perm Krai,Russia,58.5951603,56.3159546,"Perm Krai, Russia",2623122 +64356,RU,RUS,643,Primorsky Krai,Russia,45.0819456,134.726645,"Primorsky Krai, Russia",1913037 +64357,RU,RUS,643,Pskov Oblast,Russia,57.5358729,28.8586826,"Pskov Oblast, Russia",636546 +64358,RU,RUS,643,Rostov Oblast,Russia,47.6222451,40.7957942,"Rostov Oblast, Russia",4220452 +64359,RU,RUS,643,Ryazan Oblast,Russia,54.4226732,40.5705246,"Ryazan Oblast, Russia",1121474 +64360,RU,RUS,643,Saint Petersburg,Russia,59.9606739,30.1586551,"Saint Petersburg, Russia",5351935 +64361,RU,RUS,643,Sakha (Yakutiya) Republic,Russia,66.941626,129.642371,"Sakha (Yakutiya) Republic, Russia",964330 +64362,RU,RUS,643,Sakhalin Oblast,Russia,49.7219665,143.448533,"Sakhalin Oblast, Russia",490181 +64363,RU,RUS,643,Samara Oblast,Russia,53.2128813,50.8914633,"Samara Oblast, Russia",3193514 +64364,RU,RUS,643,Saratov Oblast,Russia,51.6520555,46.8631952,"Saratov Oblast, Russia",2462950 +64365,RU,RUS,643,Smolensk Oblast,Russia,55.0343496,33.0192065,"Smolensk Oblast, Russia",949348 +64366,RU,RUS,643,Stavropol Krai,Russia,44.8632577,43.4406913,"Stavropol Krai, Russia",2800674 +64367,RU,RUS,643,Sverdlovsk Oblast,Russia,58.6414755,61.8021546,"Sverdlovsk Oblast, Russia",4325256 +64368,RU,RUS,643,Tambov Oblast,Russia,52.9019574,41.3578918,"Tambov Oblast, Russia",1033552 +64369,RU,RUS,643,Tatarstan Republic,Russia,55.7648572,52.43104273,"Tatarstan Republic, Russia",3894284 +64370,RU,RUS,643,Tomsk Oblast,Russia,58.6124279,82.0475315,"Tomsk Oblast, Russia",1078280 +64371,RU,RUS,643,Tula Oblast,Russia,53.9570701,37.3690909,"Tula Oblast, Russia",1491855 +64372,RU,RUS,643,Tver Oblast,Russia,57.1134475,35.1744428,"Tver Oblast, Russia",1283873 +64373,RU,RUS,643,Tyumen Oblast,Russia,58.8206488,70.3658837,"Tyumen Oblast, Russia",3692400 +64374,RU,RUS,643,Tyva Republic,Russia,51.4017149,93.8582593,"Tyva Republic, Russia",321722 +64375,RU,RUS,643,Udmurt Republic,Russia,57.1961165,52.6959832,"Udmurt Republic, Russia",1513044 +64376,RU,RUS,643,Ulyanovsk Oblast,Russia,54.1463177,47.2324921,"Ulyanovsk Oblast, Russia",1246618 +64377,RU,RUS,643,Vladimir Oblast,Russia,56.0503336,40.6561633,"Vladimir Oblast, Russia",1378337 +64378,RU,RUS,643,Volgograd Oblast,Russia,49.6048339,44.2903582,"Volgograd Oblast, Russia",2521276 +64379,RU,RUS,643,Vologda Oblast,Russia,60.0391461,43.1215213,"Vologda Oblast, Russia",1176689 +64380,RU,RUS,643,Voronezh Oblast,Russia,50.9800393,40.1506507,"Voronezh Oblast, Russia",2333768 +64381,RU,RUS,643,Yamalo-Nenets Autonomous Okrug,Russia,67.1471631,74.3415488,"Yamalo-Nenets Autonomous Okrug, Russia",538547 +64382,RU,RUS,643,Yaroslavl Oblast,Russia,57.7781976,39.0021095,"Yaroslavl Oblast, Russia",1265684 +64383,RU,RUS,643,Zabaykalsky Krai,Russia,52.248521,115.956325,"Zabaykalsky Krai, Russia",1072806 +70301,SK,SVK,703,Banska Bystrica,Slovakia,48.7363,19.1462,"Banska Bystrica, Slovakia",657119 +70302,SK,SVK,703,Bratislava,Slovakia,48.1486,17.107,"Bratislava, Slovakia",603699 +70303,SK,SVK,703,Kosice,Slovakia,48.7164,21.2611,"Kosice, Slovakia",771947 +70304,SK,SVK,703,Nitra,Slovakia,48.3061,18.0764,"Nitra, Slovakia",708498 +70305,SK,SVK,703,Presov,Slovakia,49.0018,21.2393,"Presov, Slovakia",798596 +70306,SK,SVK,703,Trencin,Slovakia,48.8849,18.0335,"Trencin, Slovakia",600386 +70307,SK,SVK,703,Trnava,Slovakia,48.3709,17.5833,"Trnava, Slovakia",554172 +70308,SK,SVK,703,Zilina,Slovakia,49.2194,18.7408,"Zilina, Slovakia",694763 +72401,ES,ESP,724,Andalusia,Spain,37.5443,-4.7278,"Andalusia, Spain",8427405 +72402,ES,ESP,724,Aragon,Spain,41.5976,-0.9057,"Aragon, Spain",1320586 +72403,ES,ESP,724,Asturias,Spain,43.3614,-5.8593,"Asturias, Spain",1022205 +72404,ES,ESP,724,Baleares,Spain,39.710358,2.995148,"Baleares, Spain",1188220 +72405,ES,ESP,724,Canarias,Spain,28.2916,-16.6291,"Canarias, Spain",2206901 +72406,ES,ESP,724,Cantabria,Spain,43.1828,-3.9878,"Cantabria, Spain",581641 +72407,ES,ESP,724,Castilla - La Mancha,Spain,39.2796,-3.0977,"Castilla - La Mancha, Spain",2034877 +72408,ES,ESP,724,Castilla y Leon,Spain,41.8357,-4.3976,"Castilla y Leon, Spain",2407733 +72409,ES,ESP,724,Catalonia,Spain,41.5912,1.5209,"Catalonia, Spain",7566431 +72410,ES,ESP,724,Ceuta,Spain,35.8894,-5.3213,"Ceuta, Spain",84829 +72411,ES,ESP,724,C. Valenciana,Spain,39.484,-0.7533,"C. Valenciana, Spain",4974969 +72412,ES,ESP,724,Extremadura,Spain,39.4937,-6.0679,"Extremadura, Spain",1065424 +72413,ES,ESP,724,Galicia,Spain,42.5751,-8.1339,"Galicia, Spain",2700441 +72414,ES,ESP,724,Madrid,Spain,40.4168,-3.7038,"Madrid, Spain",6641649 +72415,ES,ESP,724,Melilla,Spain,35.2923,-2.9381,"Melilla, Spain",84689 +72416,ES,ESP,724,Murcia,Spain,37.9922,-1.1307,"Murcia, Spain",1487663 +72417,ES,ESP,724,Navarra,Spain,42.6954,-1.6761,"Navarra, Spain",649946 +72418,ES,ESP,724,Pais Vasco,Spain,42.9896,-2.6189,"Pais Vasco, Spain",2177880 +72419,ES,ESP,724,La Rioja,Spain,42.2871,-2.5396,"La Rioja, Spain",313571 +75201,SE,SWE,752,Blekinge,Sweden,56.2784,15.018,"Blekinge, Sweden",159606 +75202,SE,SWE,752,Dalarna,Sweden,61.0917,14.6664,"Dalarna, Sweden",287966 +75203,SE,SWE,752,Gavleborg,Sweden,61.3012,16.1534,"Gavleborg, Sweden",287382 +75204,SE,SWE,752,Gotland,Sweden,57.4684,18.4867,"Gotland, Sweden",59686 +75205,SE,SWE,752,Halland,Sweden,56.8967,12.8034,"Halland, Sweden",333848 +75206,SE,SWE,752,Jamtland Harjedalen,Sweden,63.1712,14.9592,"Jamtland Harjedalen, Sweden",130810 +75207,SE,SWE,752,Jonkoping,Sweden,57.3708,14.3439,"Jonkoping, Sweden",363599 +75208,SE,SWE,752,Kalmar,Sweden,57.235,16.1849,"Kalmar, Sweden",245446 +75209,SE,SWE,752,Kronoberg,Sweden,56.7183,14.4115,"Kronoberg, Sweden",201469 +75210,SE,SWE,752,Norrbotten,Sweden,66.8309,20.3992,"Norrbotten, Sweden",250093 +75211,SE,SWE,752,Orebro,Sweden,59.535,15.0066,"Orebro, Sweden",304805 +75212,SE,SWE,752,Ostergotland,Sweden,58.3454,15.5198,"Ostergotland, Sweden",465495 +75213,SE,SWE,752,Skane,Sweden,55.9903,13.5958,"Skane, Sweden",1377827 +75214,SE,SWE,752,Sormland,Sweden,59.0336,16.7519,"Sormland, Sweden",297540 +75215,SE,SWE,752,Stockholm,Sweden,59.6025,18.1384,"Stockholm, Sweden",2377081 +75216,SE,SWE,752,Uppsala,Sweden,60.0092,17.2715,"Uppsala, Sweden",383713 +75217,SE,SWE,752,Varmland,Sweden,59.7294,13.2354,"Varmland, Sweden",282414 +75218,SE,SWE,752,Vasterbotten,Sweden,65.3337,16.5162,"Vasterbotten, Sweden",271736 +75219,SE,SWE,752,Vasternorrland,Sweden,63.4276,17.7292,"Vasternorrland, Sweden",245347 +75220,SE,SWE,752,Vastmanland,Sweden,59.6714,16.2159,"Vastmanland, Sweden",275845 +75221,SE,SWE,752,Vastra Gotaland,Sweden,58.2528,13.0596,"Vastra Gotaland, Sweden",1725881 +80401,UA,UKR,804,Cherkasy Oblast,Ukraine,49.4444,32.0598,"Cherkasy Oblast, Ukraine",1206351 +80402,UA,UKR,804,Chernihiv Oblast,Ukraine,51.4982,31.2893,"Chernihiv Oblast, Ukraine",1005745 +80403,UA,UKR,804,Chernivtsi Oblast,Ukraine,48.2917,25.9352,"Chernivtsi Oblast, Ukraine",904374 +80404,UA,UKR,804,Crimea Republic*,Ukraine,45.2835,34.2008,"Crimea Republic*, Ukraine",1913731 +80405,UA,UKR,804,Dnipropetrovsk Oblast,Ukraine,48.4647,35.0462,"Dnipropetrovsk Oblast, Ukraine",3206477 +80406,UA,UKR,804,Donetsk Oblast,Ukraine,48.0159,37.8028,"Donetsk Oblast, Ukraine",4165901 +80407,UA,UKR,804,Ivano-Frankivsk Oblast,Ukraine,48.9226,24.7111,"Ivano-Frankivsk Oblast, Ukraine",1373252 +80408,UA,UKR,804,Kharkiv Oblast,Ukraine,49.9935,36.2304,"Kharkiv Oblast, Ukraine",2675598 +80409,UA,UKR,804,Kherson Oblast,Ukraine,46.6354,32.6169,"Kherson Oblast, Ukraine",1037640 +80410,UA,UKR,804,Khmelnytskyi Oblast,Ukraine,49.423,26.9871,"Khmelnytskyi Oblast, Ukraine",1264705 +80411,UA,UKR,804,Kiev,Ukraine,50.4501,30.5234,"Kiev, Ukraine",2950800 +80412,UA,UKR,804,Kiev Oblast,Ukraine,50.053,30.7667,"Kiev Oblast, Ukraine",1767940 +80413,UA,UKR,804,Kirovohrad Oblast,Ukraine,48.5079,32.2623,"Kirovohrad Oblast, Ukraine",945549 +80414,UA,UKR,804,Luhansk Oblast,Ukraine,48.574,39.3078,"Luhansk Oblast, Ukraine",2151833 +80415,UA,UKR,804,Lviv Oblast,Ukraine,49.8397,24.0297,"Lviv Oblast, Ukraine",2522021 +80416,UA,UKR,804,Mykolaiv Oblast,Ukraine,46.975,31.9946,"Mykolaiv Oblast, Ukraine",2522021 +80417,UA,UKR,804,Odessa Oblast,Ukraine,46.4846,30.7326,"Odessa Oblast, Ukraine",2380308 +80418,UA,UKR,804,Poltava Oblast,Ukraine,49.5883,34.5514,"Poltava Oblast, Ukraine",1400439 +80419,UA,UKR,804,Rivne Oblast,Ukraine,50.6199,26.2516,"Rivne Oblast, Ukraine",1157301 +80420,UA,UKR,804,Sevastopol*,Ukraine,44.6054,33.522,"Sevastopol*, Ukraine",443211 +80421,UA,UKR,804,Sumy Oblast,Ukraine,50.9077,34.7981,"Sumy Oblast, Ukraine",1081418 +80422,UA,UKR,804,Ternopil Oblast,Ukraine,49.5535,25.5948,"Ternopil Oblast, Ukraine",1045879 +80423,UA,UKR,804,Vinnytsia Oblast,Ukraine,49.2331,28.4682,"Vinnytsia Oblast, Ukraine",1560394 +80424,UA,UKR,804,Volyn Oblast,Ukraine,50.7472,25.3254,"Volyn Oblast, Ukraine",1035330 +80425,UA,UKR,804,Zakarpattia Oblast,Ukraine,48.6208,22.2879,"Zakarpattia Oblast, Ukraine",1256802 +80426,UA,UKR,804,Zaporizhia Oblast,Ukraine,47.8388,35.1396,"Zaporizhia Oblast, Ukraine",1705836 +80427,UA,UKR,804,Zhytomyr Oblast,Ukraine,50.2547,28.6587,"Zhytomyr Oblast, Ukraine",1220193 +82601,GB,GBR,826,England,United Kingdom,52.3555,-1.1743,"England, United Kingdom",55977200 +82602,GB,GBR,826,Northern Ireland,United Kingdom,54.7877,-6.4923,"Northern Ireland, United Kingdom",1881600 +82603,GB,GBR,826,Scotland,United Kingdom,56.4907,-4.2026,"Scotland, United Kingdom",5463300 +82604,GB,GBR,826,Wales,United Kingdom,52.1307,-3.7837,"Wales, United Kingdom",3138600 +60,BM,BMU,60,Bermuda,United Kingdom,32.3078,-64.7505,"Bermuda, United Kingdom",62273 +92,VG,VGB,92,British Virgin Islands,United Kingdom,18.4207,-64.64,"British Virgin Islands, United Kingdom",30237 +136,KY,CYM,136,Cayman Islands,United Kingdom,19.3133,-81.2546,"Cayman Islands, United Kingdom",65720 +8261,GB,GBR,826,Channel Islands,United Kingdom,49.3723,-2.3644,"Channel Islands, United Kingdom",170499 +831,GG,GGY,831,Guernsey,United Kingdom,49.448196,-2.58949,"Guernsey, United Kingdom",63000 +832,JE,JEY,832,Jersey,United Kingdom,49.2138,-2.1358,"Jersey, United Kingdom",109300 +238,FK,FLK,238,Falkland Islands (Malvinas),United Kingdom,-51.7963,-59.5236,"Falkland Islands (Malvinas), United Kingdom",3483 +292,GI,GIB,292,Gibraltar,United Kingdom,36.1408,-5.3536,"Gibraltar, United Kingdom",33691 +833,IM,IMN,833,Isle of Man,United Kingdom,54.2361,-4.5481,"Isle of Man, United Kingdom",85032 +500,MS,MSR,500,Montserrat,United Kingdom,16.742498,-62.187366,"Montserrat, United Kingdom",4999 +796,TC,TCA,796,Turks and Caicos Islands,United Kingdom,21.694,-71.7979,"Turks and Caicos Islands, United Kingdom",38718 +612,PN,PCN,612,Pitcairn Islands,United Kingdom,-24.3768,-128.3242,"Pitcairn Islands, United Kingdom",67 +660,AI,AIA,660,Anguilla,United Kingdom,18.2206,-63.0686,"Anguilla, United Kingdom",15002 +654,SH,SHN,654,"Saint Helena, Ascension and Tristan da Cunha",United Kingdom,-7.9467,-14.3559,"Saint Helena, Ascension and Tristan da Cunha, United Kingdom",5661 +3601,AU,AUS,36,Australian Capital Territory,Australia,-35.4735,149.0124,"Australian Capital Territory, Australia",428100 +3602,AU,AUS,36,New South Wales,Australia,-33.8688,151.2093,"New South Wales, Australia",8118000 +3603,AU,AUS,36,Northern Territory,Australia,-12.4634,130.8456,"Northern Territory, Australia",245600 +3604,AU,AUS,36,Queensland,Australia,-27.4698,153.0251,"Queensland, Australia",5115500 +3605,AU,AUS,36,South Australia,Australia,-34.9285,138.6007,"South Australia, Australia",1756500 +3606,AU,AUS,36,Tasmania,Australia,-42.8821,147.3272,"Tasmania, Australia",535500 +3607,AU,AUS,36,Victoria,Australia,-37.8136,144.9631,"Victoria, Australia",6629900 +3608,AU,AUS,36,Western Australia,Australia,-31.9505,115.8605,"Western Australia, Australia",2630600 +12401,CA,CAN,124,Alberta,Canada,53.9333,-116.5765,"Alberta, Canada",4442879 +12402,CA,CAN,124,British Columbia,Canada,53.7267,-127.6476,"British Columbia, Canada",5214805 +12403,CA,CAN,124,Manitoba,Canada,53.7609,-98.8139,"Manitoba, Canada",1383765 +12404,CA,CAN,124,New Brunswick,Canada,46.5653,-66.4619,"New Brunswick, Canada",789225 +12405,CA,CAN,124,Newfoundland and Labrador,Canada,53.1355,-57.6604,"Newfoundland and Labrador, Canada",520553 +12406,CA,CAN,124,Northwest Territories,Canada,64.8255,-124.8457,"Northwest Territories,Canada",45504 +12407,CA,CAN,124,Nova Scotia,Canada,44.682,-63.7443,"Nova Scotia, Canada",992055 +12408,CA,CAN,124,Ontario,Canada,51.2538,-85.3232,"Ontario, Canada",14826276 +12409,CA,CAN,124,Prince Edward Island,Canada,46.5107,-63.4168,"Prince Edward Island, Canada",164318 +12410,CA,CAN,124,Quebec,Canada,52.9399,-73.5491,"Quebec, Canada",8604495 +12411,CA,CAN,124,Saskatchewan,Canada,52.9399,-106.4509,"Saskatchewan, Canada",1179844 +12412,CA,CAN,124,Yukon,Canada,64.2823,-135,"Yukon, Canada",42986 +12416,CA,CAN,124,Nunavut,Canada,70.2998,-83.1076,"Nunavut, Canada",39403 +15601,CN,CHN,156,Anhui,China,31.8257,117.2264,"Anhui, China",61027171 +15602,CN,CHN,156,Beijing,China,40.1824,116.4142,"Beijing, China",21893095 +15603,CN,CHN,156,Chongqing,China,30.0572,107.874,"Chongqing, China",32054159 +15604,CN,CHN,156,Fujian,China,26.0789,117.9874,"Fujian, China",41540086 +15605,CN,CHN,156,Gansu,China,35.7518,104.2861,"Gansu, China",25019831 +15606,CN,CHN,156,Guangdong,China,23.3417,113.4244,"Guangdong, China",126012510 +15607,CN,CHN,156,Guangxi,China,23.8298,108.7881,"Guangxi, China",50126804 +15608,CN,CHN,156,Guizhou,China,26.8154,106.8748,"Guizhou, China",38562148 +15609,CN,CHN,156,Hainan,China,19.1959,109.7453,"Hainan, China",10081232 +15610,CN,CHN,156,Hebei,China,37.8957,114.9042,"Hebei, China",74610235 +15611,CN,CHN,156,Heilongjiang,China,47.862,127.7615,"Heilongjiang, China",31850088 +15612,CN,CHN,156,Henan,China,33.882,113.614,"Henan, China",99365519 +15613,CN,CHN,156,Hubei,China,30.9756,112.2707,"Hubei, China",57752557 +15614,CN,CHN,156,Hunan,China,27.6104,111.7088,"Hunan, China",66444864 +15615,CN,CHN,156,Inner Mongolia,China,44.0935,113.9448,"Inner Mongolia, China",24049155 +15616,CN,CHN,156,Jiangsu,China,32.9711,119.455,"Jiangsu, China",84748016 +15617,CN,CHN,156,Jiangxi,China,27.614,115.7221,"Jiangxi, China",45188635 +15618,CN,CHN,156,Jilin,China,43.6661,126.1923,"Jilin, China",24073453 +15619,CN,CHN,156,Liaoning,China,41.2956,122.6085,"Liaoning, China",42591407 +15620,CN,CHN,156,Ningxia,China,37.2692,106.1655,"Ningxia, China",7202654 +15621,CN,CHN,156,Qinghai,China,35.7452,95.9956,"Qinghai, China",5923957 +15622,CN,CHN,156,Shaanxi,China,35.1917,108.8701,"Shaanxi, China",39528999 +15623,CN,CHN,156,Shandong,China,36.3427,118.1498,"Shandong, China",101527453 +15624,CN,CHN,156,Shanghai,China,31.202,121.4491,"Shanghai, China",24870895 +15625,CN,CHN,156,Shanxi,China,37.5777,112.2922,"Shanxi, China",34915616 +15626,CN,CHN,156,Sichuan,China,30.6171,102.7103,"Sichuan, China",83674866 +15627,CN,CHN,156,Tianjin,China,39.3054,117.323,"Tianjin, China",13866009 +15628,CN,CHN,156,Tibet,China,31.6927,88.0924,"Tibet, China",3648100 +15629,CN,CHN,156,Xinjiang,China,41.1129,85.2401,"Xinjiang, China",25852345 +15630,CN,CHN,156,Yunnan,China,24.974,101.487,"Yunnan, China",47209277 +15631,CN,CHN,156,Zhejiang,China,29.1832,120.0934,"Zhejiang, China",64567588 +344,HK,HKG,344,Hong Kong,China,22.3,114.2,"Hong Kong, China",7496988 +446,MO,MAC,446,Macau,China,22.1667,113.55,"Macau, China",649342 +16,AS,ASM,16,American Samoa,US,-14.271,-170.132,"American Samoa, US",55641 +316,GU,GUM,316,Guam,US,13.4443,144.7937,"Guam, US",164229 +580,MP,MNP,580,Northern Mariana Islands,US,15.0979,145.6739,"Northern Mariana Islands, US",55144 +850,VI,VIR,850,Virgin Islands,US,18.3358,-64.8963,"Virgin Islands, US",107268 +630,PR,PRI,630,Puerto Rico,US,18.2208,-66.5901,"Puerto Rico, US",3193694 +84000001,US,USA,840,Alabama,US,32.3182,-86.9023,"Alabama, US",4903185 +84000002,US,USA,840,Alaska,US,61.3707,-152.4044,"Alaska, US",731545 +84000004,US,USA,840,Arizona,US,33.7298,-111.4312,"Arizona, US",7278717 +84000005,US,USA,840,Arkansas,US,34.9697,-92.3731,"Arkansas, US",3017804 +84000006,US,USA,840,California,US,36.1162,-119.6816,"California, US",39512223 +84000008,US,USA,840,Colorado,US,39.0598,-105.3111,"Colorado, US",5758736 +84000009,US,USA,840,Connecticut,US,41.5978,-72.7554,"Connecticut, US",3565287 +84000010,US,USA,840,Delaware,US,39.3185,-75.5071,"Delaware, US",973764 +84000011,US,USA,840,District of Columbia,US,38.8974,-77.0268,"District of Columbia, US",705749 +84000012,US,USA,840,Florida,US,27.7663,-81.6868,"Florida, US",21477737 +84000013,US,USA,840,Georgia,US,33.0406,-83.6431,"Georgia, US",10617423 +84000015,US,USA,840,Hawaii,US,21.0943,-157.4983,"Hawaii, US",1415872 +84000016,US,USA,840,Idaho,US,44.2405,-114.4788,"Idaho, US",1787065 +84000017,US,USA,840,Illinois,US,40.3495,-88.9861,"Illinois, US",12671821 +84000018,US,USA,840,Indiana,US,39.8494,-86.2583,"Indiana, US",6732219 +84000019,US,USA,840,Iowa,US,42.0115,-93.2105,"Iowa, US",3155070 +84000020,US,USA,840,Kansas,US,38.5266,-96.7265,"Kansas, US",2913314 +84000021,US,USA,840,Kentucky,US,37.6681,-84.6701,"Kentucky, US",4467673 +84000022,US,USA,840,Louisiana,US,31.1695,-91.8678,"Louisiana, US",4648794 +84000023,US,USA,840,Maine,US,44.6939,-69.3819,"Maine, US",1344212 +84000024,US,USA,840,Maryland,US,39.0639,-76.8021,"Maryland, US",6045680 +84000025,US,USA,840,Massachusetts,US,42.2302,-71.5301,"Massachusetts, US",6892503 +84000026,US,USA,840,Michigan,US,43.3266,-84.5361,"Michigan, US",9986857 +84000027,US,USA,840,Minnesota,US,45.6945,-93.9002,"Minnesota, US",5639632 +84000028,US,USA,840,Mississippi,US,32.7416,-89.6787,"Mississippi, US",2976149 +84000029,US,USA,840,Missouri,US,38.4561,-92.2884,"Missouri, US",6137428 +84000030,US,USA,840,Montana,US,46.9219,-110.4544,"Montana, US",1068778 +84000031,US,USA,840,Nebraska,US,41.1254,-98.2681,"Nebraska, US",1934408 +84000032,US,USA,840,Nevada,US,38.3135,-117.0554,"Nevada, US",3080156 +84000033,US,USA,840,New Hampshire,US,43.4525,-71.5639,"New Hampshire, US",1359711 +84000034,US,USA,840,New Jersey,US,40.2989,-74.521,"New Jersey, US",8882190 +84000035,US,USA,840,New Mexico,US,34.8405,-106.2485,"New Mexico, US",2096829 +84000036,US,USA,840,New York,US,42.1657,-74.9481,"New York, US",19453561 +84000037,US,USA,840,North Carolina,US,35.6301,-79.8064,"North Carolina, US",10488084 +84000038,US,USA,840,North Dakota,US,47.5289,-99.784,"North Dakota, US",762062 +84000039,US,USA,840,Ohio,US,40.3888,-82.7649,"Ohio, US",11689100 +84000040,US,USA,840,Oklahoma,US,35.5653,-96.9289,"Oklahoma, US",3956971 +84000041,US,USA,840,Oregon,US,44.572,-122.0709,"Oregon, US",4217737 +84000042,US,USA,840,Pennsylvania,US,40.5908,-77.2098,"Pennsylvania, US",12801989 +84000044,US,USA,840,Rhode Island,US,41.6809,-71.5118,"Rhode Island, US",1059361 +84000045,US,USA,840,South Carolina,US,33.8569,-80.945,"South Carolina, US",5148714 +84000046,US,USA,840,South Dakota,US,44.2998,-99.4388,"South Dakota, US",884659 +84000047,US,USA,840,Tennessee,US,35.7478,-86.6923,"Tennessee, US",6829174 +84000048,US,USA,840,Texas,US,31.0545,-97.5635,"Texas, US",28995881 +84000049,US,USA,840,Utah,US,40.15,-111.8624,"Utah, US",3205958 +84000050,US,USA,840,Vermont,US,44.0459,-72.7107,"Vermont, US",623989 +84000051,US,USA,840,Virginia,US,37.7693,-78.17,"Virginia, US",8535519 +84000053,US,USA,840,Washington,US,47.4009,-121.4905,"Washington, US",7614893 +84000054,US,USA,840,West Virginia,US,38.4912,-80.9545,"West Virginia, US",1792147 +84000055,US,USA,840,Wisconsin,US,44.2685,-89.6165,"Wisconsin, US",5822434 +84000056,US,USA,840,Wyoming,US,42.756,-107.3025,"Wyoming, US",578759 diff --git a/python/samples/learn_resources/resources/PopulationByCountry.csv b/python/samples/learn_resources/resources/PopulationByCountry.csv new file mode 100644 index 000000000000..b3dcae49eb73 --- /dev/null +++ b/python/samples/learn_resources/resources/PopulationByCountry.csv @@ -0,0 +1,199 @@ +UID,iso2,iso3,code3,Country_Region,Lat,Long,Population +4,AF,AFG,4,Afghanistan,33.93911,67.709953,38928341 +8,AL,ALB,8,Albania,41.1533,20.1683,2877800 +10,AQ,ATA,10,Antarctica,-71.9499,23.347,0 +12,DZ,DZA,12,Algeria,28.0339,1.6596,43851043 +20,AD,AND,20,Andorra,42.5063,1.5218,77265 +24,AO,AGO,24,Angola,-11.2027,17.8739,32866268 +28,AG,ATG,28,Antigua and Barbuda,17.0608,-61.7964,97928 +32,AR,ARG,32,Argentina,-38.4161,-63.6167,45195777 +51,AM,ARM,51,Armenia,40.0691,45.0382,2963234 +40,AT,AUT,40,Austria,47.5162,14.5501,9006400 +31,AZ,AZE,31,Azerbaijan,40.1431,47.5769,10139175 +44,BS,BHS,44,Bahamas,25.025885,-78.035889,393248 +48,BH,BHR,48,Bahrain,26.0275,50.55,1701583 +50,BD,BGD,50,Bangladesh,23.685,90.3563,164689383 +52,BB,BRB,52,Barbados,13.1939,-59.5432,287371 +112,BY,BLR,112,Belarus,53.7098,27.9534,9449321 +56,BE,BEL,56,Belgium,50.8333,4.469936,11492641 +84,BZ,BLZ,84,Belize,17.1899,-88.4976,397621 +204,BJ,BEN,204,Benin,9.3077,2.3158,12123198 +64,BT,BTN,64,Bhutan,27.5142,90.4336,771612 +68,BO,BOL,68,Bolivia,-16.2902,-63.5887,11673029 +70,BA,BIH,70,Bosnia and Herzegovina,43.9159,17.6791,3280815 +72,BW,BWA,72,Botswana,-22.3285,24.6849,2351625 +76,BR,BRA,76,Brazil,-14.235,-51.9253,212559409 +96,BN,BRN,96,Brunei,4.5353,114.7277,437483 +100,BG,BGR,100,Bulgaria,42.7339,25.4858,6948445 +854,BF,BFA,854,Burkina Faso,12.2383,-1.5616,20903278 +104,MM,MMR,104,Burma,21.9162,95.956,54409794 +108,BI,BDI,108,Burundi,-3.3731,29.9189,11890781 +132,CV,CPV,132,Cabo Verde,16.5388,-23.0418,555988 +116,KH,KHM,116,Cambodia,11.55,104.9167,16718971 +120,CM,CMR,120,Cameroon,3.848,11.5021,26545864 +140,CF,CAF,140,Central African Republic,6.6111,20.9394,4829764 +148,TD,TCD,148,Chad,15.4542,18.7322,16425859 +152,CL,CHL,152,Chile,-35.6751,-71.543,19116209 +170,CO,COL,170,Colombia,4.5709,-74.2973,50882884 +178,CG,COG,178,Congo (Brazzaville),-0.228,15.8277,5518092 +180,CD,COD,180,Congo (Kinshasa),-4.0383,21.7587,89561404 +174,KM,COM,174,Comoros,-11.6455,43.3333,869595 +188,CR,CRI,188,Costa Rica,9.7489,-83.7534,5094114 +384,CI,CIV,384,Cote d'Ivoire,7.54,-5.5471,26378275 +191,HR,HRV,191,Croatia,45.1,15.2,4105268 +192,CU,CUB,192,Cuba,21.521757,-77.781167,11326616 +196,CY,CYP,196,Cyprus,35.1264,33.4299,1207361 +203,CZ,CZE,203,Czechia,49.8175,15.473,10708982 +208,DK,DNK,208,Denmark,56.2639,9.5018,5837213 +262,DJ,DJI,262,Djibouti,11.8251,42.5903,988002 +212,DM,DMA,212,Dominica,15.415,-61.371,71991 +214,DO,DOM,214,Dominican Republic,18.7357,-70.1627,10847904 +218,EC,ECU,218,Ecuador,-1.8312,-78.1834,17643060 +818,EG,EGY,818,Egypt,26.820553,30.802498,102334403 +222,SV,SLV,222,El Salvador,13.7942,-88.8965,6486201 +226,GQ,GNQ,226,Equatorial Guinea,1.6508,10.2679,1402985 +232,ER,ERI,232,Eritrea,15.1794,39.7823,3546427 +233,EE,EST,233,Estonia,58.5953,25.0136,1326539 +748,SZ,SWZ,748,Eswatini,-26.5225,31.4659,1160164 +231,ET,ETH,231,Ethiopia,9.145,40.4897,114963583 +242,FJ,FJI,242,Fiji,-17.7134,178.065,896444 +246,FI,FIN,246,Finland,61.92411,25.748151,5540718 +250,FR,FRA,250,France,46.2276,2.2137,65249843 +266,GA,GAB,266,Gabon,-0.8037,11.6094,2225728 +270,GM,GMB,270,Gambia,13.4432,-15.3101,2416664 +268,GE,GEO,268,Georgia,42.3154,43.3569,3989175 +276,DE,DEU,276,Germany,51.165691,10.451526,83155031 +288,GH,GHA,288,Ghana,7.9465,-1.0232,31072945 +300,GR,GRC,300,Greece,39.0742,21.8243,10423056 +308,GD,GRD,308,Grenada,12.1165,-61.679,112519 +320,GT,GTM,320,Guatemala,15.7835,-90.2308,17915567 +324,GN,GIN,324,Guinea,9.9456,-9.6966,13132792 +624,GW,GNB,624,Guinea-Bissau,11.8037,-15.1804,1967998 +328,GY,GUY,328,Guyana,4.860416,-58.93018,786559 +332,HT,HTI,332,Haiti,18.9712,-72.2852,11402533 +336,VA,VAT,336,Holy See,41.9029,12.4534,809 +340,HN,HND,340,Honduras,15.2,-86.2419,9904608 +348,HU,HUN,348,Hungary,47.1625,19.5033,9660350 +352,IS,ISL,352,Iceland,64.9631,-19.0208,341250 +356,IN,IND,356,India,20.593684,78.96288,1380004385 +360,ID,IDN,360,Indonesia,-0.7893,113.9213,273523621 +364,IR,IRN,364,Iran,32.427908,53.688046,83992953 +368,IQ,IRQ,368,Iraq,33.223191,43.679291,40222503 +372,IE,IRL,372,Ireland,53.1424,-7.6921,4937796 +376,IL,ISR,376,Israel,31.046051,34.851612,8655541 +380,IT,ITA,380,Italy,41.87194,12.56738,60461828 +388,JM,JAM,388,Jamaica,18.1096,-77.2975,2961161 +392,JP,JPN,392,Japan,36.204824,138.252924,126476458 +400,JO,JOR,400,Jordan,31.24,36.51,10203140 +398,KZ,KAZ,398,Kazakhstan,48.0196,66.9237,18776707 +404,KE,KEN,404,Kenya,-0.0236,37.9062,53771300 +296,KI,KIR,296,Kiribati,-3.3704,-168.734,117606 +408,KP,PRK,408,"Korea, North",40.3399,127.5101,25778815 +410,KR,KOR,410,"Korea, South",35.907757,127.766922,51269183 +383,XK,XKS,383,Kosovo,42.602636,20.902977,1810366 +414,KW,KWT,414,Kuwait,29.31166,47.481766,4270563 +417,KG,KGZ,417,Kyrgyzstan,41.20438,74.766098,6524191 +418,LA,LAO,418,Laos,19.85627,102.495496,7275556 +428,LV,LVA,428,Latvia,56.8796,24.6032,1886202 +422,LB,LBN,422,Lebanon,33.8547,35.8623,6825442 +426,LS,LSO,426,Lesotho,-29.61,28.2336,2142252 +430,LR,LBR,430,Liberia,6.428055,-9.429499,5057677 +434,LY,LBY,434,Libya,26.3351,17.228331,6871287 +438,LI,LIE,438,Liechtenstein,47.14,9.55,38137 +440,LT,LTU,440,Lithuania,55.1694,23.8813,2722291 +442,LU,LUX,442,Luxembourg,49.8153,6.1296,625976 +450,MG,MDG,450,Madagascar,-18.766947,46.869107,27691019 +454,MW,MWI,454,Malawi,-13.2543,34.3015,19129955 +458,MY,MYS,458,Malaysia,4.210484,101.975766,32365998 +462,MV,MDV,462,Maldives,3.2028,73.2207,540542 +466,ML,MLI,466,Mali,17.570692,-3.996166,20250834 +470,MT,MLT,470,Malta,35.9375,14.3754,441539 +584,MH,MHL,584,Marshall Islands,7.1315,171.1845,58413 +478,MR,MRT,478,Mauritania,21.0079,-10.9408,4649660 +480,MU,MUS,480,Mauritius,-20.348404,57.552152,1271767 +484,MX,MEX,484,Mexico,23.6345,-102.5528,127792286 +583,FM,FSM,583,Micronesia,7.4256,150.5508,113815 +498,MD,MDA,498,Moldova,47.4116,28.3699,4027690 +492,MC,MCO,492,Monaco,43.7333,7.4167,39244 +496,MN,MNG,496,Mongolia,46.8625,103.8467,3278292 +499,ME,MNE,499,Montenegro,42.708678,19.37439,628062 +504,MA,MAR,504,Morocco,31.7917,-7.0926,36910558 +508,MZ,MOZ,508,Mozambique,-18.665695,35.529562,31255435 +516,NA,NAM,516,Namibia,-22.9576,18.4904,2540916 +520,NR,NRU,520,Nauru,-0.5228,166.9315,10834 +524,NP,NPL,524,Nepal,28.1667,84.25,29136808 +528,NL,NLD,528,Netherlands,52.1326,5.2913,17134873 +554,NZ,NZL,554,New Zealand,-40.9006,174.886,4822233 +558,NI,NIC,558,Nicaragua,12.865416,-85.207229,6624554 +562,NE,NER,562,Niger,17.607789,8.081666,24206636 +566,NG,NGA,566,Nigeria,9.082,8.6753,206139587 +807,MK,MKD,807,North Macedonia,41.6086,21.7453,2083380 +578,NO,NOR,578,Norway,60.472,8.4689,5421242 +512,OM,OMN,512,Oman,21.512583,55.923255,5106622 +586,PK,PAK,586,Pakistan,30.3753,69.3451,220892331 +585,PW,PLW,8,Palau,7.515,134.5825,18008 +591,PA,PAN,591,Panama,8.538,-80.7821,4314768 +598,PG,PNG,598,Papua New Guinea,-6.314993,143.95555,8947027 +600,PY,PRY,600,Paraguay,-23.4425,-58.4438,7132530 +604,PE,PER,604,Peru,-9.19,-75.0152,32971846 +608,PH,PHL,608,Philippines,12.879721,121.774017,109581085 +616,PL,POL,616,Poland,51.9194,19.1451,37846605 +620,PT,PRT,620,Portugal,39.3999,-8.2245,10196707 +634,QA,QAT,634,Qatar,25.3548,51.1839,2881060 +642,RO,ROU,642,Romania,45.9432,24.9668,19237682 +643,RU,RUS,643,Russia,61.52401,105.318756,145934460 +646,RW,RWA,646,Rwanda,-1.9403,29.8739,12952209 +659,KN,KNA,659,Saint Kitts and Nevis,17.357822,-62.782998,53192 +662,LC,LCA,662,Saint Lucia,13.9094,-60.9789,183629 +670,VC,VCT,670,Saint Vincent and the Grenadines,12.9843,-61.2872,110947 +882,WS,WSM,882,Samoa,-13.759,-172.1046,196130 +674,SM,SMR,674,San Marino,43.9424,12.4578,33938 +678,ST,STP,678,Sao Tome and Principe,0.1864,6.6131,219161 +682,SA,SAU,682,Saudi Arabia,23.885942,45.079162,34813867 +686,SN,SEN,686,Senegal,14.4974,-14.4524,16743930 +688,RS,SRB,688,Serbia,44.0165,21.0059,8737370 +690,SC,SYC,690,Seychelles,-4.6796,55.492,98340 +694,SL,SLE,694,Sierra Leone,8.460555,-11.779889,7976985 +702,SG,SGP,702,Singapore,1.2833,103.8333,5850343 +703,SK,SVK,703,Slovakia,48.669,19.699,5434712 +705,SI,SVN,705,Slovenia,46.1512,14.9955,2078932 +90,SB,SLB,90,Solomon Islands,-9.6457,160.1562,652858 +706,SO,SOM,706,Somalia,5.152149,46.199616,15893219 +710,ZA,ZAF,710,South Africa,-30.5595,22.9375,59308690 +728,SS,SSD,728,South Sudan,6.877,31.307,11193729 +724,ES,ESP,724,Spain,40.463667,-3.74922,46754783 +144,LK,LKA,144,Sri Lanka,7.873054,80.771797,21413250 +729,SD,SDN,729,Sudan,12.8628,30.2176,43849269 +740,SR,SUR,740,Suriname,3.9193,-56.0278,586634 +752,SE,SWE,752,Sweden,60.128161,18.643501,10099270 +756,CH,CHE,756,Switzerland,46.8182,8.2275,8654618 +760,SY,SYR,760,Syria,34.802075,38.996815,17500657 +158,TW,TWN,158,Taiwan*,23.7,121,23816775 +762,TJ,TJK,762,Tajikistan,38.861,71.2761,9537642 +834,TZ,TZA,834,Tanzania,-6.369028,34.888822,59734213 +764,TH,THA,764,Thailand,15.870032,100.992541,69799978 +626,TL,TLS,626,Timor-Leste,-8.874217,125.727539,1318442 +768,TG,TGO,768,Togo,8.6195,0.8248,8278737 +776,TO,TON,776,Tonga,-21.179,-175.1982,105697 +780,TT,TTO,780,Trinidad and Tobago,10.6918,-61.2225,1399491 +788,TN,TUN,788,Tunisia,33.886917,9.537499,11818618 +792,TR,TUR,792,Turkey,38.9637,35.2433,84339067 +798,TV,TUV,798,Tuvalu,-7.1095,177.6493,11792 +800,UG,UGA,800,Uganda,1.373333,32.290275,45741000 +804,UA,UKR,804,Ukraine,48.3794,31.1656,43733759 +784,AE,ARE,784,United Arab Emirates,23.424076,53.847818,9890400 +826,GB,GBR,826,United Kingdom,55.3781,-3.436,67886004 +858,UY,URY,858,Uruguay,-32.5228,-55.7658,3473727 +860,UZ,UZB,860,Uzbekistan,41.377491,64.585262,33469199 +548,VU,VUT,548,Vanuatu,-15.3767,166.9592,292680 +862,VE,VEN,862,Venezuela,6.4238,-66.5897,28435943 +704,VN,VNM,704,Vietnam,14.058324,108.277199,97338583 +275,PS,PSE,275,West Bank and Gaza,31.9522,35.2332,5101416 +732,EH,ESH,732,Western Sahara,24.2155,-12.8858,597330 +887,YE,YEM,887,Yemen,15.552727,48.516388,29825968 +894,ZM,ZMB,894,Zambia,-13.133897,27.849332,18383956 +716,ZW,ZWE,716,Zimbabwe,-19.015438,29.154857,14862927 +36,AU,AUS,36,Australia,-25,133,25459700 +124,CA,CAN,124,Canada,60,-95,38246108 +156,CN,CHN,156,China,35.8617,104.19545,1411778724 +840,US,USA,840,US,40,-100,329466283