Skip to content

Commit

Permalink
Rename traverse_instance_locations internal helper to a better name (
Browse files Browse the repository at this point in the history
…#1546)

Signed-off-by: Juan Cruz Viotti <[email protected]>
  • Loading branch information
jviotti authored Feb 10, 2025
1 parent ae6a3e4 commit a620175
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions src/core/jsonschema/frame.cc
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,7 @@ struct InternalEntry {
const std::optional<std::string> id;
};

static auto traverse_instance_locations(
static auto traverse_origin_instance_locations(
const sourcemeta::core::SchemaFrame::Locations &frame,
const sourcemeta::core::SchemaFrame::LocationsEntry &entry,
const std::optional<sourcemeta::core::PointerTemplate> &current,
Expand All @@ -281,7 +281,8 @@ static auto traverse_instance_locations(
}

for (const auto &instance_location : subentry.instance_locations) {
traverse_instance_locations(frame, subentry, instance_location, output);
traverse_origin_instance_locations(frame, subentry, instance_location,
output);
}
}
}
Expand Down Expand Up @@ -799,8 +800,8 @@ auto internal_analyse(const sourcemeta::core::JSON &schema,

// Calculate alternative unresolved instance locations
for (auto &entry : frame) {
traverse_instance_locations(frame, entry.second, std::nullopt,
entry.second.instance_locations);
traverse_origin_instance_locations(frame, entry.second, std::nullopt,
entry.second.instance_locations);
}
}

Expand Down

5 comments on commit a620175

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (macos/llvm)

Benchmark suite Current: a620175 Previous: ae6a3e4 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.5916841811392546 ns/iter 1.5904452954338186 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.579251436867043 ns/iter 1.598124223514065 ns/iter 0.99
Regex_Period_Asterisk 1.57293276852572 ns/iter 1.6057343442647443 ns/iter 0.98
Regex_Group_Period_Asterisk_Group 1.5886349449704116 ns/iter 1.6117679899751842 ns/iter 0.99
Regex_Period_Plus 1.891979118398112 ns/iter 1.922650570028479 ns/iter 0.98
Regex_Period 1.971832541458266 ns/iter 1.9058985460426867 ns/iter 1.03
Regex_Caret_Period_Plus_Dollar 1.9233579541024965 ns/iter 1.9468006529637514 ns/iter 0.99
Regex_Caret_Group_Period_Plus_Group_Dollar 1.8904365839353994 ns/iter 1.968261333765126 ns/iter 0.96
Regex_Caret_Period_Asterisk_Dollar 1.5797839909386546 ns/iter 1.6321189783727879 ns/iter 0.97
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.578680186392724 ns/iter 1.6258226558317437 ns/iter 0.97
Regex_Caret_X_Hyphen 6.949801479424407 ns/iter 6.936084543917422 ns/iter 1.00
Regex_Period_Md_Dollar 67.9253164423842 ns/iter 69.17254672976011 ns/iter 0.98
Regex_Caret_Slash_Period_Asterisk 5.045402408048544 ns/iter 5.124268022430664 ns/iter 0.98
Regex_Caret_Period_Range_Dollar 2.202695889448325 ns/iter 2.2235210638181284 ns/iter 0.99
Regex_Nested_Backtrack 731.3505894960754 ns/iter 738.3815491302702 ns/iter 0.99
JSON_Array_Of_Objects_Unique 407.4019783980228 ns/iter 413.57006809851794 ns/iter 0.99
JSON_Parse_1 22119.71916971969 ns/iter 22677.916908976145 ns/iter 0.98
JSON_Fast_Hash_Helm_Chart_Lock 47.864043865274205 ns/iter 50.81948749999583 ns/iter 0.94
JSON_Equality_Helm_Chart_Lock 118.82415820298301 ns/iter 123.95417976561596 ns/iter 0.96
JSON_String_Equal/10 8.199927989427573 ns/iter 7.86278171132843 ns/iter 1.04
JSON_String_Equal/100 6.079110690113043 ns/iter 6.227710243520666 ns/iter 0.98
JSON_String_Equal_Small_By_Perfect_Hash/10 0.3142998326368521 ns/iter 0.3313609481087657 ns/iter 0.95
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 2.929257172646389 ns/iter 2.9710064806324676 ns/iter 0.99
JSON_String_Fast_Hash/10 1.5689949799513878 ns/iter 1.6006657936907291 ns/iter 0.98
JSON_String_Fast_Hash/100 1.8855540903041088 ns/iter 1.9146104332950113 ns/iter 0.98
JSON_String_Key_Hash/10 1.2563855054006747 ns/iter 1.2854117074887026 ns/iter 0.98
JSON_String_Key_Hash/100 1.2568109487583037 ns/iter 1.2702587350544903 ns/iter 0.99
JSON_Object_Defines_Miss_Same_Length 2.195334511562431 ns/iter 2.418934823928907 ns/iter 0.91
JSON_Object_Defines_Miss_Too_Small 2.2775906464982456 ns/iter 2.223369067904078 ns/iter 1.02
JSON_Object_Defines_Miss_Too_Large 2.1965170625325707 ns/iter 2.2262303199898317 ns/iter 0.99
Pointer_Object_Traverse 15.36115610425304 ns/iter 15.614784951440532 ns/iter 0.98
Pointer_Object_Try_Traverse 21.783645873602453 ns/iter 22.25540377812117 ns/iter 0.98
Pointer_Push_Back_Pointer_To_Weak_Pointer 176.19319705299154 ns/iter 177.27460554101748 ns/iter 0.99
Schema_Frame_OMC_Full 167216885.24998513 ns/iter 155925312.49998844 ns/iter 1.07
Schema_Bundle_Meta_2020_12 7675407.652168013 ns/iter 7441071.197916926 ns/iter 1.03

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/llvm)

