Add tests for local typeOf query with occurrence cache

This commit is contained in:
Grigorii Kirgizov 2020-12-09 12:48:43 +03:00
parent 27ed01c447
commit 8022fa4203
4 changed files with 732 additions and 518 deletions

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<model ref="r:20f81ae9-fed0-48fa-893d-6c6b658e3dee(jetbrains.mps.coderules.typechecking.test.util)">
<persistence version="9" />
<attribute name="doNotGenerate" value="false" />
<languages>
<use id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage" version="11" />
<use id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel" version="17" />
@ -10,6 +11,7 @@
<use id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core" version="2" />
<use id="fd392034-7849-419d-9071-12563d152375" name="jetbrains.mps.baseLanguage.closures" version="0" />
<use id="f61473f9-130f-42f6-b98d-6c438812c2f6" name="jetbrains.mps.baseLanguage.unitTest" version="1" />
<use id="a247e09e-2435-45ba-b8d2-07e93feba96a" name="jetbrains.mps.baseLanguage.tuples" version="0" />
</languages>
<imports>
<import index="lui2" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.module(MPS.OpenAPI/)" />
@ -42,6 +44,14 @@
<import index="xnrr" ref="r:4fd33103-fc30-42f4-a8cf-d1e858f21988(jetbrains.mps.lang.coderules.program.analysis)" implicit="true" />
</imports>
<registry>
<language id="a247e09e-2435-45ba-b8d2-07e93feba96a" name="jetbrains.mps.baseLanguage.tuples">
<concept id="1238852151516" name="jetbrains.mps.baseLanguage.tuples.structure.IndexedTupleType" flags="in" index="1LlUBW">
<child id="1238852204892" name="componentType" index="1Lm7xW" />
</concept>
<concept id="1238853782547" name="jetbrains.mps.baseLanguage.tuples.structure.IndexedTupleLiteral" flags="nn" index="1Ls8ON">
<child id="1238853845806" name="component" index="1Lso8e" />
</concept>
</language>
<language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
<concept id="1080223426719" name="jetbrains.mps.baseLanguage.structure.OrExpression" flags="nn" index="22lmx$" />
<concept id="1219920932475" name="jetbrains.mps.baseLanguage.structure.VariableArityType" flags="in" index="8X2XB">
@ -513,6 +523,32 @@
<ref role="3uigEE" to="tj24:5EDW3XDYNPr" resolve="CheckQuery" />
</node>
</node>
<node concept="2tJIrI" id="1GGmKhceYTv" role="jymVt" />
<node concept="3clFb_" id="1GGmKhceXt3" role="jymVt">
<property role="TrG5h" value="getTypeOfQuery" />
<node concept="37vLTG" id="1GGmKhcf4B9" role="3clF46">
<property role="TrG5h" value="subject" />
<node concept="3Tqbb2" id="1GGmKhcf6H2" role="1tU5fm" />
</node>
<node concept="3clFbS" id="1GGmKhceXt4" role="3clF47">
<node concept="3clFbF" id="1GGmKhceXt5" role="3cqZAp">
<node concept="2YIFZM" id="1GGmKhcf3SM" role="3clFbG">
<ref role="37wK5l" to="tj24:1T5MAgPzd2i" resolve="typeOf" />
<ref role="1Pybhc" to="tj24:5EDW3XDYg8Y" resolve="TypecheckingQueries" />
<node concept="37vLTw" id="1GGmKhcf80I" role="37wK5m">
<ref role="3cqZAo" node="1GGmKhcf4B9" resolve="subject" />
</node>
<node concept="37vLTw" id="1GGmKhcf3SN" role="37wK5m">
<ref role="3cqZAo" node="5fMWD6Iop7s" resolve="typeCollector" />
</node>
</node>
</node>
</node>
<node concept="3Tm1VV" id="1GGmKhceXt8" role="1B3o_S" />
<node concept="3uibUv" id="1GGmKhceXt9" role="3clF45">
<ref role="3uigEE" to="tj24:5EDW3XDYNPr" resolve="CheckQuery" />
</node>
</node>
<node concept="2tJIrI" id="WJTIIoR5f7" role="jymVt" />
<node concept="2YIFZL" id="2FNFm8neYtH" role="jymVt">
<property role="TrG5h" value="getCheckLauncher" />
@ -1090,6 +1126,9 @@
<node concept="37vLTw" id="6OXbTD_ouEx" role="37wK5m">
<ref role="3cqZAo" node="6OXbTD_oqui" resolve="queryTemplate" />
</node>
<node concept="37vLTw" id="1GGmKhchqyN" role="37wK5m">
<ref role="3cqZAo" node="1GGmKhchgOO" resolve="occurrenceCache" />
</node>
</node>
</node>
</node>
@ -1747,6 +1786,64 @@
</node>
</node>
</node>
<node concept="3clFbH" id="1GGmKhchufY" role="3cqZAp" />
<node concept="3SKdUt" id="1GGmKhci5y5" role="3cqZAp">
<node concept="1PaTwC" id="1GGmKhci5y6" role="1aUNEU">
<node concept="3oM_SD" id="1GGmKhci5y7" role="1PaTwD">
<property role="3oM_SC" value="NB:" />
</node>
<node concept="3oM_SD" id="1GGmKhci607" role="1PaTwD">
<property role="3oM_SC" value="relevant" />
</node>
<node concept="3oM_SD" id="1GGmKhci60i" role="1PaTwD">
<property role="3oM_SC" value="only" />
</node>
<node concept="3oM_SD" id="1GGmKhci60A" role="1PaTwD">
<property role="3oM_SC" value="for" />
</node>
<node concept="3oM_SD" id="1GGmKhci60F" role="1PaTwD">
<property role="3oM_SC" value="Preamble" />
</node>
<node concept="3oM_SD" id="1GGmKhci60L" role="1PaTwD">
<property role="3oM_SC" value="strategy" />
</node>
</node>
</node>
<node concept="3cpWs8" id="1GGmKhchYng" role="3cqZAp">
<node concept="3cpWsn" id="1GGmKhchYnh" role="3cpWs9">
<property role="TrG5h" value="newOccurrences" />
<node concept="3uibUv" id="1GGmKhchYne" role="1tU5fm">
<ref role="3uigEE" to="33ny:~Collection" resolve="Collection" />
<node concept="3uibUv" id="1GGmKhchYXI" role="11_B2D">
<ref role="3uigEE" to="w7la:~ConstraintOccurrence" resolve="ConstraintOccurrence" />
</node>
</node>
<node concept="2OqwBi" id="1GGmKhchDG8" role="33vP2m">
<node concept="liA8E" id="1GGmKhchErh" role="2OqNvi">
<ref role="37wK5l" to="w7la:~SessionToken.getPrincipalStore()" resolve="getPrincipalStore" />
</node>
<node concept="2OqwBi" id="6KCGZaSx60M" role="2Oq$k0">
<node concept="Xjq3P" id="6KCGZaSx60N" role="2Oq$k0" />
<node concept="2OwXpG" id="6KCGZaSx60O" role="2OqNvi">
<ref role="2Oxat5" node="4J__M6YZRN" resolve="sessionToken" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="1GGmKhchVoE" role="3cqZAp">
<node concept="2OqwBi" id="1GGmKhchWf3" role="3clFbG">
<node concept="37vLTw" id="1GGmKhchVoC" role="2Oq$k0">
<ref role="3cqZAo" node="1GGmKhchgOO" resolve="occurrenceCache" />
</node>
<node concept="liA8E" id="1GGmKhchWTc" role="2OqNvi">
<ref role="37wK5l" to="i348:1imVejVCuLX" resolve="putAll" />
<node concept="37vLTw" id="1GGmKhci2cp" role="37wK5m">
<ref role="3cqZAo" node="1GGmKhchYnh" resolve="newOccurrences" />
</node>
</node>
</node>
</node>
</node>
<node concept="3Tm1VV" id="tyIfzC0ZRn" role="1B3o_S" />
<node concept="3cqZAl" id="WJTIIp9nlW" role="3clF45" />
@ -2416,6 +2513,28 @@
<ref role="3uigEE" to="av0y:~IncrementalSpec" resolve="IncrementalSpec" />
</node>
</node>
<node concept="2tJIrI" id="6KCGZaSx62j" role="jymVt" />
<node concept="3clFb_" id="1GGmKhcjhMF" role="jymVt">
<property role="TrG5h" value="getOccurrenceCache" />
<node concept="3clFbS" id="1GGmKhcjhMI" role="3clF47">
<node concept="3clFbF" id="1GGmKhcjmJw" role="3cqZAp">
<node concept="2OqwBi" id="1GGmKhcjnb8" role="3clFbG">
<node concept="37vLTw" id="1GGmKhcjmJv" role="2Oq$k0">
<ref role="3cqZAo" node="1GGmKhchgOO" resolve="occurrenceCache" />
</node>
<node concept="liA8E" id="1GGmKhcjnLp" role="2OqNvi">
<ref role="37wK5l" to="i348:1imVejVtNz$" resolve="occurrences" />
</node>
</node>
</node>
</node>
<node concept="3Tm1VV" id="1GGmKhcjfA2" role="1B3o_S" />
<node concept="3vKaQO" id="1GGmKhcjhmy" role="3clF45">
<node concept="3uibUv" id="1GGmKhcjhKZ" role="3O5elw">
<ref role="3uigEE" to="w7la:~ConstraintOccurrence" resolve="ConstraintOccurrence" />
</node>
</node>
</node>
<node concept="2tJIrI" id="WJTIIoPfRU" role="jymVt" />
<node concept="312cEg" id="5fMWD6Iop7s" role="jymVt">
<property role="TrG5h" value="typeCollector" />
@ -2452,6 +2571,18 @@
<ref role="37wK5l" to="psoy:7Oc59RSEjeq" resolve="OK" />
</node>
</node>
<node concept="312cEg" id="1GGmKhchgOO" role="jymVt">
<property role="TrG5h" value="occurrenceCache" />
<node concept="3Tm6S6" id="1GGmKhchf6r" role="1B3o_S" />
<node concept="3uibUv" id="1GGmKhchgcj" role="1tU5fm">
<ref role="3uigEE" to="i348:1imVejVtN6P" resolve="PrincipalStore" />
</node>
<node concept="2ShNRf" id="1GGmKhchiVy" role="33vP2m">
<node concept="HV5vD" id="1GGmKhchkzL" role="2ShVmc">
<ref role="HV5vE" to="i348:1imVejVtN6P" resolve="PrincipalStore" />
</node>
</node>
</node>
<node concept="2tJIrI" id="WJTIIoPcaO" role="jymVt" />
<node concept="312cEg" id="4aLjyB0YZFj" role="jymVt">
<property role="TrG5h" value="trace" />
@ -5698,6 +5829,106 @@
</node>
</node>
<node concept="2tJIrI" id="WJTIIokvZ7" role="jymVt" />
<node concept="2YIFZL" id="1GGmKhce2RM" role="jymVt">
<property role="TrG5h" value="forTypeOf" />
<node concept="37vLTG" id="1GGmKhce2RN" role="3clF46">
<property role="TrG5h" value="node" />
<node concept="3Tqbb2" id="1GGmKhce2RO" role="1tU5fm" />
</node>
<node concept="3clFbS" id="1GGmKhce2RP" role="3clF47">
<node concept="3cpWs8" id="1GGmKhce2RQ" role="3cqZAp">
<node concept="3cpWsn" id="1GGmKhce2RR" role="3cpWs9">
<property role="TrG5h" value="builder" />
<node concept="3uibUv" id="1GGmKhce2RS" role="1tU5fm">
<ref role="3uigEE" node="WJTIIojUvH" resolve="IncrementalTestBuilder" />
</node>
<node concept="2ShNRf" id="1GGmKhce2RT" role="33vP2m">
<node concept="1pGfFk" id="1GGmKhce2RU" role="2ShVmc">
<ref role="37wK5l" node="WJTIIojU$0" resolve="IncrementalTestBuilder" />
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="1GGmKhce2RV" role="3cqZAp" />
<node concept="3clFbF" id="1GGmKhce2RW" role="3cqZAp">
<node concept="37vLTI" id="1GGmKhce2RX" role="3clFbG">
<node concept="1bVj0M" id="1GGmKhce2RY" role="37vLTx">
<node concept="3clFbS" id="1GGmKhce2RZ" role="1bW5cS">
<node concept="3clFbF" id="1GGmKhce2S0" role="3cqZAp">
<node concept="2YIFZM" id="1GGmKhce2S1" role="3clFbG">
<ref role="1Pybhc" node="tyIfzC0ZNj" resolve="IncrementalLauncher" />
<ref role="37wK5l" node="6VRLMeOuXt3" resolve="getLauncher" />
<node concept="37vLTw" id="1GGmKhce2S2" role="37wK5m">
<ref role="3cqZAo" node="1GGmKhce2RN" resolve="node" />
</node>
<node concept="10Nm6u" id="6QSH95G7Vxn" role="37wK5m" />
<node concept="3VsKOn" id="1GGmKhce2S3" role="37wK5m">
<ref role="3VsUkX" to="tj24:1T5MAgP$8dd" resolve="TypeOfQuery" />
</node>
<node concept="Rm8GO" id="1GGmKhceglG" role="37wK5m">
<ref role="Rm8GQ" to="av0y:~IncrementalSpec$IncrLevel.Preamble" resolve="Preamble" />
<ref role="1Px2BO" to="av0y:~IncrementalSpec$IncrLevel" resolve="IncrementalSpec.IncrLevel" />
</node>
</node>
</node>
</node>
</node>
<node concept="2OqwBi" id="1GGmKhce2S5" role="37vLTJ">
<node concept="37vLTw" id="1GGmKhce2S6" role="2Oq$k0">
<ref role="3cqZAo" node="1GGmKhce2RR" resolve="builder" />
</node>
<node concept="2OwXpG" id="1GGmKhce2S7" role="2OqNvi">
<ref role="2Oxat5" node="3j46jeGIppN" resolve="launcherFactory" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="1GGmKhce2S8" role="3cqZAp">
<node concept="37vLTI" id="1GGmKhce2S9" role="3clFbG">
<node concept="2OqwBi" id="1GGmKhce2Sa" role="37vLTx">
<node concept="37vLTw" id="1GGmKhce2Sb" role="2Oq$k0">
<ref role="3cqZAo" node="1GGmKhce2RR" resolve="builder" />
</node>
<node concept="liA8E" id="1GGmKhce2Sc" role="2OqNvi">
<ref role="37wK5l" node="3j46jeGE2Uq" resolve="getNewLauncher" />
</node>
</node>
<node concept="2OqwBi" id="1GGmKhce2Sd" role="37vLTJ">
<node concept="37vLTw" id="1GGmKhce2Se" role="2Oq$k0">
<ref role="3cqZAo" node="1GGmKhce2RR" resolve="builder" />
</node>
<node concept="2OwXpG" id="1GGmKhce2Sf" role="2OqNvi">
<ref role="2Oxat5" node="WJTIIokuum" resolve="launcher" />
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="1GGmKhce2Sg" role="3cqZAp" />
<node concept="3cpWs6" id="1GGmKhce2Sh" role="3cqZAp">
<node concept="2OqwBi" id="1GGmKhce2Si" role="3cqZAk">
<node concept="2OqwBi" id="1GGmKhce2Sj" role="2Oq$k0">
<node concept="37vLTw" id="1GGmKhce2Sk" role="2Oq$k0">
<ref role="3cqZAo" node="1GGmKhce2RR" resolve="builder" />
</node>
<node concept="liA8E" id="1GGmKhce2Sl" role="2OqNvi">
<ref role="37wK5l" node="1GGmKhcetY0" resolve="withTypeOf" />
<node concept="37vLTw" id="1GGmKhce2Sm" role="37wK5m">
<ref role="3cqZAo" node="1GGmKhce2RN" resolve="node" />
</node>
</node>
</node>
<node concept="liA8E" id="1GGmKhce2Sn" role="2OqNvi">
<ref role="37wK5l" node="WJTIIom0Xk" resolve="launch" />
</node>
</node>
</node>
</node>
<node concept="3uibUv" id="1GGmKhce2So" role="3clF45">
<ref role="3uigEE" node="WJTIIojUvH" resolve="IncrementalTestBuilder" />
</node>
<node concept="3Tm1VV" id="1GGmKhce2Sp" role="1B3o_S" />
</node>
<node concept="2tJIrI" id="1GGmKhcemgO" role="jymVt" />
<node concept="2YIFZL" id="WJTIIokwcy" role="jymVt">
<property role="TrG5h" value="forCheck" />
<node concept="37vLTG" id="WJTIIoksJW" role="3clF46">
@ -5968,6 +6199,65 @@
<ref role="3uigEE" node="WJTIIojUvH" resolve="IncrementalTestBuilder" />
</node>
</node>
<node concept="2tJIrI" id="1GGmKhceyjB" role="jymVt" />
<node concept="3clFb_" id="1GGmKhcetY0" role="jymVt">
<property role="TrG5h" value="withTypeOf" />
<node concept="37vLTG" id="1GGmKhcetY1" role="3clF46">
<property role="TrG5h" value="subject" />
<node concept="3Tqbb2" id="1GGmKhcetY2" role="1tU5fm" />
</node>
<node concept="3clFbS" id="1GGmKhcetY5" role="3clF47">
<node concept="3clFbF" id="1GGmKhcetY6" role="3cqZAp">
<node concept="37vLTI" id="1GGmKhcetY7" role="3clFbG">
<node concept="2ShNRf" id="1GGmKhcetY8" role="37vLTx">
<node concept="Tc6Ow" id="1GGmKhcetY9" role="2ShVmc">
<node concept="3Tqbb2" id="1GGmKhcetYa" role="HW$YZ" />
<node concept="37vLTw" id="1GGmKhcetYb" role="HW$Y0">
<ref role="3cqZAo" node="1GGmKhcetY1" resolve="subject" />
</node>
</node>
</node>
<node concept="2OqwBi" id="1GGmKhcetYf" role="37vLTJ">
<node concept="Xjq3P" id="1GGmKhcetYg" role="2Oq$k0" />
<node concept="2OwXpG" id="1GGmKhcetYh" role="2OqNvi">
<ref role="2Oxat5" node="WJTIIoktKX" resolve="inputs" />
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="1GGmKhcetYr" role="3cqZAp">
<node concept="37vLTI" id="1GGmKhcetYs" role="3clFbG">
<node concept="2OqwBi" id="1GGmKhcetYt" role="37vLTJ">
<node concept="Xjq3P" id="1GGmKhcetYu" role="2Oq$k0" />
<node concept="2OwXpG" id="1GGmKhcetYv" role="2OqNvi">
<ref role="2Oxat5" node="3j46jeGNq9j" resolve="query" />
</node>
</node>
<node concept="2OqwBi" id="1GGmKhcfgyR" role="37vLTx">
<node concept="2OqwBi" id="1GGmKhcfff6" role="2Oq$k0">
<node concept="Xjq3P" id="1GGmKhcff60" role="2Oq$k0" />
<node concept="2OwXpG" id="1GGmKhcffsr" role="2OqNvi">
<ref role="2Oxat5" node="WJTIIokuum" resolve="launcher" />
</node>
</node>
<node concept="liA8E" id="1GGmKhcfhJh" role="2OqNvi">
<ref role="37wK5l" node="1GGmKhceXt3" resolve="getTypeOfQuery" />
<node concept="37vLTw" id="1GGmKhcfidD" role="37wK5m">
<ref role="3cqZAo" node="1GGmKhcetY1" resolve="subject" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="1GGmKhcetY$" role="3cqZAp">
<node concept="Xjq3P" id="1GGmKhcetY_" role="3clFbG" />
</node>
</node>
<node concept="3Tm1VV" id="1GGmKhcetYA" role="1B3o_S" />
<node concept="3uibUv" id="1GGmKhcetYB" role="3clF45">
<ref role="3uigEE" node="WJTIIojUvH" resolve="IncrementalTestBuilder" />
</node>
</node>
<node concept="2tJIrI" id="3j46jeGPPBg" role="jymVt" />
<node concept="3clFb_" id="3j46jeGPMhI" role="jymVt">
<property role="TrG5h" value="withCheck" />
@ -6678,6 +6968,165 @@
</node>
</node>
</node>
<node concept="2tJIrI" id="1GGmKhc$p3D" role="jymVt" />
<node concept="3clFb_" id="1GGmKhc$jHK" role="jymVt">
<property role="TrG5h" value="ensureInCache" />
<node concept="3clFbS" id="1GGmKhc$jHL" role="3clF47">
<node concept="3cpWs6" id="1GGmKhc$jI8" role="3cqZAp">
<node concept="1rXfSq" id="1GGmKhc$Hli" role="3cqZAk">
<ref role="37wK5l" node="1GGmKhciFYc" resolve="ensureInCacheImpl" />
<node concept="2OqwBi" id="1GGmKhcAEJN" role="37wK5m">
<node concept="37vLTw" id="1GGmKhc$MmC" role="2Oq$k0">
<ref role="3cqZAo" node="1GGmKhc$jIc" resolve="constraint_node" />
</node>
<node concept="39bAoz" id="1GGmKhcAJnQ" role="2OqNvi" />
</node>
</node>
</node>
</node>
<node concept="3Tm1VV" id="1GGmKhc$jIa" role="1B3o_S" />
<node concept="3uibUv" id="1GGmKhc$jIb" role="3clF45">
<ref role="3uigEE" node="WJTIIojUvH" resolve="IncrementalTestBuilder" />
</node>
<node concept="37vLTG" id="1GGmKhc$jIc" role="3clF46">
<property role="TrG5h" value="constraint_node" />
<node concept="8X2XB" id="1GGmKhc$jId" role="1tU5fm">
<node concept="1LlUBW" id="1GGmKhc$jIe" role="8Xvag">
<node concept="17QB3L" id="1GGmKhc$jIf" role="1Lm7xW" />
<node concept="3Tqbb2" id="1GGmKhc$jIg" role="1Lm7xW" />
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="1GGmKhcix5y" role="jymVt" />
<node concept="3clFb_" id="1GGmKhcmlgD" role="jymVt">
<property role="TrG5h" value="ensureInCache" />
<node concept="3clFbS" id="1GGmKhcmlgE" role="3clF47">
<node concept="3cpWs6" id="1GGmKhcyC_q" role="3cqZAp">
<node concept="1rXfSq" id="1GGmKhcyC_r" role="3cqZAk">
<ref role="37wK5l" node="1GGmKhciFYc" resolve="ensureInCacheImpl" />
<node concept="2OqwBi" id="1GGmKhcA7ZW" role="37wK5m">
<node concept="2OqwBi" id="1GGmKhc_t_E" role="2Oq$k0">
<node concept="2OqwBi" id="1GGmKhc_jmG" role="2Oq$k0">
<node concept="37vLTw" id="1GGmKhc_h5N" role="2Oq$k0">
<ref role="3cqZAo" node="1GGmKhcorNa" resolve="nodes" />
</node>
<node concept="39bAoz" id="1GGmKhc_oGD" role="2OqNvi" />
</node>
<node concept="3$u5V9" id="1GGmKhc_yVM" role="2OqNvi">
<node concept="1bVj0M" id="1GGmKhc_yVO" role="23t8la">
<node concept="3clFbS" id="1GGmKhc_yVP" role="1bW5cS">
<node concept="3clFbF" id="1GGmKhc_M0O" role="3cqZAp">
<node concept="1Ls8ON" id="1GGmKhc_M0N" role="3clFbG">
<node concept="37vLTw" id="1GGmKhc_T9b" role="1Lso8e">
<ref role="3cqZAo" node="1GGmKhcmxmx" resolve="constraintName" />
</node>
<node concept="37vLTw" id="1GGmKhcA2X5" role="1Lso8e">
<ref role="3cqZAo" node="1GGmKhc_yVQ" resolve="it" />
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="1GGmKhc_yVQ" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="1GGmKhc_yVR" role="1tU5fm" />
</node>
</node>
</node>
</node>
<node concept="ANE8D" id="1GGmKhcAdfW" role="2OqNvi" />
</node>
</node>
</node>
</node>
<node concept="3Tm1VV" id="1GGmKhcmlh3" role="1B3o_S" />
<node concept="3uibUv" id="1GGmKhcmlh4" role="3clF45">
<ref role="3uigEE" node="WJTIIojUvH" resolve="IncrementalTestBuilder" />
</node>
<node concept="37vLTG" id="1GGmKhcmxmx" role="3clF46">
<property role="TrG5h" value="constraintName" />
<node concept="17QB3L" id="1GGmKhcmxmw" role="1tU5fm" />
</node>
<node concept="37vLTG" id="1GGmKhcorNa" role="3clF46">
<property role="TrG5h" value="nodes" />
<node concept="8X2XB" id="1GGmKhcoW6z" role="1tU5fm">
<node concept="3Tqbb2" id="1GGmKhcotJe" role="8Xvag" />
</node>
</node>
</node>
<node concept="2tJIrI" id="1GGmKhcmkWE" role="jymVt" />
<node concept="3clFb_" id="1GGmKhciFYc" role="jymVt">
<property role="TrG5h" value="ensureInCacheImpl" />
<node concept="3clFbS" id="1GGmKhciFYf" role="3clF47">
<node concept="3cpWs8" id="1GGmKhcjNFA" role="3cqZAp">
<node concept="3cpWsn" id="1GGmKhcjNFD" role="3cpWs9">
<property role="TrG5h" value="cached" />
<node concept="3vKaQO" id="1GGmKhcjNFz" role="1tU5fm">
<node concept="1LlUBW" id="1GGmKhcjQ3E" role="3O5elw">
<node concept="17QB3L" id="1GGmKhcjQ3F" role="1Lm7xW" />
<node concept="3Tqbb2" id="1GGmKhcjQ3G" role="1Lm7xW" />
</node>
</node>
<node concept="1rXfSq" id="1GGmKhcke0T" role="33vP2m">
<ref role="37wK5l" node="1GGmKhck6u5" resolve="getCachedOccurrences" />
</node>
</node>
</node>
<node concept="2Gpval" id="1GGmKhcjEQB" role="3cqZAp">
<node concept="2GrKxI" id="1GGmKhcjEQD" role="2Gsz3X">
<property role="TrG5h" value="ctr_node" />
</node>
<node concept="37vLTw" id="1GGmKhcjIJi" role="2GsD0m">
<ref role="3cqZAo" node="1GGmKhciSud" resolve="constraint_node" />
</node>
<node concept="3clFbS" id="1GGmKhcjEQH" role="2LFqv$">
<node concept="3vwNmj" id="1GGmKhcl_2M" role="3cqZAp">
<node concept="2OqwBi" id="1GGmKhcl_Eq" role="3vwVQn">
<node concept="37vLTw" id="1GGmKhcl_7L" role="2Oq$k0">
<ref role="3cqZAo" node="1GGmKhcjNFD" resolve="cached" />
</node>
<node concept="3JPx81" id="1GGmKhclAgE" role="2OqNvi">
<node concept="2GrUjf" id="1GGmKhclAmm" role="25WWJ7">
<ref role="2Gs0qQ" node="1GGmKhcjEQD" resolve="ctr_node" />
</node>
</node>
</node>
<node concept="3_1$Yv" id="1GGmKhclADF" role="3_9lra">
<node concept="3cpWs3" id="1GGmKhclBSh" role="3_1BAH">
<node concept="Xl_RD" id="1GGmKhclC1F" role="3uHU7w">
<property role="Xl_RC" value=" is not in cache" />
</node>
<node concept="3cpWs3" id="1GGmKhclB1$" role="3uHU7B">
<node concept="Xl_RD" id="1GGmKhclAIE" role="3uHU7B">
<property role="Xl_RC" value="occurrence " />
</node>
<node concept="2GrUjf" id="1GGmKhclBuN" role="3uHU7w">
<ref role="2Gs0qQ" node="1GGmKhcjEQD" resolve="ctr_node" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWs6" id="1GGmKhcj_y$" role="3cqZAp">
<node concept="Xjq3P" id="1GGmKhcjBbK" role="3cqZAk" />
</node>
</node>
<node concept="3Tm6S6" id="1GGmKhc$RyM" role="1B3o_S" />
<node concept="3uibUv" id="1GGmKhciEpp" role="3clF45">
<ref role="3uigEE" node="WJTIIojUvH" resolve="IncrementalTestBuilder" />
</node>
<node concept="37vLTG" id="1GGmKhciSud" role="3clF46">
<property role="TrG5h" value="constraint_node" />
<node concept="A3Dl8" id="1GGmKhc$zuD" role="1tU5fm">
<node concept="1LlUBW" id="1GGmKhc$zuE" role="A3Ik2">
<node concept="17QB3L" id="1GGmKhc$zuF" role="1Lm7xW" />
<node concept="3Tqbb2" id="1GGmKhc$zuG" role="1Lm7xW" />
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="6jc_YgcYs0R" role="jymVt" />
<node concept="3clFb_" id="WJTIIomj2Y" role="jymVt">
<property role="TrG5h" value="ensureType" />
@ -7590,6 +8039,191 @@
<node concept="3Tm1VV" id="WJTIIpa4c5" role="1B3o_S" />
</node>
<node concept="2tJIrI" id="WJTIIpa8W9" role="jymVt" />
<node concept="2tJIrI" id="1GGmKhclwCy" role="jymVt" />
<node concept="3clFb_" id="1GGmKhck6u5" role="jymVt">
<property role="TrG5h" value="getCachedOccurrences" />
<node concept="3clFbS" id="1GGmKhck6u8" role="3clF47">
<node concept="3cpWs8" id="1GGmKhckc2A" role="3cqZAp">
<node concept="3cpWsn" id="1GGmKhckc2B" role="3cpWs9">
<property role="TrG5h" value="cachedOccs" />
<node concept="3vKaQO" id="1GGmKhckc2C" role="1tU5fm">
<node concept="3uibUv" id="1GGmKhckc2D" role="3O5elw">
<ref role="3uigEE" to="w7la:~ConstraintOccurrence" resolve="ConstraintOccurrence" />
</node>
</node>
<node concept="2OqwBi" id="1GGmKhckc2E" role="33vP2m">
<node concept="37vLTw" id="1GGmKhckc2F" role="2Oq$k0">
<ref role="3cqZAo" node="WJTIIokuum" resolve="launcher" />
</node>
<node concept="liA8E" id="1GGmKhckc2G" role="2OqNvi">
<ref role="37wK5l" node="1GGmKhcjhMF" resolve="getOccurrenceCache" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="1GGmKhckc2H" role="3cqZAp">
<node concept="3cpWsn" id="1GGmKhckc2I" role="3cpWs9">
<property role="TrG5h" value="cachedSymbols" />
<node concept="3vKaQO" id="1GGmKhckc2J" role="1tU5fm">
<node concept="1LlUBW" id="1GGmKhckc2K" role="3O5elw">
<node concept="17QB3L" id="1GGmKhckc2L" role="1Lm7xW" />
<node concept="3Tqbb2" id="1GGmKhckc2M" role="1Lm7xW" />
</node>
</node>
<node concept="2ShNRf" id="1GGmKhckc2N" role="33vP2m">
<node concept="2i4dXS" id="1GGmKhckc2O" role="2ShVmc">
<node concept="1LlUBW" id="1GGmKhckc2P" role="HW$YZ">
<node concept="17QB3L" id="1GGmKhckc2Q" role="1Lm7xW" />
<node concept="3Tqbb2" id="1GGmKhckc2R" role="1Lm7xW" />
</node>
</node>
</node>
</node>
</node>
<node concept="2Gpval" id="1GGmKhckr5r" role="3cqZAp">
<node concept="2GrKxI" id="1GGmKhckr5t" role="2Gsz3X">
<property role="TrG5h" value="occ" />
</node>
<node concept="37vLTw" id="1GGmKhckrkW" role="2GsD0m">
<ref role="3cqZAo" node="1GGmKhckc2B" resolve="cachedOccs" />
</node>
<node concept="3clFbS" id="1GGmKhckr5x" role="2LFqv$">
<node concept="3cpWs8" id="1GGmKhcktbX" role="3cqZAp">
<node concept="3cpWsn" id="1GGmKhcktc0" role="3cpWs9">
<property role="TrG5h" value="constraintName" />
<node concept="17QB3L" id="1GGmKhcktbV" role="1tU5fm" />
<node concept="2OqwBi" id="1GGmKhckuh4" role="33vP2m">
<node concept="2OqwBi" id="1GGmKhcktR$" role="2Oq$k0">
<node concept="2OqwBi" id="1GGmKhckty7" role="2Oq$k0">
<node concept="2GrUjf" id="1GGmKhcktnH" role="2Oq$k0">
<ref role="2Gs0qQ" node="1GGmKhckr5t" resolve="occ" />
</node>
<node concept="liA8E" id="1GGmKhcktEN" role="2OqNvi">
<ref role="37wK5l" to="w7la:~ConstraintOccurrence.constraint()" resolve="constraint" />
</node>
</node>
<node concept="liA8E" id="1GGmKhcku3S" role="2OqNvi">
<ref role="37wK5l" to="av0y:~Constraint.symbol()" resolve="symbol" />
</node>
</node>
<node concept="liA8E" id="1GGmKhckuwm" role="2OqNvi">
<ref role="37wK5l" to="av0y:~Symbol.id()" resolve="id" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="1GGmKhckuF9" role="3cqZAp">
<node concept="3cpWsn" id="1GGmKhckuFc" role="3cpWs9">
<property role="TrG5h" value="targetNode" />
<node concept="3Tqbb2" id="1GGmKhckuF7" role="1tU5fm" />
<node concept="1rXfSq" id="1GGmKhckQDy" role="33vP2m">
<ref role="37wK5l" node="1imVejVCTNP" resolve="targetNode" />
<node concept="2GrUjf" id="1GGmKhckS3g" role="37wK5m">
<ref role="2Gs0qQ" node="1GGmKhckr5t" resolve="occ" />
</node>
</node>
</node>
</node>
<node concept="3clFbJ" id="1GGmKhckSt8" role="3cqZAp">
<node concept="3y3z36" id="1GGmKhckSSG" role="3clFbw">
<node concept="10Nm6u" id="1GGmKhckT5A" role="3uHU7w" />
<node concept="37vLTw" id="1GGmKhckSFQ" role="3uHU7B">
<ref role="3cqZAo" node="1GGmKhckuFc" resolve="targetNode" />
</node>
</node>
<node concept="3clFbS" id="1GGmKhckSta" role="3clFbx">
<node concept="3clFbF" id="1GGmKhckrB1" role="3cqZAp">
<node concept="2OqwBi" id="1GGmKhcksbi" role="3clFbG">
<node concept="37vLTw" id="1GGmKhckrB0" role="2Oq$k0">
<ref role="3cqZAo" node="1GGmKhckc2I" resolve="cachedSymbols" />
</node>
<node concept="TSZUe" id="1GGmKhcksNP" role="2OqNvi">
<node concept="1Ls8ON" id="1GGmKhcksZ7" role="25WWJ7">
<node concept="37vLTw" id="1GGmKhckTnh" role="1Lso8e">
<ref role="3cqZAo" node="1GGmKhcktc0" resolve="constraintName" />
</node>
<node concept="37vLTw" id="1GGmKhckTCP" role="1Lso8e">
<ref role="3cqZAo" node="1GGmKhckuFc" resolve="targetNode" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWs6" id="1GGmKhckUhv" role="3cqZAp">
<node concept="37vLTw" id="1GGmKhckU_Q" role="3cqZAk">
<ref role="3cqZAo" node="1GGmKhckc2I" resolve="cachedSymbols" />
</node>
</node>
</node>
<node concept="3Tm6S6" id="1GGmKhck2s1" role="1B3o_S" />
<node concept="3vKaQO" id="1GGmKhck8lj" role="3clF45">
<node concept="1LlUBW" id="1GGmKhck8lk" role="3O5elw">
<node concept="17QB3L" id="1GGmKhck8ll" role="1Lm7xW" />
<node concept="3Tqbb2" id="1GGmKhck8lm" role="1Lm7xW" />
</node>
</node>
</node>
<node concept="2tJIrI" id="1GGmKhckMoq" role="jymVt" />
<node concept="3clFb_" id="1imVejVCTNP" role="jymVt">
<property role="TrG5h" value="targetNode" />
<node concept="3clFbS" id="1imVejVCTNS" role="3clF47">
<node concept="2Gpval" id="1imVejVCNfF" role="3cqZAp">
<node concept="2GrKxI" id="1imVejVCNfH" role="2Gsz3X">
<property role="TrG5h" value="arg" />
</node>
<node concept="2OqwBi" id="1imVejVCNvH" role="2GsD0m">
<node concept="37vLTw" id="1imVejVDjYv" role="2Oq$k0">
<ref role="3cqZAo" node="1imVejVCXs3" resolve="occ" />
</node>
<node concept="liA8E" id="1imVejVCNPl" role="2OqNvi">
<ref role="37wK5l" to="w7la:~ConstraintOccurrence.arguments()" resolve="arguments" />
</node>
</node>
<node concept="3clFbS" id="1imVejVCNfL" role="2LFqv$">
<node concept="3clFbJ" id="1imVejVCNZS" role="3cqZAp">
<node concept="2ZW3vV" id="1imVejVCOkg" role="3clFbw">
<node concept="3uibUv" id="1imVejVCOnN" role="2ZW6by">
<ref role="3uigEE" to="mhbf:~SNode" resolve="SNode" />
</node>
<node concept="2GrUjf" id="1imVejVDgNC" role="2ZW6bz">
<ref role="2Gs0qQ" node="1imVejVCNfH" resolve="arg" />
</node>
</node>
<node concept="3clFbS" id="1imVejVCNZU" role="3clFbx">
<node concept="3cpWs6" id="1imVejVD5i6" role="3cqZAp">
<node concept="10QFUN" id="1imVejVE8sR" role="3cqZAk">
<node concept="2GrUjf" id="1imVejVE8sQ" role="10QFUP">
<ref role="2Gs0qQ" node="1imVejVCNfH" resolve="arg" />
</node>
<node concept="3uibUv" id="1imVejVE8sP" role="10QFUM">
<ref role="3uigEE" to="mhbf:~SNode" resolve="SNode" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3cpWs6" id="1imVejVDach" role="3cqZAp">
<node concept="10Nm6u" id="1imVejVDdS1" role="3cqZAk" />
</node>
</node>
<node concept="3Tm6S6" id="1imVejVCROH" role="1B3o_S" />
<node concept="37vLTG" id="1imVejVCXs3" role="3clF46">
<property role="TrG5h" value="occ" />
<node concept="3uibUv" id="1imVejVCXs2" role="1tU5fm">
<ref role="3uigEE" to="w7la:~ConstraintOccurrence" resolve="ConstraintOccurrence" />
</node>
</node>
<node concept="3uibUv" id="1imVejVD21_" role="3clF45">
<ref role="3uigEE" to="mhbf:~SNode" resolve="SNode" />
</node>
</node>
<node concept="2tJIrI" id="1GGmKhclfox" role="jymVt" />
<node concept="3clFb_" id="WJTIIokCYI" role="jymVt">
<property role="TrG5h" value="cmpTypeSets" />
<node concept="37vLTG" id="WJTIIokCYK" role="3clF46">

