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

    <tr>
        <th>Summary</th>
        <td>
            [Mlir] --linalg-specialize-generic-ops crashes in Operation.h:399:37
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            mlir:linalg,
            crash
      </td>
    </tr>

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

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

<pre>
    git version: 56600c11ad

system: `Ubuntu 18.04.6 LTS`

reproduce with: `mlir-opt a.mlir --linalg-specialize-generic-ops`

a.mlir: 
``` 
#map = affine_map<(d0, d1) -> (d0, d1)>
#map1 = affine_map<(d0, d1, d2) -> (d0, d2)>
#map2 = affine_map<(d0, d1, d2) -> (d1, d2)>
#map3 = affine_map<(d0, d1, d2) -> (d0, d1)>
module {
  func.func private @func2(%arg0: tensor<1x31x8xi32>) -> tensor<1x31x31xi32> {
    %c-2351_i32 = arith.constant -2351 : i32
    %c0_i32 = arith.constant 0 : i32
    %0 = tensor.empty() : tensor<31x8xi32>
    %1 = linalg.generic {indexing_maps = [#map], iterator_types = ["parallel", "parallel"]} outs(%0 : tensor<31x8xi32>) {
    ^bb0(%out: i32):
      linalg.yield %c-2351_i32 : i32
    } -> tensor<31x8xi32>
    %2 = tensor.empty() : tensor<31x31xi32>
 %3 = linalg.generic {indexing_maps = [#map], iterator_types = ["parallel", "parallel"]} outs(%2 : tensor<31x31xi32>) {
    ^bb0(%out: i32):
      linalg.yield %c0_i32 : i32
    } -> tensor<31x31xi32>
    %4 = linalg.generic {indexing_maps = [#map1, #map2, #map3], iterator_types = ["parallel", "parallel", "reduction"]} ins(%1, %1 : tensor<31x8xi32>, tensor<31x8xi32>) outs(%3 : tensor<31x31xi32>) {
    ^bb0(%in: i32, %in_0: i32, %out: i32):
      linalg.yield %out : i32
    } -> tensor<31x31xi32>
 %5 = tensor.empty() : tensor<31x31xi32>
    %6 = linalg.generic {indexing_maps = [#map, #map], iterator_types = ["parallel", "parallel"]} ins(%4 : tensor<31x31xi32>) outs(%5 : tensor<31x31xi32>) {
    ^bb0(%in: i32, %out: i32):
      linalg.yield %in : i32
    } -> tensor<31x31xi32>
 %expanded = tensor.expand_shape %6 [[0, 1], [2]] output_shape [1, 31, 31] : tensor<31x31xi32> into tensor<1x31x31xi32>
    return %expanded : tensor<1x31x31xi32>
  }
}

``` 
stack trace:

```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.  Program arguments: /data/szy/MLIR/llvm-debug/llvm-project/build/bin/mlir-opt a.mlir --linalg-specialize-generic-ops
 #0 0x000056326dcbe799 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /data/szy/MLIR/llvm-debug/llvm-project/llvm/lib/Support/Unix/Signals.inc:723:11
 #1 0x000056326dcbec4b PrintStackTraceSignalHandler(void*) /data/szy/MLIR/llvm-debug/llvm-project/llvm/lib/Support/Unix/Signals.inc:798:1
 #2 0x000056326dcbce7f llvm::sys::RunSignalHandlers() /data/szy/MLIR/llvm-debug/llvm-project/llvm/lib/Support/Signals.cpp:105:5
 #3 0x000056326dcbf31e SignalHandler(int) /data/szy/MLIR/llvm-debug/llvm-project/llvm/lib/Support/Unix/Signals.inc:413:1
 #4 0x00007f4168d7e420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #5 0x000056326de1047c mlir::Operation::getNumResults() /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/Operation.h:399:37
 #6 0x000056326f0ef163 mlir::linalg::detail::isContractionBody(mlir::Block&, llvm::function_ref<bool (mlir::Operation*, mlir::Operation*)>, llvm::raw_ostream&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Dialect/Linalg/IR/LinalgInterfaces.cpp:284:36
 #7 0x000056326f0f010c bool isContractionBody<mlir::arith::MulFOp, mlir::arith::AddFOp, mlir::arith::MulIOp, mlir::arith::AddIOp, mlir::complex::MulOp, mlir::complex::AddOp, mlir::arith::AndIOp, mlir::arith::OrIOp>(mlir::Block&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Dialect/Linalg/IR/LinalgInterfaces.cpp:346:3
 #8 0x000056326f0eff78 mlir::linalg::detail::isContractionInterfaceImpl(mlir::Operation*, mlir::linalg::ContractionDimensions*) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Dialect/Linalg/IR/LinalgInterfaces.cpp:493:7
 #9 0x000056326f0f0242 mlir::linalg::isaContractionOpInterface(mlir::linalg::LinalgOp) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Dialect/Linalg/IR/LinalgInterfaces.cpp:535:64
#10 0x000056326f4f29cf mlir::linalg::specializeGenericOp(mlir::RewriterBase&, mlir::linalg::GenericOp) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Specialize.cpp:330:7
#11 0x000056326f4f8701 mlir::linalg::LinalgSpecializationPattern::returningMatchAndRewrite(mlir::linalg::GenericOp, mlir::PatternRewriter&) const /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h:1484:12
#12 0x000056326f4f86ad mlir::linalg::LinalgSpecializationPattern::matchAndRewrite(mlir::linalg::GenericOp, mlir::PatternRewriter&) const /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h:1489:12
#13 0x000056326ee125cb mlir::detail::OpOrInterfaceRewritePatternBase<mlir::linalg::GenericOp>::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&) const /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/PatternMatch.h:331:12
#14 0x000056327787252f mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<llvm::LogicalResult (mlir::Pattern const&)>)::$_0::operator()() const /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Rewrite/PatternApplicator.cpp:212:31
#15 0x00005632778723a5 void llvm::function_ref<void ()>::callback_fn<mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<llvm::LogicalResult (mlir::Pattern const&)>)::$_0>(long) /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#16 0x000056326dce2859 llvm::function_ref<void ()>::operator()() const /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#17 0x0000563277873bdb void mlir::MLIRContext::executeAction<mlir::ApplyPatternAction, mlir::Pattern const&>(llvm::function_ref<void ()>, llvm::ArrayRef<mlir::IRUnit>, mlir::Pattern const&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/MLIRContext.h:281:3
#18 0x0000563277870f4a mlir::PatternApplicator::matchAndRewrite(mlir::Operation*, mlir::PatternRewriter&, llvm::function_ref<bool (mlir::Pattern const&)>, llvm::function_ref<void (mlir::Pattern const&)>, llvm::function_ref<llvm::LogicalResult (mlir::Pattern const&)>) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Rewrite/PatternApplicator.cpp:233:9
#19 0x00005632736bbc08 (anonymous namespace)::GreedyPatternRewriteDriver::processWorklist() /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp:615:17
#20 0x00005632736baf91 (anonymous namespace)::RegionPatternRewriteDriver::simplify(bool*) &&::$_2::operator()() const /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp:874:30
#21 0x00005632736baf65 void llvm::function_ref<void ()>::callback_fn<(anonymous namespace)::RegionPatternRewriteDriver::simplify(bool*) &&::$_2>(long) /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#22 0x000056326dce2859 llvm::function_ref<void ()>::operator()() const /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#23 0x00005632736ba68b void mlir::MLIRContext::executeAction<(anonymous namespace)::GreedyPatternRewriteIteration, long&>(llvm::function_ref<void ()>, llvm::ArrayRef<mlir::IRUnit>, long&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/MLIRContext.h:281:3
#24 0x00005632736b8ce6 (anonymous namespace)::RegionPatternRewriteDriver::simplify(bool*) && /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp:887:3
#25 0x00005632736b89ff mlir::applyPatternsAndFoldGreedily(mlir::Region&, mlir::FrozenRewritePatternSet const&, mlir::GreedyRewriteConfig, bool*) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp:919:47
#26 0x000056326decb795 mlir::applyPatternsAndFoldGreedily(mlir::Operation*, mlir::FrozenRewritePatternSet const&, mlir::GreedyRewriteConfig, bool*) /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/Transforms/GreedyPatternRewriteDriver.h:159:9
#27 0x000056326f4f4fdb (anonymous namespace)::LinalgSpecializeGenericOpsPass::runOnOperation() /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Dialect/Linalg/Transforms/Specialize.cpp:352:14
#28 0x00005632735b63f4 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_1::operator()() const /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:0:17
#29 0x00005632735b6395 void llvm::function_ref<void ()>::callback_fn<mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int)::$_1>(long) /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#30 0x000056326dce2859 llvm::function_ref<void ()>::operator()() const /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#31 0x00005632735b913b void mlir::MLIRContext::executeAction<mlir::PassExecutionAction, mlir::Pass&>(llvm::function_ref<void ()>, llvm::ArrayRef<mlir::IRUnit>, mlir::Pass&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/include/mlir/IR/MLIRContext.h:281:3
#32 0x00005632735b1f97 mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:532:17
#33 0x00005632735b24b7 mlir::detail::OpToOpPassAdaptor::runPipeline(mlir::OpPassManager&, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:592:16
#34 0x00005632735b3e08 mlir::PassManager::runPasses(mlir::Operation*, mlir::AnalysisManager) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:905:10
#35 0x00005632735b3d43 mlir::PassManager::run(mlir::Operation*) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Pass/Pass.cpp:885:60
#36 0x00005632735a5f95 performActions(llvm::raw_ostream&, std::shared_ptr<llvm::SourceMgr> const&, mlir::MLIRContext*, mlir::MlirOptMainConfig const&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:474:17
#37 0x00005632735a5b86 processBuffer(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::MlirOptMainConfig const&, mlir::DialectRegistry&, llvm::ThreadPoolInterface*) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:542:12
#38 0x00005632735a594c mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_0::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) const /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:625:12
#39 0x00005632735a58e6 llvm::LogicalResult llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::callback_fn<mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&)::$_0>(long, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
#40 0x00005632737224f2 llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>::operator()(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&) const /data/szy/MLIR/llvm-debug/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:12
#41 0x0000563273721b05 mlir::splitAndProcessBuffer(std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::function_ref<llvm::LogicalResult (std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, llvm::raw_ostream&)>, llvm::raw_ostream&, llvm::StringRef, llvm::StringRef) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Support/ToolUtilities.cpp:27:12
#42 0x00005632735a2413 mlir::MlirOptMain(llvm::raw_ostream&, std::unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>>, mlir::DialectRegistry&, mlir::MlirOptMainConfig const&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:628:10
#43 0x00005632735a27b5 mlir::MlirOptMain(int, char**, llvm::StringRef, llvm::StringRef, mlir::DialectRegistry&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:669:14
#44 0x00005632735a2988 mlir::MlirOptMain(int, char**, llvm::StringRef, mlir::DialectRegistry&) /data/szy/MLIR/llvm-debug/llvm-project/mlir/lib/Tools/mlir-opt/MlirOptMain.cpp:685:10
#45 0x000056326dc47de3 main /data/szy/MLIR/llvm-debug/llvm-project/mlir/tools/mlir-opt/mlir-opt.cpp:323:33
#46 0x00007f416839c083 __libc_start_main /build/glibc-LcI20x/glibc-2.31/csu/../csu/libc-start.c:342:3
#47 0x000056326dc479fe _start (/data/szy/MLIR/llvm-debug/llvm-project/build/bin/mlir-opt+0x26519fe)


``` 
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsXFtv2zry_zTMCxGDInV9yINz8fkHaP4JmhT7aFAS5XArU1qK6rHPp1_wIluS7VydtNtzgCK2RXI485vhcGZEljYNXwjGzkBwDoLLE9qqx0qeXS15uaYrdpJW-fpswRX8wWTDKwHIFAZhiFDmeTQHaArQtFk3ii11CwjRt7QVqoVePEH-JIRfHu5BiGw_yWpZ5W3G4J9cPbr-y5LL06pWkE70V3h6WnJBy8VpU7OM05L_xU4XTDDJs9OqbjbEbHdDBE31U_PP_MBkSWsIyCWkRcEFmy9pDcgFwHGOAL6AuQdwAk8BuYLDZ4BcbcZ7zxC4gDneQwaPyODXkvH2kiFv42Yr1LLK25JBEJ0DNIWwaEU20X9gLfkPqhgEPtK_McAxwAGVC6SxVUw0lQTkwlsRbxWvOMGaXjfTsJl4rn0zDYQAB9kpJoE358RhIbl6nGSVaBQVCppGqOfSY7eD0KEBaLczMv0sMxO2rNXaSJHAgQh9ATZDrZqtyU2cnWn2ucjZiouFBrsxffQCMboAwaUGlysmqarkXK1r1uuCayppWbISYKz7jZ4ElyC6hFWrGos0OsykFmALZHCVpsiOqVrVYaD1O3VdYCfHmrMy34F-AFp0OdLgXnTwS4HdqF6PBTggPxtW_ASLR8AVvRTTATAWVP_12HhWYuNQtl_J-yCzTyTL20xpz75BkQsHopvWrc_9Nnpx0Ha3yiBvUQYXG10YJriYo-GTF6uratWrdQVwELzJ-q2SwzcsgI1ij7EUNkr0nwZ_q6XgGFp6sU64eItK2KqmImf5QDPm2bx5pDVz0OtY5txsgZ7DEgTnBpnAOIm6VV3_4NxYOen-BpeHYYBcqOrQpufEkEy1Uox4HW-kw0EgutQbvf07CmYaRbPvUEmaMYtmvwNA07svV9P7K9i06ZIrSGHaLqBkdSUVVBV8VKpu9Dg8A3i24OqxTSdZtQR4VpY_uo_TWlb_ZpkCeMabpmUNwDNIRQ65yMo2Z1A9MphJ2jzClGbfDTMTgKb3hre8XdaWNTSB8E5WC0mXkMpFu2RCNSZCw7OcKgrwrPlrDfDs5sv1127unKXtYpeRtOVlrj-5AHj22iDRGAtBEK0QQigICQ7zLGVRkkAjN5kCosNW--VOcqGMMA8GZxxvO0n657xqlGR0CXBoVqVQZjm8XqYOcp4CPLtva60lgGffBF_pB3whaNlMuMgAmUaYADL1PCeKNxYl81M44tsS-D8q8pJJgOMfFc8Bnn4Gs0msmXW84hGvGYuKfbB_bcWA5abzrkdjtuMyq7WFeigAZBo4LsmIy4J4DI4h_Bxd-x7pwec7xqLC98I4j5iPEZzPJWtUJdlcKmhwcqRXcTgPfb0c2tXpQrS2oVaPktF80lQTBPA5Wnm-j5H2yHaOYCA885AfZdDlU4BMb2u98dhsD5Dpgqn_b5dfWdOW6h1KMvTxzDmV7QMzcDPlRCeGJNF7B4kcu2Gf3QKxwgtJj13rC-z3nCnKS_udNxeV0N5K0z2vcr19b0edl1X23a3prXXqHEh3n0tWAHKRVlUJB8O22OildbEXNbPoXHR02JW8B0Sr_EtOS_v4i4XAgWl_XQvFZEEz1i0AHPsa1dChGg1RLZCHMmgE3gWOXGzlNPmY_XrTlrPbeghDr3ma508137Tl9dOjd5qzalmXbLUZ_2T7NM-fIi92yfeab6Vu1TrcazOfrjzih_qv0108XhFFFL92RWymuF7W5QttvE-4R-qSL5loeKVjzrduOO8Bx0-0B-3cRTI2bOzjAzLwhvbEuK03lAd49EdYDrThfLqUAdEbWOjbqpA3CG8Kv8BJVhwQcxsm_WGjJM1_T8Cv7E-ps41z2jDnEvcT6g3_EPEfJBVNUcmljkHvN1x3a4Agp2YtvzeSP46Qd4BtS39Dz9j2HVWKSbfF2aidi8UNVdnjVOQOkYNm0AOij5Uj2uHpXIWpXR1zy3wOue0Ps516vvH8HnbI4TFyIc3fitzyNwUs6QM2CBYZ83CQpT0h-i72tr6Vm5XrxHJCmtXV30n340Ounkf2sIf-JEDNQDeXWTM2biNeHza_B1sUxREOcLHL6rSuS55RVcljy_2qwM4RsFBZ2HZCuBERnWG9m8i24Uu14BktbaD9MrqJbQbYN8UxQKZVbYtGNk530fp71W_99UYhsx3NdRGmh7UVeE7_wVj_hAbQgPYspE5AG9TRskxp9n1eiMHy-cd-jmw_OtgtK7F4X8679RXuwfTyQe_mD19mjnNaXq2UpNbXmrg2cBYTDrNyhuMgeZ2xHNf-3yZSmPREikaLgKR5ahfBVj2aEx2HspWyD9iKZa1iU1uZ7xu9tvZ1Z_mucL_Hjreatlp9IYQDQ5tKSddfTbct_euv3wRXru-TBnb07aaHkoEZx55LiTTO8QhnVPj0n83mqM7iM3YQojO5xOm0n8lFJEzTDMWaVyoqsV5WbQMFXbKmNgmb82V_SMby9VBDl5L_YE66WlYZa5p_VfJ7ybV876xnWckG0eQ3xUv9eZgVJ23o6YzOcxkNRiNxaZF4z4n7lS22IfkecRu-rEterAGOtRlu8vPQ-IbO-eMPDx7eBlAcmZIVcgB5OwCF7w8oPgvgn767Yvzb7a6YjC0ijF-_u77Bo1yrzd5wAa1WP3ar7eb47H0V-yOE44yFH-mUfpaniaOe0MFY6KToZ660F4Q1U5HPqjI3M_ByPSqsLYyNjEpqM1n9xcSwOnDPVG_H7fe2vLveF5Uo-EJ3GCD3MyBLPK1uv9u9hrE7y9IoCd6C2eGw69eBbWchDRB8AjlTXQqSbYyDo1Exzi_y9Ln1NarKbau6zR1t3OtV2Ypb0cPyKGHO60u2ATb1NCfsIEgnQRqSwj9YSHuobmstzzSn9SZgl60YBatN88yruH7LVNBy3fDmhgq60JF7ZxAXsBXmKGzu3vBv927vw4MjK4T5cLihflyY7KCWHLOO8sui_tMjpvERkt8gYiLeyJgSj7ynHqEt4cq08upAQUKbyufVIexsnx0mDU69aFi9Iol-Uc_2Ae4qILjnsAgZgYH99PVg3PGalVyMazK660bG8OjojI3pWjRKmqNseg3v1IH6HXpHZjre76hkQl2LouqClKPEa3sUkBgFhE4B_kgBhKF4xHeHxAZu2jSseWEktgPnR8iUmANbnkv-STCWKffJMzI9Ic1HMBzH5gV9x3A4ZJgGRRLAmkkdLFlP2Txz1rBRuUuYHqlk-bxWclDEu69ambGbhQTk6kAU3HflYy3elFze1uqGcmHj4yOVb11SUVUmj1i6w5uaxHbC7uSGKfBsHEc0hiyNQ-gqdudtUZhTeS9CrBX8Py3bQeyGLSu57kj1-uesoG2p5jkrmWKHx-h9_erlMPb7ueBZ54SNkuudqvGDObR3V1Vl7xjKcfK7l6gi8HHv5S2Jx6pI_Gy_0L-gSvZD_ULLH7wT2xvDfZ5ITx0fPFJh9iW2EeKgbxvJ2DZiFsJD7xbe8jLilwD42cTp77IGtnnYZ0py5JOz78gGO7v3hy9oIoz9Av8G9v27-bd3ZMkbVXsjVXsp6lczm7rkairyu1Fs8jOQ-x80uyd79NvuleRioZP_Q4_fHx1tr2fovfCb4iVXfHtqPuqbxSjNp9j3yN8jKvqsQCPu5Xw-GcMdpcFBuF3-nj1Sm6lPX2tKz2H1WRhYT-Rq5r4_xiCJ46Ng8GsIG_eTfH94Mynzo5wRuKRcvIMbtctH97V7S2Fu2xFXy_PDwRUskmQoJnA-L3mazRtFpZp3HHXXFBe67fRLdo3RavMTT4gH8CxrWoBnk8nmq2k0dCaZudmBt3VEPxoDkBQM2lndxa_jXKU018JwGHhJwezFsPHt05P8jOQJSegJO_MiEvqYeDg8eTwLEkQKxBgKKUtDhGIvL3CeUhZgL_I9dsLPMMIB8lDieX6AwwnCWZ7gAiW-h8IgCoCP2JLycqJZnVRycWIunp55GOMgPilpysrmzF52dlbqzkqbG88AY3Md1d52PpFnRuK0XTTARyVvVLMlrLgqzf9uok0PBJfP3R21F11ZA7mA-y-lnbSyPHv7zVon448z_N8AAAD__8_WVhg">