Benchmark suite Current: a620175 Previous: ae6a3e4 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.3167026728323528 ns/iter 2.1892067560296247 ns/iter 1.06
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.3044702283670198 ns/iter 2.1855231802331083 ns/iter 1.05
Regex_Period_Asterisk 2.311942946357336 ns/iter 2.1834720564537706 ns/iter 1.06
Regex_Group_Period_Asterisk_Group 2.3164350303353602 ns/iter 2.182452038886231 ns/iter 1.06
Regex_Period_Plus 2.520368470767164 ns/iter 2.4869911029854297 ns/iter 1.01
Regex_Period 2.517917832321795 ns/iter 2.4868806509227785 ns/iter 1.01
Regex_Caret_Period_Plus_Dollar 2.521778422588157 ns/iter 2.48851581342684 ns/iter 1.01
Regex_Caret_Group_Period_Plus_Group_Dollar 2.521473358547691 ns/iter 2.492376890235141 ns/iter 1.01
Regex_Caret_Period_Asterisk_Dollar 3.4508573613413813 ns/iter 3.4194062234724885 ns/iter 1.01
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.4537486993140107 ns/iter 3.5609214808485277 ns/iter 0.97
Regex_Caret_X_Hyphen 13.070158996221645 ns/iter 12.482270457911747 ns/iter 1.05
Regex_Period_Md_Dollar 75.53456033958885 ns/iter 73.12183834499844 ns/iter 1.03
Regex_Caret_Slash_Period_Asterisk 7.190909502204701 ns/iter 7.148725728931166 ns/iter 1.01
Regex_Caret_Period_Range_Dollar 3.7518309355121624 ns/iter 3.7374487566960264 ns/iter 1.00
Regex_Nested_Backtrack 500.40121688966855 ns/iter 488.18944337590153 ns/iter 1.03
JSON_Array_Of_Objects_Unique 395.05215457266377 ns/iter 399.14218698074836 ns/iter 0.99
JSON_Parse_1 30535.84762773975 ns/iter 30190.146783876837 ns/iter 1.01
JSON_Fast_Hash_Helm_Chart_Lock 55.588912713233526 ns/iter 60.7346973923129 ns/iter 0.92
JSON_Equality_Helm_Chart_Lock 153.57698429478194 ns/iter 151.80976979363956 ns/iter 1.01
JSON_String_Equal/10 6.560053315541663 ns/iter 6.537944562656661 ns/iter 1.00
JSON_String_Equal/100 7.170889023357301 ns/iter 7.154660908902034 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9403560781038774 ns/iter 0.9371017690408276 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.694651894672626 ns/iter 10.253484576329294 ns/iter 1.43
JSON_String_Fast_Hash/10 2.185812581541609 ns/iter 2.176788581104496 ns/iter 1.00
JSON_String_Fast_Hash/100 2.1780205297854214 ns/iter 2.175897324496745 ns/iter 1.00
JSON_String_Key_Hash/10 2.6847264472344055 ns/iter 2.4918870251670846 ns/iter 1.08
JSON_String_Key_Hash/100 2.2239328646772556 ns/iter 2.18023720796811 ns/iter 1.02
JSON_Object_Defines_Miss_Same_Length 3.737731387657005 ns/iter 3.792960280243649 ns/iter 0.99
JSON_Object_Defines_Miss_Too_Small 3.7343996225603906 ns/iter 3.7368076940312247 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.745720734285707 ns/iter 3.7353809539315908 ns/iter 1.00
Pointer_Object_Traverse 46.41068900626387 ns/iter 44.95728942392231 ns/iter 1.03
Pointer_Object_Try_Traverse 55.205993503851204 ns/iter 52.29196758112243 ns/iter 1.06
Pointer_Push_Back_Pointer_To_Weak_Pointer 353.07503840512555 ns/iter 348.81447714771014 ns/iter 1.01
Schema_Frame_OMC_Full 242642051.33332932 ns/iter 234463162.66665688 ns/iter 1.03
Schema_Bundle_Meta_2020_12 10446305.970142579 ns/iter 10266481.264705243 ns/iter 1.02

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (windows/msvc)

