//#include <omp.h>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <vector>
#include <sys/mman.h>
#include <sys/stat.h>
#include <iostream>
#include <fcntl.h>
#include <cmath>
using namespace std;

__device__ __managed__ float *x, *y, *z, gpuTotal;
__device__ __managed__ int **indices, *lens;
__device__ __managed__ float xStep, yStep, zStep;
__device__ __managed__ float counter;


__global__ void calcNearby(){
  int _x=10*blockIdx.x+threadIdx.x;
  int _y=10*blockIdx.y+threadIdx.y;
  int _z=10*blockIdx.z+threadIdx.z;
  int i = 10000*_x+100*_y+_z;
  float result = 0;
  float dx, dy, dz;
  for(int j=-1;j<=1;j++){
    for(int k=-1;k<=1;k++){
      for(int l=-1;l<=1;l++){
        if(_x+j<0 || _y+k<0 || _z+l<0) continue;
        if(_x+j>99 || _y+k>99 || _z+l>99) continue;
        int h=10000*(_x+j)+100*(_y+k)+(_z+l);
        for(int m=0;m<lens[i];m++){
          for(int n=0;n<lens[i];n++){
            //if(indices[h][m]==indices[i][n]) continue;
            atomicAdd(&counter,1);
            dx = x[indices[h][m]]-x[indices[i][n]];
            dx = y[indices[h][m]]-y[indices[i][n]];
            dx = z[indices[h][m]]-z[indices[i][n]];
            result+=rsqrt(dx*dx+dy*dy+dz*dz);
          }
        }
      }
    }
  }
  atomicAdd(&gpuTotal, result);
}



__global__ void calcOverall(){
  int _x=10*blockIdx.x+threadIdx.x;
  int _y=10*blockIdx.y+threadIdx.y;
  int _z=10*blockIdx.z+threadIdx.z;
  int i = 10000*_x+100*_y+_z;
  float result = 0;
  float dx, dy, dz;
  for(int j=0;j<100;j++){
    for(int k=0;k<100;k++){
      for(int l=0;l<100;l++){
        int h=10000*j+100*k+l;
        if(abs(_x-j)<2) continue;
        if(abs(_y-k)<2) continue;
        if(abs(_z-l)<2) continue;
        int weight=lens[i]*lens[h];
        dx = (_x-j)*xStep;
        dy = (_y-k)*yStep;
        dz = (_z-l)*zStep;
        result+=rsqrt(dx*dx+dy*dy+dz*dz)*weight;
      }
    }
  }
  atomicAdd(&gpuTotal, result);
}

int main(int argc, char* argv[]){
  counter=0;
  char* &filename = argv[1];
  vector<const char*> lineAddrs;
  struct stat st;
  int ndex=1;
  stat(filename, &st);
  size_t filesize = st.st_size;
  int fd = open(filename,O_RDONLY,0);
  void* file = mmap(NULL,  filesize, PROT_READ, MAP_PRIVATE | MAP_POPULATE, fd, 0);
  const char* input = (const char*) file;
  int lines=0;
  lineAddrs.push_back(input);
  cout<<"Reading file"<<endl;
  for(int i=0;i<filesize;i++){
    if(input[i]=='\n'){
      lines++;
      lineAddrs.push_back(input+i+1);
    }
  }
  cudaMallocManaged(&x,   (size_t) lines*sizeof(float));
  cudaMallocManaged(&y,   (size_t) lines*sizeof(float));
  cudaMallocManaged(&z,   (size_t) lines*sizeof(float));
  for(int i=0;i<lines;i++){
    const char *a,*b,*c;
    a=lineAddrs[i];
    b=strpbrk(strpbrk(a," \t"),"-0123456789");
    c=strpbrk(strpbrk(b," \t"),"-0123456789");
    x[i]=atof(a);
    y[i]=atof(b);
    z[i]=atof(c);
  }
  munmap(file, filesize);
  float maxX=x[0], minX=x[0], maxY=y[0], minY=y[0], maxZ=z[0], minZ=z[0];
  int chunkSize=(lines+ndex-1)/ndex;
  cout<<"Calculating grid size"<<endl;
  for(int i=0;i<ndex;i++){
    float _maxX=x[i*chunkSize], _minX=x[i*chunkSize], _maxY=y[i*chunkSize],
          _minY=y[i*chunkSize], _maxZ=z[i*chunkSize], _minZ=z[i*chunkSize];
    for(int j=i*chunkSize+1;j<(i+1)*chunkSize;j++){
      if(j>=lines) break;
      if(x[j]<_minX) _minX=x[j];
      if(x[j]>_maxX) _maxX=x[j];
      if(y[j]<_minY) _minY=y[j];
      if(y[j]>_maxY) _maxY=y[j];
      if(z[j]<_minZ) _minZ=z[j];
      if(z[j]>_maxZ) _maxZ=z[j];
    }
    {
      if(_minX<minX) minX=_minX;
      if(_maxX>maxX) maxX=_maxX;
      if(_minY<minY) minY=_minY;
      if(_maxY>maxY) maxY=_maxY;
      if(_minZ<minZ) minZ=_minZ;
      if(_maxZ>maxZ) maxZ=_maxZ;
    }
  }
  xStep=(maxX-minX)/99;
  yStep=(maxY-minY)/99;
  zStep=(maxZ-minZ)/99;
  typedef vector<int> bit;
  typedef vector<bit> skinny;
  typedef vector<skinny> flat;
  typedef vector<flat> pack;
  pack pointLists(100, flat(100, skinny(100)));
  cout<<"Assigning points"<<endl;
  for(int i=0;i<lines;i++){
    int _x=(int)((x[i]-minX)/xStep);
    int _y=(int)((y[i]-minY)/yStep);
    int _z=(int)((z[i]-minZ)/zStep);
    pointLists[_x][_y][_z].push_back(i);
  }
  cudaMallocManaged(&indices,   (size_t) 1000000*sizeof(int*));
  cudaMallocManaged(&lens,   (size_t) 1000000*sizeof(float));
  //cudaMallocManaged(&res,   (size_t) 1000000*sizeof(float*));
  for(int i=0;i<100;i++){
    for(int j=0;j<100;j++){
      for(int k=0;k<100;k++){
        int count=pointLists[i][j][k].size();
        //cout<<count;
        int index=10000*i+100*j+k;
        lens[index]=count;
        cudaMallocManaged(&(indices[index]),   (size_t) count*sizeof(int));
        cudaMemcpy(&(indices[index]), &(pointLists[i][j][k][0]),
                   count*sizeof(int), cudaMemcpyHostToDevice);
      }
    }
  }


  cout<<"Done"<<endl;
  float total=0.0f;
  dim3 dimBlock(10,10,10);
  dim3 dimGrid(10,10,10);
  cout<<"Sending to GPU"<<endl;
  // launch the kernel
  gpuTotal=0;
  calcOverall<<<dimGrid, dimBlock>>>();
  calcNearby<<<dimGrid, dimBlock>>>();
 
  cudaDeviceSynchronize();
  gpuTotal*=-1/2.0;
  cout<<gpuTotal<<endl;
  cout<<counter<<endl;
  return 0;
}

	.file	"tmpxft_003127e4_00000000-6_gravity-gpu.cudafe1.cpp"
	.text
#APP
	.globl _ZSt21ios_base_library_initv

#NO_APP
	.type	_ZL20__nv_init_managed_rtv, @function
_ZL20__nv_init_managed_rtv:
.LFB1:
	.cfi_startproc
	movb	_ZL22__nv_inited_managed_rt(%rip), %al
	testb	%al, %al
	jne	.L4
	pushq	%rax
	.cfi_def_cfa_offset 16
	movq	_ZL32__nv_fatbinhandle_for_managed_rt(%rip), %rdi
	call	__cudaInitModule@PLT
	movb	%al, _ZL22__nv_inited_managed_rt(%rip)
	popq	%rdx
	.cfi_def_cfa_offset 8
	ret
.L4:
	movb	%al, _ZL22__nv_inited_managed_rt(%rip)
	ret
	.cfi_endproc
.LFE1:
	.size	_ZL20__nv_init_managed_rtv, .-_ZL20__nv_init_managed_rtv
	.type	_ZL26__cudaUnregisterBinaryUtilv, @function
_ZL26__cudaUnregisterBinaryUtilv:
.LFB4015:
	.cfi_startproc
	endbr64
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	jmp	__cudaUnregisterFatBinary@PLT
	.cfi_endproc
.LFE4015:
	.size	_ZL26__cudaUnregisterBinaryUtilv, .-_ZL26__cudaUnregisterBinaryUtilv
	.align 2
	.type	_ZNSt12_Vector_baseIPKcSaIS1_EE11_M_allocateEm.isra.0, @function
_ZNSt12_Vector_baseIPKcSaIS1_EE11_M_allocateEm.isra.0:
.LFB5116:
	.cfi_startproc
	testq	%rdi, %rdi
	je	.L10
	movabsq	$1152921504606846975, %rax
	cmpq	%rdi, %rax
	jnb	.L11
	pushq	%rax
	.cfi_def_cfa_offset 16
	movabsq	$2305843009213693951, %rax
	cmpq	%rdi, %rax
	jnb	.L12
	call	_ZSt28__throw_bad_array_new_lengthv@PLT
.L12:
	call	_ZSt17__throw_bad_allocv@PLT
.L11:
	.cfi_def_cfa_offset 8
	salq	$3, %rdi
	jmp	_Znwm@PLT
.L10:
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE5116:
	.size	_ZNSt12_Vector_baseIPKcSaIS1_EE11_M_allocateEm.isra.0, .-_ZNSt12_Vector_baseIPKcSaIS1_EE11_M_allocateEm.isra.0
	.align 2
	.type	_ZNSolsEPFRSoS_E.isra.0, @function
_ZNSolsEPFRSoS_E.isra.0:
.LFB5119:
	.cfi_startproc
	jmp	*%rsi
	.cfi_endproc
.LFE5119:
	.size	_ZNSolsEPFRSoS_E.isra.0, .-_ZNSolsEPFRSoS_E.isra.0
	.globl	_Z29__device_stub__Z10calcNearbyvv
	.type	_Z29__device_stub__Z10calcNearbyvv, @function
