character(10**5) S
integer,allocatable,dimension(:,:)::DP
integer keta(6)
integer SL
read*,S
SL=len_trim(S)
allocate(DP(0:12,SL))
DP=0
keta=[1,10,9,12,3,4]

if(S(SL:SL)=="?")then
  do i=0,9
    DP(i,1)=1
  end do
else 
  DP(ichar(S(SL:SL))-48,1)=1
end if

do i=2,SL
  if(S(SL-i+1:SL-i+1)=="?")then
  do j=0,9
    do k=0,12
      jj=mod(j*Keta( mod(i-1,6) +1 )+k,13)
      DP(jj,i)=mod(DP(jj,i)+DP(k,i-1),10**9+7)
    end do
  end do
  else
    jj=(ichar(S(SL-i+1:SL-i+1))-48)*Keta( mod(i-1,6) +1 )
    do j=0,12
      DP(mod(jj+j,13),i)=DP(j,i-1)
    end do
  endif
end do

print"(i0)",DP(5,SL)
end
; ModuleID = 'FIRModule'
source_filename = "FIRModule"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-linux-gnu"

@_QFEdp.0 = internal unnamed_addr global ptr null
@_QFEdp.8 = internal unnamed_addr global i1 false
@_QFEdp.10 = internal unnamed_addr global i64 1
@_QFEs = internal global [100000 x i8] undef
@_QQcl.57ea4efa3e469b7fabe14ec4e8d5f789 = linkonce constant [73 x i8] c"/home/ubuntu/Downloads/TheStack_IR/Collated/Fortran/Source_3669/source.f\00"
@_QQcl.16373402fa3425c6e46827601abb88fa = linkonce constant [76 x i8] c"array left hand side must be allocated when the right hand side is a scalar\00"
@_QQro.6xi4.bf519b461240e41b54e868d1d6492044 = internal unnamed_addr constant [6 x i32] [i32 1, i32 10, i32 9, i32 12, i32 3, i32 4]
@_QQcl.3F = linkonce constant [1 x i8] c"?"
@_QQcl.28693029 = linkonce constant [4 x i8] c"(i0)"
@_QQEnvironmentDefaults = local_unnamed_addr constant ptr null

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #0

define void @_QQmain() local_unnamed_addr {
  %1 = tail call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.57ea4efa3e469b7fabe14ec4e8d5f789, i32 5)
  %2 = tail call i1 @_FortranAioInputAscii(ptr %1, ptr nonnull @_QFEs, i64 100000)
  %3 = tail call i32 @_FortranAioEndIoStatement(ptr %1)
  br label %4

4:                                                ; preds = %0, %4
  %5 = phi i64 [ 99999, %0 ], [ %9, %4 ]
  %6 = getelementptr [100000 x [1 x i8]], ptr @_QFEs, i64 0, i64 %5
  %7 = load i8, ptr %6, align 1, !tbaa !3
  %8 = icmp eq i8 %7, 32
  %9 = add nsw i64 %5, -1
  %10 = icmp ne i64 %5, 0
  %11 = and i1 %8, %10
  br i1 %11, label %4, label %12

12:                                               ; preds = %4
  %13 = trunc i64 %5 to i32
  %14 = add i32 %13, 1
  %15 = select i1 %8, i32 0, i32 %14
  %16 = sext i32 %15 to i64
  %17 = tail call i64 @llvm.smax.i64(i64 %16, i64 0)
  %18 = mul nuw nsw i64 %17, 52
  %19 = tail call ptr @malloc(i64 %18)
  %20 = icmp slt i32 %15, 1
  store ptr %19, ptr @_QFEdp.0, align 8, !tbaa !7
  store i1 true, ptr @_QFEdp.8, align 1
  store i64 1, ptr @_QFEdp.10, align 8, !tbaa !7
  %.not = icmp eq ptr %19, null
  br i1 %.not, label %21, label %.preheader398

.preheader398:                                    ; preds = %12
  br i1 %20, label %._crit_edge, label %.preheader397.preheader

.preheader397.preheader:                          ; preds = %.preheader398
  tail call void @llvm.memset.p0.i64(ptr nonnull align 4 %19, i8 0, i64 %18, i1 false), !tbaa !3
  br label %._crit_edge