Benchmark suite Current: a620175 Previous: ae6a3e4 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 6.9683604910711745 ns/iter 7.346491071427153 ns/iter 0.95
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 6.726704434255779 ns/iter 7.133646205354743 ns/iter 0.94
Regex_Period_Asterisk 6.603847098214694 ns/iter 6.540943080357259 ns/iter 1.01
Regex_Group_Period_Asterisk_Group 6.583189732141749 ns/iter 6.820171428570022 ns/iter 0.97
Regex_Period_Plus 7.061370535712541 ns/iter 7.086023437499835 ns/iter 1.00
Regex_Period 7.131059151784009 ns/iter 6.906540178570301 ns/iter 1.03
Regex_Caret_Period_Plus_Dollar 6.894733258930229 ns/iter 7.076966517856371 ns/iter 0.97
Regex_Caret_Group_Period_Plus_Group_Dollar 6.900408035714837 ns/iter 6.847186383929228 ns/iter 1.01
Regex_Caret_Period_Asterisk_Dollar 6.6363325892839145 ns/iter 6.608203124999688 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 6.5248705357134895 ns/iter 7.199212053572118 ns/iter 0.91
Regex_Caret_X_Hyphen 11.951487500002855 ns/iter 11.900910937498566 ns/iter 1.00
Regex_Period_Md_Dollar 150.98736607142322 ns/iter 154.20734374999816 ns/iter 0.98
Regex_Caret_Slash_Period_Asterisk 10.20920468749864 ns/iter 10.856766071429188 ns/iter 0.94
Regex_Caret_Period_Range_Dollar 7.420445312499778 ns/iter 7.3548348214304475 ns/iter 1.01
Regex_Nested_Backtrack 608.8270535715066 ns/iter 602.5157142858006 ns/iter 1.01
JSON_Array_Of_Objects_Unique 409.62464242739645 ns/iter 416.06736088981216 ns/iter 0.98
JSON_Parse_1 96796.15625000081 ns/iter 79854.01785714734 ns/iter 1.21
JSON_Fast_Hash_Helm_Chart_Lock 53.1475300000011 ns/iter 54.42325000001347 ns/iter 0.98
JSON_Equality_Helm_Chart_Lock 197.69096407957687 ns/iter 198.2846427039996 ns/iter 1.00
JSON_String_Equal/10 9.767365134967092 ns/iter 9.687454687497876 ns/iter 1.01
JSON_String_Equal/100 9.95611602697979 ns/iter 10.113682990564705 ns/iter 0.98
JSON_String_Equal_Small_By_Perfect_Hash/10 2.1666440624997563 ns/iter 2.166857187500426 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.63574999999955 ns/iter 14.630508416827828 ns/iter 1.00
JSON_String_Fast_Hash/10 3.1514137549244707 ns/iter 3.1525401611755717 ns/iter 1.00
JSON_String_Fast_Hash/100 3.1454932086679577 ns/iter 3.150318286172381 ns/iter 1.00
JSON_String_Key_Hash/10 7.474392823775005 ns/iter 7.790802455358253 ns/iter 0.96
JSON_String_Key_Hash/100 3.7238362433500254 ns/iter 3.7180521593691163 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 4.028954203624034 ns/iter 4.047154575893076 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.406188075035641 ns/iter 3.406163743917405 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.7178110647894034 ns/iter 3.720580707641307 ns/iter 1.00
Pointer_Object_Traverse 49.60371999998188 ns/iter 50.27127999999266 ns/iter 0.99
Pointer_Object_Try_Traverse 65.23037500000686 ns/iter 65.51725000000326 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 181.32507868975938 ns/iter 183.5717306760746 ns/iter 0.99
Schema_Frame_OMC_Full 471828099.99992514 ns/iter 492086999.99996954 ns/iter 0.96
Schema_Bundle_Meta_2020_12 23264593.333336353 ns/iter 23611000.00000533 ns/iter 0.99

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/gcc)