_Z29__device_stub__Z10calcNearbyvv:
.LFB4037:
	.cfi_startproc
	endbr64
	subq	$88, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	movabsq	$4294967297, %rax
	leaq	8(%rsp), %rcx
	movq	%rsp, %rdx
	leaq	28(%rsp), %rsi
	leaq	16(%rsp), %rdi
	movl	$1, 24(%rsp)
	movl	$1, 36(%rsp)
	movq	%rax, 16(%rsp)
	movq	%rax, 28(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L17
	pushq	8(%rsp)
	.cfi_def_cfa_offset 104
	leaq	_Z10calcNearbyv(%rip), %rdi
	pushq	8(%rsp)
	.cfi_def_cfa_offset 112
	movq	44(%rsp), %rcx
	movl	52(%rsp), %r8d
	movq	32(%rsp), %rsi
	movl	40(%rsp), %edx
	leaq	80(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 104
	popq	%rdx
	.cfi_def_cfa_offset 96
.L17:
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L19
	call	__stack_chk_fail@PLT
.L19:
	addq	$88, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4037:
	.size	_Z29__device_stub__Z10calcNearbyvv, .-_Z29__device_stub__Z10calcNearbyvv
	.globl	_Z10calcNearbyv
	.type	_Z10calcNearbyv, @function
_Z10calcNearbyv:
.LFB4038:
	.cfi_startproc
	endbr64
	jmp	_Z29__device_stub__Z10calcNearbyvv
	.cfi_endproc
.LFE4038:
	.size	_Z10calcNearbyv, .-_Z10calcNearbyv
	.globl	_Z30__device_stub__Z11calcOverallvv
	.type	_Z30__device_stub__Z11calcOverallvv, @function
_Z30__device_stub__Z11calcOverallvv:
.LFB4039:
	.cfi_startproc
	endbr64
	subq	$88, %rsp
	.cfi_def_cfa_offset 96
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	movabsq	$4294967297, %rax
	leaq	8(%rsp), %rcx
	movq	%rsp, %rdx
	leaq	28(%rsp), %rsi
	leaq	16(%rsp), %rdi
	movl	$1, 24(%rsp)
	movl	$1, 36(%rsp)
	movq	%rax, 16(%rsp)
	movq	%rax, 28(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L22
	pushq	8(%rsp)
	.cfi_def_cfa_offset 104
	leaq	_Z11calcOverallv(%rip), %rdi
	pushq	8(%rsp)
	.cfi_def_cfa_offset 112
	movq	44(%rsp), %rcx
	movl	52(%rsp), %r8d
	movq	32(%rsp), %rsi
	movl	40(%rsp), %edx
	leaq	80(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 104
	popq	%rdx
	.cfi_def_cfa_offset 96
.L22:
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L24
	call	__stack_chk_fail@PLT
.L24:
	addq	$88, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4039:
	.size	_Z30__device_stub__Z11calcOverallvv, .-_Z30__device_stub__Z11calcOverallvv
	.globl	_Z11calcOverallv
	.type	_Z11calcOverallv, @function
_Z11calcOverallv:
.LFB4040:
	.cfi_startproc
	endbr64
	jmp	_Z30__device_stub__Z11calcOverallvv
	.cfi_endproc
.LFE4040:
	.size	_Z11calcOverallv, .-_Z11calcOverallv
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"_Z11calcOverallv"
.LC1:
	.string	"_Z10calcNearbyv"
.LC2:
	.string	"x"
.LC3:
	.string	"y"
.LC4:
	.string	"z"
.LC5:
	.string	"gpuTotal"
.LC6:
	.string	"indices"
.LC7:
	.string	"lens"
.LC8:
	.string	"xStep"
.LC9:
	.string	"yStep"
.LC10:
	.string	"zStep"
.LC11:
	.string	"counter"
	.section	.text.startup,"ax",@progbits
	.type	_ZL24__sti____cudaRegisterAllv, @function
_ZL24__sti____cudaRegisterAllv:
.LFB4042:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	leaq	_ZL15__fatDeviceText(%rip), %rdi
	call	__cudaRegisterFatBinary@PLT
	pushq	$0
	.cfi_def_cfa_offset 24
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC0(%rip), %rdx
	movq	%rax, %rdi
	movq	%rax, %rbx
	pushq	$0
	.cfi_def_cfa_offset 40
	movq	%rdx, %rcx
	leaq	_Z11calcOverallv(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 48
	movq	%rax, _ZL20__cudaFatCubinHandle(%rip)
	movq	%rax, _ZL32__nv_fatbinhandle_for_managed_rt(%rip)
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	movq	%rbx, %rdi
	xorl	%r9d, %r9d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC1(%rip), %rdx
	orl	$-1, %r8d
	leaq	_Z10calcNearbyv(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	pushq	$0
	.cfi_def_cfa_offset 40
	pushq	$0
	.cfi_def_cfa_offset 48
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC2(%rip), %rdx
	movl	$8, %r9d
	leaq	_ZL1x(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	call	__cudaRegisterManagedVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC3(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$8, %r9d
	leaq	_ZL1y(%rip), %rsi
	call	__cudaRegisterManagedVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC4(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$8, %r9d
	leaq	_ZL1z(%rip), %rsi
	call	__cudaRegisterManagedVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	popq	%r8
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC5(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$4, %r9d
	leaq	_ZL8gpuTotal(%rip), %rsi
	call	__cudaRegisterManagedVar@PLT
	popq	%r9
	.cfi_def_cfa_offset 24
	popq	%r10
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC6(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$8, %r9d
	leaq	_ZL7indices(%rip), %rsi
	call	__cudaRegisterManagedVar@PLT
	popq	%r11
	.cfi_def_cfa_offset 24
	popq	%rax
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC7(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$8, %r9d
	leaq	_ZL4lens(%rip), %rsi
	call	__cudaRegisterManagedVar@PLT
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC8(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$4, %r9d
	leaq	_ZL5xStep(%rip), %rsi
	call	__cudaRegisterManagedVar@PLT
	popq	%rcx
	.cfi_def_cfa_offset 24
	popq	%rsi
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC9(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$4, %r9d
	leaq	_ZL5yStep(%rip), %rsi
	call	__cudaRegisterManagedVar@PLT
	popq	%rdi
	.cfi_def_cfa_offset 24
	popq	%r8
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC10(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movq	%rdx, %rcx
	movl	$4, %r9d
	leaq	_ZL5zStep(%rip), %rsi
	call	__cudaRegisterManagedVar@PLT
	popq	%r9
	.cfi_def_cfa_offset 24
	popq	%r10
	.cfi_def_cfa_offset 16
	pushq	$0
	.cfi_def_cfa_offset 24
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC11(%rip), %rdx
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	movl	$4, %r9d
	movq	%rdx, %rcx
	leaq	_ZL7counter(%rip), %rsi
	call	__cudaRegisterManagedVar@PLT
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	popq	%r11
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	call	__cudaRegisterFatBinaryEnd@PLT
	leaq	_ZL26__cudaUnregisterBinaryUtilv(%rip), %rdi
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	atexit@PLT
	.cfi_endproc
.LFE4042:
	.size	_ZL24__sti____cudaRegisterAllv, .-_ZL24__sti____cudaRegisterAllv
	.section	.init_array,"aw"
	.align 8
	.quad	_ZL24__sti____cudaRegisterAllv
	.section	.text._ZNSt6vectorIPKcSaIS1_EED2Ev,"axG",@progbits,_ZNSt6vectorIPKcSaIS1_EED5Ev,comdat
	.align 2
	.weak	_ZNSt6vectorIPKcSaIS1_EED2Ev
	.type	_ZNSt6vectorIPKcSaIS1_EED2Ev, @function
_ZNSt6vectorIPKcSaIS1_EED2Ev:
.LFB4352:
	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L29
	movq	16(%rdi), %rsi
	movq	%rax, %rdi
	subq	%rax, %rsi
	jmp	_ZdlPvm@PLT
.L29:
	ret
	.cfi_endproc
.LFE4352:
	.size	_ZNSt6vectorIPKcSaIS1_EED2Ev, .-_ZNSt6vectorIPKcSaIS1_EED2Ev
	.weak	_ZNSt6vectorIPKcSaIS1_EED1Ev
	.set	_ZNSt6vectorIPKcSaIS1_EED1Ev,_ZNSt6vectorIPKcSaIS1_EED2Ev
	.section	.text._ZNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EED2Ev,"axG",@progbits,_ZNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EED5Ev,comdat
	.align 2
	.weak	_ZNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EED2Ev
	.type	_ZNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EED2Ev, @function
_ZNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EED2Ev:
.LFB4585:
	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L31
	movq	16(%rdi), %rsi
	movq	%rax, %rdi
	subq	%rax, %rsi
	jmp	_ZdlPvm@PLT
.L31:
	ret
	.cfi_endproc
.LFE4585:
	.size	_ZNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EED2Ev, .-_ZNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EED2Ev
	.weak	_ZNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EED1Ev
	.set	_ZNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EED1Ev,_ZNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EED2Ev
	.section	.text._ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EED2Ev,"axG",@progbits,_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EED5Ev,comdat
	.align 2
	.weak	_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EED2Ev
	.type	_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EED2Ev, @function
_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EED2Ev:
.LFB4604:
	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L33
	movq	16(%rdi), %rsi
	movq	%rax, %rdi
	subq	%rax, %rsi
	jmp	_ZdlPvm@PLT
.L33:
	ret
	.cfi_endproc
.LFE4604:
	.size	_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EED2Ev, .-_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EED2Ev
	.weak	_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EED1Ev
	.set	_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EED1Ev,_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EED2Ev
	.section	.text._ZNSt12_Vector_baseISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EESaIS6_EED2Ev,"axG",@progbits,_ZNSt12_Vector_baseISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EESaIS6_EED5Ev,comdat
	.align 2
	.weak	_ZNSt12_Vector_baseISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EESaIS6_EED2Ev
	.type	_ZNSt12_Vector_baseISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EESaIS6_EED2Ev, @function
_ZNSt12_Vector_baseISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EESaIS6_EED2Ev:
.LFB4623:
	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L35
	movq	16(%rdi), %rsi
	movq	%rax, %rdi
	subq	%rax, %rsi
	jmp	_ZdlPvm@PLT
.L35:
	ret
	.cfi_endproc
.LFE4623:
	.size	_ZNSt12_Vector_baseISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EESaIS6_EED2Ev, .-_ZNSt12_Vector_baseISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EESaIS6_EED2Ev
	.weak	_ZNSt12_Vector_baseISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EESaIS6_EED1Ev
	.set	_ZNSt12_Vector_baseISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EESaIS6_EED1Ev,_ZNSt12_Vector_baseISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EESaIS6_EED2Ev
	.section	.rodata._ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_.str1.1,"aMS",@progbits,1
.LC12:
	.string	"vector::_M_realloc_insert"
	.section	.text._ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_,"axG",@progbits,_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_,comdat
	.align 2
	.weak	_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_
	.type	_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_, @function
_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_:
.LFB4630:
	.cfi_startproc
	endbr64
	movabsq	$2305843009213693951, %rcx
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	8(%rdi), %rax
	movq	(%rdi), %r14
	movq	%rax, %rbx
	movq	%rax, (%rsp)
	subq	%r14, %rbx
	sarq	$2, %rbx
	cmpq	%rcx, %rbx
	jne	.L38
	leaq	.LC12(%rip), %rdi
	call	_ZSt20__throw_length_errorPKc@PLT
.L38:
	cmpq	%r14, (%rsp)
	movl	$1, %eax
	movq	%rsi, %r15
	movq	%rdi, %r13
	cmovne	%rbx, %rax
	movq	%rsi, %rbp
	addq	%rax, %rbx
	setc	%al
	subq	%r14, %r15
	movzbl	%al, %eax
	testq	%rax, %rax
	jne	.L48
	xorl	%r12d, %r12d
	testq	%rbx, %rbx
	je	.L43
	movabsq	$2305843009213693951, %rax
	cmpq	%rax, %rbx
	cmova	%rax, %rbx
	jmp	.L42
.L48:
	movq	%rcx, %rbx
.L42:
	leaq	0(,%rbx,4), %rdi
	movq	%rdx, 8(%rsp)
	call	_Znwm@PLT
	movq	8(%rsp), %rdx
	movq	%rax, %r12
.L43:
	movl	(%rdx), %eax
	movl	%eax, (%r12,%r15)
	testq	%r15, %r15
	jle	.L44
	movq	%r15, %rdx
	movq	%r14, %rsi
	movq	%r12, %rdi
	call	memmove@PLT
.L44:
	movq	(%rsp), %rax
	leaq	4(%r12,%r15), %rdx
	subq	%rbp, %rax
	testq	%rax, %rax
	jle	.L45
	movq	%rdx, %rdi
	movq	%rbp, %rsi
	movq	%rax, %rcx
	rep movsb
.L45:
	leaq	(%rdx,%rax), %rbp
	testq	%r14, %r14
	je	.L46
	movq	16(%r13), %rsi
	movq	%r14, %rdi
	subq	%r14, %rsi
	call	_ZdlPvm@PLT
.L46:
	leaq	(%r12,%rbx,4), %rax
	movq	%r12, 0(%r13)
	movq	%rbp, 8(%r13)
	movq	%rax, 16(%r13)
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4630:
	.size	_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_, .-_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_
	.section	.text._ZNKSt6vectorIPKcSaIS1_EE12_M_check_lenEmS1_,"axG",@progbits,_ZNKSt6vectorIPKcSaIS1_EE12_M_check_lenEmS1_,comdat
	.align 2
	.weak	_ZNKSt6vectorIPKcSaIS1_EE12_M_check_lenEmS1_
	.type	_ZNKSt6vectorIPKcSaIS1_EE12_M_check_lenEmS1_, @function
_ZNKSt6vectorIPKcSaIS1_EE12_M_check_lenEmS1_:
.LFB4732:
	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rdx, %rdi
	movq	8(%rax), %rcx
	subq	(%rax), %rcx
	movabsq	$1152921504606846975, %rax
	sarq	$3, %rcx
	movq	%rax, %rdx
	subq	%rcx, %rdx
	cmpq	%rsi, %rdx
	jnb	.L56
	pushq	%rax
	.cfi_def_cfa_offset 16
	call	_ZSt20__throw_length_errorPKc@PLT
.L56:
	.cfi_def_cfa_offset 8
	cmpq	%rcx, %rsi
	cmovb	%rcx, %rsi
	addq	%rsi, %rcx
	jc	.L55
	movabsq	$1152921504606846975, %rax
	cmpq	%rax, %rcx
	cmovbe	%rcx, %rax
.L55:
	ret
	.cfi_endproc
.LFE4732:
	.size	_ZNKSt6vectorIPKcSaIS1_EE12_M_check_lenEmS1_, .-_ZNKSt6vectorIPKcSaIS1_EE12_M_check_lenEmS1_
	.section	.text._ZNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE17_M_create_storageEm,"axG",@progbits,_ZNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE17_M_create_storageEm,comdat
	.align 2
	.weak	_ZNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE17_M_create_storageEm
	.type	_ZNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE17_M_create_storageEm, @function
_ZNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE17_M_create_storageEm:
.LFB4753:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	pushq	%rdx
	.cfi_def_cfa_offset 32
	testq	%rsi, %rsi
	je	.L68
	movabsq	$384307168202282325, %rax
	cmpq	%rsi, %rax
	jnb	.L66
	movabsq	$768614336404564650, %rax
	cmpq	%rsi, %rax
	jnb	.L67
	call	_ZSt28__throw_bad_array_new_lengthv@PLT
.L67:
	call	_ZSt17__throw_bad_allocv@PLT
.L66:
	imulq	$24, %rsi, %rdi
	call	_Znwm@PLT
	jmp	.L65
.L68:
	xorl	%eax, %eax
.L65:
	imulq	$24, %rbx, %rbx
	movq	%rax, 0(%rbp)
	movq	%rax, 8(%rbp)
	addq	%rbx, %rax
	movq	%rax, 16(%rbp)
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4753:
	.size	_ZNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE17_M_create_storageEm, .-_ZNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE17_M_create_storageEm
	.section	.text._ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EE17_M_create_storageEm,"axG",@progbits,_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EE17_M_create_storageEm,comdat
	.align 2
	.weak	_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EE17_M_create_storageEm
	.type	_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EE17_M_create_storageEm, @function
_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EE17_M_create_storageEm:
.LFB4765:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	pushq	%rdx
	.cfi_def_cfa_offset 32
	testq	%rsi, %rsi
	je	.L74
	movabsq	$384307168202282325, %rax
	cmpq	%rsi, %rax
	jnb	.L72
	movabsq	$768614336404564650, %rax
	cmpq	%rsi, %rax
	jnb	.L73
	call	_ZSt28__throw_bad_array_new_lengthv@PLT
.L73:
	call	_ZSt17__throw_bad_allocv@PLT
.L72:
	imulq	$24, %rsi, %rdi
	call	_Znwm@PLT
	jmp	.L71
.L74:
	xorl	%eax, %eax
.L71:
	imulq	$24, %rbx, %rbx
	movq	%rax, 0(%rbp)
	movq	%rax, 8(%rbp)
	addq	%rbx, %rax
	movq	%rax, 16(%rbp)
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4765:
	.size	_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EE17_M_create_storageEm, .-_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EE17_M_create_storageEm
	.section	.text._ZNSt12_Destroy_auxILb0EE9__destroyIPSt6vectorIiSaIiEEEEvT_S6_,"axG",@progbits,_ZNSt12_Destroy_auxILb0EE9__destroyIPSt6vectorIiSaIiEEEEvT_S6_,comdat
	.weak	_ZNSt12_Destroy_auxILb0EE9__destroyIPSt6vectorIiSaIiEEEEvT_S6_
	.type	_ZNSt12_Destroy_auxILb0EE9__destroyIPSt6vectorIiSaIiEEEEvT_S6_, @function
_ZNSt12_Destroy_auxILb0EE9__destroyIPSt6vectorIiSaIiEEEEvT_S6_:
.LFB4876:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	pushq	%rdx
	.cfi_def_cfa_offset 32
.L77:
	cmpq	%rbp, %rbx
	je	.L84
	movq	(%rbx), %rdi
	testq	%rdi, %rdi
	je	.L78
	movq	16(%rbx), %rsi
	subq	%rdi, %rsi
	call	_ZdlPvm@PLT
.L78:
	addq	$24, %rbx
	jmp	.L77
.L84:
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4876:
	.size	_ZNSt12_Destroy_auxILb0EE9__destroyIPSt6vectorIiSaIiEEEEvT_S6_, .-_ZNSt12_Destroy_auxILb0EE9__destroyIPSt6vectorIiSaIiEEEEvT_S6_
	.section	.text._ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev,"axG",@progbits,_ZNSt6vectorIS_IiSaIiEESaIS1_EED5Ev,comdat
	.align 2
	.weak	_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev
	.type	_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev, @function
_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev:
.LFB4372:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movq	8(%rdi), %rsi
	movq	(%rdi), %rdi
	call	_ZNSt12_Destroy_auxILb0EE9__destroyIPSt6vectorIiSaIiEEEEvT_S6_
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	_ZNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EED2Ev
	.cfi_endproc
.LFE4372:
	.size	_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev, .-_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev
	.weak	_ZNSt6vectorIS_IiSaIiEESaIS1_EED1Ev
	.set	_ZNSt6vectorIS_IiSaIiEESaIS1_EED1Ev,_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev
	.section	.text._ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED2Ev,"axG",@progbits,_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED5Ev,comdat
	.align 2
	.weak	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED2Ev
	.type	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED2Ev, @function
_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED2Ev:
.LFB4384:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	8(%rdi), %r12
	movq	%rdi, %rbx
	movq	(%rdi), %rbp
.L88:
	cmpq	%rbp, %r12
	je	.L91
	movq	%rbp, %rdi
	addq	$24, %rbp
	call	_ZNSt6vectorIS_IiSaIiEESaIS1_EED1Ev
	jmp	.L88
.L91:
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EED2Ev
	.cfi_endproc
.LFE4384:
	.size	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED2Ev, .-_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED2Ev
	.weak	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED1Ev
	.set	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED1Ev,_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED2Ev
	.section	.text._ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EED2Ev,"axG",@progbits,_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EED5Ev,comdat
	.align 2
	.weak	_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EED2Ev
	.type	_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EED2Ev, @function
_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EED2Ev:
.LFB4396:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	8(%rdi), %r12
	movq	%rdi, %rbx
	movq	(%rdi), %rbp
.L93:
	cmpq	%rbp, %r12
	je	.L96
	movq	%rbp, %rdi
	addq	$24, %rbp
	call	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED1Ev
	jmp	.L93
.L96:
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZNSt12_Vector_baseISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EESaIS6_EED2Ev
	.cfi_endproc
.LFE4396:
	.size	_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EED2Ev, .-_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EED2Ev
	.weak	_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EED1Ev
	.set	_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EED1Ev,_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EED2Ev
	.section	.text._ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_,"axG",@progbits,_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_,comdat
	.weak	_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_
	.type	_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_, @function
_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_:
.LFB5054:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA5054
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movabsq	$9223372036854775804, %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdx, %rbx
	pushq	%rcx
	.cfi_def_cfa_offset 64
.L98:
	cmpq	%r14, %rbp
	je	.L112
	movq	8(%rbp), %r12
	subq	0(%rbp), %r12
	movq	$0, (%rbx)
	movq	$0, 8(%rbx)
	movq	$0, 16(%rbx)
	je	.L107
	cmpq	%r12, %r15
	jnb	.L100
	testq	%r12, %r12
	jns	.L101
.LEHB0:
	call	_ZSt28__throw_bad_array_new_lengthv@PLT
.L101:
	call	_ZSt17__throw_bad_allocv@PLT
.L100:
	movq	%r12, %rdi
	call	_Znwm@PLT
.LEHE0:
	movq	%rax, %rcx
	jmp	.L99
.L107:
	xorl	%ecx, %ecx
.L99:
	addq	%rcx, %r12
	movq	%rcx, (%rbx)
	movq	%rcx, 8(%rbx)
	movq	%r12, 16(%rbx)
	movq	0(%rbp), %rsi
	movq	8(%rbp), %r12
	subq	%rsi, %r12
	cmpq	$4, %r12
	jle	.L102
	movq	%rcx, %rdi
	movq	%r12, %rdx
	call	memmove@PLT
	movq	%rax, %rcx
	jmp	.L103
.L102:
	jne	.L103
	movl	(%rsi), %eax
	movl	%eax, (%rcx)
.L103:
	addq	%r12, %rcx
	addq	$24, %rbx
	addq	$24, %rbp
	movq	%rcx, -16(%rbx)
	jmp	.L98
.L108:
	endbr64
	movq	%rax, %rdi
.L105:
	call	__cxa_begin_catch@PLT
	movq	%rbx, %rsi
	movq	%r13, %rdi
	call	_ZNSt12_Destroy_auxILb0EE9__destroyIPSt6vectorIiSaIiEEEEvT_S6_
.LEHB1:
	call	__cxa_rethrow@PLT
.LEHE1:
.L109:
	endbr64
	movq	%rax, %rbx
.L106:
	call	__cxa_end_catch@PLT
	movq	%rbx, %rdi
.LEHB2:
	call	_Unwind_Resume@PLT
.LEHE2:
.L112:
	popq	%rdx
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE5054:
	.globl	__gxx_personality_v0
	.section	.gcc_except_table._ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_,"aG",@progbits,_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_,comdat
	.align 4
.LLSDA5054:
	.byte	0xff
	.byte	0x9b
	.uleb128 .LLSDATT5054-.LLSDATTD5054
.LLSDATTD5054:
	.byte	0x1
	.uleb128 .LLSDACSE5054-.LLSDACSB5054
.LLSDACSB5054:
	.uleb128 .LEHB0-.LFB5054
	.uleb128 .LEHE0-.LEHB0
	.uleb128 .L108-.LFB5054
	.uleb128 0x1
	.uleb128 .LEHB1-.LFB5054
	.uleb128 .LEHE1-.LEHB1
	.uleb128 .L109-.LFB5054
	.uleb128 0
	.uleb128 .LEHB2-.LFB5054
	.uleb128 .LEHE2-.LEHB2
	.uleb128 0
	.uleb128 0
.LLSDACSE5054:
	.byte	0x1
	.byte	0
	.align 4
	.long	0

.LLSDATT5054:
	.section	.text._ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_,"axG",@progbits,_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_,comdat
	.size	_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_, .-_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_
	.section	.text._ZNSt6vectorIS_IiSaIiEESaIS1_EEC2ERKS3_,"axG",@progbits,_ZNSt6vectorIS_IiSaIiEESaIS1_EEC5ERKS3_,comdat
	.align 2
	.weak	_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2ERKS3_
	.type	_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2ERKS3_, @function
_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2ERKS3_:
.LFB5020:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA5020
	endbr64
	movabsq	$-6148914691236517205, %rax
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	xorl	%ecx, %ecx
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	pushq	%rdx
	.cfi_def_cfa_offset 32
	movq	8(%rsi), %rsi
	subq	0(%rbp), %rsi
	movq	%rcx, (%rdi)
	sarq	$3, %rsi
	movq	%rcx, 8(%rdi)
	imulq	%rax, %rsi
	movq	%rcx, 16(%rdi)
.LEHB3:
	call	_ZNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE17_M_create_storageEm
.LEHE3:
	movq	(%rbx), %rdx
	movq	8(%rbp), %rsi
	movq	0(%rbp), %rdi
.LEHB4:
	call	_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_
.LEHE4:
	movq	%rax, 8(%rbx)
	popq	%rax
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
.L115:
	.cfi_restore_state
	endbr64
	movq	%rax, %rbp
.L114:
	movq	%rbx, %rdi
	call	_ZNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EED2Ev
	movq	%rbp, %rdi
.LEHB5:
	call	_Unwind_Resume@PLT
.LEHE5:
	.cfi_endproc
.LFE5020:
	.section	.gcc_except_table._ZNSt6vectorIS_IiSaIiEESaIS1_EEC2ERKS3_,"aG",@progbits,_ZNSt6vectorIS_IiSaIiEESaIS1_EEC5ERKS3_,comdat
.LLSDA5020:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE5020-.LLSDACSB5020
.LLSDACSB5020:
	.uleb128 .LEHB3-.LFB5020
	.uleb128 .LEHE3-.LEHB3
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB4-.LFB5020
	.uleb128 .LEHE4-.LEHB4
	.uleb128 .L115-.LFB5020
	.uleb128 0
	.uleb128 .LEHB5-.LFB5020
	.uleb128 .LEHE5-.LEHB5
	.uleb128 0
	.uleb128 0
.LLSDACSE5020:
	.section	.text._ZNSt6vectorIS_IiSaIiEESaIS1_EEC2ERKS3_,"axG",@progbits,_ZNSt6vectorIS_IiSaIiEESaIS1_EEC5ERKS3_,comdat
	.size	_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2ERKS3_, .-_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2ERKS3_
	.weak	_ZNSt6vectorIS_IiSaIiEESaIS1_EEC1ERKS3_
	.set	_ZNSt6vectorIS_IiSaIiEESaIS1_EEC1ERKS3_,_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2ERKS3_
	.section	.text._ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_,"axG",@progbits,_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_,comdat
	.weak	_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_
	.type	_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_, @function
_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_:
.LFB4988:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4988
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	%rsi, (%rsp)
.L119:
	cmpq	$0, (%rsp)
	je	.L137
	movq	8(%r12), %rsi
	subq	(%r12), %rsi
	movq	%rbx, %rdi
	movabsq	$-6148914691236517205, %rax
	sarq	$3, %rsi
	imulq	%rax, %rsi
	xorl	%eax, %eax
	movq	%rax, (%rbx)
	movq	%rax, 8(%rbx)
	movq	%rax, 16(%rbx)
.LEHB6:
	call	_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EE17_M_create_storageEm
.LEHE6:
	movq	8(%r12), %rax
	movq	(%rbx), %r13
	movq	(%r12), %r15
	movq	%rax, 8(%rsp)
	movq	%r13, %r14
.L120:
	cmpq	%r15, 8(%rsp)
	je	.L138
	movq	%r15, %rsi
	movq	%r14, %rdi
.LEHB7:
	call	_ZNSt6vectorIS_IiSaIiEESaIS1_EEC1ERKS3_
.LEHE7:
	addq	$24, %r14
	addq	$24, %r15
	jmp	.L120
.L138:
	movq	%r14, 8(%rbx)
	addq	$24, %rbx
	decq	(%rsp)
	jmp	.L119
.L134:
	endbr64
	movq	%rax, %rdi
.L122:
	call	__cxa_begin_catch@PLT
.L123:
	cmpq	%r13, %r14
	je	.L139
	movq	%r13, %rdi
	addq	$24, %r13
	call	_ZNSt6vectorIS_IiSaIiEESaIS1_EED1Ev
	jmp	.L123
.L139:
.LEHB8:
	call	__cxa_rethrow@PLT
.LEHE8:
.L133:
	endbr64
	movq	%rax, %r12
.L125:
	call	__cxa_end_catch@PLT
	movq	%rbx, %rdi
	call	_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EED2Ev
	movq	%r12, %rdi
	jmp	.L126
.L131:
	endbr64
	movq	%rax, %rdi
.L126:
	call	__cxa_begin_catch@PLT
.L128:
	cmpq	%rbp, %rbx
	je	.L140
	movq	%rbp, %rdi
	addq	$24, %rbp
	call	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED1Ev
	jmp	.L128
.L140:
.LEHB9:
	call	__cxa_rethrow@PLT
.LEHE9:
.L132:
	endbr64
	movq	%rax, %rbx
.L130:
	call	__cxa_end_catch@PLT
	movq	%rbx, %rdi
.LEHB10:
	call	_Unwind_Resume@PLT
.LEHE10:
.L137:
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4988:
	.section	.gcc_except_table._ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_,"aG",@progbits,_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_,comdat
	.align 4
.LLSDA4988:
	.byte	0xff
	.byte	0x9b
	.uleb128 .LLSDATT4988-.LLSDATTD4988
.LLSDATTD4988:
	.byte	0x1
	.uleb128 .LLSDACSE4988-.LLSDACSB4988
.LLSDACSB4988:
	.uleb128 .LEHB6-.LFB4988
	.uleb128 .LEHE6-.LEHB6
	.uleb128 .L131-.LFB4988
	.uleb128 0x1
	.uleb128 .LEHB7-.LFB4988
	.uleb128 .LEHE7-.LEHB7
	.uleb128 .L134-.LFB4988
	.uleb128 0x1
	.uleb128 .LEHB8-.LFB4988
	.uleb128 .LEHE8-.LEHB8
	.uleb128 .L133-.LFB4988
	.uleb128 0x3
	.uleb128 .LEHB9-.LFB4988
	.uleb128 .LEHE9-.LEHB9
	.uleb128 .L132-.LFB4988
	.uleb128 0
	.uleb128 .LEHB10-.LFB4988
	.uleb128 .LEHE10-.LEHB10
	.uleb128 0
	.uleb128 0
.LLSDACSE4988:
	.byte	0x1
	.byte	0
	.byte	0
	.byte	0x7d
	.align 4
	.long	0

.LLSDATT4988:
	.section	.text._ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_,"axG",@progbits,_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_,comdat
	.size	_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_, .-_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_
	.section	.rodata.str1.1
.LC14:
	.string	"Reading file"
.LC15:
	.string	" \t"
.LC16:
	.string	"-0123456789"
.LC17:
	.string	"Calculating grid size"
.LC19:
	.string	"Assigning points"
.LC20:
	.string	"Done"
.LC21:
	.string	"Sending to GPU"
	.section	.text.startup
	.globl	main
	.type	main, @function
main:
.LFB4002:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4002
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$344, %rsp
	.cfi_def_cfa_offset 400
	movq	%fs:40, %rax
	movq	%rax, 328(%rsp)
	xorl	%eax, %eax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L142
.LEHB11:
	call	_ZL20__nv_init_managed_rtv
.LEHE11:
.L142:
	movq	_ZL7counter(%rip), %rax
	xorl	%edi, %edi
	leaq	184(%rsp), %rsi
	movq	%rdi, 88(%rsp)
	movl	$0x00000000, (%rax)
	movq	%rdi, 96(%rsp)
	movq	%rdi, 104(%rsp)
	movq	8(%rbx), %rdi
	call	stat@PLT
	movq	8(%rbx), %rdi
	xorl	%edx, %edx
	xorl	%esi, %esi
	movq	232(%rsp), %rax
	movq	%rax, 8(%rsp)
	leaq	88(%rsp), %rax
	movq	%rax, 48(%rsp)
	xorl	%eax, %eax
.LEHB12:
	call	open@PLT
	movq	8(%rsp), %rsi
	movl	$1, %edx
	xorl	%edi, %edi
	movl	%eax, %r8d
	xorl	%r9d, %r9d
	movl	$32770, %ecx
	call	mmap@PLT
	movq	48(%rsp), %rdi
	movl	$1, %esi
	leaq	.LC12(%rip), %rdx
	movq	%rax, %rbx
	call	_ZNKSt6vectorIPKcSaIS1_EE12_M_check_lenEmS1_
	movq	%rax, %rdi
	movq	%rax, %rbp
	call	_ZNSt12_Vector_baseIPKcSaIS1_EE11_M_allocateEm.isra.0
	movq	%rbx, (%rax)
	leaq	8(%rax), %rdx
	leaq	.LC14(%rip), %rsi
	movq	%rax, 88(%rsp)
	leaq	_ZSt4cout(%rip), %rdi
	leaq	(%rax,%rbp,8), %rax
	movq	%rdx, 96(%rsp)
	movq	%rax, 104(%rsp)
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	movq	8(%rsp), %rax
	movq	%rbx, %r13
	xorl	%ebp, %ebp
	addq	%rbx, %rax
	movq	%rax, 32(%rsp)
.L143:
	cmpq	%r13, 32(%rsp)
	je	.L274
	cmpb	$10, 0(%r13)
	leaq	1(%r13), %r13
	jne	.L143
	movq	104(%rsp), %rax
	movq	96(%rsp), %r12
	movq	%rax, 16(%rsp)
	cmpq	%rax, %r12
	je	.L145
	movq	%r13, (%r12)
	addq	$8, %r12
	movq	%r12, 96(%rsp)
	jmp	.L146
.L145:
	movq	48(%rsp), %rdi
	leaq	.LC12(%rip), %rdx
	movl	$1, %esi
	call	_ZNKSt6vectorIPKcSaIS1_EE12_M_check_lenEmS1_
	movq	88(%rsp), %r14
	movq	%rax, %rdi
	movq	%rax, 24(%rsp)
	subq	%r14, %r12
	call	_ZNSt12_Vector_baseIPKcSaIS1_EE11_M_allocateEm.isra.0
	movq	%r13, (%rax,%r12)
	movq	%rax, %r15
	testq	%r12, %r12
	jle	.L147
	movq	%r12, %rdx
	movq	%r14, %rsi
	movq	%rax, %rdi
	call	memmove@PLT
.L147:
	leaq	8(%r15,%r12), %r12
	testq	%r14, %r14
	je	.L148
	movq	16(%rsp), %rsi
	movq	%r14, %rdi
	subq	%r14, %rsi
	call	_ZdlPvm@PLT
.L148:
	movq	24(%rsp), %rax
	movq	%r15, 88(%rsp)
	movq	%r12, 96(%rsp)
	leaq	(%r15,%rax,8), %rax
	movq	%rax, 104(%rsp)
.L146:
	incl	%ebp
	jmp	.L143
.L274:
	movslq	%ebp, %r12
	salq	$2, %r12
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L150
	call	_ZL20__nv_init_managed_rtv
.L150:
	movq	_ZL1x(%rip), %rdi
	movl	$1, %edx
	movq	%r12, %rsi
	call	cudaMallocManaged@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L151
	call	_ZL20__nv_init_managed_rtv
.L151:
	movq	_ZL1y(%rip), %rdi
	movl	$1, %edx
	movq	%r12, %rsi
	call	cudaMallocManaged@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L152
	call	_ZL20__nv_init_managed_rtv
.L152:
	movq	_ZL1z(%rip), %rdi
	movl	$1, %edx
	movq	%r12, %rsi
	call	cudaMallocManaged@PLT
	xorl	%r12d, %r12d
.L153:
	cmpl	%r12d, %ebp
	jle	.L275
	movq	88(%rsp), %rax
	leaq	.LC15(%rip), %rsi
	leaq	.LC16(%rip), %r15
	movq	(%rax,%r12,8), %r14
	movq	%r14, %rdi
	call	strpbrk@PLT
	movq	%r15, %rsi
	movq	%rax, %rdi
	call	strpbrk@PLT
	leaq	.LC15(%rip), %rsi
	movq	%rax, %rdi
	movq	%rax, %r13
	call	strpbrk@PLT
	movq	%r15, %rsi
	movq	%rax, %rdi
	call	strpbrk@PLT
	movq	%r14, %rdi
	movq	%rax, 16(%rsp)
	call	atof@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	cvtsd2ss	%xmm0, %xmm7
	movd	%xmm7, %r14d
	jne	.L154
	call	_ZL20__nv_init_managed_rtv
.L154:
	movq	_ZL1x(%rip), %rax
	movq	%r13, %rdi
	leaq	0(,%r12,4), %r15
	movq	(%rax), %rax
	movl	%r14d, (%rax,%r12,4)
	call	atof@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	cvtsd2ss	%xmm0, %xmm7
	movd	%xmm7, %r13d
	jne	.L155
	call	_ZL20__nv_init_managed_rtv
.L155:
	movq	_ZL1y(%rip), %rax
	movq	16(%rsp), %rdi
	movq	(%rax), %rax
	movl	%r13d, (%rax,%r15)
	call	atof@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	cvtsd2ss	%xmm0, %xmm1
	movd	%xmm1, %r13d
	jne	.L156
	call	_ZL20__nv_init_managed_rtv
.L156:
	movq	_ZL1z(%rip), %rax
	incq	%r12
	movq	(%rax), %rax
	movl	%r13d, (%rax,%r15)
	jmp	.L153
.L275:
	movq	8(%rsp), %rsi
	movq	%rbx, %rdi
	call	munmap@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L158
	call	_ZL20__nv_init_managed_rtv
.L158:
	movq	_ZL1x(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	(%rax), %rax
	movss	(%rax), %xmm2
	movss	%xmm2, 56(%rsp)
	jne	.L159
	call	_ZL20__nv_init_managed_rtv
.L159:
	movq	_ZL1x(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	(%rax), %rax
	movss	(%rax), %xmm3
	movss	%xmm3, 60(%rsp)
	jne	.L160
	call	_ZL20__nv_init_managed_rtv
.L160:
	movq	_ZL1y(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	(%rax), %rax
	movss	(%rax), %xmm4
	movss	%xmm4, 64(%rsp)
	jne	.L161
	call	_ZL20__nv_init_managed_rtv
.L161:
	movq	_ZL1y(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	(%rax), %rax
	movss	(%rax), %xmm5
	movss	%xmm5, 68(%rsp)
	jne	.L162
	call	_ZL20__nv_init_managed_rtv
.L162:
	movq	_ZL1z(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	(%rax), %rax
	movss	(%rax), %xmm6
	movss	%xmm6, 72(%rsp)
	jne	.L163
	call	_ZL20__nv_init_managed_rtv
.L163:
	movq	_ZL1z(%rip), %rax
	leaq	_ZSt4cout(%rip), %r13
	leaq	.LC17(%rip), %rsi
	movq	%r13, %rdi
	movq	(%rax), %rax
	movss	(%rax), %xmm7
	movss	%xmm7, 76(%rsp)
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L164
	call	_ZL20__nv_init_managed_rtv
.L164:
	movq	_ZL1x(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	(%rax), %rax
	movss	(%rax), %xmm1
	movss	%xmm1, 32(%rsp)
	jne	.L165
	call	_ZL20__nv_init_managed_rtv
.L165:
	movq	_ZL1x(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	(%rax), %rax
	movss	(%rax), %xmm2
	movss	%xmm2, 8(%rsp)
	jne	.L166
	call	_ZL20__nv_init_managed_rtv
.L166:
	movq	_ZL1y(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	(%rax), %rax
	movss	(%rax), %xmm3
	movss	%xmm3, 40(%rsp)
	jne	.L167
	call	_ZL20__nv_init_managed_rtv
.L167:
	movq	_ZL1y(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	(%rax), %rax
	movss	(%rax), %xmm4
	movss	%xmm4, 16(%rsp)
	jne	.L168
	call	_ZL20__nv_init_managed_rtv
.L168:
	movq	_ZL1z(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	(%rax), %rax
	movss	(%rax), %xmm5
	movss	%xmm5, 44(%rsp)
	jne	.L169
	call	_ZL20__nv_init_managed_rtv
.L169:
	movq	_ZL1z(%rip), %rax
	xorl	%r12d, %r12d
	movq	(%rax), %rax
	movss	(%rax), %xmm6
	movss	%xmm6, 24(%rsp)
.L170:
	leal	1(%r12), %edx
	movb	_ZL22__nv_inited_managed_rt(%rip), %al
	cmpl	%edx, %ebp
	jle	.L276
	testb	%al, %al
	jne	.L171
	call	_ZL20__nv_init_managed_rtv
.L171:
	movq	_ZL1x(%rip), %rdx
	movss	8(%rsp), %xmm7
	leaq	1(%r12), %rbx
	movb	_ZL22__nv_inited_managed_rt(%rip), %al
	movq	(%rdx), %rdx
	comiss	4(%rdx,%r12,4), %xmm7
	jbe	.L172
	testb	%al, %al
	jne	.L174
	call	_ZL20__nv_init_managed_rtv
.L174:
	movq	_ZL1x(%rip), %rax
	movq	(%rax), %rax
	movss	(%rax,%rbx,4), %xmm1
	movss	%xmm1, 8(%rsp)
.L172:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L175
	call	_ZL20__nv_init_managed_rtv
.L175:
	movq	_ZL1x(%rip), %rdx
	movb	_ZL22__nv_inited_managed_rt(%rip), %al
	movq	(%rdx), %rdx
	movss	(%rdx,%rbx,4), %xmm0
	comiss	32(%rsp), %xmm0
	jbe	.L176
	testb	%al, %al
	jne	.L178
	call	_ZL20__nv_init_managed_rtv
.L178:
	movq	_ZL1x(%rip), %rax
	movq	(%rax), %rax
	movss	(%rax,%rbx,4), %xmm3
	movss	%xmm3, 32(%rsp)
.L176:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L179
	call	_ZL20__nv_init_managed_rtv
.L179:
	movq	_ZL1y(%rip), %rdx
	movss	16(%rsp), %xmm4
	movb	_ZL22__nv_inited_managed_rt(%rip), %al
	movq	(%rdx), %rdx
	comiss	(%rdx,%rbx,4), %xmm4
	jbe	.L180
	testb	%al, %al
	jne	.L182
	call	_ZL20__nv_init_managed_rtv
.L182:
	movq	_ZL1y(%rip), %rax
	movq	(%rax), %rax
	movss	(%rax,%rbx,4), %xmm5
	movss	%xmm5, 16(%rsp)
.L180:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L183
	call	_ZL20__nv_init_managed_rtv
.L183:
	movq	_ZL1y(%rip), %rdx
	movb	_ZL22__nv_inited_managed_rt(%rip), %al
	movq	(%rdx), %rdx
	movss	(%rdx,%rbx,4), %xmm0
	comiss	40(%rsp), %xmm0
	jbe	.L184
	testb	%al, %al
	jne	.L186
	call	_ZL20__nv_init_managed_rtv
.L186:
	movq	_ZL1y(%rip), %rax
	movq	(%rax), %rax
	movss	(%rax,%rbx,4), %xmm7
	movss	%xmm7, 40(%rsp)
.L184:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L187
	call	_ZL20__nv_init_managed_rtv
.L187:
	movq	_ZL1z(%rip), %rdx
	movss	24(%rsp), %xmm1
	movb	_ZL22__nv_inited_managed_rt(%rip), %al
	movq	(%rdx), %rdx
	comiss	(%rdx,%rbx,4), %xmm1
	jbe	.L188
	testb	%al, %al
	jne	.L190
	call	_ZL20__nv_init_managed_rtv
.L190:
	movq	_ZL1z(%rip), %rax
	movq	(%rax), %rax
	movss	(%rax,%rbx,4), %xmm2
	movss	%xmm2, 24(%rsp)
.L188:
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L191
	call	_ZL20__nv_init_managed_rtv
.L191:
	movq	_ZL1z(%rip), %rdx
	movb	_ZL22__nv_inited_managed_rt(%rip), %al
	movq	(%rdx), %rdx
	movss	(%rdx,%rbx,4), %xmm0
	comiss	44(%rsp), %xmm0
	jbe	.L192
	testb	%al, %al
	jne	.L194
	call	_ZL20__nv_init_managed_rtv
.L194:
	movq	_ZL1z(%rip), %rax
	movq	(%rax), %rax
	movss	(%rax,%rbx,4), %xmm4
	movss	%xmm4, 44(%rsp)
.L192:
	movq	%rbx, %r12
	jmp	.L170
.L276:
	movss	32(%rsp), %xmm2
	maxss	56(%rsp), %xmm2
	movss	8(%rsp), %xmm1
	movss	16(%rsp), %xmm3
	minss	60(%rsp), %xmm1
	movss	40(%rsp), %xmm4
	movss	24(%rsp), %xmm5
	movss	44(%rsp), %xmm6
	movaps	%xmm2, %xmm0
	movss	%xmm2, 32(%rsp)
	minss	68(%rsp), %xmm3
	maxss	64(%rsp), %xmm4
	minss	76(%rsp), %xmm5
	subss	%xmm1, %xmm0
	movss	%xmm1, 8(%rsp)
	divss	.LC18(%rip), %xmm0
	maxss	72(%rsp), %xmm6
	movd	%xmm0, %ebx
	movss	%xmm3, 16(%rsp)
	movss	%xmm4, 40(%rsp)
	movss	%xmm5, 24(%rsp)
	movss	%xmm6, 44(%rsp)
	testb	%al, %al
	jne	.L202
	call	_ZL20__nv_init_managed_rtv
.L202:
	movq	_ZL5xStep(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movss	40(%rsp), %xmm0
	subss	16(%rsp), %xmm0
	divss	.LC18(%rip), %xmm0
	movl	%ebx, (%rax)
	movd	%xmm0, %ebx
	jne	.L203
	call	_ZL20__nv_init_managed_rtv
.L203:
	movq	_ZL5yStep(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movss	44(%rsp), %xmm0
	subss	24(%rsp), %xmm0
	divss	.LC18(%rip), %xmm0
	movl	%ebx, (%rax)
	movd	%xmm0, %ebx
	jne	.L204
	call	_ZL20__nv_init_managed_rtv
.L204:
	movq	_ZL5zStep(%rip), %rax
	xorl	%esi, %esi
	leaq	136(%rsp), %r15
	movq	%rsi, 136(%rsp)
	movq	%r15, %rdi
	movl	%ebx, (%rax)
	movq	%rsi, 144(%rsp)
	movq	%rsi, 152(%rsp)
	movl	$100, %esi
	call	_ZNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EE17_M_create_storageEm
.LEHE12:
	movq	136(%rsp), %rax
	leaq	2400(%rax), %rdx
.L205:
	xorl	%ecx, %ecx
	addq	$24, %rax
	movq	%rcx, -24(%rax)
	movq	%rcx, -16(%rax)
	movq	%rcx, -8(%rax)
	cmpq	%rdx, %rax
	jne	.L205
	movq	%rax, 144(%rsp)
	xorl	%edx, %edx
	leaq	160(%rsp), %rax
	movl	$100, %esi
	movq	%rax, %rdi
	movq	%rdx, 160(%rsp)
	movq	%rdx, 168(%rsp)
	movq	%rdx, 176(%rsp)
	movq	%rax, 32(%rsp)
.LEHB13:
	call	_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EE17_M_create_storageEm
.LEHE13:
	movq	160(%rsp), %r12
	leaq	2400(%r12), %r14
	movq	%r12, %rbx
.L206:
	movq	%r15, %rsi
	movq	%rbx, %rdi
.LEHB14:
	call	_ZNSt6vectorIS_IiSaIiEESaIS1_EEC1ERKS3_
.LEHE14:
	addq	$24, %rbx
	cmpq	%r14, %rbx
	jne	.L206
	xorl	%eax, %eax
	movl	$2400, %edi
	movq	%rbx, 168(%rsp)
	movq	%rax, 120(%rsp)
	movq	%rax, 128(%rsp)
.LEHB15:
	call	_Znwm@PLT
.LEHE15:
	movq	%rax, %rbx
	movq	32(%rsp), %rdx
	movq	%rax, 112(%rsp)
	movl	$100, %esi
	movq	%rax, 120(%rsp)
	movq	%rbx, %rdi
	leaq	2400(%rax), %rax
	movq	%rax, 128(%rsp)
.LEHB16:
	call	_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_
.LEHE16:
	jmp	.L277
.L254:
	endbr64
	movq	%rax, %rdi
.L208:
	call	__cxa_begin_catch@PLT
.L209:
	cmpq	%rbx, %r12
	je	.L278
	movq	%r12, %rdi
	addq	$24, %r12
	call	_ZNSt6vectorIS_IiSaIiEESaIS1_EED1Ev
	jmp	.L209
.L278:
	movq	328(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L271
.LEHB17:
	call	__cxa_rethrow@PLT
.LEHE17:
.L253:
	endbr64
	movq	%rax, %rbx
.L212:
	call	__cxa_end_catch@PLT
	movq	32(%rsp), %rdi
	call	_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EED2Ev
	jmp	.L213
.L277:
	movq	32(%rsp), %rdi
	movq	%rax, 120(%rsp)
	call	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED1Ev
	movq	%r15, %rdi
	call	_ZNSt6vectorIS_IiSaIiEESaIS1_EED1Ev
	leaq	.LC19(%rip), %rsi
	movq	%r13, %rdi
.LEHB18:
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	xorl	%r13d, %r13d
	jmp	.L217
.L255:
	endbr64
	movq	%rax, %rbx
.L215:
	leaq	112(%rsp), %rdi
	call	_ZNSt12_Vector_baseISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EESaIS6_EED2Ev
	jmp	.L216
.L226:
	testb	%al, %al
	je	.L279
.L218:
	movq	_ZL1x(%rip), %rax
	movslq	%r13d, %r14
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	(%rax), %rax
	movss	(%rax,%r14,4), %xmm0
	subss	8(%rsp), %xmm0
	movd	%xmm0, %r12d
	je	.L280
.L219:
	movq	_ZL5xStep(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movd	%r12d, %xmm0
	divss	(%rax), %xmm0
	cvttss2sil	%xmm0, %r15d
	je	.L281
.L220:
	movq	_ZL1y(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	(%rax), %rax
	movss	(%rax,%r14,4), %xmm0
	subss	16(%rsp), %xmm0
	movd	%xmm0, %r12d
	je	.L282
.L221:
	movq	_ZL5yStep(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movd	%r12d, %xmm0
	divss	(%rax), %xmm0
	cvttss2sil	%xmm0, %r12d
	je	.L283
.L222:
	movq	_ZL1z(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	(%rax), %rax
	movss	(%rax,%r14,4), %xmm0
	subss	24(%rsp), %xmm0
	movd	%xmm0, %r14d
	je	.L284
.L223:
	movq	_ZL5zStep(%rip), %rax
	movslq	%r15d, %r15
	movd	%r14d, %xmm0
	movslq	%r12d, %r12
	imulq	$24, %r15, %r15
	divss	(%rax), %xmm0
	cvttss2sil	%xmm0, %edi
	imulq	$24, %r12, %r12
	addq	(%rbx,%r15), %r12
	movslq	%edi, %rdi
	imulq	$24, %rdi, %rdi
	addq	(%r12), %rdi
	movq	8(%rdi), %rsi
	cmpq	16(%rdi), %rsi
	je	.L224
	movl	%r13d, (%rsi)
	addq	$4, %rsi
	movq	%rsi, 8(%rdi)
.L225:
	incl	%r13d
.L217:
	movl	%r13d, 160(%rsp)
	movb	_ZL22__nv_inited_managed_rt(%rip), %al
	cmpl	%r13d, %ebp
	jg	.L226
	jmp	.L285
.L279:
	call	_ZL20__nv_init_managed_rtv
	jmp	.L218
.L280:
	call	_ZL20__nv_init_managed_rtv
	jmp	.L219
.L281:
	call	_ZL20__nv_init_managed_rtv
	jmp	.L220
.L282:
	call	_ZL20__nv_init_managed_rtv
	jmp	.L221
.L283:
	call	_ZL20__nv_init_managed_rtv
	jmp	.L222
.L284:
	call	_ZL20__nv_init_managed_rtv
	jmp	.L223
.L224:
	movq	32(%rsp), %rdx
	call	_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_
	jmp	.L225
.L285:
	testb	%al, %al
	jne	.L227
	call	_ZL20__nv_init_managed_rtv
.L227:
	movq	_ZL7indices(%rip), %rdi
	movl	$1, %edx
	movl	$8000000, %esi
	call	cudaMallocManaged@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L228
	call	_ZL20__nv_init_managed_rtv
.L228:
	movq	_ZL4lens(%rip), %rdi
	movl	$1, %edx
	movl	$4000000, %esi
	call	cudaMallocManaged@PLT
	xorl	%r14d, %r14d
.L229:
	imulq	$40000, %r14, %rax
	xorl	%ebp, %ebp
	movq	%rax, 16(%rsp)
.L236:
	movq	16(%rsp), %r13
	xorl	%r12d, %r12d
.L233:
	movq	(%rbx), %rax
	movq	(%rax,%rbp), %rdx
	addq	%r12, %rdx
	movq	8(%rdx), %rax
	subq	(%rdx), %rax
	sarq	$2, %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	%rax, %r15
	jne	.L230
	call	_ZL20__nv_init_managed_rtv
.L230:
	movq	_ZL4lens(%rip), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	(%rax), %rax
	movl	%r15d, (%rax,%r13)
	movslq	%r15d, %r15
	leaq	0(,%r15,4), %rax
	movq	%rax, 8(%rsp)
	jne	.L231
	call	_ZL20__nv_init_managed_rtv
.L231:
	leaq	0(%r13,%r13), %r15
	movq	8(%rsp), %rsi
	movl	$1, %edx
	movq	_ZL7indices(%rip), %rax
	movq	(%rax), %rdi
	addq	%r15, %rdi
	call	cudaMallocManaged@PLT
	movq	(%rbx), %rax
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	movq	(%rax,%rbp), %rax
	movq	(%rax,%r12), %rax
	movq	%rax, 24(%rsp)
	jne	.L232
	call	_ZL20__nv_init_managed_rtv
.L232:
	movq	8(%rsp), %rdx
	movq	24(%rsp), %rsi
	movl	$1, %ecx
	movq	_ZL7indices(%rip), %rax
	movq	(%rax), %rdi
	addq	%r15, %rdi
	call	cudaMemcpy@PLT
	addq	$24, %r12
	addq	$4, %r13
	cmpq	$2400, %r12
	jne	.L233
	addq	$400, 16(%rsp)
	addq	$24, %rbp
	cmpq	$2400, %rbp
	jne	.L236
	incq	%r14
	addq	$24, %rbx
	cmpq	$100, %r14
	jne	.L229
	leaq	_ZSt4cout(%rip), %rbx
	leaq	.LC20(%rip), %rsi
	movq	%rbx, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	movabsq	$42949672970, %rax
	movq	%rbx, %rdi
	leaq	.LC21(%rip), %rsi
	movl	$10, 144(%rsp)
	movq	%rax, 136(%rsp)
	movq	%rax, 160(%rsp)
	movl	$10, 168(%rsp)
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L237
	call	_ZL20__nv_init_managed_rtv
.L237:
	movq	_ZL8gpuTotal(%rip), %rax
	movl	144(%rsp), %ecx
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	movq	136(%rsp), %rdx
	movq	160(%rsp), %rdi
	movl	$0x00000000, (%rax)
	movl	168(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L238
	call	_Z30__device_stub__Z11calcOverallvv
.L238:
	movl	144(%rsp), %ecx
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	movq	136(%rsp), %rdx
	movq	160(%rsp), %rdi
	movl	168(%rsp), %esi
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L239
	call	_Z29__device_stub__Z10calcNearbyvv
.L239:
	call	cudaDeviceSynchronize@PLT
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L240
	call	_ZL20__nv_init_managed_rtv
.L240:
	movq	_ZL8gpuTotal(%rip), %rax
	movss	.LC22(%rip), %xmm0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	mulss	(%rax), %xmm0
	movss	%xmm0, (%rax)
	jne	.L241
	call	_ZL20__nv_init_managed_rtv
.L241:
	movq	_ZL8gpuTotal(%rip), %rax
	movq	%rbx, %rdi
	cvtss2sd	(%rax), %xmm0
	call	_ZNSo9_M_insertIdEERSoT_@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
	cmpb	$0, _ZL22__nv_inited_managed_rt(%rip)
	jne	.L242
	call	_ZL20__nv_init_managed_rtv
.L242:
	movq	_ZL7counter(%rip), %rax
	movq	%rbx, %rdi
	cvtss2sd	(%rax), %xmm0
	call	_ZNSo9_M_insertIdEERSoT_@PLT
	movq	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@GOTPCREL(%rip), %rsi
	movq	%rax, %rdi
	call	_ZNSolsEPFRSoS_E.isra.0
.LEHE18:
	leaq	112(%rsp), %rdi
	call	_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EED1Ev
	leaq	88(%rsp), %rdi
	call	_ZNSt6vectorIPKcSaIS1_EED1Ev
	movq	328(%rsp), %rax
	subq	%fs:40, %rax
	je	.L246
	jmp	.L271
.L251:
	endbr64
	movq	%rax, %rbx
.L216:
	movq	32(%rsp), %rdi
	call	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED1Ev
	jmp	.L213
.L250:
	endbr64
	movq	%rax, %rbx
.L213:
	movq	%r15, %rdi
	call	_ZNSt6vectorIS_IiSaIiEESaIS1_EED1Ev
	jmp	.L243
.L252:
	endbr64
	movq	%rax, %rbx
.L244:
	leaq	112(%rsp), %rdi
	call	_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EED1Ev
	jmp	.L243
.L249:
	endbr64
	movq	%rax, %rbx
.L243:
	movq	48(%rsp), %rdi
	call	_ZNSt6vectorIPKcSaIS1_EED1Ev
	movq	328(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L271
	movq	%rbx, %rdi
.LEHB19:
	call	_Unwind_Resume@PLT
.LEHE19:
.L271:
	call	__stack_chk_fail@PLT
.L246:
	addq	$344, %rsp
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4002:
	.section	.gcc_except_table,"a",@progbits
	.align 4
.LLSDA4002:
	.byte	0xff
	.byte	0x9b
	.uleb128 .LLSDATT4002-.LLSDATTD4002
.LLSDATTD4002:
	.byte	0x1
	.uleb128 .LLSDACSE4002-.LLSDACSB4002
.LLSDACSB4002:
	.uleb128 .LEHB11-.LFB4002
	.uleb128 .LEHE11-.LEHB11
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB12-.LFB4002
	.uleb128 .LEHE12-.LEHB12
	.uleb128 .L249-.LFB4002
	.uleb128 0
	.uleb128 .LEHB13-.LFB4002
	.uleb128 .LEHE13-.LEHB13
	.uleb128 .L250-.LFB4002
	.uleb128 0
	.uleb128 .LEHB14-.LFB4002
	.uleb128 .LEHE14-.LEHB14
	.uleb128 .L254-.LFB4002
	.uleb128 0x1
	.uleb128 .LEHB15-.LFB4002
	.uleb128 .LEHE15-.LEHB15
	.uleb128 .L251-.LFB4002
	.uleb128 0
	.uleb128 .LEHB16-.LFB4002
	.uleb128 .LEHE16-.LEHB16
	.uleb128 .L255-.LFB4002
	.uleb128 0
	.uleb128 .LEHB17-.LFB4002
	.uleb128 .LEHE17-.LEHB17
	.uleb128 .L253-.LFB4002
	.uleb128 0
	.uleb128 .LEHB18-.LFB4002
	.uleb128 .LEHE18-.LEHB18
	.uleb128 .L252-.LFB4002
	.uleb128 0
	.uleb128 .LEHB19-.LFB4002
	.uleb128 .LEHE19-.LEHB19
	.uleb128 0
	.uleb128 0
.LLSDACSE4002:
	.byte	0x1
	.byte	0
	.align 4
	.long	0

.LLSDATT4002:
	.section	.text.startup
	.size	main, .-main
	.section	.nvFatBinSegment,"aw"
	.align 8
	.type	_ZL15__fatDeviceText, @object
	.size	_ZL15__fatDeviceText, 24
_ZL15__fatDeviceText:
	.long	1180844977
	.long	1
	.quad	fatbinData
	.quad	0
	.local	_ZL20__cudaFatCubinHandle
	.comm	_ZL20__cudaFatCubinHandle,8,8
	.section	__nv_managed_data__,"aw"
	.align 8
	.type	_ZL7counter, @object
	.size	_ZL7counter, 8
_ZL7counter:
	.zero	8
	.align 8
	.type	_ZL5zStep, @object
	.size	_ZL5zStep, 8
_ZL5zStep:
	.zero	8
	.align 8
	.type	_ZL5yStep, @object
	.size	_ZL5yStep, 8
_ZL5yStep:
	.zero	8
	.align 8
	.type	_ZL5xStep, @object
	.size	_ZL5xStep, 8
_ZL5xStep:
	.zero	8
	.align 8
	.type	_ZL4lens, @object
	.size	_ZL4lens, 8
_ZL4lens:
	.zero	8
	.align 8
	.type	_ZL7indices, @object
	.size	_ZL7indices, 8
_ZL7indices:
	.zero	8
	.align 8
	.type	_ZL8gpuTotal, @object
	.size	_ZL8gpuTotal, 8
_ZL8gpuTotal:
	.zero	8
	.align 8
	.type	_ZL1z, @object
	.size	_ZL1z, 8
_ZL1z:
	.zero	8
	.align 8
	.type	_ZL1y, @object
	.size	_ZL1y, 8
_ZL1y:
	.zero	8
	.align 8
	.type	_ZL1x, @object
	.size	_ZL1x, 8
_ZL1x:
	.zero	8
	.local	_ZL32__nv_fatbinhandle_for_managed_rt
	.comm	_ZL32__nv_fatbinhandle_for_managed_rt,8,8
	.local	_ZL22__nv_inited_managed_rt
	.comm	_ZL22__nv_inited_managed_rt,1,1
	.section	.rodata.cst4,"aM",@progbits,4
	.align 4
.LC18:
	.long	1120272384
	.align 4
.LC22:
	.long	-1090519040
	.hidden	DW.ref.__gxx_personality_v0
	.weak	DW.ref.__gxx_personality_v0
	.section	.data.rel.local.DW.ref.__gxx_personality_v0,"awG",@progbits,DW.ref.__gxx_personality_v0,comdat
	.align 8
	.type	DW.ref.__gxx_personality_v0, @object
	.size	DW.ref.__gxx_personality_v0, 8
DW.ref.__gxx_personality_v0:
	.quad	__gxx_personality_v0
	.ident	"GCC: (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:

//#include <omp.h>

#include <hip/hip_runtime.h>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <vector>
#include <sys/mman.h>
#include <sys/stat.h>
#include <iostream>
#include <fcntl.h>
#include <cmath>
using namespace std;

__device__ __managed__ float *x, *y, *z, gpuTotal;
__device__ __managed__ int **indices, *lens;
__device__ __managed__ float xStep, yStep, zStep;
__device__ __managed__ float counter;


__global__ void calcNearby(){
  int _x=10*blockIdx.x+threadIdx.x;
  int _y=10*blockIdx.y+threadIdx.y;
  int _z=10*blockIdx.z+threadIdx.z;
  int i = 10000*_x+100*_y+_z;
  float result = 0;
  float dx, dy, dz;
  for(int j=-1;j<=1;j++){
    for(int k=-1;k<=1;k++){
      for(int l=-1;l<=1;l++){
        if(_x+j<0 || _y+k<0 || _z+l<0) continue;
        if(_x+j>99 || _y+k>99 || _z+l>99) continue;
        int h=10000*(_x+j)+100*(_y+k)+(_z+l);
        for(int m=0;m<lens[i];m++){
          for(int n=0;n<lens[i];n++){
            //if(indices[h][m]==indices[i][n]) continue;
            atomicAdd(&counter,1);
            dx = x[indices[h][m]]-x[indices[i][n]];
            dx = y[indices[h][m]]-y[indices[i][n]];
            dx = z[indices[h][m]]-z[indices[i][n]];
            result+=rsqrt(dx*dx+dy*dy+dz*dz);
          }
        }
      }
    }
  }
  atomicAdd(&gpuTotal, result);
}



__global__ void calcOverall(){
  int _x=10*blockIdx.x+threadIdx.x;
  int _y=10*blockIdx.y+threadIdx.y;
  int _z=10*blockIdx.z+threadIdx.z;
  int i = 10000*_x+100*_y+_z;
  float result = 0;
  float dx, dy, dz;
  for(int j=0;j<100;j++){
    for(int k=0;k<100;k++){
      for(int l=0;l<100;l++){
        int h=10000*j+100*k+l;
        if(abs(_x-j)<2) continue;
        if(abs(_y-k)<2) continue;
        if(abs(_z-l)<2) continue;
        int weight=lens[i]*lens[h];
        dx = (_x-j)*xStep;
        dy = (_y-k)*yStep;
        dz = (_z-l)*zStep;
        result+=rsqrt(dx*dx+dy*dy+dz*dz)*weight;
      }
    }
  }
  atomicAdd(&gpuTotal, result);
}

int main(int argc, char* argv[]){
  counter=0;
  char* &filename = argv[1];
  vector<const char*> lineAddrs;
  struct stat st;
  int ndex=1;
  stat(filename, &st);
  size_t filesize = st.st_size;
  int fd = open(filename,O_RDONLY,0);
  void* file = mmap(NULL,  filesize, PROT_READ, MAP_PRIVATE | MAP_POPULATE, fd, 0);
  const char* input = (const char*) file;
  int lines=0;
  lineAddrs.push_back(input);
  cout<<"Reading file"<<endl;
  for(int i=0;i<filesize;i++){
    if(input[i]=='\n'){
      lines++;
      lineAddrs.push_back(input+i+1);
    }
  }
  hipMallocManaged(&x,   (size_t) lines*sizeof(float));
  hipMallocManaged(&y,   (size_t) lines*sizeof(float));
  hipMallocManaged(&z,   (size_t) lines*sizeof(float));
  for(int i=0;i<lines;i++){
    const char *a,*b,*c;
    a=lineAddrs[i];
    b=strpbrk(strpbrk(a," \t"),"-0123456789");
    c=strpbrk(strpbrk(b," \t"),"-0123456789");
    x[i]=atof(a);
    y[i]=atof(b);
    z[i]=atof(c);
  }
  munmap(file, filesize);
  float maxX=x[0], minX=x[0], maxY=y[0], minY=y[0], maxZ=z[0], minZ=z[0];
  int chunkSize=(lines+ndex-1)/ndex;
  cout<<"Calculating grid size"<<endl;
  for(int i=0;i<ndex;i++){
    float _maxX=x[i*chunkSize], _minX=x[i*chunkSize], _maxY=y[i*chunkSize],
          _minY=y[i*chunkSize], _maxZ=z[i*chunkSize], _minZ=z[i*chunkSize];
    for(int j=i*chunkSize+1;j<(i+1)*chunkSize;j++){
      if(j>=lines) break;
      if(x[j]<_minX) _minX=x[j];
      if(x[j]>_maxX) _maxX=x[j];
      if(y[j]<_minY) _minY=y[j];
      if(y[j]>_maxY) _maxY=y[j];
      if(z[j]<_minZ) _minZ=z[j];
      if(z[j]>_maxZ) _maxZ=z[j];
    }
    {
      if(_minX<minX) minX=_minX;
      if(_maxX>maxX) maxX=_maxX;
      if(_minY<minY) minY=_minY;
      if(_maxY>maxY) maxY=_maxY;
      if(_minZ<minZ) minZ=_minZ;
      if(_maxZ>maxZ) maxZ=_maxZ;
    }
  }
  xStep=(maxX-minX)/99;
  yStep=(maxY-minY)/99;
  zStep=(maxZ-minZ)/99;
  typedef vector<int> bit;
  typedef vector<bit> skinny;
  typedef vector<skinny> flat;
  typedef vector<flat> pack;
  pack pointLists(100, flat(100, skinny(100)));
  cout<<"Assigning points"<<endl;
  for(int i=0;i<lines;i++){
    int _x=(int)((x[i]-minX)/xStep);
    int _y=(int)((y[i]-minY)/yStep);
    int _z=(int)((z[i]-minZ)/zStep);
    pointLists[_x][_y][_z].push_back(i);
  }
  hipMallocManaged(&indices,   (size_t) 1000000*sizeof(int*));
  hipMallocManaged(&lens,   (size_t) 1000000*sizeof(float));
  //cudaMallocManaged(&res,   (size_t) 1000000*sizeof(float*));
  for(int i=0;i<100;i++){
    for(int j=0;j<100;j++){
      for(int k=0;k<100;k++){
        int count=pointLists[i][j][k].size();
        //cout<<count;
        int index=10000*i+100*j+k;
        lens[index]=count;
        hipMallocManaged(&(indices[index]),   (size_t) count*sizeof(int));
        hipMemcpy(&(indices[index]), &(pointLists[i][j][k][0]),
                   count*sizeof(int), hipMemcpyHostToDevice);
      }
    }
  }


  cout<<"Done"<<endl;
  float total=0.0f;
  dim3 dimBlock(10,10,10);
  dim3 dimGrid(10,10,10);
  cout<<"Sending to GPU"<<endl;
  // launch the kernel
  gpuTotal=0;
  calcOverall<<<dimGrid, dimBlock>>>();
  calcNearby<<<dimGrid, dimBlock>>>();
 
  hipDeviceSynchronize();
  gpuTotal*=-1/2.0;
  cout<<gpuTotal<<endl;
  cout<<counter<<endl;
  return 0;
}

	.text
	.file	"gravity-gpu.hip"
                                        # Start of file scope inline assembly
	.globl	_ZSt21ios_base_library_initv

                                        # End of file scope inline assembly
	.globl	_Z25__device_stub__calcNearbyv  # -- Begin function _Z25__device_stub__calcNearbyv
	.type	_Z25__device_stub__calcNearbyv,@function
_Z25__device_stub__calcNearbyv:         # @_Z25__device_stub__calcNearbyv
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	subq	$56, %rsp
	.cfi_def_cfa_offset 96
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	leaq	40(%rsp), %rbx
	leaq	24(%rsp), %r14
	leaq	16(%rsp), %r15
	leaq	8(%rsp), %r12
	movq	%rbx, %rdi
	movq	%r14, %rsi
	movq	%r15, %rdx
	movq	%r12, %rcx
	callq	__hipPopCallConfiguration
	movq	(%rbx), %rsi
	movl	8(%rbx), %edx
	movq	(%r14), %rcx
	movl	8(%r14), %r8d
	movq	%rsp, %r9
	movl	$_Z10calcNearbyv, %edi
	pushq	(%r12)
	.cfi_adjust_cfa_offset 8
	pushq	(%r15)
	.cfi_adjust_cfa_offset 8
	callq	hipLaunchKernel
	addq	$72, %rsp
	.cfi_adjust_cfa_offset -72
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end0:
	.size	_Z25__device_stub__calcNearbyv, .Lfunc_end0-_Z25__device_stub__calcNearbyv
	.cfi_endproc
                                        # -- End function
	.globl	_Z26__device_stub__calcOverallv # -- Begin function _Z26__device_stub__calcOverallv
	.type	_Z26__device_stub__calcOverallv,@function
_Z26__device_stub__calcOverallv:        # @_Z26__device_stub__calcOverallv
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	subq	$56, %rsp
	.cfi_def_cfa_offset 96
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	leaq	40(%rsp), %rbx
	leaq	24(%rsp), %r14
	leaq	16(%rsp), %r15
	leaq	8(%rsp), %r12
	movq	%rbx, %rdi
	movq	%r14, %rsi
	movq	%r15, %rdx
	movq	%r12, %rcx
	callq	__hipPopCallConfiguration
	movq	(%rbx), %rsi
	movl	8(%rbx), %edx
	movq	(%r14), %rcx
	movl	8(%r14), %r8d
	movq	%rsp, %r9
	movl	$_Z11calcOverallv, %edi
	pushq	(%r12)
	.cfi_adjust_cfa_offset 8
	pushq	(%r15)
	.cfi_adjust_cfa_offset 8
	callq	hipLaunchKernel
	addq	$72, %rsp
	.cfi_adjust_cfa_offset -72
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end1:
	.size	_Z26__device_stub__calcOverallv, .Lfunc_end1-_Z26__device_stub__calcOverallv
	.cfi_endproc
                                        # -- End function
	.section	.rodata.cst4,"aM",@progbits,4
	.p2align	2, 0x0                          # -- Begin function main
.LCPI2_0:
	.long	0x42c60000                      # float 99
.LCPI2_1:
	.long	0xbf000000                      # float -0.5
	.text
	.globl	main
	.type	main,@function
main:                                   # @main
.Lfunc_begin0:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception0
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$312, %rsp                      # imm = 0x138
	.cfi_def_cfa_offset 368
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rsi, %r14
	movq	counter(%rip), %rax
	movl	$0, (%rax)
	xorps	%xmm0, %xmm0
	leaq	112(%rsp), %r15
	movaps	%xmm0, (%r15)
	movq	$0, 16(%r15)
	movq	8(%rsi), %rdi
	leaq	168(%rsp), %rbx
	movq	%rbx, %rsi
	callq	stat
	movq	48(%rbx), %r13
	movq	8(%r14), %rdi
	xorl	%esi, %esi
	xorl	%edx, %edx
	xorl	%eax, %eax
	callq	open
	xorl	%edi, %edi
	movq	%r13, %rsi
	movl	$1, %edx
	movl	$32770, %ecx                    # imm = 0x8002
	movl	%eax, %r8d
	xorl	%r9d, %r9d
	callq	mmap
	leaq	104(%rsp), %rdx
	movq	%rax, 8(%rsp)                   # 8-byte Spill
	movq	%rax, (%rdx)
.Ltmp0:
	movq	%r15, %rdi
	xorl	%esi, %esi
	callq	_ZNSt6vectorIPKcSaIS1_EE17_M_realloc_insertIJRKS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_
.Ltmp1:
# %bb.1:                                # %_ZNSt6vectorIPKcSaIS1_EE9push_backERKS1_.exit
.Ltmp2:
	movl	$_ZSt4cout, %r15d
	movl	$_ZSt4cout, %edi
	movl	$.L.str, %esi
	movl	$12, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp3:
# %bb.2:                                # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit
	movq	_ZSt4cout(%rip), %rax
	addq	-24(%rax), %r15
.Ltmp4:
	movq	%r15, %rdi
	movl	$10, %esi
	callq	_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
.Ltmp5:
# %bb.3:                                # %.noexc240
.Ltmp6:
	movsbl	%al, %esi
	movl	$_ZSt4cout, %edi
	callq	_ZNSo3putEc
.Ltmp7:
# %bb.4:                                # %.noexc241
.Ltmp8:
	movq	%rax, %rdi
	callq	_ZNSo5flushEv
.Ltmp9:
# %bb.5:                                # %_ZNSolsEPFRSoS_E.exit.preheader
	testq	%r13, %r13
	je	.LBB2_11
# %bb.6:                                # %.lr.ph.preheader
	movq	%r13, %rbx
	negq	%rbx
	xorl	%ebp, %ebp
	movl	$1, %r14d
	leaq	112(%rsp), %r15
	leaq	64(%rsp), %r12
.LBB2_7:                                # %.lr.ph
                                        # =>This Inner Loop Header: Depth=1
	movq	104(%rsp), %rax
	cmpb	$10, -1(%rax,%r14)
	jne	.LBB2_10
# %bb.8:                                #   in Loop: Header=BB2_7 Depth=1
	addq	%r14, %rax
	movq	%rax, 64(%rsp)
.Ltmp10:
	movq	%r15, %rdi
	movq	%r12, %rsi
	callq	_ZNSt6vectorIPKcSaIS1_EE12emplace_backIJS1_EEERS1_DpOT_
.Ltmp11:
# %bb.9:                                # %_ZNSt6vectorIPKcSaIS1_EE9push_backEOS1_.exit
                                        #   in Loop: Header=BB2_7 Depth=1
	incl	%ebp
.LBB2_10:                               # %_ZNSolsEPFRSoS_E.exit
                                        #   in Loop: Header=BB2_7 Depth=1
	leaq	(%rbx,%r14), %rax
	incq	%rax
	incq	%r14
	cmpq	$1, %rax
	jne	.LBB2_7
	jmp	.LBB2_12
.LBB2_11:
	xorl	%ebp, %ebp
.LBB2_12:                               # %_ZNSolsEPFRSoS_E.exit._crit_edge
	movslq	%ebp, %r15
	shlq	$2, %r15
	movq	x(%rip), %rdi
.Ltmp13:
	movq	%r15, %rsi
	movl	$1, %edx
	callq	hipMallocManaged
.Ltmp14:
# %bb.13:                               # %_ZL16hipMallocManagedIfE10hipError_tPPT_mj.exit
	movq	y(%rip), %rdi
.Ltmp15:
	movq	%r15, %rsi
	movl	$1, %edx
	callq	hipMallocManaged
.Ltmp16:
# %bb.14:                               # %_ZL16hipMallocManagedIfE10hipError_tPPT_mj.exit205
	movq	z(%rip), %rdi
.Ltmp17:
	movq	%r15, %rsi
	movl	$1, %edx
	callq	hipMallocManaged
.Ltmp18:
# %bb.15:                               # %_ZL16hipMallocManagedIfE10hipError_tPPT_mj.exit207.preheader
	movq	%r13, (%rsp)                    # 8-byte Spill
	movl	%ebp, %r14d
	movl	%ebp, 32(%rsp)                  # 4-byte Spill
	testl	%ebp, %ebp
	jle	.LBB2_18
# %bb.16:                               # %.lr.ph280
	movq	112(%rsp), %rbx
	xorl	%ebp, %ebp
.LBB2_17:                               # %_ZL16hipMallocManagedIfE10hipError_tPPT_mj.exit207
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbx,%rbp,8), %r15
	movl	$.L.str.1, %esi
	movq	%r15, %rdi
	callq	strpbrk
	movl	$.L.str.2, %esi
	movq	%rax, %rdi
	callq	strpbrk
	movq	%rax, %r12
	movl	$.L.str.1, %esi
	movq	%rax, %rdi
	callq	strpbrk
	movl	$.L.str.2, %esi
	movq	%rax, %rdi
	callq	strpbrk
	movq	%rax, %r13
	movq	%r15, %rdi
	callq	atof
	cvtsd2ss	%xmm0, %xmm0
	movq	x(%rip), %rax
	movq	(%rax), %rax
	movss	%xmm0, (%rax,%rbp,4)
	movq	%r12, %rdi
	callq	atof
	cvtsd2ss	%xmm0, %xmm0
	movq	y(%rip), %rax
	movq	(%rax), %rax
	movss	%xmm0, (%rax,%rbp,4)
	movq	%r13, %rdi
	callq	atof
	cvtsd2ss	%xmm0, %xmm0
	movq	z(%rip), %rax
	movq	(%rax), %rax
	movss	%xmm0, (%rax,%rbp,4)
	incq	%rbp
	cmpq	%rbp, %r14
	jne	.LBB2_17
.LBB2_18:                               # %_ZL16hipMallocManagedIfE10hipError_tPPT_mj.exit207._crit_edge
	movq	8(%rsp), %rdi                   # 8-byte Reload
	movq	(%rsp), %rsi                    # 8-byte Reload
	callq	munmap
	movq	x(%rip), %rax
	movq	(%rax), %rax
	movss	(%rax), %xmm0                   # xmm0 = mem[0],zero,zero,zero
	movss	%xmm0, 24(%rsp)                 # 4-byte Spill
	movq	y(%rip), %rax
	movq	(%rax), %rax
	movss	(%rax), %xmm0                   # xmm0 = mem[0],zero,zero,zero
	movss	%xmm0, (%rsp)                   # 4-byte Spill
	movq	z(%rip), %rax
	movq	(%rax), %rax
	movss	(%rax), %xmm0                   # xmm0 = mem[0],zero,zero,zero
	movss	%xmm0, 8(%rsp)                  # 4-byte Spill
.Ltmp20:
	movl	$_ZSt4cout, %ebx
	movl	$_ZSt4cout, %edi
	movl	$.L.str.3, %esi
	movl	$21, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp21:
# %bb.19:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit209
	movq	_ZSt4cout(%rip), %rax
	addq	-24(%rax), %rbx
.Ltmp22:
	movq	%rbx, %rdi
	movl	$10, %esi
	callq	_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
.Ltmp23:
# %bb.20:                               # %.noexc243
.Ltmp24:
	movsbl	%al, %esi
	movl	$_ZSt4cout, %edi
	callq	_ZNSo3putEc
.Ltmp25:
# %bb.21:                               # %.noexc244
.Ltmp26:
	movq	%rax, %rdi
	callq	_ZNSo5flushEv
.Ltmp27:
# %bb.22:                               # %_ZNSolsEPFRSoS_E.exit211.preheader
	movq	x(%rip), %rax
	movq	(%rax), %rax
	movss	(%rax), %xmm3                   # xmm3 = mem[0],zero,zero,zero
	movq	y(%rip), %rcx
	movq	(%rcx), %rcx
	movss	(%rcx), %xmm4                   # xmm4 = mem[0],zero,zero,zero
	movq	z(%rip), %rdx
	movq	(%rdx), %rdx
	movss	(%rdx), %xmm5                   # xmm5 = mem[0],zero,zero,zero
	movl	32(%rsp), %ebp                  # 4-byte Reload
	cmpl	$2, %ebp
	jl	.LBB2_25
# %bb.23:                               # %.lr.ph288.preheader
	movl	$1, %esi
	movaps	%xmm3, %xmm8
	movaps	%xmm4, %xmm7
	movaps	%xmm5, %xmm6
	movss	8(%rsp), %xmm12                 # 4-byte Reload
                                        # xmm12 = mem[0],zero,zero,zero
	movss	(%rsp), %xmm13                  # 4-byte Reload
                                        # xmm13 = mem[0],zero,zero,zero
	movss	24(%rsp), %xmm14                # 4-byte Reload
                                        # xmm14 = mem[0],zero,zero,zero
.LBB2_24:                               # %.lr.ph288
                                        # =>This Inner Loop Header: Depth=1
	movss	(%rax,%rsi,4), %xmm2            # xmm2 = mem[0],zero,zero,zero
	movaps	%xmm2, %xmm9
	minss	%xmm8, %xmm9
	maxss	%xmm3, %xmm2
	movss	(%rcx,%rsi,4), %xmm1            # xmm1 = mem[0],zero,zero,zero
	movaps	%xmm1, %xmm10
	minss	%xmm7, %xmm10
	maxss	%xmm4, %xmm1
	movss	(%rdx,%rsi,4), %xmm0            # xmm0 = mem[0],zero,zero,zero
	movaps	%xmm0, %xmm11
	minss	%xmm6, %xmm11
	maxss	%xmm5, %xmm0
	incq	%rsi
	movaps	%xmm2, %xmm3
	movaps	%xmm9, %xmm8
	movaps	%xmm1, %xmm4
	movaps	%xmm10, %xmm7
	movaps	%xmm0, %xmm5
	movaps	%xmm11, %xmm6
	cmpq	%rsi, %r14
	jne	.LBB2_24
	jmp	.LBB2_26
.LBB2_25:
	movaps	%xmm5, %xmm11
	movaps	%xmm5, %xmm0
	movaps	%xmm4, %xmm10
	movaps	%xmm4, %xmm1
	movaps	%xmm3, %xmm9
	movaps	%xmm3, %xmm2
	movss	8(%rsp), %xmm12                 # 4-byte Reload
                                        # xmm12 = mem[0],zero,zero,zero
	movss	(%rsp), %xmm13                  # 4-byte Reload
                                        # xmm13 = mem[0],zero,zero,zero
	movss	24(%rsp), %xmm14                # 4-byte Reload
                                        # xmm14 = mem[0],zero,zero,zero
.LBB2_26:                               # %_ZNSolsEPFRSoS_E.exit211
	minss	%xmm14, %xmm9
	maxss	%xmm14, %xmm2
	minss	%xmm13, %xmm10
	maxss	%xmm13, %xmm1
	minss	%xmm12, %xmm11
	maxss	%xmm12, %xmm0
	movss	%xmm9, 8(%rsp)                  # 4-byte Spill
	subss	%xmm9, %xmm2
	movss	.LCPI2_0(%rip), %xmm3           # xmm3 = mem[0],zero,zero,zero
	divss	%xmm3, %xmm2
	movq	xStep(%rip), %rax
	movss	%xmm2, (%rax)
	movss	%xmm10, (%rsp)                  # 4-byte Spill
	subss	%xmm10, %xmm1
	divss	%xmm3, %xmm1
	movq	yStep(%rip), %rax
	movss	%xmm1, (%rax)
	movss	%xmm11, 24(%rsp)                # 4-byte Spill
	subss	%xmm11, %xmm0
	divss	%xmm3, %xmm0
	movq	zStep(%rip), %rax
	movss	%xmm0, (%rax)
.Ltmp29:
	movl	$2400, %edi                     # imm = 0x960
	callq	_Znwm
.Ltmp30:
# %bb.27:
	leaq	144(%rsp), %rbx
	movq	%rax, (%rbx)
	movq	%rax, %r14
	addq	$2400, %r14                     # imm = 0x960
	movq	%r14, 16(%rbx)
	movl	$2400, %edx                     # imm = 0x960
	movq	%rax, %rdi
	xorl	%esi, %esi
	callq	memset@PLT
	movq	%r14, 8(%rbx)
.Ltmp32:
	leaq	40(%rsp), %rdi
	leaq	23(%rsp), %rcx
	movl	$100, %esi
	movq	%rbx, %rdx
	callq	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2EmRKS3_RKS4_
.Ltmp33:
# %bb.28:
.Ltmp35:
	leaq	64(%rsp), %rdi
	leaq	40(%rsp), %rdx
	leaq	22(%rsp), %rcx
	movl	$100, %esi
	callq	_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EEC2EmRKS5_RKS6_
.Ltmp36:
# %bb.29:
	leaq	40(%rsp), %rdi
	callq	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED2Ev
	leaq	144(%rsp), %rdi
	callq	_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev
.Ltmp38:
	movl	$_ZSt4cout, %ebx
	movl	$_ZSt4cout, %edi
	movl	$.L.str.4, %esi
	movl	$16, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp39:
# %bb.30:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit214
	movq	_ZSt4cout(%rip), %rax
	addq	-24(%rax), %rbx
.Ltmp40:
	movq	%rbx, %rdi
	movl	$10, %esi
	callq	_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
.Ltmp41:
# %bb.31:                               # %.noexc248
.Ltmp42:
	movsbl	%al, %esi
	movl	$_ZSt4cout, %edi
	callq	_ZNSo3putEc
.Ltmp43:
# %bb.32:                               # %.noexc249
.Ltmp44:
	movq	%rax, %rdi
	callq	_ZNSo5flushEv
.Ltmp45:
# %bb.33:                               # %_ZNSolsEPFRSoS_E.exit216
	movl	$0, 40(%rsp)
	testl	%ebp, %ebp
	jle	.LBB2_39
# %bb.34:                               # %.lr.ph302.preheader
	xorl	%eax, %eax
	leaq	40(%rsp), %rbx
.LBB2_35:                               # %.lr.ph302
                                        # =>This Inner Loop Header: Depth=1
	movq	x(%rip), %rcx
	movq	(%rcx), %rcx
	movslq	%eax, %rdx
	movss	(%rcx,%rdx,4), %xmm0            # xmm0 = mem[0],zero,zero,zero
	subss	8(%rsp), %xmm0                  # 4-byte Folded Reload
	movq	xStep(%rip), %rcx
	divss	(%rcx), %xmm0
	cvttss2si	%xmm0, %ecx
	movq	y(%rip), %rsi
	movq	(%rsi), %rsi
	movss	(%rsi,%rdx,4), %xmm0            # xmm0 = mem[0],zero,zero,zero
	subss	(%rsp), %xmm0                   # 4-byte Folded Reload
	movq	yStep(%rip), %rsi
	divss	(%rsi), %xmm0
	cvttss2si	%xmm0, %esi
	movq	z(%rip), %rdi
	movq	(%rdi), %rdi
	movss	(%rdi,%rdx,4), %xmm0            # xmm0 = mem[0],zero,zero,zero
	subss	24(%rsp), %xmm0                 # 4-byte Folded Reload
	movq	zStep(%rip), %rdx
	divss	(%rdx), %xmm0
	cvttss2si	%xmm0, %edx
	movslq	%ecx, %rcx
	movq	64(%rsp), %rdi
	leaq	(%rcx,%rcx,2), %rcx
	movslq	%esi, %rsi
	movq	(%rdi,%rcx,8), %rcx
	leaq	(%rsi,%rsi,2), %rsi
	movslq	%edx, %rdx
	movq	(%rcx,%rsi,8), %rcx
	leaq	(%rdx,%rdx,2), %rdx
	leaq	(%rcx,%rdx,8), %rdi
	movq	8(%rdi), %rsi
	cmpq	16(%rdi), %rsi
	je	.LBB2_37
# %bb.36:                               #   in Loop: Header=BB2_35 Depth=1
	movl	%eax, (%rsi)
	addq	$4, %rsi
	movq	%rsi, 8(%rdi)
	jmp	.LBB2_38
.LBB2_37:                               #   in Loop: Header=BB2_35 Depth=1
.Ltmp46:
	movq	%rbx, %rdx
	callq	_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_
.Ltmp47:
.LBB2_38:                               # %_ZNSt6vectorIiSaIiEE9push_backERKi.exit
                                        #   in Loop: Header=BB2_35 Depth=1
	movl	40(%rsp), %eax
	incl	%eax
	movl	%eax, 40(%rsp)
	cmpl	%ebp, %eax
	jl	.LBB2_35
.LBB2_39:                               # %._crit_edge303
	movq	indices(%rip), %rdi
.Ltmp49:
	movl	$8000000, %esi                  # imm = 0x7A1200
	movl	$1, %edx
	callq	hipMallocManaged
.Ltmp50:
# %bb.40:                               # %_ZL16hipMallocManagedIPiE10hipError_tPPT_mj.exit
	movq	lens(%rip), %rdi
.Ltmp51:
	movl	$4000000, %esi                  # imm = 0x3D0900
	movl	$1, %edx
	callq	hipMallocManaged
.Ltmp52:
# %bb.41:                               # %.preheader275.preheader
	xorl	%r15d, %r15d
	xorl	%r14d, %r14d
	xorl	%edx, %edx
.LBB2_42:                               # %.preheader275
                                        # =>This Loop Header: Depth=1
                                        #     Child Loop BB2_43 Depth 2
                                        #       Child Loop BB2_44 Depth 3
	movq	%rdx, 88(%rsp)                  # 8-byte Spill
	leaq	(%rdx,%rdx,2), %r13
	movq	%r15, 32(%rsp)                  # 8-byte Spill
	movq	%r14, 96(%rsp)                  # 8-byte Spill
	xorl	%eax, %eax
.LBB2_43:                               # %.preheader
                                        #   Parent Loop BB2_42 Depth=1
                                        # =>  This Loop Header: Depth=2
                                        #       Child Loop BB2_44 Depth 3
	movq	%rax, 24(%rsp)                  # 8-byte Spill
	leaq	(%rax,%rax,2), %r12
	xorl	%ebp, %ebp
	movq	%r15, 8(%rsp)                   # 8-byte Spill
	movq	%r14, (%rsp)                    # 8-byte Spill
.LBB2_44:                               #   Parent Loop BB2_42 Depth=1
                                        #     Parent Loop BB2_43 Depth=2
                                        # =>    This Inner Loop Header: Depth=3
	movq	64(%rsp), %rax
	movq	(%rax,%r13,8), %rax
	movq	(%rax,%r12,8), %rax
	movq	8(%rax,%rbp), %rbx
	subq	(%rax,%rbp), %rbx
	movq	%rbx, %rax
	shrq	$2, %rax
	movq	lens(%rip), %rcx
	movq	(%rcx), %rcx
	movl	%eax, (%rcx,%r15)
	movq	indices(%rip), %rax
	movq	(%rax), %rdi
	addq	%r14, %rdi
	shlq	$30, %rbx
	sarq	$30, %rbx
.Ltmp53:
	movq	%rbx, %rsi
	movl	$1, %edx
	callq	hipMallocManaged
.Ltmp54:
# %bb.45:                               # %_ZL16hipMallocManagedIiE10hipError_tPPT_mj.exit224
                                        #   in Loop: Header=BB2_44 Depth=3
	movq	indices(%rip), %rax
	movq	(%rax), %rdi
	addq	%r14, %rdi
	movq	64(%rsp), %rax
	movq	(%rax,%r13,8), %rax
	movq	(%rax,%r12,8), %rax
	movq	(%rax,%rbp), %rsi
.Ltmp55:
	movq	%rbx, %rdx
	movl	$1, %ecx
	callq	hipMemcpy
.Ltmp56:
# %bb.46:                               #   in Loop: Header=BB2_44 Depth=3
	addq	$8, %r14
	addq	$4, %r15
	addq	$24, %rbp
	cmpq	$2400, %rbp                     # imm = 0x960
	jne	.LBB2_44
# %bb.47:                               #   in Loop: Header=BB2_43 Depth=2
	movq	24(%rsp), %rax                  # 8-byte Reload
	incq	%rax
	movq	(%rsp), %r14                    # 8-byte Reload
	addq	$800, %r14                      # imm = 0x320
	movq	8(%rsp), %r15                   # 8-byte Reload
	addq	$400, %r15                      # imm = 0x190
	cmpq	$100, %rax
	jne	.LBB2_43
# %bb.48:                               # %_ZL16hipMallocManagedIiE10hipError_tPPT_mj.exit
                                        #   in Loop: Header=BB2_42 Depth=1
	movq	88(%rsp), %rdx                  # 8-byte Reload
	incq	%rdx
	movq	96(%rsp), %r14                  # 8-byte Reload
	addq	$80000, %r14                    # imm = 0x13880
	movq	32(%rsp), %r15                  # 8-byte Reload
	addq	$40000, %r15                    # imm = 0x9C40
	cmpq	$100, %rdx
	jne	.LBB2_42
# %bb.49:
.Ltmp58:
	movl	$_ZSt4cout, %ebx
	movl	$_ZSt4cout, %edi
	movl	$.L.str.5, %esi
	movl	$4, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp59:
# %bb.50:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit222
	movq	_ZSt4cout(%rip), %rax
	addq	-24(%rax), %rbx
.Ltmp60:
	movq	%rbx, %rdi
	movl	$10, %esi
	callq	_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
.Ltmp61:
# %bb.51:                               # %.noexc252
.Ltmp62:
	movsbl	%al, %esi
	movl	$_ZSt4cout, %edi
	callq	_ZNSo3putEc
.Ltmp63:
# %bb.52:                               # %.noexc253
.Ltmp64:
	movq	%rax, %rdi
	callq	_ZNSo5flushEv
.Ltmp65:
# %bb.53:                               # %_ZNSolsEPFRSoS_E.exit226
.Ltmp67:
	movl	$_ZSt4cout, %ebx
	movl	$_ZSt4cout, %edi
	movl	$.L.str.6, %esi
	movl	$14, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp68:
# %bb.54:                               # %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit228
	movq	_ZSt4cout(%rip), %rax
	addq	-24(%rax), %rbx
.Ltmp69:
	movq	%rbx, %rdi
	movl	$10, %esi
	callq	_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
.Ltmp70:
# %bb.55:                               # %.noexc256
.Ltmp71:
	movsbl	%al, %esi
	movl	$_ZSt4cout, %edi
	callq	_ZNSo3putEc
.Ltmp72:
# %bb.56:                               # %.noexc257
.Ltmp73:
	movq	%rax, %rdi
	callq	_ZNSo5flushEv
.Ltmp74:
# %bb.57:                               # %_ZNSolsEPFRSoS_E.exit230
	movq	gpuTotal(%rip), %rax
	movl	$0, (%rax)
.Ltmp75:
	movabsq	$42949672970, %rdi              # imm = 0xA0000000A
	movl	$10, %esi
	movq	%rdi, %rdx
	movl	$10, %ecx
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	callq	__hipPushCallConfiguration
.Ltmp76:
# %bb.58:
	testl	%eax, %eax
	jne	.LBB2_60
# %bb.59:
.Ltmp77:
	callq	_Z26__device_stub__calcOverallv
.Ltmp78:
.LBB2_60:
.Ltmp79:
	movabsq	$42949672970, %rdi              # imm = 0xA0000000A
	movl	$10, %esi
	movq	%rdi, %rdx
	movl	$10, %ecx
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	callq	__hipPushCallConfiguration
.Ltmp80:
# %bb.61:
	testl	%eax, %eax
	jne	.LBB2_63
# %bb.62:
.Ltmp81:
	callq	_Z25__device_stub__calcNearbyv
.Ltmp82:
.LBB2_63:
.Ltmp83:
	callq	hipDeviceSynchronize
.Ltmp84:
# %bb.64:
	movq	gpuTotal(%rip), %rax
	movss	(%rax), %xmm0                   # xmm0 = mem[0],zero,zero,zero
	mulss	.LCPI2_1(%rip), %xmm0
	movss	%xmm0, (%rax)
	movq	gpuTotal(%rip), %rax
	xorps	%xmm0, %xmm0
	cvtss2sd	(%rax), %xmm0
.Ltmp85:
	movl	$_ZSt4cout, %edi
	callq	_ZNSo9_M_insertIdEERSoT_
.Ltmp86:
# %bb.65:                               # %_ZNSolsEf.exit
	movq	%rax, %rbx
	movq	(%rax), %rax
	movq	-24(%rax), %rdi
	addq	%rbx, %rdi
.Ltmp87:
	movl	$10, %esi
	callq	_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
.Ltmp88:
# %bb.66:                               # %.noexc260
.Ltmp89:
	movsbl	%al, %esi
	movq	%rbx, %rdi
	callq	_ZNSo3putEc
.Ltmp90:
# %bb.67:                               # %.noexc261
.Ltmp91:
	movq	%rax, %rdi
	callq	_ZNSo5flushEv
.Ltmp92:
# %bb.68:                               # %_ZNSolsEPFRSoS_E.exit233
	movq	counter(%rip), %rax
	xorps	%xmm0, %xmm0
	cvtss2sd	(%rax), %xmm0
.Ltmp93:
	movl	$_ZSt4cout, %edi
	callq	_ZNSo9_M_insertIdEERSoT_
.Ltmp94:
# %bb.69:                               # %_ZNSolsEf.exit235
	movq	%rax, %rbx
	movq	(%rax), %rax
	movq	-24(%rax), %rdi
	addq	%rbx, %rdi
.Ltmp95:
	movl	$10, %esi
	callq	_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
.Ltmp96:
# %bb.70:                               # %.noexc264
.Ltmp97:
	movsbl	%al, %esi
	movq	%rbx, %rdi
	callq	_ZNSo3putEc
.Ltmp98:
# %bb.71:                               # %.noexc265
.Ltmp99:
	movq	%rax, %rdi
	callq	_ZNSo5flushEv
.Ltmp100:
# %bb.72:                               # %_ZNSolsEPFRSoS_E.exit237
	leaq	64(%rsp), %rdi
	callq	_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EED2Ev
	movq	112(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB2_74
# %bb.73:
	callq	_ZdlPv
.LBB2_74:                               # %_ZNSt6vectorIPKcSaIS1_EED2Ev.exit
	xorl	%eax, %eax
	addq	$312, %rsp                      # imm = 0x138
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB2_75:
	.cfi_def_cfa_offset 368
.Ltmp37:
	movq	%rax, %rbx
	leaq	40(%rsp), %rdi
	callq	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED2Ev
	jmp	.LBB2_77
.LBB2_76:
.Ltmp34:
	movq	%rax, %rbx
.LBB2_77:
	leaq	144(%rsp), %rdi
	callq	_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev
	jmp	.LBB2_88
.LBB2_78:
.Ltmp31:
	jmp	.LBB2_82
.LBB2_79:
.Ltmp28:
	jmp	.LBB2_82
.LBB2_80:
.Ltmp48:
	jmp	.LBB2_87
.LBB2_81:
.Ltmp19:
	jmp	.LBB2_82
.LBB2_83:
.Ltmp66:
	jmp	.LBB2_87
.LBB2_84:
.Ltmp12:
.LBB2_82:
	movq	%rax, %rbx
	jmp	.LBB2_88
.LBB2_85:
.Ltmp101:
	jmp	.LBB2_87
.LBB2_86:
.Ltmp57:
.LBB2_87:
	movq	%rax, %rbx
	leaq	64(%rsp), %rdi
	callq	_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EED2Ev
.LBB2_88:
	movq	112(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB2_90
# %bb.89:
	callq	_ZdlPv
.LBB2_90:                               # %_ZNSt6vectorIPKcSaIS1_EED2Ev.exit239
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end2:
	.size	main, .Lfunc_end2-main
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table2:
.Lexception0:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end0-.Lcst_begin0
.Lcst_begin0:
	.uleb128 .Lfunc_begin0-.Lfunc_begin0    # >> Call Site 1 <<
	.uleb128 .Ltmp0-.Lfunc_begin0           #   Call between .Lfunc_begin0 and .Ltmp0
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp0-.Lfunc_begin0           # >> Call Site 2 <<
	.uleb128 .Ltmp9-.Ltmp0                  #   Call between .Ltmp0 and .Ltmp9
	.uleb128 .Ltmp19-.Lfunc_begin0          #     jumps to .Ltmp19
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp10-.Lfunc_begin0          # >> Call Site 3 <<
	.uleb128 .Ltmp11-.Ltmp10                #   Call between .Ltmp10 and .Ltmp11
	.uleb128 .Ltmp12-.Lfunc_begin0          #     jumps to .Ltmp12
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp13-.Lfunc_begin0          # >> Call Site 4 <<
	.uleb128 .Ltmp18-.Ltmp13                #   Call between .Ltmp13 and .Ltmp18
	.uleb128 .Ltmp19-.Lfunc_begin0          #     jumps to .Ltmp19
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp20-.Lfunc_begin0          # >> Call Site 5 <<
	.uleb128 .Ltmp27-.Ltmp20                #   Call between .Ltmp20 and .Ltmp27
	.uleb128 .Ltmp28-.Lfunc_begin0          #     jumps to .Ltmp28
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp29-.Lfunc_begin0          # >> Call Site 6 <<
	.uleb128 .Ltmp30-.Ltmp29                #   Call between .Ltmp29 and .Ltmp30
	.uleb128 .Ltmp31-.Lfunc_begin0          #     jumps to .Ltmp31
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp30-.Lfunc_begin0          # >> Call Site 7 <<
	.uleb128 .Ltmp32-.Ltmp30                #   Call between .Ltmp30 and .Ltmp32
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp32-.Lfunc_begin0          # >> Call Site 8 <<
	.uleb128 .Ltmp33-.Ltmp32                #   Call between .Ltmp32 and .Ltmp33
	.uleb128 .Ltmp34-.Lfunc_begin0          #     jumps to .Ltmp34
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp35-.Lfunc_begin0          # >> Call Site 9 <<
	.uleb128 .Ltmp36-.Ltmp35                #   Call between .Ltmp35 and .Ltmp36
	.uleb128 .Ltmp37-.Lfunc_begin0          #     jumps to .Ltmp37
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp38-.Lfunc_begin0          # >> Call Site 10 <<
	.uleb128 .Ltmp45-.Ltmp38                #   Call between .Ltmp38 and .Ltmp45
	.uleb128 .Ltmp66-.Lfunc_begin0          #     jumps to .Ltmp66
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp46-.Lfunc_begin0          # >> Call Site 11 <<
	.uleb128 .Ltmp47-.Ltmp46                #   Call between .Ltmp46 and .Ltmp47
	.uleb128 .Ltmp48-.Lfunc_begin0          #     jumps to .Ltmp48
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp49-.Lfunc_begin0          # >> Call Site 12 <<
	.uleb128 .Ltmp52-.Ltmp49                #   Call between .Ltmp49 and .Ltmp52
	.uleb128 .Ltmp66-.Lfunc_begin0          #     jumps to .Ltmp66
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp53-.Lfunc_begin0          # >> Call Site 13 <<
	.uleb128 .Ltmp56-.Ltmp53                #   Call between .Ltmp53 and .Ltmp56
	.uleb128 .Ltmp57-.Lfunc_begin0          #     jumps to .Ltmp57
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp58-.Lfunc_begin0          # >> Call Site 14 <<
	.uleb128 .Ltmp65-.Ltmp58                #   Call between .Ltmp58 and .Ltmp65
	.uleb128 .Ltmp66-.Lfunc_begin0          #     jumps to .Ltmp66
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp67-.Lfunc_begin0          # >> Call Site 15 <<
	.uleb128 .Ltmp100-.Ltmp67               #   Call between .Ltmp67 and .Ltmp100
	.uleb128 .Ltmp101-.Lfunc_begin0         #     jumps to .Ltmp101
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp100-.Lfunc_begin0         # >> Call Site 16 <<
	.uleb128 .Lfunc_end2-.Ltmp100           #   Call between .Ltmp100 and .Lfunc_end2
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end0:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2EmRKS3_RKS4_,"axG",@progbits,_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2EmRKS3_RKS4_,comdat
	.weak	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2EmRKS3_RKS4_ # -- Begin function _ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2EmRKS3_RKS4_
	.p2align	1, 0x90
	.type	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2EmRKS3_RKS4_,@function
_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2EmRKS3_RKS4_: # @_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2EmRKS3_RKS4_
.Lfunc_begin1:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception1
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movabsq	$384307168202282326, %rax       # imm = 0x555555555555556
	cmpq	%rax, %rsi
	jae	.LBB3_9
# %bb.1:                                # %_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EE17_S_check_init_lenEmRKS4_.exit
	movq	%rdx, %r14
	movq	%rsi, %r15
	movq	%rdi, %rbx
	xorps	%xmm0, %xmm0
	movups	%xmm0, (%rdi)
	movq	$0, 16(%rdi)
	testq	%rsi, %rsi
	je	.LBB3_2
# %bb.3:
	movq	%rbx, %rdi
	movq	%r15, %rsi
	xorl	%edx, %edx
	callq	_ZNSt15__new_allocatorISt6vectorIS0_IiSaIiEESaIS2_EEE8allocateEmPKv
	movq	%rax, %rdi
	jmp	.LBB3_4
.LBB3_2:
	xorl	%edi, %edi
.LBB3_4:                                # %_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EEC2EmRKS5_.exit
	movq	%rdi, (%rbx)
	movq	%rdi, 8(%rbx)
	leaq	(%r15,%r15,2), %rax
	leaq	(%rdi,%rax,8), %rax
	movq	%rax, 16(%rbx)
.Ltmp102:
	movq	%r15, %rsi
	movq	%r14, %rdx
	callq	_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IiSaIiEESaIS2_EEmS4_ET_S6_T0_RKT1_
.Ltmp103:
# %bb.5:
	movq	%rax, 8(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB3_9:
	.cfi_def_cfa_offset 32
	movl	$.L.str.8, %edi
	callq	_ZSt20__throw_length_errorPKc
.LBB3_6:
.Ltmp104:
	movq	%rax, %r14
	movq	(%rbx), %rdi
	testq	%rdi, %rdi
	je	.LBB3_8
# %bb.7:
	callq	_ZdlPv
.LBB3_8:                                # %_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EED2Ev.exit
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end3:
	.size	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2EmRKS3_RKS4_, .Lfunc_end3-_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2EmRKS3_RKS4_
	.cfi_endproc
	.section	.gcc_except_table._ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2EmRKS3_RKS4_,"aG",@progbits,_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2EmRKS3_RKS4_,comdat
	.p2align	2, 0x0
GCC_except_table3:
.Lexception1:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end1-.Lcst_begin1
.Lcst_begin1:
	.uleb128 .Lfunc_begin1-.Lfunc_begin1    # >> Call Site 1 <<
	.uleb128 .Ltmp102-.Lfunc_begin1         #   Call between .Lfunc_begin1 and .Ltmp102
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp102-.Lfunc_begin1         # >> Call Site 2 <<
	.uleb128 .Ltmp103-.Ltmp102              #   Call between .Ltmp102 and .Ltmp103
	.uleb128 .Ltmp104-.Lfunc_begin1         #     jumps to .Ltmp104
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp103-.Lfunc_begin1         # >> Call Site 3 <<
	.uleb128 .Lfunc_end3-.Ltmp103           #   Call between .Ltmp103 and .Lfunc_end3
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end1:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EEC2EmRKS5_RKS6_,"axG",@progbits,_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EEC2EmRKS5_RKS6_,comdat
	.weak	_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EEC2EmRKS5_RKS6_ # -- Begin function _ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EEC2EmRKS5_RKS6_
	.p2align	1, 0x90
	.type	_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EEC2EmRKS5_RKS6_,@function
_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EEC2EmRKS5_RKS6_: # @_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EEC2EmRKS5_RKS6_
.Lfunc_begin2:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception2
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movabsq	$384307168202282326, %rax       # imm = 0x555555555555556
	cmpq	%rax, %rsi
	jae	.LBB4_9
# %bb.1:                                # %_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EE17_S_check_init_lenEmRKS6_.exit
	movq	%rdx, %r14
	movq	%rsi, %r15
	movq	%rdi, %rbx
	xorps	%xmm0, %xmm0
	movups	%xmm0, (%rdi)
	movq	$0, 16(%rdi)
	testq	%rsi, %rsi
	je	.LBB4_2
# %bb.3:
	movq	%rbx, %rdi
	movq	%r15, %rsi
	xorl	%edx, %edx
	callq	_ZNSt15__new_allocatorISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEE8allocateEmPKv
	movq	%rax, %rdi
	jmp	.LBB4_4
.LBB4_2:
	xorl	%edi, %edi
.LBB4_4:                                # %_ZNSt12_Vector_baseISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EESaIS6_EEC2EmRKS7_.exit
	movq	%rdi, (%rbx)
	movq	%rdi, 8(%rbx)
	leaq	(%r15,%r15,2), %rax
	leaq	(%rdi,%rax,8), %rax
	movq	%rax, 16(%rbx)
.Ltmp105:
	movq	%r15, %rsi
	movq	%r14, %rdx
	callq	_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_
.Ltmp106:
# %bb.5:
	movq	%rax, 8(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB4_9:
	.cfi_def_cfa_offset 32
	movl	$.L.str.8, %edi
	callq	_ZSt20__throw_length_errorPKc
.LBB4_6:
.Ltmp107:
	movq	%rax, %r14
	movq	(%rbx), %rdi
	testq	%rdi, %rdi
	je	.LBB4_8
# %bb.7:
	callq	_ZdlPv
.LBB4_8:                                # %_ZNSt12_Vector_baseISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EESaIS6_EED2Ev.exit
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end4:
	.size	_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EEC2EmRKS5_RKS6_, .Lfunc_end4-_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EEC2EmRKS5_RKS6_
	.cfi_endproc
	.section	.gcc_except_table._ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EEC2EmRKS5_RKS6_,"aG",@progbits,_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EEC2EmRKS5_RKS6_,comdat
	.p2align	2, 0x0
GCC_except_table4:
.Lexception2:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end2-.Lcst_begin2
.Lcst_begin2:
	.uleb128 .Lfunc_begin2-.Lfunc_begin2    # >> Call Site 1 <<
	.uleb128 .Ltmp105-.Lfunc_begin2         #   Call between .Lfunc_begin2 and .Ltmp105
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp105-.Lfunc_begin2         # >> Call Site 2 <<
	.uleb128 .Ltmp106-.Ltmp105              #   Call between .Ltmp105 and .Ltmp106
	.uleb128 .Ltmp107-.Lfunc_begin2         #     jumps to .Ltmp107
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp106-.Lfunc_begin2         # >> Call Site 3 <<
	.uleb128 .Lfunc_end4-.Ltmp106           #   Call between .Ltmp106 and .Lfunc_end4
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end2:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED2Ev,"axG",@progbits,_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED2Ev,comdat
	.weak	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED2Ev # -- Begin function _ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED2Ev
	.p2align	1, 0x90
	.type	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED2Ev,@function
_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED2Ev: # @_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED2Ev
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	(%rdi), %rbx
	movq	8(%rdi), %r15
	cmpq	%r15, %rbx
	je	.LBB5_4
# %bb.1:                                # %.lr.ph.i.i.i.preheader
	movq	%rdi, %r14
.LBB5_2:                                # %.lr.ph.i.i.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rbx, %rdi
	callq	_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev
	addq	$24, %rbx
	cmpq	%r15, %rbx
	jne	.LBB5_2
# %bb.3:                                # %_ZSt8_DestroyIPSt6vectorIS0_IiSaIiEESaIS2_EES4_EvT_S6_RSaIT0_E.exitthread-pre-split
	movq	(%r14), %rbx
.LBB5_4:                                # %_ZSt8_DestroyIPSt6vectorIS0_IiSaIiEESaIS2_EES4_EvT_S6_RSaIT0_E.exit
	testq	%rbx, %rbx
	je	.LBB5_5
# %bb.6:
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	_ZdlPv                          # TAILCALL
.LBB5_5:                                # %_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EED2Ev.exit
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end5:
	.size	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED2Ev, .Lfunc_end5-_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED2Ev
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev,"axG",@progbits,_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev,comdat
	.weak	_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev # -- Begin function _ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev
	.p2align	1, 0x90
	.type	_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev,@function
_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev:    # @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	(%rdi), %rbx
	movq	8(%rdi), %r15
	cmpq	%r15, %rbx
	je	.LBB6_6
# %bb.1:                                # %.lr.ph.i.i.i.preheader
	movq	%rdi, %r14
.LBB6_2:                                # %.lr.ph.i.i.i
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbx), %rdi
	testq	%rdi, %rdi
	je	.LBB6_4
# %bb.3:                                #   in Loop: Header=BB6_2 Depth=1
	callq	_ZdlPv
.LBB6_4:                                # %_ZSt8_DestroyISt6vectorIiSaIiEEEvPT_.exit.i.i.i
                                        #   in Loop: Header=BB6_2 Depth=1
	addq	$24, %rbx
	cmpq	%r15, %rbx
	jne	.LBB6_2
# %bb.5:                                # %_ZSt8_DestroyIPSt6vectorIiSaIiEES2_EvT_S4_RSaIT0_E.exitthread-pre-split
	movq	(%r14), %rbx
.LBB6_6:                                # %_ZSt8_DestroyIPSt6vectorIiSaIiEES2_EvT_S4_RSaIT0_E.exit
	testq	%rbx, %rbx
	je	.LBB6_7
# %bb.8:
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	_ZdlPv                          # TAILCALL
.LBB6_7:                                # %_ZNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EED2Ev.exit
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end6:
	.size	_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev, .Lfunc_end6-_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EED2Ev,"axG",@progbits,_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EED2Ev,comdat
	.weak	_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EED2Ev # -- Begin function _ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EED2Ev
	.p2align	1, 0x90
	.type	_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EED2Ev,@function
_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EED2Ev: # @_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EED2Ev
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	(%rdi), %rbx
	movq	8(%rdi), %r15
	cmpq	%r15, %rbx
	je	.LBB7_4
# %bb.1:                                # %.lr.ph.i.i.i.preheader
	movq	%rdi, %r14
.LBB7_2:                                # %.lr.ph.i.i.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rbx, %rdi
	callq	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED2Ev
	addq	$24, %rbx
	cmpq	%r15, %rbx
	jne	.LBB7_2
# %bb.3:                                # %_ZSt8_DestroyIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EES6_EvT_S8_RSaIT0_E.exitthread-pre-split
	movq	(%r14), %rbx
.LBB7_4:                                # %_ZSt8_DestroyIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EES6_EvT_S8_RSaIT0_E.exit
	testq	%rbx, %rbx
	je	.LBB7_5
# %bb.6:
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	_ZdlPv                          # TAILCALL
.LBB7_5:                                # %_ZNSt12_Vector_baseISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EESaIS6_EED2Ev.exit
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end7:
	.size	_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EED2Ev, .Lfunc_end7-_ZNSt6vectorIS_IS_IS_IiSaIiEESaIS1_EESaIS3_EESaIS5_EED2Ev
	.cfi_endproc
                                        # -- End function
	.section	.text.__clang_call_terminate,"axG",@progbits,__clang_call_terminate,comdat
	.hidden	__clang_call_terminate          # -- Begin function __clang_call_terminate
	.weak	__clang_call_terminate
	.type	__clang_call_terminate,@function
__clang_call_terminate:                 # @__clang_call_terminate
	.cfi_startproc
# %bb.0:
	pushq	%rax
	.cfi_def_cfa_offset 16
	callq	__cxa_begin_catch
	callq	_ZSt9terminatev
.Lfunc_end8:
	.size	__clang_call_terminate, .Lfunc_end8-__clang_call_terminate
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt6vectorIPKcSaIS1_EE17_M_realloc_insertIJRKS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_,"axG",@progbits,_ZNSt6vectorIPKcSaIS1_EE17_M_realloc_insertIJRKS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_,comdat
	.weak	_ZNSt6vectorIPKcSaIS1_EE17_M_realloc_insertIJRKS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_ # -- Begin function _ZNSt6vectorIPKcSaIS1_EE17_M_realloc_insertIJRKS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_
	.p2align	1, 0x90
	.type	_ZNSt6vectorIPKcSaIS1_EE17_M_realloc_insertIJRKS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_,@function
_ZNSt6vectorIPKcSaIS1_EE17_M_realloc_insertIJRKS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_: # @_ZNSt6vectorIPKcSaIS1_EE17_M_realloc_insertIJRKS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_
	.cfi_startproc
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, (%rsp)                    # 8-byte Spill
	movq	%rsi, %r12
	movq	%rdi, %rbx
	movl	$1, %esi
	movl	$.L.str.7, %edx
	callq	_ZNKSt6vectorIPKcSaIS1_EE12_M_check_lenEmS1_
	movq	(%rbx), %r13
	movq	8(%rbx), %r15
	movq	%r12, 8(%rsp)                   # 8-byte Spill
	subq	%r13, %r12
	movq	%r12, %r14
	sarq	$3, %r14
	testq	%rax, %rax
	movq	%rax, 16(%rsp)                  # 8-byte Spill
	je	.LBB9_1
# %bb.2:
	movq	%rbx, %rdi
	movq	%rax, %rsi
	xorl	%edx, %edx
	callq	_ZNSt15__new_allocatorIPKcE8allocateEmPKv
	movq	%rax, %rbp
	jmp	.LBB9_3
.LBB9_1:
	xorl	%ebp, %ebp
.LBB9_3:                                # %_ZNSt12_Vector_baseIPKcSaIS1_EE11_M_allocateEm.exit
	movq	(%rsp), %rax                    # 8-byte Reload
	movq	(%rax), %rax
	movq	%rax, (%rbp,%r14,8)
	testq	%r12, %r12
	jle	.LBB9_5
# %bb.4:
	movq	%rbp, %rdi
	movq	%r13, %rsi
	movq	%r12, %rdx
	callq	memmove@PLT
.LBB9_5:                                # %_ZNSt6vectorIPKcSaIS1_EE11_S_relocateEPS1_S4_S4_RS2_.exit
	addq	%rbp, %r12
	addq	$8, %r12
	movq	8(%rsp), %rsi                   # 8-byte Reload
	subq	%rsi, %r15
	testq	%r15, %r15
	jle	.LBB9_7
# %bb.6:
	movq	%r12, %rdi
	movq	%r15, %rdx
	callq	memmove@PLT
.LBB9_7:                                # %_ZNSt6vectorIPKcSaIS1_EE11_S_relocateEPS1_S4_S4_RS2_.exit16
	testq	%r13, %r13
	je	.LBB9_9
# %bb.8:
	movq	%r13, %rdi
	callq	_ZdlPv
.LBB9_9:                                # %_ZNSt12_Vector_baseIPKcSaIS1_EE13_M_deallocateEPS1_m.exit
	addq	%r15, %r12
	movq	%rbp, (%rbx)
	movq	%r12, 8(%rbx)
	movq	16(%rsp), %rax                  # 8-byte Reload
	leaq	(,%rax,8), %rax
	addq	%rbp, %rax
	movq	%rax, 16(%rbx)
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end9:
	.size	_ZNSt6vectorIPKcSaIS1_EE17_M_realloc_insertIJRKS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_, .Lfunc_end9-_ZNSt6vectorIPKcSaIS1_EE17_M_realloc_insertIJRKS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNKSt6vectorIPKcSaIS1_EE12_M_check_lenEmS1_,"axG",@progbits,_ZNKSt6vectorIPKcSaIS1_EE12_M_check_lenEmS1_,comdat
	.weak	_ZNKSt6vectorIPKcSaIS1_EE12_M_check_lenEmS1_ # -- Begin function _ZNKSt6vectorIPKcSaIS1_EE12_M_check_lenEmS1_
	.p2align	1, 0x90
	.type	_ZNKSt6vectorIPKcSaIS1_EE12_M_check_lenEmS1_,@function
_ZNKSt6vectorIPKcSaIS1_EE12_M_check_lenEmS1_: # @_ZNKSt6vectorIPKcSaIS1_EE12_M_check_lenEmS1_
	.cfi_startproc
# %bb.0:
	movabsq	$1152921504606846975, %rcx      # imm = 0xFFFFFFFFFFFFFFF
	movq	8(%rdi), %r8
	subq	(%rdi), %r8
	sarq	$3, %r8
	movq	%rcx, %rax
	subq	%r8, %rax
	cmpq	%rsi, %rax
	jb	.LBB10_2
# %bb.1:
	cmpq	%rsi, %r8
	cmovaq	%r8, %rsi
	leaq	(%rsi,%r8), %rax
	cmpq	%rcx, %rax
	cmovaeq	%rcx, %rax
	addq	%r8, %rsi
	cmovbq	%rcx, %rax
	retq
.LBB10_2:
	pushq	%rax
	.cfi_def_cfa_offset 16
	movq	%rdx, %rdi
	callq	_ZSt20__throw_length_errorPKc
.Lfunc_end10:
	.size	_ZNKSt6vectorIPKcSaIS1_EE12_M_check_lenEmS1_, .Lfunc_end10-_ZNKSt6vectorIPKcSaIS1_EE12_M_check_lenEmS1_
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt15__new_allocatorIPKcE8allocateEmPKv,"axG",@progbits,_ZNSt15__new_allocatorIPKcE8allocateEmPKv,comdat
	.weak	_ZNSt15__new_allocatorIPKcE8allocateEmPKv # -- Begin function _ZNSt15__new_allocatorIPKcE8allocateEmPKv
	.p2align	1, 0x90
	.type	_ZNSt15__new_allocatorIPKcE8allocateEmPKv,@function
_ZNSt15__new_allocatorIPKcE8allocateEmPKv: # @_ZNSt15__new_allocatorIPKcE8allocateEmPKv
	.cfi_startproc
# %bb.0:
	pushq	%rax
	.cfi_def_cfa_offset 16
	movq	%rsi, %rax
	shrq	$60, %rax
	jne	.LBB11_1
# %bb.3:
	shlq	$3, %rsi
	movq	%rsi, %rdi
	popq	%rax
	.cfi_def_cfa_offset 8
	jmp	_Znwm                           # TAILCALL
.LBB11_1:
	.cfi_def_cfa_offset 16
	shrq	$61, %rsi
	je	.LBB11_2
# %bb.4:
	callq	_ZSt28__throw_bad_array_new_lengthv
.LBB11_2:
	callq	_ZSt17__throw_bad_allocv
.Lfunc_end11:
	.size	_ZNSt15__new_allocatorIPKcE8allocateEmPKv, .Lfunc_end11-_ZNSt15__new_allocatorIPKcE8allocateEmPKv
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt6vectorIPKcSaIS1_EE12emplace_backIJS1_EEERS1_DpOT_,"axG",@progbits,_ZNSt6vectorIPKcSaIS1_EE12emplace_backIJS1_EEERS1_DpOT_,comdat
	.weak	_ZNSt6vectorIPKcSaIS1_EE12emplace_backIJS1_EEERS1_DpOT_ # -- Begin function _ZNSt6vectorIPKcSaIS1_EE12emplace_backIJS1_EEERS1_DpOT_
	.p2align	1, 0x90
	.type	_ZNSt6vectorIPKcSaIS1_EE12emplace_backIJS1_EEERS1_DpOT_,@function
_ZNSt6vectorIPKcSaIS1_EE12emplace_backIJS1_EEERS1_DpOT_: # @_ZNSt6vectorIPKcSaIS1_EE12emplace_backIJS1_EEERS1_DpOT_
	.cfi_startproc
# %bb.0:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset %rbx, -16
	movq	%rsi, %rdx
	movq	%rdi, %rbx
	movq	8(%rdi), %rsi
	cmpq	16(%rdi), %rsi
	je	.LBB12_2
# %bb.1:
	movq	(%rdx), %rax
	movq	%rax, (%rsi)
	movq	8(%rbx), %rax
	addq	$8, %rax
	movq	%rax, 8(%rbx)
	jmp	.LBB12_3
.LBB12_2:
	movq	%rbx, %rdi
	callq	_ZNSt6vectorIPKcSaIS1_EE17_M_realloc_insertIJS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_
	movq	8(%rbx), %rax
.LBB12_3:
	addq	$-8, %rax
	popq	%rbx
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end12:
	.size	_ZNSt6vectorIPKcSaIS1_EE12emplace_backIJS1_EEERS1_DpOT_, .Lfunc_end12-_ZNSt6vectorIPKcSaIS1_EE12emplace_backIJS1_EEERS1_DpOT_
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt6vectorIPKcSaIS1_EE17_M_realloc_insertIJS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_,"axG",@progbits,_ZNSt6vectorIPKcSaIS1_EE17_M_realloc_insertIJS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_,comdat
	.weak	_ZNSt6vectorIPKcSaIS1_EE17_M_realloc_insertIJS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_ # -- Begin function _ZNSt6vectorIPKcSaIS1_EE17_M_realloc_insertIJS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_
	.p2align	1, 0x90
	.type	_ZNSt6vectorIPKcSaIS1_EE17_M_realloc_insertIJS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_,@function
_ZNSt6vectorIPKcSaIS1_EE17_M_realloc_insertIJS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_: # @_ZNSt6vectorIPKcSaIS1_EE17_M_realloc_insertIJS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_
	.cfi_startproc
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, (%rsp)                    # 8-byte Spill
	movq	%rsi, %r12
	movq	%rdi, %rbx
	movl	$1, %esi
	movl	$.L.str.7, %edx
	callq	_ZNKSt6vectorIPKcSaIS1_EE12_M_check_lenEmS1_
	movq	(%rbx), %r13
	movq	8(%rbx), %r15
	movq	%r12, 8(%rsp)                   # 8-byte Spill
	subq	%r13, %r12
	movq	%r12, %r14
	sarq	$3, %r14
	testq	%rax, %rax
	movq	%rax, 16(%rsp)                  # 8-byte Spill
	je	.LBB13_1
# %bb.2:
	movq	%rbx, %rdi
	movq	%rax, %rsi
	xorl	%edx, %edx
	callq	_ZNSt15__new_allocatorIPKcE8allocateEmPKv
	movq	%rax, %rbp
	jmp	.LBB13_3
.LBB13_1:
	xorl	%ebp, %ebp
.LBB13_3:                               # %_ZNSt12_Vector_baseIPKcSaIS1_EE11_M_allocateEm.exit
	movq	(%rsp), %rax                    # 8-byte Reload
	movq	(%rax), %rax
	movq	%rax, (%rbp,%r14,8)
	testq	%r12, %r12
	jle	.LBB13_5
# %bb.4:
	movq	%rbp, %rdi
	movq	%r13, %rsi
	movq	%r12, %rdx
	callq	memmove@PLT
.LBB13_5:                               # %_ZNSt6vectorIPKcSaIS1_EE11_S_relocateEPS1_S4_S4_RS2_.exit
	addq	%rbp, %r12
	addq	$8, %r12
	movq	8(%rsp), %rsi                   # 8-byte Reload
	subq	%rsi, %r15
	testq	%r15, %r15
	jle	.LBB13_7
# %bb.6:
	movq	%r12, %rdi
	movq	%r15, %rdx
	callq	memmove@PLT
.LBB13_7:                               # %_ZNSt6vectorIPKcSaIS1_EE11_S_relocateEPS1_S4_S4_RS2_.exit16
	testq	%r13, %r13
	je	.LBB13_9
# %bb.8:
	movq	%r13, %rdi
	callq	_ZdlPv
.LBB13_9:                               # %_ZNSt12_Vector_baseIPKcSaIS1_EE13_M_deallocateEPS1_m.exit
	addq	%r15, %r12
	movq	%rbp, (%rbx)
	movq	%r12, 8(%rbx)
	movq	16(%rsp), %rax                  # 8-byte Reload
	leaq	(,%rax,8), %rax
	addq	%rbp, %rax
	movq	%rax, 16(%rbx)
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end13:
	.size	_ZNSt6vectorIPKcSaIS1_EE17_M_realloc_insertIJS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_, .Lfunc_end13-_ZNSt6vectorIPKcSaIS1_EE17_M_realloc_insertIJS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt15__new_allocatorISt6vectorIiSaIiEEE8allocateEmPKv,"axG",@progbits,_ZNSt15__new_allocatorISt6vectorIiSaIiEEE8allocateEmPKv,comdat
	.weak	_ZNSt15__new_allocatorISt6vectorIiSaIiEEE8allocateEmPKv # -- Begin function _ZNSt15__new_allocatorISt6vectorIiSaIiEEE8allocateEmPKv
	.p2align	1, 0x90
	.type	_ZNSt15__new_allocatorISt6vectorIiSaIiEEE8allocateEmPKv,@function
_ZNSt15__new_allocatorISt6vectorIiSaIiEEE8allocateEmPKv: # @_ZNSt15__new_allocatorISt6vectorIiSaIiEEE8allocateEmPKv
	.cfi_startproc
# %bb.0:
	pushq	%rax
	.cfi_def_cfa_offset 16
	movabsq	$384307168202282326, %rax       # imm = 0x555555555555556
	cmpq	%rax, %rsi
	jae	.LBB14_1
# %bb.3:
	shlq	$3, %rsi
	leaq	(%rsi,%rsi,2), %rdi
	popq	%rax
	.cfi_def_cfa_offset 8
	jmp	_Znwm                           # TAILCALL
.LBB14_1:
	.cfi_def_cfa_offset 16
	movabsq	$768614336404564651, %rax       # imm = 0xAAAAAAAAAAAAAAB
	cmpq	%rax, %rsi
	jb	.LBB14_2
# %bb.4:
	callq	_ZSt28__throw_bad_array_new_lengthv
.LBB14_2:
	callq	_ZSt17__throw_bad_allocv
.Lfunc_end14:
	.size	_ZNSt15__new_allocatorISt6vectorIiSaIiEEE8allocateEmPKv, .Lfunc_end14-_ZNSt15__new_allocatorISt6vectorIiSaIiEEE8allocateEmPKv
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt15__new_allocatorISt6vectorIS0_IiSaIiEESaIS2_EEE8allocateEmPKv,"axG",@progbits,_ZNSt15__new_allocatorISt6vectorIS0_IiSaIiEESaIS2_EEE8allocateEmPKv,comdat
	.weak	_ZNSt15__new_allocatorISt6vectorIS0_IiSaIiEESaIS2_EEE8allocateEmPKv # -- Begin function _ZNSt15__new_allocatorISt6vectorIS0_IiSaIiEESaIS2_EEE8allocateEmPKv
	.p2align	1, 0x90
	.type	_ZNSt15__new_allocatorISt6vectorIS0_IiSaIiEESaIS2_EEE8allocateEmPKv,@function
_ZNSt15__new_allocatorISt6vectorIS0_IiSaIiEESaIS2_EEE8allocateEmPKv: # @_ZNSt15__new_allocatorISt6vectorIS0_IiSaIiEESaIS2_EEE8allocateEmPKv
	.cfi_startproc
# %bb.0:
	pushq	%rax
	.cfi_def_cfa_offset 16
	movabsq	$384307168202282326, %rax       # imm = 0x555555555555556
	cmpq	%rax, %rsi
	jae	.LBB15_1
# %bb.3:
	shlq	$3, %rsi
	leaq	(%rsi,%rsi,2), %rdi
	popq	%rax
	.cfi_def_cfa_offset 8
	jmp	_Znwm                           # TAILCALL
.LBB15_1:
	.cfi_def_cfa_offset 16
	movabsq	$768614336404564651, %rax       # imm = 0xAAAAAAAAAAAAAAB
	cmpq	%rax, %rsi
	jb	.LBB15_2
# %bb.4:
	callq	_ZSt28__throw_bad_array_new_lengthv
.LBB15_2:
	callq	_ZSt17__throw_bad_allocv
.Lfunc_end15:
	.size	_ZNSt15__new_allocatorISt6vectorIS0_IiSaIiEESaIS2_EEE8allocateEmPKv, .Lfunc_end15-_ZNSt15__new_allocatorISt6vectorIS0_IiSaIiEESaIS2_EEE8allocateEmPKv
	.cfi_endproc
                                        # -- End function
	.section	.text._ZSt18__do_uninit_fill_nIPSt6vectorIS0_IiSaIiEESaIS2_EEmS4_ET_S6_T0_RKT1_,"axG",@progbits,_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IiSaIiEESaIS2_EEmS4_ET_S6_T0_RKT1_,comdat
	.weak	_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IiSaIiEESaIS2_EEmS4_ET_S6_T0_RKT1_ # -- Begin function _ZSt18__do_uninit_fill_nIPSt6vectorIS0_IiSaIiEESaIS2_EEmS4_ET_S6_T0_RKT1_
	.type	_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IiSaIiEESaIS2_EEmS4_ET_S6_T0_RKT1_,@function
_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IiSaIiEESaIS2_EEmS4_ET_S6_T0_RKT1_: # @_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IiSaIiEESaIS2_EEmS4_ET_S6_T0_RKT1_
.Lfunc_begin3:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception3
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	pushq	%rax
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rdi, %rbx
	testq	%rsi, %rsi
	je	.LBB16_5
# %bb.1:                                # %.lr.ph.preheader
	movq	%rdx, %r14
	movq	%rsi, %r15
	xorl	%r12d, %r12d
.LBB16_2:                               # %.lr.ph
                                        # =>This Inner Loop Header: Depth=1
	leaq	(%rbx,%r12), %rdi
.Ltmp108:
	movq	%r14, %rsi
	callq	_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2ERKS3_
.Ltmp109:
# %bb.3:                                # %_ZSt10_ConstructISt6vectorIS0_IiSaIiEESaIS2_EEJRKS4_EEvPT_DpOT0_.exit
                                        #   in Loop: Header=BB16_2 Depth=1
	addq	$24, %r12
	decq	%r15
	jne	.LBB16_2
# %bb.4:                                # %._crit_edge.loopexit
	addq	%r12, %rbx
.LBB16_5:                               # %._crit_edge
	movq	%rbx, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB16_6:
	.cfi_def_cfa_offset 48
.Ltmp110:
	movq	%rax, %rdi
	callq	__cxa_begin_catch
	testq	%r12, %r12
	je	.LBB16_8
.LBB16_7:                               # %.lr.ph.i.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rbx, %rdi
	callq	_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev
	addq	$24, %rbx
	addq	$-24, %r12
	jne	.LBB16_7
.LBB16_8:                               # %_ZSt8_DestroyIPSt6vectorIS0_IiSaIiEESaIS2_EEEvT_S6_.exit
.Ltmp111:
	callq	__cxa_rethrow
.Ltmp112:
# %bb.12:
.LBB16_9:
.Ltmp113:
	movq	%rax, %rbx
.Ltmp114:
	callq	__cxa_end_catch
.Ltmp115:
# %bb.10:
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.LBB16_11:
.Ltmp116:
	movq	%rax, %rdi
	callq	__clang_call_terminate
.Lfunc_end16:
	.size	_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IiSaIiEESaIS2_EEmS4_ET_S6_T0_RKT1_, .Lfunc_end16-_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IiSaIiEESaIS2_EEmS4_ET_S6_T0_RKT1_
	.cfi_endproc
	.section	.gcc_except_table._ZSt18__do_uninit_fill_nIPSt6vectorIS0_IiSaIiEESaIS2_EEmS4_ET_S6_T0_RKT1_,"aG",@progbits,_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IiSaIiEESaIS2_EEmS4_ET_S6_T0_RKT1_,comdat
	.p2align	2, 0x0
GCC_except_table16:
.Lexception3:
	.byte	255                             # @LPStart Encoding = omit
	.byte	3                               # @TType Encoding = udata4
	.uleb128 .Lttbase0-.Lttbaseref0
.Lttbaseref0:
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end3-.Lcst_begin3
.Lcst_begin3:
	.uleb128 .Ltmp108-.Lfunc_begin3         # >> Call Site 1 <<
	.uleb128 .Ltmp109-.Ltmp108              #   Call between .Ltmp108 and .Ltmp109
	.uleb128 .Ltmp110-.Lfunc_begin3         #     jumps to .Ltmp110
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp109-.Lfunc_begin3         # >> Call Site 2 <<
	.uleb128 .Ltmp111-.Ltmp109              #   Call between .Ltmp109 and .Ltmp111
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp111-.Lfunc_begin3         # >> Call Site 3 <<
	.uleb128 .Ltmp112-.Ltmp111              #   Call between .Ltmp111 and .Ltmp112
	.uleb128 .Ltmp113-.Lfunc_begin3         #     jumps to .Ltmp113
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp114-.Lfunc_begin3         # >> Call Site 4 <<
	.uleb128 .Ltmp115-.Ltmp114              #   Call between .Ltmp114 and .Ltmp115
	.uleb128 .Ltmp116-.Lfunc_begin3         #     jumps to .Ltmp116
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp115-.Lfunc_begin3         # >> Call Site 5 <<
	.uleb128 .Lfunc_end16-.Ltmp115          #   Call between .Ltmp115 and .Lfunc_end16
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end3:
	.byte	1                               # >> Action Record 1 <<
                                        #   Catch TypeInfo 1
	.byte	0                               #   No further actions
	.p2align	2, 0x0
                                        # >> Catch TypeInfos <<
	.long	0                               # TypeInfo 1
.Lttbase0:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZNSt6vectorIS_IiSaIiEESaIS1_EEC2ERKS3_,"axG",@progbits,_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2ERKS3_,comdat
	.weak	_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2ERKS3_ # -- Begin function _ZNSt6vectorIS_IiSaIiEESaIS1_EEC2ERKS3_
	.p2align	1, 0x90
	.type	_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2ERKS3_,@function
_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2ERKS3_: # @_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2ERKS3_
.Lfunc_begin4:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception4
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rsi, %r14
	movq	%rdi, %rbx
	movq	8(%rsi), %rax
	movq	(%rsi), %rcx
	movq	%rax, %rdx
	subq	%rcx, %rdx
	sarq	$3, %rdx
	movabsq	$-6148914691236517205, %r15     # imm = 0xAAAAAAAAAAAAAAAB
	imulq	%rdx, %r15
	xorps	%xmm0, %xmm0
	movups	%xmm0, (%rdi)
	movq	$0, 16(%rdi)
	cmpq	%rcx, %rax
	je	.LBB17_1
# %bb.2:
	movq	%rbx, %rdi
	movq	%r15, %rsi
	xorl	%edx, %edx
	callq	_ZNSt15__new_allocatorISt6vectorIiSaIiEEE8allocateEmPKv
	movq	%rax, %rdx
	jmp	.LBB17_3
.LBB17_1:
	xorl	%edx, %edx
.LBB17_3:
	movq	%rdx, (%rbx)
	movq	%rdx, 8(%rbx)
	leaq	(%r15,%r15,2), %rax
	leaq	(%rdx,%rax,8), %rax
	movq	%rax, 16(%rbx)
	movq	(%r14), %rdi
	movq	8(%r14), %rsi
.Ltmp117:
	callq	_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_
.Ltmp118:
# %bb.4:                                # %_ZSt22__uninitialized_copy_aIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_S4_ET0_T_SC_SB_RSaIT1_E.exit
	movq	%rax, 8(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB17_5:
	.cfi_def_cfa_offset 32
.Ltmp119:
	movq	%rax, %r14
	movq	(%rbx), %rdi
	testq	%rdi, %rdi
	je	.LBB17_7
# %bb.6:
	callq	_ZdlPv
.LBB17_7:                               # %_ZNSt12_Vector_baseISt6vectorIiSaIiEESaIS2_EED2Ev.exit
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end17:
	.size	_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2ERKS3_, .Lfunc_end17-_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2ERKS3_
	.cfi_endproc
	.section	.gcc_except_table._ZNSt6vectorIS_IiSaIiEESaIS1_EEC2ERKS3_,"aG",@progbits,_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2ERKS3_,comdat
	.p2align	2, 0x0
GCC_except_table17:
.Lexception4:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end4-.Lcst_begin4
.Lcst_begin4:
	.uleb128 .Lfunc_begin4-.Lfunc_begin4    # >> Call Site 1 <<
	.uleb128 .Ltmp117-.Lfunc_begin4         #   Call between .Lfunc_begin4 and .Ltmp117
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp117-.Lfunc_begin4         # >> Call Site 2 <<
	.uleb128 .Ltmp118-.Ltmp117              #   Call between .Ltmp117 and .Ltmp118
	.uleb128 .Ltmp119-.Lfunc_begin4         #     jumps to .Ltmp119
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp118-.Lfunc_begin4         # >> Call Site 3 <<
	.uleb128 .Lfunc_end17-.Ltmp118          #   Call between .Ltmp118 and .Lfunc_end17
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end4:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_,"axG",@progbits,_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_,comdat
	.weak	_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_ # -- Begin function _ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_
	.type	_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_,@function
_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_: # @_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_
.Lfunc_begin5:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception5
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	pushq	%rax
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rdx, %rbx
	cmpq	%rsi, %rdi
	je	.LBB18_5
# %bb.1:                                # %.lr.ph.preheader
	movq	%rsi, %r14
	movq	%rdi, %r15
	xorl	%r12d, %r12d
.LBB18_2:                               # %.lr.ph
                                        # =>This Inner Loop Header: Depth=1
	leaq	(%rbx,%r12), %rdi
	leaq	(%r15,%r12), %rsi
.Ltmp120:
	callq	_ZNSt6vectorIiSaIiEEC2ERKS1_
.Ltmp121:
# %bb.3:                                # %_ZSt10_ConstructISt6vectorIiSaIiEEJRKS2_EEvPT_DpOT0_.exit
                                        #   in Loop: Header=BB18_2 Depth=1
	leaq	(%r15,%r12), %rax
	addq	$24, %rax
	addq	$24, %r12
	cmpq	%r14, %rax
	jne	.LBB18_2
# %bb.4:                                # %._crit_edge.loopexit
	addq	%r12, %rbx
.LBB18_5:                               # %._crit_edge
	movq	%rbx, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB18_6:
	.cfi_def_cfa_offset 48
.Ltmp122:
	movq	%rax, %rdi
	callq	__cxa_begin_catch
	testq	%r12, %r12
	je	.LBB18_10
.LBB18_7:                               # %.lr.ph.i.i
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbx), %rdi
	testq	%rdi, %rdi
	je	.LBB18_9
# %bb.8:                                #   in Loop: Header=BB18_7 Depth=1
	callq	_ZdlPv
.LBB18_9:                               # %_ZSt8_DestroyISt6vectorIiSaIiEEEvPT_.exit.i.i
                                        #   in Loop: Header=BB18_7 Depth=1
	addq	$24, %rbx
	addq	$-24, %r12
	jne	.LBB18_7
.LBB18_10:                              # %_ZSt8_DestroyIPSt6vectorIiSaIiEEEvT_S4_.exit
.Ltmp123:
	callq	__cxa_rethrow
.Ltmp124:
# %bb.14:
.LBB18_11:
.Ltmp125:
	movq	%rax, %rbx
.Ltmp126:
	callq	__cxa_end_catch
.Ltmp127:
# %bb.12:
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.LBB18_13:
.Ltmp128:
	movq	%rax, %rdi
	callq	__clang_call_terminate
.Lfunc_end18:
	.size	_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_, .Lfunc_end18-_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_
	.cfi_endproc
	.section	.gcc_except_table._ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_,"aG",@progbits,_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEPS4_ET0_T_SC_SB_,comdat
	.p2align	2, 0x0
GCC_except_table18:
.Lexception5:
	.byte	255                             # @LPStart Encoding = omit
	.byte	3                               # @TType Encoding = udata4
	.uleb128 .Lttbase1-.Lttbaseref1
.Lttbaseref1:
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end5-.Lcst_begin5
.Lcst_begin5:
	.uleb128 .Ltmp120-.Lfunc_begin5         # >> Call Site 1 <<
	.uleb128 .Ltmp121-.Ltmp120              #   Call between .Ltmp120 and .Ltmp121
	.uleb128 .Ltmp122-.Lfunc_begin5         #     jumps to .Ltmp122
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp121-.Lfunc_begin5         # >> Call Site 2 <<
	.uleb128 .Ltmp123-.Ltmp121              #   Call between .Ltmp121 and .Ltmp123
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp123-.Lfunc_begin5         # >> Call Site 3 <<
	.uleb128 .Ltmp124-.Ltmp123              #   Call between .Ltmp123 and .Ltmp124
	.uleb128 .Ltmp125-.Lfunc_begin5         #     jumps to .Ltmp125
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp126-.Lfunc_begin5         # >> Call Site 4 <<
	.uleb128 .Ltmp127-.Ltmp126              #   Call between .Ltmp126 and .Ltmp127
	.uleb128 .Ltmp128-.Lfunc_begin5         #     jumps to .Ltmp128
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp127-.Lfunc_begin5         # >> Call Site 5 <<
	.uleb128 .Lfunc_end18-.Ltmp127          #   Call between .Ltmp127 and .Lfunc_end18
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end5:
	.byte	1                               # >> Action Record 1 <<
                                        #   Catch TypeInfo 1
	.byte	0                               #   No further actions
	.p2align	2, 0x0
                                        # >> Catch TypeInfos <<
	.long	0                               # TypeInfo 1
.Lttbase1:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZNSt6vectorIiSaIiEEC2ERKS1_,"axG",@progbits,_ZNSt6vectorIiSaIiEEC2ERKS1_,comdat
	.weak	_ZNSt6vectorIiSaIiEEC2ERKS1_    # -- Begin function _ZNSt6vectorIiSaIiEEC2ERKS1_
	.p2align	1, 0x90
	.type	_ZNSt6vectorIiSaIiEEC2ERKS1_,@function
_ZNSt6vectorIiSaIiEEC2ERKS1_:           # @_ZNSt6vectorIiSaIiEEC2ERKS1_
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	pushq	%rax
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rsi, %r14
	movq	%rdi, %rbx
	movq	8(%rsi), %rax
	movq	(%rsi), %rcx
	movq	%rax, %r12
	subq	%rcx, %r12
	sarq	$2, %r12
	xorps	%xmm0, %xmm0
	movups	%xmm0, (%rdi)
	movq	$0, 16(%rdi)
	cmpq	%rcx, %rax
	je	.LBB19_1
# %bb.2:
	movq	%rbx, %rdi
	movq	%r12, %rsi
	xorl	%edx, %edx
	callq	_ZNSt15__new_allocatorIiE8allocateEmPKv
	movq	%rax, %r15
	jmp	.LBB19_3
.LBB19_1:
	xorl	%r15d, %r15d
.LBB19_3:
	movq	%r15, (%rbx)
	movq	%r15, 8(%rbx)
	leaq	(%r15,%r12,4), %rax
	movq	%rax, 16(%rbx)
	movq	(%r14), %rsi
	movq	8(%r14), %r14
	subq	%rsi, %r14
	cmpq	$5, %r14
	jl	.LBB19_5
# %bb.4:
	movq	%r15, %rdi
	movq	%r14, %rdx
	callq	memmove@PLT
.LBB19_7:
	addq	%r14, %r15
	movq	%r15, 8(%rbx)
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB19_5:
	.cfi_def_cfa_offset 48
	cmpq	$4, %r14
	jne	.LBB19_7
# %bb.6:
	movl	(%rsi), %eax
	movl	%eax, (%r15)
	jmp	.LBB19_7
.Lfunc_end19:
	.size	_ZNSt6vectorIiSaIiEEC2ERKS1_, .Lfunc_end19-_ZNSt6vectorIiSaIiEEC2ERKS1_
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt15__new_allocatorIiE8allocateEmPKv,"axG",@progbits,_ZNSt15__new_allocatorIiE8allocateEmPKv,comdat
	.weak	_ZNSt15__new_allocatorIiE8allocateEmPKv # -- Begin function _ZNSt15__new_allocatorIiE8allocateEmPKv
	.p2align	1, 0x90
	.type	_ZNSt15__new_allocatorIiE8allocateEmPKv,@function
_ZNSt15__new_allocatorIiE8allocateEmPKv: # @_ZNSt15__new_allocatorIiE8allocateEmPKv
	.cfi_startproc
# %bb.0:
	pushq	%rax
	.cfi_def_cfa_offset 16
	movq	%rsi, %rax
	shrq	$61, %rax
	jne	.LBB20_1
# %bb.3:
	shlq	$2, %rsi
	movq	%rsi, %rdi
	popq	%rax
	.cfi_def_cfa_offset 8
	jmp	_Znwm                           # TAILCALL
.LBB20_1:
	.cfi_def_cfa_offset 16
	shrq	$62, %rsi
	je	.LBB20_2
# %bb.4:
	callq	_ZSt28__throw_bad_array_new_lengthv
.LBB20_2:
	callq	_ZSt17__throw_bad_allocv
.Lfunc_end20:
	.size	_ZNSt15__new_allocatorIiE8allocateEmPKv, .Lfunc_end20-_ZNSt15__new_allocatorIiE8allocateEmPKv
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt15__new_allocatorISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEE8allocateEmPKv,"axG",@progbits,_ZNSt15__new_allocatorISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEE8allocateEmPKv,comdat
	.weak	_ZNSt15__new_allocatorISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEE8allocateEmPKv # -- Begin function _ZNSt15__new_allocatorISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEE8allocateEmPKv
	.p2align	1, 0x90
	.type	_ZNSt15__new_allocatorISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEE8allocateEmPKv,@function
_ZNSt15__new_allocatorISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEE8allocateEmPKv: # @_ZNSt15__new_allocatorISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEE8allocateEmPKv
	.cfi_startproc
# %bb.0:
	pushq	%rax
	.cfi_def_cfa_offset 16
	movabsq	$384307168202282326, %rax       # imm = 0x555555555555556
	cmpq	%rax, %rsi
	jae	.LBB21_1
# %bb.3:
	shlq	$3, %rsi
	leaq	(%rsi,%rsi,2), %rdi
	popq	%rax
	.cfi_def_cfa_offset 8
	jmp	_Znwm                           # TAILCALL
.LBB21_1:
	.cfi_def_cfa_offset 16
	movabsq	$768614336404564651, %rax       # imm = 0xAAAAAAAAAAAAAAB
	cmpq	%rax, %rsi
	jb	.LBB21_2
# %bb.4:
	callq	_ZSt28__throw_bad_array_new_lengthv
.LBB21_2:
	callq	_ZSt17__throw_bad_allocv
.Lfunc_end21:
	.size	_ZNSt15__new_allocatorISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEE8allocateEmPKv, .Lfunc_end21-_ZNSt15__new_allocatorISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEE8allocateEmPKv
	.cfi_endproc
                                        # -- End function
	.section	.text._ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_,"axG",@progbits,_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_,comdat
	.weak	_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_ # -- Begin function _ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_
	.type	_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_,@function
_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_: # @_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_
.Lfunc_begin6:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception6
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	pushq	%rax
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rdi, %rbx
	testq	%rsi, %rsi
	je	.LBB22_5
# %bb.1:                                # %.lr.ph.preheader
	movq	%rdx, %r14
	movq	%rsi, %r15
	xorl	%r12d, %r12d
.LBB22_2:                               # %.lr.ph
                                        # =>This Inner Loop Header: Depth=1
	leaq	(%rbx,%r12), %rdi
.Ltmp129:
	movq	%r14, %rsi
	callq	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2ERKS5_
.Ltmp130:
# %bb.3:                                # %_ZSt10_ConstructISt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEJRKS6_EEvPT_DpOT0_.exit
                                        #   in Loop: Header=BB22_2 Depth=1
	addq	$24, %r12
	decq	%r15
	jne	.LBB22_2
# %bb.4:                                # %._crit_edge.loopexit
	addq	%r12, %rbx
.LBB22_5:                               # %._crit_edge
	movq	%rbx, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB22_6:
	.cfi_def_cfa_offset 48
.Ltmp131:
	movq	%rax, %rdi
	callq	__cxa_begin_catch
	testq	%r12, %r12
	je	.LBB22_8
.LBB22_7:                               # %.lr.ph.i.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rbx, %rdi
	callq	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EED2Ev
	addq	$24, %rbx
	addq	$-24, %r12
	jne	.LBB22_7
.LBB22_8:                               # %_ZSt8_DestroyIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEEvT_S8_.exit
.Ltmp132:
	callq	__cxa_rethrow
.Ltmp133:
# %bb.12:
.LBB22_9:
.Ltmp134:
	movq	%rax, %rbx
.Ltmp135:
	callq	__cxa_end_catch
.Ltmp136:
# %bb.10:
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.LBB22_11:
.Ltmp137:
	movq	%rax, %rdi
	callq	__clang_call_terminate
.Lfunc_end22:
	.size	_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_, .Lfunc_end22-_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_
	.cfi_endproc
	.section	.gcc_except_table._ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_,"aG",@progbits,_ZSt18__do_uninit_fill_nIPSt6vectorIS0_IS0_IiSaIiEESaIS2_EESaIS4_EEmS6_ET_S8_T0_RKT1_,comdat
	.p2align	2, 0x0
GCC_except_table22:
.Lexception6:
	.byte	255                             # @LPStart Encoding = omit
	.byte	3                               # @TType Encoding = udata4
	.uleb128 .Lttbase2-.Lttbaseref2
.Lttbaseref2:
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end6-.Lcst_begin6
.Lcst_begin6:
	.uleb128 .Ltmp129-.Lfunc_begin6         # >> Call Site 1 <<
	.uleb128 .Ltmp130-.Ltmp129              #   Call between .Ltmp129 and .Ltmp130
	.uleb128 .Ltmp131-.Lfunc_begin6         #     jumps to .Ltmp131
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp130-.Lfunc_begin6         # >> Call Site 2 <<
	.uleb128 .Ltmp132-.Ltmp130              #   Call between .Ltmp130 and .Ltmp132
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp132-.Lfunc_begin6         # >> Call Site 3 <<
	.uleb128 .Ltmp133-.Ltmp132              #   Call between .Ltmp132 and .Ltmp133
	.uleb128 .Ltmp134-.Lfunc_begin6         #     jumps to .Ltmp134
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp135-.Lfunc_begin6         # >> Call Site 4 <<
	.uleb128 .Ltmp136-.Ltmp135              #   Call between .Ltmp135 and .Ltmp136
	.uleb128 .Ltmp137-.Lfunc_begin6         #     jumps to .Ltmp137
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp136-.Lfunc_begin6         # >> Call Site 5 <<
	.uleb128 .Lfunc_end22-.Ltmp136          #   Call between .Ltmp136 and .Lfunc_end22
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end6:
	.byte	1                               # >> Action Record 1 <<
                                        #   Catch TypeInfo 1
	.byte	0                               #   No further actions
	.p2align	2, 0x0
                                        # >> Catch TypeInfos <<
	.long	0                               # TypeInfo 1
.Lttbase2:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2ERKS5_,"axG",@progbits,_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2ERKS5_,comdat
	.weak	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2ERKS5_ # -- Begin function _ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2ERKS5_
	.p2align	1, 0x90
	.type	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2ERKS5_,@function
_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2ERKS5_: # @_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2ERKS5_
.Lfunc_begin7:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception7
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rsi, %r14
	movq	%rdi, %rbx
	movq	8(%rsi), %rax
	movq	(%rsi), %rcx
	movq	%rax, %rdx
	subq	%rcx, %rdx
	sarq	$3, %rdx
	movabsq	$-6148914691236517205, %r15     # imm = 0xAAAAAAAAAAAAAAAB
	imulq	%rdx, %r15
	xorps	%xmm0, %xmm0
	movups	%xmm0, (%rdi)
	movq	$0, 16(%rdi)
	cmpq	%rcx, %rax
	je	.LBB23_1
# %bb.2:
	movq	%rbx, %rdi
	movq	%r15, %rsi
	xorl	%edx, %edx
	callq	_ZNSt15__new_allocatorISt6vectorIS0_IiSaIiEESaIS2_EEE8allocateEmPKv
	movq	%rax, %rdx
	jmp	.LBB23_3
.LBB23_1:
	xorl	%edx, %edx
.LBB23_3:
	movq	%rdx, (%rbx)
	movq	%rdx, 8(%rbx)
	leaq	(%r15,%r15,2), %rax
	leaq	(%rdx,%rax,8), %rax
	movq	%rax, 16(%rbx)
	movq	(%r14), %rdi
	movq	8(%r14), %rsi
.Ltmp138:
	callq	_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIS2_IiSaIiEESaIS4_EES2_IS6_SaIS6_EEEEPS6_ET0_T_SE_SD_
.Ltmp139:
# %bb.4:                                # %_ZSt22__uninitialized_copy_aIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIS2_IiSaIiEESaIS4_EES2_IS6_SaIS6_EEEEPS6_S6_ET0_T_SE_SD_RSaIT1_E.exit
	movq	%rax, 8(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB23_5:
	.cfi_def_cfa_offset 32
.Ltmp140:
	movq	%rax, %r14
	movq	(%rbx), %rdi
	testq	%rdi, %rdi
	je	.LBB23_7
# %bb.6:
	callq	_ZdlPv
.LBB23_7:                               # %_ZNSt12_Vector_baseISt6vectorIS0_IiSaIiEESaIS2_EESaIS4_EED2Ev.exit
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end23:
	.size	_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2ERKS5_, .Lfunc_end23-_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2ERKS5_
	.cfi_endproc
	.section	.gcc_except_table._ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2ERKS5_,"aG",@progbits,_ZNSt6vectorIS_IS_IiSaIiEESaIS1_EESaIS3_EEC2ERKS5_,comdat
	.p2align	2, 0x0
GCC_except_table23:
.Lexception7:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end7-.Lcst_begin7
.Lcst_begin7:
	.uleb128 .Lfunc_begin7-.Lfunc_begin7    # >> Call Site 1 <<
	.uleb128 .Ltmp138-.Lfunc_begin7         #   Call between .Lfunc_begin7 and .Ltmp138
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp138-.Lfunc_begin7         # >> Call Site 2 <<
	.uleb128 .Ltmp139-.Ltmp138              #   Call between .Ltmp138 and .Ltmp139
	.uleb128 .Ltmp140-.Lfunc_begin7         #     jumps to .Ltmp140
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp139-.Lfunc_begin7         # >> Call Site 3 <<
	.uleb128 .Lfunc_end23-.Ltmp139          #   Call between .Ltmp139 and .Lfunc_end23
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end7:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIS2_IiSaIiEESaIS4_EES2_IS6_SaIS6_EEEEPS6_ET0_T_SE_SD_,"axG",@progbits,_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIS2_IiSaIiEESaIS4_EES2_IS6_SaIS6_EEEEPS6_ET0_T_SE_SD_,comdat
	.weak	_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIS2_IiSaIiEESaIS4_EES2_IS6_SaIS6_EEEEPS6_ET0_T_SE_SD_ # -- Begin function _ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIS2_IiSaIiEESaIS4_EES2_IS6_SaIS6_EEEEPS6_ET0_T_SE_SD_
	.type	_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIS2_IiSaIiEESaIS4_EES2_IS6_SaIS6_EEEEPS6_ET0_T_SE_SD_,@function
_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIS2_IiSaIiEESaIS4_EES2_IS6_SaIS6_EEEEPS6_ET0_T_SE_SD_: # @_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIS2_IiSaIiEESaIS4_EES2_IS6_SaIS6_EEEEPS6_ET0_T_SE_SD_
.Lfunc_begin8:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception8
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	pushq	%rax
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rdx, %rbx
	cmpq	%rsi, %rdi
	je	.LBB24_5
# %bb.1:                                # %.lr.ph.preheader
	movq	%rsi, %r14
	movq	%rdi, %r15
	xorl	%r12d, %r12d
.LBB24_2:                               # %.lr.ph
                                        # =>This Inner Loop Header: Depth=1
	leaq	(%rbx,%r12), %rdi
	leaq	(%r15,%r12), %rsi
.Ltmp141:
	callq	_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2ERKS3_
.Ltmp142:
# %bb.3:                                # %_ZSt10_ConstructISt6vectorIS0_IiSaIiEESaIS2_EEJRKS4_EEvPT_DpOT0_.exit
                                        #   in Loop: Header=BB24_2 Depth=1
	leaq	(%r15,%r12), %rax
	addq	$24, %rax
	addq	$24, %r12
	cmpq	%r14, %rax
	jne	.LBB24_2
# %bb.4:                                # %._crit_edge.loopexit
	addq	%r12, %rbx
.LBB24_5:                               # %._crit_edge
	movq	%rbx, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB24_6:
	.cfi_def_cfa_offset 48
.Ltmp143:
	movq	%rax, %rdi
	callq	__cxa_begin_catch
	testq	%r12, %r12
	je	.LBB24_8
.LBB24_7:                               # %.lr.ph.i.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rbx, %rdi
	callq	_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev
	addq	$24, %rbx
	addq	$-24, %r12
	jne	.LBB24_7
.LBB24_8:                               # %_ZSt8_DestroyIPSt6vectorIS0_IiSaIiEESaIS2_EEEvT_S6_.exit
.Ltmp144:
	callq	__cxa_rethrow
.Ltmp145:
# %bb.12:
.LBB24_9:
.Ltmp146:
	movq	%rax, %rbx
.Ltmp147:
	callq	__cxa_end_catch
.Ltmp148:
# %bb.10:
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.LBB24_11:
.Ltmp149:
	movq	%rax, %rdi
	callq	__clang_call_terminate
.Lfunc_end24:
	.size	_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIS2_IiSaIiEESaIS4_EES2_IS6_SaIS6_EEEEPS6_ET0_T_SE_SD_, .Lfunc_end24-_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIS2_IiSaIiEESaIS4_EES2_IS6_SaIS6_EEEEPS6_ET0_T_SE_SD_
	.cfi_endproc
	.section	.gcc_except_table._ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIS2_IiSaIiEESaIS4_EES2_IS6_SaIS6_EEEEPS6_ET0_T_SE_SD_,"aG",@progbits,_ZSt16__do_uninit_copyIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIS2_IiSaIiEESaIS4_EES2_IS6_SaIS6_EEEEPS6_ET0_T_SE_SD_,comdat
	.p2align	2, 0x0
GCC_except_table24:
.Lexception8:
	.byte	255                             # @LPStart Encoding = omit
	.byte	3                               # @TType Encoding = udata4
	.uleb128 .Lttbase3-.Lttbaseref3
.Lttbaseref3:
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end8-.Lcst_begin8
.Lcst_begin8:
	.uleb128 .Ltmp141-.Lfunc_begin8         # >> Call Site 1 <<
	.uleb128 .Ltmp142-.Ltmp141              #   Call between .Ltmp141 and .Ltmp142
	.uleb128 .Ltmp143-.Lfunc_begin8         #     jumps to .Ltmp143
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp142-.Lfunc_begin8         # >> Call Site 2 <<
	.uleb128 .Ltmp144-.Ltmp142              #   Call between .Ltmp142 and .Ltmp144
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp144-.Lfunc_begin8         # >> Call Site 3 <<
	.uleb128 .Ltmp145-.Ltmp144              #   Call between .Ltmp144 and .Ltmp145
	.uleb128 .Ltmp146-.Lfunc_begin8         #     jumps to .Ltmp146
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp147-.Lfunc_begin8         # >> Call Site 4 <<
	.uleb128 .Ltmp148-.Ltmp147              #   Call between .Ltmp147 and .Ltmp148
	.uleb128 .Ltmp149-.Lfunc_begin8         #     jumps to .Ltmp149
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp148-.Lfunc_begin8         # >> Call Site 5 <<
	.uleb128 .Lfunc_end24-.Ltmp148          #   Call between .Ltmp148 and .Lfunc_end24
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end8:
	.byte	1                               # >> Action Record 1 <<
                                        #   Catch TypeInfo 1
	.byte	0                               #   No further actions
	.p2align	2, 0x0
                                        # >> Catch TypeInfos <<
	.long	0                               # TypeInfo 1
.Lttbase3:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_,"axG",@progbits,_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_,comdat
	.weak	_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_ # -- Begin function _ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_
	.p2align	1, 0x90
	.type	_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_,@function
_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_: # @_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_
	.cfi_startproc
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, (%rsp)                    # 8-byte Spill
	movq	%rsi, %r12
	movq	%rdi, %rbx
	movl	$1, %esi
	movl	$.L.str.7, %edx
	callq	_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc
	movq	(%rbx), %r13
	movq	8(%rbx), %r15
	movq	%r12, 8(%rsp)                   # 8-byte Spill
	subq	%r13, %r12
	movq	%r12, %r14
	sarq	$2, %r14
	testq	%rax, %rax
	movq	%rax, 16(%rsp)                  # 8-byte Spill
	je	.LBB25_1
# %bb.2:
	movq	%rbx, %rdi
	movq	%rax, %rsi
	xorl	%edx, %edx
	callq	_ZNSt15__new_allocatorIiE8allocateEmPKv
	movq	%rax, %rbp
	jmp	.LBB25_3
.LBB25_1:
	xorl	%ebp, %ebp
.LBB25_3:                               # %_ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm.exit
	movq	(%rsp), %rax                    # 8-byte Reload
	movl	(%rax), %eax
	movl	%eax, (%rbp,%r14,4)
	testq	%r12, %r12
	jle	.LBB25_5
# %bb.4:
	movq	%rbp, %rdi
	movq	%r13, %rsi
	movq	%r12, %rdx
	callq	memmove@PLT
.LBB25_5:                               # %_ZNSt6vectorIiSaIiEE11_S_relocateEPiS2_S2_RS0_.exit
	addq	%rbp, %r12
	addq	$4, %r12
	movq	8(%rsp), %rsi                   # 8-byte Reload
	subq	%rsi, %r15
	testq	%r15, %r15
	jle	.LBB25_7
# %bb.6:
	movq	%r12, %rdi
	movq	%r15, %rdx
	callq	memmove@PLT
.LBB25_7:                               # %_ZNSt6vectorIiSaIiEE11_S_relocateEPiS2_S2_RS0_.exit16
	testq	%r13, %r13
	je	.LBB25_9
# %bb.8:
	movq	%r13, %rdi
	callq	_ZdlPv
.LBB25_9:                               # %_ZNSt12_Vector_baseIiSaIiEE13_M_deallocateEPim.exit
	addq	%r15, %r12
	movq	%rbp, (%rbx)
	movq	%r12, 8(%rbx)
	movq	16(%rsp), %rax                  # 8-byte Reload
	leaq	(,%rax,4), %rax
	addq	%rbp, %rax
	movq	%rax, 16(%rbx)
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end25:
	.size	_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_, .Lfunc_end25-_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc,"axG",@progbits,_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc,comdat
	.weak	_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc # -- Begin function _ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc
	.p2align	1, 0x90
	.type	_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc,@function
_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc: # @_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc
	.cfi_startproc
# %bb.0:
	movabsq	$2305843009213693951, %rcx      # imm = 0x1FFFFFFFFFFFFFFF
	movq	8(%rdi), %r8
	subq	(%rdi), %r8
	sarq	$2, %r8
	movq	%rcx, %rax
	subq	%r8, %rax
	cmpq	%rsi, %rax
	jb	.LBB26_2
# %bb.1:
	cmpq	%rsi, %r8
	cmovaq	%r8, %rsi
	leaq	(%rsi,%r8), %rax
	cmpq	%rcx, %rax
	cmovaeq	%rcx, %rax
	addq	%r8, %rsi
	cmovbq	%rcx, %rax
	retq
.LBB26_2:
	pushq	%rax
	.cfi_def_cfa_offset 16
	movq	%rdx, %rdi
	callq	_ZSt20__throw_length_errorPKc
.Lfunc_end26:
	.size	_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc, .Lfunc_end26-_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc
	.cfi_endproc
                                        # -- End function
	.text
	.p2align	4, 0x90                         # -- Begin function __hip_module_ctor
	.type	__hip_module_ctor,@function
__hip_module_ctor:                      # @__hip_module_ctor
	.cfi_startproc
# %bb.0:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	subq	$32, %rsp
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -16
	movq	__hip_gpubin_handle(%rip), %rbx
	testq	%rbx, %rbx
	jne	.LBB27_2
# %bb.1:
	movl	$__hip_fatbin_wrapper, %edi
	callq	__hipRegisterFatBinary
	movq	%rax, %rbx
	movq	%rax, __hip_gpubin_handle(%rip)
.LBB27_2:
	xorps	%xmm0, %xmm0
	movups	%xmm0, 16(%rsp)
	movups	%xmm0, (%rsp)
	movl	$_Z10calcNearbyv, %esi
	movl	$.L__unnamed_1, %edx
	movl	$.L__unnamed_1, %ecx
	movq	%rbx, %rdi
	movl	$-1, %r8d
	xorl	%r9d, %r9d
	callq	__hipRegisterFunction
	xorps	%xmm0, %xmm0
	movups	%xmm0, 16(%rsp)
	movups	%xmm0, (%rsp)
	movl	$_Z11calcOverallv, %esi
	movl	$.L__unnamed_2, %edx
	movl	$.L__unnamed_2, %ecx
	movq	%rbx, %rdi
	movl	$-1, %r8d
	xorl	%r9d, %r9d
	callq	__hipRegisterFunction
	movl	$x, %esi
	movl	$x.managed, %edx
	movl	$.L__unnamed_3, %ecx
	movl	$8, %r8d
	movq	%rbx, %rdi
	movl	$8, %r9d
	callq	__hipRegisterManagedVar
	movl	$y, %esi
	movl	$y.managed, %edx
	movl	$.L__unnamed_4, %ecx
	movl	$8, %r8d
	movq	%rbx, %rdi
	movl	$8, %r9d
	callq	__hipRegisterManagedVar
	movl	$z, %esi
	movl	$z.managed, %edx
	movl	$.L__unnamed_5, %ecx
	movl	$8, %r8d
	movq	%rbx, %rdi
	movl	$8, %r9d
	callq	__hipRegisterManagedVar
	movl	$gpuTotal, %esi
	movl	$gpuTotal.managed, %edx
	movl	$.L__unnamed_6, %ecx
	movl	$4, %r8d
	movq	%rbx, %rdi
	movl	$4, %r9d
	callq	__hipRegisterManagedVar
	movl	$indices, %esi
	movl	$indices.managed, %edx
	movl	$.L__unnamed_7, %ecx
	movl	$8, %r8d
	movq	%rbx, %rdi
	movl	$8, %r9d
	callq	__hipRegisterManagedVar
	movl	$lens, %esi
	movl	$lens.managed, %edx
	movl	$.L__unnamed_8, %ecx
	movl	$8, %r8d
	movq	%rbx, %rdi
	movl	$8, %r9d
	callq	__hipRegisterManagedVar
	movl	$xStep, %esi
	movl	$xStep.managed, %edx
	movl	$.L__unnamed_9, %ecx
	movl	$4, %r8d
	movq	%rbx, %rdi
	movl	$4, %r9d
	callq	__hipRegisterManagedVar
	movl	$yStep, %esi
	movl	$yStep.managed, %edx
	movl	$.L__unnamed_10, %ecx
	movl	$4, %r8d
	movq	%rbx, %rdi
	movl	$4, %r9d
	callq	__hipRegisterManagedVar
	movl	$zStep, %esi
	movl	$zStep.managed, %edx
	movl	$.L__unnamed_11, %ecx
	movl	$4, %r8d
	movq	%rbx, %rdi
	movl	$4, %r9d
	callq	__hipRegisterManagedVar
	movl	$counter, %esi
	movl	$counter.managed, %edx
	movl	$.L__unnamed_12, %ecx
	movl	$4, %r8d
	movq	%rbx, %rdi
	movl	$4, %r9d
	callq	__hipRegisterManagedVar
	movl	$__hip_module_dtor, %edi
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	atexit                          # TAILCALL
.Lfunc_end27:
	.size	__hip_module_ctor, .Lfunc_end27-__hip_module_ctor
	.cfi_endproc
                                        # -- End function
	.p2align	4, 0x90                         # -- Begin function __hip_module_dtor
	.type	__hip_module_dtor,@function
__hip_module_dtor:                      # @__hip_module_dtor
	.cfi_startproc
# %bb.0:
	movq	__hip_gpubin_handle(%rip), %rdi
	testq	%rdi, %rdi
	je	.LBB28_2
# %bb.1:
	pushq	%rax
	.cfi_def_cfa_offset 16
	callq	__hipUnregisterFatBinary
	movq	$0, __hip_gpubin_handle(%rip)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
.LBB28_2:
	retq
.Lfunc_end28:
	.size	__hip_module_dtor, .Lfunc_end28-__hip_module_dtor
	.cfi_endproc
                                        # -- End function
	.type	x.managed,@object               # @x.managed
	.local	x.managed
	.comm	x.managed,8,8
	.type	y.managed,@object               # @y.managed
	.local	y.managed
	.comm	y.managed,8,8
	.type	z.managed,@object               # @z.managed
	.local	z.managed
	.comm	z.managed,8,8
	.type	gpuTotal.managed,@object        # @gpuTotal.managed
	.local	gpuTotal.managed
	.comm	gpuTotal.managed,4,4
	.type	indices.managed,@object         # @indices.managed
	.local	indices.managed
	.comm	indices.managed,8,8
	.type	lens.managed,@object            # @lens.managed
	.local	lens.managed
	.comm	lens.managed,8,8
	.type	xStep.managed,@object           # @xStep.managed
	.local	xStep.managed
	.comm	xStep.managed,4,4
	.type	yStep.managed,@object           # @yStep.managed
	.local	yStep.managed
	.comm	yStep.managed,4,4
	.type	zStep.managed,@object           # @zStep.managed
	.local	zStep.managed
	.comm	zStep.managed,4,4
	.type	counter.managed,@object         # @counter.managed
	.local	counter.managed
	.comm	counter.managed,4,4
	.type	_Z10calcNearbyv,@object         # @_Z10calcNearbyv
	.section	.rodata,"a",@progbits
	.globl	_Z10calcNearbyv
	.p2align	3, 0x0
_Z10calcNearbyv:
	.quad	_Z25__device_stub__calcNearbyv
	.size	_Z10calcNearbyv, 8

	.type	_Z11calcOverallv,@object        # @_Z11calcOverallv
	.globl	_Z11calcOverallv
	.p2align	3, 0x0
_Z11calcOverallv:
	.quad	_Z26__device_stub__calcOverallv
	.size	_Z11calcOverallv, 8

	.type	.L.str,@object                  # @.str
	.section	.rodata.str1.1,"aMS",@progbits,1
.L.str:
	.asciz	"Reading file"
	.size	.L.str, 13

	.type	.L.str.1,@object                # @.str.1
.L.str.1:
	.asciz	" \t"
	.size	.L.str.1, 3

	.type	.L.str.2,@object                # @.str.2
.L.str.2:
	.asciz	"-0123456789"
	.size	.L.str.2, 12

	.type	.L.str.3,@object                # @.str.3
.L.str.3:
	.asciz	"Calculating grid size"
	.size	.L.str.3, 22

	.type	.L.str.4,@object                # @.str.4
.L.str.4:
	.asciz	"Assigning points"
	.size	.L.str.4, 17

	.type	.L.str.5,@object                # @.str.5
.L.str.5:
	.asciz	"Done"
	.size	.L.str.5, 5

	.type	.L.str.6,@object                # @.str.6
.L.str.6:
	.asciz	"Sending to GPU"
	.size	.L.str.6, 15

	.type	.L.str.7,@object                # @.str.7
.L.str.7:
	.asciz	"vector::_M_realloc_insert"
	.size	.L.str.7, 26

	.type	.L.str.8,@object                # @.str.8
.L.str.8:
	.asciz	"cannot create std::vector larger than max_size()"
	.size	.L.str.8, 49

	.type	.L__unnamed_1,@object           # @0
.L__unnamed_1:
	.asciz	"_Z10calcNearbyv"
	.size	.L__unnamed_1, 16

	.type	.L__unnamed_2,@object           # @1
.L__unnamed_2:
	.asciz	"_Z11calcOverallv"
	.size	.L__unnamed_2, 17

	.type	.L__unnamed_3,@object           # @2
.L__unnamed_3:
	.asciz	"x"
	.size	.L__unnamed_3, 2

	.type	x,@object                       # @x
	.local	x
	.comm	x,8,8
	.type	.L__unnamed_4,@object           # @3
.L__unnamed_4:
	.asciz	"y"
	.size	.L__unnamed_4, 2

	.type	y,@object                       # @y
	.local	y
	.comm	y,8,8
	.type	.L__unnamed_5,@object           # @4
.L__unnamed_5:
	.asciz	"z"
	.size	.L__unnamed_5, 2

	.type	z,@object                       # @z
	.local	z
	.comm	z,8,8
	.type	.L__unnamed_6,@object           # @5
.L__unnamed_6:
	.asciz	"gpuTotal"
	.size	.L__unnamed_6, 9

	.type	gpuTotal,@object                # @gpuTotal
	.local	gpuTotal
	.comm	gpuTotal,8,8
	.type	.L__unnamed_7,@object           # @6
.L__unnamed_7:
	.asciz	"indices"
	.size	.L__unnamed_7, 8

	.type	indices,@object                 # @indices
	.local	indices
	.comm	indices,8,8
	.type	.L__unnamed_8,@object           # @7
.L__unnamed_8:
	.asciz	"lens"
	.size	.L__unnamed_8, 5

	.type	lens,@object                    # @lens
	.local	lens
	.comm	lens,8,8
	.type	.L__unnamed_9,@object           # @8
.L__unnamed_9:
	.asciz	"xStep"
	.size	.L__unnamed_9, 6

	.type	xStep,@object                   # @xStep
	.local	xStep
	.comm	xStep,8,8
	.type	.L__unnamed_10,@object          # @9
.L__unnamed_10:
	.asciz	"yStep"
	.size	.L__unnamed_10, 6

	.type	yStep,@object                   # @yStep
	.local	yStep
	.comm	yStep,8,8
	.type	.L__unnamed_11,@object          # @10
.L__unnamed_11:
	.asciz	"zStep"
	.size	.L__unnamed_11, 6

	.type	zStep,@object                   # @zStep
	.local	zStep
	.comm	zStep,8,8
	.type	.L__unnamed_12,@object          # @11
.L__unnamed_12:
	.asciz	"counter"
	.size	.L__unnamed_12, 8

	.type	counter,@object                 # @counter
	.local	counter
	.comm	counter,8,8
	.type	__hip_fatbin_wrapper,@object    # @__hip_fatbin_wrapper
	.section	.hipFatBinSegment,"a",@progbits
	.p2align	3, 0x0
__hip_fatbin_wrapper:
	.long	1212764230                      # 0x48495046
	.long	1                               # 0x1
	.quad	__hip_fatbin
	.quad	0
	.size	__hip_fatbin_wrapper, 24

	.type	__hip_gpubin_handle,@object     # @__hip_gpubin_handle
	.local	__hip_gpubin_handle
	.comm	__hip_gpubin_handle,8,8
	.section	.init_array,"aw",@init_array
	.p2align	3, 0x0
	.quad	__hip_module_ctor
	.type	__hip_cuid_,@object             # @__hip_cuid_
	.bss
	.globl	__hip_cuid_
__hip_cuid_:
	.byte	0                               # 0x0
	.size	__hip_cuid_, 1

	.ident	"AMD clang version 18.0.0git (https://github.com/RadeonOpenCompute/llvm-project roc-6.3.2 25012 e5bf7e55c91490b07c49d8960fa7983d864936c4)"
	.section	".note.GNU-stack","",@progbits
	.addrsig
	.addrsig_sym _Z25__device_stub__calcNearbyv
	.addrsig_sym _Z26__device_stub__calcOverallv
	.addrsig_sym __gxx_personality_v0
	.addrsig_sym __hip_module_ctor
	.addrsig_sym __hip_module_dtor
	.addrsig_sym _Unwind_Resume
	.addrsig_sym x.managed
	.addrsig_sym y.managed
	.addrsig_sym z.managed
	.addrsig_sym gpuTotal.managed
	.addrsig_sym indices.managed
	.addrsig_sym lens.managed
	.addrsig_sym xStep.managed
	.addrsig_sym yStep.managed
	.addrsig_sym zStep.managed
	.addrsig_sym counter.managed
	.addrsig_sym _Z10calcNearbyv
	.addrsig_sym _Z11calcOverallv
	.addrsig_sym _ZSt4cout
	.addrsig_sym x
	.addrsig_sym y
	.addrsig_sym z
	.addrsig_sym gpuTotal
	.addrsig_sym indices
	.addrsig_sym lens
	.addrsig_sym xStep
	.addrsig_sym yStep
	.addrsig_sym zStep
	.addrsig_sym counter
	.addrsig_sym __hip_fatbin
	.addrsig_sym __hip_fatbin_wrapper
	.addrsig_sym __hip_cuid_

	.text
	.amdgcn_target "amdgcn-amd-amdhsa--gfx1100"
	.protected	_Z10calcNearbyv         ; -- Begin function _Z10calcNearbyv
	.globl	_Z10calcNearbyv
	.p2align	8
	.type	_Z10calcNearbyv,@function
_Z10calcNearbyv:                        ; @_Z10calcNearbyv
; %bb.0:
	v_rsq_f64_e32 v[6:7], 0x7ff80000
	v_and_b32_e32 v3, 0x3ff, v0
	v_bfe_u32 v4, v0, 10, 10
	v_bfe_u32 v0, v0, 20, 10
	v_mov_b32_e32 v12, 0
	s_mov_b32 s2, -1
	s_getpc_b64 s[18:19]
	s_add_u32 s18, s18, counter@rel32@lo+4
	s_addc_u32 s19, s19, counter@rel32@hi+12
	v_mad_u64_u32 v[1:2], null, s13, 10, v[3:4]
	v_mad_u64_u32 v[2:3], null, s14, 10, v[4:5]
	s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_1) | instid1(VALU_DEP_3)
	v_mad_u64_u32 v[3:4], null, s15, 10, v[0:1]
	v_mul_lo_u32 v0, 0x2710, v1
	v_mul_lo_u32 v4, 0x64, v2
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_add3_u32 v4, v4, v3, v0
	v_mov_b32_e32 v0, 0
	v_ashrrev_i32_e32 v5, 31, v4
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(TRANS32_DEP_1)
	v_lshlrev_b64 v[4:5], 2, v[4:5]
	v_cmp_class_f64_e64 s0, v[6:7], 0x180
	s_delay_alu instid0(VALU_DEP_1)
	v_cndmask_b32_e64 v7, v7, 0xfff80000, s0
	v_cndmask_b32_e64 v6, v6, 0, s0
.LBB0_1:                                ; %.preheader64
                                        ; =>This Loop Header: Depth=1
                                        ;     Child Loop BB0_2 Depth 2
                                        ;       Child Loop BB0_3 Depth 3
                                        ;         Child Loop BB0_7 Depth 4
                                        ;           Child Loop BB0_9 Depth 5
                                        ;             Child Loop BB0_11 Depth 6
	v_add_nc_u32_e32 v8, s2, v1
	s_mov_b32 s4, -1
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_cmp_gt_i32_e64 s0, 0, v8
	v_cmp_lt_u32_e32 vcc_lo, 0x63, v8
	s_xor_b32 s3, s0, -1
.LBB0_2:                                ; %.preheader63
                                        ;   Parent Loop BB0_1 Depth=1
                                        ; =>  This Loop Header: Depth=2
                                        ;       Child Loop BB0_3 Depth 3
                                        ;         Child Loop BB0_7 Depth 4
                                        ;           Child Loop BB0_9 Depth 5
                                        ;             Child Loop BB0_11 Depth 6
	v_add_nc_u32_e32 v8, s4, v2
	s_mov_b32 s5, -1
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_cmp_lt_i32_e64 s1, -1, v8
	v_cmp_lt_u32_e64 s0, 0x63, v8
	s_and_b32 s6, s3, s1
.LBB0_3:                                ;   Parent Loop BB0_1 Depth=1
                                        ;     Parent Loop BB0_2 Depth=2
                                        ; =>    This Loop Header: Depth=3
                                        ;         Child Loop BB0_7 Depth 4
                                        ;           Child Loop BB0_9 Depth 5
                                        ;             Child Loop BB0_11 Depth 6
	s_delay_alu instid0(SALU_CYCLE_1)
	s_and_saveexec_b32 s7, s6
	s_cbranch_execz .LBB0_18
; %bb.4:                                ;   in Loop: Header=BB0_3 Depth=3
	v_add_nc_u32_e32 v8, s5, v3
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_cmp_gt_i32_e64 s1, 0, v8
	s_or_b32 s8, vcc_lo, s1
	v_cmp_gt_i32_e64 s1, 0x64, v8
	s_or_b32 s8, s0, s8
	s_delay_alu instid0(SALU_CYCLE_1)
	s_xor_b32 s8, s8, -1
	s_delay_alu instid0(VALU_DEP_1) | instid1(SALU_CYCLE_1)
	s_and_b32 s1, s1, s8
	s_delay_alu instid0(SALU_CYCLE_1)
	s_and_saveexec_b32 s8, s1
	s_cbranch_execz .LBB0_17
; %bb.5:                                ; %.preheader62
                                        ;   in Loop: Header=BB0_3 Depth=3
	s_getpc_b64 s[10:11]
	s_add_u32 s10, s10, lens@rel32@lo+4
	s_addc_u32 s11, s11, lens@rel32@hi+12
	s_mov_b32 s9, exec_lo
	global_load_b64 v[8:9], v0, s[10:11]
	s_waitcnt vmcnt(0)
	global_load_b64 v[8:9], v[8:9], off
	s_waitcnt vmcnt(0)
	v_add_co_u32 v8, s1, v8, v4
	s_delay_alu instid0(VALU_DEP_1)
	v_add_co_ci_u32_e64 v9, s1, v9, v5, s1
	flat_load_b32 v8, v[8:9]
	s_waitcnt vmcnt(0) lgkmcnt(0)
	v_cmpx_lt_i32_e32 0, v8
	s_cbranch_execz .LBB0_16
; %bb.6:                                ; %.preheader.preheader
                                        ;   in Loop: Header=BB0_3 Depth=3
	s_mov_b32 s10, 0
	s_mov_b32 s11, 0
.LBB0_7:                                ; %.preheader
                                        ;   Parent Loop BB0_1 Depth=1
                                        ;     Parent Loop BB0_2 Depth=2
                                        ;       Parent Loop BB0_3 Depth=3
                                        ; =>      This Loop Header: Depth=4
                                        ;           Child Loop BB0_9 Depth 5
                                        ;             Child Loop BB0_11 Depth 6
	s_mov_b32 s12, exec_lo
	v_cmpx_lt_i32_e32 0, v8
	s_cbranch_execz .LBB0_14
; %bb.8:                                ; %.lr.ph.preheader
                                        ;   in Loop: Header=BB0_7 Depth=4
	s_mov_b32 s13, 0
	s_mov_b32 s14, 0
.LBB0_9:                                ; %.lr.ph
                                        ;   Parent Loop BB0_1 Depth=1
                                        ;     Parent Loop BB0_2 Depth=2
                                        ;       Parent Loop BB0_3 Depth=3
                                        ;         Parent Loop BB0_7 Depth=4
                                        ; =>        This Loop Header: Depth=5
                                        ;             Child Loop BB0_11 Depth 6
	s_mov_b32 s16, exec_lo
	s_mov_b32 s15, exec_lo
	v_mbcnt_lo_u32_b32 v8, s16, 0
	s_delay_alu instid0(VALU_DEP_1)
	v_cmpx_eq_u32_e32 0, v8
	s_cbranch_execz .LBB0_12
; %bb.10:                               ;   in Loop: Header=BB0_9 Depth=5
	global_load_b64 v[8:9], v0, s[18:19]
	s_bcnt1_i32_b32 s1, s16
	s_mov_b32 s16, 0
	v_cvt_f32_ubyte0_e32 v13, s1
	s_waitcnt vmcnt(0)
	global_load_b32 v11, v[8:9], off
.LBB0_11:                               ; %atomicrmw.start85
                                        ;   Parent Loop BB0_1 Depth=1
                                        ;     Parent Loop BB0_2 Depth=2
                                        ;       Parent Loop BB0_3 Depth=3
                                        ;         Parent Loop BB0_7 Depth=4
                                        ;           Parent Loop BB0_9 Depth=5
                                        ; =>          This Inner Loop Header: Depth=6
	s_waitcnt vmcnt(0)
	v_add_f32_e32 v10, v11, v13
	global_atomic_cmpswap_b32 v10, v[8:9], v[10:11], off glc
	s_waitcnt vmcnt(0)
	v_cmp_eq_u32_e64 s1, v10, v11
	v_mov_b32_e32 v11, v10
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(SALU_CYCLE_1)
	s_or_b32 s16, s1, s16
	s_and_not1_b32 exec_lo, exec_lo, s16
	s_cbranch_execnz .LBB0_11
.LBB0_12:                               ; %Flow94
                                        ;   in Loop: Header=BB0_9 Depth=5
	s_or_b32 exec_lo, exec_lo, s15
	s_getpc_b64 s[16:17]
	s_add_u32 s16, s16, lens@rel32@lo+4
	s_addc_u32 s17, s17, lens@rel32@hi+12
	s_add_i32 s14, s14, 1
	global_load_b64 v[8:9], v0, s[16:17]
	s_waitcnt vmcnt(0)
	global_load_b64 v[8:9], v[8:9], off
	s_waitcnt vmcnt(0)
	v_add_co_u32 v8, s1, v8, v4
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_1)
	v_add_co_ci_u32_e64 v9, s1, v9, v5, s1
	flat_load_b32 v8, v[8:9]
	v_cvt_f64_f32_e32 v[9:10], v12
	v_add_f64 v[9:10], v[6:7], v[9:10]
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_1)
	v_cvt_f32_f64_e32 v12, v[9:10]
	s_waitcnt vmcnt(0) lgkmcnt(0)
	v_cmp_ge_i32_e64 s1, s14, v8
	s_or_b32 s13, s1, s13
	s_delay_alu instid0(SALU_CYCLE_1)
	s_and_not1_b32 exec_lo, exec_lo, s13
	s_cbranch_execnz .LBB0_9
; %bb.13:                               ; %Flow95
                                        ;   in Loop: Header=BB0_7 Depth=4
	s_or_b32 exec_lo, exec_lo, s13
.LBB0_14:                               ; %Flow96
                                        ;   in Loop: Header=BB0_7 Depth=4
	s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1)
	s_or_b32 exec_lo, exec_lo, s12
	s_add_i32 s11, s11, 1
	v_cmp_ge_i32_e64 s1, s11, v8
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(SALU_CYCLE_1)
	s_or_b32 s10, s1, s10
	s_and_not1_b32 exec_lo, exec_lo, s10
	s_cbranch_execnz .LBB0_7
; %bb.15:                               ; %Flow97
                                        ;   in Loop: Header=BB0_3 Depth=3
	s_or_b32 exec_lo, exec_lo, s10
.LBB0_16:                               ; %Flow98
                                        ;   in Loop: Header=BB0_3 Depth=3
	s_delay_alu instid0(SALU_CYCLE_1)
	s_or_b32 exec_lo, exec_lo, s9
.LBB0_17:                               ; %Flow99
                                        ;   in Loop: Header=BB0_3 Depth=3
	s_delay_alu instid0(SALU_CYCLE_1)
	s_or_b32 exec_lo, exec_lo, s8
.LBB0_18:                               ; %.loopexit
                                        ;   in Loop: Header=BB0_3 Depth=3
	s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1)
	s_or_b32 exec_lo, exec_lo, s7
	s_add_i32 s5, s5, 1
	s_cmp_eq_u32 s5, 2
	s_cbranch_scc0 .LBB0_3
; %bb.19:                               ;   in Loop: Header=BB0_2 Depth=2
	s_add_i32 s4, s4, 1
	s_delay_alu instid0(SALU_CYCLE_1)
	s_cmp_eq_u32 s4, 2
	s_cbranch_scc0 .LBB0_2
; %bb.20:                               ;   in Loop: Header=BB0_1 Depth=1
	s_add_i32 s2, s2, 1
	s_delay_alu instid0(SALU_CYCLE_1)
	s_cmp_eq_u32 s2, 2
	s_cbranch_scc0 .LBB0_1
; %bb.21:
	v_mov_b32_e32 v0, 0
	s_getpc_b64 s[2:3]
	s_add_u32 s2, s2, gpuTotal@rel32@lo+4
	s_addc_u32 s3, s3, gpuTotal@rel32@hi+12
	v_bfrev_b32_e32 v4, 1
	s_mov_b32 s0, exec_lo
	global_load_b64 v[0:1], v0, s[2:3]
.LBB0_22:                               ; %ComputeLoop
                                        ; =>This Inner Loop Header: Depth=1
	s_ctz_i32_b32 s1, s0
	s_delay_alu instid0(SALU_CYCLE_1) | instskip(SKIP_1) | instid1(SALU_CYCLE_1)
	v_readlane_b32 s2, v12, s1
	s_lshl_b32 s1, 1, s1
	s_and_not1_b32 s0, s0, s1
	s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	s_cmp_lg_u32 s0, 0
	v_add_f32_e32 v4, s2, v4
	s_cbranch_scc1 .LBB0_22
; %bb.23:                               ; %ComputeEnd
	v_mbcnt_lo_u32_b32 v2, exec_lo, 0
	s_mov_b32 s0, 0
	s_mov_b32 s1, exec_lo
	s_delay_alu instid0(VALU_DEP_1)
	v_cmpx_eq_u32_e32 0, v2
	s_xor_b32 s1, exec_lo, s1
	s_cbranch_execz .LBB0_26
; %bb.24:
	s_waitcnt vmcnt(0)
	global_load_b32 v3, v[0:1], off
.LBB0_25:                               ; %atomicrmw.start
                                        ; =>This Inner Loop Header: Depth=1
	s_waitcnt vmcnt(0)
	v_add_f32_e32 v2, v3, v4
	global_atomic_cmpswap_b32 v2, v[0:1], v[2:3], off glc
	s_waitcnt vmcnt(0)
	v_cmp_eq_u32_e32 vcc_lo, v2, v3
	v_mov_b32_e32 v3, v2
	s_or_b32 s0, vcc_lo, s0
	s_delay_alu instid0(SALU_CYCLE_1)
	s_and_not1_b32 exec_lo, exec_lo, s0
	s_cbranch_execnz .LBB0_25
.LBB0_26:
	s_endpgm
	.section	.rodata,"a",@progbits
	.p2align	6, 0x0
	.amdhsa_kernel _Z10calcNearbyv
		.amdhsa_group_segment_fixed_size 0
		.amdhsa_private_segment_fixed_size 0
		.amdhsa_kernarg_size 0
		.amdhsa_user_sgpr_count 13
		.amdhsa_user_sgpr_dispatch_ptr 0
		.amdhsa_user_sgpr_queue_ptr 0
		.amdhsa_user_sgpr_kernarg_segment_ptr 0
		.amdhsa_user_sgpr_dispatch_id 0
		.amdhsa_user_sgpr_private_segment_size 0
		.amdhsa_wavefront_size32 1
		.amdhsa_uses_dynamic_stack 0
		.amdhsa_enable_private_segment 0
		.amdhsa_system_sgpr_workgroup_id_x 1
		.amdhsa_system_sgpr_workgroup_id_y 1
		.amdhsa_system_sgpr_workgroup_id_z 1
		.amdhsa_system_sgpr_workgroup_info 0
		.amdhsa_system_vgpr_workitem_id 2
		.amdhsa_next_free_vgpr 14
		.amdhsa_next_free_sgpr 20
		.amdhsa_float_round_mode_32 0
		.amdhsa_float_round_mode_16_64 0
		.amdhsa_float_denorm_mode_32 3
		.amdhsa_float_denorm_mode_16_64 3
		.amdhsa_dx10_clamp 1
		.amdhsa_ieee_mode 1
		.amdhsa_fp16_overflow 0
		.amdhsa_workgroup_processor_mode 1
		.amdhsa_memory_ordered 1
		.amdhsa_forward_progress 0
		.amdhsa_shared_vgpr_count 0
		.amdhsa_exception_fp_ieee_invalid_op 0
		.amdhsa_exception_fp_denorm_src 0
		.amdhsa_exception_fp_ieee_div_zero 0
		.amdhsa_exception_fp_ieee_overflow 0
		.amdhsa_exception_fp_ieee_underflow 0
		.amdhsa_exception_fp_ieee_inexact 0
		.amdhsa_exception_int_div_zero 0
	.end_amdhsa_kernel
	.text
.Lfunc_end0:
	.size	_Z10calcNearbyv, .Lfunc_end0-_Z10calcNearbyv
                                        ; -- End function
	.section	.AMDGPU.csdata,"",@progbits
; Kernel info:
; codeLenInByte = 960
; NumSgprs: 22
; NumVgprs: 14
; ScratchSize: 0
; MemoryBound: 0
; FloatMode: 240
; IeeeMode: 1
; LDSByteSize: 0 bytes/workgroup (compile time only)
; SGPRBlocks: 2
; VGPRBlocks: 1
; NumSGPRsForWavesPerEU: 22
; NumVGPRsForWavesPerEU: 14
; Occupancy: 16
; WaveLimiterHint : 1
; COMPUTE_PGM_RSRC2:SCRATCH_EN: 0
; COMPUTE_PGM_RSRC2:USER_SGPR: 13
; COMPUTE_PGM_RSRC2:TRAP_HANDLER: 0
; COMPUTE_PGM_RSRC2:TGID_X_EN: 1
; COMPUTE_PGM_RSRC2:TGID_Y_EN: 1
; COMPUTE_PGM_RSRC2:TGID_Z_EN: 1
; COMPUTE_PGM_RSRC2:TIDIG_COMP_CNT: 2
	.text
	.protected	_Z11calcOverallv        ; -- Begin function _Z11calcOverallv
	.globl	_Z11calcOverallv
	.p2align	8
	.type	_Z11calcOverallv,@function
_Z11calcOverallv:                       ; @_Z11calcOverallv
; %bb.0:
	v_and_b32_e32 v3, 0x3ff, v0
	v_bfe_u32 v4, v0, 10, 10
	v_bfe_u32 v0, v0, 20, 10
	s_getpc_b64 s[0:1]
	s_add_u32 s0, s0, lens@rel32@lo+4
	s_addc_u32 s1, s1, lens@rel32@hi+12
	s_getpc_b64 s[2:3]
	s_add_u32 s2, s2, xStep@rel32@lo+4
	s_addc_u32 s3, s3, xStep@rel32@hi+12
	s_getpc_b64 s[4:5]
	s_add_u32 s4, s4, yStep@rel32@lo+4
	s_addc_u32 s5, s5, yStep@rel32@hi+12
	v_mad_u64_u32 v[1:2], null, s13, 10, v[3:4]
	v_mad_u64_u32 v[2:3], null, s14, 10, v[4:5]
	s_getpc_b64 s[6:7]
	s_add_u32 s6, s6, zStep@rel32@lo+4
	s_addc_u32 s7, s7, zStep@rel32@hi+12
	s_load_b64 s[0:1], s[0:1], 0x0
	s_load_b64 s[2:3], s[2:3], 0x0
	s_load_b64 s[4:5], s[4:5], 0x0
	s_load_b64 s[6:7], s[6:7], 0x0
	s_mov_b32 s14, 0
	v_mad_u64_u32 v[3:4], null, s15, 10, v[0:1]
	v_mul_lo_u32 v0, 0x2710, v1
	v_mul_lo_u32 v4, 0x64, v2
	s_mov_b64 s[8:9], 0
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_2)
	v_add3_u32 v4, v4, v3, v0
	v_mov_b32_e32 v0, 0
	v_ashrrev_i32_e32 v5, 31, v4
	s_delay_alu instid0(VALU_DEP_1)
	v_lshlrev_b64 v[4:5], 2, v[4:5]
.LBB1_1:                                ; %.preheader37
                                        ; =>This Loop Header: Depth=1
                                        ;     Child Loop BB1_2 Depth 2
                                        ;       Child Loop BB1_3 Depth 3
	v_subrev_nc_u32_e32 v6, s14, v1
	s_mov_b64 s[10:11], s[8:9]
	s_mov_b32 s16, 0
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_sub_nc_u32_e32 v7, 0, v6
	v_max_i32_e32 v7, v6, v7
	v_cvt_f32_i32_e32 v6, v6
	s_delay_alu instid0(VALU_DEP_2)
	v_cmp_gt_u32_e32 vcc_lo, 2, v7
	s_xor_b32 s15, vcc_lo, -1
.LBB1_2:                                ; %.preheader
                                        ;   Parent Loop BB1_1 Depth=1
                                        ; =>  This Loop Header: Depth=2
                                        ;       Child Loop BB1_3 Depth 3
	v_subrev_nc_u32_e32 v7, s16, v2
	s_mov_b32 s17, 0
	s_mov_b64 s[12:13], s[10:11]
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_sub_nc_u32_e32 v8, 0, v7
	v_max_i32_e32 v8, v7, v8
	v_cvt_f32_i32_e32 v7, v7
	s_delay_alu instid0(VALU_DEP_2)
	v_cmp_lt_u32_e32 vcc_lo, 1, v8
	s_and_b32 s18, s15, vcc_lo
.LBB1_3:                                ;   Parent Loop BB1_1 Depth=1
                                        ;     Parent Loop BB1_2 Depth=2
                                        ; =>    This Inner Loop Header: Depth=3
	s_delay_alu instid0(SALU_CYCLE_1)
	s_and_saveexec_b32 s19, s18
	s_cbranch_execz .LBB1_7
; %bb.4:                                ;   in Loop: Header=BB1_3 Depth=3
	v_add_nc_u32_e32 v8, s17, v3
	s_mov_b32 s20, exec_lo
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_sub_nc_u32_e32 v9, 0, v8
	v_max_i32_e32 v9, v8, v9
	s_delay_alu instid0(VALU_DEP_1)
	v_cmpx_lt_u32_e32 1, v9
	s_cbranch_execz .LBB1_6
; %bb.5:                                ;   in Loop: Header=BB1_3 Depth=3
	s_waitcnt lgkmcnt(0)
	s_load_b64 s[22:23], s[0:1], 0x0
	v_cvt_f32_i32_e32 v8, v8
	s_waitcnt lgkmcnt(0)
	s_add_u32 s24, s22, s12
	v_add_co_u32 v9, vcc_lo, s22, v4
	s_addc_u32 s25, s23, s13
	v_add_co_ci_u32_e32 v10, vcc_lo, s23, v5, vcc_lo
	v_dual_mov_b32 v11, s24 :: v_dual_mov_b32 v12, s25
	s_clause 0x1
	flat_load_b32 v14, v[9:10]
	flat_load_b32 v15, v[11:12]
	s_load_b32 s21, s[4:5], 0x0
	s_load_b32 s22, s[2:3], 0x0
	s_load_b32 s23, s[6:7], 0x0
	s_waitcnt lgkmcnt(0)
	v_dual_mul_f32 v9, s21, v7 :: v_dual_mul_f32 v10, s22, v6
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_dual_mul_f32 v8, s23, v8 :: v_dual_mul_f32 v9, v9, v9
	v_fmac_f32_e32 v9, v10, v10
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_fmac_f32_e32 v9, v8, v8
	v_cvt_f64_f32_e32 v[8:9], v9
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_3) | instid1(VALU_DEP_2)
	v_rsq_f64_e32 v[10:11], v[8:9]
	s_waitcnt_depctr 0xfff
	v_mul_f64 v[8:9], v[10:11], -v[8:9]
	v_cmp_class_f64_e64 vcc_lo, v[10:11], 0x180
	v_fma_f64 v[8:9], v[8:9], v[10:11], 1.0
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_1)
	v_mul_f64 v[12:13], v[10:11], v[8:9]
	v_fma_f64 v[8:9], 0x3fd80000, v[8:9], 0.5
	v_fma_f64 v[8:9], v[12:13], v[8:9], v[10:11]
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_2) | instid1(VALU_DEP_1)
	v_dual_cndmask_b32 v9, v11, v9 :: v_dual_cndmask_b32 v8, v10, v8
	s_waitcnt vmcnt(0)
	v_mul_lo_u32 v14, v15, v14
	v_cvt_f64_i32_e32 v[12:13], v14
	v_cvt_f64_f32_e32 v[14:15], v0
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_fma_f64 v[8:9], v[8:9], v[12:13], v[14:15]
	v_cvt_f32_f64_e32 v0, v[8:9]
.LBB1_6:                                ; %Flow53
                                        ;   in Loop: Header=BB1_3 Depth=3
	s_or_b32 exec_lo, exec_lo, s20
.LBB1_7:                                ;   in Loop: Header=BB1_3 Depth=3
	s_delay_alu instid0(SALU_CYCLE_1)
	s_or_b32 exec_lo, exec_lo, s19
	s_add_i32 s17, s17, -1
	s_add_u32 s12, s12, 4
	s_addc_u32 s13, s13, 0
	s_cmpk_eq_i32 s17, 0xff9c
	s_cbranch_scc0 .LBB1_3
; %bb.8:                                ;   in Loop: Header=BB1_2 Depth=2
	s_add_i32 s16, s16, 1
	s_add_u32 s10, s10, 0x190
	s_addc_u32 s11, s11, 0
	s_cmpk_eq_i32 s16, 0x64
	s_cbranch_scc0 .LBB1_2
; %bb.9:                                ;   in Loop: Header=BB1_1 Depth=1
	s_add_i32 s14, s14, 1
	s_add_u32 s8, s8, 0x9c40
	s_addc_u32 s9, s9, 0
	s_cmpk_eq_i32 s14, 0x64
	s_cbranch_scc0 .LBB1_1
; %bb.10:
	s_waitcnt lgkmcnt(0)
	s_getpc_b64 s[0:1]
	s_add_u32 s0, s0, gpuTotal@rel32@lo+4
	s_addc_u32 s1, s1, gpuTotal@rel32@hi+12
	v_bfrev_b32_e32 v2, 1
	s_load_b64 s[0:1], s[0:1], 0x0
	s_mov_b32 s2, exec_lo
.LBB1_11:                               ; %ComputeLoop
                                        ; =>This Inner Loop Header: Depth=1
	s_delay_alu instid0(SALU_CYCLE_1)
	s_ctz_i32_b32 s3, s2
	s_delay_alu instid0(VALU_DEP_2) | instid1(SALU_CYCLE_1)
	v_readlane_b32 s4, v0, s3
	s_lshl_b32 s3, 1, s3
	s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(SALU_CYCLE_1)
	s_and_not1_b32 s2, s2, s3
	s_cmp_lg_u32 s2, 0
	s_delay_alu instid0(VALU_DEP_1)
	v_add_f32_e32 v2, s4, v2
	s_cbranch_scc1 .LBB1_11
; %bb.12:                               ; %ComputeEnd
	v_mbcnt_lo_u32_b32 v0, exec_lo, 0
	s_mov_b32 s2, 0
	s_mov_b32 s3, exec_lo
	s_delay_alu instid0(VALU_DEP_1)
	v_cmpx_eq_u32_e32 0, v0
	s_xor_b32 s3, exec_lo, s3
	s_cbranch_execz .LBB1_15
; %bb.13:
	s_waitcnt lgkmcnt(0)
	s_load_b32 s3, s[0:1], 0x0
	v_mov_b32_e32 v3, 0
	s_waitcnt lgkmcnt(0)
	v_mov_b32_e32 v1, s3
.LBB1_14:                               ; %atomicrmw.start
                                        ; =>This Inner Loop Header: Depth=1
	s_delay_alu instid0(VALU_DEP_1)
	v_add_f32_e32 v0, v1, v2
	global_atomic_cmpswap_b32 v0, v3, v[0:1], s[0:1] glc
	s_waitcnt vmcnt(0)
	v_cmp_eq_u32_e32 vcc_lo, v0, v1
	v_mov_b32_e32 v1, v0
	s_or_b32 s2, vcc_lo, s2
	s_delay_alu instid0(SALU_CYCLE_1)
	s_and_not1_b32 exec_lo, exec_lo, s2
	s_cbranch_execnz .LBB1_14
.LBB1_15:
	s_endpgm
	.section	.rodata,"a",@progbits
	.p2align	6, 0x0
	.amdhsa_kernel _Z11calcOverallv
		.amdhsa_group_segment_fixed_size 0
		.amdhsa_private_segment_fixed_size 0
		.amdhsa_kernarg_size 0
		.amdhsa_user_sgpr_count 13
		.amdhsa_user_sgpr_dispatch_ptr 0
		.amdhsa_user_sgpr_queue_ptr 0
		.amdhsa_user_sgpr_kernarg_segment_ptr 0
		.amdhsa_user_sgpr_dispatch_id 0
		.amdhsa_user_sgpr_private_segment_size 0
		.amdhsa_wavefront_size32 1
		.amdhsa_uses_dynamic_stack 0
		.amdhsa_enable_private_segment 0
		.amdhsa_system_sgpr_workgroup_id_x 1
		.amdhsa_system_sgpr_workgroup_id_y 1
		.amdhsa_system_sgpr_workgroup_id_z 1
		.amdhsa_system_sgpr_workgroup_info 0
		.amdhsa_system_vgpr_workitem_id 2
		.amdhsa_next_free_vgpr 16
		.amdhsa_next_free_sgpr 26
		.amdhsa_float_round_mode_32 0
		.amdhsa_float_round_mode_16_64 0
		.amdhsa_float_denorm_mode_32 3
		.amdhsa_float_denorm_mode_16_64 3
		.amdhsa_dx10_clamp 1
		.amdhsa_ieee_mode 1
		.amdhsa_fp16_overflow 0
		.amdhsa_workgroup_processor_mode 1
		.amdhsa_memory_ordered 1
		.amdhsa_forward_progress 0
		.amdhsa_shared_vgpr_count 0
		.amdhsa_exception_fp_ieee_invalid_op 0
		.amdhsa_exception_fp_denorm_src 0
		.amdhsa_exception_fp_ieee_div_zero 0
		.amdhsa_exception_fp_ieee_overflow 0
		.amdhsa_exception_fp_ieee_underflow 0
		.amdhsa_exception_fp_ieee_inexact 0
		.amdhsa_exception_int_div_zero 0
	.end_amdhsa_kernel
	.text
.Lfunc_end1:
	.size	_Z11calcOverallv, .Lfunc_end1-_Z11calcOverallv
                                        ; -- End function
	.section	.AMDGPU.csdata,"",@progbits
; Kernel info:
; codeLenInByte = 872
; NumSgprs: 28
; NumVgprs: 16
; ScratchSize: 0
; MemoryBound: 0
; FloatMode: 240
; IeeeMode: 1
; LDSByteSize: 0 bytes/workgroup (compile time only)
; SGPRBlocks: 3
; VGPRBlocks: 1
; NumSGPRsForWavesPerEU: 28
; NumVGPRsForWavesPerEU: 16
; Occupancy: 16
; WaveLimiterHint : 1
; COMPUTE_PGM_RSRC2:SCRATCH_EN: 0
; COMPUTE_PGM_RSRC2:USER_SGPR: 13
; COMPUTE_PGM_RSRC2:TRAP_HANDLER: 0
; COMPUTE_PGM_RSRC2:TGID_X_EN: 1
; COMPUTE_PGM_RSRC2:TGID_Y_EN: 1
; COMPUTE_PGM_RSRC2:TGID_Z_EN: 1
; COMPUTE_PGM_RSRC2:TIDIG_COMP_CNT: 2
	.text
	.p2alignl 7, 3214868480
	.fill 96, 4, 3214868480
	.protected	x.managed               ; @x.managed
	.type	x.managed,@object
	.section	.bss,"aw",@nobits
	.globl	x.managed
	.p2align	3, 0x0
x.managed:
	.quad	0
	.size	x.managed, 8

	.protected	y.managed               ; @y.managed
	.type	y.managed,@object
	.globl	y.managed
	.p2align	3, 0x0
y.managed:
	.quad	0
	.size	y.managed, 8

	.protected	z.managed               ; @z.managed
	.type	z.managed,@object
	.globl	z.managed
	.p2align	3, 0x0
z.managed:
	.quad	0
	.size	z.managed, 8

	.protected	gpuTotal.managed        ; @gpuTotal.managed
	.type	gpuTotal.managed,@object
	.globl	gpuTotal.managed
	.p2align	2, 0x0
gpuTotal.managed:
	.long	0x00000000                      ; float 0
	.size	gpuTotal.managed, 4

	.protected	indices.managed         ; @indices.managed
	.type	indices.managed,@object
	.globl	indices.managed
	.p2align	3, 0x0
indices.managed:
	.quad	0
	.size	indices.managed, 8

	.protected	lens.managed            ; @lens.managed
	.type	lens.managed,@object
	.globl	lens.managed
	.p2align	3, 0x0
lens.managed:
	.quad	0
	.size	lens.managed, 8

	.protected	xStep.managed           ; @xStep.managed
	.type	xStep.managed,@object
	.globl	xStep.managed
	.p2align	2, 0x0
xStep.managed:
	.long	0x00000000                      ; float 0
	.size	xStep.managed, 4

	.protected	yStep.managed           ; @yStep.managed
	.type	yStep.managed,@object
	.globl	yStep.managed
	.p2align	2, 0x0
yStep.managed:
	.long	0x00000000                      ; float 0
	.size	yStep.managed, 4

	.protected	zStep.managed           ; @zStep.managed
	.type	zStep.managed,@object
	.globl	zStep.managed
	.p2align	2, 0x0
zStep.managed:
	.long	0x00000000                      ; float 0
	.size	zStep.managed, 4

	.protected	counter.managed         ; @counter.managed
	.type	counter.managed,@object
	.globl	counter.managed
	.p2align	2, 0x0
counter.managed:
	.long	0x00000000                      ; float 0
	.size	counter.managed, 4

	.protected	x                       ; @x
	.type	x,@object
	.globl	x
	.p2align	3, 0x0
x:
	.quad	0
	.size	x, 8

	.protected	y                       ; @y
	.type	y,@object
	.globl	y
	.p2align	3, 0x0
y:
	.quad	0
	.size	y, 8

	.protected	z                       ; @z
	.type	z,@object
	.globl	z
	.p2align	3, 0x0
z:
	.quad	0
	.size	z, 8

	.protected	gpuTotal                ; @gpuTotal
	.type	gpuTotal,@object
	.globl	gpuTotal
	.p2align	3, 0x0
gpuTotal:
	.quad	0
	.size	gpuTotal, 8

	.protected	indices                 ; @indices
	.type	indices,@object
	.globl	indices
	.p2align	3, 0x0
indices:
	.quad	0
	.size	indices, 8

	.protected	lens                    ; @lens
	.type	lens,@object
	.globl	lens
	.p2align	3, 0x0
lens:
	.quad	0
	.size	lens, 8

	.protected	xStep                   ; @xStep
	.type	xStep,@object
	.globl	xStep
	.p2align	3, 0x0
xStep:
	.quad	0
	.size	xStep, 8

	.protected	yStep                   ; @yStep
	.type	yStep,@object
	.globl	yStep
	.p2align	3, 0x0
yStep:
	.quad	0
	.size	yStep, 8

	.protected	zStep                   ; @zStep
	.type	zStep,@object
	.globl	zStep
	.p2align	3, 0x0
zStep:
	.quad	0
	.size	zStep, 8

	.protected	counter                 ; @counter
	.type	counter,@object
	.globl	counter
	.p2align	3, 0x0
counter:
	.quad	0
	.size	counter, 8

	.type	__hip_cuid_,@object             ; @__hip_cuid_
	.globl	__hip_cuid_
__hip_cuid_:
	.byte	0                               ; 0x0
	.size	__hip_cuid_, 1

	.ident	"AMD clang version 18.0.0git (https://github.com/RadeonOpenCompute/llvm-project roc-6.3.2 25012 e5bf7e55c91490b07c49d8960fa7983d864936c4)"
	.section	".note.GNU-stack","",@progbits
	.addrsig
	.addrsig_sym x.managed
	.addrsig_sym y.managed
	.addrsig_sym z.managed
	.addrsig_sym gpuTotal.managed
	.addrsig_sym indices.managed
	.addrsig_sym lens.managed
	.addrsig_sym xStep.managed
	.addrsig_sym yStep.managed
	.addrsig_sym zStep.managed
	.addrsig_sym counter.managed
	.addrsig_sym x
	.addrsig_sym y
	.addrsig_sym z
	.addrsig_sym gpuTotal
	.addrsig_sym indices
	.addrsig_sym lens
	.addrsig_sym xStep
	.addrsig_sym yStep
	.addrsig_sym zStep
	.addrsig_sym counter
	.addrsig_sym __hip_cuid_
	.amdgpu_metadata
---
amdhsa.kernels:
  - .args:           []
    .group_segment_fixed_size: 0
    .kernarg_segment_align: 4
    .kernarg_segment_size: 0
    .language:       OpenCL C
    .language_version:
      - 2
      - 0
    .max_flat_workgroup_size: 1024
    .name:           _Z10calcNearbyv
    .private_segment_fixed_size: 0
    .sgpr_count:     22
    .sgpr_spill_count: 0
    .symbol:         _Z10calcNearbyv.kd
    .uniform_work_group_size: 1
    .uses_dynamic_stack: false
    .vgpr_count:     14
    .vgpr_spill_count: 0
    .wavefront_size: 32
    .workgroup_processor_mode: 1
  - .args:           []
    .group_segment_fixed_size: 0
    .kernarg_segment_align: 4
    .kernarg_segment_size: 0
    .language:       OpenCL C
    .language_version:
      - 2
      - 0
    .max_flat_workgroup_size: 1024
    .name:           _Z11calcOverallv
    .private_segment_fixed_size: 0
    .sgpr_count:     28
    .sgpr_spill_count: 0
    .symbol:         _Z11calcOverallv.kd
    .uniform_work_group_size: 1
    .uses_dynamic_stack: false
    .vgpr_count:     16
    .vgpr_spill_count: 0
    .wavefront_size: 32
    .workgroup_processor_mode: 1
amdhsa.target:   amdgcn-amd-amdhsa--gfx1100
amdhsa.version:
  - 1
  - 2
...

	.end_amdgpu_metadata
