<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/122134>122134</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [Clang] Crash on CTAD for type alias template involving default template argument and constrained ctor template
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          MagentaTreehouse
      </td>
    </tr>
</table>

<pre>
    Originally reported for MSVC [here](https://developercommunity.visualstudio.com/t/10584684).
```c++
template <class, class> concept Constraint = true;

template <class T, int> struct Struct {
        Struct(Constraint<T> auto) { }
};

template <int N = 0> using Test = Struct<int, N>;

int main() {
        Test{ 0 };
}
```

See https://compiler-explorer.com/z/7Tn3dGG3v.

Assertion:
```console
clang++: /root/llvm-project/clang/lib/Sema/SemaTemplateInstantiate.cpp:2713:
clang::QualType {anonymous}::TemplateInstantiator::TransformTemplateTypeParmType(clang::TypeLocBuilder&, clang::TemplateTypeParmTypeLoc, bool):
Assertion `Arg.getKind() == TemplateArgument::Type && "Template argument kind mismatch"' failed.
```

<details>
<summary>Stack dump:</summary>

```console
0.      Program arguments: /opt/compiler-explorer/clang-assertions-trunk/bin/clang++ -gdwarf-4 -g -o /app/output.s -mllvm --x86-asm-syntax=intel -fno-verbose-asm -S --gcc-toolchain=/opt/compiler-explorer/gcc-snapshot -fcolor-diagnostics -fno-crash-diagnostics -std=c++20 <source>
1.      <source>:10:11: current parser token ';'
2.      <source>:9:12: parsing function body 'main'
3.      <source>:9:12: in compound statement ('{}')
 #0 0x0000000003c71738 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3c71738)
 #1 0x0000000003c6f444 llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3c6f444)
 #2 0x0000000003bbc988 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x000076e1e1a42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x000076e1e1a969fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
 #5 0x000076e1e1a42476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
 #6 0x000076e1e1a287f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
 #7 0x000076e1e1a2871b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
 #8 0x000076e1e1a39e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
 #9 0x0000000007120f3b (anonymous namespace)::TemplateInstantiator::TransformTemplateTypeParmType(clang::TypeLocBuilder&, clang::TemplateTypeParmTypeLoc, bool) SemaTemplateInstantiate.cpp:0:0
#10 0x0000000007124804 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&, clang::TypeLoc) SemaTemplateInstantiate.cpp:0:0
#11 0x0000000007128d3a clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType(clang::TypeSourceInfo*) SemaTemplateInstantiate.cpp:0:0
#12 0x000000000714590c (anonymous namespace)::TemplateInstantiator::TransformTemplateArgument(clang::TemplateArgumentLoc const&, clang::TemplateArgumentLoc&, bool) SemaTemplateInstantiate.cpp:0:0
#13 0x0000000007147385 bool clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTemplateArguments<clang::TemplateArgumentLoc const*>(clang::TemplateArgumentLoc const*, clang::TemplateArgumentLoc const*, clang::TemplateArgumentListInfo&, bool) (.constprop.0) SemaTemplateInstantiate.cpp:0:0
#14 0x00000000071478ae clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformConceptSpecializationExpr(clang::ConceptSpecializationExpr*) SemaTemplateInstantiate.cpp:0:0
#15 0x000000000712cc1a clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) SemaTemplateInstantiate.cpp:0:0
#16 0x0000000007155382 clang::Sema::SubstConstraintExpr(clang::Expr*, clang::MultiLevelTemplateArgumentList const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x7155382)
#17 0x00000000068ef06f clang::ActionResult<clang::Expr*, true> calculateConstraintSatisfaction<calculateConstraintSatisfaction(clang::Sema&, clang::NamedDecl const*, clang::SourceLocation, clang::MultiLevelTemplateArgumentList const&, clang::Expr const*, clang::ConstraintSatisfaction&)::ConstraintEvaluator>(clang::Sema&, clang::Expr const*, clang::ConstraintSatisfaction&, calculateConstraintSatisfaction(clang::Sema&, clang::NamedDecl const*, clang::SourceLocation, clang::MultiLevelTemplateArgumentList const&, clang::Expr const*, clang::ConstraintSatisfaction&)::ConstraintEvaluator const&) SemaConcept.cpp:0:0
#18 0x00000000068f0d7e CheckConstraintSatisfaction(clang::Sema&, clang::NamedDecl const*, llvm::ArrayRef<clang::Expr const*>, llvm::SmallVectorImpl<clang::Expr*>&, clang::MultiLevelTemplateArgumentList const&, clang::SourceRange, clang::ConstraintSatisfaction&) SemaConcept.cpp:0:0
#19 0x00000000068f13dd clang::Sema::CheckConstraintSatisfaction(clang::NamedDecl const*, llvm::ArrayRef<clang::Expr const*>, llvm::SmallVectorImpl<clang::Expr*>&, clang::MultiLevelTemplateArgumentList const&, clang::SourceRange, clang::ConstraintSatisfaction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x68f13dd)
#20 0x00000000068f330a clang::Sema::CheckFunctionTemplateConstraints(clang::SourceLocation, clang::FunctionDecl*, llvm::ArrayRef<clang::TemplateArgument>, clang::ConstraintSatisfaction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x68f330a)
#21 0x000000000709c07c clang::Sema::FinishTemplateArgumentDeduction(clang::FunctionTemplateDecl*, llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&, unsigned int, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, llvm::SmallVectorImpl<clang::Sema::OriginalCallArg> const*, bool, llvm::function_ref<bool ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x709c07c)
#22 0x000000000709d5aa void llvm::function_ref<void ()>::callback_fn<clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool, bool, clang::QualType, clang::Expr::Classification, llvm::function_ref<bool (llvm::ArrayRef<clang::QualType>)>)::'lambda1'()>(long) SemaTemplateDeduction.cpp:0:0
#23 0x0000000007da9101 clang::StackExhaustionHandler::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x7da9101)
#24 0x000000000707683d clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool, bool, clang::QualType, clang::Expr::Classification, llvm::function_ref<bool (llvm::ArrayRef<clang::QualType>)>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x707683d)
#25 0x0000000006ef038e clang::Sema::AddTemplateOverloadCandidate(clang::FunctionTemplateDecl*, clang::DeclAccessPair, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, bool, bool, clang::CallExpr::ADLCallKind, clang::OverloadCandidateParamOrder, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6ef038e)
#26 0x0000000006cfe748 clang::Sema::DeduceTemplateSpecializationFromInitializer(clang::TypeSourceInfo*, clang::InitializedEntity const&, clang::InitializationKind const&, llvm::MutableArrayRef<clang::Expr*>)::'lambda0'(bool)::operator()(bool) const SemaInit.cpp:0:0
#27 0x0000000006cff63f clang::Sema::DeduceTemplateSpecializationFromInitializer(clang::TypeSourceInfo*, clang::InitializedEntity const&, clang::InitializationKind const&, llvm::MutableArrayRef<clang::Expr*>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6cff63f)
#28 0x0000000006bf4665 clang::Sema::BuildCXXTypeConstructExpr(clang::TypeSourceInfo*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6bf4665)
#29 0x0000000006c5175d clang::Sema::ActOnCXXTypeConstructExpr(clang::OpaquePtr<clang::QualType>, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6c5175d)
#30 0x00000000066a7ac6 clang::Parser::ParseCXXTypeConstructExpression(clang::DeclSpec const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x66a7ac6)
#31 0x000000000668b6da clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x668b6da)
#32 0x000000000668c217 clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, clang::Parser::TypeCastState, bool, bool*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x668c217)
#33 0x000000000668c2a9 clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x668c2a9)
#34 0x0000000006690ce9 clang::Parser::ParseExpression(clang::Parser::TypeCastState) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6690ce9)
#35 0x0000000006714b49 clang::Parser::ParseExprStatement(clang::Parser::ParsedStmtContext) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6714b49)
#36 0x000000000670aebe clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x670aebe)
#37 0x000000000670be10 clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x670be10)
#38 0x000000000670ccd5 clang::Parser::ParseCompoundStatementBody(bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x670ccd5)
#39 0x000000000670e4da clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x670e4da)
#40 0x00000000066207a3 clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x66207a3)
#41 0x000000000665535d clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::Parser::ParsedTemplateInfo&, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x665535d)
#42 0x000000000661450e clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x661450e)
#43 0x0000000006614cc9 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x6614cc9)
#44 0x000000000661c473 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x661c473)
#45 0x000000000661d34d clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x661d34d)
#46 0x000000000660f7aa clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x660f7aa)
#47 0x0000000004602478 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4602478)
#48 0x00000000048be799 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x48be799)
#49 0x0000000004840e2e clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4840e2e)
#50 0x00000000049abb8e clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x49abb8e)
#51 0x0000000000ce93ef cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xce93ef)
#52 0x0000000000ce0e8a ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#53 0x0000000004647ae9 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#54 0x0000000003bbce34 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x3bbce34)
#55 0x00000000046480df clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#56 0x000000000460c1ed clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x460c1ed)
#57 0x000000000460d26e clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x460d26e)
#58 0x0000000004614d95 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0x4614d95)
#59 0x0000000000ce6233 clang_main(int, char**, llvm::ToolContext const&) (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xce6233)
#60 0x0000000000bb2524 main (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xbb2524)
#61 0x000076e1e1a29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#62 0x000076e1e1a29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#63 0x0000000000ce0935 _start (/opt/compiler-explorer/clang-assertions-trunk/bin/clang+++0xce0935)
```

</details>
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsXF9z27py_zT0C0caEvz_4AdGsk5zmpykkef2vnlAEJTQkAQLgL72_fQdAPwjUJQsp1JupmnGsWQSWOz-drG7WICEnJNdjfG9FXywgvUdbMWesvvPcIdrAR8ZxnvacnyX0fz1_gsjO1LDsny1GW4oEzi3C8rsz9u_rWwr-LDHDFvB2gLxXoiGW15qgY0FNjl-xiVtMEO0qtqaiNflM-EtLLloc0KXiFYW2AgLbFwniP0w9i2QLC0ntUJH_yALfJA_Tipw1ZRQYNvyVqiEnFtgZesv3oONaI1wI-wVrblgkNTCtry1LViLLU92n6NgP0oapBaSAhesRcLe6g8r0p0S_bcF4pGy5a0eZQ_YCmqBRLa1rWgt20fr2dEkO38phhzZseWk3tmPmGsmuyFUM8nQX5b3MJCRXStIagvE3ViaL9lbDuzY46Cahx463X-LsW0qBdGqISVmC_zSlJRh1qnhnxbYRI-1l__xh_e81L1TzjEThNay96FaaM1piS0nRSWsd52SvNS2wIZRKjVals_VomH0v7CEb9O125Qks8BmiyvYfTx2OH2suYC1IFDgJWoay0tB5Hp6XN3ZSy0v_Y8Wlo-vDZZIwJrWrxVtuYJA3j0mRll3h8GaF5RVfRNJ5Ctklfy0QHwwhLzyiaIPLSlzzCwQdpY23J-h8Iki2SqjtLRAorkewLOt0EnZbrnD4t9Jnfeq9NZS-z21lO3aCkvr6nmw1dChbQHQN7Jh18r-TurcrgivoEB7CwALRHYBSYnz5bERWN4qxwKSUs4V_TdvqwqyV8t72AqIvtt5WzVq6JUFNuPNrv-x3p2l5SRfGd0xWA1c8c4EaCPmDK03gwXskeELwdr6uwU2mTTxzYE12Ytd_g_IioVvL3b2gkq6sGkk9VY0rVhye1FJI7MXi5c4XEBeLfhrLeCL5a1JLXBpL4qaLp4xyyjH8r692NqLxQ6hhaC0RHs5rbz1WX5lY17Dhu-psBcFoiVli5zAXU25IIjrMRCDfG9e5iK3vHXnvoAjvQCnLUNYg-pK-IxrXuo68pcrMUQtY1LLDWQcM1vQ77i2LRDJiQ4iy0nBTH9pdi6Q3WU36WKKtkbKAKUXl_21J5EEvLMESG1LNGhb5zYXUGBlc8pwI-mCorX8AhLLkfr2HNt5cfp_HorcyIttqRttzPyV6y9fGamFsrdHBpGcdmMjBv_xRLlgGFbdlFPuMNGjXsWkLPDBeenYG5l3TebDwvf9OeZXJYZ123ypt2RXw9ICcVurGJrbJZVD3IBVxczIKjBYzTKUxLG9ksb3DSP6jNmr5u3fYJ2XcsS4w9Bos6K1wC-i87KO-q_pex39KMQudqEPAmm5Sijtt1_i8Cn0FyWp25fFrm71DbTkdBkqllWXkWHfJJiESYHsRuwZhvnTd1KW76Ou-o_Ugym7fhTaO64geC_bfhSOhEOTMIijwrNhRpl4H1nVcSQbHZF1s3cTdLORYGwS9BKchO8jqLqMBJNDA4tc4BSe4nCItHYNK8wbNXmTXyrm2ueTid7M5YR3JlL6seMbgzGMB95VRPwBAB6mGLxf5l7G98jmTmSLcw_-i2TbqtDysS6oBdL3SQFMKfwgcdAV7XDItUyeJ3c_USTXFVycNseDpl2j91ujN5E18uJAkbm92iZScL0wugCPVBK7FLz0bfAubkq40AZlgG2BeKkoNIw2S-d9-PtT_GOIbw79Sq9Xtw1GBJbkn1DmAw8vDTNRPdPsnTMqmPgFhNzb-4VjgX6I99DkPQi8GBzyrlaT-lubcTGu1M-Mb5jZ57YU5BN-xuWcwR04gauneJ00OgJLWaNDWcMYF05YHLKaqoT-G-ZtKczpeiCaLns82AiWqJXijJBsoSC8gEgv6ldvtTDA06v2qS_8C1Y4X2NUnprEOg58oghqkj8GvdFLynpquFOShIPxHhjIMyzb3nYvkPUHx129qYnfBWdjLkk5Ow83M-tjcyYUTh5he7XH6Pu1MRwXeylj8PUbLo5nlhn5DvtsK1iWf8NIUPaxasr5SSk7TZn5MZVoLX-D9Q6_QyFvYJ1MsHa9PJ_3sBcr4PeF-soholPHECKAM1GW5znwjLI2XRGol3zknU-mzDn_0VORGr1Ql8eVzYd_LYwSqBFGc6XkJMiJ0DyMG1ITvp-Ks8Z5O2P3U7hnATtryIowzmfhUyY61J26DYNzapraNB-kGhns5DhIrC_kdISo3yFawbJM2a7bkhmmvU7UD-n2pcknpsxGrXd0YVzJef1ESyt4VD-YqD8PILSfKclPM6nujkyqJgiWZQbR96eiPoWN1ufxYutSs7loPXSxdx396vXNpldz_zmzbzOTYPTlVcg5Kcjofd40lrfEHcZUFtX_TtVOWFTCKsuhq-rYg9nFfSX3cHEySHocOIG5eM9h4jqu4UQERN8fXvaw5ZJCX5jVFe-2_k8i9tu2KAgiuKuMb_U667xjvtREbzCPtIzjPDKXz04Uxt6J1OH_58EvNA-u71-V5ke7MAoOIS4cL8bzdpHmQ6z78oxZSWG-gnVOcijwjxiHvJoihDn_Cgn7SZZzxPkWixPWMGMVMmyOJpCuP8kLeq_4_ChfIYPVF6bqx0Y97Kqpk9beqFujIBOiAkd-fMmcN-tYG0arjzUR6gpmbxaQDSTGjvlDLYh4PZXEDw3VmBJTo-Wo8M-tgFmJ39b7NIY4OoYc7P17KW0wU3UF7YqHu3psFV4kYzMRJZpgW4Re8Rthe3Xb1QiOtmuWFbLCD8NgHl-1MbP6-98lXHql0qKZkuJbaJ6L3hfj8gbFW018Dc8InlknQIEbBSeCfYrEl_pt8L408L9b_FWwMxHr_wyaGq8BTfPYRBjCCKLwkLOv6vTHwfc5PDHnR2tQGQGlP7hl5brjd5TGNaWJszCH56WB_KQEh41lO_V3HxDNQDp1SoddFVqQy8xa4OOu6U1wUZKPuIAJLgi40W1x-aXAkOKOYHhHYMDkLBipOqcqM7VLIJmIeBt5YDLK45vyJA7C5-X5NaRQfI5SmLl65PqZ_7YU2_5c2GlB1Pd8KyrRnTm6hTCa3VEYMzmNHIgzfFaYQZAvTDpOyFQgSAuBWSoEI1krMDeWWQdFsUnRR1R9ycsD7Wwp-g18zoamaWqh-x8yOTvatMUNdKBQHnUQTXSQYdf5AR38KqDfAjAJyQhYPAEMoTw4HyS645kDcB9o_nqwzrg-w5KlkeFkwjD234j2_dp9yvAkbTlh5IatINrgmxmyFGQQ05-kaMCJoHeRmGtcELk6mvPzpN71Rk5nzn0dG-t4TKKgp9Zih70-6cpAN_M_ka4Of4NAogAZ4ZrkgEHgmeuDI9EkDn8w2jYnUZJ57LG0I37zk_hCz3gS5VObgW_44o7ehjK1ayjXx7dCXmE7Ij_JMl0_cM5HPYngF3Zgrh9rgZk-2Py_DzFHLc5qU1frVAWjIBKOG-ClEBnx8qZ4IXQ-5TkISwZsJ2f51VGbWtzPQQ2hMbfyJ-mui_zovDt8eNFGZQb1n4DULbCQ0o5YBBMscs8_7-seaaOOIOgwd0EVZHCOqpgxk9aM5ZbPNG9L_LFqKOuXDbdZ9CsxRxDMZDt0iggepwHp9vHk4RxzDXoDhhVLI8NGZuqHDvCj2DySkOM_cJ2i_qk3L314wagVOO03-2_AZsfIyKaRD_pxhqPEcE8bJsNenc_weSMONQ8jh4nJoe9ggE0g9Zj6aCfC81ieFukm9tvxOUgRGPmdn8AsM3epOn5HYZ6HBCA-J-xNXFDH38i9kW7JJb2HCxsh96l7YnR-N2sPj45YmdfASh2EuI0QmstRBjCRwcExtHvYV-6j8gvzy8D-QMqRQJPdB0mjSxONimjOyDNmx3swgWc6CT-COLnm2RA9cGc6K3dFqwrW-XQWz2pPPVeYqh0mOTqUAByAIxipd1240KodOjw9oZcX9Xih5aUZ5AQ9cdW8g9BoLC88CQaJfihA3p6Qg2Upp4JejHf3ZZN0UlHUgKsuw47ZiUMXf9JsRhn-9KE37B0-nzf3aJu-862tt7DA5auB5c8-MNFxPBp8MDGu2MmNDb7fzjjU4xsNZEI_uTFvBeEkbiMX5ydRU1qDR5Gxh9Jw3ZOOssGpJfaZpunkiZRBsCtnCVLs0ZSmyUwOQvxeUP6kGT-NyJ80Ozohe84XDxbQQMLGVxpcCmJnJj8FSgnWCKWZcIWunyfBKbbXB9-NBGEmMzilgp8I5Q2yVQXPCF4yieEh8LplYZ-J9MwrV5IeHbY5FaGvnntIzga-QyP7c7IMBMBXb9u49sCa9DiwO3kSOMmTdz5orbqMBMGUIPYd--lJ9nniAjLxdCDWxUNg_2AIb5qoJV5ga-LX15Mk3g199CoL9WKZ_m0Wd_m9lydeAu_wvRt5oRcAPwF3-3vsxknmFUGYhD4IYzfykRslfhBksRPlcXxH7oEDAsd1Yjd0YhcskziGMI-DBMYARNi1fAdXkJRLaadLynZ3hPMW37sAuJ5_V8IMl1y9PweATgJgBes7dq_efZK1O275Tkm44CMJQUSpXrqzUj2CtX4236a1vXpM1-q1OuK1wTYsCeT28BYZUj_T8pnUOzvHBWxLMd4a3gkyzH8GSS3Do5DEumZ3LSvvzTfB7IjYt1n3-hc1GY9e26Ik5hbYdEI_34P_CQAA__9l9owZ">