Benchmark suite Current: a620175 Previous: ae6a3e4 Ratio
Schema_Frame_OMC_Full 237389582.66665122 ns/iter 237983888.9999822 ns/iter 1.00
Schema_Bundle_Meta_2020_12 10731892.26152723 ns/iter 10879487.63077188 ns/iter 0.99
Pointer_Object_Traverse 51.08949869286732 ns/iter 50.40222195718457 ns/iter 1.01
Pointer_Object_Try_Traverse 26.42297000469834 ns/iter 26.51373922344564 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 161.0771321636414 ns/iter 162.6051030787857 ns/iter 0.99
JSON_Array_Of_Objects_Unique 370.85084337601626 ns/iter 367.9992881308767 ns/iter 1.01
JSON_Parse_1 33199.9373779717 ns/iter 43111.992721886585 ns/iter 0.77
JSON_Fast_Hash_Helm_Chart_Lock 68.12999339547459 ns/iter 63.11183346893662 ns/iter 1.08
JSON_Equality_Helm_Chart_Lock 148.94008302153728 ns/iter 148.70468510964474 ns/iter 1.00
JSON_String_Equal/10 6.645301237076234 ns/iter 5.732482138757431 ns/iter 1.16
JSON_String_Equal/100 7.280372108604318 ns/iter 6.335057200337941 ns/iter 1.15
JSON_String_Equal_Small_By_Perfect_Hash/10 0.934167510367242 ns/iter 0.9333761610402561 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 11.796420944646533 ns/iter 11.798765660453592 ns/iter 1.00
JSON_String_Fast_Hash/10 0.9381684639925444 ns/iter 0.932700575018435 ns/iter 1.01
JSON_String_Fast_Hash/100 0.934365706380174 ns/iter 0.9339130414639257 ns/iter 1.00
JSON_String_Key_Hash/10 1.245011040508205 ns/iter 1.2438583228327662 ns/iter 1.00
JSON_String_Key_Hash/100 0.9339410523944387 ns/iter 0.9331211050613557 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 2.4872637398715502 ns/iter 2.487379934901409 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 2.81339035437787 ns/iter 2.7964242636551946 ns/iter 1.01
JSON_Object_Defines_Miss_Too_Large 2.486964496057659 ns/iter 2.4864196877381617 ns/iter 1.00
Regex_Lower_S_Or_Upper_S_Asterisk 3.106998926118228 ns/iter 3.107392179268361 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.7986329887461445 ns/iter 2.7981247337054276 ns/iter 1.00
Regex_Period_Asterisk 2.801616048836861 ns/iter 2.797977280787408 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 2.797887545992384 ns/iter 2.8000975103737535 ns/iter 1.00
Regex_Period_Plus 2.80262585569615 ns/iter 3.110668233646608 ns/iter 0.90
Regex_Period 2.801684063109589 ns/iter 3.1095450967034317 ns/iter 0.90
Regex_Caret_Period_Plus_Dollar 2.800573068421696 ns/iter 3.1086747186282238 ns/iter 0.90
Regex_Caret_Group_Period_Plus_Group_Dollar 2.8014697097425056 ns/iter 3.1076430840895135 ns/iter 0.90
Regex_Caret_Period_Asterisk_Dollar 2.7965406922696574 ns/iter 4.040575281101536 ns/iter 0.69
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.8014836959529554 ns/iter 4.03972837670688 ns/iter 0.69
Regex_Caret_X_Hyphen 13.120712768983475 ns/iter 13.099130602084486 ns/iter 1.00
Regex_Period_Md_Dollar 88.29098014974127 ns/iter 88.48163358666233 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 7.771256803575546 ns/iter 9.011599110212602 ns/iter 0.86
Regex_Caret_Period_Range_Dollar 3.4203312829595043 ns/iter 4.03937030471335 ns/iter 0.85
Regex_Nested_Backtrack 820.3332359324717 ns/iter 821.0174788496917 ns/iter 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (macos/gcc)