21:                                               ; preds = %12
  %22 = tail call {} @_FortranAReportFatalUserError(ptr nonnull @_QQcl.16373402fa3425c6e46827601abb88fa, ptr nonnull @_QQcl.57ea4efa3e469b7fabe14ec4e8d5f789, i32 8)
  %.unpack372.unpack373.unpack.pre = load i64, ptr @_QFEdp.10, align 8, !tbaa !7
  %23 = select i1 %20, i64 1, i64 %.unpack372.unpack373.unpack.pre
  store ptr %19, ptr @_QFEdp.0, align 8, !tbaa !7
  store i1 true, ptr @_QFEdp.8, align 1
  store i64 %23, ptr @_QFEdp.10, align 8, !tbaa !7
  br label %._crit_edge

._crit_edge:                                      ; preds = %.preheader398, %.preheader397.preheader, %21
  %24 = add nsw i64 %16, -1
  %25 = getelementptr [100000 x [1 x i8]], ptr @_QFEs, i64 0, i64 %24
  %26 = tail call i32 @_FortranACharacterCompareScalar1(ptr %25, ptr nonnull @_QQcl.3F, i64 1, i64 1)
  %27 = icmp eq i32 %26, 0
  %.unpack349 = load ptr, ptr @_QFEdp.0, align 8, !tbaa !7
  %.unpack356.unpack.unpack359.b = load i1, ptr @_QFEdp.8, align 1
  %.unpack356.unpack.unpack359 = select i1 %.unpack356.unpack.unpack359.b, i64 13, i64 0
  %.unpack356.unpack357.unpack = load i64, ptr @_QFEdp.10, align 8, !tbaa !7
  br i1 %27, label %.preheader395, label %48

.preheader395:                                    ; preds = %._crit_edge
  %28 = sub i64 1, %.unpack356.unpack357.unpack
  %29 = mul i64 %28, %.unpack356.unpack.unpack359
  %30 = getelementptr i32, ptr %.unpack349, i64 %29
  store i32 1, ptr %30, align 4, !tbaa !3
  %31 = add i64 %29, 1
  %32 = getelementptr i32, ptr %.unpack349, i64 %31
  store i32 1, ptr %32, align 4, !tbaa !3
  %33 = add i64 %29, 2
  %34 = getelementptr i32, ptr %.unpack349, i64 %33
  store i32 1, ptr %34, align 4, !tbaa !3
  %35 = add i64 %29, 3
  %36 = getelementptr i32, ptr %.unpack349, i64 %35
  store i32 1, ptr %36, align 4, !tbaa !3
  %37 = add i64 %29, 4
  %38 = getelementptr i32, ptr %.unpack349, i64 %37
  store i32 1, ptr %38, align 4, !tbaa !3
  %39 = add i64 %29, 5
  %40 = getelementptr i32, ptr %.unpack349, i64 %39
  store i32 1, ptr %40, align 4, !tbaa !3
  %41 = add i64 %29, 6
  %42 = getelementptr i32, ptr %.unpack349, i64 %41
  store i32 1, ptr %42, align 4, !tbaa !3
  %43 = add i64 %29, 7
  %44 = getelementptr i32, ptr %.unpack349, i64 %43
  store i32 1, ptr %44, align 4, !tbaa !3
  %45 = add i64 %29, 8
  %46 = getelementptr i32, ptr %.unpack349, i64 %45
  store i32 1, ptr %46, align 4, !tbaa !3
  %47 = add i64 %29, 9
  br label %.loopexit396

48:                                               ; preds = %._crit_edge
  %.unpack299 = load i8, ptr %25, align 1, !tbaa !3
  %49 = zext i8 %.unpack299 to i64
  %50 = sub i64 1, %.unpack356.unpack357.unpack
  %51 = mul i64 %50, %.unpack356.unpack.unpack359
  %52 = add nsw i64 %49, -48
  %53 = add i64 %52, %51
  br label %.loopexit396

.loopexit396:                                     ; preds = %.preheader395, %48
  %.sink413 = phi i64 [ %47, %.preheader395 ], [ %53, %48 ]
  %54 = getelementptr i32, ptr %.unpack349, i64 %.sink413
  store i32 1, ptr %54, align 4, !tbaa !3
  %55 = icmp sgt i32 %15, 1
  br i1 %55, label %.lr.ph, label %._crit_edge401

