From 65465fb8ef3b1053a901c437c3cd1f20a9605647 Mon Sep 17 00:00:00 2001 From: James Dunkerley Date: Wed, 9 Mar 2022 10:31:02 +0000 Subject: [PATCH] Restructuring the Faker type and creating tests for Group_By (#3318) - Added Minimum, Maximum, Longest. Shortest, Mode, Percentile - Added first and last to Map - Restructured Faker type more inline with FakerJS - Created 2,500 row data set - Tests for group_by - Performance tests for group_by --- CHANGELOG.md | 3 + .../Standard/Base/0.0.0-dev/src/Data/Map.enso | 18 + .../0.0.0-dev/src/Data/Aggregate_Column.enso | 211 +- .../Table/0.0.0-dev/src/Data/Group_By.enso | 37 +- .../Table/0.0.0-dev/src/Data/Table.enso | 8 +- .../Standard/Test/0.0.0-dev/src/Faker.enso | 109 +- .../expression/builtin/mutable/CopyNode.java | 7 +- test/Benchmarks/src/Natural_Order_Sort.enso | 6 +- test/Benchmarks/src/Number_Parse.enso | 30 +- test/Benchmarks/src/Table/Group_By.enso | 49 + test/Benchmarks/src/Text/Compare.enso | 10 +- test/Benchmarks/src/Text/Contains.enso | 4 +- test/Table_Tests/data/data.csv | 2501 +++++++++++++++++ .../src/Aggregate_Column_Spec.enso | 49 +- test/Table_Tests/src/Group_By_Spec.enso | 406 +++ test/Tests/src/Data/Map_Spec.enso | 17 + 16 files changed, 3333 insertions(+), 132 deletions(-) create mode 100644 test/Benchmarks/src/Table/Group_By.enso create mode 100644 test/Table_Tests/data/data.csv create mode 100644 test/Table_Tests/src/Group_By_Spec.enso diff --git a/CHANGELOG.md b/CHANGELOG.md index 741931b2a7f4..40be2aa5f4eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -64,6 +64,8 @@ `Vector.fold_with_index` and `Vector.take` methods.][3236] - [Implemented new `Text.insert` method][3311] - [Implemented `Bool.compare_to` method][3317] +- [Implemented `Map.first`, `Map.last` functions. Expanded `Table.group_by` to + also compute mode, percentile, minimum, maximum.][3318] [debug-shortcuts]: https://github.com/enso-org/enso/blob/develop/app/gui/docs/product/shortcuts.md#debug @@ -101,6 +103,7 @@ [3236]: https://github.com/enso-org/enso/pull/3236 [3311]: https://github.com/enso-org/enso/pull/3311 [3317]: https://github.com/enso-org/enso/pull/3317 +[3317]: https://github.com/enso-org/enso/pull/3318 #### Enso Compiler diff --git a/distribution/lib/Standard/Base/0.0.0-dev/src/Data/Map.enso b/distribution/lib/Standard/Base/0.0.0-dev/src/Data/Map.enso index 4314408983f6..ef8130874a52 100644 --- a/distribution/lib/Standard/Base/0.0.0-dev/src/Data/Map.enso +++ b/distribution/lib/Standard/Base/0.0.0-dev/src/Data/Map.enso @@ -440,6 +440,24 @@ type Map to_vector_with_builder this builder.to_vector + ## Get a key value pair of the lowest key in the map. + If the map is empty, returns Nothing. + first : Pair + first = + first p m = case m of + Bin _ k v l _ -> @Tail_Call first (Pair k v) l + Tip -> p + first Nothing this + + ## Get a key value pair of the highest key in the map. + If the map is empty, returns Nothing. + last : Pair + last = + last p m = case m of + Bin _ k v _ r -> @Tail_Call last (Pair k v) r + Tip -> p + last Nothing this + ## UNSTABLE An error for getting a missing value from a map. diff --git a/distribution/lib/Standard/Table/0.0.0-dev/src/Data/Aggregate_Column.enso b/distribution/lib/Standard/Table/0.0.0-dev/src/Data/Aggregate_Column.enso index dbc590c0e75f..9de102a4c917 100644 --- a/distribution/lib/Standard/Table/0.0.0-dev/src/Data/Aggregate_Column.enso +++ b/distribution/lib/Standard/Table/0.0.0-dev/src/Data/Aggregate_Column.enso @@ -6,54 +6,111 @@ import Standard.Table.Data.Group_By ## Defines an Aggregate Column type Aggregate_Column ## Creates a new column with the row count of each group + + Arguments: + - name: name of new column. type Count (name:Text|Nothing=Nothing) ## Creates a new column with the count of unique items in the selected column(s) within each group. - type Count_Distinct (columns:Column|Text|Integer|[(Column|Text|Integer)]) (name:Text|Nothing=Nothing) + + Arguments: + - columns: either a single or set of columns (specified by name, index or Column object) to count across. + - name: name of new column. + - ignore_nothing: if all values are Nothing won't be included. + type Count_Distinct (columns:Column|Text|Integer|[(Column|Text|Integer)]) (name:Text|Nothing=Nothing) (ignore_nothing:Boolean=False) ## ALIAS Count_Not_Null Creates a new column with the count of not `Nothing` (null) values of the specified column within each group. + + Arguments: + - columns: column (specified by name, index or Column object) to count. + - name: name of new column. type Count_Not_Nothing (column:Column|Text|Integer) (name:Text|Nothing=Nothing) ## ALIAS Count_Null, Count_Missing Creates a new column with the count of `Nothing` (null) values of the specified column within each group. + + Arguments: + - column: column (specified by name, index or Column object) to count. + - name: name of new column. type Count_Nothing (column:Column|Text|Integer) (name:Text|Nothing=Nothing) ## Creates a new column with the count of not `Nothing` (null) and non-empty ("") values of the column within each group. + + Arguments: + - column: column (specified by name, index or Column object) to count. + - name: name of new column. type Count_Not_Empty (column:Column|Text|Integer) (name:Text|Nothing=Nothing) ## Creates a new column with the count of `Nothing` (null) or empty ("") text values of the column within each group. + + Arguments: + - column: column (specified by name, index or Column object) to count. + - name: name of new column. type Count_Empty (column:Column|Text|Integer) (name:Text|Nothing=Nothing) ## Creates a new column with the sum of values (ignoring missing values) of the specified column within each group. + + Arguments: + - column: column (specified by name, index or Column object) to total. + - name: name of new column. type Sum (column:Column|Text|Integer) (name:Text|Nothing=Nothing) ## Creates a new column with the mean of values (ignoring missing values) of the specified column within each group. + + Arguments: + - column: column (specified by name, index or Column object) to average. + - name: name of new column. type Average (column:Column|Text|Integer) (name:Text|Nothing=Nothing) ## Creates a new column with the median of values (ignoring missing values) of the specified column within each group. + + Arguments: + - column: column (specified by name, index or Column object) to calculate median on. + - name: name of new column. type Median (column:Column|Text|Integer) (name:Text|Nothing=Nothing) + ## Creates a new column with the median of values (ignoring missing values) + of the specified column within each group. + + Arguments: + - percentile: Percentage to compute from 0-1 inclusive. + - column: column (specified by name, index or Column object) to compute percentile. + - name: name of new column. + type Percentile (percentile:Decimal) (column:Column|Text|Integer) (name:Text|Nothing=Nothing) + + ## Creates a new column with the mode of values (ignoring missing values) + of the specified column within each group. + + Arguments: + - column: column (specified by name, index or Column object) to find the most common value. + - name: name of new column. + type Mode (column:Column|Text|Integer) (name:Text|Nothing=Nothing) + ## Creates a new column with the standard deviation of values (ignoring missing values) of the column within each group. Arguments: + - column: column (specified by name, index or Column object) to compute standard deviation. + - name: name of new column. - population argument specifies if group is a sample or the population type Standard_Deviation (column:Column|Text|Integer) (name:Text|Nothing=Nothing) (population:Boolean=False) ## Creates a new column with the values concatenated together. `Nothing` values will become an empty string. Arguments: + - column: column (specified by name, index or Column object) to concatenate values. + - name: name of new column. - separator: added between each value. - prefix: added at the start of the result. - suffix: added at the end of the result. @@ -63,22 +120,54 @@ type Aggregate_Column ## Creates a new column with the first value in each group. - Arguments: - - ignore_nothing: if `True`, then missing values are ignored and first - not missing value returned. - - order_by: required for database tables. Specifies how to order the - results within the group. + Arguments: + - column: column (specified by name, index or Column object) to find first group entry. + - name: name of new column. + - ignore_nothing: if `True`, then missing values are ignored and first + not missing value returned. + - order_by: required for database tables. Specifies how to order the + results within the group. type First (column:Column|Text|Integer) (name:Text|Nothing=Nothing) (ignore_nothing:Boolean=True) (order_by:Column_Selector|Nothing=Nothing) ## Creates a new column with the last value in each group. - Arguments: - - ignore_nothing: if `True`, then missing values are ignored and last - not missing value returned. - - order_by: required for database tables. Specifies how to order the - results within the group. + Arguments: + - column: column (specified by name, index or Column object) to find last group entry. + - name: name of new column. + - ignore_nothing: if `True`, then missing values are ignored and last + not missing value returned. + - order_by: required for database tables. Specifies how to order the + results within the group. type Last (column:Column|Text|Integer) (name:Text|Nothing=Nothing) (ignore_nothing:Boolean=True) (order_by:Column_Selector|Nothing=Nothing) + ## Creates a new column with the maximum value in each group. + + Arguments: + - column: column (specified by name, index or Column object) to find maximum. + - name: name of new column. + type Maximum (column:Column|Text|Integer) (name:Text|Nothing=Nothing) + + ## Creates a new column with the maximum value in each group. + + Arguments: + - column: column (specified by name, index or Column object) to find minimum. + - name: name of new column. + type Minimum (column:Column|Text|Integer) (name:Text|Nothing=Nothing) + + ## Creates a new column with the shortest text in each group. + + Arguments: + - column: column (specified by name, index or Column object) to find shortest value. + - name: name of new column. + type Shortest (column:Column|Text|Integer) (name:Text|Nothing=Nothing) + + ## Creates a new column with the longest text in each group. + + Arguments: + - column: column (specified by name, index or Column object) to find longest value. + - name: name of new column. + type Longest (column:Column|Text|Integer) (name:Text|Nothing=Nothing) + ## Gets a column name to use for the aggregate column column_name : Table->Text column_name table = @@ -86,7 +175,7 @@ type Aggregate_Column get_name c = (this.resolve_column table c).name case this of Count _ -> "Count" - Count_Distinct c _ -> + Count_Distinct c _ _ -> case c of Vector.Vector _ -> "Count Distinct " + ((c.map get_name).join " ") _ -> "Count Distinct " + (get_name c) @@ -97,10 +186,16 @@ type Aggregate_Column Sum c _ -> "Sum " + (get_name c) Average c _ -> "Average " + (get_name c) Median c _ -> "Median " + (get_name c) + Percentile p c _ -> (p*100).floor.to_text + "%-ile " + (get_name c) + Mode c _ -> "Mode " + (get_name c) Standard_Deviation c _ _ -> "Standard Deviation " + (get_name c) Concatenate c _ _ _ _ _ -> "Concatenate " + (get_name c) First c _ _ _ -> "First " + (get_name c) Last c _ _ _ -> "Last " + (get_name c) + Maximum c _ -> "Maximum " + (get_name c) + Minimum c _ -> "Minimum " + (get_name c) + Shortest c _ -> "Shortest " + (get_name c) + Longest c _ -> "Longest " + (get_name c) ## PRIVATE Given a column reference resolve to the underlying column @@ -113,14 +208,20 @@ type Aggregate_Column initial_value : Any initial_value = case this of - Count_Distinct _ _ -> Map.empty + Count_Distinct _ _ _ -> Map.empty Median _ _ -> Map.empty + Percentile _ _ _ -> Map.empty + Mode _ _ -> Map.empty Average _ _ -> [0, 0] Standard_Deviation _ _ _ -> [0, 0, 0] Concatenate _ _ _ _ _ _ -> Nothing First _ _ _ _ -> Nothing Last _ _ _ _ -> Nothing Sum _ _ -> Nothing + Maximum _ _ -> Nothing + Minimum _ _ -> Nothing + Shortest _ _ -> Nothing + Longest _ _ -> Nothing _ -> 0 make_aggregator : Table->(Any->Integer->Any) @@ -139,16 +240,28 @@ type Aggregate_Column Count_Nothing c _ -> create_closure c col->count->i->(count + if (col.at i).is_nothing then 1 else 0) Count_Not_Empty c _ -> create_closure c col->count->i->(count + if is_empty (col.at i) then 0 else 1) Count_Empty c _ -> create_closure c col->count->i->(count + if is_empty (col.at i) then 1 else 0) - First c _ i _ -> - case i of + First c _ ignore_nothing _ -> + case ignore_nothing of False -> create_closure c col->current->i->(if i==0 then (col.at i) else current) True -> create_closure c col->current->i->if current.is_nothing then (col.at i) else current - Last c _ i _ -> - case i of + Last c _ ignore_nothing _ -> + case ignore_nothing of False -> create_closure c col->_->i->(col.at i) True -> create_closure c col->current->i-> v = (col.at i) if v.is_nothing then current else v + Maximum c _ -> create_closure c col->m->i-> + v = col.at i + if v.is_nothing then m else if m.is_nothing then v else m.max v + Minimum c _ -> create_closure c col->m->i-> + v = col.at i + if v.is_nothing then m else if m.is_nothing then v else m.min v + Shortest c _ -> create_closure c col->m->i-> + v = col.at i + if v.is_nothing then m else if m.is_nothing then v else if m.length <= v.length then m else v + Longest c _ -> create_closure c col->m->i-> + v = col.at i + if v.is_nothing then m else if m.is_nothing then v else if m.length >= v.length then m else v Sum c _ -> create_closure c col->total->i-> v = col.at i if v.is_nothing then total else @@ -159,53 +272,63 @@ type Aggregate_Column Standard_Deviation c _ _ -> create_closure c col->a->i-> v = col.at i if v.is_nothing then a else [a.first + 1, a.second + v, (a.at 2) + v*v] - Concatenate c _ j _ _ q -> create_closure c col->text->i-> + Concatenate c _ join _ _ quote -> create_closure c col->text->i-> v = col.at i val=if v.is_nothing then "" else text = case v of Text -> v _ -> v.to_text - if text == "" then (q+q) else - if text.contains j then (q+text+q) else text - if i==0 then val else (text + j + val) + if text == "" then (quote+quote) else + if text.contains join then (quote+text+quote) else text + if text.is_nothing then val else (text + join + val) Median c _ -> create_closure c col->map->i-> val = col.at i if val.is_nothing then map else (map.insert val (1 + (map.get_or_else val 0))) - Count_Distinct columns _ -> + Percentile _ c _ -> create_closure c col->map->i-> + val = col.at i + if val.is_nothing then map else (map.insert val (1 + (map.get_or_else val 0))) + Mode c _ -> create_closure c col->map->i-> + val = col.at i + if val.is_nothing then map else (map.insert val (1 + (map.get_or_else val 0))) + Count_Distinct columns _ ignore_nothing -> resolved = case columns of Vector.Vector _ -> columns.map c->(this.resolve_column table c) _ -> [this.resolve_column table columns] key_maker i = Group_By.key (resolved.map c->(c.at i)) - map->i->(map.insert (key_maker i) 1) + case ignore_nothing of + False-> map->i->(map.insert (key_maker i) 1) + True-> map->i-> + key = key_maker i + if key.values.all .is_nothing then map else (map.insert key 1) evaluate : Any->Any - evaluate value = case this of - Count_Distinct _ _ -> value.size - Median _ _ -> + evaluate value = + ## Given a map of values and counts, find the value at a specified percentile + percentile p:Decimal value:Map = count = value.fold 0 (+) if count == 0 then Nothing else - case count%2 == 1 of - True -> - mid = (count-1) / 2 - output = value.fold_with_key [0, Nothing] c->k->v-> - new_v = c.first + v - [new_v, if c.first.up_to new_v . contains mid then k else c.second] - output.second - False -> - mid = count / 2 + mid_value = (count - 1)*p + 1 + if mid_value <= 1 then value.first.first else + if mid_value >= count then value.last.first else + mid = mid_value.floor output = value.fold_with_key [0, Nothing, Nothing] c->k->v-> new_v = c.first + v - new_s = if c.first.up_to new_v . contains mid then k else c.second - new_t = if c.first.up_to new_v . contains (mid-1) then k else (c.at 2) + new_s = if c.first.up_to new_v . contains (mid-1) then k else c.second + new_t = if c.first.up_to new_v . contains mid then k else (c.at 2) [new_v, new_s, new_t] - (output.second + (output.at 2)) / 2 - Average _ _ -> if value.first == 0 then Nothing else (value.second / value.first) - Standard_Deviation _ _ p -> if value.first == 0 then Nothing else - f = if p then 1 else (value.first / (value.first - 1)).sqrt - ((value.at 2)/value.first - (value.second/value.first)^2).sqrt * f - Concatenate _ _ _ s p _ -> if value.is_nothing then value else (s + value + p) - _ -> value + (output.second + (output.at 2 - output.second) * (mid_value - mid)) + case this of + Count_Distinct _ _ _ -> value.size + Median _ _ -> percentile 0.5 value + Percentile p _ _ -> percentile p value + Mode _ _ -> (value.fold_with_key (Pair 0 Nothing) p->k->v-> if v>(p.first) then (Pair v k) else p) . second + Average _ _ -> if value.first == 0 then Nothing else (value.second / value.first) + Standard_Deviation _ _ p -> if value.first == 0 then Nothing else + f = if p then 1 else (value.first / (value.first - 1)).sqrt + ((value.at 2)/value.first - (value.second/value.first)^2).sqrt * f + Concatenate _ _ _ s p _ -> if value.is_nothing then value else (s + value + p) + _ -> value ## Occurs when cannot aggregate a column type Invalid_Aggregation_Method (column : Text) (message : Text) diff --git a/distribution/lib/Standard/Table/0.0.0-dev/src/Data/Group_By.enso b/distribution/lib/Standard/Table/0.0.0-dev/src/Data/Group_By.enso index 218d8e872e98..6068370b55e5 100644 --- a/distribution/lib/Standard/Table/0.0.0-dev/src/Data/Group_By.enso +++ b/distribution/lib/Standard/Table/0.0.0-dev/src/Data/Group_By.enso @@ -4,11 +4,7 @@ import Standard.Base.Data.Ordering.Vector_Lexicographic_Order ## Create a key structure for grouping operations key : Vector -> Group_By_Key key values = - mapper c = case c of - Boolean -> Comparable_Boolean c - Nothing -> Comparable_Nothing - _ -> c - + mapper c = Comparable_Value c Group_By_Key <| values.map mapper ## PRIVATE @@ -25,30 +21,23 @@ type Group_By_Key compare_to that = Vector_Lexicographic_Order.compare this.values that.values -## PRIVATE - Temporary workaround until Boolean compare_to completed -type Comparable_Boolean - type Comparable_Boolean value - - == : Comparable_Boolean->Boolean - == that = (this.compare_to that) == Ordering.Equal - - compare_to : Any->Ordering - compare_to that = - if this.value == that.value then Ordering.Equal else - if this.value then Ordering.Greater else Ordering.Less - ## PRIVATE Temporary workaround allowing Nothing to be in a Group_By -type Comparable_Nothing - type Comparable_Nothing +type Comparable_Value + type Comparable_Value value == : Comparable_Nothing->Boolean == that = (this.compare_to that) == Ordering.Equal compare_to : Any->Ordering compare_to that = - case that of - Comparable_Nothing -> Ordering.Equal - Nothing -> Ordering.Equal - _ -> Ordering.Less + value = case that of + Comparable_Value v -> v + _ -> that + + case this.value of + Nothing -> if value.is_nothing then Ordering.Equal else Ordering.Less + _ -> if value.is_nothing then Ordering.Greater else this.value.compare_to value + + is_nothing : Boolean + is_nothing = this.value.is_nothing diff --git a/distribution/lib/Standard/Table/0.0.0-dev/src/Data/Table.enso b/distribution/lib/Standard/Table/0.0.0-dev/src/Data/Table.enso index 3c8b51cc2d5b..7da83987bb49 100644 --- a/distribution/lib/Standard/Table/0.0.0-dev/src/Data/Table.enso +++ b/distribution/lib/Standard/Table/0.0.0-dev/src/Data/Table.enso @@ -8,6 +8,7 @@ import Standard.Base.Data.Time.Date import Standard.Table.Io.Spreadsheet_Write_Mode import Standard.Table.Io.Format import Standard.Table.Internal.Table_Helpers +import Standard.Table.Internal.Unique_Name_Strategy from Standard.Table.Data.Order_Rule as Order_Rule_Module import Order_Rule from Standard.Table.Data.Column_Selector as Column_Selector_Module import Column_Selector, By_Index @@ -516,16 +517,17 @@ type Table group_by selector columns (on_problems=Report_Warning) (warnings=Warnings.default) = # Grouping Key key_columns = if selector.is_nothing then [] else - Table_Helpers.select_columns internal_columns=this.columns selector=selector reorder=True on_problems=on_problems warnings=warnings + Table_Helpers.select_columns_helper internal_columns=this.columns selector=selector reorder=True on_problems=on_problems warnings=warnings key_length = key_columns.length make_key = if (key_length == 0) then _->(Group_By.key [1]) else i->(Group_By.key (key_columns.map v->(v.at i))) # New Table Accumulator - new_table = (key_columns.map c->c.name)+(columns.map c->(c.column_name this)) . map n->[n, Vector.new_builder] + name_strategy = Unique_Name_Strategy.new + new_table = (key_columns.map c->c.name)+(columns.map c->(c.column_name this)) . map n->[name_strategy.make_unique n, Vector.new_builder] add_row key = idx = new_table.at 0 . at 1 . length 0.up_to key_length . each i-> - new_table.at i . at 1 . append (key.values.at i) + new_table.at i . at 1 . append (key.values.at i).value 0.up_to (columns.length) . each i-> column = columns.at i new_table.at (i + key_length) . at 1 . append (column.initial_value) diff --git a/distribution/lib/Standard/Test/0.0.0-dev/src/Faker.enso b/distribution/lib/Standard/Test/0.0.0-dev/src/Faker.enso index cba2ea030bff..993505fa66df 100644 --- a/distribution/lib/Standard/Test/0.0.0-dev/src/Faker.enso +++ b/distribution/lib/Standard/Test/0.0.0-dev/src/Faker.enso @@ -7,33 +7,94 @@ upper_case_letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".utf_16 lower_case_letters = "abcdefghijklmnopqrstuvwxyz".utf_16 numbers = "0123456789".utf_16 -## Creates a random number generator which can be used for creating test values. +## Creates a new Faker which can be used for creating test values. Arguments: - seed: Optional seed value to make the sequence deterministic -make_generator : Integer -> Random -make_generator (seed = 0) = - if seed == 0 then Random.new else Random.new seed +new : Integer -> Faker +new (seed = 0) = + generator = if seed == 0 then Random.new else Random.new seed + Faker generator +## Object to generate (deterministic) random value for testing +type Faker + type Faker generator -## Creates a random string based on a template and random number generator. + ## Creates a random Text based on a template of character sets. - Arguments: - - template: Vector of vectors that represent the possible characters for each - letter, as UTF-16 code units. - - generator: Random number generator - - > Examples: - Creates a fake UK National Insurance number: - - l = "ABCEGHJKLMNOPRSTWXYZ".utf_16 - n = "0123456789".utf_16 - s = "ABCDFMP ".utf_16 - template = [l, l, n, n, n, n, n, s] - ni_number = make_string template make_generator -make_string : Vector -> Any -> Text -make_string template generator = - characters = template.map possible_chars-> - selected_char_ix = generator.nextInt possible_chars.length - possible_chars.at selected_char_ix - Text.from_utf_16 characters + Arguments: + - template: Vector of vectors that represent the possible characters for each + letter, as UTF-16 code units. + + > Examples: + Creates a fake UK National Insurance number: + + l = "ABCEGHJKLMNOPRSTWXYZ".utf_16 + n = "0123456789".utf_16 + s = "ABCDFMP ".utf_16 + template = [l, l, n, n, n, n, n, s] + ni_number = Faker.new . string_value template + string_value : Vector -> Text + string_value template = + characters = template.map possible_chars-> + selected_char_ix = this.generator.nextInt possible_chars.length + possible_chars.at selected_char_ix + Text.from_utf_16 characters + + ## Generates a Text consisting of lower/upper case characters. + + Arguments: + - length: length of text to generate + - upper_case: use upper_case letters + alpha : Integer->Boolean->Text + alpha length=1 upper_case=False = + alphabet = if upper_case then here.upper_case_letters else here.lower_case_letters + this.string_value <| 0.up_to length . map _->alphabet + + ## Generates a Text consisting of lower/upper case characters and digits. + + Arguments: + - length: length of text to generate + - upper_case: use upper_case letters + alpha_numeric : Integer->Boolean->Text + alpha_numeric length=1 upper_case=False = + alphabet = (if upper_case then here.upper_case_letters else here.lower_case_letters) + here.numbers + this.string_value <| 0.up_to length . map _->alphabet + + ## Generates a Text for a hexadecimal number + + Arguments: + - length: length of text to generate + hexadecimal : Integer->Text + hexadecimal length=1 = + alphabet = "0123456789ABCDEF".utf_16 + this.string_value <| 0.up_to length . map _->alphabet + + ## Create a random Boolean value + boolean : Boolean + boolean = + if this.generator.nextDouble < 0.5 then True else False + + ## Create a random Integer value + integer : Integer->Integer->Integer + integer minimum=0 maximum=100 = + minimum + (this.generator.nextInt (maximum - minimum)) + + ## Create a random Decimal value + decimal : Decimal->Decimal->Decimal + decimal minimum=0.0 maximum=1.0 = + minimum + this.generator.nextDouble * (maximum - minimum) + + ## Picks an item at Random from a list + + Arguments: + - items: Vector of items to pick from + - generator: Random number generator + vector_item : Vector->Any + vector_item items = + items.at (this.generator.nextInt items.length) + + ## Randomly converts some values to Nothing + make_some_nothing : Any->Decimal->Any + make_some_nothing value (chance=0.1) = + if this.generator.nextDouble <= chance then Nothing else value diff --git a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/mutable/CopyNode.java b/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/mutable/CopyNode.java index 8559f8a5adfa..e103d59a24ec 100644 --- a/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/mutable/CopyNode.java +++ b/engine/runtime/src/main/java/org/enso/interpreter/node/expression/builtin/mutable/CopyNode.java @@ -1,7 +1,6 @@ package org.enso.interpreter.node.expression.builtin.mutable; import com.oracle.truffle.api.dsl.Cached; -import com.oracle.truffle.api.dsl.CachedContext; import com.oracle.truffle.api.dsl.Fallback; import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.interop.InteropLibrary; @@ -9,7 +8,6 @@ import com.oracle.truffle.api.interop.UnsupportedMessageException; import com.oracle.truffle.api.library.CachedLibrary; import com.oracle.truffle.api.nodes.Node; -import org.enso.interpreter.Language; import org.enso.interpreter.dsl.BuiltinMethod; import org.enso.interpreter.node.expression.builtin.interop.syntax.HostValueToEnsoNode; import org.enso.interpreter.runtime.Context; @@ -34,11 +32,10 @@ Object doArray( long source_index, Array dest, long dest_index, - long count, - @CachedContext(Language.class) Context ctx) { + long count) { System.arraycopy( src.getItems(), (int) source_index, dest.getItems(), (int) dest_index, (int) count); - return ctx.getBuiltins().nothing().newInstance(); + return Context.get(this).getBuiltins().nothing().newInstance(); } @Specialization(guards = "arrays.hasArrayElements(src)") diff --git a/test/Benchmarks/src/Natural_Order_Sort.enso b/test/Benchmarks/src/Natural_Order_Sort.enso index bedadd5d30f0..bb08eeeefb08 100644 --- a/test/Benchmarks/src/Natural_Order_Sort.enso +++ b/test/Benchmarks/src/Natural_Order_Sort.enso @@ -21,8 +21,10 @@ main = ## No specific significance to this constant, just fixed to make generated set deterministic fixed_random_seed = 1644575867 - random_generator = Faker.make_generator fixed_random_seed + faker = Faker.new fixed_random_seed - unsorted = 0.up_to here.vector_size . map _->(Faker.make_string template random_generator) + IO.println <| "Creating unsorted vector" + unsorted = 0.up_to here.vector_size . map _->(faker.string_value template) + IO.println <| "Benchmarking..." Bench.measure (unsorted.sort by=Natural_Order.compare) "Natural Order" here.iter_size here.num_iterations diff --git a/test/Benchmarks/src/Number_Parse.enso b/test/Benchmarks/src/Number_Parse.enso index d5bdf1dd975c..28f3a424157e 100644 --- a/test/Benchmarks/src/Number_Parse.enso +++ b/test/Benchmarks/src/Number_Parse.enso @@ -5,24 +5,6 @@ import Standard.Test.Faker ## Bench Utilities ============================================================ -make_double_strings : Integer -> Any -> Integer -> Integer -> Vector -make_double_strings count generator (min = -1000000000) (max = 1000000000) = - range = max - min - output = Array.new count - 0.up_to count . each i-> - v = generator.nextDouble * range - min - output.set_at i v.to_text - Vector.Vector output - -make_integer_strings : Integer -> Any -> Integer -> Integer -> Vector -make_integer_strings count generator (min = -1000000000) (max = 1000000000) = - range = max - min - output = Array.new count - 0.up_to count . each i-> - v = (generator.nextInt range - min) - output.set_at i v.to_text - Vector.Vector output - vector_size = 1000000 iter_size = 100 num_iterations = 10 @@ -32,10 +14,14 @@ num_iterations = 10 main = ## No specific significance to this constant, just fixed to make generated set deterministic fixed_random_seed = 1644575867 - random_generator = Faker.make_generator fixed_random_seed + faker = Faker.new fixed_random_seed - double_string = here.make_double_strings here.vector_size random_generator - Bench.measure (double_string.map Decimal.parse) "Decimal.parse" here.iter_size here.num_iterations + IO.println <| "Creating decimal strings" + decimal_strings = Vector.new here.vector_size _->(faker.decimal -1000000000 1000000000).to_text + IO.println <| "Benchmarking Decimal.parse" + Bench.measure (decimal_strings.map Decimal.parse) "Decimal.parse" here.iter_size here.num_iterations - int_strings = here.make_integer_strings here.vector_size random_generator + IO.println <| "Creating integer strings" + int_strings = Vector.new here.vector_size _->(faker.integer -1000000000 1000000000).to_text + IO.println <| "Benchmarking Integer.parse" Bench.measure (int_strings.map Integer.parse) "Integer.parse" here.iter_size here.num_iterations diff --git a/test/Benchmarks/src/Table/Group_By.enso b/test/Benchmarks/src/Table/Group_By.enso new file mode 100644 index 000000000000..6ed65da27733 --- /dev/null +++ b/test/Benchmarks/src/Table/Group_By.enso @@ -0,0 +1,49 @@ +from Standard.Base import all + +import Standard.Test.Bench +import Standard.Test.Faker + +import Standard.Table.Data.Table +import Standard.Table.Data.Column_Selector +from Standard.Table.Data.Aggregate_Column import all + +## Bench Utilities ============================================================ + +vector_size = 2500 +iter_size = 100 +num_iterations = 10 + +create_table : Integer->Integer->Table +create_table rows (seed=1646322139) = + faker = Faker.new seed + key1 = ["Code", 0.up_to rows . map _-> faker.alpha 3] + key2 = ["Index", 0.up_to rows . map _-> faker.integer 0 10] + key3 = ["Flag", 0.up_to rows . map _-> faker.boolean] + value1 = ["Value", 0.up_to rows . map _-> ((faker.decimal -100 100)*100000).floor/100000] + value2 = ["ValueWithNothing", 0.up_to rows . map _-> faker.make_some_nothing ((faker.decimal -100 100)*100).floor/100] + text1 = ["TextWithNothing", 0.up_to rows . map _-> faker.make_some_nothing (faker.alpha_numeric 10)] + text2 = ["Hexadecimal", 0.up_to rows . map _-> faker.make_some_nothing (faker.hexadecimal 8)] + Table.new [key1, key2, key3, value1, value2, text1, text2] + +# The Benchmarks ============================================================== +main = + IO.println <| "Making table data..." + table = here.create_table here.vector_size + + Bench.measure (table.group_by (Column_Selector.By_Index []) [Count Nothing]) "Count table" here.iter_size here.num_iterations + Bench.measure (table.group_by (Column_Selector.By_Index []) [Count_Distinct "Index"]) "Count Distinct table" here.iter_size here.num_iterations + Bench.measure (table.group_by (Column_Selector.By_Index []) [Standard_Deviation "Value"]) "StDev table" here.iter_size here.num_iterations + Bench.measure (table.group_by (Column_Selector.By_Index []) [Median "Value"]) "Median table" here.iter_size here.num_iterations + Bench.measure (table.group_by (Column_Selector.By_Index []) [Mode "Index"]) "Mode table" here.iter_size here.num_iterations + + Bench.measure (table.group_by (Column_Selector.By_Name.new ["Index"]) [Count Nothing]) "Count grouped" here.iter_size here.num_iterations + Bench.measure (table.group_by (Column_Selector.By_Name.new ["Index"]) [Count_Distinct "Code"]) "Count Distinct grouped" here.iter_size here.num_iterations + Bench.measure (table.group_by (Column_Selector.By_Name.new ["Index"]) [Standard_Deviation "Value"]) "StDev grouped" here.iter_size here.num_iterations + Bench.measure (table.group_by (Column_Selector.By_Name.new ["Index"]) [Median "Value"]) "Median grouped" here.iter_size here.num_iterations + Bench.measure (table.group_by (Column_Selector.By_Name.new ["Index"]) [Mode "Index"]) "Mode grouped" here.iter_size here.num_iterations + + Bench.measure (table.group_by (Column_Selector.By_Name.new ["Index", "Flag"]) [Count Nothing]) "Count 2 level groups" here.iter_size here.num_iterations + Bench.measure (table.group_by (Column_Selector.By_Name.new ["Index", "Flag"]) [Count_Distinct "Code"]) "Count Distinct 2 level groups" here.iter_size here.num_iterations + Bench.measure (table.group_by (Column_Selector.By_Name.new ["Index", "Flag"]) [Standard_Deviation "Value"]) "StDev 2 level groups" here.iter_size here.num_iterations + Bench.measure (table.group_by (Column_Selector.By_Name.new ["Index", "Flag"]) [Median "Value"]) "Median 2 level groups" here.iter_size here.num_iterations + Bench.measure (table.group_by (Column_Selector.By_Name.new ["Index", "Flag"]) [Mode "Index"]) "Mode 2 level groups" here.iter_size here.num_iterations diff --git a/test/Benchmarks/src/Text/Compare.enso b/test/Benchmarks/src/Text/Compare.enso index b4252ff706ce..9fb9cf3b91e7 100644 --- a/test/Benchmarks/src/Text/Compare.enso +++ b/test/Benchmarks/src/Text/Compare.enso @@ -22,22 +22,22 @@ main = This is to compare the performance of handling simple ASCII versus performance of handling more complex Unicode characters. bench_strcmp suite_prefix character_template common_prefix = - gen = Faker.make_generator + faker = Faker.new ## Warning: this relies on the fact that Faker will treat the accent codepoint `\u{301}` as a separate code unit. We rely on this to add accents randomly to neighboring characters. If the implementation of Faker is changed, this must be modified accordingly. make_alpha_template length = Vector.new length _-> character_template very_short_template = make_alpha_template 4 - very_short = Vector.new 100000 _-> '🤩' + Faker.make_string very_short_template gen + very_short = Vector.new 100000 _-> '🤩' + faker.string_value very_short_template medium_template = make_alpha_template 64 - medium = Vector.new 10000 _-> Faker.make_string medium_template gen + medium = Vector.new 10000 _-> faker.string_value medium_template big_a_codepoint = 65 big_template = make_alpha_template 100000 - big_random = Vector.new 100 _-> Faker.make_string big_template gen + big_random = Vector.new 100 _-> faker.string_value big_template big_early_difference = Vector.new 100 ix-> - "bb" + (Text.from_codepoints [big_a_codepoint + ix%5]) + "aaa" + (Faker.make_string big_template gen) + "bb" + (Text.from_codepoints [big_a_codepoint + ix%5]) + "aaa" + (faker.string_value big_template) prefix = common_prefix.repeat 100000 big_late_difference = Vector.new 100 ix-> prefix + (Text.from_codepoints [big_a_codepoint + ix%5]) diff --git a/test/Benchmarks/src/Text/Contains.enso b/test/Benchmarks/src/Text/Contains.enso index 49a19961ff41..97415429b4ff 100644 --- a/test/Benchmarks/src/Text/Contains.enso +++ b/test/Benchmarks/src/Text/Contains.enso @@ -11,7 +11,7 @@ check_all text_vector pattern_vector mode = main = bench_contains suite_prefix character_template = - gen = Faker.make_generator + faker = Faker.new ## Warning: this relies on the fact that Faker will treat the accent codepoint `\u{301}` as a separate code unit. We rely on this to add accents randomly to neighboring characters. If the implementation of @@ -19,7 +19,7 @@ main = make_alpha_template length = Vector.new length _-> character_template big_template = make_alpha_template 10000 - big_random = Vector.new 200 _-> Faker.make_string big_template gen + big_random = Vector.new 200 _-> faker.string_value big_template Bench.measure (here.check_all big_random ["AAAAAA"] Text_Matcher.new) suite_prefix+" exact" 10 10 Bench.measure (here.check_all big_random ["AAAAAA"] (Text_Matcher.new Case_Insensitive.new)) suite_prefix+" case-insensitive" 10 10 diff --git a/test/Table_Tests/data/data.csv b/test/Table_Tests/data/data.csv new file mode 100644 index 000000000000..928643f9d732 --- /dev/null +++ b/test/Table_Tests/data/data.csv @@ -0,0 +1,2501 @@ +Code,Index,Flag,Value,ValueWithNothing,TextWithNothing,Hexadecimal +gxl,7,True,38.76109,63.13,pq6igd2wyd,4DD4675B +wca,0,False,-66.77495,31.29,2pr4102wc4, +gjb,6,False,74.19642,-11.06,kmqxqkl6qx,431A3D20 +nfw,1,True,88.65713,-68.71,"",01896EAB +ivt,7,False,-17.12076,24.83,"",22BAF9F6 +zfd,2,True,48.50013,-13.3,"",BFFCC5FC +zoh,1,False,-62.63629,22.61,byo6kn5l3s,CB056D3A +gtt,7,False,-29.82496,87.69,tlujzya1c1,B433E5B9 +wmh,9,False,-73.1439,53.1,r6k0uepdx6,9DCB7D82 +doc,3,True,28.66156,38.82,utbeyhgq4o,C1C05DD3 +div,6,False,53.03288,52.51,dqvm841asz,643C825B +gik,5,False,15.29334,-87.75,hb6rs0fwgm,F56C61A1 +pnw,6,False,72.14683,50.33,elqxsfy82z,F4034F9D +syn,1,False,87.5176,-64.96,9gdol6vxny,915008FC +der,7,True,0.86658,,,F32E1EFE +dtm,2,False,62.17495,-37.38,1enuqr8984,B22F91B2 +fkk,5,True,47.20779,-45.8,j6riz6qtqt,A4C35C21 +qfo,0,True,71.68403,-58.17,j86zmmrsy5,ABBEA5EF +faq,2,False,26.57507,-53.04,e3z3pdjtcj,E0F23A65 +auh,5,False,-65.80947,98.77,nrs91pj8s0,A4C0B085 +lff,9,False,-63.30495,,,D900B1F4 +azq,3,True,-37.82458,-99.44,zqsmad0cki,3467A28D +uva,9,True,-29.94147,84.4,87bcxzeduz,AACA2AE3 +aom,6,False,26.75177,-65.58,2ct3a4oij0,1FD29F50 +xaf,9,False,-19.99402,62.22,sspthjp0lr,5DCBB7EA +jhx,4,False,-24.92284,-76.08,,DB2B5528 +nhj,8,False,-55.9888,94.83,3c93hyluek,A10CA85F +dko,1,True,74.75956,-40.98,cxcjj9ni15,248F93A9 +spf,3,True,7.89538,16.84,z494ix0xw0,5034038F +lko,1,False,31.25082,55.42,k9kucdo92l,2087A869 +xpt,5,False,86.11344,84.17,bcfbs0vt7h,A8212066 +zqr,7,True,32.04485,-22.0,ipfortv9th,C627CB05 +jyg,8,False,-60.00031,32.22,avykqi3jre,35F96125 +hxm,8,True,-54.31083,64.72,b55i81bmc0,FAD80125 +qoi,0,True,-22.33534,20.1,55anvdg9o6,16831503 +vde,3,True,15.46965,-31.16,x5n4t23g2h,F13C7A19 +jor,6,False,1.4539,-48.9,cwza1b7nnm,F124C1D5 +bve,8,True,-0.94859,1.45,3xxgfyolbh,5C2ABBF1 +wfi,7,True,-27.51377,-12.07,vg4h1vwa2q,E7DF17F3 +pjq,3,False,-81.10561,-99.3,seo3waomlq,00443476 +qxz,1,True,-66.61252,92.37,2344vffof0,AC1ABC26 +rea,5,True,-2.92681,-19.95,7wtwr3n5r4,81812340 +uhb,2,False,-87.84942,-90.1,o7yilstu8t,B6580B33 +qlj,5,False,-13.99303,-84.7,qi7jwuwilb,E7920927 +uhq,7,True,-30.06239,93.32,,0CA9C387 +bzc,4,False,97.96011,-81.51,yy84blcwkz,F352A13E +nqf,2,True,-82.93136,12.93,yedvmlfmye,95062806 +etr,1,False,-53.95196,-83.46,s36adoggdl, +mxe,6,True,-66.48127,-63.28,79pwkt10qh,4D211D40 +zug,6,True,-6.46272,3.38,s19udlhatf,7159D86A +ryy,8,False,-62.30506,-19.93,v5w9d4n5iy,48C44EEB +hjn,3,True,62.75588,,np6iqpi300,94F303BD +clo,2,True,60.4399,22.89,,CF3AC3E8 +qxc,5,False,66.84187,-95.89,zbjj6kz9xn,AA877313 +znr,7,True,-73.91424,-29.31,,BA33A369 +ton,0,True,24.39345,-63.03,xjl7nq73fg,55C2BD82 +rxj,5,False,-89.4377,-3.14,5shqtmx7vz,C5B83F10 +mrs,8,True,-82.99064,8.82,x238eyxiof, +rox,4,False,45.27258,-55.29,enxrtgyml8,326A5C55 +ifs,9,False,11.50931,-90.82,s62zbxdwlk,1B4E1237 +fzg,8,False,-62.45869,90.91,twbbwhhsor,B9A5E426 +qbu,1,False,-58.28158,4.71,cmw7paeguc,958BE3B8 +pfi,3,True,72.38956,-24.07,8ymws1c3bh,77CD1703 +nsy,5,False,-80.87708,77.93,lwz1tccko8,20736B30 +uus,4,True,0.29865,-7.51,pc2m2o3mqw,7C7B087F +ftz,1,False,98.12341,-24.58,n51xeyb82p,EC318DF3 +kdg,4,False,71.22025,89.61,ex12zi6lxn, +syl,4,False,-18.68574,-50.91,l5p0q0s46f,3F566DF9 +wsc,3,False,81.72215,97.74,s9s3439e56,90EF109D +xkr,9,True,-74.88258,38.12,fta12wda3k,A6BCB3A7 +ont,9,True,-89.19446,9.5,ef940o6kko,88101461 +pdm,3,True,-51.26362,,aolnozgj1k,6CFCFDB7 +zuj,8,False,-52.80819,60.87,,24312AB8 +tdt,7,True,2.93307,-7.05,ynafahax9w,D8D2537F +ctu,2,False,88.98103,49.52,,A4CDB6B0 +cto,5,False,-96.64112,82.65,6pasvdc0oh,8E029AB0 +frz,7,True,23.38283,-0.64,z2usx8xefd, +rwn,0,False,50.50208,,5tt10gcb8d,9BAB0337 +dxs,9,True,-16.81102,35.08,rm98p1e0lp,269E1BC5 +jsx,1,True,-40.21088,-34.57,lwc73afnku,50DC1057 +duy,8,True,6.89733,-34.75,pcpictakcg, +zxd,6,True,16.6589,9.0,z86taw6cir,CD363A65 +sgs,7,False,95.63635,-10.56,i70gonhtu2,04671C28 +bsu,8,True,98.8073,31.37,r42bf9g4vh,AA6F25E6 +ace,4,False,22.62854,,hau1wh9qc4,BC433B05 +epf,9,False,8.18765,,ed5ggw6yg4,56A9DDF3 +iro,2,True,85.84684,-30.05,6rqn4dllym,B8164301 +yzb,1,False,6.29029,,,68A7E12B +lum,9,True,-56.63747,82.1,pc8et5e3r8,D9D92A19 +inf,4,False,-84.12437,17.59,0r5fx253l5,6DF6BECC +hhw,8,False,-9.11811,89.73,j6rc7nt6fl,2D19AC15 +naw,4,True,49.48844,,r0vkh3q3z8, +iso,2,True,-45.02586,-69.89,ud4j9m1c3r, +bdz,5,False,-50.84903,-82.86,ifag17r45g,3F8B4424 +wqp,8,False,21.9816,9.51,0vcianohtj,07BBE263 +fkx,7,False,12.65853,-99.08,9zam6k0kfz,27AF419D +fou,7,True,5.67533,67.33,bh7xdi9t42,CB89AA9D +gus,2,False,-29.4544,-10.9,,364D0FD5 +umk,4,False,96.1035,,4pat5cy991,A37E05EE +jvi,0,True,-64.65495,65.49,422txrj1ge,0FA5418B +jhc,0,True,13.1259,12.04,njn1wjtiyb,BA6A59CD +unm,9,False,-66.86064,,t143nad4db,713D9522 +mwv,2,False,11.81345,5.82,g524ah6a1a,22D37288 +sxv,3,True,-50.85889,-92.88,a61ce478bz,F3CABF55 +ekh,7,False,19.8178,-98.6,uoq6md2jbu,FF81CB12 +cph,6,False,67.30459,41.62,cn9b98q2x5,AE4509C7 +wms,4,True,-88.79043,7.87,edzzapgi0b,0C9FBAC6 +vse,5,False,-7.45063,-29.15,w5gtshqbqv,2309FC72 +ugc,8,False,84.99604,-90.44,f5got3im96,F1805030 +ppu,6,True,-62.515,54.48,jgobfrqrm3,F3E7FF23 +nsy,7,True,-16.96321,-0.02,ia8uzp767p,C1C7D379 +hfj,5,True,98.60248,89.92,5xwozogb5j,523823EE +bep,2,False,-19.51924,13.3,28s52ad7d1,615F0255 +zal,3,False,95.40641,-46.22,ge9hyoq723,0435387A +cjt,9,True,56.87587,84.19,o5i3qrndl6,33A48AC0 +ufz,4,True,-3.80864,67.35,drc0dmhcte,4420F025 +dmu,1,True,-81.8936,-34.96,q66rgvzm47,B57A9D55 +mwt,5,False,-6.96878,-68.13,n8t2gxewe5,DE13CF55 +byl,8,False,14.2676,8.45,vpckhgn3pr, +ghe,7,False,43.58896,-25.87,y4r5os8i31,E6A268FD +axc,1,True,-21.90429,-16.51,kp6bq1uvxy,B55E9572 +lwa,5,False,86.73238,-81.11,tphbqjz8pc,3233C9A0 +lqt,8,True,-0.14064,-64.54,yp0l8yfe7y,1BE2515A +xxl,2,False,21.44613,,hiyidwxyc0,3BAC61C1 +igx,7,True,30.53768,-77.86,pyfbdbg0wv,5206744C +vnn,3,True,63.5768,-45.27,rwnin0bsmx,899EE6F4 +xxv,7,True,54.13767,-36.72,6mskfma8fw,63D61FCF +oju,1,False,52.57528,-63.38,9rbbt5ro43,2E700FB0 +hwy,0,True,-53.75974,-74.32,jvwwe1myod,50B58882 +wft,0,False,51.27205,40.53,ea01u2h5ax,D132792A +cxu,0,False,9.03705,-67.36,5qtce6kxnk,B2429F1E +gqm,5,False,87.12646,,1zi7f2laxh, +zoq,9,False,-21.41987,34.52,kelg7j9a0c,640AADF0 +goq,8,False,-64.75543,,2pyxn5zi3e,F0369B77 +yis,6,True,88.69211,-93.79,,862A66BA +kjn,5,True,-5.70024,,x5v6rhwaz6,92647608 +aff,5,True,-35.42667,47.6,b31z7rzfxq,22512C9E +pqi,2,False,99.48126,69.55,1nyn1n2nki,5A596A2C +his,6,True,39.82616,-45.06,tfph6enbcq,14325C41 +ztz,3,False,-64.47309,,luc7k5muu9, +der,4,False,41.24233,3.55,u1slcve651,6E7C68D8 +fhv,1,False,32.18068,1.33,fw2tpjmnvu,1500F17B +jxn,5,False,-20.25365,-63.31,cqitfeex4l,25ADC95E +eyj,2,False,-40.90609,8.95,ozrq120vdx,24D42327 +sxo,8,True,-97.54359,90.57,14q1bz3c5a,C8600029 +vcu,7,False,92.92407,,860dsk4q9r,F436C21F +dqw,8,True,94.64195,2.25,kwv7e46aqa,7959622F +wus,5,True,52.46572,72.92,heha7fs6cw,0F8D842C +duq,3,False,31.77401,44.87,7zt2qmjr6a,CF47CE39 +icq,8,True,-75.00949,62.75,,365B20A0 +dpq,6,True,46.85878,13.87,6qoo9sjm7w,3361D749 +aos,1,False,16.11307,-92.41,4xbbsgftj2, +fsq,7,True,38.4171,-51.89,tmupetxv6f,8EA705F2 +ycp,6,False,-85.39559,1.33,,B1B0628F +zfp,4,False,57.04941,-88.42,w6grsirbms,7CE79D4D +jxe,5,True,81.43057,3.9,tdros3f5oh,339DBF32 +pca,5,False,-3.64065,-16.12,z40ond8gkw,EE87A7CD +ujn,0,False,-51.68216,-90.37,fuyx0a94u6,9344F576 +ruw,0,False,-84.42451,,nsanbdbry3,79D5AFA3 +kxo,3,False,-14.62595,53.62,,02865AC6 +bwp,9,False,-59.38879,-36.67,iqucuphq38,CA8A54A1 +uwg,6,False,-99.60588,54.77,9gchg41t30,9CFA1B99 +zkd,4,True,47.26491,77.3,dnf0d4l78y,00D6C1C7 +mbv,0,False,35.73475,76.1,l9sxcxiw89, +dcu,6,False,10.13691,80.17,f5hvx8mb21,7CE0F50F +xrw,9,True,-6.02681,-53.39,,30B73056 +guk,6,True,4.60308,32.03,,A4748471 +pva,2,True,-46.49376,33.67,zofgm7g9y5,C0E5F5FE +emp,5,True,-56.56044,5.27,43u5eqzsl2,DCF420AC +bmx,4,False,22.96332,80.82,s7mklf0d6o,720E8175 +unn,3,False,-3.33562,75.39,itp3tkg4mi,42BE4B1F +hli,5,True,-37.41023,-66.88,0rr1mqlytw,9740F8FD +wri,8,True,-69.29754,80.78,75vqlzovk3,535A6400 +whx,1,True,-3.98218,-39.25,asek9ft42x,C7B61960 +rwf,8,True,74.56609,-38.31,s3lkm7c9z6,045CCA18 +mfg,3,True,-87.87772,61.1,li0ke26wgc,173BDE82 +xmh,3,False,5.47594,24.21,nlyxmd0hmj, +wvj,9,False,69.61948,-29.22,,09973BDC +ulo,0,False,-11.04603,91.53,7s2jg10b2c,93E17BA9 +wik,3,False,-36.99933,51.05,oesoq5egj2, +epd,2,True,19.25101,,p4fdzlun7e,12BFF70B +ahd,2,False,74.20946,-76.31,yq0713j1d1,6714270F +ahp,9,True,-88.99497,96.56,s82pnddy4m,7EFBE297 +ewr,5,False,-52.28529,-70.82,9r4lq0rwd7,A16B392E +roz,1,False,-16.13775,-14.2,oc5rx6a4mq,4249B668 +tiw,6,True,-94.53852,-45.24,,C49ADC33 +lwe,6,True,-34.34041,53.08,pahtqeidw6,98B094E8 +pse,2,True,-78.60955,-62.57,ogzeleb5em,370FFFE6 +tjk,1,False,-10.48577,,gbsxf08tut,91E4237E +hcj,2,False,-47.7838,85.35,4w387195hr,9F8ABF24 +hmh,0,False,64.27149,,ezj795yjhi,3A31CF0A +jen,1,False,61.9846,-19.26,vbhzfjntt4,2486309A +cmq,4,True,10.32722,,zxckxk73kn,895E7CF9 +zxu,5,True,-36.7452,28.45,zmqecr6lwr, +ldg,8,True,43.59156,-34.96,f9343s807i,744B000B +amv,4,True,-51.14035,-3.43,j7hjfp1exm,7A3FB4AE +dzc,8,True,94.64948,19.7,9wz6dmis2b,7EEB778D +hxf,6,False,-82.99536,58.95,,54A4FBCB +pvd,0,True,18.97638,77.96,zddn3cdsps,54AC67C5 +rne,9,True,-48.49131,-5.85,fcqjkyqsz1,79C64714 +qss,6,True,-96.01506,-66.41,zze8056t07,03EC68D8 +xti,2,True,-48.56578,21.36,doxh6v8r5a,081CAFE9 +nhk,0,False,-58.05943,-50.12,9wwhyioqbz,E892ED78 +exr,5,False,-6.01251,-38.8,mgcr7vnm2g,41C5FD9A +tkt,1,True,-87.76315,-58.29,uuwvhs5w27,A598DFEA +aol,3,True,35.80858,-2.57,3wxbrgbdv9,16AE7D6A +xeq,8,True,15.64769,60.02,epsfnpkxwn,F2557FED +rgc,0,False,-74.34888,85.76,51fj6t7x9f,49D38269 +kff,8,False,6.06933,40.07,o64mz7vyjx,C77480DA +azs,7,False,21.64015,6.54,86on47fyx1,A805F82B +ned,8,True,66.66128,91.23,,C7B48880 +hfn,3,True,-74.91926,-9.31,pj2nlfia0g,77CAE7C7 +lnq,5,True,-62.45971,-95.73,ni2h6hb9eu,EAFD645C +sjf,7,True,-2.91538,-38.65,y64epl84r8, +myg,7,False,-2.746,-69.18,,0D223796 +lkh,6,True,-8.37402,-71.27,g10c71fna2,7B1FEB11 +rou,1,False,71.76104,50.38,6ny2ifyycl, +zyb,0,False,87.19491,-48.46,z6tde98lv8,EFFF8450 +ahj,5,True,49.79976,-18.45,0v20aqb7wd,287AEF3F +esl,8,False,37.77661,,,ED2A1AAC +ifq,0,True,-54.81087,-82.66,jifn2ainv6,F4962170 +uwe,0,False,-8.13926,-21.9,pbw75sozm1,101EF49D +kzs,0,True,3.24986,68.04,kfba9tzvdh, +kpg,9,True,-14.38291,-11.72,a5qq2txzth,E54D6A62 +plc,6,True,-95.73726,81.14,ugbllpr9fn,1B500DEA +rqq,2,True,33.92526,-89.05,ngmkvnjduq,8421BA13 +mux,3,True,-8.57899,73.68,rn6hzve6se,33C0B5E6 +cyl,9,True,-8.09411,68.18,8ao60du4am,FAF48F5A +gzs,9,True,-70.56364,60.81,a0o6g0piga,17B76782 +uab,6,True,-98.11578,92.59,e6laa8knlo, +jmd,1,False,-16.20045,93.22,mybhf7w0f5,AC490013 +roq,2,True,78.86109,73.3,dw3q09zsr5,ABE18BEE +bvx,2,True,66.2793,26.37,kbtn80ej5w,28FA9968 +scp,3,False,14.73728,60.24,xya6j8b2o9,E9611A0F +xoa,7,False,-98.20718,-63.75,8g6kidngic,B281F16F +mxg,2,True,31.52256,-19.34,vigr6cfzms,4ED2731B +yzw,2,True,83.14972,-30.92,gb89z10quq, +jvb,3,True,-89.02486,-90.65,,7B6F7AD2 +ikh,8,True,56.83513,66.62,br1bjobls4,971BCD74 +eoa,9,False,37.60014,-95.59,ngda0p2j1y,4AFC65F0 +bvz,7,True,54.05895,-56.09,,56F4503E +etd,6,True,69.35005,71.02,jalxm1pfrb,02BF0284 +ohc,0,True,91.48227,-86.92,og45owosx7, +wxx,5,False,-7.99376,-51.93,xgma1p5xno,BFE30C1F +wpy,4,False,-74.30803,44.54,u0hl0hrrsz,955EE122 +ctu,5,False,-94.0083,-74.05,aai2w4qw6g,324606AC +tbp,3,False,80.60539,-63.88,aarlzreqpr,90014F87 +hqi,3,False,65.81059,-1.56,mbnjfepzlc,1BB397F4 +gxr,3,False,-30.84825,20.94,vlexat8wck,FF097B97 +jlt,1,False,-39.40587,,ydsj580skd,1AE1E136 +mwz,1,False,-92.97895,86.43,xxcj9jz1y4,0A4A5D00 +ufe,7,True,48.14354,58.82,kk7k45be5m,7B7CF3FB +css,3,False,-60.15336,99.87,0tf5g6exys,14796562 +glb,4,False,83.81359,,8jmntw5h1c,FE7EADE7 +wcu,3,True,64.37161,-60.16,gj1vk2nn9h,2A89D0D3 +pyb,6,True,-90.38629,-30.76,3i9qb7qlk3,61509448 +sfg,4,True,-26.95843,,psum1my3e4,F5F7A3AC +ifu,2,True,-31.3186,85.75,y7tmc3xyoe, +jtl,2,True,59.79583,44.15,nqg2mcfl8q,BC7715EF +maw,1,False,7.09472,11.23,b12m4qqfcw,DA881658 +osa,1,True,-72.05466,-70.6,lh46leuo1h,00BDD72B +kvg,1,False,30.74967,-44.98,plouwhsf0m, +ikt,6,False,-10.09329,62.82,sjocm7od4q,95D75567 +hyk,0,True,-47.72523,-55.0,,45F082BD +oov,9,False,59.8079,93.29,gp92v0mxde,7C4EF493 +rhc,9,True,34.85218,70.86,zsew924hx0,99A23CEF +vlf,5,True,45.8201,-49.2,, +zhw,2,False,0.15188,76.46,hwu2j6xcss,F9306499 +nly,3,True,-52.64695,-90.8,9s6s8m9oh7,67DDB9AC +zka,6,True,-9.22376,-91.02,xj3r03elm2,339AD210 +dng,6,False,66.45372,,vxgoxjkufu,B8AECB9C +wci,4,True,78.69684,,jsa2k609n3, +rtq,5,True,-68.02638,,o2dcqlcaf2,783C4D3D +efp,4,True,95.80616,20.16,x0anb3pcc1,5E05F2D9 +mqa,6,False,4.04349,22.56,ndiuuuufta,5F7D74EF +pnz,5,False,77.1948,-72.11,spla9xy8df, +yvb,4,False,-64.53246,-73.78,hv2apy55k9,E9465E5C +ohu,4,True,89.01212,-47.46,k3qmx7w5hw,08128AC5 +ncc,2,False,91.80002,58.35,c91slxsjte,A4F28452 +ikx,2,False,-61.68458,-85.84,ue4f9opfuj,003CAB56 +wfn,5,False,14.69515,83.09,etcp87c3b8,E48978EA +sih,4,True,-99.67678,64.38,gatunw7w52,52A47F4B +wvx,2,False,10.85498,-93.8,5f2brptgfo,7058CFDC +juv,7,False,57.75095,36.93,,08C09E0E +wrm,8,False,-15.61079,-63.74,kxzojat8cz,0223E5AB +zty,7,True,-73.16324,-49.99,1vzbg8trfb,24F5A7BC +jdq,6,True,42.12364,99.79,3gy4lfu0e1,EF63FD55 +wvb,6,True,85.30016,-79.41,z13ezmlvp5,5A75FC6B +kok,6,True,93.45106,10.81,ddmoarf2at,7AB3FA60 +zzw,4,True,49.48043,51.57,f7v0jcncvn,3055A509 +cki,2,True,58.43624,61.82,gt80j0y8jj,635DF84D +ftj,3,False,42.56556,,ctuyf0ondy,CF6E542B +cxf,5,True,75.41759,50.87,quyvoh9zht,7A65DA1F +pde,9,True,15.05775,79.17,2wy6c2uk9c, +amz,3,True,63.26767,88.87,pxbvbb8uv7,54FBFDA8 +ihd,9,True,-75.02998,7.42,mbe1903tfo,AD8D89A4 +ivo,4,True,-89.6145,-58.83,2yx6lt8or4,0EE68A8A +aub,0,True,51.87153,-87.77,s70nfrspwo,39DE396F +fyc,2,True,14.62126,49.55,0woc5cra03,6321AB6E +ecy,3,True,39.58835,43.01,vzrynlyihx,3EF92CDB +fay,7,False,-66.46925,53.14,o3bvr0672r,9A54DCE8 +hyi,0,True,-38.4662,-95.45,,27F111F3 +qoi,0,False,86.09919,81.21,5kyh5mwv41,E1B0E281 +vzq,9,False,45.32806,7.64,qw9unrcwf7,4E2BD2DE +fdi,9,False,-95.53733,25.95,w9buftzlj9,301FDA45 +yxr,4,False,35.23506,-34.16,m9gmu2nibo,B0D0EB76 +lcd,7,False,-88.0814,20.2,37k8f5aam9,2713F7A9 +mog,8,True,8.28297,-35.37,hnbuj81kpf,B86400E0 +khn,1,True,-87.99613,42.43,5mhjfr6wf6,6AD35754 +muc,2,False,-20.34042,42.25,g4lrpav9hs,A12764BF +mve,7,False,-61.3911,,jh5jlw4hke,9DF30AEB +jne,7,False,-37.37794,16.67,12gomek0rb,F40B3E33 +scb,4,False,-69.41149,-89.83,c5ox1agypt,62ED9AD2 +urc,0,True,5.89749,,8foxk0g4zc,1B386E3E +irc,6,True,-36.64747,-90.28,s2qvjzecic,F069E5EE +gch,7,True,76.16535,-50.58,79shgi9ejw,6AE2A34E +saa,5,False,67.32319,-92.04,e5x3eefvp2, +rob,3,True,-65.88132,,tvvcl8g2ry,477EFE86 +sty,3,True,77.40779,,,625B5FA5 +rrq,6,True,-40.16273,24.52,t7rah5vitk,122C2FFC +arq,1,False,42.85606,,,5D86C19A +iqc,1,True,-2.56256,-96.29,vnnfdl2yyg,1526AC31 +nlu,5,False,-47.22082,37.67,4hq7m1jc8k,D6CA29A3 +qzk,1,False,-68.52253,19.8,x1cms6hf9o,FC7C8E48 +dtf,3,True,34.5517,-68.66,qsq9e57afd,A88CF499 +rkc,4,True,-9.68924,-95.34,x3qcvobpxn,91118ECF +pnj,5,True,-88.72309,-28.28,,DDC9F102 +cgn,6,True,-52.97236,64.24,c4nug5oee2,D166409A +iol,1,False,77.07044,,rcn7pqgj4n,745B2D4F +wha,7,False,99.97748,-89.78,riwaiqq1io,97E5F0D9 +vyo,6,True,97.33413,9.49,txtkthtyj2,02663C74 +mxp,8,True,45.9025,65.4,e3unm0mgsn,A5AEADFD +aas,5,True,-36.69735,18.03,etqitbguhh,727815B2 +zmq,4,False,-16.14061,-18.66,p0qtugnnf5,0DD992F9 +mjy,8,False,-60.57324,39.62,p3yndqjhfk,660AFE6A +lbi,0,False,-77.60848,-23.1,41qb4dfb2o,1FAA9B1D +jgb,8,False,17.71001,-53.31,b0n5i5c195, +lfl,5,True,11.50948,-42.92,l0y1r9kgov,0DA71E86 +nav,5,True,-70.33246,22.78,bxvf2ltuj9,36FCE8D8 +mgj,4,False,31.22775,3.73,w2vbrtj4k4,95763E87 +tmm,7,True,24.47728,57.6,92jol9hok9,96659FAE +cdj,7,True,76.60663,-56.46,vq3o7qqbpl, +mfj,9,False,-22.87771,-43.16,x6kz4nb396,B85CD7D5 +ape,7,True,62.99838,92.9,ma2c9tetpb,39442C19 +hxh,5,False,-15.52027,44.55,cpwms559lm,759A0B28 +fsv,6,True,2.66003,55.72,rkasngb40j,1E205138 +ikw,5,False,-2.37686,77.42,xt4cax94o1,5D9E2788 +gqa,3,True,83.86162,-92.8,ajdlur20p8,467DC3B8 +gyn,2,True,47.92291,-86.95,,02F12962 +azh,8,True,-84.49926,-64.94,ggdahh0tyy,896A1253 +kti,5,False,-8.6701,-21.36,gjmjcm3klb,AE255ED9 +iks,7,False,-75.92743,-70.31,qzq3iljq7v,8AE20D39 +xld,0,True,-76.38696,-28.54,effqhztxrl,EC5B4526 +lgt,1,False,36.30193,15.27,,B9A78D38 +kes,0,False,29.01732,-10.4,bhze9jv8vy, +bli,5,True,-78.88921,-3.46,,1B13D1BF +mor,5,False,-98.83224,-61.1,tyeyr9c6bi,1B72F0C2 +cla,2,False,-39.21688,-40.9,07phhmvjca,9BB3B613 +saf,5,False,-80.9573,-8.67,56568ppm24,708CA053 +zrj,4,False,75.74049,5.93,cra33m2r8w,7454B48E +mad,0,True,-60.92135,80.25,abfwbg73re,A3AC8634 +zsf,6,False,33.41822,-61.17,1d8i5crt2l,91AABEEF +bpc,2,True,59.17458,-90.21,56x9ulauwx,6E7376AD +xvm,4,False,63.12393,0.66,x3owncgr2t,D6C223ED +yqo,5,True,69.3886,-71.74,,F3801FE7 +ind,2,False,99.88088,82.85,qndfywpe1z,6A411256 +nsp,6,False,90.9402,-30.3,wj5tyybj17, +twy,8,False,-43.8526,72.05,kruwgjdbki,49FB0ACA +ret,6,True,48.8482,2.99,jk68gpj5at,9C98494B +rxb,6,False,-73.37515,61.33,6ex135vzgf,6CC289EC +xwz,9,False,68.87554,44.61,9vpa7xq669,376EC628 +son,3,True,-35.59182,-17.08,ylt0atw565, +oil,7,True,-53.23237,-11.21,2ezj573g8c,794FC075 +obt,1,False,-86.58877,33.44,sojqcridam,4544AAEA +nev,9,True,-66.96126,88.29,2f5jxep5km,9E49199C +owy,3,False,-30.14988,57.17,mv3mes6bvw,0DDA0661 +spa,8,True,1.38131,78.85,2e5zmp554b, +ciz,4,True,-7.2417,28.69,o2ik4lxh0u,7D43288F +zlo,1,False,-69.62614,82.54,s9ddn93h5e,E86D01F8 +psf,9,False,-51.17547,,rlgf65hzmc,EE136EE0 +ovx,2,True,-0.60526,47.57,ekgsu8125l, +yaj,4,False,9.70392,85.37,l22ojzct8r,105D8BC8 +sgf,5,True,68.98891,-13.35,qlq9o953ft,B416F331 +vsf,7,False,-89.60822,32.47,6uz5hm9uob,26EE6666 +efm,0,False,37.48415,60.93,ix0xn2y5v7,DF4AADB5 +pbg,9,False,5.93441,-81.64,,EB50927D +muh,9,True,-90.86179,23.64,waipxtl9tw,09BC1C65 +fex,2,False,-48.03135,29.7,4fl59b6946,03ADB29D +bvv,0,True,9.87139,84.86,,327986A3 +jky,5,True,94.24795,-60.73,koerthh1tu,4B5E461F +xwj,4,False,-4.32385,88.43,l5o2p7c84a,F2E25EA1 +evr,1,True,35.96504,91.0,7285o73hxz,A06A69F8 +lgo,7,True,-67.30222,2.0,,133A825A +cuu,1,False,2.4846,-98.62,e2t2pgyrdq,188D4ADB +dmb,6,False,18.97557,-86.89,0ovfjz1bvk,CEA8C643 +zxt,3,True,-75.157,59.01,ab8ifk0iyz,496EC086 +hqe,5,True,63.77249,-3.22,8cgjkmxig1,CDE22028 +hgh,4,True,90.46896,92.12,ffbdzkhf6e,187258DA +kkv,3,True,-45.21915,74.44,i86fi7beur,909DA2C4 +kqi,5,False,-22.9301,43.79,jxpm728f4w,9373529E +nip,5,False,-94.62752,19.13,bgw896ptue,BFD079A3 +ibo,8,True,99.17588,45.73,yevd9upaf4,6D96B7BE +lxr,8,True,-21.80782,-21.23,,B53A80A6 +kty,7,False,2.72688,-86.61,2xmyny3eav,390C1EBA +lqa,9,False,-11.87764,-13.11,vf21zuzoyv,0B359D9F +qub,2,True,78.2433,-1.2,, +vqn,5,False,72.95418,9.53,9h1ktegs6w,A06EF36E +zjy,7,False,-94.92759,32.46,go242s4u2t,EE9A5420 +kbv,6,True,25.58453,37.18,fbhtq9sah9,EBC93652 +qpa,9,False,56.12067,-38.83,7cd047maa5,FF3D340A +hvv,3,False,-35.55165,,ip0jekzyg4,F7B1A7F6 +ida,0,False,-6.84963,46.3,z85p17iaah,DB6B6DFE +mxu,6,False,2.04115,-13.3,0me8gqart2,4B3B0F72 +nqr,1,False,66.55527,-74.84,wcdq41uq4w,5B8CE7F1 +vst,6,True,93.26588,23.51,rktwkcdmyv,14D6330E +wpp,9,True,40.57046,-41.79,r2rnmr2qnn,6281429C +oas,7,False,10.05127,11.32,x4353615qi,8808AC04 +axb,5,True,-74.21707,-14.57,6mdvzsg33y,6B99BA9F +vgn,2,True,15.96325,-84.77,,6A9A16A6 +wup,3,True,-13.12145,-2.3,4hbvm3767y,E1F481EB +nul,0,False,-10.28214,5.02,djb00qhr88,58A3B009 +bpq,5,False,66.70364,-7.59,7him7odf0a,E9238695 +olb,3,False,70.58027,45.81,7l5nwd1o6e,E8B4DE0D +ueq,5,False,30.47298,27.22,tdhnrhvgc6,355334F4 +ylh,3,False,-61.79881,-71.69,8uj7jo8k6m, +rpv,3,True,-20.51335,11.83,9ydntfs46g,D0A3499A +wdq,3,True,-23.27379,46.8,p6s1alucuc,B61F459A +lzc,7,True,-54.18772,85.11,58f8pwbhpa,E45398CC +jts,9,False,55.86639,-93.68,qoiopmb7jo,DB4AB72B +ytg,6,False,-17.53628,-87.05,dng77o9vll,94B07D45 +qfs,5,False,53.51674,94.22,61a2lo9mh0,44150CE5 +spw,4,False,-27.30119,-87.6,c3q44p3s3a,E3EE47D6 +xcf,1,False,74.55488,86.79,xdscgceu0b,8E9039F0 +sbu,4,False,-47.16689,58.32,110umvme0g,3670040A +neo,4,True,-66.62952,,cepa26klzq,5A66EB13 +qke,0,False,-28.28837,-38.9,l55gfsxs85,33FC32E3 +hoj,7,True,73.82056,,9gnswp6hjz,00830D10 +pxs,4,False,83.61129,-82.44,uev3dhsayj,D3E93606 +lcm,0,True,25.65096,17.37,,2F975B15 +rab,6,False,-82.59863,31.66,5hcqhk5pkv,F660D0F5 +rft,3,False,32.5734,-43.57,,C85CFEDE +itw,3,False,-98.56703,,17ul3txkzl,C5A6E78A +wko,7,False,-58.63406,49.78,uh6lsc6jhu,ACA0A545 +emt,5,False,9.64843,-62.77,6rdrrqv68a,D9D876F7 +ffn,1,False,-13.57523,-33.98,t0qitc1kfj,11B30867 +hqa,3,True,79.21453,-25.91,qyrts027qm,F2DFB139 +fte,3,True,28.61306,,6zure88xta,CDA1D32B +kia,1,True,-76.37449,42.46,kvq5vsintk,CF57D129 +fhh,4,True,-34.86994,-83.99,67s11izuji,C63CE3BD +ztw,0,True,8.35966,-89.56,30rc3vijve,D4451A41 +nss,1,True,88.18682,90.46,q55libqsl7,58078759 +heb,4,False,-9.90605,-25.66,mnkxx7pgh3,7048D6EB +avm,5,False,69.8761,-59.11,rfyf8zdckn,D7E43271 +eaj,6,False,57.10034,-2.53,lbc5c8gu2e,200A63C1 +yop,5,False,39.73903,69.57,sy9dd0dneq,C6F4D392 +lwb,5,True,0.30274,52.89,t581pgh71u,6EC400F9 +wdx,9,True,-83.23792,-29.61,bqr5xn3h4u,01FCC01A +rzy,1,False,-65.26983,75.98,yjcka89qmq,878FD395 +uaj,0,False,-8.88914,-15.83,5xvnbj2qy5,E715F26F +swa,9,False,63.5482,39.28,f1sf6912i2,81E4014C +baj,9,False,20.67451,-9.35,,631E0276 +mxp,8,True,5.90118,-48.85,yw6fehuhbl,493CA5D9 +tve,1,False,26.93163,88.03,wmxaeax5ud,9BAE1FCF +zeu,2,False,-89.50896,49.03,72yzjwrxk9,6378C2CD +zmt,3,False,-77.14177,-53.64,,A136E726 +pfp,1,True,-45.18051,-90.7,26jz18tyfa,2F78E6F6 +yfx,7,False,77.30594,,l2nfubkf5s,C6318245 +fgw,4,False,31.61694,-71.99,blb3t6xil7,5328605F +aer,5,False,-24.16299,-55.83,f6vk3lcvmn,4DA5B178 +hmo,7,True,86.08875,-60.02,, +wxw,9,True,53.38694,22.5,vxpjo4o7en,0FDFD0A0 +pps,7,True,67.76563,38.81,cbg1290859,9ADDBA2D +ede,8,True,90.9388,67.48,,10C7B7F8 +dcc,3,True,-32.88491,-63.95,aneywgvrai,113D69B9 +oro,9,True,43.86074,53.85,5268thb5dp, +pxd,4,False,-71.55737,55.19,3fkya6d3gg,50765D67 +dgi,7,False,26.53245,-37.21,jzsvkfbuow,8881BE58 +gpd,8,True,66.40067,-5.56,epjkdjxwv8,65E90D50 +dqy,5,True,-45.15703,-98.86,, +ute,9,True,3.66678,12.26,r4esxi4lee,237165DB +arg,0,True,-50.81595,7.72,mm8ya2vkva,B8DEEF7E +kzu,0,False,-77.28254,-9.84,wak69iy46h,6E4A104F +tfe,2,False,-54.58468,7.31,qjcuarsqv6,8538AECF +vbx,9,True,-43.60423,-89.95,32v82rv79v,CD39164A +szk,6,False,35.29278,-79.04,0f3vqdjpm9,8822083F +zff,7,True,-7.93337,46.32,,66B87893 +yts,7,False,-37.99356,-29.64,jenvtnzkge,2EFBB710 +ngg,4,False,-64.88893,18.11,b95op727hv,34AB634D +yqd,8,True,-2.63248,-75.89,gmmcyffn68,58233B7A +eov,5,False,62.49325,-27.26,u1thf1rxd0,40EC46B5 +mrh,2,True,7.04812,25.75,zpw2bupc16,7B209910 +jrk,9,False,29.93257,78.8,7fcadj1y6u,35B55FAE +fil,8,True,16.95734,15.82,febzjfnm13, +pcd,0,True,1.23991,-4.2,itkqneaivh,25903A1F +kzt,6,False,90.81407,14.73,9ka6ilomya,74B9D696 +rmg,5,False,10.67224,56.9,26om1kbnfh,2A163349 +qmm,9,True,45.35026,,4wr2hxuh7g,2B4AB728 +omy,2,True,4.38692,-47.68,tm9lryqrlg,79A5BB5B +stc,8,False,-89.9244,-26.13,dy30itjd2u, +ubb,0,False,31.52556,-66.68,7ir2qhrhky,D6A5EC5F +apq,0,False,-6.49372,-94.36,ulh0l5z5w4,2C6637A0 +bbl,9,True,56.04088,-30.1,aqw6gur535, +aqm,7,True,-26.81547,-69.16,,BD207F24 +ibh,4,True,64.63794,,66nkyi60k4,15313023 +mxw,4,True,-25.70751,-23.53,5ytldlrurq,A9866A05 +lol,3,False,-27.7025,-93.41,p6kcvz3uvv,2A5767CD +rpb,3,True,-51.57934,-58.27,bsdz8mzwn8,C0773CBC +yei,3,False,-66.42693,,ifd9td78ne,CCD8CC1D +pyh,0,True,82.93933,77.18,pmhax3kgv6,AB51AB2E +oco,8,False,4.61848,72.39,,B1750200 +kqb,8,True,50.91745,54.94,srobpxiahx,EA3B9012 +bez,5,False,-42.25141,67.33,kimkv8cz8n,97DEE225 +els,3,True,5.7387,39.72,cyardnaytu,8F54AFDC +zvl,8,False,-92.07356,,mpzgv3tdbx, +nfg,9,False,-96.7938,-63.11,,AE8C754A +otl,3,True,-9.806,-86.88,q9pkaojind,C59CB2FA +vcl,5,True,32.35637,-58.05,fnmcfko8zs,35FB57D0 +uhp,8,False,40.636,-74.92,v3cch1qamp,098F9D4C +ehi,3,False,-94.60442,-55.38,x00t4fo4pz,4BD56641 +ryr,0,True,33.5246,66.0,,E225E153 +kax,6,False,13.7325,51.21,k7f88jbl59, +nsr,3,False,57.00291,-64.62,,70DE6B41 +smj,4,True,-66.77003,80.52,k98e11ab37,F70257D7 +wmf,1,False,52.81413,39.13,eqel3prrgu,B1327702 +xks,5,True,55.39571,-38.57,48x6z9llbf,97B2324F +tuq,6,True,76.58753,-99.51,03wmis5gpi,5F29BBBF +kbr,5,True,-54.25355,-85.7,1nl7csl3td,4079F023 +bjo,9,True,69.08832,52.59,mi8pqltptx, +usa,3,True,65.11766,-66.2,a2n3c8e48e, +xlm,0,False,71.29284,-34.32,fc9fogmkpm, +lso,7,False,28.97712,7.36,bjmhcw1g5l,73074804 +vhc,6,False,-86.54989,,1oiq5o45y2,D969853A +zms,0,True,84.18677,-98.88,lbi5hmar8y,9FA09FEE +thg,3,False,-2.64887,-54.01,03xf5pg59h,184F4524 +cmq,9,False,-71.88024,24.7,74qwlf5h0x,448E1106 +euy,9,False,-50.61329,-43.59,u944gkn4e7,4C352B26 +cgc,8,False,23.18124,46.06,cmfp373pu2,01821F0F +ozh,2,False,-82.20213,,b3pn9uxpfk,EECEA239 +keg,7,False,27.8265,-30.39,b2u7679bsw,0CB95BEB +lww,7,False,29.59755,35.8,,9187016E +chh,2,False,-4.02708,-86.48,tixgdqj2l5,CF6C3895 +qdh,1,False,10.38506,99.27,zgj5tradcl,89FEA178 +iih,7,True,28.73673,26.15,jc10yydbi1,CBC7846A +smp,1,True,-56.2787,,ccsny3jli2,252A4294 +opt,8,False,99.79542,67.11,tzfhrw75t0,28A26D54 +bvr,9,True,-63.44952,-97.7,,80549165 +dif,9,True,38.10709,-55.26,zpdl2sv0tk,A1D92DDF +zvi,8,True,34.62928,-69.03,45905lh9g3,C37959EA +npd,2,True,24.5612,,gsts7joqyg, +cuz,6,True,-41.02656,-4.71,4mmh2ewjwz,94695AB9 +vcp,0,True,43.36769,,yd3wdbfqg1,C724D9EF +xek,2,True,-86.5086,-86.05,4bbst2b08l,BFB154E8 +zpz,6,True,91.21403,60.55,,A0D4E043 +ajq,2,True,38.41157,,,800A9669 +qnv,2,True,-30.33921,47.18,jtfeedljz5,9615457D +liz,2,False,87.61015,-84.83,r8f9z80ltz,89C4E193 +hvx,8,True,16.7548,1.86,3quln3xs48,9BBF5ED7 +ahf,4,True,-85.07269,64.58,plez8ey3b3, +kom,1,False,-64.1059,89.07,7ibw8jlcef,C83AD81E +cnu,5,True,30.057,-52.75,1ynu5qtcye,0321A2EA +cwz,8,True,82.68011,17.17,,07681F9A +yxv,8,False,84.27675,33.61,spgiivh68x,EE3BDB60 +oyk,0,True,-81.43216,-56.09,ktrbgfl3zk,2BE74D35 +hjd,8,True,-33.5654,9.69,ea4ub044ei,D3FB9747 +cjm,9,True,43.92477,69.5,pz2ykzvmnj,99230D29 +are,9,False,17.14767,-77.02,48kz00c2ql,E9F11060 +kwb,6,True,8.61134,-55.92,2wzjh2em6t,992D589E +fix,5,False,31.62757,21.98,ttwkceulub,3686393F +jtb,8,True,57.00079,-23.36,ilo9wqbk7u,3487AED7 +tlu,3,False,-62.90244,24.69,bollqe2lqq,15AC29BE +smf,8,False,3.69097,,d5mjad2ukg,85F85F78 +gxu,2,False,58.19319,-91.43,5tqm9rxzx4,F6AF9A3B +fmy,6,True,-71.12289,-38.45,,561B6051 +ozb,9,True,-27.54352,52.77,v9q62f909d,04BC0527 +ulm,1,False,16.92848,41.26,8hw5mvi5j6,A51E851D +mtr,1,False,98.08293,83.4,i700xuxkid,3E938F79 +rmu,6,False,92.24571,,cgqf3qj0tp,ED26BC9A +ovg,6,True,-71.87614,73.48,3ls1k028hb,B04E6E8A +sst,0,True,-97.30521,72.03,jlc0qpgf65,9CC599E0 +oil,4,True,50.6744,31.39,kpzsubaeop,36852326 +xqt,2,True,98.17156,22.18,cep2piae48,599201AD +nro,1,False,85.102,75.19,oum6lodsoa,610E403E +ahy,5,True,1.12121,-84.09,do1wwk1vqm,9D135AD1 +huj,0,True,72.63254,-65.1,6x89p335wb, +ynb,1,False,83.72517,,jbg8q49j42,EA7DAD86 +wca,2,False,-71.22631,50.7,xxbheyz4j0,39B79FB1 +ncz,9,True,-14.80357,,5eoe118uak,80EA8696 +luj,3,False,-21.09201,-57.5,7c2e5zgv0p,27BA28B3 +bze,0,False,20.04825,87.52,lt918qc7cd, +sxy,0,False,-68.65528,-85.56,ckzw9leueh,CB1B3981 +jhm,2,False,57.79429,85.0,3t3dcb3e92,8532CE06 +iko,6,True,9.21942,-72.1,fnxau8wztr,2AFDF3B2 +kmz,1,False,-24.5956,-34.03,481wdg6mv2,B808A6A2 +usd,1,False,69.53682,27.51,r8958rmwus,557D39B6 +fnz,9,True,-9.29617,-44.51,zjvu3i8rbv, +nbb,5,False,-69.34399,36.66,1k8jzwixl7, +dko,8,True,-61.88146,-28.98,pirwetq18e,4ABDFC57 +arz,4,True,45.53008,-47.05,3e5t7ceo5q,63455AC3 +znr,6,True,-76.29027,67.91,,205786C6 +ocw,9,False,74.57492,-31.79,yludzhjq5r,7C92C726 +wly,1,False,-64.08998,-12.37,q27u3t0zb3,31CEF805 +zvh,7,True,-2.68177,-85.95,25ypxzu9fc,9171DF7F +jxa,6,False,48.99783,-46.99,m484sw5m2x,CCA61FB6 +pzr,5,True,-35.24207,-8.93,4ivf74dij0,5494CCEC +ypo,8,False,60.97628,,8s7zxkwtov,A592B21C +znf,0,False,34.05428,78.24,,CC92A555 +jbp,6,True,94.63689,-39.0,cy5vlppfd3,59DF0FCD +fiu,6,False,83.83062,-61.29,7mrppupsos,AC4F7C09 +fds,3,False,-35.71487,-74.98,mp46alpwmj,B400B6C9 +oky,5,True,12.62777,39.4,ilvddyoric,A02D5281 +wao,4,False,90.61441,-83.18,9eknoj4sun,142842BB +rkb,6,True,46.2359,83.8,rigl2ytyes,04BFD17C +hxb,7,True,17.88569,-52.77,bkksey2p1l, +etb,4,True,-16.37062,-79.01,ma1ry29pqt,354CA28D +qtp,4,True,51.88088,66.1,yvdne11e7d, +ose,9,False,-1.40633,38.54,mgkqngeiue,C719133C +afu,7,False,60.6491,84.62,b68tsys78t,A6A4B294 +izy,7,True,78.02229,-27.05,mce91lsx3s, +bjk,1,True,-54.91673,-53.03,pzj3ve4fbb,79480810 +pex,6,True,52.0666,78.63,l4gre6eau3,34AF4123 +wac,0,True,40.70219,-73.87,5gzx1ptj2z,1182EFF4 +qdw,1,False,80.254,-15.31,yr2q81w6gj,AF44CB7D +lry,1,False,19.14539,72.9,ixij5rs43u,287FC982 +vqf,1,False,-33.60833,-61.36,319wmip324,6F2A1C92 +ueb,9,False,-53.08157,82.79,p84nf1para,A153AD9A +ifd,1,False,-60.79357,87.18,,FDBB690C +iva,2,False,74.57895,-38.41,pxtdd6tcms,3B637AA3 +xbe,7,False,-48.47414,-23.68,rv6wahzynw,BA7EC629 +nuo,5,False,-17.81764,-31.46,mr0q5rotwl,BF959498 +xiw,8,True,5.2958,-33.46,911qrlbdrf,D2D1BE59 +ynr,8,True,-77.61382,95.3,1ijjxcujve,EDFA840B +tsa,9,True,-69.60648,53.68,y52il0bgq7,4DD91329 +vxg,0,False,-27.25504,-1.3,578n1dcbid,E95C8483 +pte,7,False,50.19841,,nvzhikw2bv,0C16DBDE +lhn,9,False,-59.35915,47.57,mghp5bbbym,EFA71709 +ess,4,False,-84.98782,-67.75,mseg7ax54w, +ajm,2,True,-69.16065,-33.76,nlucg571e7,E99D0CC1 +pxt,9,False,-74.90797,,m7118m1bht,35D01B31 +dkm,9,False,75.3117,61.59,idd5x48mzh,1F9085B5 +oza,3,True,88.31228,30.45,2acqsfo4do,E0884C8F +bus,0,True,91.82746,,mf0ur8ek2a,056F7572 +ekf,0,False,43.96691,-70.45,,BC97A436 +fmi,4,True,51.61836,15.33,z64y91jw0d,DBE555DF +zsj,5,True,-44.74436,40.49,4jor8l337f,AE2C23ED +zrr,9,False,32.49991,,8z2i9zqis6, +dxe,1,False,-59.52555,,fiymm5b7zd,900446EC +bdb,2,True,-36.81324,-41.39,u6ogr7g8h0,42F5845A +vlt,0,False,-70.60346,-47.38,9u6rcqz0yp,9F948F85 +aly,9,False,43.75318,-16.02,s9brd8x79d,DA7B5EF5 +tkv,8,True,-60.05449,62.75,,1061B92A +sqc,8,False,-11.50271,57.3,c9txfnv77u,A9256C48 +bxs,9,False,-45.18183,84.28,,62978454 +skr,7,False,-21.28067,-36.08,3f35zgtvjx, +uxe,3,True,-87.37527,-0.51,6u04qklytm,7F3CE0F5 +osf,5,False,-52.40419,29.71,cxnu54kr42,BD7554C5 +nol,6,True,28.41636,-38.11,uzoxpx53n2,4A7F393C +sgg,5,False,-73.47468,6.46,,D8BC662F +did,1,True,-70.16928,-97.87,wizxm33icw,BA1D6067 +xny,1,True,-43.23606,10.45,uwmtpn1x74, +vhh,0,True,-16.20828,-47.12,0jf6zemvn6,7855441F +hln,0,True,72.21059,8.76,jv2pwi46qk,161308DB +bpm,2,True,31.66676,54.22,orol662wrt,8C9560FA +kfc,5,True,-35.17817,26.78,kf77lsuet7,3DF4DA83 +tao,6,False,25.55005,-4.4,0emct0tb2d,7D376C8C +phr,1,False,-5.06718,11.01,qsghht7cvv, +brr,6,True,33.07002,26.45,2xexm9lctn,69ED75C8 +ica,5,True,61.96297,-77.29,ccwfdz0cpf,00187C5F +foq,9,False,61.60029,24.88,q33yqcegsl,1999E3D9 +xeq,3,True,29.44384,-39.31,dvnxav7d94,08373687 +xya,1,False,-55.59807,52.17,i5cfdcz8tm,D388B881 +rvj,0,False,-59.50269,16.0,zjwoxrwx27,353D2C2D +pkc,5,False,71.07812,-59.3,0u84uk90go,94E92DD2 +qlw,8,True,-30.08134,,oyza7v5w1p,A4F706B1 +vpn,2,True,-36.55397,-36.26,ac79yz8l7p,4980473E +gfw,5,False,-43.39455,23.17,ekiucvf180,962DEA9E +pnz,1,False,-33.18765,17.88,f5,C230DD60 +fsk,6,True,-69.42736,-40.96,nu696crq1g, +oyi,3,True,-92.40619,-87.65,abq0s4fmr1,B7F9E6B2 +txe,3,True,93.18332,37.65,setp295gjvbanana,1FA0E84D +uqb,9,False,63.79064,-95.85,vqmhwk2n9o,FEF6E7D9 +uur,2,False,-5.89696,97.39,1gshxyxs21,645C3035 +yfl,5,False,-1.83678,-56.1,,9315791B +wnk,4,False,-43.91687,-3.63,1oer2hdlx2,1C1D2F60 +tka,9,False,-51.13035,4.57,997787t1l8,12567B3C +nlt,9,True,-23.15698,-33.08,906qxsn82w,10D8F565 +big,9,True,83.20836,-46.26,1v97y1wrct,02875171 +tma,1,False,-50.46683,-80.26,wabdoh5eju,DF215C07 +twn,9,False,62.01419,99.7,vpxr9g3wpd,DCD3DAE6 +uff,5,True,18.61745,,qsiv6nwz5c, +zxe,9,True,90.84318,-7.25,3h86r4z691,000BEE37 +tdg,0,True,-28.75455,,8kx9nv36j9,4266EA70 +uco,7,False,45.63886,95.27,njek3s0l5s,FC5D4530 +oid,0,False,-34.35828,3.48,,967E6445 +xxr,6,False,-57.98409,-52.46,j3d0gfobug,4A21F69A +ddu,7,True,-56.30325,,y9egr991yp,644BD4C3 +oge,0,False,96.16464,51.11,503vc8mywi,18984C4A +vfi,5,False,56.40613,,1m778es1ap,AF66A96A +ubp,9,True,-80.16504,67.44,9w32dnwadb,8876B3F3 +egs,6,False,55.29531,-51.23,, +jhj,1,False,-39.30783,,4ebs033cmm,25D1CAE3 +ggo,1,True,43.33992,4.94,mpraf9jvc1,420BB1A0 +zmw,4,False,-8.03866,60.77,sj6ic7f17o,09611FAE +osz,4,True,-76.3782,75.17,67d8bvr0li,858B2D7B +kly,0,False,61.7322,11.77,1v67i18lqx,B897DAFD +ttn,9,False,-12.84896,27.98,at4mxffyao,20D92FF2 +cbz,2,False,13.24648,-66.7,zi16iya574,7302B663 +tdv,3,False,12.65993,96.6,chum2z3rjf,E670B03A +qdj,6,True,-95.77681,-22.25,yjf7vg6j47,3001415B +xfg,0,False,-53.91151,14.7,hhs8rdrrp2,148632A7 +pwr,5,False,97.70842,-8.69,,55027812 +abq,8,True,-63.09153,,tuhuvs1zfj,CA216F1E +rzv,9,True,21.60467,-99.32,eyhs9ilyfo,EDD6F907 +xro,4,False,48.97661,88.12,b4wzyt8t4e,31A02A01 +uky,9,False,-57.89649,82.08,va7zqop67h,829973BD +cit,3,True,-32.50687,-69.81,latdzf57qn,A3D30A2B +fvy,2,False,51.50429,,brsylk3daw,B025501D +jhy,2,True,-11.27872,2.22,owrggtw57r,41A640E8 +ktm,5,True,-92.23521,-5.62,23sy0yp0y5,B65FD51E +nyl,6,False,-81.12669,75.9,ikqc1viic3,3C5F75BF +ycv,5,False,96.63547,54.94,qsk2lbg568,CF4CE5D9 +ifi,0,False,2.09051,-2.0,nyonwqzs52,62EA86E1 +xcm,4,True,23.04219,-8.38,wufr652bxu,D2050C69 +cku,4,False,39.46513,-39.11,q8u281ccdj,4C20C6B3 +thm,7,True,-77.20827,18.45,g7479ykveu,51BE4CC8 +gxc,9,True,-88.0775,10.83,nfs3o5ggqc,DB19DEE8 +ybp,2,False,-44.40618,-99.62,wu8rkxk6b3,EC0B5EA5 +kgv,4,False,-44.52101,-1.2,uszi4iid5n, +mlz,8,True,-26.63751,98.48,wubl1hypt5,BB0EC0B9 +fbw,3,False,-0.48326,-60.89,f0widbcq8o,41250E9A +onx,7,True,21.94169,26.87,98jniuhs0b,DEDCEC4E +ier,7,True,-75.50378,-17.31,bme4cf40ig,3C517718 +nie,1,False,38.58483,-57.9,,EE93147B +kui,6,False,-52.1855,-65.46,4cas6c5gly,84FF203B +iqg,7,False,51.11937,,,181BF5A7 +emb,7,True,43.78603,49.31,o6h7b3x0t9,5F4607E9 +sui,2,True,-92.21598,,fw7mdr2j6a,5D5DFD54 +ljf,0,False,50.07721,-75.96,1g43inzvqg,61D7C6E3 +uow,6,True,-0.09718,82.35,w8m8sya2u8,6C34FB62 +swx,3,True,28.09061,73.77,hsd7y6x19b,D66DFD14 +yxe,5,True,54.14532,8.51,qae21popw8, +idh,9,True,-85.87769,23.61,21x4dvy54s,5BB1CEEC +egz,5,True,29.03006,65.49,znlz1s0h93,3B75D8F2 +nkv,1,False,-77.41732,79.99,1nf8zf7ctk,A1F89A19 +aqt,4,False,-45.90184,11.54,pqanmlxaqk,3B8C9644 +zuq,4,True,8.77817,-45.92,t1jurlcbin,97CA7FAF +kmm,2,False,92.9793,66.07,vsw8zlw89o,E2433E24 +wvt,0,True,48.92645,-98.04,zyu8fyzxpk,0E53B03B +hxb,1,True,27.18324,79.36,,18D38B10 +sgg,8,False,-2.92908,19.15,,C00CF099 +rav,0,False,-29.71103,-98.4,m5929f56my,4201258E +nhr,8,True,-4.15066,-19.02,r6et1u9v0x,D0E2BA34 +ale,7,False,-2.68823,12.57,ofq1jwfren,456B9CAC +fls,1,True,79.7576,55.7,enlk4s8m0o,321ABB50 +sdr,6,True,67.0676,-75.25,3ip10vc7nk,C7E80456 +cjh,7,True,-39.64134,34.09,igzvrff76p,12B51137 +qhu,0,True,-77.38442,,ks4qmxiyhx,43104246 +kci,1,False,-66.82811,16.58,,18A1A536 +cup,4,True,63.25517,-29.82,3nib37zyju,7A494C5C +iay,7,True,21.71367,-21.2,5zuczfl6bl,23BF1157 +wlg,3,False,18.62536,-81.6,mlixce01wj,777B1C86 +uov,1,True,66.94991,96.03,03ox1dm4xb,BC3B5C77 +lyv,7,False,-60.63825,-89.46,8fdl5997yw,9314C9EC +ebk,2,True,-12.5096,-50.75,pbhv34z6x4,BFF920BC +cwh,7,True,-91.69605,-97.47,,6AB609D8 +poh,5,True,-49.94472,-42.05,qkfm3f9i44,5268CB31 +biv,0,False,-79.17659,-55.52,zy1eehk484,777B3BB6 +khf,1,True,89.55267,89.09,oi3w6btl1l,D938AB0B +pgh,0,False,72.50007,,1eyde9ndp4,F0460BD0 +ban,4,True,57.62425,77.08,802k9wmpst,238B7E0D +vxl,6,True,7.77932,-10.92,qr526i9bv8,7770B1C0 +zku,1,True,27.46983,55.99,4uzhlutw5g,5E386AEA +jio,2,False,45.67745,,5qoqlib8yq,4A43DEDB +cso,3,False,76.50324,53.27,56hx6qvrd3,2AE65489 +ntv,1,True,19.98801,,2yobvswtws,A5E3CC20 +afa,6,False,57.89799,23.23,zocv2r00qg,3B68C6A9 +qvk,4,False,-95.68697,49.09,6nubd146lx,C3B77D41 +sti,7,True,73.95248,9.05,le06at0mux,B5D8CCF7 +rpy,3,True,79.76492,88.99,1arihm5n2b,65F5BBF5 +cet,7,False,10.66807,,8ifc658ov5, +pzk,8,True,29.1471,77.56,qnuou05j80,03C4512A +zdw,0,True,81.84153,30.62,zjpoj0cxe3,9D14A88B +fmm,2,True,-19.7626,-29.91,wqh61dgodq,AE0185CA +msi,2,True,75.80076,48.86,34mxr0u47b,1B0861E1 +ytq,3,False,-12.49261,-79.09,lbvdrktx8r,72086940 +osz,8,True,77.76326,62.41,,E2241A52 +jca,4,False,-58.12272,92.81,topjomk1rf,AC45E689 +eig,1,True,-49.60516,55.8,kp5sttwle0,FCB63A89 +ymf,0,True,78.21799,-15.6,yivydsr13x, +gyw,5,True,-45.15477,-84.68,1gr0a5e1wn,9B3C2341 +zeu,1,True,47.18541,99.22,p0nbgekytq,293EECB8 +zac,4,False,60.31202,-95.69,qvsv51nvfd,764A28C1 +zkn,7,True,9.1432,75.21,awv9a0gh6i,2590F9AF +ihw,2,False,-36.36162,98.95,3yi9vsmng7,734057BE +omn,6,False,-38.43365,69.25,2gqw79wmyi,FF3CA472 +uji,7,False,78.80789,22.32,0lmzwyyxq3,17CC385F +ojj,7,True,-63.79456,48.58,v3267uqv71,FF9EB335 +ohm,4,True,82.31478,37.82,,F7A4AEE7 +ubb,1,False,-2.15428,79.32,8yee91bzqn,398DA6CC +pwu,9,True,52.73526,,njzhv1ny22,298D8544 +avt,0,True,82.75537,-77.72,lwoly4afuu,A65F8D48 +nog,0,True,25.5077,81.74,skva7ubwtu,0AF519B0 +uzf,3,False,-37.45342,46.96,0fakxbqw3p,1B42226B +nsb,5,False,-83.32739,-11.04,6qa6abozgp,1530B1B4 +gdx,0,False,-20.53858,-43.03,39garfacno,C1F12A2F +xsn,5,True,-62.52122,-29.33,,05C30604 +ssg,3,True,-66.04451,83.77,bluzv6j1en,24250F00 +tqv,4,True,26.3071,75.42,vaj6jbbi9i,87B21DC1 +yec,5,False,17.42513,49.95,tw5j612nq7, +gxu,3,True,31.89877,,zsnqb1essn,63F64F0E +crv,2,False,-34.82739,29.59,,80F300B8 +jwx,0,False,-25.37211,5.67,3ypcqx0zzz,B05C6D2D +mpc,5,True,91.0175,,rij5au219x, +kuc,6,False,-61.6204,94.31,mxu3n2dozc,F0A9AA92 +dsm,4,False,79.75471,90.34,,1A25CFFF +scw,3,True,-32.03755,5.83,1jwik0qlst,9EC8D33B +kmn,7,True,21.97098,-27.15,kgy1et5oog, +hsi,9,False,94.99754,,rsrsnf74d2, +yic,3,False,33.22367,,upc2j5yme5,773EB803 +uil,1,True,33.61466,36.9,1nary8hhjb,2486313A +itw,0,True,2.55045,18.31,38xe7z3h35,BFDCB854 +fjc,1,True,-13.60177,91.74,djypdfzk69,E2810403 +pem,4,False,-49.37276,-4.13,, +mob,8,True,-93.15954,,yrpeps4clg,B99124BB +hzt,3,True,73.16565,-1.85,p7rp3ibaiu,A62D3327 +azk,5,True,-31.3236,,oibhzqied8,0C3ADC4D +dfo,7,False,-81.49706,80.0,mxtyghliho,E2A4F3B8 +dvp,8,False,2.1232,6.07,38yjg0adh8,EC21E2B6 +vkm,4,True,58.57701,-89.18,zwcbmz553w,D995CD79 +woy,3,False,45.07447,72.18,o88syjqcei,E2C84C7B +vsj,4,True,-90.99003,,8eanii21un,8AB0FB8C +xzo,5,False,12.18731,-41.72,8wny7ad4vi,5446D3AF +eyj,9,False,26.88508,-92.35,vj0yggn2i9, +mlk,8,False,60.64564,65.75,fpy83jfbg0,06A41C42 +nuf,4,True,44.65806,-54.0,zfq7js5q12,73C1848E +hyu,8,True,-2.08434,44.02,i9p5eoe39y,81B2F798 +iim,5,True,6.78376,15.85,vaenwtzo3y,F7634665 +zpe,2,True,-30.6211,23.55,68wbgs85er,E25F8AD3 +bav,5,True,-26.02368,-85.1,vw2wu3cru9,9E82CE08 +hjh,1,True,-66.6876,59.78,qgx5bclbvo,A2703687 +euk,5,False,1.09581,-43.7,,2D03BE8F +lhl,9,True,93.88483,8.1,k2d2vua0t2,7ED90768 +fcp,6,True,21.62914,-66.53,2oq0e24znj,88DD7648 +dxh,8,False,-48.12023,41.32,t7usyyu7dp,0E5EC9F5 +xiw,5,True,68.3986,,7ly1wdezwy, +pbz,8,False,45.59258,93.94,kw1bwsngb9,BC5E6DDD +zpn,1,False,0.90028,29.81,wbwon6ty6x,6363544E +chh,4,True,4.25379,71.75,u3ksz8k77k,73AC21EF +mfr,7,False,9.58708,87.15,2tjqsn0jrd,3FCCE1BE +yug,5,True,2.5101,-99.41,xwov7b4vwy,ED0D93AE +vpx,8,False,-67.86961,-2.8,xgdt947l4t,DE2B15B1 +irt,2,True,81.67032,,sd2h10zt8y, +gne,5,False,-7.49011,-22.24,vqlrv4t5ay,F8CA8F94 +jkm,1,False,-48.04894,1.9,xnwvyo2z8z, +kzg,7,False,-2.39279,15.79,0bv5a6aw57,ACC383D7 +gpo,8,False,-14.19036,86.52,gbw68fne20,C467F1F0 +sqa,7,True,75.35368,62.63,ub9y21ssw2,591B6D5C +csj,2,False,97.23382,-78.35,xziyzaj1th,66A07750 +qfg,8,False,81.57174,27.29,,A9F8C900 +xnu,7,True,32.79433,-83.71,83103uytvg,4D6CE1D7 +unj,2,True,48.23971,-48.87,e110w0hb1o,CCF22502 +lfx,3,True,-99.79122,75.74,hllcnsartt,1D436DAA +ivt,4,False,-6.58217,,rv0oijf9pf,20A63652 +rxm,2,False,67.59134,22.77,w2gg644up8, +snr,0,False,-97.46399,12.32,4evjpbz2kk, +ncr,9,False,-14.42722,71.13,p7kjiulvpy,CD7C6AA3 +jzj,0,False,-47.17335,-45.97,ejhzcdkpav,B1F90BB5 +gpv,6,False,-65.20355,-0.59,0yiswmtvoc,62E4A10D +eql,7,True,-41.32277,-9.49,qensonm9px,34312B42 +ycc,3,False,-31.71999,,,695D3784 +wds,1,False,-72.50856,77.79,9wxicync0w,5EF781C5 +lde,3,True,-97.24493,-20.9,rr5p5l12za,35ADDD0F +nnc,6,False,35.82351,97.09,,C3413645 +kqo,2,False,-18.03892,,vsxn6clnwp,ACA524FF +xuw,8,True,-42.74766,94.33,j3ps11wk88,1808EF00 +cug,2,False,70.20062,84.81,t4alcuu338,068BCDCA +hlj,7,False,30.47874,-24.19,xd82mh4mqg,849C9808 +qxj,3,False,84.11289,-79.5,ojbbsrcfhj, +nmr,9,True,72.8747,-85.74,t2cdahjios,D04D1244 +aph,8,True,98.06771,-58.62,t33ycg5h50,4B086A10 +tyl,7,True,86.22769,-10.37,m2jb41lnlj,A0D8A576 +gwr,0,True,-7.07582,61.46,ebfuh0fvpu,950CD914 +xht,2,True,23.36874,39.49,uut5lknrgh,02FDA131 +zbm,6,True,-96.13566,-16.66,ub0ka0o5mi,0B61A52D +iiw,3,False,-16.95968,,,2DEAABFE +xul,7,True,-29.04755,,yfwdmvwzvu, +fiz,2,False,-37.33773,43.26,,0DA298E9 +xzu,6,False,31.96355,-55.9,cwhmhy8h6t,EFFDFB81 +dlo,3,False,52.13107,71.44,2oync4s56n,3682053E +woq,8,True,-87.52985,84.6,rnb74djtgu,075E14DF +iec,0,False,-85.39768,-15.65,awwqkefv9t, +jev,7,False,70.40184,-38.41,3f1pcl7p0u,1C474DC6 +pfa,4,True,31.14952,43.97,c4otxyw6ak,43A1687F +lqg,6,True,14.14917,-38.88,4mz8y6o4ep,07A34E20 +tjz,1,True,34.67551,78.26,4t8motyhmj,13468C06 +yuq,4,False,-76.75206,-14.45,ro86j3q9rx,044D8B1D +hwl,5,False,14.51823,46.14,3eggk8ua5w,96168C5F +mcb,2,True,12.85446,35.48,5hoq7d6je8,683F5E37 +vnr,1,False,17.50122,-2.11,2s93rwwotp,61BF8037 +iru,3,False,-32.6677,21.54,dqx7gsooe6,115BA33A +myv,9,True,25.02241,21.22,7o7laaguyk,536C6E7D +wyn,4,False,59.66911,-82.31,,D6917A2C +twf,9,True,61.06546,26.46,xt2sf4l69w,1832AD41 +ubq,7,True,-76.89586,-3.03,r70d5v8wq5,BFE2DA32 +vnt,5,False,-64.70473,69.28,nn721suo8i,D29473B7 +bmd,7,True,65.87463,0.73,pwgdu2yked,5072622A +efr,3,True,-8.17232,-64.75,ko3cx4wt3l,B66F5EB4 +fnx,4,True,51.60942,84.14,820jokx8qc,3EF13920 +oxk,9,True,-98.36806,-82.29,up44l94xq7, +zhy,3,True,4.46205,53.56,2rnbvz0kd5,6FB53B95 +luv,8,False,79.24643,-91.05,au20k1gacu,AD3CC59B +rzi,7,False,53.0597,-34.43,ajgwstssic,3FFCA8BE +nte,5,True,-62.39618,94.48,8c6p28pnhl,DB6F5D5F +tgb,8,False,-20.14923,-7.42,m08ht5lz07,B5F8B7D3 +ldd,2,False,-76.06569,91.08,iez5zs1buh,D0961171 +lcw,4,False,-12.81142,-23.23,i2hkuwsik7,9A517FF3 +tmj,4,True,-48.76572,-98.49,h1sajy13wt,CC0EB7F5 +htf,6,False,88.84366,,zc3kppcjxd,61AB0FE3 +zab,8,False,-9.43363,-27.65,p825y36cfn,A9F725AD +chd,1,False,61.56851,-88.53,7q5bdewwwq,95E43120 +mzc,6,True,97.03602,-63.95,,CB5A864E +dlu,8,False,-12.5514,,wtglkqiahk,0F3FFA24 +gvu,7,True,74.8302,94.4,,F37EE2C5 +dmq,0,False,41.28792,-75.34,5r9zrp0m7j,A9D48829 +bvg,2,False,52.99891,-42.43,46tfspmue5,99F9F9E6 +trs,6,True,51.04819,-79.9,y45d87t0ae,E073D881 +cha,0,True,43.12033,-8.21,r28pdv4pyo,8063C715 +bat,4,True,-78.13519,18.5,3rfheircis,0B9930E2 +qqx,9,False,22.65661,-52.07,, +zzy,9,False,69.5008,-26.76,sf7yzkp4oz,7A03FE72 +scq,6,True,-35.65679,,q6x7hukwjk,12DB8E5B +eoo,9,False,-23.00059,46.18,psznwv9dvx,9C59A2FD +qmt,8,False,83.64924,62.38,3dtjaa4fdw,FE0B9834 +eht,7,True,-45.89221,-10.73,100u5pua7j,B1EB75C0 +yge,7,False,65.11327,,g6iyqka9lc,4953E14F +rym,4,False,-56.25446,19.04,26piwt9jkx,6BA7B0D3 +srx,3,True,-43.26166,,s6o48eu63t,7E3AE012 +zld,4,False,-50.01668,50.97,,796B6A29 +xef,8,False,-17.21518,89.89,j8ncxgljsr,1B2CEF01 +mfg,3,True,-60.09367,-47.99,d9gxrd7po4,D6472F0C +kug,1,True,-46.98051,-74.92,tijivhfcdm,1E8C64BB +smr,4,False,-54.78531,-57.56,jf6ssfu5og,6E187834 +jmc,0,True,-34.8217,99.9,guam06rn8a,21855D40 +akz,0,True,-78.06302,-67.44,eo8rnquvxx,AD32DA1A +dlk,2,False,-27.88294,,1vrr3zj0cb,AE928CC7 +iwg,5,True,47.30262,,gosxwvygyp,E35A8A39 +uyr,3,True,-28.47646,44.75,hdwu411fn2,C26C3C32 +ulu,4,False,86.36336,-51.73,te44dd60gc,F0CA94EE +wqc,7,False,-29.56551,-5.07,wp30j3q9ir,86B051E1 +grg,6,False,57.72263,-28.19,,37C2BAE3 +qve,4,True,66.05694,-11.78,7vbcw1obix,2BE6C8A4 +ees,7,True,-6.29772,58.26,1cwgfv2vdk,44FFA074 +dak,9,False,96.07271,-42.18,w7jbe8cbcm, +dfh,3,True,17.05018,-13.91,4je33qbb8b,A93D012C +pew,4,True,63.87333,51.87,s9crfa2v0p,3019173E +tkw,6,False,-48.90453,-56.46,68epypfoom,352CDED4 +bnt,4,True,95.81837,35.27,y1159n2t4q,A50EF3D9 +ixp,3,True,15.9436,4.88,2n92kiolc7, +nqj,7,True,88.04729,77.78,5dhckpoa92,4AD7D202 +cii,1,False,-71.65412,-78.48,bqsg4a6b4f,199D1C60 +rlx,2,False,39.64237,66.74,lbrcaa2vm5,701756C6 +lro,3,True,-28.61931,-43.12,t2c35wn1lj,3B558E93 +ebz,3,False,-72.29682,83.31,jwv4d1p0br,163D7E92 +hlv,4,False,1.77194,-40.23,bpwbl2g6as,7CF49849 +jvo,4,False,79.43861,-36.23,x0uudav57w,AAFAAA0F +kbr,8,False,52.89633,19.43,j33ehrqzrh,34EEEDBA +sgd,1,True,48.62653,-69.32,6jcmvb5k75, +osm,8,False,21.27113,74.25,ejt4e8dbk8,36AB8E7B +nnu,2,False,61.27172,-76.57,cuznmko9cl,18F013D6 +bqf,5,False,-89.83016,-43.52,43dd48xe16,7D5EBA6A +gby,8,False,1.17418,83.79,w1d9uoe5oh,06A9991E +lss,7,True,78.21173,-52.91,04nrssv71w,2C4B0A9C +zte,8,False,-55.8085,59.23,,DC5443BB +sro,1,False,1.16266,-12.5,rw3iwwfma3,AB59EC3A +tae,7,False,-5.3459,-24.85,er9dbiwg1h,7227A657 +fhc,0,True,15.24744,49.18,dx6jssuv22,346D5C32 +msf,9,True,-56.28882,97.2,l2bqju4dla,CE5AFAD0 +coa,7,True,-50.89173,-2.51,0ybeqd5u6e,B4B3E338 +bqs,2,True,-36.98976,-44.58,al7rb3wrbf,89825566 +xuz,9,True,63.87644,2.57,yuqxa6fuuy,A8723938 +hut,2,True,-85.6646,34.62,hutjt5fcfl,ADDED1EE +ruz,9,False,-32.992,-51.84,mr4n90hm59,555A70C1 +byx,2,False,-66.43844,48.37,k3vnsf0vr4,8125EC95 +lxb,6,True,-78.45685,-31.94,dvl60g3rga,A92A1619 +def,7,True,-86.93714,-90.73,,4419A330 +nqg,5,True,-20.11227,0.59,6tj5k430yi,E59EF818 +odt,7,False,-71.29128,-16.29,ot48gcw571,4C05A5E7 +kuk,7,False,-12.69291,92.85,9xnceq4qws,16E165D5 +dqo,5,False,-55.42198,76.67,k988xj1mkk,5351106F +ozt,0,False,-52.07767,-90.69,1y30jpq3ls,4595F740 +uzq,4,False,-20.0644,30.73,e85nq1386o,FC440F49 +btj,3,True,63.58033,-96.28,4awoses7x6,0056D53C +opp,6,False,-21.11535,43.06,wwv3do9l7n,DE7F5C1F +izl,3,True,47.63588,98.23,9uw7m0f2t7,3EDA4DB2 +svs,7,True,-85.90265,,gyrabllwij,D09B5874 +vya,2,True,1.16105,-19.36,kwysxem57c,62DBBD0F +ejs,5,True,53.4239,-48.21,eupxjyh0b1,B24F8042 +etn,5,False,3.73775,78.28,sz4mkd0x5z,5FA4B756 +tve,6,False,-16.09968,71.53,yl51q8ecgy,763DE6AD +ame,5,True,-84.23217,96.1,2vn62znje5,E49C5695 +usu,4,True,24.25772,70.74,jz4a6j9d0q,B47D8E28 +nyq,0,False,-19.24429,-82.79,dkk8wjp723,CFFDEF6A +mki,2,False,-42.35649,15.59,g7y3mhh8a4,D935146A +fae,0,True,-63.49471,55.27,3z9m439105,74D1963A +qhn,8,True,-85.31155,78.42,rmog38o1e9,AB3E4AAA +ntz,8,False,41.47902,-78.59,xhjkmhqsin, +llf,7,True,-42.29486,-93.99,d0epg412pm,A74CA1AC +tml,6,True,-39.8312,-77.85,mnvf0bpw6b,62B86925 +tss,8,False,24.72362,-3.62,n11p9j3rgy, +rqf,6,True,58.32618,-59.8,,19A756B5 +woq,0,False,-57.07781,-78.52,, +kad,3,False,-19.97782,-33.07,yuiy546kz0,514BA942 +fgp,5,False,11.08471,,lb9624x664,E594DC94 +nha,8,False,-75.89683,,25bvz04kj2,31B88C4D +eod,7,True,66.92443,-36.15,jrhzy17njb,2E6A2FC1 +qvr,0,False,33.65892,-80.41,428gjpns21,BCE88F60 +lkv,4,True,24.99728,,pjq9fy1ajb,0A236C68 +rvq,1,False,-49.78,46.17,20v90ll6nl,76605648 +bsm,7,False,12.64899,-69.42,bcaib388pe,BBA4DA32 +yim,3,False,71.78427,-34.98,uia7lzo56g,109FBE27 +kjm,6,True,-96.21089,18.97,3l58rf6r3m, +mzw,9,False,63.28462,-49.83,vhcax8f9p6,67D32C1F +bes,5,False,2.67529,-30.94,tr4n34x2lr, +gqw,1,False,88.23166,-35.3,1mi0jqcwca,C426DBB4 +vyj,6,True,-47.63789,90.11,ye7zy2lj6o,56B93E65 +dsh,9,True,15.09503,,vi29yp2lz4,F5237DCC +bwv,0,False,-84.31579,,61u80l8dzb,2D1A4EF9 +emy,5,False,71.25403,40.27,new24umnrh,7DBAA502 +zvx,6,False,21.89253,-89.3,167k3ncn53,BE305992 +ohv,9,False,-93.59812,-95.87,nsk6d35jin,D59999A7 +eju,1,True,1.25964,-68.77,t0t1ko2ob4, +wsk,6,False,-62.89336,-96.1,gt8gsj4o7u,A915B5A4 +oad,1,True,-4.34646,-57.33,k3sdt3g5yb,95FBBEE2 +ubo,4,True,91.41541,99.0,9x1bj7heuw,F0C6A0E1 +ent,9,True,78.41441,38.29,6tqp93inzb,348BDB01 +uxx,6,True,-10.83501,,7b9euyyc2n, +asl,9,True,25.6428,-80.93,igmolu3bga,E73BEA9A +jgg,3,True,-22.1178,-9.63,qalr76smxn,F23FDA63 +eea,2,True,27.6368,,ni65vqjowf, +lsz,7,True,9.29761,,5uv8e1ro1p,3D7FBC52 +dca,3,False,-71.26291,63.07,0dtdxj9pue,F012500D +udr,2,True,-33.34123,-46.46,wyvtdb2y34,4E9FC97C +vur,6,True,41.9177,-34.05,7rpn5jxtdf,47C820ED +hfo,9,True,32.9405,-27.65,9f9rvf0fq6,15B489CC +tli,9,True,47.38498,32.03,ggsidj6y0w,49D385DD +dhv,1,False,-14.93959,75.22,8gjr3p3ijc,30624FDB +sas,0,False,89.13297,80.57,9c5z4wg7eb,1569DC1C +khm,3,False,-14.70396,68.04,t1yb9r9li0,BE1F0AA4 +rgm,2,True,7.38742,,6b79xotu1i,369D8C74 +zec,8,False,-40.13429,39.58,tzh4eo11e1,10AE52B4 +erp,8,False,-43.68108,-71.89,,CF752CDC +buz,0,False,63.3063,51.59,647r3oqwbn,C084D194 +gny,7,True,-35.89432,18.18,xiggcjukdx,4DB86F5D +wdo,6,True,-51.29193,48.38,vtw19karih,9D2ACD4D +fuy,1,True,95.79375,-83.7,6zlb5k543q,54E92F78 +wqa,2,True,36.52675,75.83,fza9owmhem, +yzo,5,True,-81.52556,75.07,dcw72xo1n3,80C03C26 +heq,4,False,-97.31219,-14.66,gq7nn7jr41,D701C78A +qqb,3,False,73.74103,-34.42,klsagid33f,D88BB4F7 +eno,0,True,-90.24676,-35.46,omwbdzxnqp,3CC262D1 +uxg,5,False,-94.51241,63.92,6ifw15run9,DD617922 +qxb,2,True,-31.61061,84.77,kpujtep2em, +gtn,6,True,-66.21402,-71.44,2jyudt1sg2,A02C1543 +spm,7,True,41.23171,-15.99,0fzbhvbhaj,C1ED2388 +ztp,7,True,-89.63718,95.07,btq9bbayzo,BE89C440 +yrt,7,False,54.0904,14.82,,0273A52D +poe,0,False,31.25898,,j0w868i26b,2B4F4DB1 +qug,4,False,42.50625,77.93,,51B13AC5 +gbx,6,False,51.38051,-22.93,svnohto4t3,09519D18 +epi,9,True,82.79999,-64.66,lxdaa4chek, +lyq,4,True,68.25509,-76.42,wwtalw4jtk,BC912D9B +mxp,7,False,-0.56165,50.78,vxx5j1yqq8,997C15A4 +jmn,1,True,83.43116,,fyg58kiorm,1531F2D6 +dee,3,False,-66.13356,-59.43,cgxneattvr,0DE9A51D +dxy,7,False,-34.73783,-82.23,89km8ewrki,54705514 +uey,4,False,-51.34398,34.88,tdembq868d, +vcx,9,False,22.59516,56.86,hm2u7zuxp0,5614E6A5 +vax,3,False,-64.75515,-53.17,l7fdmi89qa,9A0B4BEB +nju,5,False,42.04439,-39.52,6hgsrwwseg,25F1F42C +soq,6,True,-80.33137,,11f6lydu4o,C12F2EC1 +fyg,4,False,69.617,40.47,kye6qis7hu,345A7E9E +wma,4,True,-89.88241,-64.68,b3edjb5gw9, +uje,2,False,-51.36799,,tminqjk78l, +nue,5,True,10.10947,-75.56,,60819723 +tfd,8,False,18.92601,-69.66,a3q4o04e9w,1BCB77AF +bta,0,False,4.41168,-89.71,xliknc7bb0,20BCD0D4 +bao,8,True,86.68228,82.39,icp4fljfzd,FA5F0404 +hja,3,False,-99.95507,-38.56,x01egp3fef,7832CDD0 +tqs,6,True,-20.10606,0.37,wmhbstqsr1,186A9C3F +wwy,9,True,25.8589,-17.44,b3qpo9jyvi, +edm,9,True,92.14047,32.58,,9F88AD14 +fkk,1,True,-68.98469,54.96,8dqahg72bz,AAB797CB +ija,9,True,-91.69071,55.19,zqllq70riv,1AFF1272 +ncf,8,False,10.59591,38.71,ob2sver9ki,31DF5478 +zyc,0,True,-87.9561,38.99,9v3fw7algg,E4E844E3 +aro,0,True,-23.55061,71.08,35x7hg43kl,9E8292FB +zck,0,True,-51.4128,39.36,,033F9914 +pso,7,True,-0.09678,-93.97,kd648xnglp, +vkw,3,True,-98.52373,-72.36,zb5vmj4bwn,F9A1B7E9 +xkm,0,True,12.32097,31.47,cc8eiic7d3,AC3CEC5D +oql,6,True,-78.9774,-11.04,zeqsswb28o,F595B237 +gof,0,False,-42.46639,-26.64,v7hlk7jc59,3AFF80FC +qak,7,True,-8.90674,-99.53,njub2rge1i,971EEB3F +ibp,1,True,-39.60751,-49.56,8chmmtl05r,24DF069A +iwi,3,True,53.43378,-26.65,0a6utuo7e4, +iei,7,False,-12.8183,78.06,vvudpqeg1f,C8CACEF6 +rtt,4,False,-68.69536,93.09,7nx9ux1pm2,3C3A5B6D +anc,4,True,21.11712,36.84,9jlsi1yeo5,CC078849 +ltw,3,True,52.83217,,w1izvfoqvh,897EA5B7 +uss,8,True,-80.0014,-80.84,w31if4jd78,F747E9A2 +sqy,9,False,-93.88774,62.89,crydlsidmc,E52A0799 +gdi,7,True,-60.75245,46.02,76i9oh085s,2BF8ABC4 +upt,7,False,40.29348,-97.32,22tmdta1k2,A0F88287 +asy,0,True,-66.34351,-93.09,bn1lmy60wm, +rke,4,True,27.76704,80.18,gr0jhfnc1c,A1BBC14F +mao,6,False,52.42604,17.01,m6l0t9qj9o,EC723AD0 +opi,4,True,-69.00574,-7.18,lhj95d1570,F94FD237 +xmd,5,True,-62.68007,8.92,meus05j6u3,EE0DA53A +hlr,5,True,-27.17732,-55.1,45v2masfad,008243E4 +fpm,5,False,-38.49294,80.12,ouf0zfjd5w,BAD62A2F +mfo,5,True,-68.58291,84.85,tm0k502ch1, +ltt,8,False,10.98213,2.92,wdgw631q1s,9AF93A97 +cdy,5,True,-99.17291,,2pylj137u6,2C0B22FF +ohj,2,False,31.0901,69.96,vuzxndnevl,9D819313 +mtk,4,False,-52.98336,29.93,pzauuxvn0q,118CD0D0 +btv,6,True,22.97603,-3.53,,E4DFC2F8 +sbc,5,True,8.80759,75.94,bjhothhbvg,445F01E2 +pxs,5,True,79.71732,,ckpa79ptks,FC9D26AC +tgc,3,True,46.17787,-76.28,yxvrdsko15,B795728F +muh,7,True,66.07154,-76.39,v36tjiergd,71ED1C5B +cbv,7,True,17.86895,-96.66,xmcr4l5v58,FE8DCD47 +eyx,4,False,-48.58345,-61.31,, +aio,3,True,-89.91326,-86.75,,0C498E77 +klz,8,True,-49.57821,-21.27,famtoa00jv,4E3FD9DA +mew,6,True,-37.3617,75.82,d2ptpm2uv0,6CE47856 +ots,8,True,-26.2525,56.94,jcw8j9a2ni, +vrg,4,False,13.17284,-25.0,x8ebdcinwp,4B86B758 +vng,8,False,70.72317,-2.27,c7por35cab,9271F0E1 +iph,4,True,59.95437,-23.57,02og2xosed,9256E8C8 +foh,5,True,2.23493,-91.93,7eszc5gfn5,A070F80C +cjm,9,True,-74.92753,,a88oe49bdm,3CEC9B87 +sig,6,False,-74.69523,46.68,6jt0vah1f3,7E8D0E5C +flj,2,False,-29.88698,25.66,uhijygr7n6,8D0A5D71 +rbw,5,True,27.04947,-0.71,kzjyhsa71c, +mfh,8,False,2.5997,,dbxku06ahu,F047FB4D +emu,5,False,6.46539,-71.88,x8zbbmekyw,42CD4F3E +xgz,0,True,32.14467,12.16,x9grqpxdwv,5BF7E916 +jay,5,False,-24.97666,5.6,5m61u48whp,0789EA01 +uxo,3,True,49.002,-94.43,arm6yj0cc4,67C57896 +lbt,5,True,-95.77317,-34.83,, +wef,4,False,54.01377,-69.71,tioshg3fsq,060E3B70 +npt,8,True,-21.43546,5.93,jwnz869bey,9432E280 +azs,2,False,57.8161,45.13,, +qht,8,False,69.77446,73.55,xzkb0umqp7, +spe,6,False,-30.70602,97.17,6urpazomhk,C162152A +csf,7,True,2.75982,6.11,gyn04otnx3,14131C4E +qgl,0,False,-70.07107,-83.61,q0qzwwlwx5,60BCFB31 +sst,0,False,-29.79257,-18.26,wvz5maq57c,987200D8 +yjv,0,False,-66.21257,-27.94,gvjih8bd4n, +zwz,1,False,-77.06652,-66.24,0bcvff7cvu,67331DE6 +gkn,2,False,54.98719,14.37,psx5yq2rpr,3080485B +wxc,2,True,-67.17782,-90.57,luhekwn4q8,95EBCB4A +lzj,0,False,28.71979,-49.51,lmx7p5oow5,1AF7E009 +vtc,8,False,-72.84499,-59.72,vfmdws4cma,43AE0C75 +mhc,7,False,82.08882,11.62,m7gjk72ke9,FE0F656A +urd,3,False,25.00486,64.3,9ufy3m0ggh,D48B21D7 +nne,6,False,61.55752,56.01,hpf3iefu8r,F6006B2C +rhu,1,False,81.666,95.06,819bvuppo6,BAF64F00 +hfj,4,True,69.72777,22.77,v699wvtfcn,386BCC38 +qja,4,False,44.90969,-32.52,bv2c8w3cls,91AD8A10 +akt,1,False,11.15737,-97.99,,9394193C +zbx,4,False,41.92247,7.16,vxk38pv0c2,683FA3A7 +byn,1,False,-98.74642,-80.59,6jh6z9009k,44871E86 +fuo,5,False,-91.54842,67.68,qwk3pl19xu,0D645ABC +qnh,1,False,50.87261,-53.51,ykc2x12xw0,A961DE75 +cgu,7,True,17.92594,-40.55,,530FD4E2 +pij,7,False,-20.35461,42.83,gwdyu0slls,DE26058C +gzb,7,False,9.74351,-45.78,zufs4mh87m,754BC63D +vvc,8,True,1.40396,-87.77,xnb76iae26,1E310855 +nit,4,True,9.74284,-9.43,fm5vqz4ls7,0C2436BC +wgo,3,False,-25.81021,-87.69,um7whtqnot, +gcj,9,False,-95.04001,-70.87,naj5qkuzjk,1CB33611 +uum,9,True,-85.402,95.16,p8766y5bw7,39B1B63E +qyf,5,True,17.58842,9.7,bfmd3dmjag,9A9A4D5F +fca,3,True,-18.30948,-23.26,,E62E1733 +leh,2,True,-76.2899,-51.58,f5vbnt9372, +itj,3,True,70.05925,-66.49,2gj5o6vynf,AD1B3C16 +hji,7,True,0.57807,79.36,4g587a6o12,A24063FF +txn,0,False,86.12732,,2a8poflugp,507C2CDB +qfk,9,False,47.35487,-7.27,zaf00vsi9e,89FD9AA0 +luy,3,True,-21.64346,60.41,7sehrzs8z7,6F8A8D5E +cjh,0,False,9.22524,51.46,,04D72D93 +ezz,0,False,-46.77981,-23.2,,B045E938 +bar,9,False,10.30523,,eunk7jjpak,CA04F65D +xun,3,False,27.76828,-87.35,0b1fohemhz,A156274D +ini,0,False,-51.00797,-8.4,wen7rqli0a,C1972AB1 +yno,7,True,-19.85555,-69.82,ukn5r8dk5s,E5648A43 +kop,2,True,78.18875,-37.3,qyp7k66xvo,4FFA6EBB +duj,1,True,-14.07487,18.17,wybu2y6zfy,15837E7E +xnr,7,True,45.67475,76.97,ou12qv7cm3,66DA8AEE +iay,3,False,35.68109,-17.84,c4ujlasw6e, +emm,3,True,-64.12564,72.66,t4mcb2strt,B074544F +cih,2,False,73.37302,-65.03,b93p9z7f1r,428D6CE3 +hua,6,True,78.13369,-97.24,60nz6299sr,3821C5F8 +qdm,8,False,-27.6243,51.45,pn8gjfpur6,91BF52D3 +zaa,9,False,-21.30362,-14.44,p5lyecg62e,EC6C5332 +ldj,4,True,-37.00701,64.16,s8p0bvkk2i,58E0A1C1 +dpa,4,True,19.85244,-17.42,w3asj5st8r,7C49E94E +voj,0,True,69.81875,-27.93,05681s14vt,3218CDBE +bvn,7,False,41.82033,-96.76,e4p7irydj4,B39C598C +nnt,8,False,27.37894,9.69,,C783F832 +vud,5,True,88.03917,77.64,n7jps03ih1,6ED6C71D +ypz,9,False,-23.05128,81.86,157zeoqbmm,CF6B2D07 +oig,3,False,25.54469,-38.7,bwbuyqesp9, +plk,5,True,55.688,7.51,3ug114lki8,71489DA7 +jdv,4,True,-62.54155,40.22,n2v9hlpi0f,E597088F +rux,0,True,-38.68128,35.47,m2fuivh5z6,EF3FDB05 +brf,2,True,-21.56543,89.59,hskfudb8le,54A3AD07 +wnd,5,True,92.14265,-3.23,zehycppize,0D2460BB +nal,2,True,55.90888,-93.68,mp9otexmwl,B46BD9C9 +ilk,9,False,-55.44357,,sg98v30oel,AF76B584 +vff,9,False,-14.4657,-16.64,5qa3wl0ndg,D7E2C962 +jfr,1,False,10.27736,-44.22,cmh0s7j7to,74F702B9 +mvy,3,True,-80.76156,22.79,kbppkc87hm,921BE83A +nuc,6,False,-94.21388,-42.97,inktz6fca3, +esy,1,True,75.50811,95.15,su7ntay6xd,08BBE137 +cmn,2,True,-69.81287,-24.79,1wocqdich5,DF048091 +cgq,9,False,-53.98402,44.02,whydhslr9y,DE239828 +uwd,4,False,-31.42941,-19.27,r1kgz9ewuj,00676232 +ayg,9,True,-91.59092,7.6,yn2006vf5z,9EDB1E7E +bse,2,True,10.44881,-8.54,him9xro4l2, +rgo,1,False,-44.54625,83.41,vzbizhzs8c,EDEEA7C0 +juz,0,True,51.96994,19.52,grt9gix9r5,4780CBFA +bbj,7,True,34.87861,-2.68,ip11scr34r,4805A4C2 +ufz,7,False,-97.94942,-47.38,khrz44mz88, +zhp,3,False,76.90251,-45.24,jkx0boiv6x,688081B9 +pjv,7,False,-37.39677,-0.85,3c2npp1s00,42E5C8D8 +qhc,3,False,27.92975,50.07,y7xiqkpkt3,5D751E48 +mde,6,True,38.57872,39.77,tnl87psbod,2C7C3742 +jqi,7,False,85.21742,88.65,0trx4ml5vx,7051CE36 +aps,1,False,32.13805,-77.29,8gej6l87g7,5EFB840F +oyg,2,True,-19.93033,37.22,gii9zkef1j,32801B59 +qga,4,True,-44.92482,16.32,bl0ldvrmqz,1D875E97 +ncn,7,False,-56.48075,-40.92,mcb0hcw8tk,DC7D8F84 +gvr,2,True,63.42201,-10.67,yci1azxz28,8B8C65F3 +pxl,3,False,-68.63206,13.83,ijt0lx81eq,B8C0889B +yod,6,True,-22.60688,27.95,j5xh770y7q, +rkf,5,False,-76.64785,-94.45,9hq0l52i9a,D71DEBA7 +xfx,7,True,38.5095,-81.44,9s09s53zn3,8616A5E1 +txr,1,False,-51.82129,48.4,gogsfezmoy,3FA77CC9 +ang,1,False,-95.45791,,0k1sy49ead,18D14198 +izj,2,False,41.96583,85.51,2c019h7su9,C1A6B675 +net,7,False,-36.87415,-21.86,ljwf5sxiii,A2A26EF6 +ezx,6,False,7.57692,44.52,, +eyw,6,False,-81.57181,35.9,t4ajkjkuyh,6821D0D3 +dxn,3,True,-92.57355,-57.32,j0b3gnf3bq,8BE0CF2C +uor,0,False,-25.34989,62.86,1zlw3pgom3,57E73A04 +yhv,6,False,-40.83042,64.44,ejhu5hy06q,AE297171 +uit,6,True,98.55891,-53.34,161qi21fb0,085417DD +bin,7,True,-5.51294,26.07,qwnswr0icz, +vxo,5,False,24.48708,22.01,szk32ja1eb,948A550F +gwa,4,False,33.79525,,wkum67qklb,6F8C2E91 +dir,1,True,-6.30376,,1zk0ql02ha, +ijl,8,True,87.62527,45.05,8tgu7kq48t,65DDEC10 +rit,8,False,60.73768,83.3,y33pu6kbzc,ED013A57 +qfk,2,True,47.72625,5.44,8jyu8jo96x,793AEBAA +sdd,0,False,-91.89424,-74.33,za0k2274u6,4735252B +lic,8,False,-77.6181,95.6,ndt5b6ppnb,B979DA42 +bsv,2,True,83.36636,70.69,b5e6eks3vv,97B94A22 +fmv,1,False,11.3395,-61.43,uyb6ksdxj3,DCFEDE6E +ftm,9,True,96.9635,38.0,gonze33vgs,A9BAAA96 +jyu,2,True,-67.88858,42.84,3kin7bt68g, +rfo,3,False,-78.39689,-36.08,pe1ammizne,116D2E08 +tkd,4,False,92.82379,-56.54,llq4zikdxj,5C8F9659 +vdy,7,True,-66.35365,7.67,elvz1en98w,B0497C32 +nbm,6,False,64.48129,95.03,09ejglovwv,7AD1E0BA +ovm,0,False,92.10651,-2.6,5cvlg3es56,3B4A35B5 +wpi,8,False,10.34251,-88.2,gaqunx8w9c,D4B0C96B +zwp,5,True,-88.95399,-8.99,qxzkf3i4ux,46425168 +smc,6,True,70.53384,54.21,lat981u34a,325B0134 +zmh,1,True,36.45368,-54.04,qpng23f5qx,0B9644E3 +fcw,2,True,-69.82718,46.8,qs6uy72o6m,3E33980B +tev,4,True,69.71025,-6.42,uzs1n54ffh,9B2FCB25 +yyu,7,True,88.85108,-21.42,dmdz49c7yx,09CB6680 +uuv,8,True,7.81173,95.4,caeexdlhk4,772E4764 +vzx,9,True,33.69323,-14.68,omm70tsroi,CDC9A8AD +kzt,8,False,-92.4702,,znpoigwmdb,CE6DF12B +lkl,9,False,-51.66079,41.87,9dwimv708n,9B5FAB78 +ble,3,False,79.18463,45.13,6s5wepfww4,6CD6A485 +mna,8,True,82.69385,-96.75,94qlk9uei4,1ED27529 +yaf,9,False,18.85257,-60.12,f85o5jzagv,5FAA7882 +lgb,3,True,-4.62372,24.77,,8059C7D5 +zbm,1,False,-20.58178,-59.04,j9inkx56o4,00EA3D18 +mnl,2,False,-39.66554,-35.74,5u01npfbfv,DF0B61E7 +yan,2,False,35.32168,,v9bp6qi4v7,87CB8F1E +rnz,2,True,14.54297,,vb469q3hyw,AB15E408 +raq,3,False,-71.81456,-14.71,,08A32809 +klz,1,False,94.17755,-77.79,yxxzr2w34o, +xsa,2,True,96.39732,-0.48,,B6E5F460 +wlh,3,False,-43.11705,11.46,920itsvsed,15C3D908 +zrh,1,False,-62.53739,-77.27,,C1B8F12B +qpv,0,False,78.07482,-62.75,w4kvctfw71,40B54CEF +oyk,5,True,64.43677,8.34,y4j0fe442c,F4B82B7D +lbn,6,True,-84.38392,-63.25,o0s2thvjxv,93B4FE04 +rkf,0,True,-25.45306,,1piy0gjbxh,9F1F022D +xhz,6,False,-98.71264,-84.25,wo0c9g8fsn,C69B7541 +taf,1,False,17.37082,-95.77,sqv53hhhw5,52C4ABF9 +nld,8,False,96.45388,94.7,wobzpryih7,706D34F2 +wrl,7,False,-59.54566,-62.46,nhad5nue31,86C220EB +llp,8,True,-33.92894,-65.57,vmxdnhve3z,10E4CE2F +hah,0,False,1.42917,,wlgxa7uy4c,5AC409CE +gxp,1,False,18.14373,,sydilvp0am, +req,0,True,7.57559,-58.39,ij9c9minv7, +ytn,9,True,-70.93935,,n0rn0gb2zn,8C8A8D6F +sce,7,False,7.0311,-11.78,k7iondl5ze,6C32703B +ivx,1,True,48.5944,91.58,n6hgxmvqwy,0182AEB4 +igj,7,False,81.75837,,yaey4ic525,CA5B3996 +rha,4,False,-62.86292,-85.63,27c83s710t,79205BC5 +tcq,3,True,42.87193,-36.4,k6rgi9v325,F96B57EC +cxa,1,True,32.91233,68.13,dfr5rjf9r9,77EA8F82 +opu,6,False,6.5211,-21.04,dt003ldldm,8161A046 +dzv,8,False,45.06463,26.59,sxlxaqkt4e,5EE11A2A +pmp,1,False,26.39997,53.32,0nnv2xqu3n,DF730EF1 +trb,4,True,1.90458,66.84,ysiskuws6b,73565098 +rdy,9,True,10.89431,-66.08,swrn8jqwht,36DC90A7 +zbt,9,True,-99.9642,,g4tg6j46ws,E51BD3BC +qhf,6,False,-16.70748,-43.93,03apopkep0,74D632AC +gvr,2,True,-36.9191,93.22,tq1f2i7jzm,D767974C +wuj,8,True,17.42369,81.86,qbj1yv6gl1,C6A7F0A5 +eit,4,True,-42.63672,-84.75,6cneg9r2ck,0F165FE6 +tbz,1,True,-45.7964,-24.51,qdvxxf23eb,573CA0AF +euj,3,False,-29.08607,-76.44,yzxd9rzc84, +sxw,1,False,-26.8416,,ew3znr5eeb,5019B542 +xes,6,True,-48.08973,-77.59,p8zojawfqr, +bsq,2,False,43.97023,-33.61,eumlbiopvh,AA55093D +ail,2,True,49.09323,-30.33,0wot9s7o3n,74843C6D +tdu,6,True,-56.01272,94.21,s9i2cua4xh,2647D5CD +btr,9,True,91.45163,-64.34,10pgafcyub,3152FDF4 +gjy,6,False,16.62813,-47.26,0nz4rpahqz,A71EBBD3 +krf,3,False,94.73506,,22f39pjuo7,C71DD6E5 +iqw,0,True,-78.52562,-8.69,,8234D4D0 +inc,5,True,61.01013,-3.62,mf7t9tt1r2,BF813C63 +shc,4,False,-60.99845,-60.01,7l0efool5f,96ECFFA2 +wku,9,False,32.98699,85.66,lsgnd4mqiv,CFF09E68 +xlc,5,True,-68.61529,,,D5A3A66E +vlg,7,True,31.31353,90.38,ut6agun1ex,A8AD6B93 +msu,9,True,6.29647,94.5,zrqjhyd71v,3E33681C +wsh,5,True,10.19231,56.2,,487C4D0F +wcv,4,False,-95.62029,81.4,qiofxgctt8,765CE7C9 +ngd,3,True,49.86976,20.97,6d9myndxx9, +xpn,5,False,45.03989,-87.35,c9zt9vo86s,40D64724 +otb,8,False,-85.24387,67.54,,F397A43A +kzt,9,False,71.90144,-55.03,vr9t7ddecw,4ADCBE5A +gga,5,False,59.75919,27.87,xczqmno8dp,53C9FFE1 +qaj,5,False,81.87252,52.32,0yjyaf1itn, +lpw,9,True,-2.91815,99.95,,F48533F2 +yhd,7,False,-15.94677,,0kmsna168y,6A20C60A +vms,1,True,-60.90571,-88.1,pjc7kee5od,8A8E7A84 +hwd,9,False,-8.88413,-50.57,ravi4gryc2,38C427C5 +vjq,3,False,23.42259,-78.39,yayldaehj5,324F23B2 +nro,9,True,11.32378,-44.77,708xvdhn5y,4DFAE674 +nkp,9,False,-16.80119,75.89,wvkkzio5ez,B62D296B +sik,1,False,-10.30094,-7.93,9rcxr7uhni,0BC562C8 +fly,0,True,43.21934,-30.61,t9xvkf20go,A8B9CABB +kpd,7,True,-11.70937,24.98,h7rnkj7es8,716EA1C0 +kum,3,False,-38.09012,-58.3,07p68kfe7t,D341599D +yyg,4,True,34.94445,75.06,xks25aimq2,42759BCA +lfz,1,True,75.47393,29.79,2k3xwv2qw3, +qvx,7,True,84.97812,64.89,htcjkhz605,86F53368 +kpe,3,True,76.00842,53.74,pgwx1m5e6k,C3E0436A +gsg,3,True,-1.12436,7.44,,A26174BA +tpn,3,True,26.93136,-45.05,j1h4ojaqag,22EEA56C +zvr,1,True,50.3339,-28.43,jkdejuhixg,2687D5F3 +hii,9,True,9.63425,28.95,jgws62xt61,5F63CAD9 +sjl,3,False,42.12506,95.65,uambvhplrb,39720E32 +olp,8,False,-56.6772,99.22,pdu9siq418,F6CD75C3 +pdv,7,False,62.32717,-59.34,2hw64a0qet,A607B2FA +due,7,False,29.64436,,8vspvo19wv,D7CF4CBF +xrt,0,True,91.18263,74.96,6302ecjmi5,1A472346 +rux,8,True,64.64705,11.05,iu5e3dw6p9,D4E9F905 +ssk,7,False,-59.53903,,hvhs8fwezb,E1782F60 +wml,6,False,-81.77594,-43.57,cjow2vm02u,FACACD88 +abf,0,False,-65.35887,11.9,a1ubi9rmdn,6A2F247C +xbu,2,True,-93.55531,-34.25,60ps5p8hpp,0E639360 +yls,2,True,29.02963,-89.39,jqsmhekvei, +rbf,2,False,41.66242,60.13,sak3s4r48g,FAEB0531 +xgp,7,True,-2.74233,50.31,etft82qftb,0DE02DA6 +bdx,5,False,-78.75397,-25.99,4vmd97f0tc,2EE495D7 +ozy,7,True,43.24198,-37.98,az8pkivxys, +qhp,3,True,56.05499,18.17,,FB1E5910 +dep,4,False,-74.93489,-76.36,l9ewnjttic,D30EB270 +udx,7,True,7.85012,-48.62,1213auirhh,218D4C06 +lxn,0,False,-14.63048,94.71,n2wqr3q7i0,08582301 +rvs,1,False,29.79812,0.37,1bjfiyjpno,BC80A6BF +xzr,1,True,-79.56909,6.16,,4D6DB64A +aed,7,False,30.81896,-16.02,rcfitun8zk,8E1AA283 +bdh,3,True,84.36822,62.26,jalh2knzid, +hdz,4,False,-76.90881,-4.62,,C2E4DBFE +dru,9,True,-97.12462,-74.19,iuw0iebs83,3E896978 +uqe,2,True,-11.45243,75.5,fhh99qv5c0,1EE5992D +shf,2,False,-10.03866,51.82,9dxchgfbt6,E50ABED8 +lca,3,True,6.26421,-29.18,0t62v6d641,24433933 +wvp,5,True,39.62508,11.28,8mh30b467k,49B6F82A +xwl,8,True,-74.50312,,nhahd24uy9,550FD887 +fas,0,False,-39.03995,3.73,huwfzbklyo,6AA20EC7 +keb,3,True,-78.40002,,6h7lur7909,57447521 +htw,7,True,-10.70884,95.89,rjrlx684tw,AFF21988 +ezp,7,True,-77.3466,20.17,bjqr1lk26q,D6547F37 +byr,8,False,-72.36265,43.0,d9pjwubmih,5261C1A9 +psg,8,True,97.42174,94.63,,B7ACC51E +iml,1,True,-67.27316,,m4ha5eshd3,5D0120F0 +zcu,6,False,-79.99427,-17.14,zzstc3iaz0,899A2820 +fwk,1,False,79.26017,-79.52,qo1d62uno6, +pfz,7,True,-91.43171,15.27,tm2ipkd0hv,3F1105AF +yul,8,False,-72.96824,72.6,ii31uo94i6,A8E75B5F +dcz,3,False,-74.19505,-50.79,9k881fvgw4,49461F45 +wep,2,False,30.42332,11.31,m42rik5q7l,2A3FED21 +jwk,6,True,-56.0191,17.28,,E466F30C +fjz,5,True,-88.16447,-9.92,utcydlxg0x,F44CF3C4 +ivn,0,False,-50.39784,,fggv5dull8,D8630289 +mko,5,True,53.6183,68.31,zc4igm8k2n, +thc,5,False,-10.02302,44.74,41e4n03pf9,18B071B8 +mou,9,True,21.40643,-73.82,,4450CA76 +hmm,9,False,-40.46683,81.24,,9807408B +ric,3,True,-69.49124,-22.03,mgzo22qfy2,D01D4DDF +vbd,3,True,66.88792,-28.83,9f8z6vd6yg,2F2678FA +zjm,0,False,-88.20439,74.33,uh21x3srem,4F9BA52F +nwg,1,True,-90.95304,,snoqtry9ht,031E8333 +aor,3,True,70.67367,16.69,05qachjcei,0D959E16 +big,9,True,67.08934,17.54,q8c2y5dj9b, +spy,5,True,-0.85904,19.98,mpuuprm6wx,B74E12E7 +aod,1,True,4.25089,,ebdihijkut,E904B6B6 +ltf,3,True,74.1182,-45.04,77kexsx6ov,D23C0631 +hdj,2,False,34.05418,19.23,tfyob2o69n,A3252A75 +vpx,5,True,23.41905,77.19,08k0s8gzts,316C81B4 +cow,3,False,90.27235,82.7,1ddvliwnlj,B2CD351D +xfg,8,True,72.64149,7.03,9xl5imix2h,AE92C1D2 +vzh,7,True,94.90999,-97.99,kv0pwp01f2,643492B7 +fqb,6,True,1.34743,-36.59,q1u82daldl,E832BDFD +ibk,5,True,-76.48684,18.25,4e5mwwgdyk,C9DC5AD9 +xys,9,True,-24.81056,73.96,,8ACE8323 +yqv,3,True,-86.91602,,bnvocnhmjh,8DF4833C +tcf,0,False,12.80391,-14.96,iy0jip74ut,7AE318A6 +yqv,6,False,-33.60067,67.77,e4yl7yjckj,4AACD476 +qkb,3,True,-36.39031,-22.64,tu3bz1q4ny,B0A216F7 +ean,7,False,62.97043,,,9F38B4D4 +olk,3,False,-22.95682,-43.57,h7bv1r6e2n, +scb,9,True,-7.79426,46.39,005xsp4fy7,D56D4E72 +kki,4,True,37.76529,31.81,4cj1aepceg,08D33878 +vrb,1,False,-54.84304,-84.63,u5km89wpu8,5CEEB20E +spp,4,False,18.15538,,tesqkdnpy2,1514FBE6 +clp,5,True,19.76141,43.05,0bld0u76jc,1479A480 +koc,9,True,92.75214,-46.58,69vgq7nr5y,7351E507 +puk,1,False,-41.40248,,9md5wox2e0,2006EA3B +ggf,6,False,-6.37458,25.32,,13654855 +bwu,9,True,-88.68191,,2bi8d8sp89,79A7AB66 +idj,4,False,-73.9951,-47.76,fakm79gklk,C0F7E47F +uvg,2,False,25.22166,-61.81,nowrtliec2,196141CA +pso,1,False,65.51547,34.1,lhvx68gnb7,2F4CCD4D +mrw,8,False,-38.40908,34.55,uarmkg9yga,6851D900 +apk,3,False,-81.63536,-93.81,vtpl3esyw1,0B4A644D +whm,8,False,22.82112,57.39,h2yyn00k6r,39F38689 +sxq,4,False,30.70766,49.94,os4tip4p7j,B411EEDB +ejy,1,True,-18.04293,-4.39,fdnvfrmrnz,9A1FE479 +abp,5,True,-89.27906,-35.88,w4e14c6drd,0676A78E +duo,9,True,23.65632,-55.97,xck2yv1fly,D1CD7468 +qew,1,False,94.80766,-30.65,2nph2ugt6k,D65D2CBD +gwt,4,True,-58.9758,44.56,huzpben1f1,FBAC0E68 +qnr,6,False,6.62992,-24.24,z4tk35q9cm,093DE556 +min,3,False,59.0771,-80.33,,B69CE9FC +cxc,2,False,73.72411,82.34,swgb5rzej2,5802583D +hik,8,False,-38.74233,,bhml68nxs3,38347FC3 +yyu,2,False,71.34897,-3.95,ni04xwb3n6,7201EC03 +gdw,0,False,34.5532,62.98,ke0k67v3os,1F389216 +nxh,6,True,37.60278,-40.02,joysfok0fk,1E08A9C1 +shy,8,False,-8.91819,12.58,4ae5ohzlr6,B621A096 +fso,3,False,-30.98213,-38.32,b886ax5ede,1F265B83 +crv,5,False,4.86208,-15.23,b40cnijee7,4B14E547 +ppm,5,True,-26.29144,56.8,7ghamrdion,4942DE79 +dyo,6,True,-27.15315,,tk1few0jlv, +tnh,8,True,82.25512,87.38,s8igfobb7g,DB43C906 +whu,6,False,85.78273,73.83,,EE906B12 +ncv,7,True,-61.98772,-99.57,ubnvehnnyp,7FE25005 +zzv,2,True,9.28021,80.11,w6835pjsk0,4188DA12 +vbf,3,True,-7.77268,-20.35,ou4720ss2p,684E6AE8 +wah,8,False,26.49602,-26.4,tqqmopa3jb,B8BBC59B +zbe,5,True,-10.34638,-8.68,lir4rojo0i,370E3347 +npz,7,False,94.51695,-95.84,xx8c2yoxey, +ayw,9,False,-37.7115,-84.37,7l8tedxxqn, +dkl,6,False,95.99364,-99.99,rdnsrf5850,E696F987 +sfw,7,True,-41.88482,-14.88,ip6f553nu1,7EB99799 +uek,4,True,20.53091,59.42,0ekrl95sfb,7447C4D8 +kut,0,True,64.57551,-15.34,c2rv2t41xv,4948EF08 +cil,9,True,47.14899,60.47,qo9hmg2hxc,C6E0038E +nbx,5,False,-20.14299,-19.59,hojgj704gm,10F1D8D4 +kph,3,True,95.76479,,wo454kbfyd,049826D2 +xrj,2,False,16.48434,40.33,3iajp96krj,4B4C802B +pfu,6,False,-86.29456,,b7mpvkphvl,E49B7CAD +moj,2,False,-40.67495,-15.57,auhqfhl0x8,CD057B78 +zhg,1,False,-80.01643,6.17,wzkwrn8bj8,1469F2B0 +wqb,8,True,52.74162,60.52,gcs3z01pc8, +uef,0,False,68.28835,24.81,j8zs721o34,4C88FD20 +hbc,9,True,58.66069,79.39,1v4eb6pjck,C5859093 +ibb,1,False,47.85277,-54.04,ptd9q8txd6,E6BEC801 +dwb,5,True,48.82441,-36.75,,BB0097B3 +yzr,9,True,-76.35062,-57.3,km49j3bpfw,A931859E +eec,1,True,1.10306,,kij19w11p8,DA3CCFF6 +pjs,7,False,-56.53089,-4.05,t0tupd9r4e,D65822F4 +ugl,3,False,32.77052,,w3bl756hdn,0E937A0C +lys,0,True,94.70262,-68.15,rc50y8l0te,D9AB77A1 +hgt,3,True,-15.01053,-19.95,z2mup7mpkc,A3B09F72 +kst,5,True,-20.95191,-6.28,ohrxijiz40,D03DA3B9 +cyt,8,False,-25.0393,-94.95,q47z4fj7rx,03037806 +ndh,2,True,-44.48578,96.72,66ig73vceu, +scv,8,True,-51.57641,34.64,a5w5qyqa0z,FC0846AC +etg,1,False,-36.80076,4.76,q9empo2uzx,E11970A7 +ufe,1,True,-70.75698,-93.79,,94F8525F +hqz,8,True,-76.74182,42.11,,E09C08D8 +zqt,4,True,-0.9049,-22.3,4jpw4hrtoi,3F5858AE +lyj,5,False,-2.30339,6.47,,283F7231 +idd,3,True,13.80884,-1.71,dtmcwh8vt3, +fln,4,False,80.25302,85.18,,E13B0A17 +ndi,9,False,29.39842,-29.52,,DB971AD3 +bjq,2,False,-43.62145,-6.7,o71gon477x,458F2DBD +wmk,7,False,-33.48106,23.25,0zbbqjfvki,140DAF49 +lmj,7,True,-94.45476,,q2s5ochnu9,FF61850E +ohi,4,True,73.91225,-70.32,1cdk5xn8wy,D76D0B8D +pyr,4,True,-44.21272,88.15,274bv5qszr, +opn,7,True,86.91729,-3.04,,4109073B +yyq,2,True,-70.89274,-45.53,z6x8u2j7no,DE54AAD2 +rxy,3,False,34.46596,,hmzgf0xjqh,5A376DBB +off,8,False,44.38547,95.33,,C18D6FE1 +ekz,0,False,85.95908,49.48,8shu282676,BB35FEB2 +tzl,4,True,44.5691,-49.19,1sknh9eemy,358A83A7 +qdm,1,False,-2.56756,-94.78,omqqjmbl4v,7C850327 +qzh,8,False,-24.33639,-19.97,l1fplwxqwq,BB4B48F4 +joh,4,True,-95.48128,2.25,39cudt27b9,C61FC2E0 +xbv,7,True,20.50441,-72.09,m5i6aguzyd,31E3C44F +fdb,8,True,98.5516,62.0,jduna4zan4,0072A328 +gvs,9,False,-49.82171,9.73,cvnknx5u8u,5DAB8C1C +sag,9,True,-66.96749,80.01,r6ckza24w5, +yvm,8,False,35.64321,37.63,a991zbaiup,19F606C7 +zjh,7,True,-47.49759,26.73,ihtafsu5by, +ppp,0,False,12.53839,-57.64,ai8fkazwx8,DB9809A0 +tfr,5,True,67.16978,-95.11,zdfzbffbea,D1DEEA2C +ury,7,True,29.98538,53.99,6f7ru3zuis,5D1D4A19 +ype,3,False,57.60556,0.37,sbj39zj11f,E68F2EBE +fin,7,True,-28.41745,96.69,zta2r7b9lu,65971C5A +sis,8,False,68.21538,-29.47,,3E6796E5 +wkv,7,False,-88.36,-74.1,8hwrfsv3ev,0E07C416 +joj,7,True,-89.54701,2.52,zt5skztcv3,803F9138 +efg,5,False,75.46781,-10.11,m1wxsj42oi,440BE7D6 +sti,9,True,-38.11455,43.78,p0i8spmh3j,EBCC0F35 +cwr,1,False,-11.68206,-66.57,v5z6p9e4dt,54974E7E +nqe,4,False,20.92436,57.95,zzkj3edthh, +jjb,4,True,18.11607,,ucztieu2j0,B03B9A2F +imo,4,False,-94.41258,-8.37,6wiuangzie,8AB449D0 +hgs,2,True,2.75594,-92.2,8xd2pxsy7i,2D0016FF +xyr,6,True,4.96479,50.88,,043F23B8 +amr,9,True,-20.55862,-18.69,biqy1v0tgj,40CF8659 +csz,3,True,81.67431,,586jf8kgc9,B58967F8 +nwv,2,False,42.95246,,uhr0p4fp2o,9E568B1E +pnv,1,False,50.66229,-80.17,vfoixwgarb,465AC3AF +xkt,9,True,-90.99225,38.92,e7034pa0ib, +gvs,9,True,-66.96752,49.6,6sk6y0qv5t, +jji,0,False,-29.05297,-64.81,csnqt9dt0p,94B6C025 +sft,0,False,-97.42301,-84.42,hacimqrw5i,CD2FDA9E +rzw,2,False,-48.75626,62.6,c64are4vyb,C9C9487A +zfm,7,False,47.38091,93.72,vj5ah7xp8k,EC9E55DF +ovq,3,True,67.97616,31.91,ae3kg5rxi6, +kak,5,False,89.93906,94.91,0hjmi9lzel,F53D9E63 +ihd,9,False,-19.93349,40.14,2u71cech3f,CECC4287 +cwm,6,True,17.94936,-26.35,lilgewwgdq,579B823A +xww,1,False,-70.8091,-68.49,sy7im6axxk, +fit,2,False,36.24539,72.84,z0nmj9halc,133CE4E6 +rlt,4,True,61.74478,-35.75,ugjipruhw6,9FDDBB6C +eml,4,False,60.74156,81.26,ry53sn04br,96A7AD28 +yym,2,True,57.72215,62.7,8oyvjw15ki,53DA4433 +ezm,7,False,-69.0501,-94.03,,E4DEC70D +aeq,5,False,97.05658,,m18m4bygp4,5ED60550 +sex,4,True,52.37905,-30.55,wxryr2cb17,1A6F4DBE +dmt,0,False,-94.26814,-67.47,7zx6mefmjc,0DB5C48F +pan,8,True,18.35607,29.58,7b7x6unysc,20388F3E +qbz,4,False,-92.72583,52.45,w0qedncs9s,48A68B45 +aga,2,False,-32.4403,,sd94nn6k8n,2A36E338 +hha,1,False,89.18954,76.93,3g18y5h7to,2CA78435 +sev,4,True,64.48428,21.19,khjpulz7c0, +juw,0,True,23.23537,,n9wwrtuh53,6F99FF6C +tkd,7,True,41.45483,,jv4rfu0jvy,9319EA92 +lqm,8,False,-36.53491,-43.85,tc8zoy19lk,B234949F +hxy,9,False,-0.39913,13.18,7qhtu785ru,765F635F +qse,2,False,12.73663,34.11,3mu1du1aqi,5E7B0E82 +jwb,4,False,-40.09283,-45.35,cklvfnrh4c,7B700C01 +ulb,0,False,88.43077,,kp4cdbn0c1,770E6401 +xpg,8,True,-97.74033,27.14,,EC0132C1 +gak,5,False,-61.28979,-55.83,oxnzcrbceb,025198ED +kvn,1,False,-10.91868,-32.07,,1437827A +gva,6,True,-65.38377,-99.09,,BF9C264B +zuj,2,True,-9.87908,-47.36,lfnzsj9fyq,C3C70E05 +wis,7,False,79.12416,15.86,1vj7efhsen,0BDAF952 +ybr,8,False,-3.74239,53.55,,7B3C3839 +ozl,6,False,86.06256,-48.94,2vuv0zvxlv,4CD259F1 +ziz,4,False,-86.52352,-56.94,chzd064dxi,25755F7F +joa,4,True,-40.72982,49.06,6alkknh5ck,27E1ADA8 +mae,1,True,-15.25127,76.46,lufdj29oc5,D0842470 +prc,5,True,-19.12736,-26.4,cn074tg4n8,816EEB58 +blg,0,False,9.32447,51.08,,D2500F7F +bvg,8,True,48.08156,16.91,tmladjsnmo,1B2D9990 +lrl,6,False,68.45826,,p06bc3shyl,08FE2F13 +ioy,6,True,97.05654,68.31,pmc3bdp41h,ECFE28CA +dkx,4,False,67.00031,-23.38,,362027E4 +awv,9,False,-47.65074,30.93,8yxij38kon,DCB2A5E3 +qns,7,False,-54.61125,-59.5,0t2jmhrpgc,9BD48B70 +lnz,9,True,39.12261,-54.35,wqgakw2erh,82ED217D +oef,8,True,-19.21469,49.7,mlkq3lmpoa,5D7D0B2F +oxk,2,True,6.18132,35.81,kffncvel1n,195D9731 +xyb,0,False,94.44635,51.49,q2z1141bzo,E0040335 +hsj,7,False,9.96603,,2fenyteyv0,0C770350 +joe,2,True,20.57809,21.07,3vkpcoktln, +lsm,2,False,-2.22291,-30.86,qz8yhwhtpv,E50244F7 +btu,7,False,-83.82194,76.33,vljn4qyf2z,B099E981 +hsi,4,True,62.95865,-61.57,g8eltg4s7a,411FD027 +caz,8,False,-61.37197,83.12,98mic32nif,285B7CEB +vin,4,True,1.5643,-28.82,pjhx8l8kj6,9A3A63CE +fbp,5,False,65.6164,-24.22,pgk0mls7zx,B78A6A84 +ubz,5,False,-79.25501,,cxzxke40s2,D5AD76D6 +gnn,8,True,-51.50596,-6.19,mlxcwk0aaz,9BA860F9 +mjr,6,False,90.97367,79.88,tc6oy220bk,E53F00C5 +gyl,3,True,84.19594,,x3b3gy5cg4,9BA1870B +uzr,2,False,20.10128,37.57,gptpsaqfnw,04E2DD61 +nrg,8,True,-38.19374,26.2,jfxxz4em5y,7AFBD215 +kte,7,False,95.60236,96.25,51tld5cb5p,477D87A0 +ssj,8,False,-72.2554,14.07,y5pjkve8me,32DF75F9 +vbd,1,False,-3.68437,,,38AC00AB +dvq,6,False,-50.92821,-83.66,e5y4lb68x3,214484E7 +luz,5,False,-63.75605,-44.76,0u2na0xpb6,C12656D8 +wst,6,True,-91.15793,9.83,obc2ykx468,07F67B78 +dlk,0,True,55.89938,36.01,mpv5tpks0d,4DB1414B +ulz,6,True,-97.31966,32.1,s8a5sdpwzm,74B9968A +hdg,7,False,22.23926,-12.62,rl52jlchqe,AD209FAE +jcy,5,True,-75.62336,99.88,tma8m4j2sn,38374B50 +bpg,1,True,3.04068,25.9,,1361E994 +tpi,0,True,23.42907,35.62,bwxckme26n,3853F50B +hqr,0,True,-72.17098,-93.84,s0lflo1gte, +mnu,4,False,22.92084,43.17,mpgob99sm2,1C1047EF +osz,0,True,83.06355,6.15,t1a2g4jhtr,422457DA +ifo,1,False,26.30047,-38.04,8lnce8klmg,EA0C5E5D +hqg,2,True,77.6659,6.49,,4217CD92 +qdq,9,False,-18.41486,-1.27,a33ixeibhm,13EF422D +ndi,8,False,85.25677,28.13,,213E89A3 +sdd,8,False,66.89095,86.85,wmo0f4wwp7,8F7AAF14 +bzg,4,True,66.36968,-90.72,cqqhzom5cn,5552637B +lqt,9,False,8.29848,55.71,xsi5ib6o74,5D589CB5 +ulr,2,False,-92.21142,0.71,m0ub5uusit,22389BC1 +zqg,9,True,-73.19827,,vmqkp8nok8,3E2DCCE6 +huu,8,False,-87.01353,,q03dxo9rfj,734AF36C +wwp,0,False,-36.99709,80.0,h8wdsp8ssx, +jwi,9,False,29.02509,-95.72,62dei2osmn,109E05EA +bfi,0,True,-35.53184,-2.34,vb2k6d7jui,F58DD031 +rnd,4,True,8.43897,57.69,coqhcp4l0d,38C27E60 +egj,4,False,0.03912,75.15,zxy10kgfpc,60739493 +spa,6,True,52.42129,-17.31,fqgtzcksg0, +xlk,7,True,-62.6829,-5.06,wharal5yim,AE266097 +tyc,5,True,-47.46857,-24.32,jnlk20ilie, +ihi,8,True,74.03843,-94.65,ih2xjb1wzp,066FFEBD +yqu,8,True,96.25558,-76.87,sucl8sa4zw,588B701E +tgw,3,True,-68.19354,-66.29,bujw46jj1d,31F1ADA4 +yfv,7,True,96.79981,,13dir782ah,7EB0FFFB +vae,4,False,-77.0739,77.99,lowccbr5jj,0D887C4C +haq,6,True,84.83013,84.05,jokf8qvkru,A3DB437D +sxl,8,False,99.81488,-94.23,9sbbk43r42,0DCE127C +mpk,3,True,10.47376,73.55,zc3uryzglp,1B82FD73 +zyp,1,True,-55.82039,,4twe3aopwe, +olv,0,True,-35.63913,81.46,iggiuxxceb,5E17C07F +mas,0,True,93.01358,-14.38,nsz8p5aj58,EA363AB5 +ddm,4,True,69.04393,,vaz9alg51l,7C9C083B +wwi,0,False,14.27488,40.09,b1013xqbul,D09518E1 +ljx,4,False,-85.36738,93.48,fluynbfehx,4C2A8F1D +ahr,4,True,11.26663,54.98,k45u30x1ar,5E21312C +gca,7,False,-71.59532,37.14,9w346o6jrn,07D27E24 +hmp,4,True,-33.70771,,, +egy,2,False,-43.40369,93.66,eziyc3nbox, +efw,5,True,-63.23026,-2.53,c9qhqgxkcf,19C5D1DA +xth,4,True,-7.73158,28.02,8hfdrc6y5v,F3F797C1 +kzn,7,True,-63.05642,53.48,tszigcttbd,F2F85255 +vbc,6,False,-33.56306,72.88,udtqv8ygwk,44BC7A18 +lob,3,True,-87.44808,86.14,jxpucxy34q,309B0FF8 +sdm,1,False,-93.4749,-21.21,5q3pdg1lhw, +ohv,7,False,-78.1805,-38.54,zlk3osnbw7,A7DF3FFA +lrq,3,False,-1.75775,-39.75,nbpomu3cb9,C45FA967 +kjw,9,False,-57.87178,36.5,fl1tq7fl4y, +hke,1,True,21.44612,13.32,acqvr8le3j,90DB001B +ivc,5,False,36.44759,9.66,ng7abe6igp,35A201B4 +cuz,6,False,-9.74602,2.96,xk2e1m9w0c,432E06F1 +dbf,5,False,36.50614,,0jlpybrbyr,B9156EF3 +amc,5,True,51.10907,-77.17,wqv2lnboud,51C875E6 +osf,3,True,-29.21207,-63.56,8hijl4yoy6,E727BE3E +stl,5,True,-16.21516,15.37,e5fdcw1tyn,B557E53A +kak,7,False,-84.58801,4.4,usmxd4a62g,A59DBA3B +chx,4,True,29.14614,6.51,9s7yutgfqb,70891A12 +spb,1,False,-53.91555,-50.68,1yuuhv3fmb,F5E527B5 +pqy,7,False,-80.76398,-42.47,jvg2q2ph0w,894B155A +itr,5,False,81.51772,62.38,4xbymjklcy,9445C6B1 +fku,9,True,-89.10465,-34.66,x85jm90vml, +zey,1,True,-64.47223,88.82,u5o0eg8jz6, +igx,8,True,90.2517,-46.94,yohwqf9568,00A4FB1E +htr,2,True,29.61296,89.9,et7p01f96u,079ED40F +mxr,8,True,4.2607,84.24,48rrkfuqrp,4791C61F +loq,7,False,-6.0248,-21.62,,9FF21F7B +pww,3,True,34.89834,-93.12,glk3cf1vwk,DBA0A1E5 +eyy,9,False,-72.91925,88.12,,D5ABB404 +off,6,False,25.06358,-12.25,p1vbkx8228,390752E5 +anf,7,False,57.01214,,ioba8kkkjb,D6AA2895 +ics,6,True,21.8585,,wsaqrck062,818096F3 +vft,5,True,7.69972,-37.21,3hj5bhin1g,D32C9A66 +skq,0,True,-32.60545,-95.66,fkedptcoth,FCC5AB35 +gzl,9,False,-84.07152,50.53,gg6xo2rv9w,831CF8A4 +nze,7,False,-50.02007,49.95,9q6pgkldh8,45C73FFD +cjp,5,True,-42.29046,70.13,xcup2ec6bd,859942AE +jeh,6,True,-44.54892,24.49,345vf94pum,12120C80 +tta,1,False,52.72244,54.27,wvt1ax822s,3450F23F +rue,4,False,21.12292,62.52,bp46lr41jb,0F1E6F24 +ird,4,False,-58.75963,9.35,x4emkxqj52,AC3263E7 +ryr,9,True,0.5733,-12.16,jhk1d8zjk9,FB438D73 +tdt,7,True,28.03364,-83.86,1n7xghamym,A6B1AABB +ira,3,True,-30.90028,-24.53,5viz6sdt2h,6621270E +klj,5,True,11.62127,,u9j8aisk9t,0EC46226 +opv,9,True,-74.33331,-15.64,bth2r3m0so,F61ED925 +izm,3,True,-45.05419,76.57,86kplxulwr,FE1384EA +ahb,3,False,-68.39786,,j0wdy4ninv,299AB212 +fhw,6,True,85.7465,-90.79,o68yhroqqr,FCCD25B1 +kca,1,True,38.92677,4.87,zekioccdpj,B5EBCA8A +euo,9,True,62.88916,-62.45,f0bs83uxkz,A5AFB510 +rkr,8,True,37.36435,-48.06,hyjmysp6su,4F9070EF +wmk,0,True,20.5928,73.95,azp1fr7426,2DDBE289 +lqm,1,False,39.75779,25.96,es4w8n8zyo, +pek,2,False,58.41096,50.38,eg7jg6mmxe,C247CAFE +cyt,7,False,47.41002,-87.8,lk9i0iwu5g,73F8620A +fbz,5,False,24.14457,53.57,32e2qhczio,17302E93 +ahb,0,True,-77.99626,-35.5,4zu5u1ekja,9B2C9545 +ndp,3,False,-76.62756,70.8,c7cyq6yrij,CC0E5B60 +ofb,5,False,-62.91606,46.61,,37E2E070 +ree,9,True,57.39824,-27.26,cl90q5m77m,6818823D +vuk,6,True,-96.91324,86.95,r6pj5f56w9,AB93FE8A +gac,9,True,-43.83135,-70.78,, +qjs,5,True,-65.32955,58.05,g1xi9ajpe0,8F004E08 +awv,9,False,39.78101,-95.15,wx2uazh449,0B744BDB +kst,1,False,52.37429,8.49,ws8e2n9uva,F1FCD821 +kfq,9,False,57.85753,-86.24,50gjuozl6m,89754250 +hda,3,False,42.75197,-26.74,e8uc3r2jkl,42197094 +ocv,1,True,-42.76682,26.11,uo9ouss5cj,B5A1BFF5 +aql,5,True,-81.92672,67.27,rem0k6x1p8, +yqh,9,True,92.62305,13.64,,01092B9B +ofn,5,True,60.06291,27.23,1wh164cv5e,52B037D7 +vav,0,False,-9.63266,-2.25,lf2rhrs9gi,8215918D +rdb,9,False,59.17596,-91.13,eeksydth4g,C25C7B9E +kkv,9,True,10.78668,-79.33,evqgkkt2zk,36F2D3D9 +eap,5,False,-5.55439,-31.01,4i855rjj7j,FD9052F2 +jyt,5,False,-70.46792,,q07r0x3h9r,69AA1BED +nke,2,False,-22.54153,-33.85,dl8e3vs8pr,1F8C0570 +vzw,2,False,-87.37981,-63.54,,3AAD8B14 +tpp,7,False,-88.38345,-0.75,z70ejkvcvr,BFCF18FB +enk,0,False,24.27129,81.73,gkh78bkf5v,D8C598CF +qyt,6,False,-85.73994,-30.45,ok7zkwqjj3,E5D1DCB7 +zhq,7,False,-47.49775,83.05,,0081C037 +fme,1,False,99.80265,-0.19,1u894qswup,CDF35EED +gvv,5,False,26.58494,-24.57,2puovr08eo,FEC66F0C +zpq,7,True,-72.25266,73.19,9dnqwbq7t9,1F89D629 +hwk,9,False,-64.50015,-35.55,sl06plre5q,4E7BCDC1 +kju,8,True,-53.09093,-35.02,akv9wyk0ae,8227F214 +suk,1,False,-69.43942,-95.14,fon8qyalhj,0D5BCB5E +opo,9,False,-1.40573,31.72,quwctocmjb,A56FC07A +lrl,0,True,42.24514,-22.93,898198aoyn, +ijk,2,True,-75.2686,-4.75,qbhzeplma3,0D30C815 +ojz,6,True,-14.64045,53.51,oeuf3amxvu,E8DB3E9C +nwb,1,True,25.48567,-86.77,c4mjtxo602,807B54C3 +lyl,7,True,-66.98299,-83.68,4i8gqclz4t,4AC1448F +xoq,9,True,-46.17327,63.15,zvun1dkrhf,3B76BF5D +dmj,7,True,-35.79476,-60.91,, +jtn,7,False,66.57788,83.25,0d0jqpog0s,6A53B9E4 +ewy,6,False,-71.77414,77.31,htgj7vyo5l, +hdp,0,False,-16.99026,11.78,maodt4q166,31E86DB1 +psx,8,False,8.93553,25.99,99rsxjvlgr,0837E7D3 +nlx,3,False,59.02763,45.15,hxyifvcha7,9E3A1022 +xiy,2,False,40.03924,-2.78,,DA4C79C9 +cvr,1,False,59.04143,95.76,,71AC9A9F +hxj,0,True,37.84492,-53.06,9bg1hmgk5j,1E689D61 +rmz,3,False,-94.07416,-28.09,rknjh60o3j,53F664CF +hya,0,False,-61.32524,36.89,ibrbbgq7mm,303DAEB1 +jlb,3,True,84.92954,25.18,1xhzuuvlr9,95A32D52 +ulg,6,False,-96.04353,56.58,l8u7s5ovdd,D5F0F315 +kpj,9,True,58.45038,14.6,1d6u6v0dsr,8C58A081 +bmz,9,True,76.9262,49.56,khs0pywprm, +gzd,4,False,69.36159,-77.63,lv6jqd6alz,697F7669 +ldp,2,False,21.52741,89.58,rzsh9jjoq7,94C82302 +rrg,3,True,-59.22205,-77.43,rj8lrkqyzj,2EEE7708 +vpv,5,True,-32.22265,34.05,f6z35k3in2, +kqj,2,False,-44.85723,51.84,kfg2hg56z4,714BEE75 +qze,2,True,40.50639,-54.02,0ndw44cslx,E196C032 +nnp,3,True,-33.72814,-39.38,7f7t6uv0u2,293055E5 +myq,0,False,12.49748,-79.66,te0hjl2evb,F52706B0 +gpn,6,True,81.11256,33.4,,D47C8CA4 +cwz,1,False,-58.17542,76.36,qia6lk0p2a,C21C87D4 +xth,6,False,75.68936,-41.74,,DA404C5A +kgt,7,False,-89.59873,85.1,nsytuix1kc,34349691 +ypz,2,False,-20.13446,98.88,3wgtzee4pr,D9AF43CE +buz,9,False,50.81669,,ms6ve4x7az,8BDD777D +dqb,2,True,91.6281,-23.82,s39bb897q4,96629BC0 +bjr,3,True,-53.50486,44.75,,3CEEDD55 +ouv,7,True,-57.29669,2.18,xd51koklih,354FD12E +gaz,8,False,-78.26798,55.64,hjcy4j6y6t,CA50ED3D +yzp,4,True,-71.84129,-74.83,jefg47pvz3,07AB90B0 +dgz,7,False,-50.47906,23.83,orvriq3vnl,66F020CC +ish,1,True,-6.40374,43.29,otxxds0n6f,DA1B9E3B +phl,3,False,33.21003,26.49,nhsdy6oxiv,E28EB61C +rst,2,True,20.56619,-77.42,b9kl1lymeq,F5153A3B +skq,6,True,40.44707,,9fhj18950c,A7FF4D04 +urv,8,True,5.53515,-83.98,12qgcgy3li,86438F69 +zea,1,True,-47.24142,,uslffiynl9,D42AF5F1 +cju,5,False,47.35007,21.51,zyor2gbjof,0C955A47 +sap,7,True,50.24617,47.28,,0D7B1B7B +nlb,3,True,65.50424,-60.12,,B9ECD4B3 +gfq,4,True,77.68723,-19.84,vwvwnpcm3w, +ilr,8,True,-94.89069,-2.17,smnjkgieab,BECD6D1C +nac,6,False,75.83748,-46.74,gf64t4f7d8,35616CFB +lmi,7,True,48.40924,86.15,207p4inll0,4BF6E8C9 +pdf,8,False,40.6122,-84.3,wzd89ksaaj,BB7835B2 +nty,6,False,-33.33501,-69.68,8moagt9dpk,0462DC4D +lgp,4,True,64.36116,-72.09,gy4rsd9ac7,52E4BB59 +wds,8,False,95.64491,58.22,qwarh7g9rv,DF3D993E +ove,3,True,-20.4366,-9.77,9y31thnhrz,833474CD +xmx,6,True,-96.25012,-41.12,4gv47bel57,A2E78BFA +nsx,3,True,-31.50916,31.64,h7711hwvg1,F066AA57 +aqd,5,False,-89.41134,,5bv94ietdx,0338E5E0 +ehp,3,True,-84.11193,86.26,yhkkylo0de,4C8D3681 +rbu,7,False,-12.17905,56.19,imf0lnx1cy,A53D1094 +mqm,7,False,99.27984,-7.78,07v5j0q759,2CAB5F85 +sha,8,True,81.15802,-51.61,irswu1bzqc,98529804 +zbw,5,True,57.55981,35.85,3iwgoz26bw,1135670C +vrk,8,True,-3.97272,97.77,yijg0k153z,A1264DD4 +bgg,6,True,18.07534,34.36,,038B430A +yzl,0,True,18.67169,-28.15,xkf31ojwyt,9275B761 +ctr,0,True,-48.83444,0.54,q93xfel3pg,7B19622F +lyu,3,False,44.09232,-34.19,zj0vw29m1u,293AB636 +jui,0,True,55.32412,-34.29,lt170quf0t,C28A7048 +mhf,2,False,-37.39506,35.7,,7F96CDB4 +ggn,2,False,42.75741,-49.58,77jh2ps6b3,DED5B865 +dfj,2,True,43.84621,71.7,,BB9E9D42 +zwp,1,True,-78.36767,67.07,sqlrenk64c,653E524B +zca,9,True,42.43227,,u27s9ra2qi,92410937 +vlk,7,False,-24.07998,-85.14,y5cyfu078q,6D5927F7 +erv,7,True,40.37022,-67.44,a4kbq2r2nj,7F2EA6B5 +diy,1,True,85.23101,-15.64,x1gfnpcfb8,A3F62339 +fzu,7,False,10.60135,44.35,o5z1xi46d6,E1C95651 +ctj,2,True,54.81852,-72.28,fgjxwxmpzs,4AEADB3F +jkw,7,True,22.19208,86.97,d3yk7igzmo,92DB5BB9 +uvb,0,True,30.03783,,q2ugbw5ekr,83F0A3A8 +dsz,4,True,-35.21597,-23.51,5523swn00a, +ddy,2,True,-69.34412,39.54,wztjblgkk4,D5A50D2D +cag,1,True,-82.3025,84.86,86e9wi20ih,328DABA2 +yvr,8,False,-20.20492,72.38,8u6jhniunq,0EB9CD9B +bib,1,False,-37.09828,-50.11,uaiwvfuspk,1105C9BE +uus,6,False,-68.1172,19.48,9yruob0qbu,FDB41B6A +mpw,6,False,-8.10038,-63.09,v78nbv8fr1,007FB97D +spx,0,False,-23.69758,-82.54,,FBFDC6F9 +vhi,8,False,-98.9759,-27.97,155hc7i85c,31D05F62 +rdo,2,False,-48.33293,19.62,,8FB5744D +yux,6,True,-60.065,58.53,rfgkw7b035,689FC7FB +tof,0,False,-66.44759,-13.55,sa2e90hhg6,FFCDEFE2 +kbb,9,True,-27.9085,-39.3,j9nojftmx9,B88C5292 +vva,0,False,30.54377,-75.72,qtttxh55ja,5C79AE0E +tns,8,False,37.13089,-6.41,etnabw3qr6,4B6B4A25 +gzr,8,False,54.61578,-69.15,9gp9uv1j63,B2DBC02B +zhe,3,True,52.51296,92.59,jz8iwcwc8t,2719E774 +hjs,8,True,-72.16878,,,48989278 +gwf,3,True,-49.78452,,r1r9n1ciha,9E0A24CD +vlu,5,True,-5.58776,-73.66,o304oitbf2,35F824F7 +dug,3,True,74.04365,28.27,cwacafoiyj,94DFE0F1 +yol,9,False,62.31221,-32.09,upsnk1uvfk,FD9F7EEF +yot,3,False,40.21915,53.55,8urswfiumm,074B05CE +zyo,5,False,-20.95788,-88.11,x6jw15y034,45747846 +iaq,5,False,29.94659,-76.63,miqdky3m6r,55A7E51A +hup,4,True,20.84373,74.02,x22tmev4ld,D7E011AA +jmp,9,True,-5.15865,-8.44,z3us5gzi94, +ami,6,False,-48.85729,11.97,cypspbd1ek, +amw,6,False,-62.70448,-13.52,h23pqnw2w2,5491A8FC +yba,6,False,-17.02748,,tl9ygyjcas,F401CFD8 +cvh,4,True,16.53452,-62.62,t4gi6krphl,03850CF0 +bas,6,False,-99.2273,-10.58,zhd9sch6va,7D44BA89 +lkg,0,True,31.37711,-6.36,z2sebnlvuc,884C4572 +ijn,9,False,90.2981,-81.61,634ysnympq,DEAD9A37 +pcd,1,False,-37.71751,,be3sm0e5u3,5B0CFB0A +btr,9,True,62.61678,26.81,bbr0camflt,C6218ACB +dcg,5,False,-96.49769,19.74,kg168jbgdg,1AFF0976 +xok,3,False,1.23852,-66.99,fqmr11gfmd,485F35F3 +xeu,2,True,-17.97193,-56.8,wadn9h0t7g,0F008A1C +lvz,8,False,12.84177,-16.29,jb7rza21lp,B2E9E49C +tqq,0,False,10.13825,96.89,5kaafpl4dv,F254DBE9 +aqg,7,False,15.01869,9.6,0j83cur1f3,2B0B6656 +asp,0,True,-65.06953,-99.46,odfpi07lo0,8499CE2E +cyz,6,True,82.72469,-72.25,b6sr23v0ak,E55700A0 +cqt,5,False,-20.87642,-39.98,b4584uaij3,525E2039 +zhz,3,True,23.11471,-54.94,go170109xs,956CFD1A +vcs,1,False,-23.88982,54.09,t5iwhsw55t,22C1C03B +wah,6,True,-78.78792,,,2181473C +qlu,0,True,17.83184,89.77,ozn5e5jz9l,54FDC328 +zkh,1,False,-47.94792,26.66,myos85pt3k,7EDB35FD +kxo,4,True,1.2653,32.18,50uksl9zcm,31B0AC8C +yfp,6,False,84.85917,21.35,u2rpv35coj,CF220780 +gpa,0,False,88.4988,-87.16,,F40D7B99 +mof,0,True,98.36941,-22.31,j3cssybtwl,EB1DCF51 +hen,7,True,-87.4802,-0.61,lfxc1azcu6,BFE29E05 +hqb,0,False,11.13635,60.53,,F43495FE +apg,8,False,-42.46844,70.04,1jc6tq3ux1,DEBC42B2 +uoh,5,True,24.72354,37.3,6oi9s4pdhw,5850267D +xdw,8,False,-73.90888,77.8,uvb5qz8vtt,1C51D7CB +lrj,7,False,39.87964,-93.51,lwc6tdc0f0,7B8B003A +hvi,2,True,-51.53161,-87.9,sw2dpkuydi,C7C3AFD7 +cck,2,False,85.52596,97.32,imd424v88s,170FFFC7 +cgs,4,False,-19.15946,69.9,v384jzpcif, +duz,6,False,87.70079,-52.23,qxqzfgvqb6,94D5C476 +hlw,0,True,32.36029,33.4,r0wadquka7,70BC99F6 +kpr,6,False,-18.8355,68.55,f4cubp7ds4,53393549 +akc,8,False,-73.50312,18.23,o3nnnqdlg5, +elm,4,False,-48.53829,83.42,8wbee9vgq0,3DDE5C0A +tws,9,False,-25.30362,-96.12,9anpjjiskl,5AC87501 +xsw,2,True,1.7782,99.27,z7nqhwet71,D3BC4DD5 +prx,6,True,-28.67992,-12.96,kxro9ar0me, +rml,2,True,19.45709,-95.69,mu1x0c00yk,3778B1FF +feq,9,False,24.59717,-90.84,yzxw0f6suv, +xmy,5,True,14.71762,-81.28,kfund6m2aw,29C015A8 +den,8,False,51.19842,-99.08,m75bmqitcr,B96D9E31 +mkn,6,False,2.73808,-70.73,v6ch2zc7f3,51FC176A +olb,4,True,79.85099,-40.9,a0xcam2e41,F4AA84FB +tcg,9,True,-25.76344,27.91,0w75md4du3,62F4B73B +gnk,5,True,-54.35101,-74.18,v94eh1voph,2A05F2F1 +nno,2,False,-35.9511,-56.03,onszt47zbr,E9259C72 +wgv,8,False,-9.52927,,n75o3alcxi,C5872959 +jey,8,True,-12.37451,-89.18,,D25FEAE5 +bve,5,True,-89.0818,,hjeosud81m,DF3E2A64 +edx,0,False,18.13734,-60.11,u68v48sxcg,0D77D570 +pdn,4,False,73.79936,,q5ylckaiwq, +nds,9,True,-41.08906,88.28,jefbojmklb,D46B4A6E +izf,7,False,-73.64467,-8.14,0gxht2nvk4,B87C370A +nwp,6,True,4.73935,1.38,bgbfrokgg6, +efz,8,True,5.79434,50.12,q8g4yf6jy7,DD3CE4E4 +nhh,2,False,-50.5908,87.39,,EA278B89 +iqh,6,False,-42.54123,44.7,cruza3hwoj,E6D0851D +ncu,7,False,-5.67336,-61.86,pf5swfaoil,12B3D89F +rth,7,False,25.97273,46.19,i2za3qzn16,93236D2C +wno,0,True,43.83665,49.1,pwcqve0p7h,0AC4ED81 +cag,2,False,-72.52881,52.13,gdunaiir2t,B5F9A631 +lkg,1,True,76.7456,,,D72B9757 +txy,6,True,47.60011,,6zrlkt1ola,6D155E67 +kpy,6,False,91.34326,-53.38,6e0jwcepu3,0275D72C +pww,8,True,-40.8736,-59.35,8wtja12u9w,7F8EED1A +dnj,0,True,-95.8353,-51.42,cq5g3w4tdg,B6743F5F +dyr,7,True,0.05822,-37.08,p5fn40ckqz,8F32A0FC +lbx,5,False,2.74971,,bc7swfysad,4E25C01C +jvm,6,True,99.12739,19.77,,D23642D2 +hnc,5,False,-87.71326,-97.53,0dmzrebm9r,E9FBAEB0 +ocj,6,False,-53.07235,29.01,,EB5218E6 +fmv,3,True,-71.56719,20.1,b0y04a4cze,CD0D68D0 +epx,8,True,-29.83892,-56.94,nly153w36v,0A6AF4D4 +dlo,1,True,27.57126,38.6,,11DCA47B +eoi,6,False,21.17355,,j8omcu8vjg,BED66FD8 +sko,4,True,15.71767,23.31,jgzwel7e53,F3E133E5 +pzl,3,True,8.73282,,3q86n2tjcm,CD96EFC2 +bee,5,True,-16.74853,-87.55,ha5qefl4id,14628548 +wpn,6,True,-2.07616,-72.91,14loufepn3,B363067B +gfl,8,False,-49.70039,-8.29,5tf9sbksa9,41A23F62 +tfa,2,False,-58.17094,-77.16,kymgvbrpx7,CB3FB83F +sud,6,False,-86.78063,25.84,lqrdkaajif,C3489EE8 +bgj,1,False,-14.31904,75.91,9iv8lzdbh1,C8E46CA0 +xjs,9,False,-76.86774,99.3,td0u9k8qri,13242665 +ejh,9,False,-68.60567,46.31,, +ipi,6,True,70.39145,12.77,4upmpptzyw,48A1FB24 +eor,4,True,58.40989,62.79,dyjq4nb8xd,6100A299 +hgs,6,True,32.38295,58.16,01zu27hojr,645470BF +fdx,5,True,-27.16574,-99.02,xk8d8foual,FCE89CD6 +xts,9,True,-75.04341,-47.82,kupme2ekw2,0A1D6E97 +wup,3,True,73.79646,74.16,u8vrotusfj,2EF90193 +kvu,0,False,29.4701,46.84,,D396BE52 +wmi,6,True,72.23368,79.64,flnu8yl7cc, +tuz,7,False,-62.05303,55.11,9p9vheoz9z, +www,5,False,27.07191,-70.69,,27839CD0 +yla,7,True,-51.1383,30.77,8sqwsn0tem,F43F0C8F +wfa,7,False,46.70482,59.52,u6xf0cdo0c,510192D4 +doz,3,False,-23.13849,24.02,6x2mu8frrc,1F903FBC +zgk,7,False,75.15079,63.17,bta39uku6x,358B2FCD +xwy,8,False,-76.77224,97.41,4thj9fdbsy,A3A69085 +lnu,1,False,93.2577,-83.94,rl4uynk77y,71389C7B +vsw,2,False,42.61087,31.94,cp8xxc5h2f, +nye,8,True,32.4313,79.96,qbuspw5yp4,F31F5B84 +ugv,4,False,-21.29608,78.72,0t8h2qsy7o,8DCEFF2A +clw,1,True,-46.18909,56.35,z4prea4978,0C282F59 +wao,9,False,-89.15829,,,33D744E9 +fte,3,False,87.45829,37.72,3hpb321t9b,C972F61E +pul,2,False,29.43735,-16.26,g5ujgat7ae,5FCEA899 +nts,8,False,-32.5621,57.36,,449817D0 +ril,0,False,55.73716,54.02,,E3BE6A0C +tee,0,False,-81.24884,73.94,ihbtbedeb1,0E7F4E4E +ngo,0,True,46.25005,13.72,mpair8fsym,6A60F39E +tna,6,True,-54.32977,-56.06,52r18c4z8h,805AE3A9 +qca,2,False,20.67957,,vu98e862v9,061012DB +zov,9,True,98.44994,32.36,mkj00fj4cm, +hfq,5,False,61.16894,,,B23441FF +ste,6,False,32.65587,92.02,u9o4w36jwj,03C4D518 +mco,6,True,27.70048,44.17,bcp1elw2m6,DD0BF42B +laz,0,False,64.03498,1.23,vk4xx9jdj4,47E4F934 +tjm,9,False,87.73605,16.02,0sbgbaqeak,3B13221F +bdv,9,True,-80.8027,-8.04,z58w079wms, +hbi,7,False,76.43199,50.2,1u81ilpcpc,285B0C7B +vkg,3,False,11.22672,-76.93,hryljrgp4x,6964690F +jny,6,False,-13.57396,49.51,cma904kv3p,BB20D097 +jzu,0,False,-31.82947,-42.73,9wzmc6jjhv,2CC7342F +pac,6,False,73.3127,47.54,sj1a302x14, +exj,0,True,15.27388,,edkbrtjnad,B7C63122 +pco,4,True,-14.83718,-98.06,,4F7BA15E +ufc,3,False,-21.44714,-86.12,m444gcjm5w,78974EBF +bxa,1,True,53.09041,88.08,jfxlo9cmjp,F1018E69 +nkf,6,True,-76.81019,-42.07,flnrvgi3s0,CF2523CF +dws,6,False,-23.1596,-56.53,oze3gvjflv,4E78F46E +umh,5,True,66.26374,55.09,ny386vunqi,48F857CB +vep,9,True,-92.79708,58.23,yhukpfq1mg,03693A0C +xao,0,False,76.0986,70.17,vn0r5gpc79,80C04A7E +jow,1,True,58.91797,32.69,gvx7uf3llf,2C6EA143 +ozx,4,True,72.24962,-2.64,5vu2ukerip,D5DA765A +eha,2,False,17.40732,,p285460fmx,F9305461 +bgd,0,True,-81.2965,-83.3,de9pas8qdf, +smh,5,False,54.5724,,jqn3trxtnr,C71E0587 +uxl,3,True,21.72028,-77.89,ayn1ka8n28,835DD227 +mif,7,False,8.06707,62.34,q43o7n9bfk,3A1D7C31 +cvq,3,False,31.99259,73.13,lnk2zcqkuf,57C82321 +ztc,1,False,-39.44367,-35.34,p6cc5q09sk,E3AD1FC9 +hmj,5,True,53.17061,,lrzi3mnuwz,DC0026B2 +mub,7,False,76.79554,36.75,,10B00C06 +esb,1,True,85.64739,-0.77,eb1w2vyam7,89D4F7AA +agp,7,True,3.8232,-36.02,6lyl89fak0,9AF68869 +usi,5,False,-88.2014,,5owejpuzde,497D7943 +jqv,1,True,40.69339,-2.54,h6ccabmey1, +ias,0,False,48.22232,33.89,8n3o9q534r,E5997AB5 +lib,6,True,57.14537,-58.93,wwtyzpe9cd,38BA8723 +mwg,0,True,-40.8436,,5b73bthacb,ABE8B743 +znt,5,False,-55.79351,71.33,0q9o4d6psu,2AA91E85 +kpg,5,True,-83.98603,,ua7fsrpr3b,A02A4FDA +itv,4,True,-36.635,39.97,3lldwjh52v,1C323AFD +egi,5,True,89.34856,80.33,x05enyzg0n,B5E343C9 +fab,9,False,14.67007,-71.52,p4x913zfs2,CA480309 +itm,5,True,25.64114,,thj4juit02,39856DCC +vyq,6,True,48.58183,,jt9rgrnmq9,FC8E71E8 +pnj,9,True,-38.18265,-44.09,db9mu87pho,50BE3861 +byy,5,False,-77.10629,-23.0,y7yxkicpqz,B4C9EFA2 +dwi,4,True,-99.29218,,qhi3oynmdj,3DBC4DD1 +qcp,6,True,-33.50435,33.17,,DEBAE1BD +hca,1,False,-38.26767,-98.11,0vzqcqb0vn, +hnp,6,True,-91.31878,-60.12,,2E7A27FB +qlt,7,False,-50.47702,-26.31,bct7s0166f,1052142F +mgo,7,False,9.28582,74.46,z919hgggaq, +ymh,3,True,81.22729,31.13,qz6akgfeky,C8B37678 +hhe,6,True,-35.03209,,75yoy8e5dy,B009EDF4 +kqf,4,False,-21.29721,-43.21,, +baw,3,False,-55.17629,-92.74,m7b711wbx3,2C4322CC +lmo,7,True,78.20481,-29.48,i4yqixiswr,27493C1E +skx,7,True,-60.70246,44.42,rcjzk879dc,E7393202 +kft,0,False,16.58199,-6.52,6l8sajuqnq,42B7E941 +ywe,6,False,95.67852,-42.99,7n0ux4sy0q,11EA57B6 +zlh,2,False,14.15473,-41.31,782j5d584e,75365C04 +tne,7,True,-92.35029,54.48,ldgnimeckk,67E1AA29 +ntz,1,True,-49.28672,50.12,4521ukpxuc, +gxb,8,False,-37.70954,,bu6ltk5ivw,20712C86 +wll,2,True,-1.59022,-68.58,e825x34cdt,85279CA7 +qlr,8,True,-96.83223,,xplg4kz678,D5E1E366 +gcu,0,True,-24.66544,-14.27,v3uwbp9ajz,C70607A8 +yio,3,False,10.84994,,phiohg5hki,3FECBDB6 +mbm,0,False,73.48797,29.74,518n5evh1v,5919E720 +jwe,5,True,41.12648,73.53,yzgoxpyid1,264B5866 +hpr,1,False,17.53597,87.73,eiemszsmt1,D2AEA33D +lqq,4,False,95.83488,-93.79,c1y5r49b0a,031EA033 +rey,3,False,64.64797,15.86,092ztvdla3,A43C0192 +tlk,7,False,71.51738,-7.94,,A47BEED4 +zbd,3,False,-35.0402,51.86,l6v61s7cpb,8A2E57B5 +htv,8,True,-32.17721,-69.38,wlvy4rk0im,3F727984 +tjm,1,True,86.51027,,,95BC5C85 +dke,9,True,11.91937,66.11,cef1yjipb0, +yba,7,True,53.21817,66.55,cy8o01b4d2,10621490 +skh,4,True,29.10801,99.72,,B16604DD +mkg,5,False,50.57344,-11.5,dpnddrixip,3E099B3F +ela,5,True,-34.13947,-90.27,,27385C3D +tko,9,False,-12.18515,-88.3,9293ion5ht,7A0B4B4B +iqg,5,False,-57.1812,-67.93,bv7nemogi6,A497B832 +eqd,7,False,-50.31859,-87.59,p012pg79sk,68230694 +tzf,6,True,-84.33318,,tcnsurrqtf,934B5481 +uop,0,False,73.20912,,9i03ebmg48,5936E462 +kek,3,False,75.64282,-83.35,6iybfjl2ut,8CB78683 +zdo,7,True,-91.02569,48.48,8zkv39dldp,7BD31E91 +vri,4,True,-6.16824,1.83,2ki8vhr4pk,A9C7538B +pbf,7,False,0.76122,-3.73,6gauff19fh,67D9B783 +jfe,4,True,59.93378,-90.8,oty18bawvh,95155D66 +pix,4,False,-12.41824,-59.19,0dvee3hwpp,63E02004 +sds,0,True,83.23091,-12.36,arm7055ktk,72FB9151 +yfg,2,False,7.65043,-1.27,tph61dxcda,2578548A +afp,0,True,-2.11404,77.67,0rpi5zgf0c,3C17D403 +tht,6,True,91.29434,-15.46,x4q89dgew1,C086D7D5 +sfg,3,False,-25.95653,-73.27,05s003ez0v,BD5DB351 +mnc,3,False,60.45839,-80.54,9a648rlls4,DBCDDC01 +aqi,1,True,-1.37246,69.38,t5xn1gm57s,8A6232F0 +tqa,3,True,-86.32468,-18.67,7fwnxcg5o7,B9EC0893 +fty,7,False,-85.96735,14.8,b82p4uwwdk,F0EAB716 +aii,8,True,-60.03808,97.17,, +fih,2,False,38.49749,-77.38,ctqiogrmsq,F27D8612 +nuo,1,False,-38.44858,83.92,pa5wh16a2w,DD1977DD +hyi,9,False,28.87559,67.65,f1v63lfkh7,0A5F2082 +tbj,7,True,7.78098,28.55,9zn4l6jv4h,03606DB1 +cgo,6,False,-34.5649,95.25,sl79ewka4f,67FFDA6F +hgr,3,True,40.54779,64.95,zy42viwgx2,BD7DFCC4 +aep,6,False,-39.47751,,cnxtjhntav,A12888E9 +vvb,6,False,20.87918,53.12,,A56C1CC9 +ghb,3,True,30.32505,33.06,35885zasll,349F52DC +vhx,5,False,77.30924,95.29,c3o95f7fkm,D4E96294 +tfa,3,False,-25.89636,-43.87,8t1g1szr18,18FE3C68 +uxo,6,True,26.51568,-66.26,q427u1j09o,B1ADBE22 +ebr,9,True,21.30526,-49.55,zbcq6g30w6,93EA72A0 +czq,4,True,37.27592,66.91,3saugsp5bz,2692AF8B +tkd,1,True,-82.30753,-84.42,tvapge3o1o,EDFC3605 +jeu,2,False,-81.90107,93.15,2t3afqpjwx,12818BC9 +izp,0,False,-98.54154,-53.81,aofx3a0tqi,BF77DEA2 +szz,7,True,-39.64146,-54.5,srwo6ton58,DCC65BCE +qwg,4,True,-15.72869,-87.98,8lcssu27kt,A0255AE3 +sxg,7,True,61.49421,-83.52,1v60ify16h,8EA8CBF7 +msg,5,True,5.9729,26.79,7n00hb3y58, +osv,3,False,-18.41537,88.02,b3nwlvj460,CB1FF8AA +yxj,5,False,21.53596,,x9h4gujkgx,EBBF2A4C +uya,4,True,-88.31136,-19.89,44nfurlz6s,DE78F068 +ydh,6,True,-58.22876,60.25,z9rjvrfkbx, +voo,5,False,29.76398,-89.72,0sh8k47g5t,C170E4FA +ruw,9,False,-37.28592,-0.26,tpr94hj9eg,C94EBCCB +jep,0,False,-68.6814,-83.21,l3t0jnic4p, +myy,3,False,-49.2288,-67.21,g3364du943, +hlb,8,False,-95.55218,-60.25,cn64cbb568,74E7B80E +hka,0,True,10.36152,34.48,qqnxynp7o8,17B909F1 +eec,0,False,-4.58349,77.41,205dc8tp04,3543156F +njo,9,True,47.35513,31.22,zqwn898uz6,DCC23C73 +cvf,0,True,19.93306,-61.21,p82qn7ew59,55B6AAFE +hul,5,False,95.13982,1.06,4debz9js77,7E8C1AF5 +zzx,7,False,20.83496,-0.58,akwjwgxfhr,BCB114CF +zqi,6,True,-78.70991,23.65,, +xrr,3,False,74.78934,33.3,q2lxtj08o0,B6A57C03 +jxc,4,True,52.86696,-70.54,e7yavra91y,3E292478 +oix,1,True,-5.84184,-57.86,q6snbklv33,629AA42B +xug,7,False,9.25397,-38.94,5liqv1i2ws,EFFE790F +bmk,9,False,56.3632,32.18,,F11FEE83 +yor,1,True,-84.32712,-95.78,pcda41i5vy,075E7F35 +tzh,9,True,88.51209,-0.99,5j3s0fmghz, +jxr,2,False,81.28709,-27.38,96new7nwsf,2EE16395 +lta,7,False,-78.05968,-27.46,f62bahu54a,EC342F33 +ovj,1,True,96.87991,36.83,nroiea5niy,57AF446F +okv,2,False,-42.46385,-52.87,, +rda,8,False,-37.09686,,r42yfajl45,FD270853 +zkb,8,False,11.72332,-24.04,fzre8tly3g,2BC5AA91 +iso,6,True,64.26774,9.52,c7ot0w7zqz, +ady,5,True,-26.11895,44.02,l3xw4o1l7p,9226DA4E +gyh,4,True,19.2569,83.77,oazgdjvh5c,E8A0DA85 +waf,9,False,-56.49092,-49.13,dilvqzl0d5,7C144C05 +rcs,6,False,-57.32881,88.05,3gwtbysxty,A1015C9C +htt,9,False,-60.05127,31.91,mdraad33er,1FA35058 +uhl,6,False,-35.31922,3.55,8f3148rehf,C8FE5FE1 +yvd,9,True,14.92619,-73.71,gpz8xklipy,19C9B2AB +lgr,8,False,-35.60143,-48.81,he765lff3s,5671FFC1 +fph,0,False,40.19211,59.69,jsnm5ym8vu,F4D0FA84 +dzx,6,True,29.06583,46.18,5tbayy0i72,E4C6BE69 +fmx,3,True,-3.68015,51.98,,9BA18C56 +ubx,0,False,-5.25293,-65.56,7kqz7186hg, +dqj,1,True,-72.85606,82.57,9tsdjx3xeg,0CE739B9 +djo,5,True,-88.02287,-77.06,ws5lujcidn, +lov,0,True,35.84764,-49.76,fmf9suo76n,795FABE7 +cdk,7,False,99.9309,-64.16,rorw7tyc0y,812B9E3D +riz,6,False,37.44515,-50.17,2yxml7qzdd,1F54FC26 +pfy,9,True,86.05759,29.49,b2ywe8ezwn,43C790E9 +paf,7,True,18.07671,-45.48,7nwcmlmleu,28E152A5 +qzy,9,False,96.02695,81.26,cla0pmoid5,D9C6399D +otq,8,True,-80.50454,40.53,jttyypoby8,5C891A04 +ppw,9,True,73.18814,-69.19,ilg0rg4cpc,30393C8A +wth,2,True,-81.6509,19.89,9hf9jqq4zw,E9D2596B +rnh,2,True,20.08172,97.17,knj3cyzrrt,487F1F8E +wnj,3,False,-79.05015,,jqupx1zkrb,23BAD16D +kmy,2,True,-89.96366,20.97,56w2hiv9v0,997B357E +geq,9,True,77.4087,-59.32,ek81ral2rt, +wax,8,False,98.3124,-11.84,cz8kd6tq3p,BAE0972A +rvo,6,False,32.1363,40.21,dblr29yjrx,507A7A24 +myv,2,False,-55.96033,80.48,nnctg9f1dn,AE757566 +zbi,3,False,84.25958,-39.66,djhpgqctv4,B620FE6A +vfp,1,False,51.37409,67.19,,62DD8DB0 +rxu,3,False,10.57202,-95.0,p3njp5vx66,4D1E8B27 +npv,7,True,-43.46645,,4t64kvtkbl,F62CC7F1 +xga,1,True,99.95267,-91.33,65e76fgl6t,B9B9D898 +pqz,4,False,72.954,36.04,8k9z0cf2tn,27F1B6B1 +pmv,9,False,-77.8934,75.65,etu4x8r4g7,CFE2004F +kon,9,True,-3.35148,19.74,86hfzxz8pt,3533DD5E +eku,3,True,-19.02667,51.68,3z7wh8x9n3,E8230740 +zpb,6,False,-54.5072,63.73,b77chk69v9,BA5AB9E9 +tvj,7,True,-74.1779,11.64,w9rnx71p0s,29830645 +kts,1,True,27.76475,-22.92,pf2me3on2d,9556F9E0 +oal,8,True,68.12995,89.1,,12E35157 +vvm,6,False,-84.37777,60.39,z2vxh4elsx,A9CC0C64 +qgy,2,False,-97.32799,95.95,vvl2hfg5lo,FEDF5AD2 +gis,1,False,-62.27354,-81.19,ba80fhyehc, +pje,0,False,-4.68048,-15.2,g953jpp2qx,66C53AB4 +ahl,5,False,-58.05299,-5.51,58jec2z8zn,BB2EEA59 +rfe,9,False,-18.0578,-8.05,tpvypytnk4,37F318ED +pgn,0,False,44.68249,16.75,e8at7bi3al,317D03C8 +uxs,1,True,-57.72695,-34.73,6kqctc3inh,CC94C273 +aax,0,True,-50.91148,-49.1,be8e9q5osd,A6D873AB +dvk,9,False,-45.03145,29.68,3kit32ug7q,59215EA6 +xkr,1,True,-57.6663,-10.16,lmvylbojs0,D478D667 +wyt,8,True,6.36016,71.19,v5kq2dgngj,0B999B6B +zfi,4,True,-25.55368,77.42,lazx00ntyp,86DA1549 +adp,5,False,-17.852,-68.36,zxzb4sblnb,3E291D25 +cod,2,True,-28.46826,-21.52,874f4ql7oq,49201CAA +wzl,5,True,0.75878,97.42,zug718mjy5,8CA3A4DB +dxo,4,False,-22.07706,17.64,3obavukmd0,CEAE6532 +myd,1,True,97.13049,38.22,qkcw3lko64,E43FB32E +bnf,7,False,-20.41221,97.66,6jw74i6a0r,9C20AC25 +yii,8,True,-0.2276,6.5,9o0g63ykqw,2FBED796 +tvx,2,False,-0.10348,77.49,7nsx8a90wk,9596B39F +gzz,4,False,-8.81833,42.98,bf3zov82og,20DBAD78 +ato,7,False,-65.68601,41.53,,3809A368 +wua,0,False,-53.19607,-49.25,0kpbg0ubye,2B193E80 +cwd,5,True,99.01448,23.48,74c5gdxsn9,66C80D25 +crz,2,False,21.05731,97.92,5fgzeva1dv,272FB3C4 +qzx,3,True,-3.26559,-37.97,6tai1mkrsj, +ysr,6,False,16.4717,,ldlivsr9rx,E8D39B57 +zro,1,False,78.92113,,84gastac9j,581568B5 +ocw,4,False,-74.66803,-1.12,ovqe4fymbb,3553F50A +lnj,5,False,24.56625,94.26,ra374hv5i1,C4070F6F +cfh,2,True,-20.42016,27.51,qn05yhckzx,C60E4583 +mvm,6,False,21.82046,,yafbreet2m,75EE15A9 +iya,9,False,-43.02379,11.23,359zh9wmop,94F0DB65 +ehy,1,True,-22.01376,,9stf78qnr5,2ACFA864 +zvt,5,True,-41.86822,,v8ybtdgug4,78DD5152 +lal,7,False,86.81514,-40.24,xhttcnuxt4,A0DC87E7 +rsf,2,False,44.07806,-53.99,m4x67evpls,E7EF4F7E +kti,4,False,-70.13872,-39.05,g6kqz6336w,1CF92569 +qct,4,True,77.302,2.87,4u2cz3inmc,A40404A3 +ujd,1,True,-97.74885,28.09,px5g4y3a6p,24D06725 +ueu,3,False,-24.04392,-53.28,,1C65DC64 +aac,4,True,-55.4639,67.39,j4i2ua7uft,4106A2DD +liz,0,True,22.25802,-27.85,oqkn4vbn0f,E9AF6C75 +pzb,9,False,-16.16291,67.96,,3A7264A5 +nzn,2,False,78.51289,96.79,a17eezyqi4,C376F87D +mdc,2,False,-17.56471,70.0,5szwy295k0,8522B613 +vhe,5,False,-10.04896,-35.21,fhrx3q2tuu,531C507E +cfy,4,True,-55.90412,39.02,52wxknyyf7,82DF9990 +rhm,0,False,-9.47045,,,DCB99023 +lhp,1,False,12.15067,-77.68,,0EDB906A +dyj,9,False,-10.5299,90.91,ktvkvlm005,F161B2A8 +muz,7,False,23.74579,,fu7w3q2pav,D84246BB +dxf,7,False,-18.29715,0.2,b19wap3j8h,74000CB4 +beq,0,False,67.34924,63.64,,05C9613B +jay,8,False,89.28135,57.71,esbsxqb8k8,0FA3FD1F +czt,5,False,71.89692,-56.77,odewivlq8c,A4C8D210 +yry,7,True,-36.42088,-68.33,6lrfpb3m0n,AE306619 +aiv,4,False,72.75104,-94.02,31utd417x2,F2418CCC +xyw,2,False,35.65057,1.55,tvyvwlgtn7,40E5EB22 +nxd,1,False,-70.51208,,jq8t5dy7qx,747FF85A +sin,4,True,-63.86048,-8.36,i1zkh9uzl6,5C7DA954 +ljv,9,True,81.59016,48.97,v5f5l81oha,541E9F63 +fko,5,False,73.77349,30.21,5ghof2huv7,2DC0D497 +vaa,4,False,29.17738,-20.45,jpm6ryl67c,A7587222 +qvk,4,True,85.64372,13.78,a8n9s4e0l3,C01AD816 +lal,6,True,-83.61365,-54.54,hvyqcf9t8r, +gog,6,True,-8.38476,-39.49,1wqb51pyh3,AA9D2DAB +coi,1,True,-85.05724,,,9B6BFE0E +rrl,8,False,-96.55996,,2j83krjet8,32B2170B +zpm,2,False,85.51865,-9.62,okkj6ug4xo,2310DF13 +rhd,4,False,-23.81333,-13.47,tol97nwu88, +csz,3,False,-94.07067,,mgovqepke6,F7D145FF +rij,8,True,-69.19807,-34.25,5zpgyl9n6b,7116F9D7 +sjc,0,False,60.00665,,,DE4A664A +jgq,5,False,22.96186,63.41,ciypsjazz8, +vwm,7,False,81.63028,53.53,0uzniehs4x, +bqf,8,True,51.45224,,3u9t7u20z9,6A1467E2 +nqj,3,False,-61.93121,-56.51,p6om6b8sqy,F6F4C111 +tki,2,True,-28.63227,42.07,1kpcf1df9n,346F9F13 +oeq,3,True,-50.73156,-87.0,t800ndq7an,7B62F5C0 +oop,6,True,51.28807,-1.19,41hj16ozf7,089F8E5A +kap,5,False,-0.55851,81.33,z1te0kwt6f, +tot,5,False,-47.24672,39.92,x7swvb180j,BE9E552C +hnv,0,False,-30.71108,-88.67,9a1zxmhnpq,96A6D7A5 +kql,3,False,43.92085,98.85,6ii5yfgxn0,1D510BBF +dcn,7,False,57.10676,30.35,jmbcmb2lah,07820147 +ekc,6,False,-68.02751,-17.31,alrhhoyfx2,9938AECC +ntu,5,True,-38.83862,-44.58,oa6rnaflwj, +yzj,4,True,-79.00244,37.47,,CD72A75A +qpk,8,False,50.99011,30.73,iictgb3i1x,22F650AE +qfd,9,True,99.69131,-97.39,or1eb3gdkd,064AE62D +clu,4,True,89.22916,80.48,w1jl0fsfl8,2CD00D98 +bnr,6,False,27.87092,85.44,e0b0ovc92x,EF7D0CDD +dwc,0,True,-3.64559,56.18,,91BE05E6 +lzo,6,True,-70.24382,28.02,fmzvmr1xt7,A281D3F5 +rfl,3,True,37.13222,,79zx196qui,1BF86C11 +vsm,4,False,-11.96246,-38.13,n84kisiig5,B4A7269A +pig,6,False,-0.97008,-99.72,kjsy5mqffi,F3284937 +ads,4,False,-45.56245,-50.36,i8cns1x6c7,2D2955AB +xob,2,False,-80.63072,-70.4,ech7swphwb,D21C52B3 +sau,4,False,3.86487,,4bft7juovp,3DC5B352 +jyu,4,False,-19.71598,67.42,7bfp7u2128,9310D7EB +gsd,7,True,-69.91119,-1.4,8r376bho0h,409D41FC +ivo,9,False,49.85408,-21.65,lrhzavhkxz,82CDF414 +lwh,2,False,46.47929,,4k94z02x72,25B72615 +vuc,7,False,16.04912,90.98,twu53zp6mk,34D093E0 +efk,4,True,66.73747,21.39,qwb4qmy834,C3984800 +dge,2,True,89.85949,61.92,xnrmt1906u,69FB098E +dlp,9,False,-85.71081,,fz2cqi6yna,572AE569 +uhi,0,False,-11.60956,-48.74,8c0c90lbba,9EEA5D7A +qxj,6,True,-22.64808,-13.05,ms5sd8yu38,627589E5 +won,5,True,-68.46771,-71.55,8u6z97gwdw,4D975027 +oxv,1,True,-12.53155,23.25,czjmykl9qf,8A45E104 +gak,5,False,-28.48998,-83.91,dzwu32zvxk,6A5E3987 +gfd,0,True,-33.99609,-89.03,w6b8h6mdyp,3FBFD038 +dkb,3,False,-61.79934,-51.01,,9E715BAA +dlz,0,False,34.82735,22.32,0dirwj0s9r,E27A155A +cmh,6,True,30.24708,-23.51,9bc6ayyeqj,6E64C5DF +qix,7,False,18.87299,32.59,cq13zik6kh,A368E2FB +kpi,6,False,58.98526,-31.33,qvpzq99s53,4AF3007F +ify,6,True,39.84949,84.7,s2eozcd32p, +qxv,3,True,95.94906,-99.77,ou49hhh7z1,B12021A3 +tnx,7,True,-11.98362,28.68,turg1paagt,DA9764AA +tdq,7,True,62.76398,80.74,1swk79wnbr,3AA552D8 +ulu,6,False,-95.72518,,,9067A613 +sfw,3,False,-97.24838,-24.15,8yyhbfki78,035E7810 +saw,7,True,-34.94641,-99.13,jkt7wpbciq, +pgl,1,False,95.32948,-78.74,,052BD087 +xbs,1,False,60.46049,-32.06,,B1BED614 +zot,2,True,16.71998,-30.14,mu5u4ail19,063EDD9B +aia,6,True,-69.60775,20.36,gt9waeo46o,5F2E5816 +ayt,2,True,-46.3823,-68.04,,3D68DB2E +sfi,3,True,77.85276,-90.33,tbfzldjj06,E900507C +fzc,8,True,-29.03189,69.72,on9szr32qh,EFBE6E4E +rrr,1,True,33.34777,65.84,,DC6770B6 +dgf,5,False,92.17459,88.98,jrav497fa5,772C6C75 +jmu,4,True,84.25473,-21.49,etfdznlgue,D5FFC471 +qas,1,True,31.78626,35.25,ybg6odbeka,591026A1 +uyu,9,False,-90.51375,39.59,iymb7r5lnq,8642BE70 +rnl,6,False,29.56727,,goy3qd6hvr,3B66F6F5 +iux,6,False,39.17642,-98.53,thqovz0tt5,DA92E0B8 +hwx,4,False,-36.0286,31.24,,52B4EBF0 +vja,7,True,73.74664,-3.13,5l382k5dva,C272CF3C +opu,5,False,-93.76489,83.69,htnb16x2hd,B4F05CA1 +hfv,1,False,-5.59502,38.83,otgddymcfg,866D31AC +rvj,5,False,-62.03082,63.74,,05D5DF70 +byh,5,False,41.37435,-26.12,u1lde6eifv,12A47A36 +whh,0,False,60.3151,-69.94,hq9b0kf0on,CAC9E0BD +cay,4,False,56.03459,-3.56,wn49hey6o2,BC10C0CE +dsw,5,False,27.10028,-7.16,,F366E08C +vie,1,False,23.42568,49.31,lr3hjx81ek,0899C3A0 +rkz,6,True,34.26488,-78.66,rpzv8dkoeb,61D2AB29 +shs,7,True,22.54717,-67.12,d5uxe1qpcv, +osf,3,True,-19.94238,-55.49,w8bq0l848m,5CB4493E +jpy,9,False,19.57841,-75.26,di47lf6ors,71E9E6B1 +omr,3,False,2.64624,78.92,nswlvjv0vn, +bey,0,False,15.13639,71.87,z3pb3c4rmp,43655A85 +emb,8,False,-77.97441,-5.82,gie4fzlyyi,6D3A29A2 +pdb,8,False,88.21081,,9ysfo7s7en,E879AA96 +qej,3,True,20.22042,83.43,5foy5jsmj0,CB655683 +lok,5,False,39.31933,,y4yuwk7kuu,C85A93C7 +hqq,1,False,-62.81403,44.72,azd3d3soqw,D9F4A4DF +haa,1,True,-87.81217,41.62,uy0hq0pt6w,DCAC1A6F +peg,0,False,-70.4539,-0.99,stznyy9ulw,825594A7 +ksr,1,True,-79.01854,19.12,cwrh1jnm3n,A2AE6D7D +yxz,7,True,-83.96048,71.46,cf5rl07goi,CE823E47 +kpa,0,False,98.51961,-59.35,2y9vf95jf7,6BF3D480 +uag,9,False,38.55968,44.77,,8A22BA44 +rcm,4,False,45.35221,36.57,uu73xmjz0e,FEF1EE58 +mfu,4,True,12.88639,-43.01,23sfry4f4c,4EF96F69 +txi,3,False,-48.96564,9.78,,4BA11AD9 +gyk,6,False,-18.84333,-39.04,em7326zenl,07A6AFA2 +kat,4,True,-5.98988,-1.88,2rc5zwscef,C6E69FA8 +nha,3,True,-48.02771,,4umlmonjwq,8A1F3ED3 +ugw,5,False,-62.56615,-9.8,,F36415C3 +ogg,1,False,-92.41781,-32.29,1ki0kpdwdy,DADDE4CD +grt,4,True,-77.13213,-70.91,9kfwz940fx,46EF11E8 +daq,1,True,45.22157,-61.56,dc08uzkt5v,2372A1DC +zfx,7,True,-64.42353,92.09,zw9zhutwjy,C8CD03BE +cxt,7,True,-83.52276,,ire02hebz8,1E58B8D0 +cbx,1,True,-46.81062,-29.27,2bgfxyjqr2,DEEAC372 +xyo,3,False,-59.85741,-92.66,t3v8e0d27d,900A95F4 +lzd,9,False,-11.44036,-8.93,gtqvuoj12v,1F45E1A0 +bbg,1,False,36.71701,62.8,3ge48hqwt4,AE150817 +ois,3,False,-41.95766,12.87,ox0nfbpxep,827C3AF9 +qdy,4,True,3.40434,,rph7vt7dvb,F119BB83 +fmi,6,True,-75.8507,24.71,bf3f4ah6gk,A6EC1CAC +jqg,4,False,94.71608,15.85,hgmu2ap6af,31132C06 +lhs,2,False,-81.8086,13.03,fgsgmr16aa,38671678 +vpq,9,False,63.74795,-95.15,nsg3ub8e3w,4A3F42A4 +irj,7,False,1.33145,,uqbk61nro7,9988E001 +ipv,5,True,61.66469,-84.22,w1lbv8ocqw,76EC7304 +xtn,2,True,94.28877,-37.92,m1695xfnhq,1E72B591 +exy,5,True,-12.68968,-67.03,c4nx54t4x0,A8D91550 +jcy,5,False,-64.76324,66.65,tw1vo2hzha,3BAD2F46 +wfy,9,False,-34.80072,33.31,hwyk7uqa4b, +dyc,0,True,16.32035,-93.47,qqkskdt24d, +ygq,6,False,39.10128,24.66,ybf6xhlbdr,4B6C1925 +vjb,3,False,21.41617,82.32,gaii5nhbnd,70A02CC6 +zcs,1,True,-28.70055,81.04,685w55zc4n,9D3A5109 +xhj,6,False,-73.38277,87.76,gw39di8jle,8634A77B +zch,8,True,-3.71003,12.7,w330c1s9i4,B3AF5E86 +lyy,2,True,31.42171,-96.68,2v86lhf9h2, +rxb,8,False,-5.25717,53.59,vke40rhc9o, +fjj,6,True,29.34413,-91.78,yugidtf4x6,5D0B4E3B +gej,7,False,-77.88015,-24.97,2p55sfgspa,31B4FCDA +lhm,6,True,83.87354,-12.45,7zo5bp4tn7,30F6772C +osk,3,False,-19.7621,41.46,,5E5393C8 +gbz,9,True,97.22736,84.83,pjskz4lb17,20CA103D +mwf,0,False,-16.31391,12.61,7ffyh22ds9,6B741075 +yfo,3,False,8.67066,-96.1,e8g9j6tj5u,3D5CC966 +gqv,5,False,11.39451,66.22,npud64vvch, +vif,2,False,65.38715,-0.35,va323z3eg2,51A0828D +tkl,5,True,-97.52702,-33.66,ju78q8c13h, +vij,7,True,16.72923,-86.43,e0gaowoutn,CBD2E6D0 +lzi,4,False,50.98045,34.67,s719ba39i9,AE4CAE32 +iso,9,True,2.49022,-91.9,ix4l31np94,FB232FBD +cfg,8,True,-36.5368,,wsh1ntv35g,88A2B160 +ezx,4,True,-36.39074,32.66,, +ert,6,False,-6.5485,-40.25,00rjcx8czg,84498291 +nfh,0,True,91.04027,-85.23,2lu5wv96p0,3B5D55CB +qfq,1,True,-23.20533,-9.74,gukjk8ebyz,067B1977 +tqn,9,True,-47.38332,11.25,hdspv4loc1,EB4DB575 +jie,3,True,19.53184,45.69,ujcg820bzc,F4F87F8C +bnd,9,True,-28.52442,77.08,qapqhatreq,D57C4EBE +wto,7,False,-14.645,41.66,h5wvf2xsyt,04414F8E +inv,7,True,61.44463,-85.86,sedltdvayr,5A927BAE +jvl,1,False,-17.33978,85.15,kwjuiusupn,AC9C552B +gsn,6,False,8.84444,46.8,uwdnl8ii5c,5DBDC4C3 +qqs,0,True,42.36741,40.33,v0gm5w6agu,7C5B65C8 +rjt,6,True,-3.85589,,d7112tnglz,AC1E0F13 +tbq,4,False,-71.59318,66.01,f95yz8dlg2,13EA9597 +iym,3,True,-73.81918,-90.22,pn0bo7vb8b,53A9682E +tca,9,True,44.93612,-71.93,hscukfinzn, +euy,4,True,77.19103,-47.65,mi3j5ee8o5,85604865 +erp,9,False,50.5045,-64.52,2f42l4m6pr,CDF0EC1E +zob,9,True,15.30399,-66.1,n1bbev0kni,4BAD4D73 +nqa,1,True,2.68343,-26.02,q9ftd6bl84, +nmh,7,False,-55.35717,92.96,uhyvru3azf,31B3DF92 +gsz,0,True,20.92734,-80.94,8hovg0v277,17448E2C +mzr,0,True,-16.38225,-14.59,kvhpufdglt,24A03569 +ezx,0,True,45.02442,98.21,rv1czim98g,A1BF50DE +xsu,7,False,-67.14507,3.73,fl17vb5hpa,88AF8BFA +lxz,6,False,96.48839,42.17,di5bg23zcb,81A0E81E +sjp,9,True,24.58604,23.87,a3h6b8dqz3,56B94AC5 +eyd,0,False,-73.71034,-84.12,ztpc1cm4hh,C9F290E7 +hbb,8,False,9.95319,-48.7,qr9ag5jfeg,F1B62AC6 +nkt,3,False,-99.28241,-47.94,xeqrkjazui,047EC3EC +dqy,1,True,-90.08635,-64.11,eyvntofdow,CB0EE3FF +ake,1,False,-25.17987,-76.17,,88E02AA0 +ebb,9,True,-96.76416,-95.89,bps8xuez6u,A04E8C28 +skd,9,True,-92.6801,-12.47,nxu54drart,EB971CB1 +pla,5,False,-6.93785,17.62,naiv8vwva6,DD3B7958 +sll,4,False,-49.67738,-97.19,,751F900A +pdo,8,False,-61.0957,-91.21,,2C7372B6 +qsw,5,False,10.3029,94.34,yupyrgpbal,4F10621E +ahy,9,True,-13.4174,66.43,,7E39603B +nee,8,False,-76.81191,57.94,57vtgwbciu, +brf,8,False,12.99913,-50.46,gkkgswz1e2,7D816B8E +dzv,5,False,-44.09825,33.76,qoro439607,47140BE1 +osq,0,True,29.84851,91.66,0arbpvpf7n,FC19A65B +amp,9,False,70.13947,69.83,eyrja6ltq4,7C8BB189 +qux,7,True,-19.856,25.46,hkzt94g59a,4C2E80F8 +xpn,7,True,32.71903,-17.99,7bj4v3tq7u,876059BB +ere,9,False,99.12359,-95.14,pmkii8tght,5098AC11 +igj,1,False,-7.51077,79.25,gds9e3i5z7,00335EA7 +emi,7,False,-2.32302,31.07,dao38hvvpx,54838732 +lwd,0,False,69.03561,68.32,7jtso2aosy,5BB33D6D +jaj,3,False,28.50096,99.41,wcktmi0xjy,00590B01 +ezp,8,False,6.45157,77.9,xe7ecexqtp,66BA53C7 +ijd,6,False,-5.02502,75.19,7ra96og8d7,25746FDC +myy,2,False,70.03788,49.06,r2bl69m6lm,6B2D6046 +wtl,7,True,-91.89852,-20.05,dznmfrj94w,E93DC0D4 +bbt,4,False,29.36766,27.93,6fx7nnitnj,BCBE5A71 +lxa,8,False,51.25393,-76.65,,2FB87B3B +dml,9,True,-57.25407,-34.22,ylmxp1a8ba,AB6DC6AA +ckx,2,False,5.02096,51.49,w7t6mm5fxg,B5E0D767 +fgs,5,False,-8.6333,82.91,59m1ppzk2u,207F3DBB +lzc,0,False,59.85365,98.78,ducyeu2kq9,9AF0A756 +dqz,3,True,-97.28403,84.83,,F2CE69D6 +pir,1,True,12.86711,-71.36,xj8bazaeg4,2BD8AB58 +kry,7,True,-61.10039,-67.12,zeky0kkowc, +nzt,5,True,32.99305,27.26,0vzxraxzig,43DE22F7 +svr,7,False,-65.87034,65.97,jfg3udg59b,AFB6FAED +ebu,8,False,-22.67106,-25.13,2wltfkhkew,B0FD593C +yra,0,True,-35.25385,-53.87,,2A45A035 +srt,5,False,-41.7922,60.94,ge5dhg8a9h,9DCE2166 +czk,9,False,83.67194,-42.02,gpdg832bs2,147AF5DA +szb,7,True,68.07287,32.13,wr3036tdc7,D20FE46B +isd,0,True,-1.48966,30.38,mapof2flo3,A80FF25C +ogo,6,False,56.15916,,8otfqvels1,7ADDE65D +qby,5,True,8.63804,68.61,et6ykdpjug,CD9E9C78 +few,4,False,71.36112,50.91,6x9rf3fko2,5DEA01AF +zdb,8,False,-77.71685,-13.97,4gd42pbxaj,158F68A4 +ivn,2,True,9.22935,-88.75,76cpjvs74d,F8388FCB +ffl,0,True,70.99931,6.75,dts6u7k8xu,7D4FEE75 diff --git a/test/Table_Tests/src/Aggregate_Column_Spec.enso b/test/Table_Tests/src/Aggregate_Column_Spec.enso index 920fe6f5c2fc..021009aa0a41 100644 --- a/test/Table_Tests/src/Aggregate_Column_Spec.enso +++ b/test/Table_Tests/src/Aggregate_Column_Spec.enso @@ -6,7 +6,7 @@ from Standard.Table.Data.Aggregate_Column import all import Standard.Test spec = Test.group "Aggregate Columns" <| - simple_table = Table.new [["count", [1, 2, Nothing, 3, Nothing]], ["is_valid", [Nothing, False, True, False, Nothing]], ["float", [1, 2.1, 3.4, 5.6, Nothing]], ["text", ["A", "", Nothing, "B,C", Nothing]]] + simple_table = Table.new [["count", [1, 2, Nothing, 3, Nothing]], ["is_valid", [Nothing, False, True, False, Nothing]], ["float", [3.4, 1, 5.6, 2.1, Nothing]], ["text", ["A", "", Nothing, "B,C", Nothing]]] text_col = simple_table.at "text" bool_col = simple_table.at "is_valid" float_col = simple_table.at "float" @@ -134,8 +134,55 @@ spec = Test.group "Aggregate Columns" <| test_aggregator simple_table (Count_Distinct "count" test_name) test_name 4 test_aggregator simple_table (Count_Distinct int_col test_name) test_name 4 test_aggregator empty_table (Count_Distinct 0 test_name) test_name 0 + test_aggregator simple_table (Count_Distinct float_col test_name ignore_nothing=False) test_name 5 + test_aggregator simple_table (Count_Distinct float_col test_name ignore_nothing=True) test_name 4 Test.specify "should be able to count distinct items on a multiple sets of values" <| test_aggregator simple_table (Count_Distinct [0, 1]) "Count Distinct count is_valid" 5 + test_aggregator simple_table (Count_Distinct ["is_valid", "float"]) "Count Distinct is_valid float" 5 + test_aggregator simple_table (Count_Distinct ["is_valid", "float"] ignore_nothing=True) "Count Distinct is_valid float" 4 + + Test.specify "should be able to get the minimum of a set of values" <| + test_aggregator simple_table (Minimum -2) "Minimum float" 1 + test_aggregator simple_table (Minimum -2 test_name) test_name 1 + test_aggregator simple_table (Minimum "float" test_name) test_name 1 + test_aggregator simple_table (Minimum float_col test_name) test_name 1 + test_aggregator empty_table (Minimum 0 test_name) test_name Nothing + + Test.specify "should be able to get the maximum of a set of values" <| + test_aggregator simple_table (Maximum -2) "Maximum float" 5.6 + test_aggregator simple_table (Maximum -2 test_name) test_name 5.6 + test_aggregator simple_table (Maximum "float" test_name) test_name 5.6 + test_aggregator simple_table (Maximum float_col test_name) test_name 5.6 + test_aggregator empty_table (Maximum 0 test_name) test_name Nothing + + Test.specify "should be able to get the shortest of a set of texts" <| + test_aggregator simple_table (Shortest -1) "Shortest text" "" + test_aggregator simple_table (Shortest -1 test_name) test_name "" + test_aggregator simple_table (Shortest "text" test_name) test_name "" + test_aggregator simple_table (Shortest text_col test_name) test_name "" + test_aggregator empty_table (Shortest 0 test_name) test_name Nothing + + Test.specify "should be able to get the longest of a set of texts" <| + test_aggregator simple_table (Longest -1) "Longest text" "B,C" + test_aggregator simple_table (Longest -1 test_name) test_name "B,C" + test_aggregator simple_table (Longest "text" test_name) test_name "B,C" + test_aggregator simple_table (Longest text_col test_name) test_name "B,C" + test_aggregator empty_table (Longest 0 test_name) test_name Nothing + + Test.specify "should be able to get the mode of a set of numbers" <| + mode_table = Table.new [["tests", [1,2,3,4,2,4,1,2,3,4,2,1,3,5,2,1,2,4,5,2,1,2,3,5,6,1,2,2]]] + test_aggregator mode_table (Mode -1) "Mode tests" 2 + test_aggregator mode_table (Mode -1 test_name) test_name 2 + test_aggregator empty_table (Mode 0 test_name) test_name Nothing + + Test.specify "should be able to get the percentile of a set of numbers" <| + percentile_table = Table.new [["tests", [67,23,56,93,36,47,45,1,88,44,49,13,74,76,4,97,49,81,81,37]]] + test_aggregator percentile_table (Percentile 0 0) "0%-ile tests" 1 + test_aggregator percentile_table (Percentile 0 -1 test_name) test_name 1 + test_aggregator percentile_table (Percentile 0.15 0) "15%-ile tests" 21.5 + test_aggregator percentile_table (Percentile 0.25 0) "25%-ile tests" 36.75 + test_aggregator percentile_table (Percentile 0.66 0) "66%-ile tests" 70.78 + test_aggregator empty_table (Mode 0 test_name) test_name Nothing main = Test.Suite.run_main here.spec diff --git a/test/Table_Tests/src/Group_By_Spec.enso b/test/Table_Tests/src/Group_By_Spec.enso new file mode 100644 index 000000000000..d377de4941f7 --- /dev/null +++ b/test/Table_Tests/src/Group_By_Spec.enso @@ -0,0 +1,406 @@ +from Standard.Base import all + +import Standard.Table +import Standard.Table.Data.Column_Selector +from Standard.Table.Data.Aggregate_Column import all + +import Standard.Test + +spec = + file_contents = (Enso_Project.data / "data.csv") . read + table = Table.from_csv file_contents + empty_table = Table.new <| table.columns.map c->[c.name, []] + + find_row key table = + 0.up_to table.row_count . find i-> + 0.up_to key.length . all j-> (table.columns.at j . at i)==(key.at j) + + Test.group "Table.group_by should summarize whole table " <| + grouping = Column_Selector.By_Index [] + Test.specify "should be able to count" <| + grouped = table.group_by grouping [Count Nothing] + grouped.row_count . should_equal 1 + grouped.columns.length . should_equal 1 + grouped.columns.at 0 . name . should_equal "Count" + grouped.columns.at 0 . at 0 . should_equal 2500 + + Test.specify "should be able to count missing values" <| + grouped = table.group_by grouping [Count_Nothing "Hexadecimal", Count_Not_Nothing "Hexadecimal", Count_Empty "TextWithNothing", Count_Not_Empty "TextWithNothing"] + grouped.row_count . should_equal 1 + grouped.columns.length . should_equal 4 + grouped.columns.at 0 . name . should_equal "Count Nothing Hexadecimal" + grouped.columns.at 0 . at 0 . should_equal 236 + grouped.columns.at 1 . name . should_equal "Count Not Nothing Hexadecimal" + grouped.columns.at 1 . at 0 . should_equal 2264 + grouped.columns.at 2 . name . should_equal "Count Empty TextWithNothing" + grouped.columns.at 2 . at 0 . should_equal 249 + grouped.columns.at 3 . name . should_equal "Count Not Empty TextWithNothing" + grouped.columns.at 3 . at 0 . should_equal 2251 + + Test.specify "should be able to count distinct values" <| + grouped = table.group_by grouping [Count_Distinct "Code", Count_Distinct "Index", Count_Distinct "Flag", Count_Distinct ["Index", "Flag"]] + grouped.row_count . should_equal 1 + grouped.columns.length . should_equal 4 + grouped.columns.at 0 . name . should_equal "Count Distinct Code" + grouped.columns.at 0 . at 0 . should_equal 2333 + grouped.columns.at 1 . name . should_equal "Count Distinct Index" + grouped.columns.at 1 . at 0 . should_equal 10 + grouped.columns.at 2 . name . should_equal "Count Distinct Flag" + grouped.columns.at 2 . at 0 . should_equal 2 + grouped.columns.at 3 . name . should_equal "Count Distinct Index Flag" + grouped.columns.at 3 . at 0 . should_equal 20 + + Test.specify "should be able to sum, average and standard deviation of values" <| + grouped = table.group_by grouping [Sum "Value", Sum "ValueWithNothing", Average "Value", Average "ValueWithNothing", Standard_Deviation "Value", Standard_Deviation "ValueWithNothing", (Standard_Deviation "Value" population=True), (Standard_Deviation "ValueWithNothing" population=True)] + grouped.row_count . should_equal 1 + grouped.columns.length . should_equal 8 + grouped.columns.at 0 . name . should_equal "Sum Value" + grouped.columns.at 0 . at 0 . should_equal -932.411550 epsilon=0.000001 + grouped.columns.at 1 . name . should_equal "Sum ValueWithNothing" + grouped.columns.at 1 . at 0 . should_equal 2757.09 epsilon=0.000001 + grouped.columns.at 2 . name . should_equal "Average Value" + grouped.columns.at 2 . at 0 . should_equal -0.372965 epsilon=0.000001 + grouped.columns.at 3 . name . should_equal "Average ValueWithNothing" + grouped.columns.at 3 . at 0 . should_equal 1.228650 epsilon=0.000001 + grouped.columns.at 4 . name . should_equal "Standard Deviation Value" + grouped.columns.at 4 . at 0 . should_equal 56.708660 epsilon=0.000001 + grouped.columns.at 5 . name . should_equal "Standard Deviation ValueWithNothing" + grouped.columns.at 5 . at 0 . should_equal 58.588610 epsilon=0.000001 + grouped.columns.at 6 . name . should_equal "Standard Deviation Value_1" + grouped.columns.at 6 . at 0 . should_equal 56.697317 epsilon=0.000001 + grouped.columns.at 7 . name . should_equal "Standard Deviation ValueWithNothing_1" + grouped.columns.at 7 . at 0 . should_equal 58.575554 epsilon=0.000001 + + Test.specify "should be able to create median, mode and percentile values" <| + grouped = table.group_by grouping [Median "Index", Median "Value", Median "ValueWithNothing", Mode "Index", Percentile 0.25 "Value", Percentile 0.40 "ValueWithNothing"] + grouped.row_count . should_equal 1 + grouped.columns.length . should_equal 6 + grouped.columns.at 0 . name . should_equal "Median Index" + grouped.columns.at 0 . at 0 . should_equal 5 epsilon=0.000001 + grouped.columns.at 1 . name . should_equal "Median Value" + grouped.columns.at 1 . at 0 . should_equal 1.298375 epsilon=0.000001 + grouped.columns.at 2 . name . should_equal "Median ValueWithNothing" + grouped.columns.at 2 . at 0 . should_equal 2.235 epsilon=0.000001 + grouped.columns.at 3 . name . should_equal "Mode Index" + grouped.columns.at 3 . at 0 . should_equal 7 + grouped.columns.at 4 . name . should_equal "25%-ile Value" + grouped.columns.at 4 . at 0 . should_equal -49.962710 epsilon=0.000001 + grouped.columns.at 5 . name . should_equal "40%-ile ValueWithNothing" + grouped.columns.at 5 . at 0 . should_equal -17.960000 epsilon=0.000001 + + Test.specify "should be able to get first and last values" <| + grouped = table.group_by grouping [First "Index", Last "Value"] + grouped.row_count . should_equal 1 + grouped.columns.length . should_equal 2 + grouped.columns.at 0 . name . should_equal "First Index" + grouped.columns.at 0 . at 0 . should_equal 7 + grouped.columns.at 1 . name . should_equal "Last Value" + grouped.columns.at 1 . at 0 . should_equal 70.99931 epsilon=0.000001 + + Test.specify "should be able to get minimum and maximum values" <| + grouped = table.group_by grouping [Minimum "Value", Maximum "Value", Minimum "ValueWithNothing", Maximum "ValueWithNothing"] + grouped.row_count . should_equal 1 + grouped.columns.length . should_equal 4 + grouped.columns.at 0 . name . should_equal "Minimum Value" + grouped.columns.at 0 . at 0 . should_equal -99.964200 epsilon=0.000001 + grouped.columns.at 1 . name . should_equal "Maximum Value" + grouped.columns.at 1 . at 0 . should_equal 99.977480 epsilon=0.000001 + grouped.columns.at 2 . name . should_equal "Minimum ValueWithNothing" + grouped.columns.at 2 . at 0 . should_equal -99.99 epsilon=0.000001 + grouped.columns.at 3 . name . should_equal "Maximum ValueWithNothing" + grouped.columns.at 3 . at 0 . should_equal 99.95 epsilon=0.000001 + + Test.specify "should be able to get shortest, longest and concatenated values" <| + grouped = table.group_by grouping [Shortest "TextWithNothing", Longest "TextWithNothing", Concatenate "Code"] + grouped.row_count . should_equal 1 + grouped.columns.length . should_equal 3 + grouped.columns.at 0 . name . should_equal "Shortest TextWithNothing" + grouped.columns.at 0 . at 0 . should_equal "f5" + grouped.columns.at 1 . name . should_equal "Longest TextWithNothing" + grouped.columns.at 1 . at 0 . should_equal "setp295gjvbanana" + grouped.columns.at 2 . name . should_equal "Concatenate Code" + grouped.columns.at 2 . at 0 . length . should_equal 7500 + + Test.group "Table.group_by should summarize empty table " <| + grouping = Column_Selector.By_Index [] + Test.specify "should be able to count" <| + grouped = empty_table.group_by grouping [Count Nothing] + grouped.row_count . should_equal 1 + grouped.columns.length . should_equal 1 + grouped.columns.at 0 . name . should_equal "Count" + grouped.columns.at 0 . at 0 . should_equal 0 + + Test.specify "should be able to count missing values" <| + grouped = empty_table.group_by grouping [Count_Nothing "Hexadecimal", Count_Not_Nothing "Hexadecimal", Count_Empty "TextWithNothing", Count_Not_Empty "TextWithNothing"] + grouped.row_count . should_equal 1 + grouped.columns.length . should_equal 4 + grouped.columns.at 0 . name . should_equal "Count Nothing Hexadecimal" + grouped.columns.at 0 . at 0 . should_equal 0 + grouped.columns.at 1 . name . should_equal "Count Not Nothing Hexadecimal" + grouped.columns.at 1 . at 0 . should_equal 0 + grouped.columns.at 2 . name . should_equal "Count Empty TextWithNothing" + grouped.columns.at 2 . at 0 . should_equal 0 + grouped.columns.at 3 . name . should_equal "Count Not Empty TextWithNothing" + grouped.columns.at 3 . at 0 . should_equal 0 + + Test.specify "should be able to count distinct values" <| + grouped = empty_table.group_by grouping [Count_Distinct "Code"] + grouped.row_count . should_equal 1 + grouped.columns.length . should_equal 1 + grouped.columns.at 0 . name . should_equal "Count Distinct Code" + grouped.columns.at 0 . at 0 . should_equal 0 + + Test.specify "should be able to sum, average and standard deviation of values" <| + grouped = empty_table.group_by grouping [Sum "Value", Average "ValueWithNothing", Standard_Deviation "Value", (Standard_Deviation "ValueWithNothing" population=True)] + grouped.row_count . should_equal 1 + grouped.columns.length . should_equal 4 + grouped.columns.at 0 . name . should_equal "Sum Value" + grouped.columns.at 0 . at 0 . should_equal Nothing + grouped.columns.at 1 . name . should_equal "Average ValueWithNothing" + grouped.columns.at 1 . at 0 . should_equal Nothing + grouped.columns.at 2 . name . should_equal "Standard Deviation Value" + grouped.columns.at 2 . at 0 . should_equal Nothing + grouped.columns.at 3 . name . should_equal "Standard Deviation ValueWithNothing" + grouped.columns.at 3 . at 0 . should_equal Nothing + + Test.specify "should be able to create median, mode and percentile values" <| + grouped = empty_table.group_by grouping [Median "Index", Mode "Index", Percentile 0.25 "Value"] + grouped.row_count . should_equal 1 + grouped.columns.length . should_equal 3 + grouped.columns.at 0 . name . should_equal "Median Index" + grouped.columns.at 0 . at 0 . should_equal Nothing + grouped.columns.at 1 . name . should_equal "Mode Index" + grouped.columns.at 1 . at 0 . should_equal Nothing + grouped.columns.at 2 . name . should_equal "25%-ile Value" + grouped.columns.at 2 . at 0 . should_equal Nothing + + Test.specify "should be able to get first and last values" <| + grouped = empty_table.group_by grouping [First "Index", Last "Value"] + grouped.row_count . should_equal 1 + grouped.columns.length . should_equal 2 + grouped.columns.at 0 . name . should_equal "First Index" + grouped.columns.at 0 . at 0 . should_equal Nothing + grouped.columns.at 1 . name . should_equal "Last Value" + grouped.columns.at 1 . at 0 . should_equal Nothing + + Test.specify "should be able to get minimum and maximum values" <| + grouped = empty_table.group_by grouping [Minimum "Value", Maximum "ValueWithNothing"] + grouped.row_count . should_equal 1 + grouped.columns.length . should_equal 2 + grouped.columns.at 0 . name . should_equal "Minimum Value" + grouped.columns.at 0 . at 0 . should_equal Nothing + grouped.columns.at 1 . name . should_equal "Maximum ValueWithNothing" + grouped.columns.at 1 . at 0 . should_equal Nothing + + Test.specify "should be able to get shortest, longest and concatenated values" <| + grouped = empty_table.group_by grouping [Shortest "TextWithNothing", Longest "TextWithNothing", Concatenate "Code"] + grouped.row_count . should_equal 1 + grouped.columns.length . should_equal 3 + grouped.columns.at 0 . name . should_equal "Shortest TextWithNothing" + grouped.columns.at 0 . at 0 . should_equal Nothing + grouped.columns.at 1 . name . should_equal "Longest TextWithNothing" + grouped.columns.at 1 . at 0 . should_equal Nothing + grouped.columns.at 2 . name . should_equal "Concatenate Code" + grouped.columns.at 2 . at 0 . should_equal Nothing + + Test.group "Table.group_by should not summarize empty table when grouped " <| + grouping = Column_Selector.By_Index [0] + Test.specify "should be able to count" <| + grouped = empty_table.group_by grouping [Count Nothing] + grouped.row_count . should_equal 0 + grouped.columns.length . should_equal 2 + grouped.columns.at 0 . name . should_equal "Code" + grouped.columns.at 1 . name . should_equal "Count" + + Test.specify "should be able to count missing values" <| + grouped = empty_table.group_by grouping [Count_Nothing "Hexadecimal", Count_Not_Nothing "Hexadecimal", Count_Empty "TextWithNothing", Count_Not_Empty "TextWithNothing"] + grouped.row_count . should_equal 0 + grouped.columns.length . should_equal 5 + grouped.columns.at 0 . name . should_equal "Code" + grouped.columns.at 1 . name . should_equal "Count Nothing Hexadecimal" + grouped.columns.at 2 . name . should_equal "Count Not Nothing Hexadecimal" + grouped.columns.at 3 . name . should_equal "Count Empty TextWithNothing" + grouped.columns.at 4 . name . should_equal "Count Not Empty TextWithNothing" + + Test.specify "should be able to count distinct values" <| + grouped = empty_table.group_by grouping [Count_Distinct "Code"] + grouped.row_count . should_equal 0 + grouped.columns.length . should_equal 2 + grouped.columns.at 0 . name . should_equal "Code" + grouped.columns.at 1 . name . should_equal "Count Distinct Code" + + Test.specify "should be able to sum, average and standard deviation of values" <| + grouped = empty_table.group_by grouping [Sum "Value", Average "ValueWithNothing", Standard_Deviation "Value", (Standard_Deviation "ValueWithNothing" population=True)] + grouped.row_count . should_equal 0 + grouped.columns.length . should_equal 5 + grouped.columns.at 0 . name . should_equal "Code" + grouped.columns.at 1 . name . should_equal "Sum Value" + grouped.columns.at 2 . name . should_equal "Average ValueWithNothing" + grouped.columns.at 3 . name . should_equal "Standard Deviation Value" + grouped.columns.at 4 . name . should_equal "Standard Deviation ValueWithNothing" + + Test.specify "should be able to create median values" <| + grouped = empty_table.group_by grouping [Median "Index", Mode "Index", Percentile 0.25 "Value"] + grouped.row_count . should_equal 0 + grouped.columns.length . should_equal 4 + grouped.columns.at 0 . name . should_equal "Code" + grouped.columns.at 1 . name . should_equal "Median Index" + grouped.columns.at 2 . name . should_equal "Mode Index" + grouped.columns.at 3 . name . should_equal "25%-ile Value" + + Test.specify "should be able to get first and last values" <| + grouped = empty_table.group_by grouping [First "Index", Last "Value"] + grouped.row_count . should_equal 0 + grouped.columns.length . should_equal 3 + grouped.columns.at 0 . name . should_equal "Code" + grouped.columns.at 1 . name . should_equal "First Index" + grouped.columns.at 2 . name . should_equal "Last Value" + + Test.specify "should be able to get minimum and maximum values" <| + grouped = empty_table.group_by grouping [Minimum "Value", Maximum "ValueWithNothing"] + grouped.row_count . should_equal 0 + grouped.columns.length . should_equal 3 + grouped.columns.at 0 . name . should_equal "Code" + grouped.columns.at 1 . name . should_equal "Minimum Value" + grouped.columns.at 2 . name . should_equal "Maximum ValueWithNothing" + + Test.specify "should be able to get shortest, longest and concatenated values" <| + grouped = empty_table.group_by grouping [Shortest "TextWithNothing", Longest "TextWithNothing", Concatenate "Code"] + grouped.row_count . should_equal 0 + grouped.columns.length . should_equal 4 + grouped.columns.at 0 . name . should_equal "Code" + grouped.columns.at 1 . name . should_equal "Shortest TextWithNothing" + grouped.columns.at 2 . name . should_equal "Longest TextWithNothing" + grouped.columns.at 3 . name . should_equal "Concatenate Code" + + Test.group "Table.group_by should be able to group on single field " <| + grouping = Column_Selector.By_name.new ["Index"] + Test.specify "should be able to count" <| + grouped = table.group_by grouping [Count Nothing] + grouped.row_count . should_equal 10 + grouped.columns.length . should_equal 2 + grouped.columns.at 0 . name . should_equal "Index" + idx = find_row [6] grouped + idx.is_nothing . should_be_false + grouped.columns.at 1 . name . should_equal "Count" + grouped.columns.at 1 . at idx . should_equal 261 + + Test.specify "should be able to count missing values" <| + grouped = table.group_by grouping [Count_Nothing "Hexadecimal", Count_Not_Nothing "Hexadecimal", Count_Empty "TextWithNothing", Count_Not_Empty "TextWithNothing"] + grouped.row_count . should_equal 10 + grouped.columns.length . should_equal 5 + grouped.columns.at 0 . name . should_equal "Index" + idx = find_row [6] grouped + idx.is_nothing . should_be_false + grouped.columns.at 1 . name . should_equal "Count Nothing Hexadecimal" + grouped.columns.at 1 . at idx . should_equal 24 + grouped.columns.at 2 . name . should_equal "Count Not Nothing Hexadecimal" + grouped.columns.at 2 . at idx . should_equal 237 + grouped.columns.at 3 . name . should_equal "Count Empty TextWithNothing" + grouped.columns.at 3 . at idx . should_equal 31 + grouped.columns.at 4 . name . should_equal "Count Not Empty TextWithNothing" + grouped.columns.at 4 . at idx . should_equal 230 + + Test.specify "should be able to count distinct values" <| + grouped = table.group_by grouping [Count_Distinct "Code", Count_Distinct "Index", Count_Distinct "Flag", Count_Distinct ["Index", "Flag"]] + grouped.row_count . should_equal 10 + grouped.columns.length . should_equal 5 + grouped.columns.at 0 . name . should_equal "Index" + idx = find_row [6] grouped + idx.is_nothing . should_be_false + grouped.columns.at 1 . name . should_equal "Count Distinct Code" + grouped.columns.at 1 . at idx . should_equal 260 + grouped.columns.at 2 . name . should_equal "Count Distinct Index" + grouped.columns.at 2 . at idx . should_equal 1 + grouped.columns.at 3 . name . should_equal "Count Distinct Flag" + grouped.columns.at 3 . at idx . should_equal 2 + grouped.columns.at 4 . name . should_equal "Count Distinct Index Flag" + grouped.columns.at 4 . at idx . should_equal 2 + + Test.specify "should be able to sum, average and standard deviation of values" <| + grouped = table.group_by grouping [Sum "Value", Sum "ValueWithNothing", Average "Value", Average "ValueWithNothing", Standard_Deviation "Value", Standard_Deviation "ValueWithNothing", (Standard_Deviation "Value" population=True), (Standard_Deviation "ValueWithNothing" population=True)] + grouped.row_count . should_equal 10 + grouped.columns.length . should_equal 9 + grouped.columns.at 0 . name . should_equal "Index" + idx = find_row [6] grouped + idx.is_nothing . should_be_false + grouped.columns.at 1 . name . should_equal "Sum Value" + grouped.columns.at 1 . at idx . should_equal -447.847390 epsilon=0.000001 + grouped.columns.at 2 . name . should_equal "Sum ValueWithNothing" + grouped.columns.at 2 . at idx . should_equal 151.86 epsilon=0.000001 + grouped.columns.at 3 . name . should_equal "Average Value" + grouped.columns.at 3 . at idx . should_equal -1.715890 epsilon=0.000001 + grouped.columns.at 4 . name . should_equal "Average ValueWithNothing" + grouped.columns.at 4 . at idx . should_equal 0.646213 epsilon=0.000001 + grouped.columns.at 5 . name . should_equal "Standard Deviation Value" + grouped.columns.at 5 . at idx . should_equal 60.272158 epsilon=0.000001 + grouped.columns.at 6 . name . should_equal "Standard Deviation ValueWithNothing" + grouped.columns.at 6 . at idx . should_equal 56.798691 epsilon=0.000001 + grouped.columns.at 7 . name . should_equal "Standard Deviation Value_1" + grouped.columns.at 7 . at idx . should_equal 60.156583 epsilon=0.000001 + grouped.columns.at 8 . name . should_equal "Standard Deviation ValueWithNothing_1" + grouped.columns.at 8 . at idx . should_equal 56.677714 epsilon=0.000001 + + Test.specify "should be able to create median values" <| + grouped = table.group_by grouping [Median "Index", Median "Value", Median "ValueWithNothing", Mode "Index", Percentile 0.25 "Value", Percentile 0.40 "ValueWithNothing"] + grouped.row_count . should_equal 10 + grouped.columns.length . should_equal 7 + grouped.columns.at 0 . name . should_equal "Index" + idx = find_row [6] grouped + idx.is_nothing . should_be_false + grouped.columns.at 1 . name . should_equal "Median Index" + grouped.columns.at 1 . at idx . should_equal 6 epsilon=0.000001 + grouped.columns.at 2 . name . should_equal "Median Value" + grouped.columns.at 2 . at idx . should_equal 2.041150 epsilon=0.000001 + grouped.columns.at 3 . name . should_equal "Median ValueWithNothing" + grouped.columns.at 3 . at idx . should_equal 1.38 epsilon=0.000001 + grouped.columns.at 4 . name . should_equal "Mode Index" + grouped.columns.at 4 . at idx . should_equal 6 + grouped.columns.at 5 . name . should_equal "25%-ile Value" + grouped.columns.at 5 . at idx . should_equal -56.019100 epsilon=0.000001 + grouped.columns.at 6 . name . should_equal "40%-ile ValueWithNothing" + grouped.columns.at 6 . at idx . should_equal -18.802000 epsilon=0.000001 + + Test.specify "should be able to get first and last values" <| + grouped = table.group_by grouping [First "TextWithNothing", Last "Value"] + grouped.row_count . should_equal 10 + grouped.columns.length . should_equal 3 + grouped.columns.at 0 . name . should_equal "Index" + idx = find_row [6] grouped + idx.is_nothing . should_be_false + grouped.columns.at 1 . name . should_equal "First TextWithNothing" + grouped.columns.at 1 . at idx . should_equal "kmqxqkl6qx" + grouped.columns.at 2 . name . should_equal "Last Value" + grouped.columns.at 2 . at idx . should_equal 56.15916 epsilon=0.000001 + + Test.specify "should be able to get minimum and maximum values" <| + grouped = table.group_by grouping [Minimum "Value", Maximum "Value", Minimum "ValueWithNothing", Maximum "ValueWithNothing"] + grouped.row_count . should_equal 10 + grouped.columns.length . should_equal 5 + grouped.columns.at 0 . name . should_equal "Index" + idx = find_row [6] grouped + idx.is_nothing . should_be_false + grouped.columns.at 1 . name . should_equal "Minimum Value" + grouped.columns.at 1 . at idx . should_equal -99.605880 epsilon=0.000001 + grouped.columns.at 2 . name . should_equal "Maximum Value" + grouped.columns.at 2 . at idx . should_equal 99.12739 epsilon=0.000001 + grouped.columns.at 3 . name . should_equal "Minimum ValueWithNothing" + grouped.columns.at 3 . at idx . should_equal -99.99 epsilon=0.000001 + grouped.columns.at 4 . name . should_equal "Maximum ValueWithNothing" + grouped.columns.at 4 . at idx . should_equal 99.79 epsilon=0.000001 + + Test.specify "should be able to get shortest, longest and concatenated values" <| + grouped = table.group_by grouping [Shortest "TextWithNothing", Longest "TextWithNothing", Concatenate "Code"] + grouped.row_count . should_equal 10 + grouped.columns.length . should_equal 4 + grouped.columns.at 0 . name . should_equal "Index" + idx = find_row [6] grouped + idx.is_nothing . should_be_false + grouped.columns.at 1 . name . should_equal "Shortest TextWithNothing" + grouped.columns.at 1 . at idx . should_equal "kmqxqkl6qx" + grouped.columns.at 2 . name . should_equal "Longest TextWithNothing" + grouped.columns.at 2 . at idx . should_equal "kmqxqkl6qx" + grouped.columns.at 3 . name . should_equal "Concatenate Code" + grouped.columns.at 3 . at idx . length . should_equal 783 + +main = Test.Suite.run_main here.spec diff --git a/test/Tests/src/Data/Map_Spec.enso b/test/Tests/src/Data/Map_Spec.enso index 702ffa30a365..5d1f7da53118 100644 --- a/test/Tests/src/Data/Map_Spec.enso +++ b/test/Tests/src/Data/Map_Spec.enso @@ -91,4 +91,21 @@ spec = Test.group "Maps" <| Test.specify "should allow getting a vector of the values" <| m = Map.empty . insert 1 2 . insert 2 4 m.values . should_equal [2, 4] + Test.specify "should be able to get the first key value pair" <| + m = Map.empty . insert 1 2 . insert 2 4 + pair = m.first + pair.first . should_equal 1 + pair.second . should_equal 2 + Test.specify "should be able to get the first key value pair of an empty map" <| + m = Map.empty + m.first . should_equal Nothing + Test.specify "should be able to get the last key value pair" <| + m = Map.empty . insert 1 2 . insert 2 4 + pair = m.last + pair.first . should_equal 2 + pair.second . should_equal 4 + Test.specify "should be able to get the last key value pair of an empty map" <| + m = Map.empty + m.last . should_equal Nothing +main = Test.Suite.run_main here.spec