View File

@ -563,523 +563,6 @@
<property role="TrG5h" value="introducedTypeVars" />
</node>
</node>
<node concept="1nLNMY" id="1IKbs5XDAuv" role="1nK1Vg">
<property role="TrG5h" value="test_rules" />
<node concept="3clFbS" id="1IKbs5XDAuw" role="1nLNMH">
<node concept="1nLNNL" id="1IKbs5XDAK5" role="3cqZAp">
<node concept="1nLNMm" id="1IKbs5XDAK6" role="1nLNNK">
<node concept="3Aq9_M" id="1IKbs5XDALn" role="1nLNMa">
<node concept="3I6sU6" id="1IKbs5XDALo" role="3Ip0Jz">
<node concept="3I6s7M" id="1IKbs5XDANW" role="3I6sU7">
<node concept="2aLmEc" id="1IKbs5XDANV" role="3I6s78">
<node concept="a7P8L" id="1IKbs5XDANZ" role="2aLmnP">
<ref role="a7OzE" node="1IKbs5XDAKq" resolve="A" />
</node>
</node>
</node>
<node concept="3I6s7M" id="1IKbs5XDAOa" role="3I6sU7">
<node concept="2aLmEc" id="1IKbs5XDAO8" role="3I6s78">
<node concept="a7P8L" id="1IKbs5XDAOg" role="2aLmnP">
<ref role="a7OzE" node="1IKbs5XDAKz" resolve="B" />
</node>
</node>
</node>
</node>
</node>
<node concept="3NuqgR" id="1IKbs5XDAKp" role="0Rg$4">
<node concept="aZer4" id="1IKbs5XDAKq" role="3XD1gS">
<property role="TrG5h" value="A" />
</node>
<node concept="aZer4" id="1IKbs5XDAKz" role="3XD1gS">
<property role="TrG5h" value="B" />
</node>
<node concept="aZer4" id="1IKbs5XE3w$" role="3XD1gS">
<property role="TrG5h" value="U1" />
</node>
<node concept="aZer4" id="1IKbs5XE3xf" role="3XD1gS">
<property role="TrG5h" value="U2" />
</node>
<node concept="32pEOW" id="24ciDNzxNwT" role="3vLBG7" />
</node>
<node concept="3NuqgR" id="1IKbs5XDAKJ" role="0Rg$4">
<node concept="aZer4" id="1IKbs5XDAKK" role="3XD1gS">
<property role="TrG5h" value="Same" />
</node>
<node concept="aZer4" id="1IKbs5XDAL5" role="3XD1gS">
<property role="TrG5h" value="Diff" />
</node>
<node concept="32pEOW" id="24ciDNzxNwU" role="3vLBG7" />
</node>
<node concept="3NuqgR" id="1IKbs5XDAMp" role="0Rg$4">
<node concept="aZer4" id="1IKbs5XDAMq" role="3XD1gS">
<property role="TrG5h" value="CSame" />
</node>
<node concept="aZer4" id="1IKbs5XDAN2" role="3XD1gS">
<property role="TrG5h" value="CDiff" />
</node>
<node concept="32pEOW" id="24ciDNzxNwV" role="3vLBG7" />
</node>
<node concept="3xSepi" id="6E2cNicdhkl" role="3xSepv">
<node concept="3Aq9E8" id="1IKbs5XDALh" role="3xSepj">
<node concept="3I6sU6" id="1IKbs5XDALi" role="3Ip0Jz">
<node concept="3IrJb3" id="1IKbs5XDAU6" role="3I6sU7">
<node concept="3clFbS" id="1IKbs5XDAU7" role="3IrJb0">
<node concept="3Aqczg" id="1IKbs5XE3ys" role="3cqZAp">
<node concept="3A8Hvi" id="1IKbs5XE3z4" role="3Aqpz8">
<node concept="a7P8L" id="1IKbs5XE3zd" role="3A8wtg">
<ref role="a7OzE" node="1IKbs5XDAKq" resolve="A" />
</node>
<node concept="a7P8L" id="1IKbs5XE3zi" role="3A8w4Q">
<ref role="a7OzE" node="1IKbs5XE3w$" resolve="U1" />
</node>
</node>
</node>
<node concept="3Aqczg" id="1IKbs5XE3zZ" role="3cqZAp">
<node concept="3A8Hvi" id="1IKbs5XE3$F" role="3Aqpz8">
<node concept="a7P8L" id="1IKbs5XE3$O" role="3A8wtg">
<ref role="a7OzE" node="1IKbs5XDAKz" resolve="B" />
</node>
<node concept="a7P8L" id="1IKbs5XE3$T" role="3A8w4Q">
<ref role="a7OzE" node="1IKbs5XE3xf" resolve="U2" />
</node>
</node>
</node>
<node concept="3clFbH" id="1IKbs5XE3Ak" role="3cqZAp" />
<node concept="3Aqczg" id="1IKbs5XDAUb" role="3cqZAp">
<node concept="3A8Hvi" id="1IKbs5XDASN" role="3Aqpz8">
<node concept="a7P8L" id="1IKbs5XDATm" role="3A8wtg">
<ref role="a7OzE" node="1IKbs5XDAL5" resolve="Diff" />
</node>
<node concept="ns1u0" id="1IKbs5XDATr" role="3A8w4Q">
<ref role="ns1xF" node="JqEP$8smGC" resolve="Pair" />
<node concept="nsMwS" id="1IKbs5XDATt" role="ns1xD">
<ref role="nsMwP" node="JqEP$8smGP" resolve="fst" />
<node concept="1nq8_$" id="1IKbs5XDATz" role="nsMwV">
<node concept="a7P8L" id="1IKbs5XDATx" role="1nq8_t">
<ref role="a7OzE" node="1IKbs5XDAKq" resolve="A" />
</node>
</node>
</node>
<node concept="nsMwS" id="1IKbs5XDATE" role="ns1xD">
<ref role="nsMwP" node="JqEP$8smGY" resolve="snd" />
<node concept="1nq8_$" id="1IKbs5XDATN" role="nsMwV">
<node concept="a7P8L" id="1IKbs5XDATL" role="1nq8_t">
<ref role="a7OzE" node="1IKbs5XDAKz" resolve="B" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3Aqczg" id="1IKbs5XDAUc" role="3cqZAp">
<node concept="3A8Hvi" id="1IKbs5XDARr" role="3Aqpz8">
<node concept="a7P8L" id="1IKbs5XDASh" role="3A8wtg">
<ref role="a7OzE" node="1IKbs5XDAN2" resolve="CDiff" />
</node>
<node concept="9KH4l" id="1IKbs5XDAS6" role="3A8w4Q">
<node concept="a7P8L" id="1IKbs5XDATU" role="9KHbC">
<ref role="a7OzE" node="1IKbs5XDAL5" resolve="Diff" />
</node>
</node>
</node>
</node>
<node concept="3Aqczg" id="1IKbs5XDAUa" role="3cqZAp">
<node concept="3A8Hvi" id="1IKbs5XDAQy" role="3Aqpz8">
<node concept="a7P8L" id="1IKbs5XE3Bk" role="3A8wtg">
<ref role="a7OzE" node="1IKbs5XE3w$" resolve="U1" />
</node>
<node concept="a7P8L" id="1IKbs5XE3B0" role="3A8w4Q">
<ref role="a7OzE" node="1IKbs5XE3xf" resolve="U2" />
</node>
</node>
</node>
<node concept="3Aqczg" id="1IKbs5XDAU8" role="3cqZAp">
<node concept="3A8Hvi" id="1IKbs5XDAMb" role="3Aqpz8">
<node concept="a7P8L" id="1IKbs5XDAMk" role="3A8wtg">
<ref role="a7OzE" node="1IKbs5XDAKK" resolve="Same" />
</node>
<node concept="ns1u0" id="1IKbs5XDANk" role="3A8w4Q">
<ref role="ns1xF" node="JqEP$8smGC" resolve="Pair" />
<node concept="nsMwS" id="1IKbs5XDANm" role="ns1xD">
<ref role="nsMwP" node="JqEP$8smGP" resolve="fst" />
<node concept="1nq8_$" id="1IKbs5XDAN$" role="nsMwV">
<node concept="a7P8L" id="1IKbs5XDANy" role="1nq8_t">
<ref role="a7OzE" node="1IKbs5XDAKq" resolve="A" />
</node>
</node>
</node>
<node concept="nsMwS" id="1IKbs5XDANF" role="ns1xD">
<ref role="nsMwP" node="JqEP$8smGY" resolve="snd" />
<node concept="1nq8_$" id="1IKbs5XDANO" role="nsMwV">
<node concept="a7P8L" id="1IKbs5XDANM" role="1nq8_t">
<ref role="a7OzE" node="1IKbs5XDAKz" resolve="B" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3Aqczg" id="1IKbs5XDAU9" role="3cqZAp">
<node concept="3A8Hvi" id="1IKbs5XDAOw" role="3Aqpz8">
<node concept="a7P8L" id="1IKbs5XDAOP" role="3A8wtg">
<ref role="a7OzE" node="1IKbs5XDAMq" resolve="CSame" />
</node>
<node concept="9KH4l" id="1IKbs5XDAOU" role="3A8w4Q">
<node concept="a7P8L" id="1IKbs5XDAP0" role="9KHbC">
<ref role="a7OzE" node="1IKbs5XDAKK" resolve="Same" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="3vXKzDNXAtR" role="3cqZAp" />
<node concept="1nLNNL" id="3vXKzDNXAw6" role="3cqZAp">
<node concept="1nLNMm" id="3vXKzDNXAw8" role="1nLNNK">
<node concept="3Aq9_M" id="3vXKzDNY15O" role="1nLNMa">
<node concept="3I6sU6" id="3vXKzDNY15P" role="3Ip0Jz">
<node concept="3I6s7M" id="3vXKzDNY15T" role="3I6sU7">
<node concept="2aLmEc" id="3vXKzDNY15S" role="3I6s78">
<node concept="a7P8L" id="3vXKzDNY15W" role="2aLmnP">
<ref role="a7OzE" node="3vXKzDNXAHO" resolve="Free" />
</node>
</node>
</node>
</node>
</node>
<node concept="3NuqgR" id="3vXKzDNXABu" role="0Rg$4">
<node concept="aZer4" id="3vXKzDNXABv" role="3XD1gS">
<property role="TrG5h" value="C" />
</node>
<node concept="aZer4" id="3vXKzDNXABC" role="3XD1gS">
<property role="TrG5h" value="S" />
</node>
<node concept="aZer4" id="3vXKzDNXAC$" role="3XD1gS">
<property role="TrG5h" value="T" />
</node>
<node concept="32pEOW" id="24ciDNzxNwW" role="3vLBG7" />
</node>
<node concept="3NuqgR" id="3vXKzDNXAHN" role="0Rg$4">
<node concept="aZer4" id="3vXKzDNXAHO" role="3XD1gS">
<property role="TrG5h" value="Free" />
</node>
<node concept="32pEOW" id="24ciDNzxNwX" role="3vLBG7" />
</node>
<node concept="3NuqgR" id="5TXeSYSEKP_" role="0Rg$4">
<node concept="aZer4" id="5TXeSYSEKPA" role="3XD1gS">
<property role="TrG5h" value="A" />
</node>
<node concept="aZer4" id="5TXeSYSEKPB" role="3XD1gS">
<property role="TrG5h" value="B" />
</node>
<node concept="32pEOW" id="24ciDNzxNwY" role="3vLBG7" />
</node>
<node concept="3xSepi" id="6E2cNicdhkm" role="3xSepv">
<node concept="3Aq9E8" id="3vXKzDNXAxl" role="3xSepj">
<node concept="3I6sU6" id="3vXKzDNXAxm" role="3Ip0Jz">
<node concept="3IrJb3" id="3vXKzDNXAAH" role="3I6sU7">
<node concept="3clFbS" id="3vXKzDNXAAI" role="3IrJb0">
<node concept="3Aqczg" id="3vXKzDNXAAJ" role="3cqZAp">
<node concept="3A8Hvi" id="3vXKzDNXAxp" role="3Aqpz8">
<node concept="a7P8L" id="3vXKzDNXAxx" role="3A8wtg">
<ref role="a7OzE" node="5TXeSYSEKPA" resolve="A" />
</node>
<node concept="a7P8L" id="3vXKzDNXAxA" role="3A8w4Q">
<ref role="a7OzE" node="5TXeSYSEKPB" resolve="B" />
</node>
</node>
</node>
<node concept="3Aqczg" id="3vXKzDNXACm" role="3cqZAp">
<node concept="3A8Hvi" id="3vXKzDNXACQ" role="3Aqpz8">
<node concept="a7P8L" id="3vXKzDNXACZ" role="3A8wtg">
<ref role="a7OzE" node="3vXKzDNXAC$" resolve="T" />
</node>
<node concept="ns1u0" id="3vXKzDNXAEf" role="3A8w4Q">
<ref role="ns1xF" node="JqEP$8smGC" resolve="Pair" />
<node concept="nsMwS" id="3vXKzDNXAEh" role="ns1xD">
<ref role="nsMwP" node="JqEP$8smGP" resolve="fst" />
<node concept="1nq8_$" id="3vXKzDNXAEn" role="nsMwV">
<node concept="a7P8L" id="3vXKzDNXAEl" role="1nq8_t">
<ref role="a7OzE" node="5TXeSYSEKPA" resolve="A" />
</node>
</node>
</node>
<node concept="nsMwS" id="3vXKzDNXAEu" role="ns1xD">
<ref role="nsMwP" node="JqEP$8smGY" resolve="snd" />
<node concept="1nq8_$" id="3vXKzDNXAEB" role="nsMwV">
<node concept="a7P8L" id="3vXKzDNXAE_" role="1nq8_t">
<ref role="a7OzE" node="5TXeSYSEKPB" resolve="B" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3Aqczg" id="3vXKzDNXABO" role="3cqZAp">
<node concept="3A8Hvi" id="3vXKzDNXABY" role="3Aqpz8">
<node concept="a7P8L" id="3vXKzDNXAC7" role="3A8wtg">
<ref role="a7OzE" node="3vXKzDNXABC" resolve="S" />
</node>
<node concept="1lh$Hi" id="3vXKzDNXAHy" role="3A8w4Q">
<node concept="a7P8L" id="3vXKzDNXAHI" role="1lh$Hv">
<ref role="a7OzE" node="3vXKzDNXAC$" resolve="T" />
</node>
<node concept="a7P8L" id="3vXKzDNXAIf" role="1lh$H$">
<ref role="a7OzE" node="5TXeSYSEKPB" resolve="B" />
</node>
<node concept="a7P8L" id="3vXKzDNXAIa" role="1lh$Hx">
<ref role="a7OzE" node="3vXKzDNXAHO" resolve="Free" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="oqSSCJcrV1" role="3cqZAp" />
<node concept="1nLNNL" id="oqSSCJcrPS" role="3cqZAp">
<node concept="1nLNMm" id="oqSSCJcrPT" role="1nLNNK">
<node concept="3Aq9_M" id="oqSSCJcrQX" role="1nLNMa">
<node concept="3I6sU6" id="oqSSCJcrQY" role="3Ip0Jz">
<node concept="3I6s7M" id="oqSSCJcrQZ" role="3I6sU7">
<node concept="2aLmEc" id="oqSSCJcrR0" role="3I6s78">
<node concept="a7P8L" id="oqSSCJdqUw" role="2aLmnP">
<ref role="a7OzE" node="5TXeSYSELal" resolve="Free" />
</node>
</node>
</node>
</node>
</node>
<node concept="3NuqgR" id="5TXeSYSELai" role="0Rg$4">
<node concept="aZer4" id="5TXeSYSELaj" role="3XD1gS">
<property role="TrG5h" value="A" />
</node>
<node concept="aZer4" id="5TXeSYSELak" role="3XD1gS">
<property role="TrG5h" value="B" />
</node>
<node concept="aZer4" id="5TXeSYSELal" role="3XD1gS">
<property role="TrG5h" value="Free" />
</node>
<node concept="aZer4" id="5TXeSYSELMB" role="3XD1gS">
<property role="TrG5h" value="S" />
</node>
<node concept="aZer4" id="5TXeSYSEL_3" role="3XD1gS">
<property role="TrG5h" value="T" />
</node>
<node concept="32pEOW" id="24ciDNzxNwZ" role="3vLBG7" />
</node>
<node concept="3xSepi" id="6E2cNicdhkn" role="3xSepv">
<node concept="3Aq9E8" id="oqSSCJcrQ1" role="3xSepj">
<node concept="3I6sU6" id="oqSSCJcrQ2" role="3Ip0Jz">
<node concept="3IrJb3" id="oqSSCJcrQ3" role="3I6sU7">
<node concept="3clFbS" id="oqSSCJcrQ4" role="3IrJb0">
<node concept="3Aqczg" id="oqSSCJcrQ5" role="3cqZAp">
<node concept="3A8Hvi" id="oqSSCJcrQ6" role="3Aqpz8">
<node concept="a7P8L" id="oqSSCJcrQ7" role="3A8wtg">
<ref role="a7OzE" node="5TXeSYSELaj" resolve="A" />
</node>
<node concept="a7P8L" id="oqSSCJcrQ8" role="3A8w4Q">
<ref role="a7OzE" node="5TXeSYSELak" resolve="B" />
</node>
</node>
</node>
<node concept="3Aqczg" id="oqSSCJcrQt" role="3cqZAp">
<node concept="3A8Hvi" id="oqSSCJcrQu" role="3Aqpz8">
<node concept="a7P8L" id="oqSSCJdqUA" role="3A8wtg">
<ref role="a7OzE" node="5TXeSYSEL_3" resolve="T" />
</node>
<node concept="ns1u0" id="oqSSCJcrQw" role="3A8w4Q">
<ref role="ns1xF" node="JqEP$8smGC" resolve="Pair" />
<node concept="nsMwS" id="oqSSCJcrQx" role="ns1xD">
<ref role="nsMwP" node="JqEP$8smGP" resolve="fst" />
<node concept="1nq8_$" id="oqSSCJcrQy" role="nsMwV">
<node concept="ns1u0" id="oqSSCJcrQz" role="1nq8_t">
<ref role="ns1xF" node="48ZGLP8wdTf" resolve="VarRef" />
<node concept="nsMwS" id="oqSSCJcrQ$" role="ns1xD">
<ref role="nsMwP" node="48ZGLP8wdUk" resolve="def" />
<node concept="1nq8_$" id="oqSSCJcrQ_" role="nsMwV">
<node concept="a7P8L" id="oqSSCJcrQA" role="1nq8_t">
<ref role="a7OzE" node="5TXeSYSELaj" resolve="A" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="nsMwS" id="oqSSCJcrQB" role="ns1xD">
<ref role="nsMwP" node="JqEP$8smGY" resolve="snd" />
<node concept="1nq8_$" id="oqSSCJcrQC" role="nsMwV">
<node concept="ns1u0" id="oqSSCJcrQD" role="1nq8_t">
<ref role="ns1xF" node="48ZGLP8wdTf" resolve="VarRef" />
<node concept="nsMwS" id="oqSSCJcrQE" role="ns1xD">
<ref role="nsMwP" node="48ZGLP8wdUk" resolve="def" />
<node concept="1nq8_$" id="oqSSCJcrQF" role="nsMwV">
<node concept="a7P8L" id="oqSSCJcrQG" role="1nq8_t">
<ref role="a7OzE" node="5TXeSYSELak" resolve="B" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3Aqczg" id="oqSSCJcrQI" role="3cqZAp">
<node concept="3A8Hvi" id="oqSSCJcrQJ" role="3Aqpz8">
<node concept="a7P8L" id="oqSSCJcrQK" role="3A8wtg">
<ref role="a7OzE" node="5TXeSYSELal" resolve="Free" />
</node>
<node concept="ns1u0" id="oqSSCJcrQL" role="3A8w4Q">
<ref role="ns1xF" node="48ZGLP8wdTf" resolve="VarRef" />
<node concept="nsMwS" id="oqSSCJcrQM" role="ns1xD">
<ref role="nsMwP" node="48ZGLP8wdUk" resolve="def" />
<node concept="1nq8_$" id="oqSSCJcrQN" role="nsMwV">
<node concept="a7P8L" id="oqSSCJcrQO" role="1nq8_t">
<ref role="a7OzE" node="5TXeSYSELak" resolve="B" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3Aqczg" id="oqSSCJcrQQ" role="3cqZAp">
<node concept="3A8Hvi" id="oqSSCJcrQR" role="3Aqpz8">
<node concept="a7P8L" id="oqSSCJdqUL" role="3A8wtg">
<ref role="a7OzE" node="5TXeSYSELMB" resolve="S" />
</node>
<node concept="1lh$Hi" id="oqSSCJcrQT" role="3A8w4Q">
<node concept="a7P8L" id="oqSSCJdqUG" role="1lh$Hv">
<ref role="a7OzE" node="5TXeSYSEL_3" resolve="T" />
</node>
<node concept="a7P8L" id="oqSSCJcrQV" role="1lh$H$">
<ref role="a7OzE" node="5TXeSYSELal" resolve="Free" />
</node>
<node concept="a7P8L" id="oqSSCJdqUO" role="1lh$Hx">
<ref role="a7OzE" node="5TXeSYSELal" resolve="Free" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbH" id="oqSSCJcrNA" role="3cqZAp" />
<node concept="1nLNNL" id="47tET_X8c1e" role="3cqZAp">
<node concept="1nLNMm" id="47tET_X8c1g" role="1nLNNK">
<node concept="3NuqgR" id="47tET_X8c42" role="0Rg$4">
<node concept="aZer4" id="47tET_X8c43" role="3XD1gS">
<property role="TrG5h" value="F" />
</node>
<node concept="32pEOW" id="24ciDNzxNx0" role="3vLBG7" />
</node>
<node concept="3NuqgR" id="5TXeSYSEM81" role="0Rg$4">
<node concept="aZer4" id="5TXeSYSEM88" role="3XD1gS">
<property role="TrG5h" value="A" />
</node>
<node concept="aZer4" id="5TXeSYSEM89" role="3XD1gS">
<property role="TrG5h" value="B" />
</node>
<node concept="aZer4" id="5TXeSYSEM8a" role="3XD1gS">
<property role="TrG5h" value="Free" />
</node>
<node concept="aZer4" id="5TXeSYSEM8c" role="3XD1gS">
<property role="TrG5h" value="U1" />
</node>
<node concept="32pEOW" id="24ciDNzxNx1" role="3vLBG7" />
</node>
<node concept="3xSepi" id="6E2cNicdhko" role="3xSepv">
<node concept="3Aq9E8" id="47tET_X8c3K" role="3xSepj">
<node concept="3I6sU6" id="47tET_X8c3L" role="3Ip0Jz">
<node concept="3IrJb3" id="47tET_X8c3V" role="3I6sU7">
<node concept="3clFbS" id="47tET_X8c3W" role="3IrJb0">
<node concept="3Aqczg" id="47tET_X8c4f" role="3cqZAp">
<node concept="3A8Hvi" id="47tET_X8c4c" role="3Aqpz8">
<node concept="a7P8L" id="47tET_X8c4k" role="3A8wtg">
<ref role="a7OzE" node="47tET_X8c43" resolve="F" />
</node>
<node concept="ns1u0" id="47tET_X8c4p" role="3A8w4Q">
<ref role="ns1xF" node="7VBaGntJSG2" resolve="Fun" />
<node concept="nsMwS" id="47tET_X8c4r" role="ns1xD">
<ref role="nsMwP" node="7VBaGntJSG4" resolve="arg" />
<node concept="1nq8_$" id="47tET_X8c4x" role="nsMwV">
<node concept="a7P8L" id="47tET_X8c4v" role="1nq8_t">
<ref role="a7OzE" node="5TXeSYSEM88" resolve="A" />
</node>
</node>
</node>
<node concept="nsMwS" id="47tET_X8c4C" role="ns1xD">
<ref role="nsMwP" node="7VBaGntJSG5" resolve="res" />
<node concept="1nq8_$" id="47tET_X8c4Z" role="nsMwV">
<node concept="a7P8L" id="47tET_X8c4X" role="1nq8_t">
<ref role="a7OzE" node="5TXeSYSEM89" resolve="B" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="3Aqczg" id="47tET_X8cbw" role="3cqZAp">
<node concept="3Aqt3T" id="47tET_X8cbu" role="3Aqpz8">
<ref role="3AqCNq" node="4KALGUEgLbG" resolve="typeOf" />
<node concept="a7P8L" id="47tET_X8cbU" role="3AunhB">
<ref role="a7OzE" node="5TXeSYSEM8a" resolve="Free" />
</node>
<node concept="a7P8L" id="47tET_X8cc2" role="3AunhB">
<ref role="a7OzE" node="47tET_X8c43" resolve="F" />
</node>
</node>
</node>
<node concept="3Aqczg" id="47tET_X8c5X" role="3cqZAp">
<node concept="3A8Hvi" id="47tET_X8c5R" role="3Aqpz8">
<node concept="a7P8L" id="47tET_X8c6c" role="3A8wtg">
<ref role="a7OzE" node="5TXeSYSEM88" resolve="A" />
</node>
<node concept="a7P8L" id="47tET_X8c6h" role="3A8w4Q">
<ref role="a7OzE" node="5TXeSYSEM89" resolve="B" />
</node>
</node>
</node>
<node concept="3Aqczg" id="47tET_X8c7r" role="3cqZAp">
<node concept="3A8Hvi" id="47tET_X8c7l" role="3Aqpz8">
<node concept="a7P8L" id="47tET_X8c7N" role="3A8wtg">
<ref role="a7OzE" node="5TXeSYSEM89" resolve="B" />
</node>
<node concept="ns1u0" id="47tET_X8c8p" role="3A8w4Q">
<ref role="ns1xF" node="48ZGLP8wdTf" resolve="VarRef" />
<node concept="nsMwS" id="47tET_X8c8r" role="ns1xD">
<ref role="nsMwP" node="48ZGLP8wdUk" resolve="def" />
<node concept="1nq8_$" id="47tET_X8c8x" role="nsMwV">
<node concept="a7P8L" id="47tET_X8cc8" role="1nq8_t">
<ref role="a7OzE" node="5TXeSYSEM8c" resolve="U1" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="1nLNMY" id="6EwjVjWrA7F" role="1nK1Vg">
<property role="TrG5h" value="typeOf_unique" />
<node concept="3clFbS" id="6EwjVjWrA7G" role="1nLNMH">
@ -2030,7 +1513,7 @@
</node>
</node>
<node concept="1nLNMY" id="6$MtiK8IMVN" role="1nK1Vg">
<property role="TrG5h" value="typeoOf_App" />
<property role="TrG5h" value="typeOf_App" />
<node concept="3clFbS" id="6$MtiK8IMVO" role="1nLNMH">
<node concept="1nLNNL" id="6$MtiK8IMVP" role="3cqZAp">
<node concept="1nLNMm" id="6$MtiK8IMVQ" role="1nLNNK">