.lr.ph:                                           ; preds = %.loopexit396
  %56 = add nuw i32 %15, 1
  br label %57

57:                                               ; preds = %.lr.ph, %.loopexit
  %indvars.iv = phi i64 [ 2, %.lr.ph ], [ %indvars.iv.next, %.loopexit ]
  %58 = trunc i64 %indvars.iv to i32
  %59 = sub i32 %56, %58
  %60 = sext i32 %59 to i64
  %61 = add nsw i64 %60, -1
  %62 = getelementptr [100000 x [1 x i8]], ptr @_QFEs, i64 0, i64 %61
  %63 = tail call i32 @_FortranACharacterCompareScalar1(ptr %62, ptr nonnull @_QQcl.3F, i64 1, i64 1)
  %64 = icmp eq i32 %63, 0
  br i1 %64, label %.preheader393, label %.loopexit.loopexit403

.preheader393:                                    ; preds = %57
  %65 = add nsw i64 %indvars.iv, -1
  %66 = trunc i64 %65 to i32
  %.urem = urem i32 %66, 6
  %67 = zext i32 %.urem to i64
  %68 = getelementptr [6 x i32], ptr @_QQro.6xi4.bf519b461240e41b54e868d1d6492044, i64 0, i64 %67
  %69 = load i32, ptr %68, align 4, !tbaa !3
  %.unpack333 = load ptr, ptr @_QFEdp.0, align 8, !tbaa !7
  %.unpack340.unpack.unpack343.b = load i1, ptr @_QFEdp.8, align 1
  %.unpack340.unpack.unpack343 = select i1 %.unpack340.unpack.unpack343.b, i64 13, i64 0
  %.unpack340.unpack341.unpack = load i64, ptr @_QFEdp.10, align 8, !tbaa !7
  %70 = sub i64 %indvars.iv, %.unpack340.unpack341.unpack
  %71 = mul i64 %70, %.unpack340.unpack.unpack343
  %72 = sub i64 %65, %.unpack340.unpack341.unpack
  %73 = mul i64 %72, %.unpack340.unpack.unpack343
  %74 = getelementptr i32, ptr %.unpack333, i64 %73
  %75 = add i64 %73, 1
  %76 = getelementptr i32, ptr %.unpack333, i64 %75
  %77 = add i64 %73, 2
  %78 = getelementptr i32, ptr %.unpack333, i64 %77
  %79 = add i64 %73, 3
  %80 = getelementptr i32, ptr %.unpack333, i64 %79
  %81 = add i64 %73, 4
  %82 = getelementptr i32, ptr %.unpack333, i64 %81
  %83 = add i64 %73, 5
  %84 = getelementptr i32, ptr %.unpack333, i64 %83
  %85 = add i64 %73, 6
  %86 = getelementptr i32, ptr %.unpack333, i64 %85
  %87 = add i64 %73, 7
  %88 = getelementptr i32, ptr %.unpack333, i64 %87
  %89 = add i64 %73, 8
  %90 = getelementptr i32, ptr %.unpack333, i64 %89
  %91 = add i64 %73, 9
  %92 = getelementptr i32, ptr %.unpack333, i64 %91
  %93 = add i64 %73, 10
  %94 = getelementptr i32, ptr %.unpack333, i64 %93
  %95 = add i64 %73, 11
  %96 = getelementptr i32, ptr %.unpack333, i64 %95
  %97 = add i64 %73, 12
  %98 = getelementptr i32, ptr %.unpack333, i64 %97
  br label %.preheader