Benchmark suite Current: a620175 Previous: ae6a3e4 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.1606240780953643 ns/iter 2.06359628348262 ns/iter 1.05
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.2246031470217793 ns/iter 2.251185131977089 ns/iter 0.99
Regex_Period_Asterisk 2.109533411842049 ns/iter 2.0106675597037253 ns/iter 1.05
Regex_Group_Period_Asterisk_Group 2.193462707373863 ns/iter 2.0443972848588445 ns/iter 1.07
Regex_Period_Plus 2.068652639978767 ns/iter 1.7346322275061572 ns/iter 1.19
Regex_Period 2.2696832071139 ns/iter 1.7467034935753307 ns/iter 1.30
Regex_Caret_Period_Plus_Dollar 2.074226578809811 ns/iter 1.7259236621050307 ns/iter 1.20
Regex_Caret_Group_Period_Plus_Group_Dollar 2.0259793694131467 ns/iter 1.86840000291063 ns/iter 1.08
Regex_Caret_Period_Asterisk_Dollar 2.2997445181085063 ns/iter 2.0893457293396733 ns/iter 1.10
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.183663213932446 ns/iter 2.110283818988022 ns/iter 1.03
Regex_Caret_X_Hyphen 7.047480525514654 ns/iter 6.499076018632298 ns/iter 1.08
Regex_Period_Md_Dollar 75.2357572123328 ns/iter 83.92205856001743 ns/iter 0.90
Regex_Caret_Slash_Period_Asterisk 5.28168899973993 ns/iter 4.4260191541638605 ns/iter 1.19
Regex_Caret_Period_Range_Dollar 2.2957153182845005 ns/iter 1.9586617708235023 ns/iter 1.17
Regex_Nested_Backtrack 968.412919477983 ns/iter 891.0901803023422 ns/iter 1.09
JSON_Array_Of_Objects_Unique 239.77163454337042 ns/iter 227.86853276327767 ns/iter 1.05
JSON_Parse_1 31999.025393176722 ns/iter 25055.972935794394 ns/iter 1.28
JSON_Fast_Hash_Helm_Chart_Lock 28.00148346942007 ns/iter 25.116765710808853 ns/iter 1.11
JSON_Equality_Helm_Chart_Lock 131.7610815599341 ns/iter 120.36025735945888 ns/iter 1.09
JSON_String_Equal/10 5.915491470635798 ns/iter 5.6139330181404254 ns/iter 1.05
JSON_String_Equal/100 5.632631065170698 ns/iter 5.3652332638778555 ns/iter 1.05
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9107474160127321 ns/iter 0.7718914684237065 ns/iter 1.18
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.7887943377029636 ns/iter 3.58485107532965 ns/iter 1.06
JSON_String_Fast_Hash/10 2.0502129653719945 ns/iter 1.9744993862133002 ns/iter 1.04
JSON_String_Fast_Hash/100 2.05648522190618 ns/iter 2.0702431253351676 ns/iter 0.99
JSON_String_Key_Hash/10 1.54195228266046 ns/iter 1.5047497543399604 ns/iter 1.02
JSON_String_Key_Hash/100 2.0626923262842296 ns/iter 2.029693194005253 ns/iter 1.02
JSON_Object_Defines_Miss_Same_Length 1.9666099217513808 ns/iter 1.8321979736657221 ns/iter 1.07
JSON_Object_Defines_Miss_Too_Small 2.038296814647192 ns/iter 1.9794433547651091 ns/iter 1.03
JSON_Object_Defines_Miss_Too_Large 1.8984715369341125 ns/iter 1.7859901593553298 ns/iter 1.06
Pointer_Object_Traverse 62.53660060003489 ns/iter 57.9819985039219 ns/iter 1.08
Pointer_Object_Try_Traverse 43.11961279654031 ns/iter 35.602867139794 ns/iter 1.21
Pointer_Push_Back_Pointer_To_Weak_Pointer 185.08266867276168 ns/iter 162.79069190950617 ns/iter 1.14
Schema_Frame_OMC_Full 251772642.13562012 ns/iter 193601787.0903015 ns/iter 1.30
Schema_Bundle_Meta_2020_12 10956601.82013028 ns/iter 8956019.694988545 ns/iter 1.22

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.