View File

@ -6154,5 +6154,56 @@
</node>
</node>
</node>
<node concept="1DVIrt" id="1GGmKhcBn5m">
<property role="TrG5h" value="DemoSmall" />
<node concept="1DVJbV" id="1GGmKhcBn5n" role="1DVIru">
<node concept="1DVIrG" id="1GGmKhcBn5o" role="j9CMd">
<node concept="1DVIoH" id="1GGmKhcBn5p" role="1DVIrJ">
<property role="TrG5h" value="x" />
</node>
<node concept="3P8L2H" id="1GGmKhcBn5q" role="1DVIrD" />
</node>
</node>
<node concept="1DVJbV" id="1GGmKhcBn5C" role="1DVIru">
<node concept="1DVIrG" id="1GGmKhcBn5D" role="j9CMd">
<node concept="1DVIoH" id="1GGmKhcBn5E" role="1DVIrJ">
<property role="TrG5h" value="z" />
</node>
<node concept="t0$VC" id="1GGmKhcBn5F" role="1DVIrD">
<ref role="t0$VJ" node="1GGmKhcBn5p" resolve="x" />
</node>
</node>
</node>
<node concept="1DVJbV" id="1GGmKhcBn5r" role="1DVIru">
<node concept="1DVIrG" id="1GGmKhcBn5s" role="j9CMd">
<node concept="1DVIoH" id="1GGmKhcBn5t" role="1DVIrJ">
<property role="TrG5h" value="y" />
</node>
<node concept="1DVIrH" id="1GGmKhcBn5u" role="1DVIrD">
<node concept="1DVIrG" id="1GGmKhcBn5v" role="1DVIrE">
<node concept="1DVIrU" id="1GGmKhcBn5w" role="1DVIrD">
<node concept="3P8L2H" id="1GGmKhcBn5x" role="1DVIrw" />
<node concept="1DVIrB" id="1GGmKhcBn5y" role="1DVIr_">
<node concept="1DVIoH" id="1GGmKhcBn5z" role="1DVIrA">
<property role="TrG5h" value="y" />
</node>
</node>
</node>
<node concept="1DVIoH" id="1GGmKhcBn5$" role="1DVIrJ">
<property role="TrG5h" value="f" />
</node>
</node>
<node concept="1DVIo5" id="1GGmKhcBn5_" role="1DVIrk">
<node concept="t0$VC" id="1GGmKhcBn5A" role="1DVIo4">
<ref role="t0$VJ" node="1GGmKhcBn5$" resolve="f" />
</node>
<node concept="t0$VC" id="1GGmKhcBnak" role="1DVIo8">
<ref role="t0$VJ" node="1GGmKhcBn5E" resolve="z" />
</node>
</node>
</node>
</node>
</node>
</node>
</model>

