diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveProjectSortTransposeRule.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveProjectSortTransposeRule.java index fd19d99..5251cdf 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveProjectSortTransposeRule.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveProjectSortTransposeRule.java @@ -17,17 +17,31 @@ */ package org.apache.hadoop.hive.ql.optimizer.calcite.rules; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + import org.apache.calcite.plan.RelOptRule; import org.apache.calcite.plan.RelOptRuleCall; import org.apache.calcite.plan.RelOptRuleOperand; import org.apache.calcite.plan.RelOptUtil; +import org.apache.calcite.plan.RelTraitSet; import org.apache.calcite.rel.RelCollation; +import org.apache.calcite.rel.RelCollationImpl; import org.apache.calcite.rel.RelCollationTraitDef; import org.apache.calcite.rel.RelFieldCollation; import org.apache.calcite.rel.RelNode; +import org.apache.calcite.rex.RexInputRef; +import org.apache.calcite.rex.RexNode; import org.apache.calcite.rex.RexUtil; import org.apache.calcite.util.mapping.Mappings; +import org.apache.commons.collections.map.HashedMap; +import org.apache.hadoop.hive.ql.optimizer.calcite.HiveCalciteUtil; import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveProject; +import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveRelNode; import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveSortLimit; import com.google.common.collect.ImmutableList; @@ -60,22 +74,45 @@ public void onMatch(RelOptRuleCall call) { final HiveProject project = call.rel(0); final HiveSortLimit sort = call.rel(1); - // Determine mapping between project input and output fields. If sort - // relies on non-trivial expressions, we can't push. - final Mappings.TargetMapping map = - RelOptUtil.permutation( - project.getProjects(), project.getInput().getRowType()).inverse(); + // Determine mapping between project input and output fields. + // In Hive, Sort is always based on RexInputRef + // We only need to check if project can contain all the positions that sort needs. + Set needed = new HashSet<>(); for (RelFieldCollation fc : sort.getCollation().getFieldCollations()) { - if (map.getTarget(fc.getFieldIndex()) < 0) { - return; + needed.add(fc.getFieldIndex()); + } + Map map = new HashMap<>(); + for (int projPos = 0; projPos < project.getChildExps().size(); projPos++) { + RexNode expr = project.getChildExps().get(projPos); + if (expr instanceof RexInputRef) { + Set positions = HiveCalciteUtil.getInputRefs(expr); + if (positions.size() > 1) { + continue; + } else { + int parentPos = positions.iterator().next(); + if(needed.contains(parentPos)){ + map.put(parentPos, projPos); + needed.remove(parentPos); + } + } } } + if(!needed.isEmpty()){ + return; + } + + + List fieldCollations = new ArrayList<>(); + for (RelFieldCollation fc : sort.getCollation().getFieldCollations()) { + int fieldIndex = fc.getFieldIndex(); + RelFieldCollation rfc = new RelFieldCollation(map.get(fieldIndex), + fc.direction, fc.nullDirection); + fieldCollations.add(rfc); + } - // Create new collation - final RelCollation newCollation = - RelCollationTraitDef.INSTANCE.canonize( - RexUtil.apply(map, sort.getCollation())); - + RelTraitSet traitSet = sort.getCluster().traitSetOf(HiveRelNode.CONVENTION); + RelCollation newCollation = traitSet.canonize(RelCollationImpl.of(fieldCollations)); + // New operators final RelNode newProject = project.copy(sort.getInput().getTraitSet(), ImmutableList.of(sort.getInput())); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveSortProjectRealignRule.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveSortProjectRealignRule.java new file mode 100644 index 0000000..967512e --- /dev/null +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/rules/HiveSortProjectRealignRule.java @@ -0,0 +1,143 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.hadoop.hive.ql.optimizer.calcite.rules; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.apache.calcite.plan.RelOptRule; +import org.apache.calcite.plan.RelOptRuleCall; +import org.apache.calcite.plan.RelOptRuleOperand; +import org.apache.calcite.plan.RelOptUtil; +import org.apache.calcite.plan.RelTraitSet; +import org.apache.calcite.rel.RelCollation; +import org.apache.calcite.rel.RelCollationImpl; +import org.apache.calcite.rel.RelCollationTraitDef; +import org.apache.calcite.rel.RelFieldCollation; +import org.apache.calcite.rel.RelNode; +import org.apache.calcite.rex.RexInputRef; +import org.apache.calcite.rex.RexNode; +import org.apache.calcite.rex.RexOver; +import org.apache.calcite.rex.RexUtil; +import org.apache.calcite.util.mapping.Mappings; +import org.apache.hadoop.hive.ql.optimizer.calcite.HiveCalciteUtil; +import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveProject; +import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveRelNode; +import org.apache.hadoop.hive.ql.optimizer.calcite.reloperators.HiveSortLimit; + +import sun.tools.tree.PostIncExpression; + +import com.google.common.collect.ImmutableList; + +public class HiveSortProjectRealignRule extends RelOptRule { + + public static final HiveSortProjectRealignRule INSTANCE = + new HiveSortProjectRealignRule(); + + //~ Constructors ----------------------------------------------------------- + + /** + * Creates a HiveProjectSortProjectMergeRule. + * This rule will try to do the + * following + * Sort($1) + * --Project($0,$0) will be realigned to + * Sort($0) + * --Project($0,$0) + * + * E.g. HiveProject(mykey=[$0]) + * HiveSortLimit(sort0=[$1], dir0=[ASC-nulls-first]) + * HiveProject(mykey=[$0], _o__col1=[$0]) + * HiveAggregate(group=[{0}]) + * HiveProject($f0=[$0]) + * HiveTableScan(table=[[default.test]], table:alias=[t1]) + */ + private HiveSortProjectRealignRule() { + super(operand(HiveSortLimit.class, operand(HiveProject.class, any()))); + } + + protected HiveSortProjectRealignRule(RelOptRuleOperand operand) { + super(operand); + } + + //~ Methods ---------------------------------------------------------------- + + // implement RelOptRule + public void onMatch(RelOptRuleCall call) { + final HiveSortLimit sort = call.rel(0); + final HiveProject project = call.rel(1); + + // first scan the project to get the smallest position of RexInputRef + Map parentToProjPosMap = new HashMap<>(); + Map projToProjPosMap = new HashMap<>(); + for (int projPos = 0; projPos < project.getChildExps().size(); projPos++) { + RexNode expr = project.getChildExps().get(projPos); + if (expr instanceof RexInputRef) { + Set positions = HiveCalciteUtil.getInputRefs(expr); + if (positions.size() > 1) { + continue; + } else { + int parentPos = positions.iterator().next(); + if (parentToProjPosMap.containsKey(parentPos)) { + projToProjPosMap.put(projPos, parentToProjPosMap.get(parentPos)); + } else { + parentToProjPosMap.put(parentPos, projPos); + } + } + } + } + + if (projToProjPosMap.isEmpty()) { + return; + } + + // then scan the sort to realign the position + boolean needChange = false; + List fieldCollations = new ArrayList<>(); + for (RelFieldCollation fc : sort.getCollation().getFieldCollations()) { + int fieldIndex = fc.getFieldIndex(); + if (projToProjPosMap.containsKey(fieldIndex)) { + RelFieldCollation rfc = new RelFieldCollation(projToProjPosMap.get(fieldIndex), + fc.direction, fc.nullDirection); + fieldCollations.add(rfc); + needChange = true; + } else { + fieldCollations.add(fc); + } + } + + if (!needChange) { + return; + } + + RelTraitSet traitSet = sort.getCluster().traitSetOf(HiveRelNode.CONVENTION); + RelCollation newCollation = traitSet.canonize(RelCollationImpl.of(fieldCollations)); + + // finally create new operators + final RelNode newProject = project.copy(project.getInput().getTraitSet(), + ImmutableList.of(project.getInput())); + final HiveSortLimit newSort = sort.copy(newProject.getTraitSet(), + newProject, newCollation, sort.offset, sort.fetch); + + call.transformTo(newSort); + } + +} diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java index bf0a11b..c8ef8eb 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java @@ -198,6 +198,7 @@ import org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveSortJoinReduceRule; import org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveSortLimitPullUpConstantsRule; import org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveSortMergeRule; +import org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveSortProjectRealignRule; import org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveSortProjectTransposeRule; import org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveSortRemoveRule; import org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveSortUnionReduceRule; @@ -1587,6 +1588,14 @@ private RelNode applyPreJoinOrderingTransforms(RelNode basePlan, RelMetadataProv perfLogger.PerfLogEnd(this.getClass().getName(), PerfLogger.OPTIMIZER, "Calcite: HiveExceptRewrite rule"); + // SortProjectRealign rewrite + perfLogger.PerfLogBegin(this.getClass().getName(), PerfLogger.OPTIMIZER); + basePlan = hepPlan(basePlan, true, mdProvider, null, HepMatchOrder.BOTTOM_UP, + HiveProjectMergeRule.INSTANCE, ProjectRemoveRule.INSTANCE, + HiveSortProjectRealignRule.INSTANCE); + perfLogger.PerfLogEnd(this.getClass().getName(), PerfLogger.OPTIMIZER, + "Calcite: Merge Project-Project, HiveSortProjectRealignRule rules"); + //1. Distinct aggregate rewrite // Run this optimization early, since it is expanding the operator pipeline. if (!conf.getVar(HiveConf.ConfVars.HIVE_EXECUTION_ENGINE).equals("mr") && @@ -2825,7 +2834,7 @@ private RelNode genGBLogicalPlan(QB qb, RelNode srcRel) throws SemanticException && selExprList.getChildCount() == 1 && selExprList.getChild(0).getChildCount() == 1) { ASTNode node = (ASTNode) selExprList.getChild(0).getChild(0); if (node.getToken().getType() == HiveParser.TOK_ALLCOLREF) { - srcRel = genSelectLogicalPlan(qb, srcRel, srcRel); + srcRel = genSelectLogicalPlan(qb, srcRel, srcRel, false).getKey(); RowResolver rr = this.relToHiveRR.get(srcRel); qbp.setSelExprForClause(detsClauseName, SemanticAnalyzer.genSelectDIAST(rr)); } @@ -2991,9 +3000,13 @@ private RelNode genGBLogicalPlan(QB qb, RelNode srcRel) throws SemanticException * top constraining Select * @throws SemanticException */ - private Pair genOBLogicalPlan(QB qb, RelNode srcRel, boolean outermostOB) - throws SemanticException { + private Pair genOBLogicalPlan(QB qb, Pair selPair, + boolean outermostOB) throws SemanticException { + // selPair.getKey() is the operator right before OB + // selPair.getValue() is the original RR that should be OB's RR + RelNode srcRel = selPair.getKey(); RelNode sortRel = null; + RelNode returnRel = null; RelNode originalOBChild = null; QBParseInfo qbp = getQBParseInfo(qb); @@ -3001,13 +3014,16 @@ private RelNode genGBLogicalPlan(QB qb, RelNode srcRel) throws SemanticException ASTNode obAST = qbp.getOrderByForClause(dest); if (obAST != null) { - // 1. OB Expr sanity test - // in strict mode, in the presence of order by, limit must be specified - Integer limit = qb.getParseInfo().getDestLimit(dest); - if (limit == null) { - String error = StrictChecks.checkNoLimit(conf); - if (error != null) { - throw new SemanticException(SemanticAnalyzer.generateErrorMessage(obAST, error)); + if (selPair.getValue() == null) { + // 1. OB Expr sanity test + // in strict mode, in the presence of order by, limit must be + // specified + Integer limit = qb.getParseInfo().getDestLimit(dest); + if (limit == null) { + String error = StrictChecks.checkNoLimit(conf); + if (error != null) { + throw new SemanticException(SemanticAnalyzer.generateErrorMessage(obAST, error)); + } } } @@ -3064,8 +3080,8 @@ private RelNode genGBLogicalPlan(QB qb, RelNode srcRel) throws SemanticException } else if (nullObASTExpr.getType() == HiveParser.TOK_NULLS_LAST) { nullOrder = RelFieldCollation.NullDirection.LAST; } else { - throw new SemanticException( - "Unexpected null ordering option: " + nullObASTExpr.getType()); + throw new SemanticException("Unexpected null ordering option: " + + nullObASTExpr.getType()); } // 2.5 Add to field collations @@ -3137,9 +3153,25 @@ public RexNode apply(RelDataTypeField input) { outputRR, sortRel); relToHiveRR.put(sortRel, outputRR); relToHiveColNameCalcitePosMap.put(sortRel, hiveColNameCalcitePosMap); - } - return (new Pair(sortRel, originalOBChild)); + if (selPair.getValue() != null) { + List originalInputRefs = Lists.transform(srcRel.getRowType().getFieldList(), + new Function() { + @Override + public RexNode apply(RelDataTypeField input) { + return new RexInputRef(input.getIndex(), input.getType()); + } + }); + List selectedRefs = Lists.newArrayList(); + for (int index = 0; index < selPair.getValue().getColumnInfos().size(); index++) { + selectedRefs.add(originalInputRefs.get(index)); + } + returnRel = genSelectRelNode(selectedRefs, selPair.getValue(), sortRel); + } else { + returnRel = sortRel; + } + } + return (new Pair(returnRel, originalOBChild)); } private RelNode genLimitLogicalPlan(QB qb, RelNode srcRel) throws SemanticException { @@ -3452,7 +3484,7 @@ private RelNode genSelectRelNode(List calciteColLst, RowResolver out_rw * * @throws SemanticException */ - private RelNode genSelectLogicalPlan(QB qb, RelNode srcRel, RelNode starSrcRel) + private Pair genSelectLogicalPlan(QB qb, RelNode srcRel, RelNode starSrcRel, boolean considerOB) throws SemanticException { // 0. Generate a Select Node for Windowing // Exclude the newly-generated select columns from */etc. resolution. @@ -3698,15 +3730,62 @@ private RelNode genSelectLogicalPlan(QB qb, RelNode srcRel, RelNode starSrcRel) // 8. Build Calcite Rel RelNode outputRel = null; if (genericUDTF != null) { - // The basic idea for CBO support of UDTF is to treat UDTF as a special project. - // In AST return path, as we just need to generate a SEL_EXPR, we just need to remember the expressions and the alias. - // In OP return path, we need to generate a SEL and then a UDTF following old semantic analyzer. - outputRel = genUDTFPlan(genericUDTF, genericUDTFName, udtfTableAlias, udtfColAliases, qb, calciteColLst, out_rwsch, srcRel); - } - else{ - outputRel = genSelectRelNode(calciteColLst, out_rwsch, srcRel); + // The basic idea for CBO support of UDTF is to treat UDTF as a special + // project. + // In AST return path, as we just need to generate a SEL_EXPR, we just + // need to remember the expressions and the alias. + // In OP return path, we need to generate a SEL and then a UDTF + // following old semantic analyzer. + outputRel = genUDTFPlan(genericUDTF, genericUDTFName, udtfTableAlias, udtfColAliases, qb, + calciteColLst, out_rwsch, srcRel); + } else { + String dest = qbp.getClauseNames().iterator().next(); + ASTNode obAST = qbp.getOrderByForClause(dest); + + RowResolver originalRR = null; + // We only support unselected column following by order by. + // TODO: support unselected columns in genericUDTF and windowing functions. + if (obAST != null && !(selForWindow != null && selExprList.getToken().getType() == HiveParser.TOK_SELECTDI)) { + // 1. OB Expr sanity test + // in strict mode, in the presence of order by, limit must be + // specified + Integer limit = qb.getParseInfo().getDestLimit(dest); + if (limit == null) { + String error = StrictChecks.checkNoLimit(conf); + if (error != null) { + throw new SemanticException(SemanticAnalyzer.generateErrorMessage(obAST, error)); + } + } + List originalInputRefs = Lists.transform(srcRel.getRowType().getFieldList(), + new Function() { + @Override + public RexNode apply(RelDataTypeField input) { + return new RexInputRef(input.getIndex(), input.getType()); + } + }); + originalRR = out_rwsch.duplicate(); + for (int i = 0; i < inputRR.getColumnInfos().size(); i++) { + ColumnInfo colInfo = new ColumnInfo(inputRR.getColumnInfos().get(i)); + String internalName = SemanticAnalyzer.getColumnInternalName(out_rwsch.getColumnInfos() + .size() + i); + colInfo.setInternalName(internalName); + if (!out_rwsch.putWithCheck(colInfo.getTabAlias(), colInfo.getAlias(), internalName, + colInfo)) { + LOG.info("There is confict when we add column to RR for order by: " + + colInfo.getTabAlias() + "." + colInfo.getAlias() + " => " + colInfo + + " due to duplication, see previous warnings"); + } else { + calciteColLst.add(originalInputRefs.get(i)); + } + } + outputRel = genSelectRelNode(calciteColLst, out_rwsch, srcRel); + // outputRel is the generated augmented select with extra unselected + // columns, and originalRR is the original generated select + return new Pair(outputRel, originalRR); + } else { + outputRel = genSelectRelNode(calciteColLst, out_rwsch, srcRel); + } } - // 9. Handle select distinct as GBY if there exist windowing functions if (selForWindow != null && selExprList.getToken().getType() == HiveParser.TOK_SELECTDI) { ImmutableBitSet groupSet = ImmutableBitSet.range(outputRel.getRowType().getFieldList().size()); @@ -3724,7 +3803,7 @@ private RelNode genSelectLogicalPlan(QB qb, RelNode srcRel, RelNode starSrcRel) this.relToHiveRR.put(outputRel, groupByOutputRowResolver); } - return outputRel; + return new Pair(outputRel, null); } private RelNode genUDTFPlan(GenericUDTF genericUDTF, String genericUDTFName, String outputTableAlias, @@ -3946,11 +4025,12 @@ private RelNode genLogicalPlan(QB qb, boolean outerMostQB, srcRel = (gbHavingRel == null) ? srcRel : gbHavingRel; // 5. Build Rel for Select Clause - selectRel = genSelectLogicalPlan(qb, srcRel, starSrcRel); + Pair selPair = genSelectLogicalPlan(qb, srcRel, starSrcRel, true); + selectRel = selPair.getKey(); srcRel = (selectRel == null) ? srcRel : selectRel; // 6. Build Rel for OB Clause - Pair obTopProjPair = genOBLogicalPlan(qb, srcRel, outerMostQB); + Pair obTopProjPair = genOBLogicalPlan(qb, selPair, outerMostQB); obRel = obTopProjPair.getKey(); RelNode topConstrainingProjArgsRel = obTopProjPair.getValue(); srcRel = (obRel == null) ? srcRel : obRel; diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java index e14f1cf..5e739d5 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java @@ -178,23 +178,31 @@ public ColumnInfo get(String tab_alias, String col_alias) throws SemanticExcepti } ret = f_map.get(col_alias); } else { - boolean found = false; - String foundTbl = null; - for (Map.Entry> rslvEntry: rslvMap.entrySet()) { - String rslvKey = rslvEntry.getKey(); - LinkedHashMap cmap = rslvEntry.getValue(); - for (Map.Entry cmapEnt : cmap.entrySet()) { - if (col_alias.equalsIgnoreCase(cmapEnt.getKey())) { - /* - * We can have an unaliased and one aliased mapping to a Column. - */ - if (found && foundTbl != null && rslvKey != null) { - throw new SemanticException("Column " + col_alias - + " Found in more than One Tables/Subqueries"); + HashMap f_map = rslvMap.get(tab_alias); + // first try rslvMap directly + if (f_map != null) { + ret = f_map.get(col_alias); + } + // then try others + if (ret == null) { + boolean found = false; + String foundTbl = null; + for (Map.Entry> rslvEntry : rslvMap.entrySet()) { + String rslvKey = rslvEntry.getKey(); + LinkedHashMap cmap = rslvEntry.getValue(); + for (Map.Entry cmapEnt : cmap.entrySet()) { + if (col_alias.equalsIgnoreCase(cmapEnt.getKey())) { + /* + * We can have an unaliased and one aliased mapping to a Column. + */ + if (found && foundTbl != null && rslvKey != null) { + throw new SemanticException("Column " + col_alias + + " Found in more than One Tables/Subqueries"); + } + found = true; + foundTbl = rslvKey == null ? foundTbl : rslvKey; + ret = cmapEnt.getValue(); } - found = true; - foundTbl = rslvKey == null ? foundTbl : rslvKey; - ret = cmapEnt.getValue(); } } } @@ -458,7 +466,11 @@ public static RowResolver getCombinedRR(RowResolver leftRR, public RowResolver duplicate() { RowResolver resolver = new RowResolver(); resolver.rowSchema = new RowSchema(rowSchema); - resolver.rslvMap.putAll(rslvMap); + for (Map.Entry> entry : rslvMap.entrySet()) { + LinkedHashMap map = new LinkedHashMap<>(); + map.putAll(entry.getValue()); + resolver.rslvMap.put(entry.getKey(), map); + } resolver.invRslvMap.putAll(invRslvMap); resolver.altInvRslvMap.putAll(altInvRslvMap); resolver.expressionMap.putAll(expressionMap); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java index 0732207..42f1f86 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java @@ -1613,6 +1613,8 @@ public boolean doPhase1(ASTNode ast, QB qb, Phase1Ctx ctx_1, PlannerContext plan throw new SemanticException(generateErrorMessage(ast, ErrorMsg.CLUSTERBY_ORDERBY_CONFLICT.getMsg())); } + qbp.addAggregationExprsForClause(ctx_1.dest, + doPhase1GetAggregationsFromSelect(ast, qb, ctx_1.dest)); break; case HiveParser.TOK_GROUPBY: diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java index f979c14..3b2f790 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java @@ -163,7 +163,7 @@ public static ExprNodeDesc processGByExpr(Node nd, Object procCtx) if (colInfo != null) { desc = new ExprNodeColumnDesc(colInfo); ASTNode source = input.getExpressionSource(expr); - if (source != null) { + if (source != null && ctx.getUnparseTranslator() != null) { ctx.getUnparseTranslator().addCopyTranslation(expr, source); } return desc; diff --git a/ql/src/test/queries/clientpositive/order_by_expr_1.q b/ql/src/test/queries/clientpositive/order_by_expr_1.q new file mode 100644 index 0000000..1d99e6a --- /dev/null +++ b/ql/src/test/queries/clientpositive/order_by_expr_1.q @@ -0,0 +1,44 @@ +set hive.fetch.task.conversion=none; + +create table t(a int, b int); + +insert into t values (1,2),(1,2),(1,3),(2,4),(20,-100),(-1000,100),(4,5),(3,7),(8,9); + +select a, count(a) from t group by a order by count(a), a; + +explain +select + interval '2-2' year to month + interval '3-3' year to month, + interval '2-2' year to month - interval '3-3' year to month +from t +order by interval '2-2' year to month + interval '3-3' year to month +limit 2; + +select a,b, count(*) from t group by a, b order by a+b; +select a,b, count(*) from t group by a, b order by count(*), b desc; +select a,b,count(*),a+b from t group by a, b order by a+b; +select a,b from t order by a+b; +select a,b,a+b from t order by a+b; +select a,b,a+b from t order by a+b desc; +select cast(0.99999999999999999999 as decimal(20,19)) as c from t limit 1; +select cast(0.99999999999999999999 as decimal(20,19)) as c from t order by c limit 1; +select a from t order by b; +select a from t order by 0-b; +select b from t order by 0-b; +select b from t order by a, 0-b; +select b from t order by a+1, 0-b; +select b from t order by 0-b, a+1; +explain select b from t order by 0-b, a+1; +select a,b from t order by 0-b; +select a,b from t order by a, a+1, 0-b; +select a,b from t order by 0-b, a+1; +select a+1,b from t order by a, a+1, 0-b; +select a+1 as c, b from t order by a, a+1, 0-b; +select a, a+1 as c, b from t order by a, a+1, 0-b; +select a, a+1 as c, b, 2*b from t order by a, a+1, 0-b; +explain select a, a+1 as c, b, 2*b from t order by a, a+1, 0-b; +select a, a+1 as c, b, 2*b from t order by a+1, 0-b; +select a,b, count(*) as c from t group by a, b order by c, a+b desc; + +select a, max(b) from t group by a order by count(b), a desc; +select a, max(b) from t group by a order by count(b), a; diff --git a/ql/src/test/queries/clientpositive/order_by_expr_2.q b/ql/src/test/queries/clientpositive/order_by_expr_2.q new file mode 100644 index 0000000..043f8ed --- /dev/null +++ b/ql/src/test/queries/clientpositive/order_by_expr_2.q @@ -0,0 +1,11 @@ +set hive.fetch.task.conversion=none; + +create table t(a int, b int); + +insert into t values (1,2),(1,2),(1,3),(2,4),(20,-100),(-1000,100),(4,5),(3,7),(8,9); + +select a as b, b as a from t order by a; +select a as b, b as a from t order by t.a; +select a as b from t order by b; +select a as b from t order by 0-a; +select a,b,count(*),a+b from t group by a, b order by a+b; diff --git a/ql/src/test/results/clientpositive/auto_join_without_localtask.q.out b/ql/src/test/results/clientpositive/auto_join_without_localtask.q.out index 17a912e..0b73bce 100644 --- a/ql/src/test/results/clientpositive/auto_join_without_localtask.q.out +++ b/ql/src/test/results/clientpositive/auto_join_without_localtask.q.out @@ -21,25 +21,21 @@ STAGE PLANS: Stage: Stage-7 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_1:b + b Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_1:b + b TableScan alias: b Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Filter Operator predicate: key is not null (type: boolean) Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE - Select Operator - expressions: key (type: string) - outputColumnNames: _col0 - Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE - HashTable Sink Operator - keys: - 0 _col0 (type: string) - 1 _col0 (type: string) + HashTable Sink Operator + keys: + 0 key (type: string) + 1 key (type: string) Stage: Stage-4 Map Reduce @@ -50,24 +46,20 @@ STAGE PLANS: Filter Operator predicate: key is not null (type: boolean) Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE - Select Operator - expressions: key (type: string), value (type: string) + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 key (type: string) + 1 key (type: string) outputColumnNames: _col0, _col1 - Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE - Map Join Operator - condition map: - Inner Join 0 to 1 - keys: - 0 _col0 (type: string) - 1 _col0 (type: string) - outputColumnNames: _col0, _col1 - Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE - File Output Operator - compressed: false - table: - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe Local Work: Map Reduce Local Work @@ -99,25 +91,21 @@ STAGE PLANS: Stage: Stage-8 Map Reduce Local Work Alias -> Map Local Tables: - $hdt$_0:a + a Fetch Operator limit: -1 Alias -> Map Local Operator Tree: - $hdt$_0:a + a TableScan alias: a Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Filter Operator predicate: key is not null (type: boolean) Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE - Select Operator - expressions: key (type: string), value (type: string) - outputColumnNames: _col0, _col1 - Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE - HashTable Sink Operator - keys: - 0 _col0 (type: string) - 1 _col0 (type: string) + HashTable Sink Operator + keys: + 0 key (type: string) + 1 key (type: string) Stage: Stage-5 Map Reduce @@ -128,24 +116,20 @@ STAGE PLANS: Filter Operator predicate: key is not null (type: boolean) Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE - Select Operator - expressions: key (type: string) - outputColumnNames: _col0 - Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE - Map Join Operator - condition map: - Inner Join 0 to 1 - keys: - 0 _col0 (type: string) - 1 _col0 (type: string) - outputColumnNames: _col0, _col1 - Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE - File Output Operator - compressed: false - table: - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + Map Join Operator + condition map: + Inner Join 0 to 1 + keys: + 0 key (type: string) + 1 key (type: string) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe Local Work: Map Reduce Local Work @@ -158,38 +142,30 @@ STAGE PLANS: Filter Operator predicate: key is not null (type: boolean) Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE - Select Operator - expressions: key (type: string), value (type: string) - outputColumnNames: _col0, _col1 + Reduce Output Operator + key expressions: key (type: string) + sort order: + + Map-reduce partition columns: key (type: string) Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE - Reduce Output Operator - key expressions: _col0 (type: string) - sort order: + - Map-reduce partition columns: _col0 (type: string) - Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE - value expressions: _col1 (type: string) + value expressions: value (type: string) TableScan alias: b Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Filter Operator predicate: key is not null (type: boolean) Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE - Select Operator - expressions: key (type: string) - outputColumnNames: _col0 + Reduce Output Operator + key expressions: key (type: string) + sort order: + + Map-reduce partition columns: key (type: string) Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE - Reduce Output Operator - key expressions: _col0 (type: string) - sort order: + - Map-reduce partition columns: _col0 (type: string) - Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Reduce Operator Tree: Join Operator condition map: Inner Join 0 to 1 keys: - 0 _col0 (type: string) - 1 _col0 (type: string) + 0 key (type: string) + 1 key (type: string) outputColumnNames: _col0, _col1 Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE File Output Operator diff --git a/ql/src/test/results/clientpositive/cp_sel.q.out b/ql/src/test/results/clientpositive/cp_sel.q.out index 1778ccd..af2efeb 100644 --- a/ql/src/test/results/clientpositive/cp_sel.q.out +++ b/ql/src/test/results/clientpositive/cp_sel.q.out @@ -27,23 +27,27 @@ STAGE PLANS: value expressions: _col1 (type: string) Reduce Operator Tree: Select Operator - expressions: KEY.reducesinkkey0 (type: string), VALUE._col0 (type: string), 'hello' (type: string), 'world' (type: string) - outputColumnNames: _col0, _col1, _col2, _col3 + expressions: KEY.reducesinkkey0 (type: string), VALUE._col0 (type: string) + outputColumnNames: _col0, _col1 Statistics: Num rows: 1000 Data size: 10624 Basic stats: COMPLETE Column stats: NONE Limit Number of rows: 1 Statistics: Num rows: 1 Data size: 10 Basic stats: COMPLETE Column stats: NONE - File Output Operator - compressed: false + Select Operator + expressions: _col0 (type: string), _col1 (type: string), 'hello' (type: string), 'world' (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 10 Basic stats: COMPLETE Column stats: NONE - table: - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + File Output Operator + compressed: false + Statistics: Num rows: 1 Data size: 10 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe Stage: Stage-0 Fetch Operator - limit: 1 + limit: -1 Processor Tree: ListSink diff --git a/ql/src/test/results/clientpositive/druid_basic2.q.out b/ql/src/test/results/clientpositive/druid_basic2.q.out index bc9410b..9674803 100644 --- a/ql/src/test/results/clientpositive/druid_basic2.q.out +++ b/ql/src/test/results/clientpositive/druid_basic2.q.out @@ -544,204 +544,25 @@ ORDER BY CAST(robot AS INTEGER) ASC, m DESC LIMIT 10 POSTHOOK: type: QUERY STAGE DEPENDENCIES: - Stage-1 is a root stage - Stage-2 depends on stages: Stage-1 - Stage-0 depends on stages: Stage-2 + Stage-0 is a root stage STAGE PLANS: - Stage: Stage-1 - Map Reduce - Map Operator Tree: - TableScan - alias: druid_table_1 - Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE - GatherStats: false - Select Operator - expressions: robot (type: string), language (type: string), __time (type: timestamp), added (type: float), delta (type: float) - outputColumnNames: robot, language, __time, added, delta - Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE - Group By Operator - aggregations: max(added), sum(delta) - keys: robot (type: string), language (type: string), floor_day(__time) (type: timestamp) - mode: hash - outputColumnNames: _col0, _col1, _col2, _col3, _col4 - Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE - Reduce Output Operator - key expressions: _col0 (type: string), _col1 (type: string), _col2 (type: timestamp) - null sort order: aaa - sort order: +++ - Map-reduce partition columns: _col0 (type: string), _col1 (type: string), _col2 (type: timestamp) - Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE - tag: -1 - value expressions: _col3 (type: float), _col4 (type: double) - auto parallelism: false - Path -> Alias: -#### A masked pattern was here #### - Path -> Partition: -#### A masked pattern was here #### - Partition - base file name: druid_table_1 - input format: org.apache.hadoop.hive.druid.io.DruidQueryBasedInputFormat - output format: org.apache.hadoop.hive.druid.io.DruidOutputFormat - properties: - COLUMN_STATS_ACCURATE {"BASIC_STATS":"true"} - EXTERNAL TRUE - bucket_count -1 - column.name.delimiter , - columns __time,robot,namespace,anonymous,unpatrolled,page,language,newpage,user,count,added,delta,variation,deleted - columns.comments 'from deserializer','from deserializer','from deserializer','from deserializer','from deserializer','from deserializer','from deserializer','from deserializer','from deserializer','from deserializer','from deserializer','from deserializer','from deserializer','from deserializer' - columns.types timestamp:string:string:string:string:string:string:string:string:float:float:float:float:float - druid.datasource wikipedia -#### A masked pattern was here #### - name default.druid_table_1 - numFiles 0 - numRows 0 - rawDataSize 0 - serialization.ddl struct druid_table_1 { timestamp __time, string robot, string namespace, string anonymous, string unpatrolled, string page, string language, string newpage, string user, float count, float added, float delta, float variation, float deleted} - serialization.format 1 - serialization.lib org.apache.hadoop.hive.druid.QTestDruidSerDe - storage_handler org.apache.hadoop.hive.druid.QTestDruidStorageHandler - totalSize 0 -#### A masked pattern was here #### - serde: org.apache.hadoop.hive.druid.QTestDruidSerDe - - input format: org.apache.hadoop.hive.druid.io.DruidQueryBasedInputFormat - output format: org.apache.hadoop.hive.druid.io.DruidOutputFormat - properties: - COLUMN_STATS_ACCURATE {"BASIC_STATS":"true"} - EXTERNAL TRUE - bucket_count -1 - column.name.delimiter , - columns __time,robot,namespace,anonymous,unpatrolled,page,language,newpage,user,count,added,delta,variation,deleted - columns.comments 'from deserializer','from deserializer','from deserializer','from deserializer','from deserializer','from deserializer','from deserializer','from deserializer','from deserializer','from deserializer','from deserializer','from deserializer','from deserializer','from deserializer' - columns.types timestamp:string:string:string:string:string:string:string:string:float:float:float:float:float - druid.datasource wikipedia -#### A masked pattern was here #### - name default.druid_table_1 - numFiles 0 - numRows 0 - rawDataSize 0 - serialization.ddl struct druid_table_1 { timestamp __time, string robot, string namespace, string anonymous, string unpatrolled, string page, string language, string newpage, string user, float count, float added, float delta, float variation, float deleted} - serialization.format 1 - serialization.lib org.apache.hadoop.hive.druid.QTestDruidSerDe - storage_handler org.apache.hadoop.hive.druid.QTestDruidStorageHandler - totalSize 0 -#### A masked pattern was here #### - serde: org.apache.hadoop.hive.druid.QTestDruidSerDe - name: default.druid_table_1 - name: default.druid_table_1 - Truncated Path -> Alias: - /druid_table_1 [druid_table_1] - Needs Tagging: false - Reduce Operator Tree: - Group By Operator - aggregations: max(VALUE._col0), sum(VALUE._col1) - keys: KEY._col0 (type: string), KEY._col1 (type: string), KEY._col2 (type: timestamp) - mode: mergepartial - outputColumnNames: _col0, _col1, _col2, _col3, _col4 + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + TableScan + alias: druid_table_1 + properties: + druid.query.json {"queryType":"groupBy","dataSource":"wikipedia","granularity":"DAY","dimensions":["robot","language"],"limitSpec":{"type":"default","limit":10,"columns":[{"dimension":"robot","direction":"ascending"},{"dimension":"$f3","direction":"descending"}]},"aggregations":[{"type":"longMax","name":"$f3","fieldName":"added"},{"type":"doubleSum","name":"$f4","fieldName":"delta"}],"intervals":["1900-01-01T00:00:00.000Z/3000-01-01T00:00:00.000Z"]} + druid.query.type groupBy Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE + GatherStats: false Select Operator - expressions: _col0 (type: string), _col2 (type: timestamp), _col3 (type: float), _col4 (type: double) + expressions: robot (type: string), __time (type: timestamp), $f3 (type: bigint), $f4 (type: float) outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE - File Output Operator - compressed: false - GlobalTableId: 0 -#### A masked pattern was here #### - NumFilesPerFileSink: 1 - table: - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - properties: - column.name.delimiter , - columns _col0,_col1,_col2,_col3 - columns.types string,timestamp,float,double - escape.delim \ - serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe - serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe - TotalFiles: 1 - GatherStats: false - MultiFileSpray: false - - Stage: Stage-2 - Map Reduce - Map Operator Tree: - TableScan - GatherStats: false - Reduce Output Operator - key expressions: UDFToInteger(_col0) (type: int), _col2 (type: float) - null sort order: az - sort order: +- - Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE - tag: -1 - TopN: 10 - TopN Hash Memory Usage: 0.1 - value expressions: _col0 (type: string), _col1 (type: timestamp), _col3 (type: double) - auto parallelism: false - Path -> Alias: -#### A masked pattern was here #### - Path -> Partition: -#### A masked pattern was here #### - Partition - base file name: -mr-10004 - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - properties: - column.name.delimiter , - columns _col0,_col1,_col2,_col3 - columns.types string,timestamp,float,double - escape.delim \ - serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe - serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe - - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - properties: - column.name.delimiter , - columns _col0,_col1,_col2,_col3 - columns.types string,timestamp,float,double - escape.delim \ - serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe - serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe - Truncated Path -> Alias: -#### A masked pattern was here #### - Needs Tagging: false - Reduce Operator Tree: - Select Operator - expressions: VALUE._col0 (type: string), VALUE._col1 (type: timestamp), KEY.reducesinkkey1 (type: float), VALUE._col2 (type: double) - outputColumnNames: _col0, _col1, _col2, _col3 - Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE - Limit - Number of rows: 10 - Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE - File Output Operator - compressed: false - GlobalTableId: 0 -#### A masked pattern was here #### - NumFilesPerFileSink: 1 - Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE -#### A masked pattern was here #### - table: - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - properties: - columns _col0,_col1,_col2,_col3 - columns.types string:timestamp:float:double - escape.delim \ - hive.serialization.extend.additional.nesting.levels true - serialization.escape.crlf true - serialization.format 1 - serialization.lib org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe - serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe - TotalFiles: 1 - GatherStats: false - MultiFileSpray: false - - Stage: Stage-0 - Fetch Operator - limit: 10 - Processor Tree: - ListSink + ListSink PREHOOK: query: EXPLAIN EXTENDED SELECT robot, floor_day(`__time`), max(added) as m, sum(delta) as s diff --git a/ql/src/test/results/clientpositive/dynamic_rdd_cache.q.out b/ql/src/test/results/clientpositive/dynamic_rdd_cache.q.out index 87166a7..25fad2e 100644 --- a/ql/src/test/results/clientpositive/dynamic_rdd_cache.q.out +++ b/ql/src/test/results/clientpositive/dynamic_rdd_cache.q.out @@ -1113,7 +1113,7 @@ STAGE PLANS: Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE Select Operator expressions: _col1 (type: int), _col2 (type: int), _col3 (type: double), _col4 (type: double), _col6 (type: int), _col7 (type: int), _col8 (type: double), _col9 (type: double) - outputColumnNames: _col0, _col1, _col3, _col4, _col5, _col6, _col8, _col9 + outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7 Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE File Output Operator compressed: true @@ -1127,10 +1127,10 @@ STAGE PLANS: Map Operator Tree: TableScan Reduce Output Operator - key expressions: _col0 (type: int), _col1 (type: int), _col3 (type: double), _col4 (type: double), _col8 (type: double), _col9 (type: double) + key expressions: _col0 (type: int), _col1 (type: int), _col2 (type: double), _col3 (type: double), _col6 (type: double), _col7 (type: double) sort order: ++++++ Statistics: Num rows: 1 Data size: 0 Basic stats: PARTIAL Column stats: NONE - value expressions: _col5 (type: int), _col6 (type: int) + value expressions: _col4 (type: int), _col5 (type: int) Reduce Operator Tree: Select Operator expressions: KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: int), 3 (type: int), KEY.reducesinkkey2 (type: double), KEY.reducesinkkey3 (type: double), VALUE._col0 (type: int), VALUE._col1 (type: int), 4 (type: int), KEY.reducesinkkey4 (type: double), KEY.reducesinkkey5 (type: double) diff --git a/ql/src/test/results/clientpositive/groupby_grouping_sets_grouping.q.out b/ql/src/test/results/clientpositive/groupby_grouping_sets_grouping.q.out index 7faf278..be307bd 100644 --- a/ql/src/test/results/clientpositive/groupby_grouping_sets_grouping.q.out +++ b/ql/src/test/results/clientpositive/groupby_grouping_sets_grouping.q.out @@ -317,8 +317,8 @@ STAGE PLANS: predicate: ((UDFToInteger(grouping(_col2, 1)) = 1) or (UDFToInteger(grouping(_col2, 0)) = 1)) (type: boolean) Statistics: Num rows: 6 Data size: 60 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: _col0 (type: int), _col1 (type: int), (grouping(_col2, 1) + grouping(_col2, 0)) (type: tinyint) - outputColumnNames: _col0, _col1, _col2 + expressions: _col0 (type: int), _col1 (type: int), (grouping(_col2, 1) + grouping(_col2, 0)) (type: tinyint), CASE WHEN (((grouping(_col2, 1) + grouping(_col2, 0)) = 1)) THEN (_col0) ELSE (null) END (type: int) + outputColumnNames: _col0, _col1, _col2, _col3 Statistics: Num rows: 6 Data size: 60 Basic stats: COMPLETE Column stats: NONE File Output Operator compressed: false @@ -332,7 +332,7 @@ STAGE PLANS: Map Operator Tree: TableScan Reduce Output Operator - key expressions: _col2 (type: tinyint), CASE WHEN ((_col2 = 1)) THEN (_col0) ELSE (null) END (type: int) + key expressions: _col2 (type: tinyint), _col3 (type: int) sort order: -+ Statistics: Num rows: 6 Data size: 60 Basic stats: COMPLETE Column stats: NONE value expressions: _col0 (type: int), _col1 (type: int) diff --git a/ql/src/test/results/clientpositive/order3.q.out b/ql/src/test/results/clientpositive/order3.q.out index 898f7a8..d3db1b9 100644 --- a/ql/src/test/results/clientpositive/order3.q.out +++ b/ql/src/test/results/clientpositive/order3.q.out @@ -256,23 +256,27 @@ STAGE PLANS: value expressions: _col1 (type: bigint) Reduce Operator Tree: Select Operator - expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: bigint), 'AAA' (type: string) - outputColumnNames: _col0, _col1, _col2 + expressions: KEY.reducesinkkey0 (type: int), VALUE._col0 (type: bigint) + outputColumnNames: _col0, _col1 Statistics: Num rows: 7 Data size: 70 Basic stats: COMPLETE Column stats: NONE Limit Number of rows: 3 Statistics: Num rows: 3 Data size: 30 Basic stats: COMPLETE Column stats: NONE - File Output Operator - compressed: false + Select Operator + expressions: _col0 (type: int), _col1 (type: bigint), 'AAA' (type: string) + outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 3 Data size: 30 Basic stats: COMPLETE Column stats: NONE - table: - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + File Output Operator + compressed: false + Statistics: Num rows: 3 Data size: 30 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe Stage: Stage-0 Fetch Operator - limit: 3 + limit: -1 Processor Tree: ListSink diff --git a/ql/src/test/results/clientpositive/order_by_expr_1.q.out b/ql/src/test/results/clientpositive/order_by_expr_1.q.out new file mode 100644 index 0000000..39babb7 --- /dev/null +++ b/ql/src/test/results/clientpositive/order_by_expr_1.q.out @@ -0,0 +1,566 @@ +PREHOOK: query: create table t(a int, b int) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@t +POSTHOOK: query: create table t(a int, b int) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@t +PREHOOK: query: insert into t values (1,2),(1,2),(1,3),(2,4),(20,-100),(-1000,100),(4,5),(3,7),(8,9) +PREHOOK: type: QUERY +PREHOOK: Output: default@t +POSTHOOK: query: insert into t values (1,2),(1,2),(1,3),(2,4),(20,-100),(-1000,100),(4,5),(3,7),(8,9) +POSTHOOK: type: QUERY +POSTHOOK: Output: default@t +POSTHOOK: Lineage: t.a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ] +POSTHOOK: Lineage: t.b EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ] +PREHOOK: query: select a, count(a) from t group by a order by count(a), a +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a, count(a) from t group by a order by count(a), a +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +-1000 1 +2 1 +3 1 +4 1 +8 1 +20 1 +1 3 +PREHOOK: query: explain +select + interval '2-2' year to month + interval '3-3' year to month, + interval '2-2' year to month - interval '3-3' year to month +from t +order by interval '2-2' year to month + interval '3-3' year to month +limit 2 +PREHOOK: type: QUERY +POSTHOOK: query: explain +select + interval '2-2' year to month + interval '3-3' year to month, + interval '2-2' year to month - interval '3-3' year to month +from t +order by interval '2-2' year to month + interval '3-3' year to month +limit 2 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: t + Statistics: Num rows: 9 Data size: 37 Basic stats: COMPLETE Column stats: COMPLETE + Select Operator + expressions: 5-5 (type: interval_year_month), -1-1 (type: interval_year_month) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 9 Data size: 144 Basic stats: COMPLETE Column stats: COMPLETE + Limit + Number of rows: 2 + Statistics: Num rows: 2 Data size: 32 Basic stats: COMPLETE Column stats: COMPLETE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 32 Basic stats: COMPLETE Column stats: COMPLETE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: 2 + Processor Tree: + ListSink + +PREHOOK: query: select a,b, count(*) from t group by a, b order by a+b +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a,b, count(*) from t group by a, b order by a+b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +-1000 100 1 +20 -100 1 +1 2 2 +1 3 1 +2 4 1 +4 5 1 +3 7 1 +8 9 1 +PREHOOK: query: select a,b, count(*) from t group by a, b order by count(*), b desc +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a,b, count(*) from t group by a, b order by count(*), b desc +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +-1000 100 1 +8 9 1 +3 7 1 +4 5 1 +2 4 1 +1 3 1 +20 -100 1 +1 2 2 +PREHOOK: query: select a,b,count(*),a+b from t group by a, b order by a+b +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a,b,count(*),a+b from t group by a, b order by a+b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +-1000 100 1 -900 +20 -100 1 -80 +1 2 2 3 +1 3 1 4 +2 4 1 6 +4 5 1 9 +3 7 1 10 +8 9 1 17 +PREHOOK: query: select a,b from t order by a+b +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a,b from t order by a+b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +-1000 100 +20 -100 +1 2 +1 2 +1 3 +2 4 +4 5 +3 7 +8 9 +PREHOOK: query: select a,b,a+b from t order by a+b +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a,b,a+b from t order by a+b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +-1000 100 -900 +20 -100 -80 +1 2 3 +1 2 3 +1 3 4 +2 4 6 +4 5 9 +3 7 10 +8 9 17 +PREHOOK: query: select a,b,a+b from t order by a+b desc +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a,b,a+b from t order by a+b desc +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +8 9 17 +3 7 10 +4 5 9 +2 4 6 +1 3 4 +1 2 3 +1 2 3 +20 -100 -80 +-1000 100 -900 +PREHOOK: query: select cast(0.99999999999999999999 as decimal(20,19)) as c from t limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select cast(0.99999999999999999999 as decimal(20,19)) as c from t limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +1.0000000000000000000 +PREHOOK: query: select cast(0.99999999999999999999 as decimal(20,19)) as c from t order by c limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select cast(0.99999999999999999999 as decimal(20,19)) as c from t order by c limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +1.0000000000000000000 +PREHOOK: query: select a from t order by b +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a from t order by b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +20 +1 +1 +1 +2 +4 +3 +8 +-1000 +PREHOOK: query: select a from t order by 0-b +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a from t order by 0-b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +-1000 +8 +3 +4 +2 +1 +1 +1 +20 +PREHOOK: query: select b from t order by 0-b +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select b from t order by 0-b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +100 +9 +7 +5 +4 +3 +2 +2 +-100 +PREHOOK: query: select b from t order by a, 0-b +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select b from t order by a, 0-b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +100 +3 +2 +2 +4 +7 +5 +9 +-100 +PREHOOK: query: select b from t order by a+1, 0-b +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select b from t order by a+1, 0-b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +100 +3 +2 +2 +4 +7 +5 +9 +-100 +PREHOOK: query: select b from t order by 0-b, a+1 +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select b from t order by 0-b, a+1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +100 +9 +7 +5 +4 +3 +2 +2 +-100 +PREHOOK: query: explain select b from t order by 0-b, a+1 +PREHOOK: type: QUERY +POSTHOOK: query: explain select b from t order by 0-b, a+1 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: t + Statistics: Num rows: 9 Data size: 37 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: b (type: int), (0 - b) (type: int), (a + 1) (type: int) + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 9 Data size: 37 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col1 (type: int), _col2 (type: int) + sort order: ++ + Statistics: Num rows: 9 Data size: 37 Basic stats: COMPLETE Column stats: NONE + value expressions: _col0 (type: int) + Reduce Operator Tree: + Select Operator + expressions: VALUE._col0 (type: int) + outputColumnNames: _col0 + Statistics: Num rows: 9 Data size: 37 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 9 Data size: 37 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select a,b from t order by 0-b +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a,b from t order by 0-b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +-1000 100 +8 9 +3 7 +4 5 +2 4 +1 3 +1 2 +1 2 +20 -100 +PREHOOK: query: select a,b from t order by a, a+1, 0-b +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a,b from t order by a, a+1, 0-b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +-1000 100 +1 3 +1 2 +1 2 +2 4 +3 7 +4 5 +8 9 +20 -100 +PREHOOK: query: select a,b from t order by 0-b, a+1 +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a,b from t order by 0-b, a+1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +-1000 100 +8 9 +3 7 +4 5 +2 4 +1 3 +1 2 +1 2 +20 -100 +PREHOOK: query: select a+1,b from t order by a, a+1, 0-b +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a+1,b from t order by a, a+1, 0-b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +-999 100 +2 3 +2 2 +2 2 +3 4 +4 7 +5 5 +9 9 +21 -100 +PREHOOK: query: select a+1 as c, b from t order by a, a+1, 0-b +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a+1 as c, b from t order by a, a+1, 0-b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +-999 100 +2 3 +2 2 +2 2 +3 4 +4 7 +5 5 +9 9 +21 -100 +PREHOOK: query: select a, a+1 as c, b from t order by a, a+1, 0-b +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a, a+1 as c, b from t order by a, a+1, 0-b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +-1000 -999 100 +1 2 3 +1 2 2 +1 2 2 +2 3 4 +3 4 7 +4 5 5 +8 9 9 +20 21 -100 +PREHOOK: query: select a, a+1 as c, b, 2*b from t order by a, a+1, 0-b +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a, a+1 as c, b, 2*b from t order by a, a+1, 0-b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +-1000 -999 100 200 +1 2 3 6 +1 2 2 4 +1 2 2 4 +2 3 4 8 +3 4 7 14 +4 5 5 10 +8 9 9 18 +20 21 -100 -200 +PREHOOK: query: explain select a, a+1 as c, b, 2*b from t order by a, a+1, 0-b +PREHOOK: type: QUERY +POSTHOOK: query: explain select a, a+1 as c, b, 2*b from t order by a, a+1, 0-b +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: t + Statistics: Num rows: 9 Data size: 37 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: a (type: int), b (type: int), (2 * b) (type: int), (a + 1) (type: int), (0 - b) (type: int) + outputColumnNames: _col0, _col2, _col3, _col4, _col5 + Statistics: Num rows: 9 Data size: 37 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: int), _col4 (type: int), _col5 (type: int) + sort order: +++ + Statistics: Num rows: 9 Data size: 37 Basic stats: COMPLETE Column stats: NONE + value expressions: _col2 (type: int), _col3 (type: int) + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: int), KEY.reducesinkkey1 (type: int), VALUE._col0 (type: int), VALUE._col1 (type: int) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 9 Data size: 37 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 9 Data size: 37 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: select a, a+1 as c, b, 2*b from t order by a+1, 0-b +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a, a+1 as c, b, 2*b from t order by a+1, 0-b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +-1000 -999 100 200 +1 2 3 6 +1 2 2 4 +1 2 2 4 +2 3 4 8 +3 4 7 14 +4 5 5 10 +8 9 9 18 +20 21 -100 -200 +PREHOOK: query: select a,b, count(*) as c from t group by a, b order by c, a+b desc +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a,b, count(*) as c from t group by a, b order by c, a+b desc +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +8 9 1 +3 7 1 +4 5 1 +2 4 1 +1 3 1 +20 -100 1 +-1000 100 1 +1 2 2 +PREHOOK: query: select a, max(b) from t group by a order by count(b), a desc +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a, max(b) from t group by a order by count(b), a desc +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +20 -100 +8 9 +4 5 +3 7 +2 4 +-1000 100 +1 3 +PREHOOK: query: select a, max(b) from t group by a order by count(b), a +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a, max(b) from t group by a order by count(b), a +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +-1000 100 +2 4 +3 7 +4 5 +8 9 +20 -100 +1 3 diff --git a/ql/src/test/results/clientpositive/order_by_expr_2.q.out b/ql/src/test/results/clientpositive/order_by_expr_2.q.out new file mode 100644 index 0000000..4b835b0 --- /dev/null +++ b/ql/src/test/results/clientpositive/order_by_expr_2.q.out @@ -0,0 +1,100 @@ +PREHOOK: query: create table t(a int, b int) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@t +POSTHOOK: query: create table t(a int, b int) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@t +PREHOOK: query: insert into t values (1,2),(1,2),(1,3),(2,4),(20,-100),(-1000,100),(4,5),(3,7),(8,9) +PREHOOK: type: QUERY +PREHOOK: Output: default@t +POSTHOOK: query: insert into t values (1,2),(1,2),(1,3),(2,4),(20,-100),(-1000,100),(4,5),(3,7),(8,9) +POSTHOOK: type: QUERY +POSTHOOK: Output: default@t +POSTHOOK: Lineage: t.a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ] +POSTHOOK: Lineage: t.b EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ] +PREHOOK: query: select a as b, b as a from t order by a +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a as b, b as a from t order by a +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +20 -100 +1 2 +1 2 +1 3 +2 4 +4 5 +3 7 +8 9 +-1000 100 +PREHOOK: query: select a as b, b as a from t order by t.a +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a as b, b as a from t order by t.a +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +-1000 100 +1 3 +1 2 +1 2 +2 4 +3 7 +4 5 +8 9 +20 -100 +PREHOOK: query: select a as b from t order by b +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a as b from t order by b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +-1000 +1 +1 +1 +2 +3 +4 +8 +20 +PREHOOK: query: select a as b from t order by 0-a +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a as b from t order by 0-a +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +20 +8 +4 +3 +2 +1 +1 +1 +-1000 +PREHOOK: query: select a,b,count(*),a+b from t group by a, b order by a+b +PREHOOK: type: QUERY +PREHOOK: Input: default@t +#### A masked pattern was here #### +POSTHOOK: query: select a,b,count(*),a+b from t group by a, b order by a+b +POSTHOOK: type: QUERY +POSTHOOK: Input: default@t +#### A masked pattern was here #### +-1000 100 1 -900 +20 -100 1 -80 +1 2 2 3 +1 3 1 4 +2 4 1 6 +4 5 1 9 +3 7 1 10 +8 9 1 17 diff --git a/ql/src/test/results/clientpositive/pcr.q.out b/ql/src/test/results/clientpositive/pcr.q.out index a1301fd..ffb1d91 100644 --- a/ql/src/test/results/clientpositive/pcr.q.out +++ b/ql/src/test/results/clientpositive/pcr.q.out @@ -1427,10 +1427,10 @@ STAGE PLANS: Statistics: Num rows: 20 Data size: 160 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: value (type: string) - outputColumnNames: _col1 + outputColumnNames: _col0 Statistics: Num rows: 20 Data size: 160 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator - key expressions: _col1 (type: string) + key expressions: _col0 (type: string) null sort order: a sort order: + Statistics: Num rows: 20 Data size: 160 Basic stats: COMPLETE Column stats: NONE @@ -1534,8 +1534,8 @@ STAGE PLANS: name: default.pcr_t1 name: default.pcr_t1 Truncated Path -> Alias: - /pcr_t1/ds=2000-04-08 [pcr_t1] - /pcr_t1/ds=2000-04-09 [pcr_t1] + /pcr_t1/ds=2000-04-08 [$hdt$_0:pcr_t1] + /pcr_t1/ds=2000-04-09 [$hdt$_0:pcr_t1] Needs Tagging: false Reduce Operator Tree: Select Operator @@ -2366,7 +2366,7 @@ STAGE PLANS: name: default.pcr_t1 name: default.pcr_t1 Truncated Path -> Alias: - /pcr_t1/ds=2000-04-08 [$hdt$_0:t1, $hdt$_1:t2] + /pcr_t1/ds=2000-04-08 [$hdt$_0:$hdt$_0:t1, $hdt$_0:$hdt$_1:t2] Needs Tagging: true Reduce Operator Tree: Join Operator @@ -2377,24 +2377,28 @@ STAGE PLANS: 1 _col0 (type: int) outputColumnNames: _col0, _col1, _col3, _col4 Statistics: Num rows: 22 Data size: 176 Basic stats: COMPLETE Column stats: NONE - File Output Operator - compressed: false - GlobalTableId: 0 + Select Operator + expressions: _col0 (type: int), _col1 (type: string), _col3 (type: int), _col4 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 22 Data size: 176 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + GlobalTableId: 0 #### A masked pattern was here #### - NumFilesPerFileSink: 1 - table: - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - properties: - column.name.delimiter , - columns _col0,_col1,_col3,_col4 - columns.types int,string,int,string - escape.delim \ - serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe - serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe - TotalFiles: 1 - GatherStats: false - MultiFileSpray: false + NumFilesPerFileSink: 1 + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + properties: + column.name.delimiter , + columns _col0,_col1,_col2,_col3 + columns.types int,string,int,string + escape.delim \ + serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + TotalFiles: 1 + GatherStats: false + MultiFileSpray: false Stage: Stage-2 Map Reduce @@ -2407,7 +2411,7 @@ STAGE PLANS: sort order: + Statistics: Num rows: 22 Data size: 176 Basic stats: COMPLETE Column stats: NONE tag: -1 - value expressions: _col1 (type: string), _col3 (type: int), _col4 (type: string) + value expressions: _col1 (type: string), _col2 (type: int), _col3 (type: string) auto parallelism: false Path -> Alias: #### A masked pattern was here #### @@ -2419,7 +2423,7 @@ STAGE PLANS: output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat properties: column.name.delimiter , - columns _col0,_col1,_col3,_col4 + columns _col0,_col1,_col2,_col3 columns.types int,string,int,string escape.delim \ serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe @@ -2429,7 +2433,7 @@ STAGE PLANS: output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat properties: column.name.delimiter , - columns _col0,_col1,_col3,_col4 + columns _col0,_col1,_col2,_col3 columns.types int,string,int,string escape.delim \ serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe @@ -2672,8 +2676,8 @@ STAGE PLANS: name: default.pcr_t1 name: default.pcr_t1 Truncated Path -> Alias: - /pcr_t1/ds=2000-04-08 [$hdt$_0:t1] - /pcr_t1/ds=2000-04-09 [$hdt$_1:t2] + /pcr_t1/ds=2000-04-08 [$hdt$_0:$hdt$_0:t1] + /pcr_t1/ds=2000-04-09 [$hdt$_0:$hdt$_1:t2] Needs Tagging: true Reduce Operator Tree: Join Operator @@ -2684,24 +2688,28 @@ STAGE PLANS: 1 _col0 (type: int) outputColumnNames: _col0, _col1, _col3, _col4 Statistics: Num rows: 22 Data size: 176 Basic stats: COMPLETE Column stats: NONE - File Output Operator - compressed: false - GlobalTableId: 0 + Select Operator + expressions: _col0 (type: int), _col1 (type: string), _col3 (type: int), _col4 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 22 Data size: 176 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + GlobalTableId: 0 #### A masked pattern was here #### - NumFilesPerFileSink: 1 - table: - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - properties: - column.name.delimiter , - columns _col0,_col1,_col3,_col4 - columns.types int,string,int,string - escape.delim \ - serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe - serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe - TotalFiles: 1 - GatherStats: false - MultiFileSpray: false + NumFilesPerFileSink: 1 + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + properties: + column.name.delimiter , + columns _col0,_col1,_col2,_col3 + columns.types int,string,int,string + escape.delim \ + serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + TotalFiles: 1 + GatherStats: false + MultiFileSpray: false Stage: Stage-2 Map Reduce @@ -2714,7 +2722,7 @@ STAGE PLANS: sort order: + Statistics: Num rows: 22 Data size: 176 Basic stats: COMPLETE Column stats: NONE tag: -1 - value expressions: _col1 (type: string), _col3 (type: int), _col4 (type: string) + value expressions: _col1 (type: string), _col2 (type: int), _col3 (type: string) auto parallelism: false Path -> Alias: #### A masked pattern was here #### @@ -2726,7 +2734,7 @@ STAGE PLANS: output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat properties: column.name.delimiter , - columns _col0,_col1,_col3,_col4 + columns _col0,_col1,_col2,_col3 columns.types int,string,int,string escape.delim \ serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe @@ -2736,7 +2744,7 @@ STAGE PLANS: output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat properties: column.name.delimiter , - columns _col0,_col1,_col3,_col4 + columns _col0,_col1,_col2,_col3 columns.types int,string,int,string escape.delim \ serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe @@ -4846,10 +4854,10 @@ STAGE PLANS: Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Select Operator expressions: key (type: string), value (type: string), hr (type: string) - outputColumnNames: _col0, _col1, _col3 + outputColumnNames: _col0, _col1, _col2 Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator - key expressions: _col0 (type: string), _col3 (type: string) + key expressions: _col0 (type: string), _col2 (type: string) null sort order: aa sort order: ++ Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE @@ -4956,8 +4964,8 @@ STAGE PLANS: name: default.srcpart name: default.srcpart Truncated Path -> Alias: - /srcpart/ds=2008-04-08/hr=11 [srcpart] - /srcpart/ds=2008-04-08/hr=12 [srcpart] + /srcpart/ds=2008-04-08/hr=11 [$hdt$_0:srcpart] + /srcpart/ds=2008-04-08/hr=12 [$hdt$_0:srcpart] Needs Tagging: false Reduce Operator Tree: Select Operator @@ -5139,8 +5147,8 @@ STAGE PLANS: name: default.srcpart name: default.srcpart Truncated Path -> Alias: - /srcpart/ds=2008-04-08/hr=11 [srcpart] - /srcpart/ds=2008-04-09/hr=11 [srcpart] + /srcpart/ds=2008-04-08/hr=11 [$hdt$_0:srcpart] + /srcpart/ds=2008-04-09/hr=11 [$hdt$_0:srcpart] Needs Tagging: false Reduce Operator Tree: Select Operator diff --git a/ql/src/test/results/clientpositive/pointlookup2.q.out b/ql/src/test/results/clientpositive/pointlookup2.q.out index 3438c74..158e885 100644 --- a/ql/src/test/results/clientpositive/pointlookup2.q.out +++ b/ql/src/test/results/clientpositive/pointlookup2.q.out @@ -374,7 +374,7 @@ STAGE PLANS: name: default.pcr_t1 name: default.pcr_t1 Truncated Path -> Alias: - /pcr_t1/ds=2000-04-08 [$hdt$_0:t1, $hdt$_1:t2] + /pcr_t1/ds=2000-04-08 [$hdt$_0:$hdt$_0:t1, $hdt$_0:$hdt$_1:t2] Needs Tagging: true Reduce Operator Tree: Join Operator @@ -385,24 +385,28 @@ STAGE PLANS: 1 _col0 (type: int) outputColumnNames: _col0, _col1, _col3, _col4 Statistics: Num rows: 22 Data size: 176 Basic stats: COMPLETE Column stats: NONE - File Output Operator - compressed: false - GlobalTableId: 0 + Select Operator + expressions: _col0 (type: int), _col1 (type: string), _col3 (type: int), _col4 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 22 Data size: 176 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + GlobalTableId: 0 #### A masked pattern was here #### - NumFilesPerFileSink: 1 - table: - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - properties: - column.name.delimiter , - columns _col0,_col1,_col3,_col4 - columns.types int,string,int,string - escape.delim \ - serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe - serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe - TotalFiles: 1 - GatherStats: false - MultiFileSpray: false + NumFilesPerFileSink: 1 + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + properties: + column.name.delimiter , + columns _col0,_col1,_col2,_col3 + columns.types int,string,int,string + escape.delim \ + serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + TotalFiles: 1 + GatherStats: false + MultiFileSpray: false Stage: Stage-2 Map Reduce @@ -415,7 +419,7 @@ STAGE PLANS: sort order: + Statistics: Num rows: 22 Data size: 176 Basic stats: COMPLETE Column stats: NONE tag: -1 - value expressions: _col1 (type: string), _col3 (type: int), _col4 (type: string) + value expressions: _col1 (type: string), _col2 (type: int), _col3 (type: string) auto parallelism: false Path -> Alias: #### A masked pattern was here #### @@ -427,7 +431,7 @@ STAGE PLANS: output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat properties: column.name.delimiter , - columns _col0,_col1,_col3,_col4 + columns _col0,_col1,_col2,_col3 columns.types int,string,int,string escape.delim \ serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe @@ -437,7 +441,7 @@ STAGE PLANS: output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat properties: column.name.delimiter , - columns _col0,_col1,_col3,_col4 + columns _col0,_col1,_col2,_col3 columns.types int,string,int,string escape.delim \ serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe @@ -640,8 +644,8 @@ STAGE PLANS: name: default.pcr_t1 name: default.pcr_t1 Truncated Path -> Alias: - /pcr_t1/ds=2000-04-08 [$hdt$_0:t1] - /pcr_t1/ds=2000-04-09 [$hdt$_1:t2] + /pcr_t1/ds=2000-04-08 [$hdt$_0:$hdt$_0:t1] + /pcr_t1/ds=2000-04-09 [$hdt$_0:$hdt$_1:t2] Needs Tagging: true Reduce Operator Tree: Join Operator @@ -652,24 +656,28 @@ STAGE PLANS: 1 _col0 (type: int) outputColumnNames: _col0, _col1, _col3, _col4 Statistics: Num rows: 22 Data size: 176 Basic stats: COMPLETE Column stats: NONE - File Output Operator - compressed: false - GlobalTableId: 0 + Select Operator + expressions: _col0 (type: int), _col1 (type: string), _col3 (type: int), _col4 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 22 Data size: 176 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + GlobalTableId: 0 #### A masked pattern was here #### - NumFilesPerFileSink: 1 - table: - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - properties: - column.name.delimiter , - columns _col0,_col1,_col3,_col4 - columns.types int,string,int,string - escape.delim \ - serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe - serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe - TotalFiles: 1 - GatherStats: false - MultiFileSpray: false + NumFilesPerFileSink: 1 + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + properties: + column.name.delimiter , + columns _col0,_col1,_col2,_col3 + columns.types int,string,int,string + escape.delim \ + serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + TotalFiles: 1 + GatherStats: false + MultiFileSpray: false Stage: Stage-2 Map Reduce @@ -682,7 +690,7 @@ STAGE PLANS: sort order: + Statistics: Num rows: 22 Data size: 176 Basic stats: COMPLETE Column stats: NONE tag: -1 - value expressions: _col1 (type: string), _col3 (type: int), _col4 (type: string) + value expressions: _col1 (type: string), _col2 (type: int), _col3 (type: string) auto parallelism: false Path -> Alias: #### A masked pattern was here #### @@ -694,7 +702,7 @@ STAGE PLANS: output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat properties: column.name.delimiter , - columns _col0,_col1,_col3,_col4 + columns _col0,_col1,_col2,_col3 columns.types int,string,int,string escape.delim \ serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe @@ -704,7 +712,7 @@ STAGE PLANS: output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat properties: column.name.delimiter , - columns _col0,_col1,_col3,_col4 + columns _col0,_col1,_col2,_col3 columns.types int,string,int,string escape.delim \ serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe diff --git a/ql/src/test/results/clientpositive/pointlookup3.q.out b/ql/src/test/results/clientpositive/pointlookup3.q.out index 2c3e39f..eb61e17 100644 --- a/ql/src/test/results/clientpositive/pointlookup3.q.out +++ b/ql/src/test/results/clientpositive/pointlookup3.q.out @@ -307,7 +307,7 @@ STAGE PLANS: name: default.pcr_t1 name: default.pcr_t1 Truncated Path -> Alias: - /pcr_t1/ds1=2000-04-08/ds2=2001-04-08 [pcr_t1] + /pcr_t1/ds1=2000-04-08/ds2=2001-04-08 [$hdt$_0:pcr_t1] Needs Tagging: false Reduce Operator Tree: Select Operator @@ -458,7 +458,7 @@ STAGE PLANS: name: default.pcr_t1 name: default.pcr_t1 Truncated Path -> Alias: - /pcr_t1/ds1=2000-04-08/ds2=2001-04-08 [$hdt$_0:t1, $hdt$_1:t2] + /pcr_t1/ds1=2000-04-08/ds2=2001-04-08 [$hdt$_0:$hdt$_0:t1, $hdt$_0:$hdt$_1:t2] Needs Tagging: true Reduce Operator Tree: Join Operator @@ -469,24 +469,28 @@ STAGE PLANS: 1 _col0 (type: int) outputColumnNames: _col0, _col1, _col3, _col4, _col5, _col6 Statistics: Num rows: 22 Data size: 176 Basic stats: COMPLETE Column stats: NONE - File Output Operator - compressed: false - GlobalTableId: 0 + Select Operator + expressions: _col0 (type: int), _col1 (type: string), _col3 (type: string), _col4 (type: int), _col5 (type: string), _col6 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 + Statistics: Num rows: 22 Data size: 176 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + GlobalTableId: 0 #### A masked pattern was here #### - NumFilesPerFileSink: 1 - table: - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - properties: - column.name.delimiter , - columns _col0,_col1,_col3,_col4,_col5,_col6 - columns.types int,string,string,int,string,string - escape.delim \ - serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe - serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe - TotalFiles: 1 - GatherStats: false - MultiFileSpray: false + NumFilesPerFileSink: 1 + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + properties: + column.name.delimiter , + columns _col0,_col1,_col2,_col3,_col4,_col5 + columns.types int,string,string,int,string,string + escape.delim \ + serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + TotalFiles: 1 + GatherStats: false + MultiFileSpray: false Stage: Stage-2 Map Reduce @@ -499,7 +503,7 @@ STAGE PLANS: sort order: + Statistics: Num rows: 22 Data size: 176 Basic stats: COMPLETE Column stats: NONE tag: -1 - value expressions: _col1 (type: string), _col3 (type: string), _col4 (type: int), _col5 (type: string), _col6 (type: string) + value expressions: _col1 (type: string), _col2 (type: string), _col3 (type: int), _col4 (type: string), _col5 (type: string) auto parallelism: false Path -> Alias: #### A masked pattern was here #### @@ -511,7 +515,7 @@ STAGE PLANS: output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat properties: column.name.delimiter , - columns _col0,_col1,_col3,_col4,_col5,_col6 + columns _col0,_col1,_col2,_col3,_col4,_col5 columns.types int,string,string,int,string,string escape.delim \ serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe @@ -521,7 +525,7 @@ STAGE PLANS: output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat properties: column.name.delimiter , - columns _col0,_col1,_col3,_col4,_col5,_col6 + columns _col0,_col1,_col2,_col3,_col4,_col5 columns.types int,string,string,int,string,string escape.delim \ serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe @@ -726,8 +730,8 @@ STAGE PLANS: name: default.pcr_t1 name: default.pcr_t1 Truncated Path -> Alias: - /pcr_t1/ds1=2000-04-08/ds2=2001-04-08 [$hdt$_0:t1] - /pcr_t1/ds1=2000-04-09/ds2=2001-04-09 [$hdt$_1:t2] + /pcr_t1/ds1=2000-04-08/ds2=2001-04-08 [$hdt$_0:$hdt$_0:t1] + /pcr_t1/ds1=2000-04-09/ds2=2001-04-09 [$hdt$_0:$hdt$_1:t2] Needs Tagging: true Reduce Operator Tree: Join Operator @@ -738,24 +742,28 @@ STAGE PLANS: 1 _col0 (type: int) outputColumnNames: _col0, _col1, _col3, _col4, _col5, _col7 Statistics: Num rows: 22 Data size: 176 Basic stats: COMPLETE Column stats: NONE - File Output Operator - compressed: false - GlobalTableId: 0 + Select Operator + expressions: _col0 (type: int), _col1 (type: string), _col3 (type: string), _col4 (type: int), _col5 (type: string), _col7 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5 + Statistics: Num rows: 22 Data size: 176 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + GlobalTableId: 0 #### A masked pattern was here #### - NumFilesPerFileSink: 1 - table: - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - properties: - column.name.delimiter , - columns _col0,_col1,_col3,_col4,_col5,_col7 - columns.types int,string,string,int,string,string - escape.delim \ - serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe - serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe - TotalFiles: 1 - GatherStats: false - MultiFileSpray: false + NumFilesPerFileSink: 1 + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + properties: + column.name.delimiter , + columns _col0,_col1,_col2,_col3,_col4,_col5 + columns.types int,string,string,int,string,string + escape.delim \ + serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + TotalFiles: 1 + GatherStats: false + MultiFileSpray: false Stage: Stage-2 Map Reduce @@ -768,7 +776,7 @@ STAGE PLANS: sort order: + Statistics: Num rows: 22 Data size: 176 Basic stats: COMPLETE Column stats: NONE tag: -1 - value expressions: _col1 (type: string), _col3 (type: string), _col4 (type: int), _col5 (type: string), _col7 (type: string) + value expressions: _col1 (type: string), _col2 (type: string), _col3 (type: int), _col4 (type: string), _col5 (type: string) auto parallelism: false Path -> Alias: #### A masked pattern was here #### @@ -780,7 +788,7 @@ STAGE PLANS: output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat properties: column.name.delimiter , - columns _col0,_col1,_col3,_col4,_col5,_col7 + columns _col0,_col1,_col2,_col3,_col4,_col5 columns.types int,string,string,int,string,string escape.delim \ serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe @@ -790,7 +798,7 @@ STAGE PLANS: output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat properties: column.name.delimiter , - columns _col0,_col1,_col3,_col4,_col5,_col7 + columns _col0,_col1,_col2,_col3,_col4,_col5 columns.types int,string,string,int,string,string escape.delim \ serialization.lib org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe diff --git a/ql/src/test/results/clientpositive/ppd_udf_case.q.out b/ql/src/test/results/clientpositive/ppd_udf_case.q.out index 7678d03..3cf8e81 100644 --- a/ql/src/test/results/clientpositive/ppd_udf_case.q.out +++ b/ql/src/test/results/clientpositive/ppd_udf_case.q.out @@ -71,19 +71,23 @@ STAGE PLANS: 1 outputColumnNames: _col1, _col3, _col5, _col7 Statistics: Num rows: 250000 Data size: 5562000 Basic stats: COMPLETE Column stats: NONE - File Output Operator - compressed: false - table: - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + Select Operator + expressions: _col1 (type: string), _col3 (type: string), _col5 (type: string), _col7 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 250000 Data size: 5562000 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe Stage: Stage-2 Map Reduce Map Operator Tree: TableScan Reduce Output Operator - key expressions: _col1 (type: string), _col3 (type: string), _col5 (type: string), _col7 (type: string) + key expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col3 (type: string) sort order: ++++ Statistics: Num rows: 250000 Data size: 5562000 Basic stats: COMPLETE Column stats: NONE Reduce Operator Tree: @@ -215,19 +219,23 @@ STAGE PLANS: 1 outputColumnNames: _col1, _col3, _col5, _col7 Statistics: Num rows: 250000 Data size: 5562000 Basic stats: COMPLETE Column stats: NONE - File Output Operator - compressed: false - table: - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + Select Operator + expressions: _col1 (type: string), _col3 (type: string), _col5 (type: string), _col7 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 250000 Data size: 5562000 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe Stage: Stage-2 Map Reduce Map Operator Tree: TableScan Reduce Output Operator - key expressions: _col1 (type: string), _col3 (type: string), _col5 (type: string), _col7 (type: string) + key expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col3 (type: string) sort order: ++++ Statistics: Num rows: 250000 Data size: 5562000 Basic stats: COMPLETE Column stats: NONE Reduce Operator Tree: diff --git a/ql/src/test/results/clientpositive/ppd_vc.q.out b/ql/src/test/results/clientpositive/ppd_vc.q.out index 86ab427..e841cb6 100644 --- a/ql/src/test/results/clientpositive/ppd_vc.q.out +++ b/ql/src/test/results/clientpositive/ppd_vc.q.out @@ -325,26 +325,6 @@ STAGE PLANS: Map Reduce Map Operator Tree: TableScan - alias: a - Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE - GatherStats: false - Filter Operator - isSamplingPred: false - predicate: key is not null (type: boolean) - Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE - Select Operator - expressions: key (type: string) - outputColumnNames: _col0 - Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE - Reduce Output Operator - key expressions: _col0 (type: string) - null sort order: a - sort order: + - Map-reduce partition columns: _col0 (type: string) - Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE - tag: 0 - auto parallelism: false - TableScan alias: srcpart Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE GatherStats: false @@ -365,6 +345,22 @@ STAGE PLANS: tag: 1 value expressions: _col1 (type: string), _col2 (type: string), _col3 (type: string), _col4 (type: bigint) auto parallelism: false + TableScan + alias: a + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + GatherStats: false + Filter Operator + isSamplingPred: false + predicate: key is not null (type: boolean) + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: key (type: string) + null sort order: a + sort order: + + Map-reduce partition columns: key (type: string) + Statistics: Num rows: 500 Data size: 5312 Basic stats: COMPLETE Column stats: NONE + tag: 0 + auto parallelism: false Path -> Alias: #### A masked pattern was here #### Path -> Partition: @@ -607,23 +603,23 @@ STAGE PLANS: name: default.srcpart name: default.srcpart Truncated Path -> Alias: - /src [$hdt$_0:a] - /srcpart/ds=2008-04-08/hr=11 [$hdt$_1:srcpart] - /srcpart/ds=2008-04-08/hr=12 [$hdt$_1:srcpart] - /srcpart/ds=2008-04-09/hr=11 [$hdt$_1:srcpart] - /srcpart/ds=2008-04-09/hr=12 [$hdt$_1:srcpart] + /src [a] + /srcpart/ds=2008-04-08/hr=11 [b:srcpart] + /srcpart/ds=2008-04-08/hr=12 [b:srcpart] + /srcpart/ds=2008-04-09/hr=11 [b:srcpart] + /srcpart/ds=2008-04-09/hr=12 [b:srcpart] Needs Tagging: true Reduce Operator Tree: Join Operator condition map: Inner Join 0 to 1 keys: - 0 _col0 (type: string) + 0 key (type: string) 1 _col0 (type: string) - outputColumnNames: _col1, _col2, _col3, _col4, _col5 + outputColumnNames: _col5, _col6, _col7, _col8, _col9 Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: _col1 (type: string), _col2 (type: string), _col3 (type: string), _col4 (type: string), _col5 (type: bigint) + expressions: _col5 (type: string), _col6 (type: string), _col7 (type: string), _col8 (type: string), _col9 (type: bigint) outputColumnNames: _col0, _col1, _col2, _col3, _col4 Statistics: Num rows: 550 Data size: 5843 Basic stats: COMPLETE Column stats: NONE File Output Operator diff --git a/ql/src/test/results/clientpositive/regex_col.q.out b/ql/src/test/results/clientpositive/regex_col.q.out index 70ec363..16be747 100644 --- a/ql/src/test/results/clientpositive/regex_col.q.out +++ b/ql/src/test/results/clientpositive/regex_col.q.out @@ -165,43 +165,35 @@ STAGE PLANS: alias: a Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: (UDFToDouble(key) = 103.0) (type: boolean) + predicate: (key = 103) (type: boolean) Statistics: Num rows: 1000 Data size: 10624 Basic stats: COMPLETE Column stats: NONE - Select Operator - expressions: key (type: string), ds (type: string), hr (type: string) - outputColumnNames: _col0, _col1, _col2 + Reduce Output Operator + key expressions: key (type: string), hr (type: string), ds (type: string) + sort order: +++ + Map-reduce partition columns: key (type: string), hr (type: string), ds (type: string) Statistics: Num rows: 1000 Data size: 10624 Basic stats: COMPLETE Column stats: NONE - Reduce Output Operator - key expressions: _col1 (type: string), _col2 (type: string), _col0 (type: string) - sort order: +++ - Map-reduce partition columns: _col1 (type: string), _col2 (type: string), _col0 (type: string) - Statistics: Num rows: 1000 Data size: 10624 Basic stats: COMPLETE Column stats: NONE TableScan alias: b Statistics: Num rows: 2000 Data size: 21248 Basic stats: COMPLETE Column stats: NONE Filter Operator - predicate: (UDFToDouble(key) = 103.0) (type: boolean) + predicate: (key = 103) (type: boolean) Statistics: Num rows: 1000 Data size: 10624 Basic stats: COMPLETE Column stats: NONE - Select Operator - expressions: key (type: string), ds (type: string), hr (type: string) - outputColumnNames: _col0, _col1, _col2 + Reduce Output Operator + key expressions: key (type: string), hr (type: string), ds (type: string) + sort order: +++ + Map-reduce partition columns: key (type: string), hr (type: string), ds (type: string) Statistics: Num rows: 1000 Data size: 10624 Basic stats: COMPLETE Column stats: NONE - Reduce Output Operator - key expressions: _col1 (type: string), _col2 (type: string), _col0 (type: string) - sort order: +++ - Map-reduce partition columns: _col1 (type: string), _col2 (type: string), _col0 (type: string) - Statistics: Num rows: 1000 Data size: 10624 Basic stats: COMPLETE Column stats: NONE Reduce Operator Tree: Join Operator condition map: Inner Join 0 to 1 keys: - 0 _col1 (type: string), _col2 (type: string), _col0 (type: string) - 1 _col1 (type: string), _col2 (type: string), _col0 (type: string) - outputColumnNames: _col4, _col5 + 0 key (type: string), hr (type: string), ds (type: string) + 1 key (type: string), hr (type: string), ds (type: string) + outputColumnNames: _col9, _col10 Statistics: Num rows: 1100 Data size: 11686 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: _col4 (type: string), _col5 (type: string) + expressions: _col9 (type: string), _col10 (type: string) outputColumnNames: _col0, _col1 Statistics: Num rows: 1100 Data size: 11686 Basic stats: COMPLETE Column stats: NONE File Output Operator diff --git a/ql/src/test/results/clientpositive/vector_coalesce.q.out b/ql/src/test/results/clientpositive/vector_coalesce.q.out index 6f74ec9..d87dd05 100644 --- a/ql/src/test/results/clientpositive/vector_coalesce.q.out +++ b/ql/src/test/results/clientpositive/vector_coalesce.q.out @@ -202,12 +202,14 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumns: [] - Reduce Sink Vectorization: - className: VectorReduceSinkOperator - native: false - nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, No buckets IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true - nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, No TopN IS false, Uniform Hash IS false + projectedOutputColumns: [12, 13, 14] + selectExpressions: ConstantVectorExpression(val null) -> 12:float, ConstantVectorExpression(val null) -> 13:bigint, ConstantVectorExpression(val 0.0) -> 14:double + Limit Vectorization: + className: VectorLimitOperator + native: true + File Sink Vectorization: + className: VectorFileSinkOperator + native: false Execution mode: vectorized Map Vectorization: enabled: true @@ -217,11 +219,6 @@ STAGE PLANS: allNative: false usesVectorUDFAdaptor: false vectorized: true - Reduce Vectorization: - enabled: false - enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true - enableConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false - Reduce Operator Tree: Stage: Stage-0 Fetch Operator @@ -371,12 +368,14 @@ STAGE PLANS: Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumns: [] - Reduce Sink Vectorization: - className: VectorReduceSinkOperator - native: false - nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, No buckets IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true - nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, No TopN IS false, Uniform Hash IS false + projectedOutputColumns: [12, 13, 14] + selectExpressions: ConstantVectorExpression(val null) -> 12:float, ConstantVectorExpression(val null) -> 13:bigint, ConstantVectorExpression(val null) -> 14:float + Limit Vectorization: + className: VectorLimitOperator + native: true + File Sink Vectorization: + className: VectorFileSinkOperator + native: false Execution mode: vectorized Map Vectorization: enabled: true @@ -386,11 +385,6 @@ STAGE PLANS: allNative: false usesVectorUDFAdaptor: false vectorized: true - Reduce Vectorization: - enabled: false - enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true - enableConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false - Reduce Operator Tree: Stage: Stage-0 Fetch Operator diff --git a/ql/src/test/results/clientpositive/vector_date_1.q.out b/ql/src/test/results/clientpositive/vector_date_1.q.out index c2389e6..6762374 100644 --- a/ql/src/test/results/clientpositive/vector_date_1.q.out +++ b/ql/src/test/results/clientpositive/vector_date_1.q.out @@ -594,26 +594,17 @@ STAGE PLANS: predicate: ((dt1 = 2001-01-01) and (2001-01-01 = dt1) and (dt1 <> 1970-01-01) and (1970-01-01 <> dt1) and (dt1 > 1970-01-01) and (dt1 >= 1970-01-01) and (1970-01-01 < dt1) and (1970-01-01 <= dt1)) (type: boolean) Statistics: Num rows: 1 Data size: 74 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: dt2 (type: date) - outputColumnNames: _col1 + expressions: 2001-01-01 (type: date), dt2 (type: date) + outputColumnNames: _col0, _col1 Statistics: Num rows: 1 Data size: 74 Basic stats: COMPLETE Column stats: NONE - Reduce Output Operator - sort order: + File Output Operator + compressed: false Statistics: Num rows: 1 Data size: 74 Basic stats: COMPLETE Column stats: NONE - value expressions: _col1 (type: date) + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe Execution mode: vectorized - Reduce Operator Tree: - Select Operator - expressions: 2001-01-01 (type: date), VALUE._col0 (type: date) - outputColumnNames: _col0, _col1 - Statistics: Num rows: 1 Data size: 74 Basic stats: COMPLETE Column stats: NONE - File Output Operator - compressed: false - Statistics: Num rows: 1 Data size: 74 Basic stats: COMPLETE Column stats: NONE - table: - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe Stage: Stage-0 Fetch Operator diff --git a/ql/src/test/results/clientpositive/vector_decimal_round.q.out b/ql/src/test/results/clientpositive/vector_decimal_round.q.out index b1fd628..5c74968 100644 --- a/ql/src/test/results/clientpositive/vector_decimal_round.q.out +++ b/ql/src/test/results/clientpositive/vector_decimal_round.q.out @@ -116,11 +116,11 @@ STAGE PLANS: alias: decimal_tbl_txt Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: dec (type: decimal(10,0)) - outputColumnNames: _col0 + expressions: dec (type: decimal(10,0)), round(dec, -1) (type: decimal(11,0)) + outputColumnNames: _col0, _col2 Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator - key expressions: round(_col0, -1) (type: decimal(11,0)) + key expressions: _col2 (type: decimal(11,0)) sort order: + Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE value expressions: _col0 (type: decimal(10,0)) @@ -274,11 +274,11 @@ STAGE PLANS: alias: decimal_tbl_rc Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE Select Operator - expressions: dec (type: decimal(10,0)) - outputColumnNames: _col0 + expressions: dec (type: decimal(10,0)), round(dec, -1) (type: decimal(11,0)) + outputColumnNames: _col0, _col2 Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator - key expressions: round(_col0, -1) (type: decimal(11,0)) + key expressions: _col2 (type: decimal(11,0)) sort order: + Statistics: Num rows: 1 Data size: 3 Basic stats: COMPLETE Column stats: NONE value expressions: _col0 (type: decimal(10,0)) @@ -453,15 +453,16 @@ STAGE PLANS: native: true projectedOutputColumns: [0] Select Operator - expressions: dec (type: decimal(10,0)) - outputColumnNames: _col0 + expressions: dec (type: decimal(10,0)), round(dec, -1) (type: decimal(11,0)) + outputColumnNames: _col0, _col2 Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumns: [0] + projectedOutputColumns: [0, 1] + selectExpressions: FuncRoundWithNumDigitsDecimalToDecimal(col 0, decimalPlaces -1) -> 1:decimal(11,0) Statistics: Num rows: 1 Data size: 112 Basic stats: COMPLETE Column stats: NONE Reduce Output Operator - key expressions: round(_col0, -1) (type: decimal(11,0)) + key expressions: _col2 (type: decimal(11,0)) sort order: + Reduce Sink Vectorization: className: VectorReduceSinkOperator diff --git a/ql/src/test/results/clientpositive/vector_interval_1.q.out b/ql/src/test/results/clientpositive/vector_interval_1.q.out index b7a8e5a..85e34ab 100644 --- a/ql/src/test/results/clientpositive/vector_interval_1.q.out +++ b/ql/src/test/results/clientpositive/vector_interval_1.q.out @@ -72,7 +72,7 @@ STAGE PLANS: projectedOutputColumns: [0, 1, 2, 3] Select Operator expressions: str1 (type: string), CAST( str1 AS INTERVAL YEAR TO MONTH) (type: interval_year_month), CAST( str2 AS INTERVAL DAY TO SECOND) (type: interval_day_time) - outputColumnNames: _col0, _col2, _col4 + outputColumnNames: _col0, _col1, _col2 Select Vectorization: className: VectorSelectOperator native: true @@ -88,7 +88,7 @@ STAGE PLANS: nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, No buckets IS true, No TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, Uniform Hash IS false Statistics: Num rows: 2 Data size: 442 Basic stats: COMPLETE Column stats: NONE - value expressions: _col2 (type: interval_year_month), _col4 (type: interval_day_time) + value expressions: _col1 (type: interval_year_month), _col2 (type: interval_day_time) Execution mode: vectorized Map Vectorization: enabled: true @@ -181,7 +181,7 @@ STAGE PLANS: projectedOutputColumns: [0, 1, 2, 3] Select Operator expressions: dt (type: date), (CAST( str1 AS INTERVAL YEAR TO MONTH) + CAST( str1 AS INTERVAL YEAR TO MONTH)) (type: interval_year_month), (1-2 + CAST( str1 AS INTERVAL YEAR TO MONTH)) (type: interval_year_month), (CAST( str1 AS INTERVAL YEAR TO MONTH) - CAST( str1 AS INTERVAL YEAR TO MONTH)) (type: interval_year_month), (1-2 - CAST( str1 AS INTERVAL YEAR TO MONTH)) (type: interval_year_month) - outputColumnNames: _col0, _col2, _col3, _col5, _col6 + outputColumnNames: _col0, _col1, _col2, _col3, _col4 Select Vectorization: className: VectorSelectOperator native: true @@ -197,7 +197,7 @@ STAGE PLANS: nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, No buckets IS true, No TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, Uniform Hash IS false Statistics: Num rows: 2 Data size: 442 Basic stats: COMPLETE Column stats: NONE - value expressions: _col2 (type: interval_year_month), _col3 (type: interval_year_month), _col5 (type: interval_year_month), _col6 (type: interval_year_month) + value expressions: _col1 (type: interval_year_month), _col2 (type: interval_year_month), _col3 (type: interval_year_month), _col4 (type: interval_year_month) Execution mode: vectorized Map Vectorization: enabled: true @@ -298,7 +298,7 @@ STAGE PLANS: projectedOutputColumns: [0, 1, 2, 3] Select Operator expressions: dt (type: date), (CAST( str2 AS INTERVAL DAY TO SECOND) + CAST( str2 AS INTERVAL DAY TO SECOND)) (type: interval_day_time), (1 02:03:04.000000000 + CAST( str2 AS INTERVAL DAY TO SECOND)) (type: interval_day_time), (CAST( str2 AS INTERVAL DAY TO SECOND) - CAST( str2 AS INTERVAL DAY TO SECOND)) (type: interval_day_time), (1 02:03:04.000000000 - CAST( str2 AS INTERVAL DAY TO SECOND)) (type: interval_day_time) - outputColumnNames: _col0, _col2, _col3, _col5, _col6 + outputColumnNames: _col0, _col1, _col2, _col3, _col4 Select Vectorization: className: VectorSelectOperator native: true @@ -314,7 +314,7 @@ STAGE PLANS: nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, No buckets IS true, No TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, Uniform Hash IS false Statistics: Num rows: 2 Data size: 442 Basic stats: COMPLETE Column stats: NONE - value expressions: _col2 (type: interval_day_time), _col3 (type: interval_day_time), _col5 (type: interval_day_time), _col6 (type: interval_day_time) + value expressions: _col1 (type: interval_day_time), _col2 (type: interval_day_time), _col3 (type: interval_day_time), _col4 (type: interval_day_time) Execution mode: vectorized Map Vectorization: enabled: true diff --git a/ql/src/test/results/clientpositive/vector_interval_arithmetic.q.out b/ql/src/test/results/clientpositive/vector_interval_arithmetic.q.out index 4908fca..8ff2422 100644 --- a/ql/src/test/results/clientpositive/vector_interval_arithmetic.q.out +++ b/ql/src/test/results/clientpositive/vector_interval_arithmetic.q.out @@ -572,21 +572,30 @@ STAGE PLANS: native: true projectedOutputColumns: [0, 1] Select Operator + expressions: 5-5 (type: interval_year_month), -1-1 (type: interval_year_month) + outputColumnNames: _col0, _col1 Select Vectorization: className: VectorSelectOperator native: true - projectedOutputColumns: [] + projectedOutputColumns: [2, 3] + selectExpressions: ConstantVectorExpression(val 65) -> 2:long, ConstantVectorExpression(val -13) -> 3:long Statistics: Num rows: 50 Data size: 800 Basic stats: COMPLETE Column stats: COMPLETE - Reduce Output Operator - key expressions: CAST( 5-5 AS INTERVAL YEAR TO MONTH) (type: interval_year_month) - sort order: + - Reduce Sink Vectorization: - className: VectorReduceSinkOperator - native: false - nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, No buckets IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true - nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, No TopN IS false, Uniform Hash IS false - Statistics: Num rows: 50 Data size: 800 Basic stats: COMPLETE Column stats: COMPLETE - TopN Hash Memory Usage: 0.1 + Limit + Number of rows: 2 + Limit Vectorization: + className: VectorLimitOperator + native: true + Statistics: Num rows: 2 Data size: 32 Basic stats: COMPLETE Column stats: COMPLETE + File Output Operator + compressed: false + File Sink Vectorization: + className: VectorFileSinkOperator + native: false + Statistics: Num rows: 2 Data size: 32 Basic stats: COMPLETE Column stats: COMPLETE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe Execution mode: vectorized Map Vectorization: enabled: true @@ -596,25 +605,6 @@ STAGE PLANS: allNative: false usesVectorUDFAdaptor: false vectorized: true - Reduce Vectorization: - enabled: false - enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true - enableConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false - Reduce Operator Tree: - Select Operator - expressions: 5-5 (type: interval_year_month), -1-1 (type: interval_year_month) - outputColumnNames: _col0, _col1 - Statistics: Num rows: 50 Data size: 800 Basic stats: COMPLETE Column stats: COMPLETE - Limit - Number of rows: 2 - Statistics: Num rows: 2 Data size: 32 Basic stats: COMPLETE Column stats: COMPLETE - File Output Operator - compressed: false - Statistics: Num rows: 2 Data size: 32 Basic stats: COMPLETE Column stats: COMPLETE - table: - input format: org.apache.hadoop.mapred.SequenceFileInputFormat - output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat - serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe Stage: Stage-0 Fetch Operator diff --git a/ql/src/test/results/clientpositive/vectorization_limit.q.out b/ql/src/test/results/clientpositive/vectorization_limit.q.out index 17cdd51..e043068 100644 --- a/ql/src/test/results/clientpositive/vectorization_limit.q.out +++ b/ql/src/test/results/clientpositive/vectorization_limit.q.out @@ -561,12 +561,66 @@ PLAN VECTORIZATION: enabledConditionsMet: [hive.vectorized.execution.enabled IS true] STAGE DEPENDENCIES: - Stage-0 is a root stage + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: alltypesorc + Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE + TableScan Vectorization: + native: true + projectedOutputColumns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + Select Operator + expressions: ctinyint (type: tinyint), cdouble (type: double) + outputColumnNames: _col0, _col1 + Select Vectorization: + className: VectorSelectOperator + native: true + projectedOutputColumns: [0, 5] + Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: tinyint) + sort order: + + Reduce Sink Vectorization: + className: VectorReduceSinkOperator + native: false + nativeConditionsMet: hive.vectorized.execution.reducesink.new.enabled IS true, No buckets IS true, No TopN IS true, No DISTINCT columns IS true, BinarySortableSerDe for keys IS true, LazyBinarySerDe for values IS true + nativeConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false, Uniform Hash IS false + Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: double) + Execution mode: vectorized + Map Vectorization: + enabled: true + enabledConditionsMet: hive.vectorized.use.vectorized.input.format IS true + groupByVectorOutput: true + inputFileFormats: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat + allNative: false + usesVectorUDFAdaptor: false + vectorized: true + Reduce Vectorization: + enabled: false + enableConditionsMet: hive.vectorized.execution.reduce.enabled IS true + enableConditionsNotMet: hive.execution.engine mr IN [tez, spark] IS false + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: tinyint), VALUE._col0 (type: double) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 12288 Data size: 2641964 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + Stage: Stage-0 Fetch Operator - limit: 0 + limit: -1 Processor Tree: ListSink @@ -578,6 +632,12294 @@ POSTHOOK: query: select ctinyint,cdouble from alltypesorc order by ctinyint limi POSTHOOK: type: QUERY POSTHOOK: Input: default@alltypesorc #### A masked pattern was here #### +NULL 6747.0 +NULL -15824.0 +NULL -14128.0 +NULL 11437.0 +NULL -1295.0 +NULL -14860.0 +NULL -9435.0 +NULL 8455.0 +NULL -3042.0 +NULL 10933.0 +NULL 1373.0 +NULL 10852.0 +NULL -11838.0 +NULL -7803.0 +NULL 14980.0 +NULL -9379.0 +NULL -1729.0 +NULL 5495.0 +NULL -695.0 +NULL -4005.0 +NULL 9019.0 +NULL -13668.0 +NULL -13517.0 +NULL 13690.0 +NULL 3523.0 +NULL -12878.0 +NULL 6866.0 +NULL -6988.0 +NULL 15897.0 +NULL -2787.0 +NULL -6944.0 +NULL -1988.0 +NULL -1309.0 +NULL -9190.0 +NULL -8277.0 +NULL 15570.0 +NULL 12214.0 +NULL 12853.0 +NULL 15347.0 +NULL 7129.0 +NULL -9551.0 +NULL -4909.0 +NULL -9825.0 +NULL 15561.0 +NULL -13332.0 +NULL 8531.0 +NULL 11558.0 +NULL 5983.0 +NULL 14619.0 +NULL -1604.0 +NULL -13512.0 +NULL -4163.0 +NULL -13818.0 +NULL -14982.0 +NULL -5490.0 +NULL -872.0 +NULL -1379.0 +NULL -12635.0 +NULL -3335.0 +NULL 12220.0 +NULL -2704.0 +NULL 9661.0 +NULL 14504.0 +NULL 9532.0 +NULL -8454.0 +NULL 2663.0 +NULL -12860.0 +NULL -9374.0 +NULL -16211.0 +NULL -937.0 +NULL -12471.0 +NULL -8352.0 +NULL 13109.0 +NULL 4979.0 +NULL -10760.0 +NULL -14648.0 +NULL 15154.0 +NULL 15892.0 +NULL -14674.0 +NULL -4340.0 +NULL 13309.0 +NULL -5905.0 +NULL -12404.0 +NULL NULL +NULL 16292.0 +NULL 8760.0 +NULL -12179.0 +NULL 3679.0 +NULL -9078.0 +NULL -6850.0 +NULL 336.0 +NULL -3598.0 +NULL -1379.0 +NULL -11364.0 +NULL 2108.0 +NULL 6257.0 +NULL 8653.0 +NULL 16018.0 +NULL -6116.0 +NULL 6770.0 +NULL 13793.0 +NULL -11944.0 +NULL 2047.0 +NULL 10596.0 +NULL -9437.0 +NULL -34.0 +NULL 1116.0 +NULL 8811.0 +NULL -13377.0 +NULL -15550.0 +NULL -14297.0 +NULL 6579.0 +NULL 10719.0 +NULL -13295.0 +NULL -7757.0 +NULL -383.0 +NULL -10813.0 +NULL -1003.0 +NULL 151.0 +NULL -13368.0 +NULL -1564.0 +NULL -13311.0 +NULL -429.0 +NULL -4910.0 +NULL -8323.0 +NULL -2594.0 +NULL -12593.0 +NULL 9712.0 +NULL -11000.0 +NULL 5645.0 +NULL 58.0 +NULL 12705.0 +NULL -473.0 +NULL 351.0 +NULL -12285.0 +NULL 1396.0 +NULL -7692.0 +NULL -5504.0 +NULL -13230.0 +NULL 13074.0 +NULL -3947.0 +NULL 782.0 +NULL -1236.0 +NULL -8940.0 +NULL 5575.0 +NULL 71.0 +NULL -13685.0 +NULL 11730.0 +NULL 12610.0 +NULL 4013.0 +NULL -11521.0 +NULL 1638.0 +NULL 680.0 +NULL 8285.0 +NULL 10725.0 +NULL 15869.0 +NULL NULL +NULL 8825.0 +NULL 2480.0 +NULL 3109.0 +NULL 15067.0 +NULL 1836.0 +NULL 10725.0 +NULL 14367.0 +NULL 4223.0 +NULL 13000.0 +NULL 2017.0 +NULL 67.0 +NULL 11904.0 +NULL -2791.0 +NULL -13331.0 +NULL -10141.0 +NULL -15731.0 +NULL 1600.0 +NULL -13050.0 +NULL 14993.0 +NULL -7246.0 +NULL 4092.0 +NULL -12991.0 +NULL -10961.0 +NULL 15957.0 +NULL -10416.0 +NULL -4251.0 +NULL 5926.0 +NULL 1103.0 +NULL 1692.0 +NULL 7657.0 +NULL 12661.0 +NULL -15139.0 +NULL -8154.0 +NULL -384.0 +NULL -11724.0 +NULL -9677.0 +NULL -15298.0 +NULL 10511.0 +NULL 15740.0 +NULL -12704.0 +NULL 13266.0 +NULL -923.0 +NULL 192.0 +NULL -6669.0 +NULL 10541.0 +NULL -3706.0 +NULL 3083.0 +NULL -985.0 +NULL -823.0 +NULL -8378.0 +NULL -16187.0 +NULL 4153.0 +NULL -7118.0 +NULL -4583.0 +NULL -2816.0 +NULL -156.0 +NULL 7246.0 +NULL 1887.0 +NULL -1389.0 +NULL 1824.0 +NULL -14164.0 +NULL -8588.0 +NULL 6750.0 +NULL 6764.0 +NULL 9471.0 +NULL 9318.0 +NULL -11780.0 +NULL 1668.0 +NULL 6052.0 +NULL -5049.0 +NULL -6849.0 +NULL -863.257 +NULL NULL +NULL 8335.0 +NULL -4916.0 +NULL -7764.0 +NULL 3874.0 +NULL -15358.0 +NULL -8236.0 +NULL 10347.0 +NULL 6914.0 +NULL -180.0 +NULL -14133.0 +NULL 3987.0 +NULL -4627.0 +NULL -15189.0 +NULL -1473.0 +NULL 1652.0 +NULL -6352.0 +NULL -2532.0 +NULL 10750.0 +NULL 13663.0 +NULL -5626.0 +NULL 2366.0 +NULL 11044.0 +NULL -7794.0 +NULL -1291.0 +NULL -4611.0 +NULL 14291.0 +NULL -925.0 +NULL -718.0 +NULL 8389.0 +NULL -11675.0 +NULL -1154.0 +NULL 4048.0 +NULL -450.0 +NULL -16309.0 +NULL 10352.0 +NULL 8138.0 +NULL 4980.0 +NULL 4637.0 +NULL 1136.0 +NULL -457.0 +NULL 14577.0 +NULL -1107.0 +NULL 8558.0 +NULL -4512.0 +NULL -9380.0 +NULL -8114.0 +NULL 10114.0 +NULL 8252.0 +NULL -10424.0 +NULL 10572.0 +NULL -10294.0 +NULL -15179.0 +NULL -13918.0 +NULL 2694.0 +NULL 11324.0 +NULL -6999.0 +NULL 4602.0 +NULL -9643.0 +NULL 9213.0 +NULL -10567.0 +NULL 169.0 +NULL 14774.0 +NULL 1131.0 +NULL 15098.0 +NULL 10195.0 +NULL -6299.0 +NULL -577.0 +NULL -10847.0 +NULL -684.0 +NULL 14073.0 +NULL 5640.0 +NULL 12793.0 +NULL NULL +NULL -15635.0 +NULL 3158.0 +NULL -9285.0 +NULL -13240.0 +NULL -3065.0 +NULL 15837.0 +NULL -16109.0 +NULL -5185.0 +NULL 4953.0 +NULL -647.0 +NULL 14527.0 +NULL 4991.0 +NULL 2140.0 +NULL 2979.0 +NULL 2453.0 +NULL -5298.0 +NULL 5188.0 +NULL -1989.0 +NULL 8149.0 +NULL 3062.0 +NULL 8343.0 +NULL 5721.0 +NULL -4543.0 +NULL 14642.0 +NULL 1719.0 +NULL -10023.0 +NULL 15524.0 +NULL 12499.0 +NULL -14276.0 +NULL -5654.0 +NULL -13240.0 +NULL -4665.0 +NULL 15229.0 +NULL 7601.0 +NULL -15838.0 +NULL 4924.0 +NULL 16218.0 +NULL 5215.0 +NULL -16020.0 +NULL -9987.0 +NULL -13306.0 +NULL -1961.0 +NULL 1388.0 +NULL -7086.0 +NULL -2414.0 +NULL -12778.0 +NULL -15001.0 +NULL -16162.0 +NULL -8181.0 +NULL 7006.0 +NULL -4285.0 +NULL -8084.0 +NULL -11860.0 +NULL 9607.0 +NULL 13358.0 +NULL 2337.0 +NULL 5245.0 +NULL -9313.0 +NULL -7535.0 +NULL 13200.0 +NULL 7531.0 +NULL -5653.0 +NULL 15007.0 +NULL 1926.0 +NULL 1517.0 +NULL -1431.0 +NULL -5411.0 +NULL -13185.0 +NULL 12049.0 +NULL -9487.0 +NULL 1950.0 +NULL -11844.0 +NULL NULL +NULL -6280.0 +NULL 1470.0 +NULL -3640.0 +NULL 2238.0 +NULL 9827.0 +NULL -14550.0 +NULL -13361.0 +NULL -3277.0 +NULL -4882.0 +NULL 10947.0 +NULL -8519.0 +NULL 12681.0 +NULL -14975.0 +NULL 15860.0 +NULL -3514.0 +NULL 12800.0 +NULL 9647.0 +NULL 7642.0 +NULL -8090.0 +NULL -6519.0 +NULL -15432.0 +NULL -13036.0 +NULL 5381.0 +NULL -9301.0 +NULL 13193.0 +NULL -9451.0 +NULL 13317.0 +NULL -12100.0 +NULL -5369.0 +NULL -4817.0 +NULL -6.0 +NULL -1117.0 +NULL 3972.0 +NULL -1767.0 +NULL 2596.0 +NULL -13060.0 +NULL 12866.0 +NULL -15390.0 +NULL 7654.0 +NULL -8534.0 +NULL -13204.0 +NULL 5989.0 +NULL 11657.0 +NULL 10994.0 +NULL -8250.0 +NULL 15647.0 +NULL -5524.0 +NULL -8322.0 +NULL -640.0 +NULL 6348.0 +NULL -13174.0 +NULL 8833.0 +NULL 4943.0 +NULL 12578.0 +NULL -731.0 +NULL 10852.0 +NULL 5539.0 +NULL -9863.0 +NULL 14815.0 +NULL 16092.0 +NULL -8346.0 +NULL -10477.0 +NULL -3722.0 +NULL -4449.0 +NULL 14826.0 +NULL -6204.0 +NULL 9661.0 +NULL 13297.0 +NULL -8869.0 +NULL 10268.0 +NULL -10379.0 +NULL -10805.0 +NULL NULL +NULL 8297.0 +NULL -2595.0 +NULL 13500.0 +NULL -8256.0 +NULL -7967.0 +NULL 4525.0 +NULL -1469.0 +NULL 4767.0 +NULL 10896.0 +NULL -15915.0 +NULL -2575.0 +NULL 7876.0 +NULL -863.257 +NULL -5865.0 +NULL 8333.0 +NULL -5701.0 +NULL -1902.0 +NULL 4274.0 +NULL 3628.0 +NULL 6079.0 +NULL -7238.0 +NULL -575.0 +NULL -995.0 +NULL -16306.0 +NULL 14746.0 +NULL 4246.0 +NULL -1468.0 +NULL 14398.0 +NULL 11500.0 +NULL -5470.0 +NULL -14946.0 +NULL -534.0 +NULL -1364.0 +NULL 1308.0 +NULL 3806.0 +NULL -14134.0 +NULL -5750.0 +NULL -7493.0 +NULL 539.0 +NULL -6222.0 +NULL 11428.0 +NULL 2139.0 +NULL -10197.0 +NULL -15167.0 +NULL 11377.0 +NULL 10183.0 +NULL 10206.0 +NULL 3259.0 +NULL 1964.0 +NULL -5517.0 +NULL 12402.0 +NULL -249.0 +NULL -1268.0 +NULL 9570.0 +NULL -14208.0 +NULL -7072.0 +NULL -10014.0 +NULL -12207.0 +NULL -12181.0 +NULL 4661.0 +NULL -1370.0 +NULL -12742.0 +NULL 3720.0 +NULL -7980.0 +NULL 9557.0 +NULL 8738.0 +NULL -16184.0 +NULL 10221.0 +NULL -10390.0 +NULL -11216.0 +NULL 15586.0 +NULL -3802.0 +NULL NULL +NULL -7315.0 +NULL 8401.0 +NULL -3977.0 +NULL -14213.0 +NULL 11825.0 +NULL 10101.0 +NULL -2314.0 +NULL 16280.0 +NULL -9664.0 +NULL 6457.0 +NULL -14509.0 +NULL 8412.0 +NULL 11532.0 +NULL -11270.0 +NULL -6109.0 +NULL -7677.0 +NULL -836.0 +NULL 8970.0 +NULL -9861.0 +NULL 754.0 +NULL 10.0 +NULL -10295.0 +NULL -5612.0 +NULL 13167.0 +NULL -11155.0 +NULL 10419.0 +NULL -7307.0 +NULL -12203.0 +NULL -1351.0 +NULL -6109.0 +NULL 2320.0 +NULL 10105.0 +NULL -14789.0 +NULL 7327.0 +NULL -3128.0 +NULL 1564.0 +NULL -16274.0 +NULL -12695.0 +NULL 15902.0 +NULL 6362.0 +NULL 10658.0 +NULL 16253.0 +NULL 6867.0 +NULL 15542.0 +NULL -2011.0 +NULL 4411.0 +NULL -6422.0 +NULL -8643.0 +NULL -12026.0 +NULL 12983.0 +NULL 9692.0 +NULL 9296.0 +NULL -9532.0 +NULL 348.0 +NULL -5241.0 +NULL -11929.0 +NULL -16307.0 +NULL -16109.0 +NULL -12602.0 +NULL -11343.0 +NULL 9436.0 +NULL -739.0 +NULL 8848.0 +NULL -4579.0 +NULL -6969.0 +NULL -12517.0 +NULL -6691.0 +NULL 9339.0 +NULL 10074.0 +NULL -12163.0 +NULL -9151.0 +NULL 16242.0 +NULL NULL +NULL 12314.0 +NULL -15373.0 +NULL -12375.0 +NULL -10976.0 +NULL -9057.0 +NULL 867.0 +NULL 3463.0 +NULL -1184.0 +NULL -578.0 +NULL -3435.0 +NULL 15524.0 +NULL 15871.0 +NULL 2571.0 +NULL 10824.0 +NULL -9163.0 +NULL -4665.0 +NULL 10541.0 +NULL 6828.0 +NULL -15016.0 +NULL 5270.0 +NULL 4102.0 +NULL -5765.0 +NULL -12874.0 +NULL 11612.0 +NULL 12520.0 +NULL -124.0 +NULL 4421.0 +NULL -867.0 +NULL 7369.0 +NULL -12861.0 +NULL 4619.0 +NULL 1531.0 +NULL 12526.0 +NULL -11596.0 +NULL -7285.0 +NULL 1145.0 +NULL 185.0 +NULL -5884.0 +NULL -11029.0 +NULL 3436.0 +NULL -6843.0 +NULL -14432.0 +NULL -11227.0 +NULL 8058.0 +NULL -6906.0 +NULL -15303.0 +NULL 10034.0 +NULL -1869.0 +NULL -15460.0 +NULL 5080.0 +NULL 8529.0 +NULL 15786.0 +NULL 8144.0 +NULL 13248.0 +NULL -3287.0 +NULL 318.0 +NULL 4434.0 +NULL -6157.0 +NULL -8068.0 +NULL -14790.0 +NULL -11511.0 +NULL -4600.0 +NULL 1574.0 +NULL -1343.0 +NULL 10581.0 +NULL 2943.0 +NULL -5503.0 +NULL -2360.0 +NULL -4657.0 +NULL -4120.0 +NULL 2734.0 +NULL 9071.0 +NULL NULL +NULL -5227.0 +NULL 15884.0 +NULL 11130.0 +NULL -228.0 +NULL 2589.0 +NULL 15690.0 +NULL -10748.0 +NULL 14841.0 +NULL 3580.0 +NULL -12665.0 +NULL 559.0 +NULL 7677.0 +NULL -1316.0 +NULL -6156.0 +NULL 11470.0 +NULL -651.0 +NULL 15704.0 +NULL 343.0 +NULL 6113.0 +NULL 2376.0 +NULL 12471.0 +NULL -1666.0 +NULL 6747.0 +NULL -4866.0 +NULL 10880.0 +NULL -8984.0 +NULL -863.257 +NULL 2162.0 +NULL -6544.0 +NULL -5920.0 +NULL 9859.0 +NULL -6673.0 +NULL -14712.0 +NULL -13380.0 +NULL 1307.0 +NULL -8682.0 +NULL -14494.0 +NULL 10015.0 +NULL 7751.0 +NULL 8390.0 +NULL 3844.0 +NULL 12800.0 +NULL -1136.0 +NULL -5568.0 +NULL -659.0 +NULL 2533.0 +NULL -15423.0 +NULL 1591.0 +NULL -7768.0 +NULL 7265.0 +NULL -3873.0 +NULL -11137.0 +NULL -14933.0 +NULL -4546.0 +NULL 4554.0 +NULL -6403.0 +NULL -9078.0 +NULL 3221.0 +NULL -14302.0 +NULL 2570.0 +NULL -10879.0 +NULL -10084.0 +NULL -12127.0 +NULL -13742.0 +NULL -10483.0 +NULL 8115.0 +NULL -15775.0 +NULL -3704.0 +NULL -1050.0 +NULL 6900.0 +NULL 105.0 +NULL -14270.0 +NULL NULL +NULL -704.0 +NULL -9841.0 +NULL -15101.0 +NULL -7398.0 +NULL 1294.0 +NULL 9365.0 +NULL 7988.0 +NULL 15918.0 +NULL 3594.0 +NULL -14457.0 +NULL 5609.0 +NULL 14557.0 +NULL -1841.0 +NULL 4842.0 +NULL 2068.0 +NULL 7474.0 +NULL 10887.0 +NULL -5016.0 +NULL -5088.0 +NULL 10520.0 +NULL -10664.0 +NULL -6789.0 +NULL 6454.0 +NULL 6976.0 +NULL 2930.0 +NULL -369.0 +NULL 8218.0 +NULL 4213.0 +NULL -3553.0 +NULL -9542.0 +NULL -2230.0 +NULL 12608.0 +NULL -12409.0 +NULL -4029.0 +NULL -5418.0 +NULL -8098.0 +NULL 5417.0 +NULL -2431.0 +NULL 9323.0 +NULL 2401.0 +NULL -5093.0 +NULL 492.0 +NULL -115.0 +NULL 2613.0 +NULL -4357.0 +NULL 1609.0 +NULL 14724.0 +NULL -11662.0 +NULL 6005.0 +NULL 15555.0 +NULL -8326.0 +NULL -556.0 +NULL -10789.0 +NULL 8812.0 +NULL -7980.0 +NULL -10736.0 +NULL -13672.0 +NULL 11259.0 +NULL 5144.0 +NULL 9941.0 +NULL 13124.0 +NULL 12070.0 +NULL 14574.0 +NULL 12507.0 +NULL 13948.0 +NULL -1640.0 +NULL -18.0 +NULL -16030.0 +NULL -11092.0 +NULL 15099.0 +NULL 1949.0 +NULL 9480.0 +NULL NULL +NULL 16141.0 +NULL 15199.0 +NULL 12929.0 +NULL -7002.0 +NULL 10967.0 +NULL -13366.0 +NULL 7242.0 +NULL 12553.0 +NULL 15424.0 +NULL 15284.0 +NULL 8269.0 +NULL 15867.0 +NULL -13154.0 +NULL 14015.0 +NULL -3623.0 +NULL -8924.0 +NULL -6097.0 +NULL -7892.0 +NULL -13377.0 +NULL 11667.0 +NULL -11353.0 +NULL 720.0 +NULL 2100.0 +NULL 5153.0 +NULL -238.0 +NULL 1851.0 +NULL -12160.0 +NULL -15817.0 +NULL -7016.0 +NULL 4224.0 +NULL 3567.0 +NULL -11125.0 +NULL 11363.0 +NULL 8532.0 +NULL -8520.0 +NULL -2265.0 +NULL -6726.0 +NULL -10966.0 +NULL -13669.0 +NULL 6383.0 +NULL -4420.0 +NULL -7889.0 +NULL 2020.0 +NULL 5253.0 +NULL 4608.0 +NULL -7433.0 +NULL -13597.0 +NULL -173.0 +NULL 8704.0 +NULL -12214.0 +NULL -13427.0 +NULL 10141.0 +NULL 14355.0 +NULL 14909.0 +NULL 6010.0 +NULL -1865.0 +NULL -8703.0 +NULL -9287.0 +NULL 5617.0 +NULL 13810.0 +NULL 4016.0 +NULL -1009.0 +NULL -16300.0 +NULL 9040.0 +NULL -12874.0 +NULL 14541.0 +NULL -8350.0 +NULL 4888.0 +NULL 8575.0 +NULL 2306.0 +NULL 15845.0 +NULL -7453.0 +NULL NULL +NULL 4520.0 +NULL -14268.0 +NULL -12558.0 +NULL 7803.0 +NULL -14257.0 +NULL -7519.0 +NULL 6719.0 +NULL -11179.0 +NULL 9759.0 +NULL 13555.0 +NULL 12205.0 +NULL 9182.0 +NULL -11209.0 +NULL -14076.0 +NULL -948.0 +NULL -9601.0 +NULL 9289.0 +NULL -1487.0 +NULL 11166.0 +NULL 9725.0 +NULL -11503.0 +NULL 2432.0 +NULL 3978.0 +NULL 15284.0 +NULL 2923.0 +NULL -15010.0 +NULL 7178.0 +NULL 183.0 +NULL -3213.0 +NULL -14746.0 +NULL -9471.0 +NULL 6290.0 +NULL 3496.0 +NULL -15018.0 +NULL -11542.0 +NULL 3251.0 +NULL -7717.0 +NULL 11054.0 +NULL -5550.0 +NULL -4574.0 +NULL 9763215.5639 +NULL -3668.0 +NULL 3466.0 +NULL -15283.0 +NULL -7700.0 +NULL 979.0 +NULL 13332.0 +NULL -10688.0 +NULL -9034.0 +NULL 8979.0 +NULL -15193.0 +NULL -10675.0 +NULL 16331.0 +NULL 2261.0 +NULL -5892.0 +NULL -11546.0 +NULL -16269.0 +NULL -741.0 +NULL -13672.0 +NULL 6320.0 +NULL 2081.0 +NULL -6807.0 +NULL -12453.0 +NULL 8645.0 +NULL -3257.0 +NULL 10569.0 +NULL 7248.0 +NULL -5482.0 +NULL 16160.0 +NULL 1997.0 +NULL -246.0 +NULL -8360.0 +NULL NULL +NULL -9305.0 +NULL 14936.0 +NULL -2481.0 +NULL -13843.0 +NULL 4520.0 +NULL 12178.0 +NULL 14798.0 +NULL 8521.0 +NULL -11695.0 +NULL 15823.0 +NULL 8896.0 +NULL 11951.0 +NULL 13704.0 +NULL -5994.0 +NULL 15540.0 +NULL 10700.0 +NULL 9993.0 +NULL 2446.0 +NULL 4708.0 +NULL 8869.0 +NULL -8129.0 +NULL 13517.0 +NULL 16160.0 +NULL -6529.0 +NULL -14868.0 +NULL 12744.0 +NULL 9728.0 +NULL 2535.0 +NULL -6694.0 +NULL 4660.0 +NULL -7091.0 +NULL 5802.0 +NULL -12040.0 +NULL -13400.0 +NULL 6787.0 +NULL 9687.0 +NULL 13271.0 +NULL -12937.0 +NULL 11431.0 +NULL 13851.0 +NULL -31.0 +NULL 12176.0 +NULL -12797.0 +NULL 2326.0 +NULL -2527.0 +NULL 11550.0 +NULL -2991.0 +NULL 8951.0 +NULL 3702.0 +NULL -10829.0 +NULL 4163.0 +NULL -1878.0 +NULL -14721.0 +NULL -2944.0 +NULL -15244.0 +NULL -6622.0 +NULL -4121.0 +NULL 9835.0 +NULL -6786.0 +NULL 5012.0 +NULL -11995.0 +NULL 2175.0 +NULL 11619.0 +NULL 3890.0 +NULL -4213.0 +NULL -3012.0 +NULL -4016.0 +NULL -11534.0 +NULL -6147.0 +NULL -7680.0 +NULL -7314.0 +NULL 11254.0 +NULL 13889.0 +NULL 3321.0 +NULL -15632.0 +NULL 7812.0 +NULL -9454.0 +NULL 10461.0 +NULL 3716.0 +NULL 418.0 +NULL 10583.0 +NULL 6723.0 +NULL 13776.0 +NULL -3416.0 +NULL -11447.0 +NULL -2165.0 +NULL 12738.0 +NULL -4319.0 +NULL -13474.0 +NULL -2626.0 +NULL 10895.0 +NULL 4376.0 +NULL -3914.0 +NULL -4250.0 +NULL -2433.0 +NULL -10682.0 +NULL 4014.0 +NULL -12313.0 +NULL 1970.0 +NULL -5000.0 +NULL 15260.0 +NULL 5306.0 +NULL -5466.0 +NULL -4050.0 +NULL 12464.0 +NULL 10191.0 +NULL -7098.0 +NULL 5146.0 +NULL -9439.0 +NULL 6722.0 +NULL -313.0 +NULL -11480.0 +NULL 8381.0 +NULL 2590.0 +NULL 367.0 +NULL 4869.0 +NULL 8061.0 +NULL -2179.0 +NULL -15267.0 +NULL 10536.0 +NULL 950.0 +NULL -11817.0 +NULL -2451.0 +NULL 8848.0 +NULL 5045.0 +NULL 11799.0 +NULL 13098.0 +NULL 13206.0 +NULL -5732.0 +NULL -13746.0 +NULL -14978.0 +NULL 12004.0 +NULL 15489.0 +NULL 1385.0 +NULL 13331.0 +NULL -4164.0 +NULL 3004.0 +NULL -612.0 +NULL -6256.0 +NULL -2120.0 +NULL -1387.0 +NULL -11198.0 +NULL 9517.0 +NULL 3756.0 +NULL 6182.0 +NULL 3442.0 +NULL -6328.0 +NULL 7828.0 +NULL -10859.0 +NULL 423.0 +NULL -14086.0 +NULL -9408.0 +NULL -16379.0 +NULL -7666.0 +NULL -14173.0 +NULL 517.0 +NULL -4002.0 +NULL NULL +NULL -7333.0 +NULL -12794.0 +NULL 7585.0 +NULL -1211.0 +NULL 15217.0 +NULL -7768.0 +NULL 10923.0 +NULL 14126.0 +NULL -11779.0 +NULL 3822.0 +NULL 11413.0 +NULL 2940.0 +NULL 10080.0 +NULL 7864.0 +NULL -8608.0 +NULL 184.0 +NULL -10134.0 +NULL 15017.0 +NULL -11146.0 +NULL 7058.0 +NULL 10767.0 +NULL -7555.0 +NULL -12252.0 +NULL -11273.0 +NULL -11776.0 +NULL -4606.0 +NULL 9677.0 +NULL 9614.0 +NULL -10715.0 +NULL 1850.0 +NULL -2286.0 +NULL 13750.0 +NULL 10681.0 +NULL 8499.0 +NULL -548.0 +NULL 4551.0 +NULL -7707.0 +NULL -7773.0 +NULL 12197.0 +NULL -12444.0 +NULL -6060.0 +NULL -12883.0 +NULL -9158.0 +NULL -9367.0 +NULL -8172.0 +NULL -15144.0 +NULL -2997.0 +NULL -16296.0 +NULL 1016.0 +NULL 6897.0 +NULL 2531.0 +NULL 1575.0 +NULL 2546.0 +NULL 4819.0 +NULL -14820.0 +NULL -1234.0 +NULL 4122.0 +NULL 7887.0 +NULL 15311.0 +NULL -12996.0 +NULL 7209.0 +NULL -14955.0 +NULL -15205.0 +NULL -3888.0 +NULL 8903.0 +NULL 2570.0 +NULL -4971.0 +NULL 3139.0 +NULL 5312.0 +NULL 15061.0 +NULL 2052.0 +NULL -10276.0 +NULL -3054.0 +NULL NULL +NULL 15507.0 +NULL 14909.0 +NULL 4837.0 +NULL 13691.0 +NULL 328.0 +NULL 7956.0 +NULL -12264.0 +NULL 16327.0 +NULL 8120.0 +NULL -8530.0 +NULL -15070.0 +NULL 6597.0 +NULL -3178.0 +NULL 1329.0 +NULL 10147.0 +NULL 12819.0 +NULL 15879.0 +NULL -15057.0 +NULL 10659.0 +NULL -12847.0 +NULL 15580.0 +NULL -852.0 +NULL 8897.0 +NULL -15253.0 +NULL 10308.0 +NULL 12870.0 +NULL -294.0 +NULL 13268.0 +NULL -1114.0 +NULL -1676.0 +NULL -10286.0 +NULL -16026.0 +NULL 4049.0 +NULL 5005.0 +NULL 13298.0 +NULL 1289.0 +NULL 1012.0 +NULL -4585.0 +NULL -10653.0 +NULL 9774.0 +NULL 6612.0 +NULL 10208.0 +NULL 13020.0 +NULL -12207.0 +NULL 75.0 +NULL -12165.0 +NULL -13436.0 +NULL 4442.0 +NULL -7982.0 +NULL 12732.0 +NULL -11734.0 +NULL -5836.0 +NULL -6989.0 +NULL -5530.0 +NULL 2536.0 +NULL 11683.0 +NULL -1388.0 +NULL 3385.0 +NULL 4969.0 +NULL -15760.0 +NULL 10862.0 +NULL -4593.0 +NULL 8068.0 +NULL -6142.0 +NULL 5607.0 +NULL 9882.0 +NULL -9499.0 +NULL 7322.0 +NULL 2234.0 +NULL -9580.0 +NULL -8103.0 +NULL 15797.0 +NULL -14355.0 +NULL NULL +NULL 11813.0 +NULL 5543.0 +NULL -10.0 +NULL 15296.0 +NULL 2366.0 +NULL -8148.0 +NULL -6817.0 +NULL 15734.0 +NULL -10737.0 +NULL 10398.0 +NULL 2326.0 +NULL 10671.0 +NULL -5638.15 +NULL 5658.0 +NULL -4586.0 +NULL -13345.0 +NULL -6192.0 +NULL -13555.0 +NULL -10016.0 +NULL -1434.0 +NULL -9761.0 +NULL 12201.0 +NULL 3242.0 +NULL 1632.0 +NULL -15017.0 +NULL 2336.0 +NULL -12426.0 +NULL -3714.0 +NULL 2624.0 +NULL 14177.0 +NULL 14247.0 +NULL 12452.0 +NULL -11493.0 +NULL 4328.0 +NULL 9814.0 +NULL -8567.0 +NULL -13956.0 +NULL -3833.0 +NULL 13405.0 +NULL -4190.0 +NULL -13302.0 +NULL -12826.0 +NULL -11403.0 +NULL -15423.0 +NULL 10144.0 +NULL 5142.0 +NULL 8233.0 +NULL -5589.0 +NULL 11040.0 +NULL -15864.0 +NULL -9147.0 +NULL -6216.0 +NULL 7120.0 +NULL -9397.0 +NULL -11596.0 +NULL 8868.0 +NULL 10683.0 +NULL -828.0 +NULL -6917.0 +NULL -7556.0 +NULL 4272.0 +NULL 13839.0 +NULL 12013.0 +NULL 13270.0 +NULL -12990.0 +NULL 2984.0 +NULL -10894.0 +NULL -9375.0 +NULL -6665.0 +NULL -14534.0 +NULL 6637.0 +NULL -15666.0 +NULL NULL +NULL 8609.0 +NULL -16004.0 +NULL -7572.0 +NULL 6262.0 +NULL -2688.0 +NULL -15729.0 +NULL -10241.0 +NULL -6106.0 +NULL 2464.0 +NULL 15332.0 +NULL 10039.0 +NULL 13619.0 +NULL -5818.0 +NULL 10421.0 +NULL 384.0 +NULL 2913.0 +NULL 300.0 +NULL 8488.0 +NULL -16140.0 +NULL -11774.0 +NULL 5951.0 +NULL -10288.0 +NULL 6780.0 +NULL 11010.0 +NULL -14073.0 +NULL 10859.0 +NULL 2506.0 +NULL -11623.0 +NULL 9962.0 +NULL -6978.0 +NULL 6392.0 +NULL -11115.0 +NULL 13963.0 +NULL 12440.0 +NULL 10252.0 +NULL -12964.0 +NULL -1007.0 +NULL 14276.0 +NULL -12443.0 +NULL 8163.0 +NULL -12970.0 +NULL 7354.0 +NULL 8717.0 +NULL 8752.0 +NULL -16092.0 +NULL -2778.0 +NULL -15920.0 +NULL -9994.0 +NULL -9174.0 +NULL -12657.0 +NULL 3316.0 +NULL -13443.0 +NULL -3322.0 +NULL -12052.0 +NULL -6751.0 +NULL 9390.0 +NULL 4432.0 +NULL -14696.0 +NULL 14863.0 +NULL -8130.0 +NULL -177.0 +NULL 2776.0 +NULL 11525.0 +NULL -11252.0 +NULL -8659.0 +NULL 8919.0 +NULL -1198.0 +NULL -5513.0 +NULL -8872.0 +NULL -2476.0 +NULL 2156.0 +NULL -13723.0 +NULL NULL +NULL 3318.0 +NULL -14317.0 +NULL 13573.0 +NULL 10557.0 +NULL 2442.0 +NULL 8139.0 +NULL 14735.0 +NULL -11456.0 +NULL 7872.0 +NULL -7343.0 +NULL -2082.0 +NULL 4704.0 +NULL -3627.0 +NULL -10301.0 +NULL -4843.0 +NULL 1154.0 +NULL -7375.0 +NULL -13872.0 +NULL -13339.0 +NULL -5296.0 +NULL 12581.0 +NULL 10653.0 +NULL 4257.0 +NULL -11760.0 +NULL 16011.0 +NULL 8146.0 +NULL 10782.0 +NULL 7598.0 +NULL -4234.0 +NULL 2803.0 +NULL -15101.0 +NULL -14280.0 +NULL 15895.0 +NULL 6346.0 +NULL -8302.0 +NULL -41.0 +NULL -9554.0 +NULL -8761.0 +NULL 7358.0 +NULL -1419.0 +NULL -4633.0 +NULL 5625.0 +NULL 14923.0 +NULL 9766.0 +NULL -3005.0 +NULL 14095.0 +NULL 4384.0 +NULL 5204.0 +NULL -8564.0 +NULL -7577.0 +NULL -4713.0 +NULL -2575.0 +NULL -8512.0 +NULL 14459.0 +NULL 14512.0 +NULL 8862.0 +NULL -5070.0 +NULL -12847.0 +NULL 4141.0 +NULL 8005.0 +NULL -4800.0 +NULL 13107.0 +NULL -11377.0 +NULL 6913.0 +NULL 9304.0 +NULL -3589.0 +NULL -2942.0 +NULL -10476.0 +NULL -2415.0 +NULL 14124.0 +NULL 13117.0 +NULL -7959.0 +NULL NULL +NULL 6644.0 +NULL 109.0 +NULL -8162.0 +NULL 10039.0 +NULL -11073.0 +NULL 10538.0 +NULL -9039.0 +NULL 1594.0 +NULL 5057.0 +NULL 4269.0 +NULL -11061.0 +NULL -4457.0 +NULL 2322.0 +NULL -2129.0 +NULL 1225.0 +NULL -12515.0 +NULL -15590.0 +NULL 2396.0 +NULL 13080.0 +NULL 14152.0 +NULL 13246.0 +NULL 3396.0 +NULL 12427.0 +NULL 4111.0 +NULL 7557.0 +NULL -5942.0 +NULL 2563.58 +NULL -8871.0 +NULL -4638.0 +NULL 11526.0 +NULL -11343.0 +NULL -10773.0 +NULL 1535.0 +NULL -7161.0 +NULL -10525.0 +NULL 7391.0 +NULL 7057.0 +NULL -947.0 +NULL -16012.0 +NULL -6239.0 +NULL 11865.0 +NULL 3426.0 +NULL -7604.0 +NULL 583.0 +NULL -1298.0 +NULL 6864.0 +NULL 9362.0 +NULL 6581.0 +NULL -877.0 +NULL -2583.0 +NULL -7352.0 +NULL -7170.0 +NULL 3255.0 +NULL -12109.0 +NULL -741.0 +NULL 7148.0 +NULL -13617.0 +NULL 1891.0 +NULL 13878.0 +NULL 270.0 +NULL -3657.0 +NULL 2137.0 +NULL -11432.0 +NULL -7788.0 +NULL 3151.0 +NULL 9916.0 +NULL -16032.0 +NULL 7231.0 +NULL -27.0 +NULL -52.0 +NULL -5909.0 +NULL 1366.0 +NULL NULL +NULL 15538.0 +NULL 2315.0 +NULL 10938.0 +NULL -4168.0 +NULL 8541.0 +NULL -9137.0 +NULL 12826.0 +NULL 4516.0 +NULL 566.0 +NULL 1912.0 +NULL -7691.0 +NULL 8542.0 +NULL 1603.0 +NULL 4149.0 +NULL -13653.0 +NULL -6410.0 +NULL 5860.0 +NULL 10437.0 +NULL -12888.0 +NULL -2994.0 +NULL -11690.0 +NULL -11744.0 +NULL -5407.0 +NULL 4502.0 +NULL -8251.0 +NULL 2372.0 +NULL 7882.0 +NULL 4093.0 +NULL -12225.0 +NULL 13786.0 +NULL 14947.0 +NULL 6798.0 +NULL -16218.0 +NULL 5277.0 +NULL -15261.0 +NULL -13657.0 +NULL -7101.0 +NULL -9328.0 +NULL -12066.0 +NULL -1546.0 +NULL 301.0 +NULL 14468.0 +NULL -566.0 +NULL 1338.0 +NULL 3100.0 +NULL -11906.0 +NULL -10426.0 +NULL 1113.0 +NULL 15236.0 +NULL 2786.0 +NULL 6441.0 +NULL -4683.0 +NULL 8264.0 +NULL -3689.0 +NULL 11021.0 +NULL -2985.0 +NULL 4178.0 +NULL 5902.0 +NULL -5564.0 +NULL 5674.0 +NULL -8630.0 +NULL -7554.0 +NULL 2438.0 +NULL -5772.0 +NULL 14054.0 +NULL -10913.0 +NULL -10986.0 +NULL 423.0 +NULL 14688.0 +NULL 9620.0 +NULL -2120.0 +NULL 6769.0 +NULL 9142.0 +NULL 14509.0 +NULL NULL +NULL 9767.0 +NULL 1322.0 +NULL 2686.0 +NULL -14843.0 +NULL -12018.0 +NULL -8351.0 +NULL -1937.0 +NULL 353.0 +NULL -10791.0 +NULL -13678.0 +NULL 14412.0 +NULL -16001.0 +NULL 15088.0 +NULL NULL +NULL 1017.0 +NULL -14892.0 +NULL 13661.0 +NULL 10268.0 +NULL -13815.0 +NULL 5492.0 +NULL -15027.0 +NULL -14585.0 +NULL -14014.0 +NULL -14438.0 +NULL 4332.0 +NULL 1253.0 +NULL -12525.0 +NULL 142.0 +NULL 16084.0 +NULL 15678.0 +NULL 7111.0 +NULL 8982.0 +NULL 11387.0 +NULL -14035.0 +NULL -8010.0 +NULL 1681.0 +NULL -5469.0 +NULL -8758.0 +NULL 10728.0 +NULL -1214.0 +NULL -15454.0 +NULL -9418.0 +NULL 11837.0 +NULL -6739.0 +NULL 352.0 +NULL -5470.0 +NULL 13309.0 +NULL -8814.0 +NULL 498.0 +NULL 114.0 +NULL -2932.0 +NULL -11326.0 +NULL -8557.0 +NULL -4221.0 +NULL 9789.0 +NULL 9371.0 +NULL -1428.0 +NULL -12721.0 +NULL 10796.0 +NULL -9974.0 +NULL 236.0 +NULL 3617.0 +NULL -13597.0 +NULL -4483.0 +NULL -2395.0 +NULL 4774.0 +NULL 8804.0 +NULL -7033.0 +NULL 4220.0 +NULL 3100.0 +NULL 10435.0 +NULL 11908.0 +NULL 6894.0 +NULL NULL +NULL 15278.0 +NULL -15871.0 +NULL -682.0 +NULL 11031.0 +NULL -212.0 +NULL -3746.0 +NULL 12949.0 +NULL 7914.0 +NULL -2785.0 +NULL 6831.0 +NULL -11597.0 +NULL 6408.0 +NULL 5064.0 +NULL 15167.0 +NULL 14146.0 +NULL 11823.0 +NULL -5194.0 +NULL -10311.0 +NULL -972.0 +NULL 11399.0 +NULL 1567.0 +NULL 5545.0 +NULL 1042.0 +NULL -447.0 +NULL 11147.0 +NULL 4143.0 +NULL -5012.0 +NULL 571.0 +NULL -9574.0 +NULL 10152.0 +NULL -13405.0 +NULL -7672.0 +NULL 8757.0 +NULL -6900.0 +NULL -15768.0 +NULL 15727.0 +NULL -8790.0 +NULL -1608.0 +NULL 10267.0 +NULL -10594.0 +NULL -13334.0 +NULL -5638.15 +NULL -7715.0 +NULL 14375.0 +NULL 14061.0 +NULL -5987.0 +NULL -16168.0 +NULL 7187.0 +NULL 7031.0 +NULL 14675.0 +NULL -4226.0 +NULL 5611.0 +NULL 668.0 +NULL 9239.0 +NULL 15492.0 +NULL 11329.0 +NULL 2960.0 +NULL -3544.0 +NULL -10146.0 +NULL -1227.0 +NULL -13470.0 +NULL -8554.0 +NULL 9459.0 +NULL 5245.0 +NULL -1885.0 +NULL -11118.0 +NULL -3799.0 +NULL -10606.0 +NULL -6407.0 +NULL 9314.0 +NULL 12605.0 +NULL 13561.0 +NULL 15076.0 +NULL NULL +NULL -8390.0 +NULL -15830.0 +NULL -5132.0 +NULL 3467.0 +NULL -11158.0 +NULL -10198.0 +NULL 368.0 +NULL -7786.0 +NULL 6206.0 +NULL 4045.0 +NULL 7639.0 +NULL 11529.0 +NULL 7853.0 +NULL 474.0 +NULL -2856.0 +NULL -16072.0 +NULL 3684.0 +NULL 2459.0 +NULL -12348.0 +NULL -3684.0 +NULL -3320.0 +NULL -3042.0 +NULL -5495.0 +NULL 4624.0 +NULL 9519.0 +NULL 10299.0 +NULL 8196.0 +NULL 6645.0 +NULL 3709.0 +NULL -13307.0 +NULL -5679.0 +NULL 10854.0 +NULL -3597.0 +NULL -4014.0 +NULL -13177.0 +NULL -1379.0 +NULL -7660.0 +NULL -2640.0 +NULL -6472.0 +NULL 9897.0 +NULL 13454.0 +NULL 11245.0 +NULL 6123.0 +NULL 14172.0 +NULL -11809.0 +NULL 12262.0 +NULL 5263.0 +NULL 14099.0 +NULL -165.0 +NULL 804.0 +NULL -8764.0 +NULL -9162.0 +NULL 16124.0 +NULL 19.0 +NULL -150.0 +NULL -6136.0 +NULL 11056.0 +NULL 3285.0 +NULL -11098.0 +NULL -13118.0 +NULL 8428.0 +NULL 9983.0 +NULL -3343.0 +NULL 4577.0 +NULL -3800.0 +NULL 9917.0 +NULL -4356.0 +NULL 1343.0 +NULL 9784.0 +NULL -12524.0 +NULL -4561.0 +NULL 3012.0 +NULL -10742.0 +NULL -7179.0 +NULL NULL +NULL -8369.0 +NULL -14942.0 +NULL 15804.0 +NULL 16191.0 +NULL 5367.0 +NULL 11927.0 +NULL 12378.0 +NULL 10937.0 +NULL -8485.0 +NULL -1600.0 +NULL -9886.0 +NULL -5536.0 +NULL 15218.0 +NULL 1684.0 +NULL 11605.0 +NULL -12310.0 +NULL 2342.0 +NULL 1414.0 +NULL 8243.0 +NULL 15604.0 +NULL -5891.0 +NULL 6848.0 +NULL -14709.0 +NULL 11926.0 +NULL 858.0 +NULL 1438.0 +NULL 570.0 +NULL -2847.0 +NULL 13049.0 +NULL 102.0 +NULL -16310.0 +NULL 2327.0 +NULL -6663.0 +NULL 8059.0 +NULL 1822.0 +NULL 4745.0 +NULL 6109.0 +NULL 11982.0 +NULL -5381.0 +NULL 9340.0 +NULL 7182.0 +NULL 9540.0 +NULL -13574.0 +NULL 1803.0 +NULL 3956.0 +NULL -9761.0 +NULL -326.0 +NULL 8246.0 +NULL 4390.0 +NULL 9766.0 +NULL -4144.0 +NULL -12574.0 +NULL -7961.0 +NULL 967.0 +NULL -4493.0 +NULL 6775.0 +NULL 3354.0 +NULL 2248.0 +NULL -12991.0 +NULL -1587.0 +NULL 5601.0 +NULL -5848.0 +NULL -13901.0 +NULL -9883.0 +NULL -11273.0 +NULL 13510.0 +NULL -4837.0 +NULL -16124.0 +NULL -1976.0 +NULL -8620.0 +NULL 9931.0 +NULL -3969.0 +NULL -16086.0 +NULL -4739.0 +NULL NULL +NULL -9934.0 +NULL -6853.0 +NULL -8278.0 +NULL -9710.0 +NULL -4035.0 +NULL -6394.0 +NULL 6351.0 +NULL -13114.0 +NULL -3036.0 +NULL 1600.0 +NULL -8459.0 +NULL 14705.0 +NULL 5384.0 +NULL -2737.0 +NULL -15727.0 +NULL 9266.0 +NULL -1079.0 +NULL 5404.0 +NULL 3418.0 +NULL 12481.0 +NULL -5796.0 +NULL 2489.0 +NULL -5458.0 +NULL -10736.0 +NULL 13991.0 +NULL -11227.0 +NULL -10096.0 +NULL -1207.0 +NULL 11158.0 +NULL 15847.0 +NULL 186.0 +NULL 10259.0 +NULL 9906.0 +NULL -410.0 +NULL 7228.0 +NULL -9449.0 +NULL -6099.0 +NULL -4903.0 +NULL -12098.0 +NULL 6474.0 +NULL -4893.0 +NULL -1786.0 +NULL 2402.0 +NULL 12619.0 +NULL 279.0 +NULL 5289.0 +NULL 14187.0 +NULL -10029.0 +NULL 8373.0 +NULL -7310.0 +NULL 3635.0 +NULL 383.0 +NULL -11345.0 +NULL -7075.0 +NULL 1252.0 +NULL -863.257 +NULL -9388.0 +NULL -9721.0 +NULL -10868.0 +NULL -1127.0 +NULL -6052.0 +NULL -4854.0 +NULL 14519.0 +NULL -2693.0 +NULL 13600.0 +NULL -12547.0 +NULL 7468.0 +NULL 6971.0 +NULL -809.0 +NULL 163.0 +NULL 8854.0 +NULL -70.0 +NULL -12431.0 +NULL NULL +NULL 13014.0 +NULL -10583.0 +NULL -14817.0 +NULL -15895.0 +NULL 15044.0 +NULL 7408.0 +NULL 2852.0 +NULL -14542.0 +NULL -2601.0 +NULL -12757.0 +NULL -12074.0 +NULL -11781.0 +NULL -8303.0 +NULL 10775.0 +NULL 168.0 +NULL -15279.0 +NULL 8634.0 +NULL 12814.0 +NULL -12288.0 +NULL 11248.0 +NULL -8915.0 +NULL 11156.0 +NULL -13812.0 +NULL -8072.0 +NULL -11947.0 +NULL -16221.0 +NULL -13152.0 +NULL 6292.0 +NULL -9370.0 +NULL 16216.0 +NULL -13008.0 +NULL -15168.0 +NULL 11585.0 +NULL -14871.0 +NULL -668.0 +NULL 1321.0 +NULL 14367.0 +NULL -97.0 +NULL 13366.0 +NULL -607.0 +NULL -5400.0 +NULL -4033.0 +NULL -257.0 +NULL -1612.0 +NULL -10674.0 +NULL -1911.0 +NULL -3781.0 +NULL 9829.0 +NULL 9528.0 +NULL 1554.0 +NULL 15631.0 +NULL -11484.0 +NULL 13840.0 +NULL -11122.0 +NULL -15202.0 +NULL -2371.0 +NULL -5161.0 +NULL -12040.0 +NULL 231.0 +NULL 8912.0 +NULL 11499.0 +NULL 6047.0 +NULL -6209.0 +NULL 5844.0 +NULL 14108.0 +NULL 354.0 +NULL -10084.0 +NULL -8731.0 +NULL 2066.0 +NULL 5192.0 +NULL 11859.0 +NULL -12962.0 +NULL 2130.0 +NULL NULL +NULL -329.0 +NULL 5478.0 +NULL 9052.0 +NULL -896.0 +NULL -5897.0 +NULL -12760.0 +NULL 2834.0 +NULL -3601.0 +NULL -13166.0 +NULL -2651.0 +NULL -4191.0 +NULL -3238.0 +NULL 16165.0 +NULL -7298.0 +NULL 3890.0 +NULL -4618.0 +NULL 7723.0 +NULL -6790.0 +NULL 14548.0 +NULL 11720.0 +NULL -14426.0 +NULL -14847.0 +NULL -8369.0 +NULL -9677.0 +NULL 12205.0 +NULL 1839.0 +NULL 1258.0 +NULL -10011.0 +NULL -13877.0 +NULL -7157.0 +NULL -1541.0 +NULL -6467.0 +NULL 5698.0 +NULL 10361.0 +NULL -5958.0 +NULL 15466.0 +NULL -8881.0 +NULL -2281.0 +NULL 9531.0 +NULL -1364.0 +NULL -111.0 +NULL -6450.0 +NULL -6913.0 +NULL -7039.0 +NULL -523.0 +NULL 6134.0 +NULL -12817.0 +NULL -8261.0 +NULL -6359.0 +NULL 7413.0 +NULL 6617.0 +NULL -10503.0 +NULL -11092.0 +NULL 1043.0 +NULL -5904.0 +NULL -9818.0 +NULL 7724.0 +NULL -13856.0 +NULL -4562.0 +NULL -1876.0 +NULL -11852.0 +NULL -1085.0 +NULL 3659.0 +NULL -11009.0 +NULL 4614.0 +NULL 15651.0 +NULL 1360.0 +NULL 15752.0 +NULL 7293.0 +NULL 8127.0 +NULL 4942.0 +NULL -10338.0 +NULL -5638.15 +NULL -807.0 +NULL -6947.0 +NULL -15055.0 +NULL -15237.0 +NULL -5706.0 +NULL -3336.0 +NULL -9930.0 +NULL 5840.0 +NULL -3465.0 +NULL -4000.0 +NULL -9255.0 +NULL -877.0 +NULL -3406.0 +NULL 14665.0 +NULL -2489.0 +NULL -2596.0 +NULL -6101.0 +NULL -221.0 +NULL -6069.0 +NULL -14480.0 +NULL -12941.0 +NULL 1008.0 +NULL NULL +NULL 14849.0 +NULL -16225.0 +NULL 1727.0 +NULL -3547.0 +NULL 9604.0 +NULL 8801.0 +NULL -2219.0 +NULL 8283.0 +NULL -6193.0 +NULL -11273.0 +NULL -12466.0 +NULL 14638.0 +NULL 767.0 +NULL 221.0 +NULL 2808.0 +NULL 14197.0 +NULL 5796.0 +NULL 13259.0 +NULL 6036.0 +NULL -4122.0 +NULL 10055.0 +NULL -9013.0 +NULL 635.0 +NULL 9578.0 +NULL 1908.0 +NULL 3818.0 +NULL 16007.0 +NULL 1804.0 +NULL 13449.0 +NULL 7029.0 +NULL 13156.0 +NULL -8711.0 +NULL -5903.0 +NULL -15348.0 +NULL 15239.0 +NULL 2456.0 +NULL 7263.0 +NULL 5971.0 +NULL 9705.0 +NULL -8469.0 +NULL 7628.0 +NULL 7125.0 +NULL -8108.0 +NULL 14502.0 +NULL -10094.0 +NULL -11924.0 +NULL -5936.0 +NULL 7462.0 +NULL 2039.0 +NULL 6008.0 +NULL -14238.0 +NULL 12364.0 +NULL 8468.0 +NULL 4122.0 +NULL -1193.0 +NULL -228.0 +NULL 9031.0 +NULL -2133.0 +NULL -12244.0 +NULL -8692.0 +NULL -2240.0 +NULL -3821.0 +NULL 6578.0 +NULL -11270.0 +NULL -10871.0 +NULL -15289.0 +NULL 5168.0 +NULL 13554.0 +NULL -11044.0 +NULL 6672.0 +NULL 8748.0 +NULL -16102.0 +NULL 6314.0 +NULL -10153.0 +NULL NULL +NULL -2022.0 +NULL 4943.0 +NULL 525.0 +NULL 477.0 +NULL -7393.0 +NULL -11563.0 +NULL 2962.0 +NULL 15508.0 +NULL -6041.0 +NULL 3268.0 +NULL -14948.0 +NULL 12505.0 +NULL -6274.0 +NULL 640.0 +NULL -10150.0 +NULL -3072.0 +NULL 6886.0 +NULL -8315.0 +NULL 10867.0 +NULL 10454.0 +NULL -10291.0 +NULL 11177.0 +NULL 3642.0 +NULL 16058.0 +NULL -15640.0 +NULL 14028.0 +NULL -2580.0 +NULL 2538.0 +NULL 14266.0 +NULL -9816.0 +NULL -14159.0 +NULL 13710.0 +NULL -15891.0 +NULL 7562.0 +NULL -14345.0 +NULL 34.0 +NULL -3488.0 +NULL 1005.0 +NULL 11614.0 +NULL 5654.0 +NULL 15011.0 +NULL -14283.0 +NULL 3946.0 +NULL -11828.0 +NULL -14709.0 +NULL 4806.0 +NULL -9160.0 +NULL -8958.0 +NULL -815.0 +NULL -8708.0 +NULL 10377.0 +NULL 11231.0 +NULL 8381.0 +NULL -4809.0 +NULL 6700.0 +NULL -7123.0 +NULL 9583.0 +NULL -16172.0 +NULL 1206.0 +NULL 5544.0 +NULL 6260.0 +NULL -2378.0 +NULL 13553.0 +NULL -8173.0 +NULL -13211.0 +NULL 1391.0 +NULL -3581.0 +NULL 13894.0 +NULL -7021.0 +NULL 4863.0 +NULL 13877.0 +NULL -6789.0 +NULL -14148.0 +NULL -14079.0 +NULL NULL +NULL -10489.0 +NULL -11946.0 +NULL 11417.0 +NULL -733.0 +NULL -9263.0 +NULL -8548.0 +NULL 13179.0 +NULL 15902.0 +NULL -474.0 +NULL 16376.0 +NULL -5497.0 +NULL -14329.0 +NULL 12321.0 +NULL 5698.0 +NULL -161.0 +NULL -11824.0 +NULL 15861.0 +NULL 477.0 +NULL 7841.0 +NULL -10558.0 +NULL 4868.0 +NULL -5057.0 +NULL 4852.0 +NULL -8974.0 +NULL -83.0 +NULL -4165.0 +NULL 2384.0 +NULL -1943.0 +NULL 10133.0 +NULL -16183.0 +NULL 10201.0 +NULL -15441.0 +NULL 3121.0 +NULL 12688.0 +NULL 3926.0 +NULL -3942.0 +NULL -5544.0 +NULL -3079.0 +NULL -879.0 +NULL -8737.0 +NULL -9836.0 +NULL -11865.0 +NULL -1235.0 +NULL -8579.0 +NULL -10065.0 +NULL 3944.0 +NULL 10456.0 +NULL 15863.0 +NULL -10967.0 +NULL 12134.0 +NULL 6463.0 +NULL -8059.0 +NULL 3372.0 +NULL -9746.0 +NULL 12470.0 +NULL 12099.0 +NULL 6863.0 +NULL -2537.0 +NULL -8836.0 +NULL -7711.0 +NULL -5119.0 +NULL 5761.0 +NULL -277.0 +NULL -3622.0 +NULL -8762.0 +NULL -892.0 +NULL 11772.0 +NULL 9763215.5639 +NULL 4597.0 +NULL 8079.0 +NULL 6544.0 +NULL -4773.0 +NULL 14260.0 +NULL -12137.0 +NULL NULL +NULL -4435.0 +NULL 1790.0 +NULL 14445.0 +NULL -2081.0 +NULL -10311.0 +NULL 8173.0 +NULL 7688.0 +NULL 125.0 +NULL -14688.0 +NULL 16127.0 +NULL -12684.0 +NULL 5323.0 +NULL -7610.0 +NULL 3492.0 +NULL 575.0 +NULL 15336.0 +NULL -2565.0 +NULL 4762.0 +NULL -5511.0 +NULL -6439.0 +NULL -10119.0 +NULL 7505.0 +NULL -3350.0 +NULL -10912.0 +NULL 5468.0 +NULL 11118.0 +NULL 15490.0 +NULL 3241.0 +NULL 11681.0 +NULL -354.0 +NULL -9359.0 +NULL -11781.0 +NULL 11461.0 +NULL 10412.0 +NULL 3466.0 +NULL NULL +NULL 3225.0 +NULL 14504.0 +NULL 15085.0 +NULL -13144.0 +NULL 1069.0 +NULL 9019.0 +NULL -7150.0 +NULL -5426.0 +NULL -11392.0 +NULL -3423.0 +NULL -12374.0 +NULL -14356.0 +NULL -14990.0 +NULL 9180.0 +NULL -5864.0 +NULL 6113.0 +NULL 15662.0 +NULL -13111.0 +NULL 384.0 +NULL -7465.0 +NULL 16336.0 +NULL -2619.0 +NULL 14120.0 +NULL 15248.0 +NULL 5770.0 +NULL 12302.0 +NULL -5282.0 +NULL -11535.0 +NULL -4522.0 +NULL -11548.0 +NULL 3844.0 +NULL -8413.0 +NULL 15125.0 +NULL -541.0 +NULL 11310.0 +NULL 11685.0 +NULL -5249.0 +NULL -5638.15 +NULL -2049.0 +NULL -11827.0 +NULL -13323.0 +NULL 8744.0 +NULL -11662.0 +NULL -10213.0 +NULL -8980.0 +NULL 8659.0 +NULL -6764.0 +NULL 7270.0 +NULL 5831.0 +NULL 11796.0 +NULL -9871.0 +NULL 12257.0 +NULL 16310.0 +NULL 7480.0 +NULL 8591.0 +NULL 15682.0 +NULL -6353.0 +NULL -13644.0 +NULL -7424.0 +NULL 8524.0 +NULL 3548.0 +NULL 14694.0 +NULL 654.0 +NULL -13161.0 +NULL -8391.0 +NULL -4059.0 +NULL 2045.0 +NULL -15121.0 +NULL 657.0 +NULL 1382.0 +NULL 12690.0 +NULL -13932.0 +NULL NULL +NULL -5126.0 +NULL -6981.0 +NULL 8482.0 +NULL 14782.0 +NULL 10368.0 +NULL -9639.0 +NULL -11074.0 +NULL 10524.0 +NULL -737.0 +NULL 5517.0 +NULL -14171.0 +NULL -14936.0 +NULL -9681.0 +NULL -5229.0 +NULL -8040.0 +NULL -12585.0 +NULL -12485.0 +NULL -8163.0 +NULL 3290.0 +NULL -11633.0 +NULL -3535.0 +NULL 8587.0 +NULL 5218.0 +NULL -7700.0 +NULL -9716.0 +NULL -7367.0 +NULL -9489.0 +NULL 8773.0 +NULL 5558.0 +NULL 4549.0 +NULL -16015.0 +NULL -4405.0 +NULL -13028.0 +NULL -7382.0 +NULL 4130.0 +NULL 4025.0 +NULL -13893.0 +NULL -2032.0 +NULL -3977.0 +NULL -73.0 +NULL -2477.0 +NULL 15319.0 +NULL -8342.0 +NULL -6060.0 +NULL -8208.0 +NULL 8148.0 +NULL -15566.0 +NULL -14875.0 +NULL -2179.0 +NULL -16008.0 +NULL -12242.0 +NULL -11092.0 +NULL 15847.0 +NULL 11795.0 +NULL 5133.0 +NULL 5512.0 +NULL -12086.0 +NULL -12576.0 +NULL 2719.0 +NULL -5226.0 +NULL 3700.0 +NULL 14202.0 +NULL -12151.0 +NULL -10476.0 +NULL -59.0 +NULL 5831.0 +NULL -4896.0 +NULL -6297.0 +NULL 4610.0 +NULL -79.0 +NULL -8576.0 +NULL 10363.0 +NULL NULL +NULL -15520.0 +NULL 6961.0 +NULL 980.0 +NULL 2308.0 +NULL 105.0 +NULL 10663.0 +NULL 1953.0 +NULL 14671.0 +NULL -262.0 +NULL -2779.0 +NULL -1655.0 +NULL 253.0 +NULL -15470.0 +NULL 678.0 +NULL -5715.0 +NULL -2849.0 +NULL 14208.0 +NULL -11181.0 +NULL -9624.0 +NULL 15038.0 +NULL 16343.0 +NULL -5039.0 +NULL -15002.0 +NULL -12819.0 +NULL 16171.0 +NULL -10980.0 +NULL 14771.0 +NULL 8892.0 +NULL -7152.0 +NULL 15340.0 +NULL 14617.0 +NULL -2184.0 +NULL -10928.0 +NULL -1687.0 +NULL 15600.0 +NULL -3056.0 +NULL -10093.0 +NULL 12181.0 +NULL -179.0 +NULL 1712.0 +NULL -14005.0 +NULL 14093.0 +NULL -4790.0 +NULL -14640.0 +NULL -9796.0 +NULL -9164.0 +NULL 11528.0 +NULL -7645.0 +NULL 4278.0 +NULL 11449.0 +NULL -8943.0 +NULL -925.0 +NULL 6071.0 +NULL 12628.0 +NULL 9863.0 +NULL 680.0 +NULL 14891.0 +NULL 9397.0 +NULL 14043.0 +NULL -15534.0 +NULL -9594.0 +NULL -7609.0 +NULL 5265.0 +NULL -7508.0 +NULL 14159.0 +NULL 6882.0 +NULL 10997.0 +NULL -16296.0 +NULL 9905.0 +NULL 11799.0 +NULL 4002.0 +NULL 2251.0 +NULL NULL +NULL 8713.0 +NULL 460.0 +NULL -6377.0 +NULL -2305.0 +NULL 13308.0 +NULL 8782.0 +NULL -1638.0 +NULL -7441.0 +NULL -7662.0 +NULL 175.0 +NULL -11376.0 +NULL -12357.0 +NULL 13554.0 +NULL 3699.0 +NULL 6578.0 +NULL 10069.0 +NULL -3789.0 +NULL -9519.0 +NULL 14460.0 +NULL 5728.0 +NULL 13160.0 +NULL -3849.0 +NULL 475.0 +NULL 10550.0 +NULL -4633.0 +NULL 7824.0 +NULL 11393.0 +NULL -102.0 +NULL 8984.0 +NULL 12220.0 +NULL 4059.0 +NULL -269.0 +NULL 13618.0 +NULL 8437.0 +NULL -14776.0 +NULL 12404.0 +NULL -16149.0 +NULL -3705.0 +NULL -72.0 +NULL -16.0 +NULL -8704.0 +NULL 10429.0 +NULL -1865.0 +NULL -6312.0 +NULL -7484.0 +NULL -6364.0 +NULL 81.0 +NULL 171.0 +NULL 10537.0 +NULL 553.0 +NULL -13944.0 +NULL -5638.15 +NULL 176.0 +NULL -14905.0 +NULL 3629.0 +NULL -13430.0 +NULL -13551.0 +NULL 756.0 +NULL 12486.0 +NULL 12214.0 +NULL -524.0 +NULL 7744.0 +NULL 989.0 +NULL 9603.0 +NULL -9073.0 +NULL -13228.0 +NULL -6296.0 +NULL -4670.0 +NULL 3387.0 +NULL 7894.0 +NULL -11623.0 +NULL 13731.0 +NULL NULL +NULL -15785.0 +NULL -10528.0 +NULL 14827.0 +NULL -5378.0 +NULL -1797.0 +NULL 10225.0 +NULL 12479.0 +NULL -6403.0 +NULL -3252.0 +NULL 2731.0 +NULL 7097.0 +NULL 12969.0 +NULL 7620.0 +NULL -4628.0 +NULL 16266.0 +NULL -11121.0 +NULL 14188.0 +NULL -11234.0 +NULL 14027.0 +NULL -4855.0 +NULL 522.0 +NULL 11437.0 +NULL 13331.0 +NULL -190.0 +NULL -15851.0 +NULL -13269.0 +NULL 2724.0 +NULL 13218.0 +NULL 11182.0 +NULL 13291.0 +NULL -3214.0 +NULL -2572.0 +NULL -5121.0 +NULL 10486.0 +NULL -8994.0 +NULL -9619.0 +NULL 8521.0 +NULL -13012.0 +NULL -13148.0 +NULL 14373.0 +NULL -13787.0 +NULL -15816.0 +NULL -15212.0 +NULL -5307.0 +NULL -5622.0 +NULL 12009.0 +NULL 3679.0 +NULL -3105.0 +NULL -4011.0 +NULL 676.0 +NULL -1639.0 +NULL -6747.0 +NULL -9076.0 +NULL -9604.0 +NULL 8759.0 +NULL -12328.0 +NULL -10415.0 +NULL 9828.0 +NULL -14518.0 +NULL -8043.0 +NULL 8745.0 +NULL -7021.0 +NULL 6545.0 +NULL 15089.0 +NULL 8092.0 +NULL 9296.0 +NULL 4672.0 +NULL -3794.0 +NULL 394.0 +NULL -15748.0 +NULL 13384.0 +NULL 14963.0 +NULL NULL +NULL -15516.0 +NULL 5724.0 +NULL -14521.0 +NULL 13368.0 +NULL -14240.0 +NULL -14224.0 +NULL -9188.0 +NULL -5909.0 +NULL 15130.0 +NULL -7255.0 +NULL -13963.0 +NULL 3514.0 +NULL 2505.0 +NULL 4012.0 +NULL -9419.0 +NULL -14533.0 +NULL 8654.0 +NULL -11034.0 +NULL 3122.0 +NULL 7519.0 +NULL -9296.0 +NULL -748.0 +NULL 14183.0 +NULL 10869.0 +NULL 1836.0 +NULL 6688.0 +NULL -2697.0 +NULL 2910.0 +NULL -13570.0 +NULL 7040.0 +NULL 5867.0 +NULL -3937.0 +NULL -10558.0 +NULL 7964.0 +NULL -5198.0 +NULL 11516.0 +NULL -7247.0 +NULL -4302.0 +NULL -6467.0 +NULL 16169.0 +NULL 3350.0 +NULL -9776.0 +NULL 4631.0 +NULL 5326.0 +NULL -6387.0 +NULL -11797.0 +NULL 9719.0 +NULL -8681.0 +NULL -9096.0 +NULL 1212.0 +NULL 11582.0 +NULL -4438.0 +NULL 8047.0 +NULL -13938.0 +NULL 15530.0 +NULL -13598.0 +NULL -6993.0 +NULL -2815.0 +NULL -1702.0 +NULL 2951.0 +NULL 11935.0 +NULL 9588.0 +NULL 8219.0 +NULL -8534.0 +NULL 14835.0 +NULL -3422.0 +NULL -7591.0 +NULL 15873.0 +NULL 14449.0 +NULL 208.0 +NULL 14706.0 +NULL -9400.0 +NULL NULL +NULL 10455.0 +NULL 10058.0 +NULL 3549.0 +NULL 7194.0 +NULL -5811.0 +NULL 4772.0 +NULL 3907.0 +NULL -7357.0 +NULL -4608.0 +NULL -8607.0 +NULL -561.0 +NULL -6276.0 +NULL 3270.0 +NULL -2477.0 +NULL 5474.0 +NULL -14150.0 +NULL -1583.0 +NULL -4242.0 +NULL -15906.0 +NULL -16030.0 +NULL 13914.0 +NULL -11832.0 +NULL -15865.0 +NULL 16341.0 +NULL -11896.0 +NULL -15867.0 +NULL 13650.0 +NULL -5170.0 +NULL -7382.0 +NULL -3923.0 +NULL 6693.0 +NULL -9898.0 +NULL 12369.0 +NULL -5951.0 +NULL 9729.0 +NULL 11726.0 +NULL -1791.0 +NULL 5679.0 +NULL -11638.0 +NULL 14894.0 +NULL 13386.0 +NULL -10502.0 +NULL -1997.0 +NULL -807.0 +NULL 7235.0 +NULL -5814.0 +NULL -6651.0 +NULL -12956.0 +NULL 9358.0 +NULL 13126.0 +NULL -5423.0 +NULL -11863.0 +NULL 863.0 +NULL -1606.0 +NULL 7384.0 +NULL 11674.0 +NULL 14031.0 +NULL 16134.0 +NULL 1610.0 +NULL 2823.0 +NULL 13299.0 +NULL -4661.0 +NULL -3043.0 +NULL 15349.0 +NULL 11253.0 +NULL 9763215.5639 +NULL -39.0 +NULL -2716.0 +NULL -3360.0 +NULL -3105.0 +NULL 8128.0 +NULL -13750.0 +NULL NULL +NULL 9417.0 +NULL 2706.0 +NULL -3544.0 +NULL -1465.0 +NULL 9652.0 +NULL 5201.0 +NULL 1160.0 +NULL -6455.0 +NULL 12502.0 +NULL -7607.0 +NULL 15250.0 +NULL 7912.0 +NULL -3748.0 +NULL -1282.0 +NULL 777.0 +NULL 14208.0 +NULL -11587.0 +NULL -13615.0 +NULL 6504.0 +NULL -10887.0 +NULL 1806.0 +NULL -15951.0 +NULL 16261.0 +NULL -4990.0 +NULL 1751.0 +NULL -28.0 +NULL 14070.0 +NULL 14572.0 +NULL -12888.0 +NULL 12073.0 +NULL 15928.0 +NULL 8058.0 +NULL -15886.0 +NULL 8026.0 +NULL -8636.0 +NULL 5983.0 +NULL -5338.0 +NULL -16243.0 +NULL 11899.0 +NULL 9.0 +NULL -8393.0 +NULL 1936.0 +NULL -14397.0 +NULL 13128.0 +NULL 7889.0 +NULL 11603.0 +NULL 6838.0 +NULL -5086.0 +NULL 3540.0 +NULL -4692.0 +NULL 11602.0 +NULL -8153.0 +NULL -7593.0 +NULL -6079.0 +NULL -6638.0 +NULL 3147.0 +NULL -26.0 +NULL -7070.0 +NULL -15241.0 +NULL 4954.0 +NULL -6940.0 +NULL -5689.0 +NULL 3187.0 +NULL 15238.0 +NULL -6767.0 +NULL 12779.0 +NULL 6778.0 +NULL 11865.0 +NULL 10475.0 +NULL -11565.0 +NULL -997.0 +NULL -5334.0 +NULL NULL +NULL 8317.0 +NULL -3566.0 +NULL -770.0 +NULL 11104.0 +NULL -9655.0 +NULL 12585.0 +NULL 7161.0 +NULL -11506.0 +NULL 5389.0 +NULL 6088.0 +NULL 8224.0 +NULL -3486.0 +NULL -10278.0 +NULL -8034.0 +NULL 9360.0 +NULL 5815.0 +NULL 4090.0 +NULL -4213.0 +NULL 4898.0 +NULL -4134.0 +NULL -5964.0 +NULL 11971.0 +NULL -8969.0 +NULL 6268.0 +NULL -8132.0 +NULL -13701.0 +NULL -13439.0 +NULL 5018.0 +NULL 10916.0 +NULL 2312.0 +NULL 4199.0 +NULL -1089.0 +NULL 1629.0 +NULL -2015.0 +NULL 7571.0 +NULL 8700.0 +NULL -2906.0 +NULL 5948.0 +NULL 11324.0 +NULL -10314.0 +NULL 13237.0 +NULL 10997.0 +NULL -7862.0 +NULL 15821.0 +NULL 11596.0 +NULL 14081.0 +NULL -5767.0 +NULL -11142.0 +NULL -15091.0 +NULL -11661.0 +NULL -16201.0 +NULL -14831.0 +NULL -3442.0 +NULL -10578.0 +NULL 12329.0 +NULL -9163.0 +NULL -4682.0 +NULL -9437.0 +NULL -15020.0 +NULL 3658.0 +NULL -6839.0 +NULL 12408.0 +NULL 1594.0 +NULL 12961.0 +NULL -5860.0 +NULL 9185.0 +NULL 10289.0 +NULL 7409.0 +NULL -1944.0 +NULL -7893.0 +NULL -10605.0 +NULL 9571.0 +NULL NULL +NULL -15779.0 +NULL -12957.0 +NULL 12456.0 +NULL -2191.0 +NULL -14173.0 +NULL -14431.0 +NULL 12426.0 +NULL 8119.0 +NULL 4695.0 +NULL -10320.0 +NULL 3086.0 +NULL 6007.0 +NULL 16140.0 +NULL 1187.0 +NULL -13539.0 +NULL 15522.0 +NULL -428.0 +NULL -14569.0 +NULL 164.0 +NULL -3631.0 +NULL 5664.0 +NULL -10954.0 +-64 -15920.0 +-64 -10462.0 +-64 -7196.0 +-64 13221.0 +-64 -200.0 +-64 12470.0 +-64 16274.0 +-64 -200.0 +-64 -9842.0 +-64 -7196.0 +-64 -8080.0 +-64 11394.0 +-64 -7196.0 +-64 6183.0 +-64 15601.0 +-64 -4018.0 +-64 6811.0 +-64 -7196.0 +-64 -7196.0 +-64 -168.0 +-64 -3586.0 +-64 15601.0 +-64 -1600.0 +-64 -4040.0 +-64 15601.0 +-64 10097.0 +-64 15827.0 +-64 -3097.0 +-64 -6907.0 +-64 -200.0 +-64 -7196.0 +-64 -4803.0 +-64 -2919.0 +-64 -7196.0 +-63 -766.0 +-63 8354.0 +-63 -7196.0 +-63 363.0 +-63 11457.0 +-63 -5374.0 +-63 5241.0 +-63 -200.0 +-63 -200.0 +-63 -7196.0 +-63 -4374.0 +-63 15601.0 +-63 15601.0 +-63 -9766.0 +-63 -200.0 +-63 -200.0 +-63 -12516.0 +-63 -7196.0 +-63 9539.0 +-63 -200.0 +-63 -10365.0 +-63 15601.0 +-63 -5827.0 +-63 -7320.0 +-63 15601.0 +-63 -7518.0 +-63 -200.0 +-63 15601.0 +-63 -200.0 +-63 15601.0 +-63 15973.0 +-63 15601.0 +-63 -1455.0 +-62 15601.0 +-62 -200.0 +-62 -7196.0 +-62 -8364.0 +-62 15601.0 +-62 -3763.0 +-62 -7196.0 +-62 -10938.0 +-62 -3635.0 +-62 -15992.0 +-62 -7196.0 +-62 7903.0 +-62 15601.0 +-62 9111.0 +-62 -200.0 +-62 10.0 +-62 -200.0 +-62 15601.0 +-62 -200.0 +-62 3440.0 +-62 -15892.0 +-62 -7196.0 +-62 -10962.0 +-62 -4573.0 +-62 6069.0 +-62 15601.0 +-62 -7196.0 +-62 -7196.0 +-62 -200.0 +-62 12420.0 +-62 15153.0 +-62 15601.0 +-62 5972.0 +-62 -1545.0 +-62 13953.0 +-62 8986.0 +-62 -200.0 +-62 -200.0 +-62 -2112.0 +-62 -200.0 +-62 -7196.0 +-62 -7196.0 +-62 1634.0 +-62 -3934.0 +-62 3510.0 +-62 -14307.0 +-62 -7196.0 +-62 -7196.0 +-62 -200.0 +-61 15278.0 +-61 -5873.0 +-61 -200.0 +-61 -7196.0 +-61 -7196.0 +-61 -11922.0 +-61 -200.0 +-61 -7196.0 +-61 15601.0 +-61 -200.0 +-61 -7196.0 +-61 5169.0 +-61 8031.0 +-61 -7196.0 +-61 15601.0 +-61 -200.0 +-61 2657.0 +-61 7836.0 +-61 15601.0 +-61 12230.0 +-61 15601.0 +-61 -7196.0 +-61 -15142.0 +-61 -7196.0 +-61 -7196.0 +-61 -8281.0 +-61 -7196.0 +-61 10211.0 +-61 15601.0 +-61 6327.0 +-61 -200.0 +-61 8231.0 +-61 1577.0 +-61 -7196.0 +-61 15601.0 +-61 -14541.0 +-61 -927.0 +-61 15601.0 +-61 -9668.0 +-61 15601.0 +-61 -6025.0 +-61 -7196.0 +-61 -1522.0 +-61 611.0 +-61 1815.0 +-61 -200.0 +-61 -7597.0 +-60 -5516.0 +-60 -200.0 +-60 -200.0 +-60 15601.0 +-60 15601.0 +-60 -15183.0 +-60 -2035.0 +-60 -200.0 +-60 15601.0 +-60 -200.0 +-60 -3655.0 +-60 -200.0 +-60 15601.0 +-60 -9182.0 +-60 -7196.0 +-60 15601.0 +-60 1660.0 +-60 -7196.0 +-60 -14375.0 +-60 -15711.0 +-60 -12068.0 +-60 11579.0 +-60 15601.0 +-60 -13617.0 +-60 -4936.0 +-60 7500.0 +-60 14974.0 +-60 -6264.0 +-60 11419.0 +-60 5944.0 +-60 -7196.0 +-60 1685.0 +-60 8341.0 +-60 -15792.0 +-60 15601.0 +-60 -200.0 +-60 -7196.0 +-60 -6754.0 +-60 8748.0 +-60 -8839.0 +-60 15601.0 +-60 13589.0 +-60 15601.0 +-60 -200.0 +-60 -200.0 +-60 -200.0 +-60 -200.0 +-60 -200.0 +-60 -200.0 +-60 -7196.0 +-59 8781.0 +-59 15601.0 +-59 15601.0 +-59 16270.0 +-59 -7196.0 +-59 15601.0 +-59 -7196.0 +-59 -7196.0 +-59 -7196.0 +-59 -7196.0 +-59 15601.0 +-59 -15363.0 +-59 -15789.0 +-59 -3076.0 +-59 -7196.0 +-59 11028.0 +-59 6738.0 +-59 -5342.0 +-59 2316.0 +-59 15601.0 +-59 3058.0 +-59 -9293.0 +-59 15668.0 +-59 -7196.0 +-59 15601.0 +-59 -2049.0 +-59 -14299.0 +-59 -5799.0 +-59 15601.0 +-59 -13913.0 +-59 -9871.0 +-59 15601.0 +-59 -7832.0 +-59 -14273.0 +-59 -4957.0 +-59 -200.0 +-59 -200.0 +-59 -6102.0 +-59 -200.0 +-59 -1070.0 +-59 -200.0 +-59 -200.0 +-59 5687.0 +-59 -200.0 +-59 -200.0 +-59 -8181.0 +-59 -200.0 +-59 -200.0 +-59 -200.0 +-59 -13863.0 +-59 8267.0 +-59 -7196.0 +-59 15601.0 +-59 10688.0 +-59 -820.0 +-58 15601.0 +-58 -7196.0 +-58 -7278.0 +-58 -3246.0 +-58 -200.0 +-58 -200.0 +-58 14524.0 +-58 -200.0 +-58 15601.0 +-58 -200.0 +-58 -200.0 +-58 1289.0 +-58 13271.0 +-58 -10983.0 +-58 465.0 +-58 -7196.0 +-58 5643.0 +-58 15602.0 +-58 -7196.0 +-58 15841.0 +-58 -7196.0 +-58 8744.0 +-58 4811.0 +-58 -15169.0 +-58 15601.0 +-58 8983.0 +-58 8445.0 +-58 15909.0 +-58 -3773.0 +-58 -7196.0 +-58 15601.0 +-58 15601.0 +-58 12183.0 +-58 -13570.0 +-58 12574.0 +-58 -7196.0 +-58 15601.0 +-58 -200.0 +-58 -200.0 +-58 -200.0 +-58 -200.0 +-58 -7196.0 +-58 15601.0 +-58 -200.0 +-58 15601.0 +-57 1435.0 +-57 -7196.0 +-57 15601.0 +-57 15601.0 +-57 -7196.0 +-57 15601.0 +-57 -11492.0 +-57 5630.0 +-57 9682.0 +-57 13710.0 +-57 -9098.0 +-57 12292.0 +-57 -7196.0 +-57 -1842.0 +-57 4120.0 +-57 10120.0 +-57 612.0 +-57 5393.0 +-57 9388.0 +-57 -7450.0 +-57 -875.0 +-57 3846.0 +-57 -14893.0 +-57 1121.0 +-57 8368.0 +-57 4811.0 +-57 10415.0 +-57 -1815.0 +-57 -200.0 +-57 -217.0 +-57 -13843.0 +-57 -200.0 +-57 -2417.0 +-57 -7196.0 +-57 -200.0 +-57 -200.0 +-57 -200.0 +-57 2826.0 +-57 15601.0 +-57 -7196.0 +-57 -200.0 +-57 -200.0 +-57 15601.0 +-57 -200.0 +-57 10139.0 +-57 8692.0 +-57 -5452.0 +-57 -7196.0 +-57 -7196.0 +-57 15601.0 +-57 1399.0 +-57 15328.0 +-57 -7196.0 +-57 15601.0 +-57 -8277.0 +-57 -7196.0 +-56 15601.0 +-56 -11215.0 +-56 -7196.0 +-56 16178.0 +-56 8353.0 +-56 8402.0 +-56 -10990.0 +-56 -2075.0 +-56 2213.0 +-56 -5466.0 +-56 4544.0 +-56 15601.0 +-56 -10500.0 +-56 16069.0 +-56 16282.0 +-56 1546.0 +-56 -200.0 +-56 -200.0 +-56 -200.0 +-56 -200.0 +-56 -200.0 +-56 -200.0 +-56 -200.0 +-56 -7196.0 +-56 15601.0 +-56 -7196.0 +-56 8709.0 +-56 9011.0 +-56 -7196.0 +-56 15601.0 +-56 15601.0 +-56 -7196.0 +-56 15601.0 +-56 15509.0 +-56 -7196.0 +-56 -7196.0 +-56 15601.0 +-56 11598.0 +-56 11236.0 +-56 2208.0 +-56 -7196.0 +-56 -5925.0 +-56 7175.0 +-56 -9618.0 +-56 -8481.0 +-56 5000.0 +-56 13455.0 +-56 14848.0 +-56 -11812.0 +-56 -11999.0 +-56 4585.0 +-56 2308.0 +-56 8757.0 +-56 3601.0 +-56 -11030.0 +-55 15601.0 +-55 15601.0 +-55 -6948.0 +-55 -1954.0 +-55 -7196.0 +-55 4575.0 +-55 -6484.0 +-55 1374.0 +-55 8875.0 +-55 -200.0 +-55 5941.0 +-55 -200.0 +-55 -200.0 +-55 16056.0 +-55 -200.0 +-55 -200.0 +-55 4572.0 +-55 -7196.0 +-55 15601.0 +-55 5487.0 +-55 15601.0 +-55 -7196.0 +-55 -7449.0 +-55 -7196.0 +-55 -7353.0 +-55 -7196.0 +-55 10077.0 +-55 3708.0 +-55 -10096.0 +-55 -326.0 +-55 -1301.0 +-55 15646.0 +-55 13074.0 +-55 15601.0 +-55 15601.0 +-55 1111.0 +-55 -7196.0 +-55 4513.0 +-55 -11287.0 +-55 15601.0 +-55 -9054.0 +-55 -3611.0 +-55 15601.0 +-55 278.0 +-55 -200.0 +-55 -13381.0 +-55 15601.0 +-54 7111.0 +-54 15601.0 +-54 15601.0 +-54 10403.0 +-54 -789.0 +-54 -7196.0 +-54 -7196.0 +-54 15601.0 +-54 -7663.0 +-54 1979.0 +-54 -7196.0 +-54 15601.0 +-54 -7196.0 +-54 -200.0 +-54 -200.0 +-54 -200.0 +-54 -200.0 +-54 -200.0 +-54 -7185.0 +-54 11979.0 +-54 2234.0 +-54 -13313.0 +-54 -14815.0 +-54 859.0 +-54 15694.0 +-54 11932.0 +-54 8762.0 +-54 6062.0 +-54 15601.0 +-54 11632.0 +-54 -957.0 +-54 -4871.0 +-54 15601.0 +-54 5741.0 +-54 -13238.0 +-54 5377.0 +-54 -10268.0 +-54 -7196.0 +-54 15601.0 +-54 -7196.0 +-54 15601.0 +-54 -7196.0 +-54 15601.0 +-54 3613.0 +-53 -7196.0 +-53 16212.0 +-53 -2937.0 +-53 -7196.0 +-53 -7196.0 +-53 -12888.0 +-53 -9095.0 +-53 -7196.0 +-53 -7196.0 +-53 15601.0 +-53 2710.0 +-53 -425.0 +-53 -200.0 +-53 516.0 +-53 -9178.0 +-53 10858.0 +-53 -7196.0 +-53 -7196.0 +-53 15601.0 +-53 -937.0 +-53 -15445.0 +-53 -7196.0 +-53 -436.0 +-53 -6785.0 +-53 -11061.0 +-53 15601.0 +-53 15601.0 +-53 -3419.0 +-53 -7196.0 +-53 -8155.0 +-53 -200.0 +-53 12901.0 +-53 -200.0 +-53 14370.0 +-53 -7196.0 +-53 13801.0 +-53 -200.0 +-52 8868.0 +-52 -200.0 +-52 -8212.0 +-52 -200.0 +-52 10785.0 +-52 -16369.0 +-52 -7196.0 +-52 -7196.0 +-52 -2008.0 +-52 -4951.0 +-52 -200.0 +-52 3827.0 +-52 -62.0 +-52 3520.0 +-52 15601.0 +-52 -7196.0 +-52 -1488.0 +-52 -7196.0 +-52 -7196.0 +-52 -8340.0 +-52 -6304.0 +-52 15601.0 +-52 15601.0 +-52 15223.0 +-52 -3174.0 +-52 11342.0 +-52 6516.0 +-52 -200.0 +-52 12918.0 +-52 15601.0 +-52 3797.0 +-52 -200.0 +-52 -7196.0 +-52 10653.0 +-52 11044.0 +-52 14159.0 +-52 14694.0 +-52 -7196.0 +-52 9971.0 +-52 15601.0 +-52 10470.0 +-52 10295.0 +-52 -7196.0 +-52 6321.0 +-52 7599.0 +-52 7705.0 +-52 8191.0 +-52 -200.0 +-52 -5536.0 +-52 -200.0 +-52 -7196.0 +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 -7196.0 +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 -7196.0 +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 15101.0 +-51 -7196.0 +-51 -7196.0 +-51 -7196.0 +-51 15601.0 +-51 15601.0 +-51 15601.0 +-51 15601.0 +-51 15601.0 +-51 -7196.0 +-51 -7196.0 +-51 2119.0 +-51 8408.0 +-51 -7196.0 +-51 -7196.0 +-51 -1376.0 +-51 -15134.0 +-51 -11632.0 +-51 -7196.0 +-51 -7196.0 +-51 -11322.0 +-51 -8118.0 +-51 778.0 +-51 12403.0 +-51 -1547.0 +-51 -489.0 +-51 -12083.0 +-51 13383.0 +-51 -15734.0 +-51 15933.0 +-51 -1561.0 +-51 9426.0 +-51 -200.0 +-51 -200.0 +-51 -200.0 +-51 -200.0 +-51 -200.0 +-51 -200.0 +-51 -200.0 +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-51 NULL +-50 -13326.0 +-50 -7196.0 +-50 -7196.0 +-50 -7196.0 +-50 -7196.0 +-50 -7196.0 +-50 -7196.0 +-50 -7196.0 +-50 -7196.0 +-50 -7196.0 +-50 -7196.0 +-50 -4279.0 +-50 -5881.0 +-50 -14320.0 +-50 10484.0 +-50 547.0 +-50 -6423.0 +-50 -2098.0 +-50 -12855.0 +-50 -11322.0 +-50 15601.0 +-50 15601.0 +-50 15601.0 +-50 15601.0 +-50 15601.0 +-50 15601.0 +-50 -5529.0 +-50 -13048.0 +-50 -479.0 +-50 -853.0 +-50 -2047.0 +-50 2707.0 +-50 -13727.0 +-50 -200.0 +-50 -200.0 +-50 -200.0 +-50 -200.0 +-50 -200.0 +-50 -200.0 +-50 -200.0 +-50 -200.0 +-50 -200.0 +-50 -6459.0 +-50 1888.0 +-50 -14152.0 +-50 11097.0 +-50 8375.0 +-50 6389.0 +-50 4162.0 +-50 -1257.0 +-50 7940.0 +-50 4647.0 +-49 15601.0 +-49 -7196.0 +-49 15707.0 +-49 -7196.0 +-49 -13403.0 +-49 5412.0 +-49 15601.0 +-49 5420.0 +-49 -9743.0 +-49 7482.0 +-49 -7196.0 +-49 8876.0 +-49 -8116.0 +-49 -14831.0 +-49 15601.0 +-49 -200.0 +-49 -5576.0 +-49 15601.0 +-49 15601.0 +-49 15601.0 +-49 2164.0 +-49 15601.0 +-49 3815.0 +-49 -7196.0 +-49 5356.0 +-49 -11008.0 +-49 15601.0 +-49 -437.0 +-49 15601.0 +-49 -3637.0 +-49 -7196.0 +-49 6961.0 +-49 -200.0 +-49 -9435.0 +-49 -9657.0 +-49 -4439.0 +-49 -7196.0 +-49 -200.0 +-49 -7196.0 +-49 -8684.0 +-49 -200.0 +-49 -7196.0 +-49 2123.0 +-49 -7196.0 +-49 15601.0 +-49 -7196.0 +-49 -11515.0 +-48 -5603.0 +-48 -7196.0 +-48 -84.0 +-48 -9838.0 +-48 8852.0 +-48 11189.0 +-48 -200.0 +-48 15601.0 +-48 -7196.0 +-48 -15462.0 +-48 -4141.0 +-48 -7196.0 +-48 15601.0 +-48 -8841.0 +-48 15601.0 +-48 7062.0 +-48 15601.0 +-48 -2151.0 +-48 15601.0 +-48 -7506.0 +-48 -200.0 +-48 15601.0 +-48 -200.0 +-48 -262.0 +-48 11197.0 +-48 -7196.0 +-48 -200.0 +-48 -200.0 +-48 -7196.0 +-48 -3925.0 +-48 13253.0 +-48 11654.0 +-48 -7196.0 +-48 -12006.0 +-48 -7735.0 +-48 15601.0 +-48 15601.0 +-48 -200.0 +-48 838.0 +-48 -13321.0 +-48 -7196.0 +-48 15601.0 +-48 -7196.0 +-48 12563.0 +-48 -5982.0 +-48 15601.0 +-48 -7196.0 +-48 15601.0 +-48 -7196.0 +-48 -7196.0 +-48 -1121.0 +-48 -9001.0 +-48 15601.0 +-48 2170.0 +-48 13300.0 +-47 -200.0 +-47 -7687.0 +-47 -7196.0 +-47 -7196.0 +-47 -200.0 +-47 -7196.0 +-47 -11570.0 +-47 15601.0 +-47 -2015.0 +-47 12034.0 +-47 -2583.0 +-47 -15158.0 +-47 2804.0 +-47 7556.0 +-47 -200.0 +-47 -16096.0 +-47 -7196.0 +-47 -200.0 +-47 -643.0 +-47 -7196.0 +-47 13800.0 +-47 8704.0 +-47 -200.0 +-47 15601.0 +-47 -2468.0 +-47 -7196.0 +-47 -7196.0 +-47 -13074.0 +-47 -7196.0 +-47 15601.0 +-47 -200.0 +-47 -200.0 +-47 16036.0 +-47 -7196.0 +-47 -9988.0 +-47 4577.0 +-47 15601.0 +-47 -8633.0 +-47 -7196.0 +-47 11583.0 +-47 -200.0 +-47 -200.0 +-46 -200.0 +-46 -729.0 +-46 -200.0 +-46 15601.0 +-46 3116.0 +-46 15601.0 +-46 4322.0 +-46 -3204.0 +-46 15601.0 +-46 11561.0 +-46 -7196.0 +-46 15601.0 +-46 15601.0 +-46 -7196.0 +-46 -200.0 +-46 -12016.0 +-46 -5224.0 +-46 -7196.0 +-46 15601.0 +-46 15932.0 +-46 10346.0 +-46 15601.0 +-46 -12427.0 +-46 9315.0 +-46 -10935.0 +-46 -808.0 +-46 72.0 +-46 6802.0 +-46 11214.0 +-46 15601.0 +-46 -7196.0 +-46 -200.0 +-46 3140.0 +-46 -4479.0 +-46 -2210.0 +-46 -7196.0 +-46 -3224.0 +-46 -200.0 +-46 15601.0 +-46 -2691.0 +-45 -2630.0 +-45 20.0 +-45 15601.0 +-45 -4662.0 +-45 4617.0 +-45 15601.0 +-45 -200.0 +-45 3782.0 +-45 -6187.0 +-45 -2432.0 +-45 -200.0 +-45 5780.0 +-45 15601.0 +-45 594.0 +-45 -7196.0 +-45 13023.0 +-45 -7196.0 +-45 -7196.0 +-45 -7196.0 +-45 -7196.0 +-45 -14072.0 +-45 7712.0 +-45 -7196.0 +-45 4612.0 +-45 -8403.0 +-45 -200.0 +-45 -200.0 +-45 -15027.0 +-45 9107.0 +-45 -7196.0 +-45 5521.0 +-45 -11755.0 +-45 -200.0 +-45 -12129.0 +-45 -7196.0 +-45 -200.0 +-45 15601.0 +-45 -200.0 +-45 -200.0 +-45 15601.0 +-45 373.0 +-45 9759.0 +-45 15601.0 +-45 -7196.0 +-45 -200.0 +-44 -12048.0 +-44 -9953.0 +-44 15601.0 +-44 -2774.0 +-44 15601.0 +-44 15601.0 +-44 15601.0 +-44 -1299.0 +-44 15601.0 +-44 15601.0 +-44 15601.0 +-44 -929.0 +-44 15601.0 +-44 -4319.0 +-44 15601.0 +-44 15601.0 +-44 15601.0 +-44 15601.0 +-44 14133.0 +-44 15065.0 +-44 6848.0 +-44 -7196.0 +-44 -7196.0 +-44 -7196.0 +-44 -8511.0 +-44 -7196.0 +-44 -118.0 +-44 -7196.0 +-44 16227.0 +-44 15601.0 +-44 -200.0 +-44 15601.0 +-44 -200.0 +-44 -7196.0 +-44 -15667.0 +-44 -200.0 +-44 -200.0 +-44 -200.0 +-44 -11338.0 +-44 -11917.0 +-44 -200.0 +-44 -1108.0 +-44 5927.0 +-44 -200.0 +-44 -200.0 +-44 -7196.0 +-44 -10493.0 +-44 6015.0 +-44 -200.0 +-44 -7196.0 +-44 -7885.0 +-44 -200.0 +-44 -14900.0 +-43 13638.0 +-43 -10236.0 +-43 -8658.0 +-43 -7196.0 +-43 -7196.0 +-43 2921.0 +-43 -9142.0 +-43 -5996.0 +-43 -7196.0 +-43 367.0 +-43 8129.0 +-43 -200.0 +-43 -200.0 +-43 15601.0 +-43 -200.0 +-43 -7196.0 +-43 15601.0 +-43 -200.0 +-43 -200.0 +-43 6626.0 +-43 -15078.0 +-43 -200.0 +-43 -7196.0 +-43 15601.0 +-43 -200.0 +-43 -200.0 +-43 14685.0 +-43 -337.0 +-43 -12078.0 +-43 12477.0 +-43 -200.0 +-43 2269.0 +-43 7559.0 +-43 -7196.0 +-43 6910.0 +-43 15601.0 +-43 4956.0 +-43 1091.0 +-43 -5757.0 +-43 15601.0 +-43 -1039.0 +-43 15601.0 +-43 -200.0 +-43 -7196.0 +-43 8662.0 +-43 -200.0 +-43 -7196.0 +-43 486.0 +-43 8001.0 +-43 -8835.0 +-43 -7196.0 +-43 -200.0 +-43 -14192.0 +-43 -15607.0 +-42 -16025.0 +-42 -7196.0 +-42 -200.0 +-42 -7196.0 +-42 3630.0 +-42 15601.0 +-42 -7196.0 +-42 -200.0 +-42 15601.0 +-42 -11109.0 +-42 15601.0 +-42 3333.0 +-42 -7103.0 +-42 15601.0 +-42 16165.0 +-42 -7196.0 +-42 -200.0 +-42 -543.0 +-42 -7196.0 +-42 11565.0 +-42 -200.0 +-42 12734.0 +-42 -49.0 +-42 15601.0 +-42 -200.0 +-42 12772.0 +-42 -7196.0 +-42 15601.0 +-42 15416.0 +-42 -200.0 +-42 -7196.0 +-42 9452.0 +-42 -200.0 +-42 5507.0 +-42 15601.0 +-42 15601.0 +-41 11014.0 +-41 -7196.0 +-41 -4758.0 +-41 15601.0 +-41 -7196.0 +-41 557.0 +-41 -200.0 +-41 -7196.0 +-41 2322.0 +-41 -9041.0 +-41 7642.0 +-41 -1121.0 +-41 15601.0 +-41 -200.0 +-41 -7196.0 +-41 -200.0 +-41 -11337.0 +-41 7588.0 +-41 15601.0 +-41 15601.0 +-41 -7196.0 +-41 -200.0 +-41 -200.0 +-41 -200.0 +-41 15601.0 +-41 -12606.0 +-41 15601.0 +-41 -7196.0 +-41 -200.0 +-41 -726.0 +-41 -4574.0 +-41 -200.0 +-41 -7196.0 +-41 15601.0 +-41 -7196.0 +-41 -8234.0 +-41 16219.0 +-41 9442.0 +-41 -5121.0 +-41 -7196.0 +-41 15601.0 +-41 4159.0 +-41 -7798.0 +-41 -7196.0 +-41 -7196.0 +-41 -7196.0 +-41 -9455.0 +-41 -4232.0 +-41 1703.0 +-41 15601.0 +-40 11168.0 +-40 3256.0 +-40 15601.0 +-40 4978.0 +-40 -9485.0 +-40 -4745.0 +-40 4169.0 +-40 15601.0 +-40 -7196.0 +-40 15620.0 +-40 15601.0 +-40 -5371.0 +-40 -13709.0 +-40 -200.0 +-40 -200.0 +-40 -10145.0 +-40 -200.0 +-40 -7196.0 +-40 15601.0 +-40 -200.0 +-40 15601.0 +-40 -4845.0 +-40 -3063.0 +-40 -1439.0 +-40 15601.0 +-40 -200.0 +-40 8584.0 +-40 -200.0 +-40 15601.0 +-40 7636.0 +-40 -7196.0 +-40 15601.0 +-40 -14678.0 +-40 3030.0 +-40 -200.0 +-40 15601.0 +-40 -4463.0 +-40 -7196.0 +-40 13153.0 +-40 94.0 +-40 13164.0 +-40 -7196.0 +-40 -7196.0 +-40 16352.0 +-40 -7196.0 +-40 -12574.0 +-40 15601.0 +-40 15601.0 +-39 -200.0 +-39 -7196.0 +-39 -763.0 +-39 -7196.0 +-39 -7196.0 +-39 -7196.0 +-39 -7196.0 +-39 -7196.0 +-39 5764.0 +-39 -15160.0 +-39 -7196.0 +-39 -13220.0 +-39 14872.0 +-39 -7196.0 +-39 -7196.0 +-39 3958.0 +-39 -7196.0 +-39 7180.0 +-39 -7196.0 +-39 -7196.0 +-39 -7196.0 +-39 -165.0 +-39 -7196.0 +-39 8234.0 +-39 -13852.0 +-39 -200.0 +-39 -200.0 +-39 -13122.0 +-39 -200.0 +-39 11049.0 +-39 -14135.0 +-39 -200.0 +-39 9907.0 +-39 15601.0 +-39 15601.0 +-39 15601.0 +-39 -200.0 +-39 -200.0 +-39 -200.0 +-39 -200.0 +-39 15601.0 +-39 14785.0 +-39 15601.0 +-39 15601.0 +-39 11054.0 +-39 2015.0 +-39 -8752.0 +-39 -15612.0 +-39 15601.0 +-38 15601.0 +-38 -890.0 +-38 -7196.0 +-38 9761.0 +-38 -7196.0 +-38 -7196.0 +-38 -13158.0 +-38 6777.0 +-38 6340.0 +-38 -13111.0 +-38 -200.0 +-38 15601.0 +-38 8105.0 +-38 -9526.0 +-38 -8095.0 +-38 -3208.0 +-38 -7196.0 +-38 -200.0 +-38 -7196.0 +-38 -4126.0 +-38 -11829.0 +-38 -200.0 +-38 16146.0 +-38 -200.0 +-38 9583.0 +-38 -316.0 +-38 -7196.0 +-38 -200.0 +-38 8072.0 +-38 -10602.0 +-38 -14914.0 +-38 13701.0 +-38 -2172.0 +-38 -7196.0 +-38 4153.0 +-38 -7766.0 +-38 -200.0 +-38 9792.0 +-38 -200.0 +-38 -200.0 +-38 -200.0 +-38 -11209.0 +-38 15601.0 +-38 -8587.0 +-38 -9514.0 +-38 7109.0 +-38 -200.0 +-38 15148.0 +-37 -14780.0 +-37 -12472.0 +-37 -7196.0 +-37 15601.0 +-37 -7196.0 +-37 15601.0 +-37 15601.0 +-37 -200.0 +-37 -7196.0 +-37 10551.0 +-37 15601.0 +-37 -7196.0 +-37 -5230.0 +-37 15601.0 +-37 -200.0 +-37 -9341.0 +-37 15601.0 +-37 -7196.0 +-37 -5497.0 +-37 -200.0 +-37 12550.0 +-37 -4971.0 +-37 10496.0 +-37 -200.0 +-37 -7196.0 +-37 -200.0 +-37 -4201.0 +-37 -7196.0 +-37 -7196.0 +-37 -7196.0 +-37 15601.0 +-37 -7196.0 +-37 -7196.0 +-37 -11786.0 +-37 -7196.0 +-37 -11548.0 +-37 6898.0 +-37 -8786.0 +-37 15601.0 +-37 7713.0 +-37 15601.0 +-37 15296.0 +-37 15601.0 +-37 10532.0 +-36 -7196.0 +-36 4472.0 +-36 -3752.0 +-36 -10887.0 +-36 5394.0 +-36 7705.0 +-36 -5478.0 +-36 -16208.0 +-36 8229.0 +-36 1639.0 +-36 11081.0 +-36 15601.0 +-36 -7196.0 +-36 -200.0 +-36 -2229.0 +-36 15601.0 +-36 8048.0 +-36 -1406.0 +-36 -7196.0 +-36 -7196.0 +-36 -12542.0 +-36 7511.0 +-36 -13930.0 +-36 15601.0 +-36 -200.0 +-36 -200.0 +-36 -2620.0 +-36 -200.0 +-36 -6144.0 +-36 532.0 +-36 16319.0 +-36 -7196.0 +-36 15601.0 +-36 -200.0 +-36 15601.0 +-36 -7836.0 +-36 -7196.0 +-36 -1592.0 +-36 -200.0 +-36 -200.0 +-36 12136.0 +-36 -200.0 +-35 -7196.0 +-35 6576.0 +-35 13062.0 +-35 -8289.0 +-35 1947.0 +-35 -1353.0 +-35 15601.0 +-35 -9727.0 +-35 -200.0 +-35 15601.0 +-35 12781.0 +-35 -7196.0 +-35 11794.0 +-35 15601.0 +-35 -4977.0 +-35 -200.0 +-35 15601.0 +-35 15601.0 +-35 15601.0 +-35 -200.0 +-35 15601.0 +-35 -7196.0 +-35 -7196.0 +-35 -1871.0 +-35 14517.0 +-35 -10126.0 +-35 4055.0 +-35 4625.0 +-35 -14909.0 +-35 -16059.0 +-35 -7196.0 +-35 5815.0 +-35 -7196.0 +-35 -9646.0 +-35 -14356.0 +-35 15601.0 +-35 -8559.0 +-35 12059.0 +-35 -7196.0 +-35 -7196.0 +-35 -6814.0 +-35 -7196.0 +-35 -200.0 +-35 2216.0 +-34 3520.0 +-34 -5928.0 +-34 15007.0 +-34 16238.0 +-34 -200.0 +-34 10907.0 +-34 -7196.0 +-34 15601.0 +-34 -7196.0 +-34 15601.0 +-34 4967.0 +-34 -7196.0 +-34 15601.0 +-34 5680.0 +-34 557.0 +-34 6090.0 +-34 -6217.0 +-34 -7196.0 +-34 -200.0 +-34 -1231.0 +-34 -15450.0 +-34 -1203.0 +-34 -7196.0 +-34 -7196.0 +-34 1734.0 +-34 7.0 +-34 -12276.0 +-34 9642.0 +-34 3018.0 +-34 9452.0 +-34 15601.0 +-34 -2940.0 +-34 15601.0 +-34 11022.0 +-34 -7196.0 +-34 -200.0 +-34 8726.0 +-34 12660.0 +-34 -200.0 +-34 -2045.0 +-34 -4474.0 +-34 -200.0 +-34 -7196.0 +-34 -200.0 +-34 15601.0 +-34 4181.0 +-34 16276.0 +-34 6941.0 +-34 15601.0 +-34 5793.0 +-33 -7196.0 +-33 4711.0 +-33 -12779.0 +-33 4836.0 +-33 15601.0 +-33 -200.0 +-33 15601.0 +-33 15601.0 +-33 -3259.0 +-33 14072.0 +-33 15601.0 +-33 9561.0 +-33 -200.0 +-33 13374.0 +-33 9364.0 +-33 -293.0 +-33 2011.0 +-33 11883.0 +-33 -8670.0 +-33 15601.0 +-33 -200.0 +-33 15601.0 +-33 1148.0 +-33 4024.0 +-33 -200.0 +-33 15601.0 +-33 -200.0 +-33 15601.0 +-33 -2666.0 +-33 -7196.0 +-33 -200.0 +-33 306.0 +-33 -1852.0 +-33 8742.0 +-33 15601.0 +-33 7350.0 +-33 15601.0 +-33 15601.0 +-33 -7196.0 +-33 -447.0 +-33 -7196.0 +-33 -7196.0 +-33 -7196.0 +-33 5070.0 +-33 15601.0 +-33 15601.0 +-33 -7196.0 +-33 15601.0 +-33 -200.0 +-32 -6547.0 +-32 -200.0 +-32 -7196.0 +-32 8827.0 +-32 -10511.0 +-32 -7196.0 +-32 15601.0 +-32 4136.0 +-32 15601.0 +-32 15601.0 +-32 -200.0 +-32 10485.0 +-32 -200.0 +-32 -14524.0 +-32 15601.0 +-32 -200.0 +-32 -7196.0 +-32 15601.0 +-32 -11898.0 +-32 -10649.0 +-32 -200.0 +-32 -1161.0 +-32 -1944.0 +-32 -3029.0 +-32 2582.0 +-32 10921.0 +-32 -2430.0 +-32 -200.0 +-32 -15866.0 +-32 -9107.0 +-32 -11022.0 +-32 -7196.0 +-32 15705.0 +-32 15601.0 +-32 -7196.0 +-32 -2566.0 +-32 -7196.0 +-32 15601.0 +-32 11242.0 +-32 -77.0 +-32 15588.0 +-32 2925.0 +-32 -200.0 +-32 -3945.0 +-32 -7196.0 +-32 -7658.0 +-31 -200.0 +-31 2814.0 +-31 -200.0 +-31 -200.0 +-31 5562.0 +-31 -89.0 +-31 -200.0 +-31 2353.0 +-31 -7196.0 +-31 -1107.0 +-31 3834.0 +-31 10131.0 +-31 -200.0 +-31 -7196.0 +-31 2494.0 +-31 -7196.0 +-31 -3205.0 +-31 -9171.0 +-31 -10014.0 +-31 -200.0 +-31 -200.0 +-31 15601.0 +-31 -200.0 +-31 -200.0 +-31 15601.0 +-31 15601.0 +-31 15601.0 +-31 -200.0 +-31 15601.0 +-31 15601.0 +-31 5792.0 +-31 1743.0 +-31 1965.0 +-31 -15915.0 +-31 6654.0 +-31 15601.0 +-31 1674.0 +-31 -7196.0 +-31 15601.0 +-31 -7151.0 +-31 -12449.0 +-31 -7196.0 +-31 15678.0 +-31 15601.0 +-31 -12295.0 +-31 15601.0 +-31 15601.0 +-31 15601.0 +-31 15601.0 +-31 -3899.0 +-31 -200.0 +-30 15092.0 +-30 -6745.0 +-30 15601.0 +-30 15601.0 +-30 12227.0 +-30 4997.0 +-30 15601.0 +-30 -7196.0 +-30 -7196.0 +-30 -200.0 +-30 15601.0 +-30 -14863.0 +-30 -200.0 +-30 -7196.0 +-30 -200.0 +-30 510.0 +-30 -7196.0 +-30 10496.0 +-30 -200.0 +-30 -7196.0 +-30 -200.0 +-30 -7196.0 +-30 15601.0 +-30 -180.0 +-30 -200.0 +-30 -200.0 +-30 7812.0 +-30 10058.0 +-30 -200.0 +-30 12060.0 +-30 -200.0 +-30 15601.0 +-30 13978.0 +-30 15456.0 +-30 834.0 +-30 2696.0 +-30 15601.0 +-30 -2305.0 +-30 13677.0 +-30 -14213.0 +-30 -200.0 +-30 15601.0 +-30 -7196.0 +-30 15516.0 +-30 4096.0 +-30 -13474.0 +-30 4983.0 +-30 25.0 +-30 -200.0 +-29 -1847.0 +-29 -200.0 +-29 -200.0 +-29 -7196.0 +-29 15601.0 +-29 6346.0 +-29 15601.0 +-29 -7196.0 +-29 -7196.0 +-29 -200.0 +-29 -8118.0 +-29 -200.0 +-29 -8059.0 +-29 -11229.0 +-29 -9548.0 +-29 -7196.0 +-29 -3526.0 +-29 -14747.0 +-29 15601.0 +-29 -7196.0 +-29 -7196.0 +-29 -632.0 +-29 -3470.0 +-29 -7196.0 +-29 4336.0 +-29 -9787.0 +-29 -11044.0 +-29 15601.0 +-29 4977.0 +-29 -7196.0 +-29 -200.0 +-29 -2538.0 +-29 11767.0 +-29 -7196.0 +-29 -3806.0 +-29 -9198.0 +-29 15601.0 +-29 -200.0 +-29 -4381.0 +-29 15601.0 +-29 -10073.0 +-29 -200.0 +-29 -7196.0 +-29 -7196.0 +-29 9052.0 +-29 10452.0 +-29 5214.0 +-29 15601.0 +-29 -7196.0 +-29 15601.0 +-29 7538.0 +-29 7022.0 +-29 11977.0 +-29 15601.0 +-29 -200.0 +-29 -7196.0 +-28 15601.0 +-28 6453.0 +-28 -200.0 +-28 2676.0 +-28 -7978.0 +-28 15601.0 +-28 -200.0 +-28 15601.0 +-28 -12576.0 +-28 15601.0 +-28 -7196.0 +-28 -200.0 +-28 377.0 +-28 -15053.0 +-28 7616.0 +-28 -7196.0 +-28 -7830.0 +-28 11083.0 +-28 -7196.0 +-28 13783.0 +-28 5259.0 +-28 7238.0 +-28 -200.0 +-28 14073.0 +-28 -200.0 +-28 15601.0 +-28 -7196.0 +-28 -14926.0 +-28 15601.0 +-28 -13413.0 +-28 -200.0 +-28 7302.0 +-28 1626.0 +-28 -7196.0 +-28 -200.0 +-28 -200.0 +-28 13833.0 +-28 11833.0 +-28 15601.0 +-28 -7196.0 +-28 -200.0 +-28 -7196.0 +-28 -200.0 +-28 -15813.0 +-28 -7196.0 +-28 -7196.0 +-28 -200.0 +-27 -7196.0 +-27 -8270.0 +-27 12272.0 +-27 15601.0 +-27 15601.0 +-27 -200.0 +-27 -14429.0 +-27 -14252.0 +-27 -200.0 +-27 1346.0 +-27 -7196.0 +-27 -340.0 +-27 -481.0 +-27 10096.0 +-27 -11414.0 +-27 5369.0 +-27 2488.0 +-27 -200.0 +-27 -7196.0 +-27 -200.0 +-27 15601.0 +-27 -7196.0 +-27 -7196.0 +-27 11847.0 +-27 -3445.0 +-27 6103.0 +-27 -7196.0 +-27 5716.0 +-27 15601.0 +-27 -14984.0 +-27 -5037.0 +-27 -2513.0 +-27 15601.0 +-27 -7196.0 +-27 -200.0 +-27 -200.0 +-27 -7196.0 +-27 -328.0 +-27 -200.0 +-27 -200.0 +-27 -381.0 +-27 -200.0 +-26 10725.0 +-26 -200.0 +-26 -200.0 +-26 -200.0 +-26 12339.0 +-26 -15537.0 +-26 -1584.0 +-26 -10326.0 +-26 -200.0 +-26 15601.0 +-26 -7196.0 +-26 -7196.0 +-26 -12669.0 +-26 15601.0 +-26 15443.0 +-26 -200.0 +-26 15601.0 +-26 -7196.0 +-26 15601.0 +-26 -7196.0 +-26 15601.0 +-26 15601.0 +-26 -200.0 +-26 -200.0 +-26 -10275.0 +-26 15601.0 +-26 -3826.0 +-26 -14918.0 +-26 15601.0 +-26 2492.0 +-26 -7196.0 +-26 -15686.0 +-26 -200.0 +-26 -12287.0 +-26 15601.0 +-26 15601.0 +-26 -9207.0 +-26 -200.0 +-26 -10802.0 +-25 13539.0 +-25 -200.0 +-25 -13701.0 +-25 -200.0 +-25 2824.0 +-25 -15862.0 +-25 15601.0 +-25 15601.0 +-25 15601.0 +-25 15601.0 +-25 -6270.0 +-25 -200.0 +-25 16338.0 +-25 15601.0 +-25 340.0 +-25 -7196.0 +-25 4197.0 +-25 -7196.0 +-25 -200.0 +-25 -7196.0 +-25 -200.0 +-25 4828.0 +-25 -7196.0 +-25 -12673.0 +-25 -8774.0 +-25 -2631.0 +-25 -7196.0 +-25 436.0 +-25 2922.0 +-25 11771.0 +-25 -3113.0 +-25 4696.0 +-25 -200.0 +-25 15601.0 +-25 15601.0 +-25 -14017.0 +-25 13605.0 +-25 15601.0 +-25 -6408.0 +-25 14709.0 +-25 -10085.0 +-25 -200.0 +-25 -7196.0 +-25 11528.0 +-25 8201.0 +-25 -200.0 +-24 -200.0 +-24 15601.0 +-24 -200.0 +-24 -7196.0 +-24 1202.0 +-24 15601.0 +-24 163.0 +-24 -200.0 +-24 15601.0 +-24 -200.0 +-24 1151.0 +-24 -7932.0 +-24 7651.0 +-24 15601.0 +-24 -6966.0 +-24 11334.0 +-24 -200.0 +-24 -16311.0 +-24 -3010.0 +-24 -10238.0 +-24 15601.0 +-24 -15613.0 +-24 12322.0 +-24 -10501.0 +-24 -4895.0 +-24 -3842.0 +-24 -7196.0 +-24 15601.0 +-24 14043.0 +-24 -492.0 +-24 3944.0 +-24 -7196.0 +-24 -15709.0 +-24 15180.0 +-24 -906.0 +-24 -7196.0 +-24 -5651.0 +-24 -7196.0 +-24 -200.0 +-24 -7196.0 +-24 5645.0 +-24 -7196.0 +-24 10273.0 +-24 -200.0 +-24 -11979.0 +-24 1967.0 +-23 909.0 +-23 -7196.0 +-23 -200.0 +-23 13209.0 +-23 -200.0 +-23 2109.0 +-23 15601.0 +-23 15601.0 +-23 -7196.0 +-23 4977.0 +-23 -7196.0 +-23 -200.0 +-23 -10360.0 +-23 15601.0 +-23 -7196.0 +-23 15601.0 +-23 -1038.0 +-23 6866.0 +-23 -9527.0 +-23 -7196.0 +-23 -4253.0 +-23 9828.0 +-23 -13011.0 +-23 -6184.0 +-23 1028.0 +-23 -8260.0 +-23 15601.0 +-23 10227.0 +-23 1706.0 +-23 -200.0 +-23 8896.0 +-23 -10154.0 +-23 -14261.0 +-23 -7196.0 +-23 -7196.0 +-23 -4310.0 +-23 -10707.0 +-23 -8240.0 +-23 -7196.0 +-23 -5134.0 +-23 -16355.0 +-23 15601.0 +-23 -200.0 +-23 893.0 +-23 15601.0 +-23 -7196.0 +-23 15601.0 +-23 15601.0 +-23 14562.0 +-23 -200.0 +-23 -200.0 +-23 15601.0 +-23 -200.0 +-23 13026.0 +-23 -7196.0 +-23 -2409.0 +-23 -200.0 +-23 -200.0 +-23 4587.0 +-23 -200.0 +-23 -200.0 +-23 -200.0 +-23 -200.0 +-23 15601.0 +-23 -863.257 +-23 15601.0 +-23 -12582.0 +-23 -7196.0 +-23 3145.0 +-23 16368.0 +-23 -15770.0 +-23 8941.0 +-23 15601.0 +-23 -200.0 +-23 -2790.0 +-23 -7196.0 +-22 -7196.0 +-22 15601.0 +-22 -200.0 +-22 15601.0 +-22 -200.0 +-22 -7196.0 +-22 15601.0 +-22 -1356.0 +-22 -200.0 +-22 -200.0 +-22 -7196.0 +-22 -7196.0 +-22 8365.0 +-22 56.0 +-22 -12518.0 +-22 -7196.0 +-22 -6337.0 +-22 -2973.0 +-22 3856.0 +-22 15601.0 +-22 2192.0 +-22 -7196.0 +-22 7375.0 +-22 -200.0 +-22 -7196.0 +-22 15601.0 +-22 8084.0 +-22 -1043.0 +-22 8499.0 +-22 77.0 +-22 15601.0 +-22 9433.0 +-22 -7196.0 +-22 -9511.0 +-22 1824.0 +-22 -7196.0 +-22 -7196.0 +-22 -14701.0 +-22 -200.0 +-22 7457.0 +-22 -5160.0 +-22 3522.0 +-22 -200.0 +-22 15601.0 +-22 -200.0 +-22 15601.0 +-22 8784.0 +-22 15601.0 +-22 15601.0 +-22 10129.0 +-21 -7196.0 +-21 -7196.0 +-21 -7196.0 +-21 -7196.0 +-21 -7196.0 +-21 -1569.0 +-21 3168.0 +-21 -15435.0 +-21 -7183.0 +-21 4245.0 +-21 15601.0 +-21 -12423.0 +-21 15601.0 +-21 -2735.0 +-21 15601.0 +-21 -8141.0 +-21 15601.0 +-21 15601.0 +-21 15601.0 +-21 13720.0 +-21 15601.0 +-21 15601.0 +-21 15601.0 +-21 -200.0 +-21 8096.0 +-21 -200.0 +-21 -200.0 +-21 -13662.0 +-21 14318.0 +-21 -1735.0 +-21 546.0 +-21 -7882.0 +-21 -16017.0 +-21 -200.0 +-21 -200.0 +-21 -200.0 +-21 -200.0 +-21 -200.0 +-21 -200.0 +-21 -11492.0 +-21 -12463.0 +-21 1050.0 +-21 -7196.0 +-21 -7196.0 +-21 -7196.0 +-21 13684.0 +-21 -9086.0 +-21 1752.0 +-21 3847.0 +-21 -7196.0 +-21 -1092.0 +-21 11231.0 +-21 3805.0 +-21 -10764.0 +-21 -7196.0 +-21 -7196.0 +-21 -7196.0 +-21 -7196.0 +-20 -1245.0 +-20 -7196.0 +-20 15601.0 +-20 -7196.0 +-20 15601.0 +-20 4003.0 +-20 -16123.0 +-20 15601.0 +-20 -7627.0 +-20 -7196.0 +-20 15601.0 +-20 -5984.0 +-20 15601.0 +-20 -4578.0 +-20 -8583.0 +-20 -7196.0 +-20 12880.0 +-20 -5089.0 +-20 -7196.0 +-20 -200.0 +-20 -200.0 +-20 6793.0 +-20 -12154.0 +-20 -7196.0 +-20 15601.0 +-20 -7196.0 +-20 15601.0 +-20 2157.0 +-20 -200.0 +-20 -15809.0 +-20 -200.0 +-20 7902.0 +-20 1270.0 +-20 -7196.0 +-20 15601.0 +-20 -3860.0 +-20 -7196.0 +-20 -7196.0 +-20 -200.0 +-20 -200.0 +-20 15601.0 +-20 -12791.0 +-20 -200.0 +-20 2171.0 +-20 1135.0 +-20 -7196.0 +-20 -7196.0 +-20 3971.0 +-20 -16126.0 +-20 15601.0 +-20 7162.0 +-20 -4577.0 +-20 -16048.0 +-20 15601.0 +-19 8703.0 +-19 -200.0 +-19 -15935.0 +-19 -6962.0 +-19 -200.0 +-19 8.0 +-19 15601.0 +-19 15601.0 +-19 9455.0 +-19 -7196.0 +-19 15601.0 +-19 -13785.0 +-19 -7196.0 +-19 15601.0 +-19 -7727.0 +-19 -3084.0 +-19 -200.0 +-19 -7196.0 +-19 -11063.0 +-19 -15511.0 +-19 14547.0 +-19 2928.0 +-19 645.0 +-19 -9012.0 +-19 -200.0 +-19 -7196.0 +-19 9227.0 +-19 -8434.0 +-19 15601.0 +-19 -200.0 +-19 3805.0 +-19 -8673.0 +-19 15601.0 +-19 15601.0 +-19 -7196.0 +-19 15601.0 +-19 -1958.0 +-19 15601.0 +-19 -200.0 +-19 -7196.0 +-19 -4992.0 +-19 -200.0 +-19 15601.0 +-19 -200.0 +-19 -200.0 +-19 -7196.0 +-19 16232.0 +-19 11092.0 +-19 2403.0 +-19 -14301.0 +-19 1206.0 +-19 15601.0 +-19 15601.0 +-19 -200.0 +-19 -7196.0 +-18 12400.0 +-18 -200.0 +-18 15601.0 +-18 -9319.0 +-18 -200.0 +-18 -7196.0 +-18 -7196.0 +-18 14084.0 +-18 15601.0 +-18 5661.0 +-18 15601.0 +-18 -200.0 +-18 -260.0 +-18 -7963.0 +-18 -12079.0 +-18 1128.0 +-18 15601.0 +-18 -14863.0 +-18 -200.0 +-18 -12075.0 +-18 12940.0 +-18 -7196.0 +-18 -7196.0 +-18 14899.0 +-18 15234.0 +-18 -7196.0 +-18 -5047.0 +-18 -9141.0 +-18 -13626.0 +-18 7249.0 +-18 -200.0 +-18 -7196.0 +-18 -7196.0 +-18 -7196.0 +-18 -200.0 +-18 -3569.0 +-18 13387.0 +-18 1097.0 +-18 -7196.0 +-18 -2455.0 +-18 -200.0 +-18 -1242.0 +-18 11625.0 +-18 -7196.0 +-18 15601.0 +-18 10592.0 +-18 15601.0 +-18 -7196.0 +-17 -5079.0 +-17 -3901.0 +-17 -7196.0 +-17 -12966.0 +-17 -15699.0 +-17 15601.0 +-17 15601.0 +-17 -4147.0 +-17 -200.0 +-17 -200.0 +-17 5241.0 +-17 15985.0 +-17 -200.0 +-17 -7196.0 +-17 -200.0 +-17 14404.0 +-17 -200.0 +-17 -200.0 +-17 15340.0 +-17 -7196.0 +-17 -9382.0 +-17 -7196.0 +-17 -15922.0 +-17 15541.0 +-17 -14659.0 +-17 8386.0 +-17 -3468.0 +-17 -7649.0 +-17 -1453.0 +-17 -7196.0 +-17 -7196.0 +-17 15601.0 +-17 -200.0 +-17 -2316.0 +-17 15254.0 +-17 -200.0 +-17 15601.0 +-16 15601.0 +-16 13422.0 +-16 15601.0 +-16 5977.0 +-16 -12384.0 +-16 15601.0 +-16 -7196.0 +-16 15601.0 +-16 8142.0 +-16 -200.0 +-16 9892.0 +-16 4539.0 +-16 14076.0 +-16 -200.0 +-16 -5655.0 +-16 3248.0 +-16 12181.0 +-16 -200.0 +-16 -200.0 +-16 -6922.0 +-16 -200.0 +-16 -200.0 +-16 -7196.0 +-16 -200.0 +-16 32.0 +-16 -200.0 +-16 -7196.0 +-16 -7196.0 +-16 -7196.0 +-16 -200.0 +-16 15601.0 +-16 -7196.0 +-16 -13020.0 +-16 10553.0 +-16 -15154.0 +-16 -200.0 +-16 11080.0 +-16 -7964.0 +-16 3211.0 +-16 15601.0 +-16 -7196.0 +-16 -4965.0 +-16 -200.0 +-16 2933.0 +-16 15601.0 +-16 -200.0 +-16 11350.0 +-15 -200.0 +-15 -7196.0 +-15 15601.0 +-15 10520.0 +-15 14626.0 +-15 -7196.0 +-15 3152.0 +-15 15601.0 +-15 -200.0 +-15 -9108.0 +-15 99.0 +-15 -5745.0 +-15 -2770.0 +-15 -16036.0 +-15 15601.0 +-15 7813.0 +-15 13717.0 +-15 -7196.0 +-15 15601.0 +-15 1931.0 +-15 4207.0 +-15 -7196.0 +-15 -8756.0 +-15 15601.0 +-15 -200.0 +-15 -7196.0 +-15 -200.0 +-15 6311.0 +-15 -7196.0 +-15 -7196.0 +-15 15601.0 +-15 15601.0 +-15 -7331.0 +-15 6506.0 +-15 13087.0 +-15 -13729.0 +-15 -1159.0 +-15 -200.0 +-15 8270.0 +-15 -3872.0 +-15 -7934.0 +-15 -7196.0 +-15 -8278.0 +-15 11935.0 +-14 -200.0 +-14 -7196.0 +-14 -7196.0 +-14 15601.0 +-14 15601.0 +-14 15242.0 +-14 8740.0 +-14 10310.0 +-14 8841.0 +-14 -13884.0 +-14 -200.0 +-14 -12310.0 +-14 15601.0 +-14 10394.0 +-14 3694.0 +-14 13802.0 +-14 15601.0 +-14 15601.0 +-14 -7196.0 +-14 -200.0 +-14 -200.0 +-14 -3564.0 +-14 -9862.0 +-14 15601.0 +-14 -11979.0 +-14 9929.0 +-14 15601.0 +-14 14778.0 +-14 -7196.0 +-14 4033.0 +-14 15601.0 +-14 -5996.0 +-14 -200.0 +-14 15601.0 +-14 -5899.0 +-14 -7196.0 +-14 11411.0 +-14 -1352.0 +-14 -7196.0 +-14 9063.0 +-14 -12792.0 +-14 -7196.0 +-14 -7196.0 +-14 -6247.0 +-13 10304.0 +-13 -7196.0 +-13 5484.0 +-13 -6657.0 +-13 -200.0 +-13 -8135.0 +-13 15601.0 +-13 15601.0 +-13 -7196.0 +-13 -10015.0 +-13 -313.0 +-13 -1041.0 +-13 -200.0 +-13 -13372.0 +-13 -7196.0 +-13 15601.0 +-13 -200.0 +-13 -7196.0 +-13 -200.0 +-13 -200.0 +-13 15601.0 +-13 7497.0 +-13 -7196.0 +-13 -6193.0 +-13 -7196.0 +-13 -6961.0 +-13 -15446.0 +-13 -2058.0 +-13 7477.0 +-13 6790.0 +-13 -2731.0 +-13 -7196.0 +-13 15601.0 +-13 -7196.0 +-13 -11716.0 +-13 14569.0 +-13 -11497.0 +-13 -1746.0 +-13 -7196.0 +-13 -200.0 +-13 -7196.0 +-13 -348.0 +-13 2592.0 +-13 4306.0 +-13 -200.0 +-13 15958.0 +-13 8046.0 +-13 3799.0 +-13 15601.0 +-13 -7196.0 +-13 3437.0 +-13 -1898.0 +-13 -7196.0 +-13 -7196.0 +-13 15625.0 +-13 -7196.0 +-13 -6940.0 +-13 15601.0 +-12 -16221.0 +-12 -16373.0 +-12 -7706.0 +-12 9720.0 +-12 -7196.0 +-12 1126.0 +-12 -13707.0 +-12 -8674.0 +-12 14120.0 +-12 -7196.0 +-12 7212.0 +-12 -200.0 +-12 -2781.0 +-12 15601.0 +-12 -7196.0 +-12 -200.0 +-12 -2013.0 +-12 15601.0 +-12 14143.0 +-12 15601.0 +-12 -7196.0 +-12 5663.0 +-12 659.0 +-12 14347.0 +-12 -200.0 +-12 -200.0 +-12 -7196.0 +-12 15601.0 +-12 15601.0 +-12 -13489.0 +-12 -666.0 +-12 -7196.0 +-12 15601.0 +-12 15601.0 +-12 -6807.0 +-12 -1268.0 +-12 -2808.0 +-12 -8151.0 +-12 10558.0 +-11 -9123.0 +-11 10666.0 +-11 2601.0 +-11 -15659.0 +-11 -9944.0 +-11 -200.0 +-11 15601.0 +-11 9472.0 +-11 -7196.0 +-11 15601.0 +-11 16189.0 +-11 15601.0 +-11 -4432.0 +-11 -7196.0 +-11 13678.0 +-11 7476.0 +-11 15601.0 +-11 5814.0 +-11 -200.0 +-11 15754.0 +-11 15655.0 +-11 -7196.0 +-11 7731.0 +-11 10538.0 +-11 -1379.0 +-11 15601.0 +-11 -200.0 +-11 15119.0 +-11 -200.0 +-11 -1246.0 +-11 -14592.0 +-11 -7196.0 +-11 -12423.0 +-11 12291.0 +-11 12078.0 +-11 13259.0 +-11 15601.0 +-11 -200.0 +-11 -200.0 +-11 -8613.0 +-11 -15431.0 +-11 15601.0 +-11 4977.0 +-11 15601.0 +-11 15601.0 +-11 283.0 +-11 15601.0 +-11 -7196.0 +-11 1781.0 +-11 9842.0 +-11 -14909.0 +-11 12593.0 +-11 15601.0 +-11 -7067.0 +-11 15601.0 +-11 15601.0 +-10 -200.0 +-10 -200.0 +-10 -1427.0 +-10 2310.0 +-10 -14578.0 +-10 9243.0 +-10 -13894.0 +-10 1809.0 +-10 -7196.0 +-10 13893.0 +-10 15601.0 +-10 4662.0 +-10 -7226.0 +-10 -7196.0 +-10 -7196.0 +-10 -7196.0 +-10 12778.0 +-10 -7196.0 +-10 -9269.0 +-10 -13191.0 +-10 14410.0 +-10 3220.0 +-10 13078.0 +-10 1764.0 +-10 15601.0 +-10 -4489.0 +-10 -7196.0 +-10 -7727.0 +-10 -15384.0 +-10 -7196.0 +-10 -7196.0 +-10 -200.0 +-10 -14894.0 +-10 5495.0 +-10 15601.0 +-10 -1077.0 +-10 -11983.0 +-10 -200.0 +-10 -200.0 +-10 -200.0 +-10 -200.0 +-10 -200.0 +-10 -200.0 +-10 -200.0 +-10 -2206.0 +-10 -12023.0 +-10 15601.0 +-10 13495.0 +-10 15601.0 +-10 -7196.0 +-10 -200.0 +-10 -200.0 +-10 -200.0 +-10 -200.0 +-10 -200.0 +-10 15601.0 +-10 -8148.0 +-10 -200.0 +-10 1627.0 +-9 12781.0 +-9 12348.0 +-9 3768.0 +-9 -3493.0 +-9 -200.0 +-9 -7196.0 +-9 15764.0 +-9 15601.0 +-9 15601.0 +-9 6036.0 +-9 -15329.0 +-9 -200.0 +-9 6658.0 +-9 -1597.0 +-9 8580.0 +-9 -11797.0 +-9 -200.0 +-9 -200.0 +-9 -7107.0 +-9 2389.0 +-9 -7196.0 +-9 -200.0 +-9 -200.0 +-9 15601.0 +-9 -11480.0 +-9 10576.0 +-9 13411.0 +-9 -7196.0 +-9 7290.0 +-9 -200.0 +-9 3908.0 +-9 -200.0 +-9 -446.0 +-9 -9566.0 +-9 -200.0 +-9 -200.0 +-9 -922.0 +-9 -7196.0 +-9 -6808.0 +-9 15601.0 +-9 -6134.0 +-9 -6269.0 +-9 -7196.0 +-9 9447.0 +-9 4228.0 +-9 15601.0 +-9 15601.0 +-9 -338.0 +-9 15601.0 +-9 -7196.0 +-9 -1681.0 +-9 -12934.0 +-9 -200.0 +-9 7442.0 +-9 -7196.0 +-9 -200.0 +-9 15601.0 +-9 -13693.0 +-9 15601.0 +-9 -7196.0 +-8 15601.0 +-8 -7196.0 +-8 -7196.0 +-8 -14459.0 +-8 6036.0 +-8 -11137.0 +-8 15601.0 +-8 -2269.0 +-8 15601.0 +-8 8076.0 +-8 -8229.0 +-8 -200.0 +-8 -200.0 +-8 -3516.0 +-8 -200.0 +-8 -14678.0 +-8 -7196.0 +-8 15601.0 +-8 -200.0 +-8 -389.0 +-8 15601.0 +-8 9100.0 +-8 15601.0 +-8 1562.0 +-8 -7196.0 +-8 15601.0 +-8 -200.0 +-8 4368.0 +-8 15601.0 +-8 15601.0 +-8 -7196.0 +-8 -200.0 +-8 -7196.0 +-8 12870.0 +-8 15601.0 +-8 -13730.0 +-8 -7196.0 +-8 2844.0 +-8 12104.0 +-8 9883.0 +-8 15601.0 +-8 -3231.0 +-7 14195.0 +-7 -7196.0 +-7 15601.0 +-7 -7196.0 +-7 15601.0 +-7 15601.0 +-7 14900.0 +-7 9128.0 +-7 2997.0 +-7 -9837.0 +-7 8884.0 +-7 -13415.0 +-7 5240.0 +-7 -7196.0 +-7 -14433.0 +-7 15601.0 +-7 -7196.0 +-7 -200.0 +-7 -4509.0 +-7 -974.0 +-7 15601.0 +-7 -7196.0 +-7 -200.0 +-7 -1118.0 +-7 15601.0 +-7 -7196.0 +-7 9791.0 +-7 -14584.0 +-7 13093.0 +-7 -14015.0 +-7 -200.0 +-7 -7196.0 +-7 -2198.0 +-7 15601.0 +-7 15551.0 +-7 -7196.0 +-7 -7196.0 +-7 2541.0 +-7 -200.0 +-7 19.0 +-7 -6294.0 +-7 -200.0 +-7 -6115.0 +-7 11847.0 +-6 -12969.0 +-6 15601.0 +-6 15601.0 +-6 -200.0 +-6 -200.0 +-6 15601.0 +-6 -3906.0 +-6 -200.0 +-6 2443.0 +-6 -7196.0 +-6 -200.0 +-6 15601.0 +-6 -15980.0 +-6 2497.0 +-6 15601.0 +-6 -13107.0 +-6 -7196.0 +-6 1843.0 +-6 15601.0 +-6 -1625.0 +-6 -42.0 +-6 -14865.0 +-6 -3929.0 +-6 -7196.0 +-6 14343.0 +-6 -7196.0 +-6 5348.0 +-6 -7196.0 +-6 -13849.0 +-6 2006.0 +-6 -7523.0 +-6 -200.0 +-6 -200.0 +-6 4469.0 +-6 15601.0 +-6 -15935.0 +-6 -200.0 +-6 -13575.0 +-6 2496.0 +-6 -5444.0 +-6 -7196.0 +-6 8785.0 +-6 -200.0 +-6 -12130.0 +-6 -14030.0 +-6 15601.0 +-6 15601.0 +-6 -200.0 +-6 411.0 +-6 -7196.0 +-6 15601.0 +-6 1282.0 +-6 15601.0 +-6 16125.0 +-6 15601.0 +-6 15601.0 +-6 12581.0 +-6 -582.0 +-6 15605.0 +-6 -200.0 +-5 9393.0 +-5 15601.0 +-5 3730.0 +-5 -7196.0 +-5 -12675.0 +-5 -200.0 +-5 15601.0 +-5 -7196.0 +-5 -7196.0 +-5 -15780.0 +-5 -4911.0 +-5 15601.0 +-5 -5053.0 +-5 -15404.0 +-5 -1755.0 +-5 15601.0 +-5 15601.0 +-5 2925.0 +-5 -12337.0 +-5 15601.0 +-5 -7196.0 +-5 -1031.0 +-5 15601.0 +-5 -200.0 +-5 15601.0 +-5 -7196.0 +-5 14241.0 +-5 -7196.0 +-5 9001.0 +-5 -14379.0 +-5 12422.0 +-5 -200.0 +-5 15601.0 +-5 11150.0 +-5 -13229.0 +-5 -200.0 +-5 2719.0 +-5 -7196.0 +-5 15601.0 +-5 1232.0 +-5 15601.0 +-5 -987.0 +-5 -15221.0 +-5 -8362.0 +-5 -9381.0 +-5 2775.0 +-5 -200.0 +-4 -7196.0 +-4 308.0 +-4 -6677.0 +-4 -7196.0 +-4 -200.0 +-4 15601.0 +-4 15601.0 +-4 15601.0 +-4 -7028.0 +-4 15601.0 +-4 -2873.0 +-4 -200.0 +-4 -13085.0 +-4 15601.0 +-4 6852.0 +-4 15601.0 +-4 -1027.0 +-4 15091.0 +-4 -200.0 +-4 10149.0 +-4 15601.0 +-4 -200.0 +-4 9786.0 +-4 11758.0 +-4 -11201.0 +-4 -16207.0 +-4 -7196.0 +-4 15601.0 +-4 15601.0 +-4 -200.0 +-4 -200.0 +-4 -200.0 +-4 -691.0 +-4 -200.0 +-4 15601.0 +-4 2617.0 +-4 -7196.0 +-4 -200.0 +-4 -554.0 +-4 -200.0 +-4 -7196.0 +-4 -200.0 +-4 -13874.0 +-4 390.0 +-4 -6411.0 +-4 -7196.0 +-4 -11897.0 +-4 -7196.0 +-4 -14173.0 +-3 -7196.0 +-3 -11659.0 +-3 -7196.0 +-3 -7196.0 +-3 -7196.0 +-3 15601.0 +-3 -200.0 +-3 -7374.0 +-3 -200.0 +-3 -2089.0 +-3 -7196.0 +-3 -2016.0 +-3 -815.0 +-3 -7196.0 +-3 -200.0 +-3 15601.0 +-3 9951.0 +-3 11886.0 +-3 -12981.0 +-3 -200.0 +-3 -8930.0 +-3 -7196.0 +-3 15601.0 +-3 1268.0 +-3 -2763.0 +-3 -200.0 +-3 -7196.0 +-3 11112.0 +-3 15601.0 +-3 -7196.0 +-3 -7196.0 +-3 -7196.0 +-3 -1103.0 +-3 15601.0 +-3 -13632.0 +-3 -14.0 +-3 -10119.0 +-3 -200.0 +-3 -200.0 +-3 15601.0 +-2 -7196.0 +-2 9987.0 +-2 -15555.0 +-2 15601.0 +-2 1467.0 +-2 -7196.0 +-2 -7196.0 +-2 -16277.0 +-2 15601.0 +-2 15969.0 +-2 9650.0 +-2 15601.0 +-2 -7196.0 +-2 15601.0 +-2 7574.0 +-2 -200.0 +-2 15601.0 +-2 -12222.0 +-2 -200.0 +-2 -7196.0 +-2 -6821.0 +-2 -7196.0 +-2 4087.0 +-2 15601.0 +-2 -7196.0 +-2 -11431.0 +-2 15601.0 +-2 13092.0 +-2 876.0 +-2 4579.0 +-2 -15903.0 +-2 -14837.0 +-2 15601.0 +-2 -10146.0 +-2 -7196.0 +-2 -10024.0 +-2 -200.0 +-2 -7196.0 +-2 -361.0 +-2 -5166.0 +-1 -5515.0 +-1 -7196.0 +-1 -9427.0 +-1 11343.0 +-1 -200.0 +-1 -1641.0 +-1 -8947.0 +-1 10285.0 +-1 -4204.0 +-1 -7196.0 +-1 -200.0 +-1 -863.257 +-1 15601.0 +-1 -7196.0 +-1 10284.0 +-1 -7196.0 +-1 15601.0 +-1 -4292.0 +-1 -200.0 +-1 2353.0 +-1 2643.0 +-1 10104.0 +-1 -15441.0 +-1 -1181.0 +-1 14609.0 +-1 14154.0 +-1 -200.0 +-1 2563.58 +-1 -14570.0 +-1 -2354.0 +-1 -3648.0 +-1 2563.58 +-1 14436.0 +-1 -7220.0 +-1 -2744.0 +-1 -863.257 +-1 -200.0 +-1 15601.0 +-1 2563.58 +-1 -200.0 +-1 8451.0 +-1 15601.0 +-1 -200.0 +-1 -200.0 +-1 -8809.0 +-1 -11527.0 +-1 12473.0 +-1 -200.0 +-1 15601.0 +-1 -1695.0 +-1 -2063.0 +-1 2563.58 +-1 15601.0 +-1 10601.0 +-1 -11525.0 +-1 15601.0 +0 15601.0 +0 -95.0 +0 7623.0 +0 15601.0 +0 15601.0 +0 15601.0 +0 -4321.0 +0 15601.0 +0 15601.0 +0 15601.0 +0 15601.0 +0 15601.0 +0 4388.0 +0 1049.0 +0 -200.0 +0 15601.0 +0 15601.0 +0 15601.0 +0 -200.0 +0 15601.0 +0 15227.0 +0 15193.0 +0 -5071.0 +0 -200.0 +0 -200.0 +0 -200.0 +0 7536.0 +0 -200.0 +0 -10805.0 +0 -200.0 +0 -200.0 +0 -13620.0 +0 -7366.0 +0 8091.0 +0 -2049.0 +0 -7196.0 +0 -7196.0 +0 -7196.0 +0 -10128.0 +0 1603.0 +0 9304.0 +0 -7196.0 +0 -7196.0 +0 -10411.0 +0 15626.0 +0 -14254.0 +0 -7196.0 +0 -3166.0 +0 13567.0 +0 15601.0 +0 102.0 +0 15601.0 +0 15601.0 +0 -9490.0 +1 14530.0 +1 15601.0 +1 -12267.0 +1 7847.0 +1 -6379.0 +1 15601.0 +1 -7196.0 +1 11494.0 +1 15082.0 +1 -7196.0 +1 15601.0 +1 14662.0 +1 -200.0 +1 11181.0 +1 -7196.0 +1 -200.0 +1 -7196.0 +1 11449.0 +1 6072.0 +1 -200.0 +1 15601.0 +1 -11861.0 +1 12170.0 +1 -200.0 +1 -7196.0 +1 -12641.0 +1 -7196.0 +1 15601.0 +1 6903.0 +1 -3257.0 +1 2211.0 +1 -14610.0 +1 -11237.0 +1 9168.0 +1 15601.0 +1 15601.0 +1 -14569.0 +1 -7196.0 +1 -7196.0 +1 1083.0 +1 -2882.0 +1 -8077.0 +1 -1175.0 +1 11333.0 +1 -7196.0 +1 6256.0 +1 7985.0 +1 -5868.0 +1 15601.0 +1 -200.0 +1 15601.0 +1 15601.0 +1 6554.0 +1 8523.0 +1 -7196.0 +2 -7196.0 +2 -7196.0 +2 15198.0 +2 3446.0 +2 -200.0 +2 15601.0 +2 -200.0 +2 -200.0 +2 -3664.0 +2 15298.0 +2 -4477.0 +2 -7196.0 +2 5892.0 +2 -15544.0 +2 10953.0 +2 15601.0 +2 -10993.0 +2 -200.0 +2 -7196.0 +2 15601.0 +2 10637.0 +2 5929.0 +2 15749.0 +2 15601.0 +2 15601.0 +2 -7196.0 +2 -665.0 +2 -5438.0 +2 -7196.0 +2 -7196.0 +2 -200.0 +2 -6861.0 +2 -200.0 +2 -200.0 +2 5383.0 +2 1345.0 +2 15601.0 +2 11391.0 +2 15601.0 +2 -200.0 +2 -7196.0 +2 -15066.0 +2 -200.0 +2 -10763.0 +2 -16227.0 +2 -200.0 +2 -7196.0 +2 15601.0 +2 11641.0 +2 -7196.0 +2 14247.0 +2 -200.0 +2 15601.0 +2 -12026.0 +2 15601.0 +2 -12315.0 +3 15232.0 +3 -13546.0 +3 -7196.0 +3 -7196.0 +3 -10609.0 +3 -7196.0 +3 16127.0 +3 -4644.0 +3 15601.0 +3 15601.0 +3 11675.0 +3 -7196.0 +3 15436.0 +3 9857.0 +3 -4245.0 +3 -7196.0 +3 5130.0 +3 -200.0 +3 -7196.0 +3 15726.0 +3 -11082.0 +3 -16339.0 +3 -2153.0 +3 11534.0 +3 -16305.0 +3 -12128.0 +3 -7196.0 +3 -5705.0 +3 -9775.0 +3 8063.0 +3 14909.0 +3 2359.0 +3 1822.0 +3 15601.0 +3 -5829.0 +3 -1102.0 +3 -11549.0 +3 15601.0 +3 -7196.0 +3 15601.0 +3 -3448.0 +3 16096.0 +3 2075.0 +3 -10446.0 +3 -7196.0 +3 -200.0 +3 -200.0 +4 8340.0 +4 15601.0 +4 -6720.0 +4 14536.0 +4 -200.0 +4 -7196.0 +4 -200.0 +4 -4904.0 +4 -15919.0 +4 -6257.0 +4 15601.0 +4 5707.0 +4 -15764.0 +4 -7617.0 +4 -200.0 +4 -200.0 +4 -7196.0 +4 1901.0 +4 15601.0 +4 -7196.0 +4 -5117.0 +4 -8752.0 +4 -7523.0 +4 15601.0 +4 15601.0 +4 7648.0 +4 -7196.0 +4 -3967.0 +4 -10617.0 +4 -200.0 +4 -5588.0 +4 -7196.0 +4 15601.0 +4 3725.0 +4 -7196.0 +4 -200.0 +4 -200.0 +4 -200.0 +4 -490.0 +4 -200.0 +4 -7196.0 +4 15601.0 +4 -200.0 +4 -15999.0 +4 -200.0 +4 -200.0 +4 -7196.0 +4 -14739.0 +4 7287.0 +4 15601.0 +4 -200.0 +4 -11818.0 +4 14548.0 +4 9351.0 +4 265.0 +4 -13427.0 +4 15601.0 +4 7972.0 +4 3030.0 +4 15601.0 +5 -9387.0 +5 -7196.0 +5 -12677.0 +5 -14146.0 +5 1496.0 +5 3722.0 +5 15601.0 +5 15601.0 +5 15601.0 +5 15112.0 +5 15601.0 +5 14605.0 +5 -2782.0 +5 12417.0 +5 10364.0 +5 15601.0 +5 10436.0 +5 3066.0 +5 9050.0 +5 -4315.0 +5 14625.0 +5 15601.0 +5 -7196.0 +5 9353.0 +5 -14261.0 +5 -7196.0 +5 -200.0 +5 4154.0 +5 15601.0 +5 -3667.0 +5 -7196.0 +5 5898.0 +5 15601.0 +5 15601.0 +5 2698.0 +5 6513.0 +5 -7196.0 +5 -7684.0 +5 -14483.0 +5 -15999.0 +5 -7475.0 +5 15601.0 +5 -7196.0 +5 15601.0 +5 -16169.0 +5 -11843.0 +5 10470.0 +5 -13545.0 +5 -7196.0 +5 -9615.0 +5 -200.0 +5 15601.0 +6 -13047.0 +6 -858.0 +6 6725.0 +6 -14003.0 +6 14907.0 +6 15601.0 +6 10312.0 +6 12529.0 +6 13192.0 +6 10548.0 +6 15921.0 +6 15375.0 +6 2396.0 +6 1310.0 +6 -200.0 +6 -200.0 +6 -401.0 +6 1845.0 +6 -3110.0 +6 -200.0 +6 -7196.0 +6 8301.0 +6 -200.0 +6 -200.0 +6 -15948.0 +6 15601.0 +6 -9292.0 +6 -11852.0 +6 -11982.0 +6 -8101.0 +6 -200.0 +6 15601.0 +6 15601.0 +6 9802.0 +6 15601.0 +6 -12573.0 +6 15601.0 +6 15601.0 +6 8.0 +6 15601.0 +6 -200.0 +6 -200.0 +6 7182.0 +6 6667.0 +6 -7196.0 +6 1246.0 +6 5851.0 +6 11359.0 +7 -200.0 +7 -200.0 +7 -6770.0 +7 5105.0 +7 -6538.0 +7 13748.0 +7 -13381.0 +7 15169.0 +7 4673.0 +7 -7196.0 +7 15601.0 +7 -200.0 +7 -7196.0 +7 -200.0 +7 13741.0 +7 -7196.0 +7 -200.0 +7 15601.0 +7 8487.0 +7 15601.0 +7 3617.0 +7 15601.0 +7 13347.0 +7 15601.0 +7 -200.0 +7 -15478.0 +7 2021.0 +7 12613.0 +7 15601.0 +7 -4759.0 +7 -200.0 +7 13338.0 +7 -14071.0 +7 -15839.0 +7 1512.0 +7 15601.0 +7 1356.0 +7 15601.0 +7 -200.0 +7 -11264.0 +7 14582.0 +7 -6206.0 +7 15601.0 +7 11319.0 +7 -2692.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 -7196.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 8448.0 +8 NULL +8 NULL +8 NULL +8 -200.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 -200.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 -200.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 -13684.0 +8 NULL +8 NULL +8 NULL +8 -200.0 +8 -200.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 5790.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 15601.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 -13924.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 -200.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 -200.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 15601.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 -200.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 -200.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 -200.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 -7268.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 -200.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 7787.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 -200.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 15601.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 15601.0 +8 NULL +8 NULL +8 NULL +8 -200.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 15601.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 15601.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 15601.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 15035.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 -1805.0 +8 4165.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 12531.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 239.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 -15158.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 15601.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 10230.0 +8 NULL +8 4783.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 -7196.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 15324.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 -7196.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 15601.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 2078.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 9360.0 +8 NULL +8 -5740.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 -296.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 -7196.0 +8 NULL +8 NULL +8 -7196.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 -7196.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 -7196.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 7860.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 10528.0 +8 NULL +8 NULL +8 NULL +8 -7196.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 -14772.0 +8 NULL +8 NULL +8 -15778.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 15699.0 +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +8 NULL +9 -12700.0 +9 -7196.0 +9 13008.0 +9 15601.0 +9 15601.0 +9 -200.0 +9 15601.0 +9 -200.0 +9 9924.0 +9 -13629.0 +9 -10991.0 +9 7552.0 +9 -7196.0 +9 6596.0 +9 -1728.0 +9 -8259.0 +9 -200.0 +9 15601.0 +9 15601.0 +9 5752.0 +9 15601.0 +9 -9329.0 +9 -200.0 +9 -200.0 +9 -6394.0 +9 16030.0 +9 15601.0 +9 -200.0 +9 13994.0 +9 -7196.0 +9 -200.0 +9 -7196.0 +9 -12859.0 +9 1228.0 +9 -7196.0 +9 -7196.0 +9 10198.0 +9 15601.0 +9 9169.0 +9 -12172.0 +9 -11633.0 +9 -200.0 +9 15601.0 +9 15616.0 +9 -7196.0 +9 11952.0 +9 -7196.0 +9 -2487.0 +9 15313.0 +9 -3891.0 +10 -7196.0 +10 12857.0 +10 3538.0 +10 -8742.0 +10 -6164.0 +10 15601.0 +10 -1791.0 +10 15601.0 +10 15601.0 +10 15601.0 +10 15601.0 +10 15601.0 +10 15601.0 +10 15038.0 +10 11595.0 +10 -12767.0 +10 3874.0 +10 -5238.0 +10 2580.0 +10 11443.0 +10 1458.0 +10 -6342.0 +10 9140.0 +10 -1974.0 +10 9373.0 +10 -7196.0 +10 -7196.0 +10 -7196.0 +10 -7196.0 +10 -7196.0 +10 -200.0 +10 -200.0 +10 -200.0 +10 -200.0 +10 -200.0 +10 -200.0 +10 -200.0 +10 -200.0 +10 -200.0 +10 -200.0 +10 -3611.0 +10 -13291.0 +10 -15887.0 +10 -5031.0 +10 -11076.0 +10 5085.0 +10 16055.0 +10 5568.0 +10 9366.0 +11 NULL +11 NULL +11 NULL +11 NULL +11 15601.0 +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 -7196.0 +11 -7196.0 +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 9801.0 +11 -7196.0 +11 -7196.0 +11 NULL +11 NULL +11 5885.0 +11 NULL +11 1542.0 +11 546.0 +11 NULL +11 8896.0 +11 762.0 +11 -2002.0 +11 NULL +11 NULL +11 NULL +11 NULL +11 -8255.0 +11 -7196.0 +11 NULL +11 -8268.0 +11 NULL +11 NULL +11 NULL +11 -7196.0 +11 2166.0 +11 -7196.0 +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 -14278.0 +11 NULL +11 13947.0 +11 NULL +11 NULL +11 NULL +11 6732.0 +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 3357.0 +11 10383.0 +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 -200.0 +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 -200.0 +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 -7196.0 +11 NULL +11 NULL +11 -113.0 +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 15601.0 +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 7891.0 +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 -2964.0 +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 -200.0 +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 15601.0 +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 11150.0 +11 -14696.0 +11 NULL +11 NULL +11 -8445.0 +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 -200.0 +11 NULL +11 15601.0 +11 NULL +11 NULL +11 NULL +11 15601.0 +11 15601.0 +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 -7196.0 +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 -10055.0 +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 15601.0 +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 4357.0 +11 15601.0 +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +11 -8887.0 +11 NULL +11 NULL +11 NULL +11 15601.0 +11 NULL +11 -6314.0 +11 15601.0 +11 NULL +11 NULL +11 NULL +11 NULL +11 NULL +12 15601.0 +12 15601.0 +12 -200.0 +12 447.0 +12 -200.0 +12 -200.0 +12 -200.0 +12 -200.0 +12 9182.0 +12 -7196.0 +12 -7196.0 +12 3885.0 +12 -5045.0 +12 -7196.0 +12 -13636.0 +12 -11396.0 +12 11246.0 +12 15965.0 +12 -12625.0 +12 -200.0 +12 -200.0 +12 -7196.0 +12 -7196.0 +12 9510.0 +12 15601.0 +12 2448.0 +12 -13266.0 +12 15601.0 +12 -200.0 +12 -200.0 +12 15601.0 +12 15601.0 +12 -14642.0 +12 -11339.0 +12 -771.0 +12 6300.0 +12 15601.0 +12 -4944.0 +12 1505.0 +12 -7196.0 +12 15601.0 +13 -13978.0 +13 -200.0 +13 -7196.0 +13 -200.0 +13 -8132.0 +13 11673.0 +13 8790.0 +13 1358.0 +13 8549.0 +13 -200.0 +13 -7196.0 +13 5290.0 +13 15601.0 +13 -1346.0 +13 7463.0 +13 -925.0 +13 -14771.0 +13 -200.0 +13 -7196.0 +13 -7196.0 +13 1850.0 +13 5211.0 +13 1642.0 +13 -200.0 +13 15601.0 +13 -5269.0 +13 -200.0 +13 3366.0 +13 1151.0 +13 7541.0 +13 -200.0 +13 1276.0 +13 -14386.0 +13 -200.0 +13 -7196.0 +13 9404.0 +13 15956.0 +13 -200.0 +13 15601.0 +13 -7196.0 +13 -200.0 +13 -11708.0 +13 15601.0 +13 4151.0 +13 -7018.0 +13 -5672.0 +14 -10581.0 +14 -12163.0 +14 2242.0 +14 -200.0 +14 -1264.0 +14 15601.0 +14 -7196.0 +14 -7196.0 +14 -200.0 +14 -7196.0 +14 -2530.0 +14 -11579.0 +14 -7196.0 +14 12935.0 +14 13613.0 +14 -388.0 +14 -200.0 +14 -11709.0 +14 15601.0 +14 15601.0 +14 -7196.0 +14 -200.0 +14 6048.0 +14 9365.0 +14 -13367.0 +14 15601.0 +14 7243.0 +14 -3606.0 +14 -8480.0 +14 -200.0 +14 15601.0 +14 15601.0 +14 -11974.0 +14 -10274.0 +14 -200.0 +14 -2396.0 +14 -200.0 +14 10723.0 +14 3794.0 +14 15401.0 +14 8950.0 +14 5451.0 +14 15752.0 +14 7661.0 +14 -7196.0 +14 -200.0 +14 -6524.0 +14 -7196.0 +14 -200.0 +14 5159.0 +14 -200.0 +15 -14696.0 +15 -6329.0 +15 15601.0 +15 15601.0 +15 -200.0 +15 -14695.0 +15 15601.0 +15 15601.0 +15 8340.0 +15 -4567.0 +15 15601.0 +15 11953.0 +15 15601.0 +15 15601.0 +15 -7196.0 +15 -7196.0 +15 14966.0 +15 15601.0 +15 -200.0 +15 -10480.0 +15 -200.0 +15 -200.0 +15 15601.0 +15 15601.0 +15 6380.0 +15 -200.0 +15 -200.0 +15 -200.0 +15 -16339.0 +15 -200.0 +15 15601.0 +15 -9891.0 +15 -7196.0 +15 -200.0 +15 2479.0 +15 -7196.0 +15 -2853.0 +15 9235.0 +15 8429.0 +15 -7196.0 +15 -7196.0 +15 10827.0 +15 -7196.0 +15 -7196.0 +15 -7196.0 +15 2404.0 +15 11286.0 +15 -7196.0 +15 -200.0 +15 -7196.0 +15 11459.0 +15 -12231.0 +15 -200.0 +15 7077.0 +15 -7196.0 +15 5406.0 +15 -11620.0 +15 3555.0 +15 -7196.0 +15 -200.0 +15 -12334.0 +15 -5048.0 +15 -2952.0 +15 -5395.0 +15 15601.0 +15 15601.0 +16 -200.0 +16 -200.0 +16 -2997.0 +16 9597.0 +16 7485.0 +16 -7196.0 +16 16232.0 +16 -200.0 +16 -14001.0 +16 -5045.0 +16 -7177.0 +16 -200.0 +16 -200.0 +16 7493.0 +16 -2195.0 +16 -7196.0 +16 -13955.0 +16 -12513.0 +16 15601.0 +16 15601.0 +16 -13569.0 +16 -200.0 +16 15601.0 +16 -7659.0 +16 5780.0 +16 -200.0 +16 15601.0 +16 -1740.0 +16 15745.0 +16 10321.0 +16 -10865.0 +16 15601.0 +16 -6076.0 +16 -3299.0 +16 -11594.0 +16 15593.0 +16 15601.0 +16 -7196.0 +16 10205.0 +16 9390.0 +16 -200.0 +16 -10387.0 +16 -7196.0 +16 15601.0 +16 -7196.0 +16 -7196.0 +16 -7196.0 +16 -13273.0 +16 15601.0 +17 13439.0 +17 9292.0 +17 2915.0 +17 -200.0 +17 -200.0 +17 -200.0 +17 -12992.0 +17 -200.0 +17 9402.0 +17 15601.0 +17 -200.0 +17 -200.0 +17 -200.0 +17 -200.0 +17 -6726.0 +17 14011.0 +17 -7196.0 +17 15601.0 +17 15601.0 +17 -200.0 +17 -7196.0 +17 15601.0 +17 6469.0 +17 9763215.5639 +17 -7876.0 +17 15601.0 +17 -13286.0 +17 -1560.0 +17 -7196.0 +17 15601.0 +17 15601.0 +17 15601.0 +17 -7196.0 +17 -7196.0 +17 -4895.0 +17 -11207.0 +17 -9017.0 +17 -3530.0 +17 15601.0 +17 7993.0 +17 -3651.0 +17 -16109.0 +17 -200.0 +17 -200.0 +17 15601.0 +17 -200.0 +17 6827.0 +17 -726.0 +17 -13978.0 +17 15601.0 +17 -200.0 +18 13350.0 +18 5025.0 +18 15601.0 +18 15601.0 +18 15601.0 +18 -5147.0 +18 -12080.0 +18 -200.0 +18 15601.0 +18 15601.0 +18 13825.0 +18 15601.0 +18 5885.0 +18 15601.0 +18 15601.0 +18 -7196.0 +18 -7196.0 +18 15601.0 +18 -200.0 +18 15601.0 +18 14744.0 +18 15601.0 +18 -7196.0 +18 -6467.0 +18 -11797.0 +18 15601.0 +18 10845.0 +18 -11717.0 +18 -200.0 +18 -200.0 +18 -7196.0 +18 15601.0 +18 -7196.0 +18 9059.0 +18 9922.0 +18 -7196.0 +18 -1131.0 +18 726.0 +18 -7196.0 +18 -200.0 +18 -3523.0 +18 -13966.0 +18 -15779.0 +18 -11497.0 +18 -12929.0 +18 -3045.0 +19 -2043.0 +19 8346.0 +19 -15156.0 +19 -7196.0 +19 14152.0 +19 15601.0 +19 -200.0 +19 -200.0 +19 6303.0 +19 13686.0 +19 14761.0 +19 -7196.0 +19 6246.0 +19 -200.0 +19 5847.0 +19 15601.0 +19 12183.0 +19 -200.0 +19 899.0 +19 -1270.0 +19 -200.0 +19 15601.0 +19 -200.0 +19 15601.0 +19 15601.0 +19 15601.0 +19 -200.0 +19 10912.0 +19 -7196.0 +19 -200.0 +19 15071.0 +19 15601.0 +19 -7196.0 +19 4322.0 +19 -200.0 +19 1419.0 +19 -200.0 +19 4292.0 +19 -12860.0 +19 7952.0 +19 -16049.0 +19 -15857.0 +20 -5813.0 +20 15014.0 +20 -200.0 +20 13169.0 +20 -200.0 +20 -7196.0 +20 -14127.0 +20 -7196.0 +20 -7196.0 +20 15601.0 +20 15601.0 +20 -4833.0 +20 15601.0 +20 -7128.0 +20 -7196.0 +20 130.0 +20 6228.0 +20 15601.0 +20 15601.0 +20 15325.0 +20 -11867.0 +20 -14041.0 +20 -4489.0 +20 -200.0 +20 -3897.0 +20 15601.0 +20 15601.0 +20 15601.0 +20 15601.0 +20 -7196.0 +20 15601.0 +20 -5207.0 +20 15601.0 +20 -15149.0 +20 3911.0 +20 15601.0 +20 -14686.0 +20 -200.0 +20 -6884.0 +20 -200.0 +20 -13464.0 +20 16280.0 +20 -200.0 +20 15601.0 +20 -9563.0 +21 15601.0 +21 -6183.0 +21 -7196.0 +21 15601.0 +21 -738.0 +21 -12737.0 +21 -13710.0 +21 -15931.0 +21 -200.0 +21 -200.0 +21 -7196.0 +21 1502.0 +21 2339.0 +21 7205.0 +21 14388.0 +21 -7196.0 +21 11737.0 +21 15601.0 +21 15601.0 +21 -3630.0 +21 -7196.0 +21 -7394.0 +21 15601.0 +21 -8917.0 +21 12936.0 +21 -7196.0 +21 10903.0 +21 9444.0 +21 -7196.0 +21 6663.0 +21 15601.0 +21 -7196.0 +21 -200.0 +21 1196.0 +21 -7761.0 +21 -200.0 +21 15601.0 +21 987.0 +21 -200.0 +21 -5114.0 +21 -200.0 +21 -7196.0 +21 -7196.0 +21 -10069.0 +21 13071.0 +21 15601.0 +22 -200.0 +22 15601.0 +22 14349.0 +22 -200.0 +22 15601.0 +22 -12757.0 +22 12291.0 +22 -200.0 +22 -200.0 +22 -6475.0 +22 15601.0 +22 10802.0 +22 -5343.0 +22 -200.0 +22 15601.0 +22 -2440.0 +22 -200.0 +22 -16280.0 +22 -200.0 +22 -7196.0 +22 -7196.0 +22 -332.0 +22 15601.0 +22 -14681.0 +22 -14573.0 +22 7179.0 +22 -7196.0 +22 -15303.0 +22 15601.0 +22 15601.0 +22 7828.0 +22 -15046.0 +22 -200.0 +22 6967.0 +22 -200.0 +22 8683.0 +22 -7689.0 +22 -7196.0 +22 15601.0 +22 -13985.0 +22 -7196.0 +22 -4899.0 +22 2227.0 +22 -7196.0 +22 -7196.0 +22 -7196.0 +22 6114.0 +22 -200.0 +22 -200.0 +22 -4549.0 +22 10174.0 +22 -7113.0 +22 -7842.0 +22 -7196.0 +23 -7196.0 +23 15601.0 +23 6838.0 +23 -15514.0 +23 15061.0 +23 -200.0 +23 -7196.0 +23 14822.0 +23 11059.0 +23 6935.0 +23 -8047.0 +23 6264.0 +23 1931.0 +23 -200.0 +23 15601.0 +23 -7196.0 +23 -11071.0 +23 -6866.0 +23 -7196.0 +23 -8904.0 +23 6546.0 +23 -200.0 +23 -200.0 +23 7007.0 +23 -1373.0 +23 -3502.0 +23 4008.0 +23 12526.0 +23 12176.0 +23 15601.0 +23 -7196.0 +23 15601.0 +23 -200.0 +23 8661.0 +23 3088.0 +23 -7196.0 +23 -1845.0 +23 -7196.0 +23 2284.0 +23 4495.0 +23 -200.0 +24 -200.0 +24 -5108.0 +24 -200.0 +24 -3837.0 +24 -7196.0 +24 -200.0 +24 6731.0 +24 -12718.0 +24 -4812.0 +24 -7196.0 +24 15601.0 +24 -9957.0 +24 -200.0 +24 -11504.0 +24 -13222.0 +24 7118.0 +24 -15086.0 +24 960.0 +24 -200.0 +24 -7863.0 +24 -11302.0 +24 16189.0 +24 8050.0 +24 -7196.0 +24 -2767.0 +24 -5375.0 +24 15601.0 +24 15601.0 +24 -200.0 +24 -7196.0 +24 -200.0 +24 4432.0 +24 13752.0 +24 5147.0 +24 15601.0 +24 -14700.0 +24 -6352.0 +24 12208.0 +24 15601.0 +24 -12830.0 +25 -7196.0 +25 -200.0 +25 -7196.0 +25 10807.0 +25 -7196.0 +25 15601.0 +25 15601.0 +25 -7196.0 +25 -7196.0 +25 15601.0 +25 -7196.0 +25 15601.0 +25 -200.0 +25 8505.0 +25 -7196.0 +25 -200.0 +25 -7196.0 +25 1785.0 +25 -7196.0 +25 7412.0 +25 -200.0 +25 8695.0 +25 -3177.0 +25 15601.0 +25 -7196.0 +25 -7196.0 +25 9740.0 +25 -7196.0 +25 -200.0 +25 15601.0 +25 -4462.0 +25 -200.0 +25 -7196.0 +25 3248.0 +25 -7196.0 +25 -7533.0 +25 -10702.0 +25 6616.0 +25 2578.0 +25 -7196.0 +25 10036.0 +25 8549.0 +25 -11349.0 +25 -7196.0 +25 12905.0 +25 -7196.0 +25 -10654.0 +25 -3915.0 +25 15601.0 +25 -220.0 +25 -200.0 +25 15601.0 +25 -9709.0 +25 13232.0 +25 3208.0 +26 -13997.0 +26 -5260.0 +26 1369.0 +26 15242.0 +26 6297.0 +26 15601.0 +26 3961.0 +26 -200.0 +26 -11346.0 +26 -200.0 +26 -6733.0 +26 -14511.0 +26 -200.0 +26 -5349.0 +26 -10662.0 +26 15601.0 +26 15601.0 +26 -1954.0 +26 14191.0 +26 -200.0 +26 3199.0 +26 -14516.0 +26 -10334.0 +26 15601.0 +26 -7196.0 +26 -7196.0 +26 15601.0 +26 -200.0 +26 -200.0 +26 -200.0 +26 15601.0 +26 -7196.0 +26 -7167.0 +26 -200.0 +26 -7196.0 +26 -7196.0 +26 -7196.0 +26 -7196.0 +26 997.0 +26 -4796.0 +26 -7196.0 +26 -7196.0 +26 4264.0 +26 -7196.0 +26 -11840.0 +26 7316.0 +26 -7196.0 +26 15601.0 +26 -10732.0 +26 -200.0 +26 15512.0 +26 -7196.0 +26 -12320.0 +26 -3332.0 +26 -2118.0 +26 -7249.0 +26 -8133.0 +27 -1702.0 +27 14933.0 +27 -1827.0 +27 8347.0 +27 -14293.0 +27 15601.0 +27 -200.0 +27 -13899.0 +27 -200.0 +27 3945.0 +27 -6937.0 +27 -9145.0 +27 -6287.0 +27 5248.0 +27 -7196.0 +27 2752.0 +27 -12878.0 +27 -7196.0 +27 -3523.0 +27 -14965.0 +27 -200.0 +27 -7196.0 +27 10401.0 +27 15601.0 +27 -12076.0 +27 -6874.0 +27 15601.0 +27 15601.0 +27 1455.0 +27 6849.0 +27 5323.0 +27 -8759.0 +27 15601.0 +27 11811.0 +27 -7196.0 +27 15601.0 +27 -7196.0 +27 -7824.0 +27 -7196.0 +28 15601.0 +28 -7196.0 +28 -200.0 +28 6349.0 +28 15601.0 +28 -8609.0 +28 -10218.0 +28 -200.0 +28 -7196.0 +28 15601.0 +28 15601.0 +28 -7196.0 +28 -842.0 +28 6248.0 +28 8035.0 +28 16337.0 +28 14040.0 +28 -200.0 +28 -200.0 +28 -1829.0 +28 -200.0 +28 -7196.0 +28 -200.0 +28 2011.0 +28 -7196.0 +28 1050.0 +28 -8335.0 +28 -7196.0 +28 9752.0 +28 -1350.0 +28 -6806.0 +28 -7196.0 +28 -7196.0 +28 15601.0 +28 8351.0 +28 -9732.0 +28 15601.0 +28 15601.0 +28 4568.0 +28 15601.0 +28 -7196.0 +28 11841.0 +28 -200.0 +28 -14455.0 +29 2201.0 +29 -14061.0 +29 -7196.0 +29 15601.0 +29 10065.0 +29 -200.0 +29 -15892.0 +29 -7196.0 +29 -200.0 +29 -7196.0 +29 -200.0 +29 7021.0 +29 15601.0 +29 15601.0 +29 -7196.0 +29 6192.0 +29 15601.0 +29 15601.0 +29 5617.0 +29 -200.0 +29 3119.0 +29 -7121.0 +29 -200.0 +29 -13152.0 +29 -7196.0 +29 15601.0 +29 -7196.0 +29 -200.0 +29 -7196.0 +29 4020.0 +29 -200.0 +29 7060.0 +29 8442.0 +29 15545.0 +29 -7196.0 +29 15601.0 +29 15601.0 +29 -1990.0 +29 15601.0 +29 -13950.0 +29 -7196.0 +30 -13035.0 +30 -12806.0 +30 -7196.0 +30 15601.0 +30 -7196.0 +30 -814.0 +30 -7196.0 +30 -7196.0 +30 -12488.0 +30 15601.0 +30 1556.0 +30 5201.0 +30 15601.0 +30 -9155.0 +30 7279.0 +30 -200.0 +30 10044.0 +30 -13575.0 +30 14821.0 +30 -200.0 +30 15601.0 +30 -2768.0 +30 15601.0 +30 16070.0 +30 -3309.0 +30 2508.0 +30 -6479.0 +30 -5036.0 +30 -200.0 +30 -14111.0 +30 -7196.0 +30 8625.0 +30 -200.0 +30 -7196.0 +30 15601.0 +30 15601.0 +30 -10947.0 +30 -7196.0 +30 -200.0 +30 -200.0 +30 11642.0 +30 -963.0 +30 15601.0 +30 6523.0 +30 -8570.0 +30 14172.0 +30 -7196.0 +30 -12221.0 +30 12141.0 +31 15013.0 +31 -15960.0 +31 11913.0 +31 -7196.0 +31 -15060.0 +31 13953.0 +31 -7196.0 +31 -12584.0 +31 -6206.0 +31 15601.0 +31 -200.0 +31 12641.0 +31 -13283.0 +31 -7196.0 +31 -200.0 +31 -200.0 +31 -200.0 +31 -200.0 +31 -200.0 +31 5961.0 +31 13612.0 +31 -7196.0 +31 -15948.0 +31 7398.0 +31 -8623.0 +31 -3165.0 +31 15601.0 +31 4963.0 +31 -7196.0 +31 -4662.0 +31 -15238.0 +31 15601.0 +31 -7196.0 +31 11511.0 +31 3119.0 +31 12081.0 +31 -200.0 +31 9930.0 +31 15601.0 +31 15601.0 +31 -4090.0 +31 15601.0 +31 -9566.0 +31 15601.0 +31 -200.0 +32 1600.0 +32 -6868.0 +32 15601.0 +32 -7196.0 +32 15601.0 +32 -14044.0 +32 -4977.0 +32 -2444.0 +32 -200.0 +32 -981.0 +32 -2759.0 +32 15601.0 +32 -200.0 +32 8370.0 +32 5063.0 +32 5109.0 +32 -200.0 +32 -10795.0 +32 -8353.0 +32 -11490.0 +32 -7196.0 +32 -200.0 +32 15601.0 +32 15601.0 +32 -200.0 +32 -7196.0 +32 15601.0 +32 -7196.0 +32 -6251.0 +32 -9391.0 +32 -7196.0 +32 -7196.0 +32 -7196.0 +32 -200.0 +32 -12814.0 +32 2611.0 +32 -3803.0 +32 -7196.0 +32 -13993.0 +32 4256.0 +32 -200.0 +32 12200.0 +32 -200.0 +32 -9512.0 +32 -200.0 +32 -200.0 +32 -6743.0 +32 -13494.0 +32 -200.0 +32 -200.0 +33 -843.0 +33 7675.0 +33 -7196.0 +33 -12780.0 +33 -200.0 +33 -4390.0 +33 -7196.0 +33 -7196.0 +33 -12002.0 +33 10467.0 +33 -200.0 +33 -200.0 +33 2563.58 +33 5219.0 +33 15601.0 +33 15601.0 +33 2563.58 +33 15601.0 +33 12375.0 +33 -8937.0 +33 4936.0 +33 -13624.0 +33 -5638.15 +33 12554.0 +33 -7196.0 +33 15601.0 +33 8693.0 +33 -14628.0 +33 -200.0 +33 -3034.0 +33 -200.0 +33 8648.0 +33 9763215.5639 +33 -14642.0 +33 15601.0 +33 -2253.0 +33 -7196.0 +33 9476.0 +33 -7196.0 +33 -200.0 +33 -7196.0 +33 -5280.0 +33 -200.0 +33 -5638.15 +33 1764.0 +33 -200.0 +33 9512.0 +33 -7196.0 +33 -200.0 +33 -7196.0 +33 -200.0 +33 3571.0 +33 -7196.0 +33 3090.0 +33 15601.0 +34 -7526.0 +34 -7196.0 +34 15601.0 +34 -200.0 +34 15601.0 +34 5015.0 +34 -7437.0 +34 15601.0 +34 -8885.0 +34 -200.0 +34 15601.0 +34 -4255.0 +34 -7196.0 +34 4812.0 +34 3236.0 +34 -2307.0 +34 -7196.0 +34 15601.0 +34 15601.0 +34 -200.0 +34 -200.0 +34 4488.0 +34 -200.0 +34 5785.0 +34 -200.0 +34 -506.0 +34 7974.0 +34 15601.0 +34 15601.0 +34 -4171.0 +34 -9926.0 +34 -200.0 +34 -7196.0 +34 -200.0 +34 -11163.0 +34 -14820.0 +34 -200.0 +34 -11745.0 +34 3110.0 +34 -200.0 +34 -200.0 +34 15890.0 +34 15601.0 +34 -15059.0 +34 2176.0 +34 7942.0 +34 15601.0 +34 -3783.0 +34 -7196.0 +34 4871.0 +34 -2865.0 +34 -200.0 +34 -7196.0 +34 -200.0 +34 -7196.0 +34 15601.0 +34 9238.0 +34 -1956.0 +34 -1141.0 +34 -200.0 +35 8854.0 +35 -11022.0 +35 5327.0 +35 15601.0 +35 15601.0 +35 -11376.0 +35 15601.0 +35 -200.0 +35 2280.0 +35 -12366.0 +35 11401.0 +35 15601.0 +35 -200.0 +35 -15139.0 +35 15601.0 +35 -16153.0 +35 -7196.0 +35 11102.0 +35 15601.0 +35 -15638.0 +35 -200.0 +35 -7196.0 +35 10495.0 +35 -200.0 +35 -9063.0 +35 12520.0 +35 15601.0 +35 -5664.0 +35 -7196.0 +35 -200.0 +35 -6268.0 +35 -4493.0 +35 -9725.0 +35 -7196.0 +35 7288.0 +35 -7196.0 +35 -6474.0 +35 -200.0 +35 15601.0 +35 6864.0 +35 -11148.0 +35 -9542.0 +35 -200.0 +35 -15547.0 +35 -200.0 +35 -5334.0 +35 -7196.0 +35 -8492.0 +35 15601.0 +35 13144.0 +35 -7196.0 +36 -2985.0 +36 -7196.0 +36 14907.0 +36 -7196.0 +36 -7196.0 +36 -8353.0 +36 -7196.0 +36 -7196.0 +36 15012.0 +36 15601.0 +36 2407.0 +36 -7196.0 +36 -200.0 +36 15601.0 +36 3684.0 +36 -15912.0 +36 -7196.0 +36 -12404.0 +36 -11003.0 +36 -200.0 +36 2445.0 +36 15601.0 +36 -8915.0 +36 -7196.0 +36 287.0 +36 -4299.0 +36 6511.0 +36 -200.0 +36 -9664.0 +36 -200.0 +36 15601.0 +36 -200.0 +36 -200.0 +36 767.0 +36 15601.0 +36 15601.0 +36 -13362.0 +36 7648.0 +36 9969.0 +36 -7196.0 +36 -10230.0 +37 -200.0 +37 -200.0 +37 15601.0 +37 15601.0 +37 12557.0 +37 7607.0 +37 -6114.0 +37 1813.0 +37 -7196.0 +37 -10518.0 +37 -2525.0 +37 -7196.0 +37 -200.0 +37 -7196.0 +37 -1439.0 +37 11357.0 +37 1653.0 +37 13958.0 +37 14111.0 +37 -6885.0 +37 -200.0 +37 -9953.0 +37 7759.0 +37 15601.0 +37 15601.0 +37 -5223.0 +37 9782.0 +37 15601.0 +37 -7196.0 +37 -200.0 +37 -7196.0 +37 -7196.0 +37 5400.0 +37 -3587.0 +37 15601.0 +37 15717.0 +37 -7196.0 +37 -12081.0 +37 -7196.0 +37 -7217.0 +37 -7196.0 +37 -5486.0 +37 -200.0 +37 2969.0 +37 -200.0 +37 -200.0 +37 16298.0 +38 15601.0 +38 2820.0 +38 15601.0 +38 12157.0 +38 -14354.0 +38 -7196.0 +38 -7959.0 +38 -8756.0 +38 7046.0 +38 -15248.0 +38 -9325.0 +38 -7196.0 +38 15601.0 +38 -14731.0 +38 -11320.0 +38 -6583.0 +38 -11404.0 +38 -7196.0 +38 -200.0 +38 11230.0 +38 -13681.0 +38 -10540.0 +38 -7196.0 +38 -200.0 +38 -200.0 +38 -200.0 +38 2014.0 +38 16240.0 +38 15277.0 +38 -7196.0 +38 -200.0 +38 -7196.0 +38 -200.0 +38 -352.0 +38 -15228.0 +38 -29.0 +38 7513.0 +38 -14933.0 +38 -3621.0 +38 15423.0 +38 -4839.0 +38 15601.0 +38 15601.0 +38 -4667.0 +38 -200.0 +38 -200.0 +38 -200.0 +38 15601.0 +38 15601.0 +38 9925.0 +38 7548.0 +38 -200.0 +38 -200.0 +38 -200.0 +39 3406.0 +39 -7196.0 +39 181.0 +39 -10909.0 +39 -7635.0 +39 -2254.0 +39 467.0 +39 315.0 +39 15601.0 +39 -9698.0 +39 -7196.0 +39 15601.0 +39 -200.0 +39 11148.0 +39 -7196.0 +39 74.0 +39 -14887.0 +39 -7654.0 +39 15601.0 +39 15601.0 +39 -200.0 +39 -10256.0 +39 -12378.0 +39 -7800.0 +39 14118.0 +39 15601.0 +39 15601.0 +39 15601.0 +39 15601.0 +39 -7196.0 +39 -200.0 +39 15601.0 +39 15601.0 +39 13132.0 +39 12112.0 +39 -7196.0 +39 -11383.0 +39 16279.0 +39 -12686.0 +39 -200.0 +39 15601.0 +39 15601.0 +39 -200.0 +39 -9602.0 +39 13352.0 +39 8007.0 +39 -3574.0 +39 3519.0 +39 -200.0 +39 13438.0 +39 -13972.0 +39 15601.0 +39 -7196.0 +39 -200.0 +40 -200.0 +40 13835.0 +40 15601.0 +40 -2927.0 +40 -200.0 +40 -7196.0 +40 -7196.0 +40 -200.0 +40 -200.0 +40 -1724.0 +40 -3738.0 +40 -3123.0 +40 -801.0 +40 -2755.0 +40 -200.0 +40 -200.0 +40 16096.0 +40 -7196.0 +40 15601.0 +40 -200.0 +40 -15861.0 +40 15601.0 +40 -7196.0 +40 9926.0 +40 1464.0 +40 -15814.0 +40 15601.0 +40 -200.0 +40 15601.0 +40 -9022.0 +40 -5801.0 +40 15601.0 +40 15601.0 +40 15601.0 +40 -1391.0 +40 -7196.0 +40 -200.0 +40 8104.0 +40 -5021.0 +40 -11912.0 +40 11476.0 +40 3192.0 +40 -3770.0 +40 -7984.0 +41 -200.0 +41 -200.0 +41 -200.0 +41 15601.0 +41 11065.0 +41 -7196.0 +41 -200.0 +41 15601.0 +41 -12335.0 +41 37.0 +41 -200.0 +41 -4985.0 +41 3349.0 +41 -200.0 +41 14225.0 +41 8384.0 +41 -7196.0 +41 -13480.0 +41 3377.0 +41 -9312.0 +41 -7684.0 +41 -7196.0 +41 12652.0 +41 15601.0 +41 -200.0 +41 15601.0 +41 -9024.0 +41 -200.0 +41 -200.0 +41 15601.0 +41 -200.0 +41 5641.0 +41 -7196.0 +41 -9137.0 +41 16370.0 +41 -1295.0 +41 4994.0 +41 15601.0 +41 -1752.0 +41 11165.0 +41 9539.0 +41 15601.0 +42 15601.0 +42 -15834.0 +42 4124.0 +42 15601.0 +42 -7994.0 +42 9433.0 +42 15601.0 +42 15601.0 +42 -200.0 +42 15601.0 +42 -200.0 +42 15601.0 +42 -200.0 +42 -3300.0 +42 -200.0 +42 -15711.0 +42 7854.0 +42 -7196.0 +42 -7196.0 +42 -7196.0 +42 12643.0 +42 -7196.0 +42 9395.0 +42 -9139.0 +42 -13458.0 +42 -12103.0 +42 -7196.0 +42 -7196.0 +42 -7196.0 +42 -7941.0 +42 -7196.0 +42 5654.0 +42 -7196.0 +42 -7196.0 +42 -200.0 +42 225.0 +42 6760.0 +42 10242.0 +42 -7657.0 +42 -200.0 +42 -14270.0 +42 11515.0 +42 -6897.0 +42 15601.0 +42 11883.0 +42 9723.0 +42 15601.0 +42 15601.0 +42 9498.0 +42 -3309.0 +42 13404.0 +42 -200.0 +42 15601.0 +42 -9891.0 +42 -14454.0 +42 15601.0 +42 -7196.0 +43 -200.0 +43 -14802.0 +43 6690.0 +43 -7196.0 +43 -10029.0 +43 -4616.0 +43 -521.0 +43 -13551.0 +43 -5261.0 +43 -7196.0 +43 9659.0 +43 803.0 +43 11867.0 +43 -4965.0 +43 8837.0 +43 -13789.0 +43 -7196.0 +43 1475.0 +43 2496.0 +43 -200.0 +43 16174.0 +43 -200.0 +43 -200.0 +43 -200.0 +43 -171.0 +43 15111.0 +43 15601.0 +43 -200.0 +43 -200.0 +43 2666.0 +43 15601.0 +43 10871.0 +43 -200.0 +43 -15703.0 +43 4128.0 +43 -6603.0 +43 -200.0 +43 7709.0 +43 -200.0 +43 -8230.0 +43 15548.0 +43 -9694.0 +43 12353.0 +44 12273.0 +44 -8976.0 +44 -200.0 +44 -7196.0 +44 -200.0 +44 8319.0 +44 -200.0 +44 -200.0 +44 15609.0 +44 -7196.0 +44 -200.0 +44 -7196.0 +44 -10438.0 +44 15601.0 +44 -7196.0 +44 -7196.0 +44 9210.0 +44 -7196.0 +44 -3447.0 +44 -7196.0 +44 -7196.0 +44 15601.0 +44 -200.0 +44 15601.0 +44 15601.0 +44 -7196.0 +44 -9389.0 +44 15601.0 +44 -11185.0 +44 -7196.0 +44 -200.0 +44 15601.0 +44 -4905.0 +44 3855.0 +44 11658.0 +44 -550.0 +44 -10560.0 +44 -200.0 +44 -9077.0 +44 16228.0 +45 -7196.0 +45 -7888.0 +45 -200.0 +45 -7910.0 +45 -7196.0 +45 2610.0 +45 3897.0 +45 10713.0 +45 15601.0 +45 -3003.0 +45 -200.0 +45 -200.0 +45 15601.0 +45 -3466.0 +45 15601.0 +45 -200.0 +45 -399.0 +45 15601.0 +45 -200.0 +45 -7196.0 +45 -200.0 +45 15601.0 +45 -200.0 +45 -5029.0 +45 -14394.0 +45 15601.0 +45 -200.0 +45 -3956.0 +45 16285.0 +45 259.0 +45 -9358.0 +45 -7196.0 +45 -200.0 +45 -7196.0 +45 -5049.0 +45 -7196.0 +45 15601.0 +45 -7196.0 +45 15601.0 +45 15601.0 +45 -7196.0 +45 -15228.0 +45 -7196.0 +45 -9710.0 +45 15601.0 +45 4440.0 +46 -7196.0 +46 -6034.0 +46 8676.0 +46 -200.0 +46 -9149.0 +46 -364.0 +46 7207.0 +46 -200.0 +46 15601.0 +46 -7196.0 +46 6958.0 +46 -4596.0 +46 -7196.0 +46 15601.0 +46 -200.0 +46 -1888.0 +46 10394.0 +46 14854.0 +46 -200.0 +46 15601.0 +46 15601.0 +46 15601.0 +46 -5652.0 +46 15601.0 +46 -200.0 +46 3817.0 +46 -14029.0 +46 -6672.0 +46 -4279.0 +46 -7196.0 +46 -200.0 +46 15601.0 +46 -15187.0 +46 -7196.0 +46 15601.0 +46 -7196.0 +46 -7196.0 +46 -14985.0 +46 10663.0 +46 -7196.0 +46 8675.0 +46 -9562.0 +46 -7196.0 +46 2585.0 +46 5218.0 +46 -200.0 +46 15601.0 +46 15601.0 +47 -6552.0 +47 -7196.0 +47 -7196.0 +47 -7196.0 +47 -200.0 +47 -14898.0 +47 -7196.0 +47 8471.0 +47 -7244.0 +47 -11859.0 +47 -200.0 +47 -7196.0 +47 -12006.0 +47 -200.0 +47 5190.0 +47 -7196.0 +47 15601.0 +47 -7196.0 +47 -7196.0 +47 -200.0 +47 -200.0 +47 -12860.0 +47 -11848.0 +47 15601.0 +47 15601.0 +47 -200.0 +47 14809.0 +47 -100.0 +47 -16324.0 +47 74.0 +47 1923.0 +47 -14556.0 +47 10952.0 +47 13680.0 +47 -200.0 +47 15601.0 +47 15601.0 +47 -5480.0 +47 -200.0 +47 -200.0 +47 -200.0 +47 15601.0 +47 -7196.0 +47 7365.0 +47 15601.0 +47 8237.0 +47 14921.0 +47 -8461.0 +48 -7196.0 +48 -7196.0 +48 -7196.0 +48 -7196.0 +48 -7196.0 +48 14751.0 +48 -8259.0 +48 -7196.0 +48 -5816.0 +48 -8345.0 +48 4268.0 +48 -2314.0 +48 -9755.0 +48 15861.0 +48 -7196.0 +48 -7388.0 +48 -7196.0 +48 12494.0 +48 -200.0 +48 -200.0 +48 -15451.0 +48 10485.0 +48 -200.0 +48 574.0 +48 6749.0 +48 5092.0 +48 -16372.0 +48 -15344.0 +48 -5554.0 +48 199.0 +48 -200.0 +48 -200.0 +48 15601.0 +48 15601.0 +48 2452.0 +48 15601.0 +48 15601.0 +48 -1706.0 +48 -6414.0 +48 15601.0 +48 15601.0 +48 -10552.0 +48 15601.0 +48 13909.0 +48 1567.0 +48 15601.0 +48 -8916.0 +48 1274.0 +48 15601.0 +48 15601.0 +48 -3463.0 +48 12849.0 +49 10867.0 +49 15601.0 +49 -9807.0 +49 -200.0 +49 -3031.0 +49 15601.0 +49 -200.0 +49 -200.0 +49 -11094.0 +49 15601.0 +49 8465.0 +49 -200.0 +49 5865.0 +49 7423.0 +49 15601.0 +49 -200.0 +49 15601.0 +49 -7196.0 +49 -200.0 +49 6974.0 +49 -11211.0 +49 15601.0 +49 -7196.0 +49 -15388.0 +49 -200.0 +49 -7196.0 +49 -200.0 +49 -7196.0 +49 -15923.0 +49 12363.0 +49 15601.0 +49 -5978.0 +49 -7196.0 +49 2594.0 +49 16191.0 +49 -7196.0 +49 15601.0 +49 15601.0 +49 -200.0 +49 15523.0 +49 13436.0 +49 4832.0 +49 -200.0 +49 -7196.0 +49 -11327.0 +49 15601.0 +49 -2343.0 +49 -7196.0 +49 15601.0 +49 -200.0 +49 15601.0 +49 -7196.0 +49 13396.0 +49 -11302.0 +49 1515.0 +49 -7809.0 +49 -200.0 +49 -200.0 +49 -1212.0 +49 -9065.0 +49 -200.0 +49 -7196.0 +49 14071.0 +49 15601.0 +50 12235.0 +50 4261.0 +50 -11020.0 +50 -200.0 +50 14985.0 +50 -11047.0 +50 -200.0 +50 -16236.0 +50 15601.0 +50 -15841.0 +50 -7196.0 +50 -10445.0 +50 -1818.0 +50 -7570.0 +50 11936.0 +50 -7196.0 +50 -200.0 +50 -200.0 +50 1951.0 +50 7372.0 +50 10522.0 +50 -200.0 +50 2972.0 +50 15601.0 +50 -7196.0 +50 -4148.0 +50 -8318.0 +50 -16122.0 +50 -13343.0 +50 -200.0 +50 -200.0 +50 -7196.0 +50 -7196.0 +50 -15899.0 +50 -7196.0 +50 -7196.0 +50 -200.0 +50 10652.0 +50 -200.0 +50 15601.0 +51 -3724.0 +51 -14623.0 +51 -12879.0 +51 -200.0 +51 15369.0 +51 -200.0 +51 7006.0 +51 5042.0 +51 -6182.0 +51 15601.0 +51 -200.0 +51 15601.0 +51 -8818.0 +51 -2099.0 +51 15601.0 +51 15601.0 +51 14567.0 +51 11681.0 +51 -200.0 +51 -200.0 +51 -15790.0 +51 -7196.0 +51 -2727.0 +51 -7196.0 +51 -7196.0 +51 -7196.0 +51 2319.0 +51 -7196.0 +51 -7196.0 +51 -7196.0 +51 -3869.0 +51 -4490.0 +51 533.0 +52 -15096.0 +52 -200.0 +52 395.0 +52 -1011.0 +52 14239.0 +52 15601.0 +52 -5848.0 +52 15601.0 +52 -7196.0 +52 15601.0 +52 -7196.0 +52 6995.0 +52 -203.0 +52 15188.0 +52 -11224.0 +52 -7196.0 +52 6923.0 +52 -7196.0 +52 -7196.0 +52 15601.0 +52 -13417.0 +52 -15450.0 +52 -13664.0 +52 -200.0 +52 15601.0 +52 -200.0 +52 -7196.0 +52 15601.0 +52 7276.0 +52 -7196.0 +52 -5869.0 +52 -200.0 +52 -7394.0 +52 -200.0 +52 -200.0 +52 -200.0 +52 -200.0 +52 11996.0 +52 -2989.0 +52 7723.0 +52 -200.0 +52 15601.0 +52 6018.0 +52 -200.0 +52 -200.0 +52 -200.0 +53 10701.0 +53 -200.0 +53 -7196.0 +53 -1911.0 +53 15601.0 +53 2000.0 +53 -200.0 +53 -15552.0 +53 -7196.0 +53 15601.0 +53 -4492.0 +53 803.0 +53 -7196.0 +53 3139.0 +53 -16217.0 +53 -10688.0 +53 15417.0 +53 -1822.0 +53 -7196.0 +53 -1381.0 +53 15006.0 +53 650.0 +53 -14276.0 +53 14889.0 +53 -13836.0 +53 -7196.0 +53 11505.0 +53 -200.0 +53 15601.0 +53 -11635.0 +53 -12171.0 +53 -10129.0 +53 -7731.0 +53 -15794.0 +53 15601.0 +53 -7196.0 +53 -9701.0 +53 15601.0 +53 -10550.0 +53 2007.0 +53 -200.0 +53 2922.0 +53 15601.0 +53 -379.0 +53 -1740.0 +53 -200.0 +53 -7196.0 +53 -2472.0 +54 12750.0 +54 -15245.0 +54 15601.0 +54 15601.0 +54 15601.0 +54 -8994.0 +54 15601.0 +54 15601.0 +54 -200.0 +54 15601.0 +54 -200.0 +54 -4117.0 +54 -2476.0 +54 -200.0 +54 -7196.0 +54 -7196.0 +54 -200.0 +54 14965.0 +54 -200.0 +54 3737.0 +54 10451.0 +54 -200.0 +54 -7196.0 +54 -8445.0 +54 -4406.0 +54 -3017.0 +54 -7196.0 +54 15275.0 +54 10554.0 +54 -7196.0 +54 -14568.0 +54 13117.0 +54 -7196.0 +54 -7196.0 +54 -7196.0 +54 -7196.0 +54 -7196.0 +54 -7196.0 +54 -7196.0 +54 6556.0 +54 -7196.0 +54 -7196.0 +54 15601.0 +55 15601.0 +55 -15723.0 +55 -13475.0 +55 -200.0 +55 6413.0 +55 -3803.0 +55 -200.0 +55 8804.0 +55 6798.0 +55 -200.0 +55 12269.0 +55 4128.0 +55 -200.0 +55 -7196.0 +55 15601.0 +55 -7196.0 +55 2974.0 +55 -12442.0 +55 -4981.0 +55 -7196.0 +55 15601.0 +55 15143.0 +55 9934.0 +55 15429.0 +55 -200.0 +55 15601.0 +55 15601.0 +55 16278.0 +55 -5310.0 +55 15601.0 +55 15601.0 +55 15601.0 +55 -200.0 +55 -15887.0 +55 -200.0 +55 -7196.0 +55 15103.0 +55 15601.0 +55 -200.0 +55 10672.0 +55 -200.0 +55 -3525.0 +55 1658.0 +55 -200.0 +56 -7265.0 +56 -2600.0 +56 -7196.0 +56 -11798.0 +56 -3204.0 +56 -3191.0 +56 -7569.0 +56 -1316.0 +56 2112.0 +56 995.0 +56 -12288.0 +56 -11521.0 +56 -3071.0 +56 -200.0 +56 -200.0 +56 15601.0 +56 15601.0 +56 -200.0 +56 -200.0 +56 -7196.0 +56 -200.0 +56 3229.0 +56 -12631.0 +56 -9422.0 +56 14282.0 +56 -200.0 +56 -7196.0 +56 8745.0 +56 -7196.0 +56 15601.0 +56 -7196.0 +56 14689.0 +56 -7554.0 +56 -7196.0 +56 -11859.0 +56 10922.0 +56 15601.0 +57 -200.0 +57 -7196.0 +57 15601.0 +57 15601.0 +57 -13012.0 +57 -10433.0 +57 6776.0 +57 2251.0 +57 -7196.0 +57 -7854.0 +57 -200.0 +57 -11526.0 +57 -15620.0 +57 -7341.0 +57 12746.0 +57 12665.0 +57 9556.0 +57 -7196.0 +57 15601.0 +57 15601.0 +57 -7196.0 +57 682.0 +57 13383.0 +57 -7196.0 +57 -7196.0 +57 7085.0 +57 -200.0 +57 1437.0 +57 -7196.0 +57 15769.0 +57 -7196.0 +57 -200.0 +57 -7196.0 +57 -200.0 +57 15601.0 +57 -200.0 +57 -200.0 +57 6578.0 +57 12024.0 +57 -7196.0 +57 -7196.0 +57 11302.0 +57 -6482.0 +57 13741.0 +57 -7196.0 +57 -7196.0 +57 12560.0 +57 14341.0 +57 -200.0 +57 1736.0 +57 15601.0 +57 5722.0 +57 -7196.0 +57 -7196.0 +57 -7196.0 +58 -200.0 +58 15601.0 +58 -200.0 +58 -11288.0 +58 -7196.0 +58 -13627.0 +58 15601.0 +58 -9479.0 +58 -200.0 +58 -200.0 +58 15549.0 +58 -7196.0 +58 -671.0 +58 -9501.0 +58 -200.0 +58 15601.0 +58 15601.0 +58 -200.0 +58 15601.0 +58 5786.0 +58 5028.0 +58 5603.0 +58 5855.0 +58 -3782.0 +58 15601.0 +58 15601.0 +58 8793.0 +58 -200.0 +58 7178.0 +58 16045.0 +58 -7196.0 +58 10770.0 +58 9719.0 +58 -200.0 +58 12050.0 +58 -200.0 +58 6823.0 +58 -200.0 +58 14694.0 +58 -7196.0 +58 -9948.0 +59 -6351.0 +59 15601.0 +59 -7196.0 +59 -7196.0 +59 1444.0 +59 -7196.0 +59 15601.0 +59 15601.0 +59 -200.0 +59 9767.0 +59 -7196.0 +59 7364.0 +59 -15543.0 +59 -200.0 +59 9644.0 +59 15601.0 +59 -12657.0 +59 -832.0 +59 -3681.0 +59 -540.0 +59 -9456.0 +59 14127.0 +59 -200.0 +59 -7196.0 +59 10861.0 +59 9161.0 +59 15601.0 +59 15601.0 +59 -6454.0 +59 -7196.0 +59 -16076.0 +59 15601.0 +59 15601.0 +59 -200.0 +59 15601.0 +59 395.0 +59 -200.0 +60 -12653.0 +60 -7196.0 +60 -2579.0 +60 -200.0 +60 -200.0 +60 6385.0 +60 -5416.0 +60 8000.0 +60 8540.0 +60 -200.0 +60 -200.0 +60 15601.0 +60 9237.0 +60 2272.0 +60 -200.0 +60 -200.0 +60 10187.0 +60 10649.0 +60 1416.0 +60 5580.0 +60 1307.0 +60 15601.0 +60 15601.0 +60 -200.0 +60 -200.0 +60 6666.0 +60 -9867.0 +60 -12732.0 +60 15601.0 +60 -7196.0 +60 -1857.0 +60 -13606.0 +60 -7196.0 +60 15601.0 +60 -4561.0 +60 -7196.0 +60 -5433.0 +60 6775.0 +60 3666.0 +60 2384.0 +60 -7196.0 +60 15601.0 +61 2986.0 +61 12752.0 +61 12339.0 +61 12161.0 +61 -7196.0 +61 -7196.0 +61 -7196.0 +61 -200.0 +61 -7196.0 +61 6912.0 +61 5451.0 +61 -9977.0 +61 -7196.0 +61 -200.0 +61 6004.0 +61 13987.0 +61 -200.0 +61 -7196.0 +61 -7196.0 +61 4370.0 +61 1746.0 +61 -8972.0 +61 -15456.0 +61 15601.0 +61 -2457.0 +61 15601.0 +61 -200.0 +61 -200.0 +61 -7196.0 +61 2700.0 +61 -3962.0 +61 5988.0 +61 -1254.0 +61 -7196.0 +61 2372.0 +61 14806.0 +61 -200.0 +61 -1792.0 +61 -15852.0 +61 41.0 +61 865.0 +61 -200.0 +61 13941.0 +61 -7196.0 +61 -7148.0 +61 15601.0 +61 -7705.0 +61 -15549.0 +61 -7196.0 +61 -15894.0 +62 -200.0 +62 -6306.0 +62 -12530.0 +62 -14307.0 +62 -200.0 +62 -3295.0 +62 -200.0 +62 -200.0 +62 15601.0 +62 8882.0 +62 -200.0 +62 -200.0 +62 -200.0 +62 -2206.0 +62 -200.0 +62 -200.0 +62 15601.0 +62 -200.0 +62 -7196.0 +62 -11628.0 +62 15601.0 +62 -7196.0 +62 15601.0 +62 7777.0 +62 -7196.0 +62 -7196.0 +62 -13918.0 +62 15601.0 +62 -7196.0 +62 1640.0 +62 15601.0 +62 -7196.0 +62 -7196.0 +62 -7196.0 +62 -7196.0 +62 -7196.0 +62 6557.0 +62 15601.0 +62 -7196.0 +62 12525.0 +62 -11149.0 +62 11668.0 +62 -3841.0 +62 8296.0 +62 15601.0 +62 14985.0 PREHOOK: query: explain vectorization expression select cdouble, sum(ctinyint) as sum from alltypesorc where ctinyint is not null group by cdouble order by sum, cdouble limit 20 PREHOOK: type: QUERY diff --git a/ql/src/test/results/clientpositive/view_alias.q.out b/ql/src/test/results/clientpositive/view_alias.q.out index 90bf28d..1582f06 100644 --- a/ql/src/test/results/clientpositive/view_alias.q.out +++ b/ql/src/test/results/clientpositive/view_alias.q.out @@ -56,11 +56,11 @@ POSTHOOK: type: QUERY POSTHOOK: Input: default@src POSTHOOK: Input: default@v #### A masked pattern was here #### -165 12 -27 12 -311 12 -97 12 238 12 +86 12 +311 12 +27 12 +165 12 PREHOOK: query: drop view v PREHOOK: type: DROPVIEW PREHOOK: Input: default@v @@ -123,11 +123,11 @@ POSTHOOK: type: QUERY POSTHOOK: Input: default@src POSTHOOK: Input: default@v #### A masked pattern was here #### -165 12 -27 12 -311 12 -97 12 238 12 +86 12 +311 12 +27 12 +165 12 PREHOOK: query: drop view v PREHOOK: type: DROPVIEW PREHOOK: Input: default@v @@ -192,11 +192,11 @@ POSTHOOK: type: QUERY POSTHOOK: Input: default@src POSTHOOK: Input: default@v #### A masked pattern was here #### -165 val_165 12 -27 val_27 12 -311 val_311 12 -97 val_97 12 238 val_238 12 +86 val_86 12 +311 val_311 12 +27 val_27 12 +165 val_165 12 PREHOOK: query: drop view v PREHOOK: type: DROPVIEW PREHOOK: Input: default@v @@ -261,11 +261,11 @@ POSTHOOK: type: QUERY POSTHOOK: Input: default@src POSTHOOK: Input: default@v #### A masked pattern was here #### -165 val_165 12 -27 val_27 12 -311 val_311 12 -97 val_97 12 238 val_238 12 +86 val_86 12 +311 val_311 12 +27 val_27 12 +165 val_165 12 PREHOOK: query: drop view v PREHOOK: type: DROPVIEW PREHOOK: Input: default@v @@ -445,8 +445,8 @@ POSTHOOK: Input: default@a POSTHOOK: Input: default@b POSTHOOK: Input: default@v #### A masked pattern was here #### -010 86 val_86 121 86 val_86 234 -010 311 val_311 121 311 val_311 234 -010 27 val_27 121 27 val_27 234 -010 238 val_238 121 238 val_238 234 010 165 val_165 121 165 val_165 234 +010 238 val_238 121 238 val_238 234 +010 27 val_27 121 27 val_27 234 +010 311 val_311 121 311 val_311 234 +010 86 val_86 121 86 val_86 234