.preheader:                                       ; preds = %.preheader393, %.preheader
  %99 = phi i64 [ 10, %.preheader393 ], [ %219, %.preheader ]
  %100 = phi i32 [ 0, %.preheader393 ], [ %218, %.preheader ]
  %101 = mul i32 %69, %100
  %102 = srem i32 %101, 13
  %103 = sext i32 %102 to i64
  %104 = add i64 %71, %103
  %105 = getelementptr i32, ptr %.unpack333, i64 %104
  %106 = load i32, ptr %105, align 4, !tbaa !3
  %107 = load i32, ptr %74, align 4, !tbaa !3
  %108 = add i32 %107, %106
  %109 = srem i32 %108, 1000000007
  store i32 %109, ptr %105, align 4, !tbaa !3
  %110 = add i32 %101, 1
  %111 = srem i32 %110, 13
  %112 = sext i32 %111 to i64
  %113 = add i64 %71, %112
  %114 = getelementptr i32, ptr %.unpack333, i64 %113
  %115 = load i32, ptr %114, align 4, !tbaa !3
  %116 = load i32, ptr %76, align 4, !tbaa !3
  %117 = add i32 %116, %115
  %118 = srem i32 %117, 1000000007
  store i32 %118, ptr %114, align 4, !tbaa !3
  %119 = add i32 %101, 2
  %120 = srem i32 %119, 13
  %121 = sext i32 %120 to i64
  %122 = add i64 %71, %121
  %123 = getelementptr i32, ptr %.unpack333, i64 %122
  %124 = load i32, ptr %123, align 4, !tbaa !3
  %125 = load i32, ptr %78, align 4, !tbaa !3
  %126 = add i32 %125, %124
  %127 = srem i32 %126, 1000000007
  store i32 %127, ptr %123, align 4, !tbaa !3
  %128 = add i32 %101, 3
  %129 = srem i32 %128, 13
  %130 = sext i32 %129 to i64
  %131 = add i64 %71, %130
  %132 = getelementptr i32, ptr %.unpack333, i64 %131
  %133 = load i32, ptr %132, align 4, !tbaa !3
  %134 = load i32, ptr %80, align 4, !tbaa !3
  %135 = add i32 %134, %133
  %136 = srem i32 %135, 1000000007
  store i32 %136, ptr %132, align 4, !tbaa !3
  %137 = add i32 %101, 4
  %138 = srem i32 %137, 13
  %139 = sext i32 %138 to i64
  %140 = add i64 %71, %139
  %141 = getelementptr i32, ptr %.unpack333, i64 %140
  %142 = load i32, ptr %141, align 4, !tbaa !3
  %143 = load i32, ptr %82, align 4, !tbaa !3
  %144 = add i32 %143, %142
  %145 = srem i32 %144, 1000000007
  store i32 %145, ptr %141, align 4, !tbaa !3
  %146 = add i32 %101, 5
  %147 = srem i32 %146, 13
  %148 = sext i32 %147 to i64
  %149 = add i64 %71, %148
  %150 = getelementptr i32, ptr %.unpack333, i64 %149
  %151 = load i32, ptr %150, align 4, !tbaa !3
  %152 = load i32, ptr %84, align 4, !tbaa !3
  %153 = add i32 %152, %151
  %154 = srem i32 %153, 1000000007
  store i32 %154, ptr %150, align 4, !tbaa !3
  %155 = add i32 %101, 6
  %156 = srem i32 %155, 13
  %157 = sext i32 %156 to i64
  %158 = add i64 %71, %157
  %159 = getelementptr i32, ptr %.unpack333, i64 %158
  %160 = load i32, ptr %159, align 4, !tbaa !3
  %161 = load i32, ptr %86, align 4, !tbaa !3
  %162 = add i32 %161, %160
  %163 = srem i32 %162, 1000000007
  store i32 %163, ptr %159, align 4, !tbaa !3
  %164 = add i32 %101, 7
  %165 = srem i32 %164, 13
  %166 = sext i32 %165 to i64
  %167 = add i64 %71, %166
  %168 = getelementptr i32, ptr %.unpack333, i64 %167
  %169 = load i32, ptr %168, align 4, !tbaa !3
  %170 = load i32, ptr %88, align 4, !tbaa !3
  %171 = add i32 %170, %169
  %172 = srem i32 %171, 1000000007
  store i32 %172, ptr %168, align 4, !tbaa !3
  %173 = add i32 %101, 8
  %174 = srem i32 %173, 13
  %175 = sext i32 %174 to i64
  %176 = add i64 %71, %175
  %177 = getelementptr i32, ptr %.unpack333, i64 %176
  %178 = load i32, ptr %177, align 4, !tbaa !3
  %179 = load i32, ptr %90, align 4, !tbaa !3
  %180 = add i32 %179, %178
  %181 = srem i32 %180, 1000000007
  store i32 %181, ptr %177, align 4, !tbaa !3
  %182 = add i32 %101, 9
  %183 = srem i32 %182, 13
  %184 = sext i32 %183 to i64
  %185 = add i64 %71, %184
  %186 = getelementptr i32, ptr %.unpack333, i64 %185
  %187 = load i32, ptr %186, align 4, !tbaa !3
  %188 = load i32, ptr %92, align 4, !tbaa !3
  %189 = add i32 %188, %187
  %190 = srem i32 %189, 1000000007
  store i32 %190, ptr %186, align 4, !tbaa !3
  %191 = add i32 %101, 10
  %192 = srem i32 %191, 13
  %193 = sext i32 %192 to i64
  %194 = add i64 %71, %193
  %195 = getelementptr i32, ptr %.unpack333, i64 %194
  %196 = load i32, ptr %195, align 4, !tbaa !3
  %197 = load i32, ptr %94, align 4, !tbaa !3
  %198 = add i32 %197, %196
  %199 = srem i32 %198, 1000000007
  store i32 %199, ptr %195, align 4, !tbaa !3
  %200 = add i32 %101, 11
  %201 = srem i32 %200, 13
  %202 = sext i32 %201 to i64
  %203 = add i64 %71, %202
  %204 = getelementptr i32, ptr %.unpack333, i64 %203
  %205 = load i32, ptr %204, align 4, !tbaa !3
  %206 = load i32, ptr %96, align 4, !tbaa !3
  %207 = add i32 %206, %205
  %208 = srem i32 %207, 1000000007
  store i32 %208, ptr %204, align 4, !tbaa !3
  %209 = add i32 %101, 12
  %210 = srem i32 %209, 13
  %211 = sext i32 %210 to i64
  %212 = add i64 %71, %211
  %213 = getelementptr i32, ptr %.unpack333, i64 %212
  %214 = load i32, ptr %213, align 4, !tbaa !3
  %215 = load i32, ptr %98, align 4, !tbaa !3
  %216 = add i32 %215, %214
  %217 = srem i32 %216, 1000000007
  store i32 %217, ptr %213, align 4, !tbaa !3
  %218 = add nuw nsw i32 %100, 1
  %219 = add nsw i64 %99, -1
  %.not411 = icmp eq i64 %219, 0
  br i1 %.not411, label %.loopexit, label %.preheader