View File

@ -234,6 +234,52 @@
</node>
<node concept="1lH9Xt" id="6EwjVjWuYhl">
<property role="TrG5h" value="Demo" />
<node concept="1LZb2c" id="1GGmKhcBrSa" role="1SL9yI">
<property role="TrG5h" value="DemoSmall" />
<node concept="3cqZAl" id="1GGmKhcBrSb" role="3clF45" />
<node concept="3clFbS" id="1GGmKhcBrSc" role="3clF47">
<node concept="2Hmddi" id="1GGmKhcBrSd" role="3cqZAp">
<node concept="2OqwBi" id="1GGmKhcBrSe" role="2Hmdds">
<node concept="2OqwBi" id="1GGmKhcBrSf" role="2Oq$k0">
<node concept="2YIFZM" id="1GGmKhcBrSg" role="2Oq$k0">
<ref role="1Pybhc" to="tj24:1N_0WA5JxZO" resolve="TypecheckingTestHelper" />
<ref role="37wK5l" to="tj24:27bTNFfaOo$" resolve="ofNode" />
<node concept="2OqwBi" id="1GGmKhcBrSh" role="37wK5m">
<node concept="2WthIp" id="1GGmKhcBrSi" role="2Oq$k0" />
<node concept="2XshWL" id="1GGmKhcBrSj" role="2OqNvi">
<ref role="2WH_rO" node="35YJGAJTxCf" resolve="resolve" />
<node concept="2tJFMh" id="1GGmKhcBrSk" role="2XxRq1">
<node concept="ZC_QK" id="1GGmKhcBt20" role="2tJFKM">
<ref role="2aWVGs" to="ysck:1GGmKhcBn5m" resolve="DemoSmall" />
</node>
</node>
</node>
</node>
<node concept="1jxXqW" id="1GGmKhcBrSm" role="37wK5m" />
</node>
<node concept="liA8E" id="1GGmKhcBrSn" role="2OqNvi">
<ref role="37wK5l" to="tj24:4ZGicUYVP43" resolve="customMatcher" />
<node concept="1bVj0M" id="1GGmKhcBrSo" role="37wK5m">
<node concept="3clFbS" id="1GGmKhcBrSp" role="1bW5cS">
<node concept="3clFbF" id="1GGmKhcBrSq" role="3cqZAp">
<node concept="2OqwBi" id="1GGmKhcBrSr" role="3clFbG">
<node concept="2WthIp" id="1GGmKhcBrSs" role="2Oq$k0" />
<node concept="2XshWL" id="1GGmKhcBrSt" role="2OqNvi">
<ref role="2WH_rO" node="4ZGicUYXn0k" resolve="customMatcher" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="liA8E" id="1GGmKhcBrSu" role="2OqNvi">
<ref role="37wK5l" to="tj24:27bTNFfaYS2" resolve="checkTypes" />
</node>
</node>
</node>
</node>
</node>
<node concept="1LZb2c" id="5s5QomKHHK1" role="1SL9yI">
<property role="TrG5h" value="Demo" />
<node concept="3cqZAl" id="5s5QomKHHK2" role="3clF45" />