.loopexit.loopexit403:                            ; preds = %57
  %.unpack316 = load i8, ptr %62, align 1, !tbaa !3
  %220 = zext i8 %.unpack316 to i32
  %221 = add nsw i32 %220, -48
  %222 = add nsw i64 %indvars.iv, -1
  %223 = trunc i64 %222 to i32
  %.urem408 = urem i32 %223, 6
  %224 = zext i32 %.urem408 to i64
  %225 = getelementptr [6 x i32], ptr @_QQro.6xi4.bf519b461240e41b54e868d1d6492044, i64 0, i64 %224
  %226 = load i32, ptr %225, align 4, !tbaa !3
  %227 = mul i32 %221, %226
  %.unpack317 = load ptr, ptr @_QFEdp.0, align 8, !tbaa !7
  %.unpack324.unpack.unpack327.b = load i1, ptr @_QFEdp.8, align 1
  %.unpack324.unpack.unpack327 = select i1 %.unpack324.unpack.unpack327.b, i64 13, i64 0
  %.unpack324.unpack325.unpack = load i64, ptr @_QFEdp.10, align 8, !tbaa !7
  %228 = sub i64 %222, %.unpack324.unpack325.unpack
  %229 = mul i64 %228, %.unpack324.unpack.unpack327
  %230 = sub i64 %indvars.iv, %.unpack324.unpack325.unpack
  %231 = mul i64 %230, %.unpack324.unpack.unpack327
  %232 = getelementptr i32, ptr %.unpack317, i64 %229
  %233 = load i32, ptr %232, align 4, !tbaa !3
  %234 = srem i32 %227, 13
  %235 = sext i32 %234 to i64
  %236 = add i64 %231, %235
  %237 = getelementptr i32, ptr %.unpack317, i64 %236
  store i32 %233, ptr %237, align 4, !tbaa !3
  %238 = add i64 %229, 1
  %239 = getelementptr i32, ptr %.unpack317, i64 %238
  %240 = load i32, ptr %239, align 4, !tbaa !3
  %241 = add i32 %227, 1
  %242 = srem i32 %241, 13
  %243 = sext i32 %242 to i64
  %244 = add i64 %231, %243
  %245 = getelementptr i32, ptr %.unpack317, i64 %244
  store i32 %240, ptr %245, align 4, !tbaa !3
  %246 = add i64 %229, 2
  %247 = getelementptr i32, ptr %.unpack317, i64 %246
  %248 = load i32, ptr %247, align 4, !tbaa !3
  %249 = add i32 %227, 2
  %250 = srem i32 %249, 13
  %251 = sext i32 %250 to i64
  %252 = add i64 %231, %251
  %253 = getelementptr i32, ptr %.unpack317, i64 %252
  store i32 %248, ptr %253, align 4, !tbaa !3
  %254 = add i64 %229, 3
  %255 = getelementptr i32, ptr %.unpack317, i64 %254
  %256 = load i32, ptr %255, align 4, !tbaa !3
  %257 = add i32 %227, 3
  %258 = srem i32 %257, 13
  %259 = sext i32 %258 to i64
  %260 = add i64 %231, %259
  %261 = getelementptr i32, ptr %.unpack317, i64 %260
  store i32 %256, ptr %261, align 4, !tbaa !3
  %262 = add i64 %229, 4
  %263 = getelementptr i32, ptr %.unpack317, i64 %262
  %264 = load i32, ptr %263, align 4, !tbaa !3
  %265 = add i32 %227, 4
  %266 = srem i32 %265, 13
  %267 = sext i32 %266 to i64
  %268 = add i64 %231, %267
  %269 = getelementptr i32, ptr %.unpack317, i64 %268
  store i32 %264, ptr %269, align 4, !tbaa !3
  %270 = add i64 %229, 5
  %271 = getelementptr i32, ptr %.unpack317, i64 %270
  %272 = load i32, ptr %271, align 4, !tbaa !3
  %273 = add i32 %227, 5
  %274 = srem i32 %273, 13
  %275 = sext i32 %274 to i64
  %276 = add i64 %231, %275
  %277 = getelementptr i32, ptr %.unpack317, i64 %276
  store i32 %272, ptr %277, align 4, !tbaa !3
  %278 = add i64 %229, 6
  %279 = getelementptr i32, ptr %.unpack317, i64 %278
  %280 = load i32, ptr %279, align 4, !tbaa !3
  %281 = add i32 %227, 6
  %282 = srem i32 %281, 13
  %283 = sext i32 %282 to i64
  %284 = add i64 %231, %283
  %285 = getelementptr i32, ptr %.unpack317, i64 %284
  store i32 %280, ptr %285, align 4, !tbaa !3
  %286 = add i64 %229, 7
  %287 = getelementptr i32, ptr %.unpack317, i64 %286
  %288 = load i32, ptr %287, align 4, !tbaa !3
  %289 = add i32 %227, 7
  %290 = srem i32 %289, 13
  %291 = sext i32 %290 to i64
  %292 = add i64 %231, %291
  %293 = getelementptr i32, ptr %.unpack317, i64 %292
  store i32 %288, ptr %293, align 4, !tbaa !3
  %294 = add i64 %229, 8
  %295 = getelementptr i32, ptr %.unpack317, i64 %294
  %296 = load i32, ptr %295, align 4, !tbaa !3
  %297 = add i32 %227, 8
  %298 = srem i32 %297, 13
  %299 = sext i32 %298 to i64
  %300 = add i64 %231, %299
  %301 = getelementptr i32, ptr %.unpack317, i64 %300
  store i32 %296, ptr %301, align 4, !tbaa !3
  %302 = add i64 %229, 9
  %303 = getelementptr i32, ptr %.unpack317, i64 %302
  %304 = load i32, ptr %303, align 4, !tbaa !3
  %305 = add i32 %227, 9
  %306 = srem i32 %305, 13
  %307 = sext i32 %306 to i64
  %308 = add i64 %231, %307
  %309 = getelementptr i32, ptr %.unpack317, i64 %308
  store i32 %304, ptr %309, align 4, !tbaa !3
  %310 = add i64 %229, 10
  %311 = getelementptr i32, ptr %.unpack317, i64 %310
  %312 = load i32, ptr %311, align 4, !tbaa !3
  %313 = add i32 %227, 10
  %314 = srem i32 %313, 13
  %315 = sext i32 %314 to i64
  %316 = add i64 %231, %315
  %317 = getelementptr i32, ptr %.unpack317, i64 %316
  store i32 %312, ptr %317, align 4, !tbaa !3
  %318 = add i64 %229, 11
  %319 = getelementptr i32, ptr %.unpack317, i64 %318
  %320 = load i32, ptr %319, align 4, !tbaa !3
  %321 = add i32 %227, 11
  %322 = srem i32 %321, 13
  %323 = sext i32 %322 to i64
  %324 = add i64 %231, %323
  %325 = getelementptr i32, ptr %.unpack317, i64 %324
  store i32 %320, ptr %325, align 4, !tbaa !3
  %326 = add i64 %229, 12
  %327 = getelementptr i32, ptr %.unpack317, i64 %326
  %328 = load i32, ptr %327, align 4, !tbaa !3
  %329 = add i32 %227, 12
  %330 = srem i32 %329, 13
  %331 = sext i32 %330 to i64
  %332 = add i64 %231, %331
  %333 = getelementptr i32, ptr %.unpack317, i64 %332
  store i32 %328, ptr %333, align 4, !tbaa !3
  br label %.loopexit

.loopexit:                                        ; preds = %.preheader, %.loopexit.loopexit403
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv, %16
  br i1 %exitcond.not, label %._crit_edge401, label %57

._crit_edge401:                                   ; preds = %.loopexit, %.loopexit396
  %334 = tail call ptr @_FortranAioBeginExternalFormattedOutput(ptr nonnull @_QQcl.28693029, i64 4, ptr null, i32 -1, ptr nonnull @_QQcl.57ea4efa3e469b7fabe14ec4e8d5f789, i32 35)
  %.unpack300 = load ptr, ptr @_QFEdp.0, align 8, !tbaa !7
  %.unpack307.unpack.unpack310.b = load i1, ptr @_QFEdp.8, align 1
  %.unpack307.unpack.unpack310 = select i1 %.unpack307.unpack.unpack310.b, i64 13, i64 0
  %.unpack307.unpack308.unpack = load i64, ptr @_QFEdp.10, align 8, !tbaa !7
  %335 = sub i64 %16, %.unpack307.unpack308.unpack
  %336 = mul i64 %335, %.unpack307.unpack.unpack310
  %337 = add i64 %336, 5
  %338 = getelementptr i32, ptr %.unpack300, i64 %337
  %339 = load i32, ptr %338, align 4, !tbaa !3
  %340 = tail call i1 @_FortranAioOutputInteger32(ptr %334, i32 %339)
  %341 = tail call i32 @_FortranAioEndIoStatement(ptr %334)
  ret void
}

declare ptr @_FortranAioBeginExternalListInput(i32, ptr, i32) local_unnamed_addr

declare i1 @_FortranAioInputAscii(ptr, ptr, i64) local_unnamed_addr

declare i32 @_FortranAioEndIoStatement(ptr) local_unnamed_addr

declare {} @_FortranAReportFatalUserError(ptr, ptr, i32) local_unnamed_addr

declare i32 @_FortranACharacterCompareScalar1(ptr, ptr, i64, i64) local_unnamed_addr

declare ptr @_FortranAioBeginExternalFormattedOutput(ptr, i64, ptr, i32, ptr, i32) local_unnamed_addr

declare i1 @_FortranAioOutputInteger32(ptr, i32) local_unnamed_addr

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.smax.i64(i64, i64) #1

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #2

attributes #0 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" }
attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: write) }

!llvm.module.flags = !{!0, !1, !2}

!0 = !{i32 2, !"Debug Info Version", i32 3}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{!4, !4, i64 0}
!4 = !{!"any data access", !5, i64 0}
!5 = !{!"any access", !6, i64 0}
!6 = !{!"Flang Type TBAA Root"}
!7 = !{!8, !8, i64 0}
!8 = !{!"descriptor member", !5, i64 0}
