//
// Created by gautam on 17/04/20.
//

#include "Metadata.cuh"

Metadata::Metadata(std::string tableName) {
    this->tableName = tableName;
    this->valid = true;
    keyMap = std::map<std::string, int>();
    metadataFileName = utils::getMetadataFileName(tableName);
    dataFileName = utils::getDataFileName(tableName);
    columns = std::vector<std::string>();
    datatypes = std::vector<ColType>();
    keyCols = std::vector<std::string>();
    colMap = std::map<std::string, int>();
    rowSize = 0;
    rowCount = 0;
    if (utils::fileExists(metadataFileName)) {
        std::ifstream metadataIn(metadataFileName);
        std::string line, val;
        // Read column names
        getline(metadataIn, line);
        std::istringstream iss(line);
        int index = 0;
        while (iss >> val) {
            columns.push_back(val);
            colMap[val] = index++;
        }
        // Read column datatypes
        getline(metadataIn, line);
        iss = std::istringstream(line);
        while (iss >> val) {
            ColType temp = newColType(val);
            rowSize += temp.size;
            datatypes.push_back(temp);
        }
        // Read key columns
        getline(metadataIn, line);
        iss = std::istringstream(line);
        index = 0;
        while (iss >> val) {
            keyCols.push_back(val);
            keyMap[val] = index++;
        }
        // Read row count
        getline(metadataIn, line);
        iss = std::istringstream(line);
        iss >> rowCount;
        metadataIn.close();
    }
    // No need to create now, wait till destructor is reached. Might be invalidated later.
    // else {
    //     std::ofstream fout(metadataFileName);
    //     fout.close();
    //     fout = std::ofstream(dataFileName);
    //     fout.close();
    // }
}

std::string Metadata::getColName(int col) {
    return columns[col];
}

std::string Metadata::operator[](int col) {
    return columns[col];
}

bool Metadata::append(std::string &colName, ColType &colType, bool isKey) {
    if (colMap.find(colName) == colMap.end()) {
        colMap[colName] = columns.size();
        columns.push_back(colName);
        datatypes.push_back(colType);
        rowSize += colType.size;
        if (isKey && keyMap.find(colName) == keyMap.end()) {
            keyMap[colName] = keyCols.size();
            keyCols.push_back(colName);
        }
        return true;
    }
    return false;
}

void Metadata::commit() {
    if (valid) {
        metadataFileName = utils::getMetadataFileName(tableName);
        std::ofstream fout(metadataFileName);
        for (const auto &colName : columns) {
            fout << colName << " ";
        }
        fout << std::endl;
        for (const ColType &colType : datatypes) {
            fout << colType.str << " ";
        }
        fout << std::endl;
        for (const std::string &keyCol : keyCols) {
            fout << keyCol << " ";
        }
        fout << std::endl;
        fout << rowCount << " ";
        fout << std::endl;
        fout.close();
        fout = std::ofstream(dataFileName, std::ios::app);
        fout.close();
    }
}

bool Metadata::appendKey(std::string &keyName) {
    if(columns.empty() || colMap.find(keyName) == colMap.end())  // Col with that name doesn't exist
        return false;
    if (keyMap.find(keyName) == keyMap.end()) {  // Col exists but not designated as key
        keyMap[keyName] = keyCols.size();
        keyCols.push_back(keyName);
    }
    return true;
}

void Metadata::invalidate() {
    this->valid = false;
    columns.clear();
    colMap.clear();
    datatypes.clear();
    keyCols.clear();
    keyMap.clear();
}

ColType Metadata::getColType(int col) {
    return datatypes[col];
}

ColType Metadata::getColType(std::string &colName) {
    return datatypes[colMap[colName]];
}

Metadata::Metadata() {
    rowSize = 0;
    rowCount = 0;
    valid = false;
}
	.file	"tmpxft_00224848_00000000-6_Metadata.cudafe1.cpp"
	.text
#APP
	.globl _ZSt21ios_base_library_initv

#NO_APP
	.type	_ZL26__cudaUnregisterBinaryUtilv, @function
_ZL26__cudaUnregisterBinaryUtilv:
.LFB4910:
	.cfi_startproc
	endbr64
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	jmp	__cudaUnregisterFatBinary@PLT
	.cfi_endproc
.LFE4910:
	.size	_ZL26__cudaUnregisterBinaryUtilv, .-_ZL26__cudaUnregisterBinaryUtilv
	.type	_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE.isra.0, @function
_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE.isra.0:
.LFB6093:
	.cfi_startproc
	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	(%rdi), %rax
	movq	-24(%rax), %rax
	movq	240(%rdi,%rax), %rbx
	testq	%rbx, %rbx
	jne	.L3
	call	_ZSt16__throw_bad_castv@PLT
.L3:
	cmpb	$0, 56(%rbx)
	movq	%rdi, %rbp
	movq	%rsi, %r12
	je	.L4
	movb	67(%rbx), %al
	jmp	.L5
.L4:
	movq	%rbx, %rdi
	call	_ZNKSt5ctypeIcE13_M_widen_initEv@PLT
	movq	(%rbx), %rax
	movl	$10, %esi
	movq	%rbx, %rdi
	call	*48(%rax)
.L5:
	popq	%rbx
	.cfi_def_cfa_offset 24
	movq	%r12, %rsi
	movq	%rbp, %rdi
	movsbl	%al, %edx
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EES4_@PLT
	.cfi_endproc
.LFE6093:
	.size	_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE.isra.0, .-_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE.isra.0
	.align 2
	.type	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_.isra.0, @function
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_.isra.0:
.LFB6095:
	.cfi_startproc
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	movq	%rdi, %rbp
	movq	%rsi, %rdi
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rsi, %rbx
	call	_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@PLT
	testb	%al, %al
	je	.L9
	cmpq	%rbp, %rbx
	je	.L10
	movq	8(%rbx), %rdx
	testq	%rdx, %rdx
	je	.L11
	movq	(%rbx), %rsi
	movq	0(%rbp), %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm@PLT
.L11:
	movq	8(%rbx), %rax
	movq	0(%rbp), %rdx
	movq	%rax, 8(%rbp)
	movb	$0, (%rdx,%rax)
	jmp	.L10
.L9:
	movq	%rbp, %rdi
	call	_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@PLT
	movl	%eax, %edx
	xorl	%eax, %eax
	testb	%dl, %dl
	jne	.L12
	movq	0(%rbp), %rax
	movq	16(%rbp), %r12
.L12:
	movq	(%rbx), %rdx
	movq	%rdx, 0(%rbp)
	movq	8(%rbx), %rdx
	movq	%rdx, 8(%rbp)
	movq	16(%rbx), %rdx
	movq	%rdx, 16(%rbp)
	testq	%rax, %rax
	je	.L13
	movq	%rax, (%rbx)
	movq	%r12, 16(%rbx)
	jmp	.L10
.L13:
	leaq	16(%rbx), %rax
	movq	%rax, (%rbx)
.L10:
	xorl	%eax, %eax
	movq	%rax, 8(%rbx)
	movq	(%rbx), %rax
	movb	$0, (%rax)
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6095:
	.size	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_.isra.0, .-_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_.isra.0
	.align 2
	.type	_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEaSEOS4_.isra.0, @function
_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEaSEOS4_.isra.0:
.LFB6096:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA6096
	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
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	leaq	16(%rbp), %r14
	leaq	16(%rbx), %r13
	subq	$104, %rsp
	.cfi_def_cfa_offset 160
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	call	_ZNSi4swapERSi@PLT
	leaq	32(%rsp), %rax
	movq	%r13, %rsi
	movq	%r14, %rdx
	movq	%rax, %rdi
	movq	%rax, 8(%rsp)
	call	_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE14__xfer_bufptrsC1ERKS4_PS4_@PLT
	movq	%r13, %rsi
	movq	%r14, %rdi
.LEHB0:
	call	_ZNSt15basic_streambufIcSt11char_traitsIcEEaSERKS2_@PLT
.LEHE0:
	leaq	24(%rsp), %r12
	leaq	72(%rbx), %rsi
	movq	%r12, %rdi
	leaq	16(%rsp), %r15
	call	_ZNSt6localeC1ERKS_@PLT
	movq	%r12, %rdx
	movq	%r14, %rsi
	movq	%r15, %rdi
.LEHB1:
	call	_ZNSt15basic_streambufIcSt11char_traitsIcEE8pubimbueERKSt6locale@PLT
.LEHE1:
	movq	%r15, %rdi
	call	_ZNSt6localeD1Ev@PLT
	movq	%r12, %rdi
	call	_ZNSt6localeD1Ev@PLT
	movl	80(%rbx), %eax
	leaq	88(%rbx), %rsi
	leaq	88(%rbp), %rdi
	movl	%eax, 80(%rbp)
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_.isra.0
	movq	88(%rbx), %rsi
	xorl	%ecx, %ecx
	xorl	%edx, %edx
	movq	%r13, %rdi
.LEHB2:
	call	_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcmm@PLT
.LEHE2:
	movq	8(%rsp), %rdi
	call	_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE14__xfer_bufptrsD1Ev@PLT
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	je	.L23
	jmp	.L26
.L25:
	endbr64
	movq	%rax, %rbx
.L20:
	movq	%r12, %rdi
	call	_ZNSt6localeD1Ev@PLT
	jmp	.L21
.L24:
	endbr64
	movq	%rax, %rbx
.L21:
	movq	8(%rsp), %rdi
	call	_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE14__xfer_bufptrsD1Ev@PLT
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L26
	movq	%rbx, %rdi
.LEHB3:
	call	_Unwind_Resume@PLT
.LEHE3:
.L26:
	call	__stack_chk_fail@PLT
.L23:
	addq	$104, %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
.LFE6096:
	.globl	__gxx_personality_v0
	.section	.gcc_except_table,"a",@progbits
.LLSDA6096:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE6096-.LLSDACSB6096
.LLSDACSB6096:
	.uleb128 .LEHB0-.LFB6096
	.uleb128 .LEHE0-.LEHB0
	.uleb128 .L24-.LFB6096
	.uleb128 0
	.uleb128 .LEHB1-.LFB6096
	.uleb128 .LEHE1-.LEHB1
	.uleb128 .L25-.LFB6096
	.uleb128 0
	.uleb128 .LEHB2-.LFB6096
	.uleb128 .LEHE2-.LEHB2
	.uleb128 .L24-.LFB6096
	.uleb128 0
	.uleb128 .LEHB3-.LFB6096
	.uleb128 .LEHE3-.LEHB3
	.uleb128 0
	.uleb128 0
.LLSDACSE6096:
	.text
	.size	_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEaSEOS4_.isra.0, .-_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEaSEOS4_.isra.0
	.align 2
	.type	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E.isra.0, @function
_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E.isra.0:
.LFB6098:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	pushq	%rdx
	.cfi_def_cfa_offset 32
.L29:
	testq	%rbx, %rbx
	je	.L32
	movq	24(%rbx), %rdi
	call	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E.isra.0
	leaq	32(%rbx), %rdi
	movq	16(%rbx), %rbp
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	%rbx, %rdi
	movl	$72, %esi
	call	_ZdlPvm@PLT
	movq	%rbp, %rbx
	jmp	.L29
.L32:
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6098:
	.size	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E.isra.0, .-_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E.isra.0
	.align 2
	.globl	_ZN8Metadata10getColNameB5cxx11Ei
	.type	_ZN8Metadata10getColNameB5cxx11Ei, @function
_ZN8Metadata10getColNameB5cxx11Ei:
.LFB4896:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rsi, %rax
	movslq	%edx, %rsi
	movq	%rdi, %rbx
	salq	$5, %rsi
	addq	112(%rax), %rsi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_@PLT
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4896:
	.size	_ZN8Metadata10getColNameB5cxx11Ei, .-_ZN8Metadata10getColNameB5cxx11Ei
	.align 2
	.globl	_ZN8MetadataixB5cxx11Ei
	.type	_ZN8MetadataixB5cxx11Ei, @function
_ZN8MetadataixB5cxx11Ei:
.LFB6092:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	call	_ZN8Metadata10getColNameB5cxx11Ei
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	je	.L36
	call	__stack_chk_fail@PLT
.L36:
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6092:
	.size	_ZN8MetadataixB5cxx11Ei, .-_ZN8MetadataixB5cxx11Ei
	.align 2
	.globl	_ZN8Metadata10getColTypeEi
	.type	_ZN8Metadata10getColTypeEi, @function
_ZN8Metadata10getColTypeEi:
.LFB4903:
	.cfi_startproc
	endbr64
	movslq	%edx, %rdx
	movq	%rdi, %rax
	imulq	$20, %rdx, %rdx
	addq	136(%rsi), %rdx
	movups	(%rdx), %xmm0
	movl	16(%rdx), %edx
	movups	%xmm0, (%rdi)
	movl	%edx, 16(%rdi)
	ret
	.cfi_endproc
.LFE4903:
	.size	_ZN8Metadata10getColTypeEi, .-_ZN8Metadata10getColTypeEi
	.align 2
	.globl	_ZN8MetadataC2Ev
	.type	_ZN8MetadataC2Ev, @function
_ZN8MetadataC2Ev:
.LFB4906:
	.cfi_startproc
	endbr64
	leaq	16(%rdi), %rax
	xorl	%esi, %esi
	xorl	%r10d, %r10d
	xorl	%edx, %edx
	movq	%rax, (%rdi)
	xorl	%eax, %eax
	xorl	%ecx, %ecx
	xorl	%r8d, %r8d
	movq	%rax, 8(%rdi)
	leaq	48(%rdi), %rax
	xorl	%r9d, %r9d
	xorl	%r11d, %r11d
	movq	%rax, 32(%rdi)
	leaq	80(%rdi), %rax
	movq	%rax, 64(%rdi)
	leaq	168(%rdi), %rax
	movq	%rax, 184(%rdi)
	movq	%rax, 192(%rdi)
	xorl	%eax, %eax
	movq	%rax, 248(%rdi)
	leaq	240(%rdi), %rax
	movq	%rax, 256(%rdi)
	movq	%rax, 264(%rdi)
	xorl	%eax, %eax
	movq	%rax, 272(%rdi)
	xorl	%eax, %eax
	movl	%eax, 96(%rdi)
	xorl	%eax, %eax
	movb	$0, 16(%rdi)
	movq	%rdx, 40(%rdi)
	movb	$0, 48(%rdi)
	movq	%rcx, 72(%rdi)
	movb	$0, 80(%rdi)
	movq	%rsi, 112(%rdi)
	movq	%rsi, 120(%rdi)
	movq	%rsi, 128(%rdi)
	movq	%rsi, 136(%rdi)
	movq	%rsi, 144(%rdi)
	movq	%rsi, 152(%rdi)
	movl	%r8d, 168(%rdi)
	movq	%r9, 176(%rdi)
	movq	%r10, 200(%rdi)
	movq	%r10, 208(%rdi)
	movq	%r10, 216(%rdi)
	movq	%r10, 224(%rdi)
	movl	%r11d, 240(%rdi)
	movq	%rax, 104(%rdi)
	movb	$0, 280(%rdi)
	ret
	.cfi_endproc
.LFE4906:
	.size	_ZN8MetadataC2Ev, .-_ZN8MetadataC2Ev
	.globl	_ZN8MetadataC1Ev
	.set	_ZN8MetadataC1Ev,_ZN8MetadataC2Ev
	.section	.text.startup,"ax",@progbits
	.type	_ZL24__sti____cudaRegisterAllv, @function
_ZL24__sti____cudaRegisterAllv:
.LFB4933:
	.cfi_startproc
	endbr64
	pushq	%rax
	.cfi_def_cfa_offset 16
	leaq	_ZL15__fatDeviceText(%rip), %rdi
	call	__cudaRegisterFatBinary@PLT
	movq	%rax, %rdi
	movq	%rax, _ZL20__cudaFatCubinHandle(%rip)
	call	__cudaRegisterFatBinaryEnd@PLT
	leaq	_ZL26__cudaUnregisterBinaryUtilv(%rip), %rdi
	popq	%rdx
	.cfi_def_cfa_offset 8
	jmp	atexit@PLT
	.cfi_endproc
.LFE4933:
	.size	_ZL24__sti____cudaRegisterAllv, .-_ZL24__sti____cudaRegisterAllv
	.section	.init_array,"aw"
	.align 8
	.quad	_ZL24__sti____cudaRegisterAllv
	.section	.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev,"axG",@progbits,_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED5Ev,comdat
	.align 2
	.weak	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev
	.type	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev, @function
_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev:
.LFB5262:
	.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
.L43:
	cmpq	%rbp, %r12
	je	.L47
	movq	%rbp, %rdi
	addq	$32, %rbp
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L43
.L47:
	movq	(%rbx), %rdi
	testq	%rdi, %rdi
	je	.L42
	movq	16(%rbx), %rsi
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	subq	%rdi, %rsi
	jmp	_ZdlPvm@PLT
.L42:
	.cfi_restore_state
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE5262:
	.size	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev, .-_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev
	.weak	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED1Ev
	.set	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED1Ev,_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev
	.text
	.align 2
	.type	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEaSEOS7_.isra.0, @function
_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEaSEOS7_.isra.0:
.LFB6104:
	.cfi_startproc
	subq	$40, %rsp
	.cfi_def_cfa_offset 48
	movq	(%rsi), %r8
	movq	(%rdi), %rcx
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	movq	16(%rdi), %rax
	movq	8(%rdi), %rdx
	movq	%r8, (%rdi)
	movq	8(%rsi), %r8
	movq	%rax, 16(%rsp)
	xorl	%eax, %eax
	movq	%r8, 8(%rdi)
	movq	16(%rsi), %r8
	movq	%rcx, (%rsp)
	movq	%r8, 16(%rdi)
	movq	%rsp, %rdi
	movq	%rax, (%rsi)
	movq	%rax, 8(%rsi)
	movq	%rax, 16(%rsi)
	movq	%rdx, 8(%rsp)
	call	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED1Ev
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	je	.L49
	call	__stack_chk_fail@PLT
.L49:
	addq	$40, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6104:
	.size	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEaSEOS7_.isra.0, .-_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEaSEOS7_.isra.0
	.section	.text._ZNSt6vectorI7ColTypeSaIS0_EED2Ev,"axG",@progbits,_ZNSt6vectorI7ColTypeSaIS0_EED5Ev,comdat
	.align 2
	.weak	_ZNSt6vectorI7ColTypeSaIS0_EED2Ev
	.type	_ZNSt6vectorI7ColTypeSaIS0_EED2Ev, @function
_ZNSt6vectorI7ColTypeSaIS0_EED2Ev:
.LFB5274:
	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L51
	movq	16(%rdi), %rsi
	movq	%rax, %rdi
	subq	%rax, %rsi
	jmp	_ZdlPvm@PLT
.L51:
	ret
	.cfi_endproc
.LFE5274:
	.size	_ZNSt6vectorI7ColTypeSaIS0_EED2Ev, .-_ZNSt6vectorI7ColTypeSaIS0_EED2Ev
	.weak	_ZNSt6vectorI7ColTypeSaIS0_EED1Ev
	.set	_ZNSt6vectorI7ColTypeSaIS0_EED1Ev,_ZNSt6vectorI7ColTypeSaIS0_EED2Ev
	.section	.text._ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EED2Ev,"axG",@progbits,_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EED5Ev,comdat
	.align 2
	.weak	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EED2Ev
	.type	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EED2Ev, @function
_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EED2Ev:
.LFB5283:
	.cfi_startproc
	endbr64
	movq	16(%rdi), %rdi
	jmp	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E.isra.0
	.cfi_endproc
.LFE5283:
	.size	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EED2Ev, .-_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EED2Ev
	.weak	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EED1Ev
	.set	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EED1Ev,_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EED2Ev
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	" "
	.text
	.align 2
	.globl	_ZN8Metadata6commitEv
	.type	_ZN8Metadata6commitEv, @function
_ZN8Metadata6commitEv:
.LFB4900:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4900
	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
	subq	$1048, %rsp
	.cfi_def_cfa_offset 1104
	movq	%fs:40, %rax
	movq	%rax, 1032(%rsp)
	xorl	%eax, %eax
	cmpb	$0, 280(%rdi)
	je	.L54
	leaq	520(%rsp), %r12
	movq	%rdi, %rbx
	leaq	64(%rdi), %rsi
	movq	%r12, %rdi
	leaq	8(%rsp), %rbp
	leaq	.LC0(%rip), %r13
.LEHB4:
	call	_ZN5utils19getMetadataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
	movq	%r12, %rsi
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_.isra.0
	movq	%r12, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movl	$16, %edx
	movq	%rbx, %rsi
	movq	%rbp, %rdi
	call	_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@PLT
.LEHE4:
	movq	120(%rbx), %r15
	movq	112(%rbx), %r14
.L56:
	cmpq	%r15, %r14
	je	.L70
	movq	%r14, %rsi
	movq	%rbp, %rdi
.LEHB5:
	call	_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE@PLT
	movq	%rax, %rdi
	movq	%r13, %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	addq	$32, %r14
	jmp	.L56
.L70:
	movq	%rbp, %rdi
	call	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@PLT
	movq	144(%rbx), %r15
	movq	136(%rbx), %r14
.L58:
	cmpq	%r14, %r15
	je	.L71
	leaq	8(%r14), %rsi
	movq	%rbp, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	movq	%r13, %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	addq	$20, %r14
	jmp	.L58
.L71:
	movq	%rbp, %rdi
	call	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@PLT
	movq	216(%rbx), %r15
	movq	208(%rbx), %r14
.L60:
	cmpq	%r15, %r14
	je	.L72
	movq	%r14, %rsi
	movq	%rbp, %rdi
	call	_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE@PLT
	movq	%rax, %rdi
	movq	%r13, %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	addq	$32, %r14
	jmp	.L60
.L72:
	movq	%rbp, %rdi
	call	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@PLT
	movq	104(%rbx), %rsi
	movq	%rbp, %rdi
	call	_ZNSo9_M_insertIlEERSoT_@PLT
	movq	%rax, %rdi
	movq	%r13, %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rbp, %rdi
	call	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@PLT
	movq	%rbp, %rdi
	call	_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv@PLT
	leaq	32(%rbx), %rsi
	movl	$1, %edx
	movq	%r12, %rdi
	call	_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@PLT
.LEHE5:
	movq	%r12, %rsi
	movq	%rbp, %rdi
	call	_ZNSo4swapERSo@PLT
	leaq	528(%rsp), %rsi
	leaq	16(%rsp), %rdi
.LEHB6:
	call	_ZNSt13basic_filebufIcSt11char_traitsIcEEaSEOS2_@PLT
.LEHE6:
	movq	%r12, %rdi
	call	_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@PLT
	movq	%rbp, %rdi
.LEHB7:
	call	_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv@PLT
.LEHE7:
	movq	%rbp, %rdi
	call	_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@PLT
	jmp	.L54
.L67:
	endbr64
	movq	%rax, %rbx
.L62:
	movq	%r12, %rdi
	call	_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@PLT
	jmp	.L63
.L66:
	endbr64
	movq	%rax, %rbx
.L63:
	movq	%rbp, %rdi
	call	_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@PLT
	movq	1032(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L69
	movq	%rbx, %rdi
.LEHB8:
	call	_Unwind_Resume@PLT
.LEHE8:
.L54:
	movq	1032(%rsp), %rax
	subq	%fs:40, %rax
	je	.L65
.L69:
	call	__stack_chk_fail@PLT
.L65:
	addq	$1048, %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
.LFE4900:
	.section	.gcc_except_table
.LLSDA4900:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4900-.LLSDACSB4900
.LLSDACSB4900:
	.uleb128 .LEHB4-.LFB4900
	.uleb128 .LEHE4-.LEHB4
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB5-.LFB4900
	.uleb128 .LEHE5-.LEHB5
	.uleb128 .L66-.LFB4900
	.uleb128 0
	.uleb128 .LEHB6-.LFB4900
	.uleb128 .LEHE6-.LEHB6
	.uleb128 .L67-.LFB4900
	.uleb128 0
	.uleb128 .LEHB7-.LFB4900
	.uleb128 .LEHE7-.LEHB7
	.uleb128 .L66-.LFB4900
	.uleb128 0
	.uleb128 .LEHB8-.LFB4900
	.uleb128 .LEHE8-.LEHB8
	.uleb128 0
	.uleb128 0
.LLSDACSE4900:
	.text
	.size	_ZN8Metadata6commitEv, .-_ZN8Metadata6commitEv
	.section	.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5clearEv,"axG",@progbits,_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5clearEv,comdat
	.align 2
	.weak	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5clearEv
	.type	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5clearEv, @function
_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5clearEv:
.LFB5357:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	pushq	%rdx
	.cfi_def_cfa_offset 48
	movq	(%rdi), %r12
	movq	8(%rdi), %r13
	cmpq	%r13, %r12
	je	.L73
	movq	%rdi, %rbx
	movq	%r12, %rbp
.L75:
	movq	%rbp, %rdi
	addq	$32, %rbp
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	cmpq	%rbp, %r13
	jne	.L75
	movq	%r12, 8(%rbx)
.L73:
	popq	%rax
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE5357:
	.size	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5clearEv, .-_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5clearEv
	.section	.rodata._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_.str1.1,"aMS",@progbits,1
.LC1:
	.string	"vector::_M_realloc_insert"
	.section	.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_,"axG",@progbits,_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_,comdat
	.align 2
	.weak	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_
	.type	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_, @function
_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_:
.LFB5580:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA5580
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdx, %r15
	movabsq	$288230376151711743, %rdx
	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	%rsi, 8(%rsp)
	movq	%rax, %rbx
	movq	%rax, (%rsp)
	subq	%r14, %rbx
	sarq	$5, %rbx
	cmpq	%rdx, %rbx
	jne	.L79
	leaq	.LC1(%rip), %rdi
.LEHB9:
	call	_ZSt20__throw_length_errorPKc@PLT
.L79:
	cmpq	%r14, (%rsp)
	movl	$1, %eax
	movq	8(%rsp), %rbp
	movq	%rdi, %r13
	cmovne	%rbx, %rax
	addq	%rax, %rbx
	setc	%al
	subq	%r14, %rbp
	movzbl	%al, %eax
	testq	%rax, %rax
	jne	.L95
	xorl	%r12d, %r12d
	testq	%rbx, %rbx
	je	.L84
	movabsq	$288230376151711743, %rax
	cmpq	%rax, %rbx
	cmova	%rax, %rbx
	jmp	.L83
.L95:
	movq	%rdx, %rbx
.L83:
	movq	%rbx, %rdi
	salq	$5, %rdi
	call	_Znwm@PLT
.LEHE9:
	movq	%rax, %r12
.L84:
	addq	%r12, %rbp
	movq	%r15, %rsi
	movq	%rbp, %rdi
.LEHB10:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_@PLT
.LEHE10:
	movq	%r12, %rdi
	movq	%r14, %rbp
.L85:
	leaq	32(%rdi), %r15
	cmpq	%rbp, 8(%rsp)
	je	.L87
	movq	%rbp, %rsi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_@PLT
	movq	%rbp, %rdi
	addq	$32, %rbp
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	%r15, %rdi
	jmp	.L85
.L87:
	cmpq	%rbp, (%rsp)
	je	.L107
	movq	%rbp, %rsi
	movq	%r15, %rdi
	addq	$32, %r15
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_@PLT
	movq	%rbp, %rdi
	addq	$32, %rbp
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L87
.L107:
	testq	%r14, %r14
	je	.L89
	movq	16(%r13), %rsi
	movq	%r14, %rdi
	subq	%r14, %rsi
	call	_ZdlPvm@PLT
.L89:
	salq	$5, %rbx
	movq	%r12, 0(%r13)
	addq	%r12, %rbx
	movq	%r15, 8(%r13)
	movq	%rbx, 16(%r13)
	addq	$24, %rsp
	.cfi_remember_state
	.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
.L98:
	.cfi_restore_state
	endbr64
	movq	%rax, %rdi
.L90:
	call	__cxa_begin_catch@PLT
	testq	%r12, %r12
	jne	.L91
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
.L93:
.LEHB11:
	call	__cxa_rethrow@PLT
.LEHE11:
.L99:
	endbr64
	movq	%rax, %rbx
.L92:
	call	__cxa_end_catch@PLT
	movq	%rbx, %rdi
.LEHB12:
	call	_Unwind_Resume@PLT
.LEHE12:
.L91:
	movq	%rbx, %rsi
	movq	%r12, %rdi
	salq	$5, %rsi
	call	_ZdlPvm@PLT
	jmp	.L93
	.cfi_endproc
.LFE5580:
	.section	.gcc_except_table
	.align 4
.LLSDA5580:
	.byte	0xff
	.byte	0x9b
	.uleb128 .LLSDATT5580-.LLSDATTD5580
.LLSDATTD5580:
	.byte	0x1
	.uleb128 .LLSDACSE5580-.LLSDACSB5580
.LLSDACSB5580:
	.uleb128 .LEHB9-.LFB5580
	.uleb128 .LEHE9-.LEHB9
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB10-.LFB5580
	.uleb128 .LEHE10-.LEHB10
	.uleb128 .L98-.LFB5580
	.uleb128 0x1
	.uleb128 .LEHB11-.LFB5580
	.uleb128 .LEHE11-.LEHB11
	.uleb128 .L99-.LFB5580
	.uleb128 0
	.uleb128 .LEHB12-.LFB5580
	.uleb128 .LEHE12-.LEHB12
	.uleb128 0
	.uleb128 0
.LLSDACSE5580:
	.byte	0x1
	.byte	0
	.align 4
	.long	0

.LLSDATT5580:
	.section	.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_,"axG",@progbits,_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_,comdat
	.size	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_, .-_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_
	.section	.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_,"axG",@progbits,_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_,comdat
	.align 2
	.weak	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_
	.type	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_, @function
_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_:
.LFB5310:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movq	8(%rdi), %rdi
	cmpq	16(%rbx), %rdi
	je	.L109
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_@PLT
	addq	$32, 8(%rbx)
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
.L109:
	.cfi_restore_state
	movq	%rsi, %rdx
	movq	%rdi, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_
	.cfi_endproc
.LFE5310:
	.size	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_, .-_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_
	.section	.text._ZNSt6vectorI7ColTypeSaIS0_EE17_M_realloc_insertIJRKS0_EEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_,"axG",@progbits,_ZNSt6vectorI7ColTypeSaIS0_EE17_M_realloc_insertIJRKS0_EEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_,comdat
	.align 2
	.weak	_ZNSt6vectorI7ColTypeSaIS0_EE17_M_realloc_insertIJRKS0_EEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_
	.type	_ZNSt6vectorI7ColTypeSaIS0_EE17_M_realloc_insertIJRKS0_EEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_, @function
_ZNSt6vectorI7ColTypeSaIS0_EE17_M_realloc_insertIJRKS0_EEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_:
.LFB5613:
	.cfi_startproc
	endbr64
	movabsq	$-3689348814741910323, %rax
	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), %rbp
	movq	(%rdi), %r15
	movq	%rsi, (%rsp)
	movabsq	$461168601842738790, %rsi
	movq	%rbp, %rbx
	subq	%r15, %rbx
	sarq	$2, %rbx
	imulq	%rax, %rbx
	cmpq	%rsi, %rbx
	jne	.L114
	leaq	.LC1(%rip), %rdi
	call	_ZSt20__throw_length_errorPKc@PLT
.L114:
	cmpq	%r15, %rbp
	movl	$1, %eax
	movq	(%rsp), %r12
	movq	%rdi, %r13
	cmovne	%rbx, %rax
	addq	%rax, %rbx
	setc	%al
	subq	%r15, %r12
	movzbl	%al, %eax
	testq	%rax, %rax
	jne	.L124
	xorl	%r14d, %r14d
	testq	%rbx, %rbx
	je	.L119
	movabsq	$461168601842738790, %rax
	cmpq	%rax, %rbx
	cmova	%rax, %rbx
	jmp	.L118
.L124:
	movq	%rsi, %rbx
.L118:
	imulq	$20, %rbx, %rdi
	movq	%rdx, 8(%rsp)
	call	_Znwm@PLT
	movq	8(%rsp), %rdx
	movq	%rax, %r14
.L119:
	movups	(%rdx), %xmm0
	movl	16(%rdx), %eax
	movups	%xmm0, (%r14,%r12)
	movl	%eax, 16(%r14,%r12)
	testq	%r12, %r12
	jle	.L120
	movq	%r12, %rdx
	movq	%r15, %rsi
	movq	%r14, %rdi
	call	memmove@PLT
.L120:
	movq	(%rsp), %rcx
	leaq	20(%r14,%r12), %rax
	subq	%rcx, %rbp
	testq	%rbp, %rbp
	jle	.L121
	movq	%rcx, %rsi
	movq	%rax, %rdi
	movq	%rbp, %rcx
	rep movsb
.L121:
	addq	%rax, %rbp
	testq	%r15, %r15
	je	.L122
	movq	16(%r13), %rsi
	movq	%r15, %rdi
	subq	%r15, %rsi
	call	_ZdlPvm@PLT
.L122:
	imulq	$20, %rbx, %rax
	movq	%r14, 0(%r13)
	movq	%rbp, 8(%r13)
	leaq	(%r14,%rax), %rbx
	movq	%rbx, 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
.LFE5613:
	.size	_ZNSt6vectorI7ColTypeSaIS0_EE17_M_realloc_insertIJRKS0_EEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_, .-_ZNSt6vectorI7ColTypeSaIS0_EE17_M_realloc_insertIJRKS0_EEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_
	.section	.text._ZNSt6vectorI7ColTypeSaIS0_EE9push_backERKS0_,"axG",@progbits,_ZNSt6vectorI7ColTypeSaIS0_EE9push_backERKS0_,comdat
	.align 2
	.weak	_ZNSt6vectorI7ColTypeSaIS0_EE9push_backERKS0_
	.type	_ZNSt6vectorI7ColTypeSaIS0_EE9push_backERKS0_, @function
_ZNSt6vectorI7ColTypeSaIS0_EE9push_backERKS0_:
.LFB5323:
	.cfi_startproc
	endbr64
	movq	%rsi, %rdx
	movq	8(%rdi), %rsi
	cmpq	16(%rdi), %rsi
	je	.L132
	movups	(%rdx), %xmm0
	movups	%xmm0, (%rsi)
	movl	16(%rdx), %eax
	movl	%eax, 16(%rsi)
	addq	$20, 8(%rdi)
	ret
.L132:
	jmp	_ZNSt6vectorI7ColTypeSaIS0_EE17_M_realloc_insertIJRKS0_EEEvN9__gnu_cxx17__normal_iteratorIPS0_S2_EEDpOT_
	.cfi_endproc
.LFE5323:
	.size	_ZNSt6vectorI7ColTypeSaIS0_EE9push_backERKS0_, .-_ZNSt6vectorI7ColTypeSaIS0_EE9push_backERKS0_
	.section	.text._ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE5clearEv,"axG",@progbits,_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE5clearEv,comdat
	.align 2
	.weak	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE5clearEv
	.type	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE5clearEv, @function
_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE5clearEv:
.LFB5645:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movq	16(%rdi), %rdi
	call	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E.isra.0
	xorl	%eax, %eax
	xorl	%edx, %edx
	movq	%rax, 16(%rbx)
	leaq	8(%rbx), %rax
	movq	%rax, 24(%rbx)
	movq	%rax, 32(%rbx)
	movq	%rdx, 40(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE5645:
	.size	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE5clearEv, .-_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE5clearEv
	.text
	.align 2
	.globl	_ZN8Metadata10invalidateEv
	.type	_ZN8Metadata10invalidateEv, @function
_ZN8Metadata10invalidateEv:
.LFB4902:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	addq	$112, %rdi
	movb	$0, 168(%rdi)
	call	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5clearEv
	leaq	160(%rbx), %rdi
	call	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE5clearEv
	movq	136(%rbx), %rax
	cmpq	144(%rbx), %rax
	je	.L138
	movq	%rax, 144(%rbx)
.L138:
	leaq	208(%rbx), %rdi
	call	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5clearEv
	leaq	232(%rbx), %rdi
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE5clearEv
	.cfi_endproc
.LFE4902:
	.size	_ZN8Metadata10invalidateEv, .-_ZN8Metadata10invalidateEv
	.align 2
	.type	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EEaSEOSE_.isra.0, @function
_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EEaSEOSE_.isra.0:
.LFB6120:
	.cfi_startproc
	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	%r8
	.cfi_def_cfa_offset 32
	call	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE5clearEv
	movq	16(%rbx), %rax
	testq	%rax, %rax
	je	.L140
	movl	8(%rbx), %edx
	movq	%rax, 16(%rbp)
	xorl	%ecx, %ecx
	movl	%edx, 8(%rbp)
	movq	24(%rbx), %rdx
	movq	%rdx, 24(%rbp)
	movq	32(%rbx), %rdx
	movq	%rdx, 32(%rbp)
	leaq	8(%rbp), %rdx
	movq	%rdx, 8(%rax)
	movq	40(%rbx), %rax
	xorl	%edx, %edx
	movq	%rax, 40(%rbp)
	leaq	8(%rbx), %rax
	movq	%rdx, 16(%rbx)
	movq	%rax, 24(%rbx)
	movq	%rax, 32(%rbx)
	movq	%rcx, 40(%rbx)
.L140:
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE6120:
	.size	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EEaSEOSE_.isra.0, .-_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EEaSEOSE_.isra.0
	.section	.text._ZStltIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_,"axG",@progbits,_ZStltIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_,comdat
	.weak	_ZStltIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_
	.type	_ZStltIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_, @function
_ZStltIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_:
.LFB5782:
	.cfi_startproc
	endbr64
	pushq	%rax
	.cfi_def_cfa_offset 16
	call	_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_@PLT
	popq	%rdx
	.cfi_def_cfa_offset 8
	shrl	$31, %eax
	ret
	.cfi_endproc
.LFE5782:
	.size	_ZStltIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_, .-_ZStltIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_
	.section	.text._ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE4findERS7_,"axG",@progbits,_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE4findERS7_,comdat
	.align 2
	.weak	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE4findERS7_
	.type	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE4findERS7_, @function
_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE4findERS7_:
.LFB5618:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	leaq	8(%rdi), %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%r13, %rbx
	pushq	%rcx
	.cfi_def_cfa_offset 48
	movq	16(%rdi), %rbp
.L149:
	testq	%rbp, %rbp
	je	.L155
	leaq	32(%rbp), %rdi
	movq	%r12, %rsi
	call	_ZStltIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_
	movq	24(%rbp), %rdx
	testb	%al, %al
	cmove	16(%rbp), %rdx
	cmove	%rbp, %rbx
	movq	%rdx, %rbp
	jmp	.L149
.L155:
	cmpq	%rbx, %r13
	je	.L152
	leaq	32(%rbx), %rsi
	movq	%r12, %rdi
	call	_ZStltIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_
	testb	%al, %al
	cmovne	%r13, %rbx
.L152:
	popq	%rdx
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE5618:
	.size	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE4findERS7_, .-_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE4findERS7_
	.section	.text._ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE24_M_get_insert_unique_posERS7_,"axG",@progbits,_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE24_M_get_insert_unique_posERS7_,comdat
	.align 2
	.weak	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE24_M_get_insert_unique_posERS7_
	.type	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE24_M_get_insert_unique_posERS7_, @function
_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE24_M_get_insert_unique_posERS7_:
.LFB5937:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rsi, %r13
	movb	$1, %al
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	leaq	8(%rdi), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	pushq	%r8
	.cfi_def_cfa_offset 48
	movq	16(%rdi), %rbx
.L157:
	testq	%rbx, %rbx
	je	.L166
	leaq	32(%rbx), %rsi
	movq	%r13, %rdi
	movq	%rbx, %rbp
	call	_ZStltIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_
	movq	24(%rbx), %rdx
	testb	%al, %al
	cmovne	16(%rbx), %rdx
	movq	%rdx, %rbx
	jmp	.L157
.L166:
	testb	%al, %al
	je	.L162
	cmpq	%rbp, 24(%r12)
	je	.L161
	movq	%rbp, %rdi
	call	_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base@PLT
	movq	%rax, %r12
	jmp	.L160
.L162:
	movq	%rbp, %r12
.L160:
	leaq	32(%r12), %rdi
	movq	%r13, %rsi
	call	_ZStltIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_
	testb	%al, %al
	movl	$0, %eax
	cmove	%rax, %rbp
	cmove	%r12, %rbx
.L161:
	popq	%rcx
	.cfi_def_cfa_offset 40
	movq	%rbx, %rax
	movq	%rbp, %rdx
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE5937:
	.size	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE24_M_get_insert_unique_posERS7_, .-_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE24_M_get_insert_unique_posERS7_
	.section	.text._ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS8_ERS7_,"axG",@progbits,_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS8_ERS7_,comdat
	.align 2
	.weak	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS8_ERS7_
	.type	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS8_ERS7_, @function
_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS8_ERS7_:
.LFB5795:
	.cfi_startproc
	endbr64
	leaq	8(%rdi), %rax
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	pushq	%r9
	.cfi_def_cfa_offset 48
	cmpq	%rax, %rsi
	jne	.L168
	cmpq	$0, 40(%rdi)
	je	.L169
	movq	32(%rdi), %rbx
	movq	%rdx, %rsi
	leaq	32(%rbx), %rdi
	call	_ZStltIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_
	testb	%al, %al
	je	.L169
	jmp	.L187
.L168:
	leaq	32(%rsi), %rbp
	movq	%rsi, %rbx
	movq	%rdx, %rdi
	movq	%rbp, %rsi
	call	_ZStltIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_
	testb	%al, %al
	je	.L171
	movq	24(%r13), %rax
	cmpq	%rbx, %rax
	je	.L188
	movq	%rbx, %rdi
	call	_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base@PLT
	movq	%r12, %rsi
	leaq	32(%rax), %rdi
	movq	%rax, %rbp
	call	_ZStltIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_
	testb	%al, %al
	jne	.L189
.L169:
	popq	%r8
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	movq	%r12, %rsi
	popq	%rbx
	.cfi_def_cfa_offset 32
	movq	%r13, %rdi
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	jmp	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE24_M_get_insert_unique_posERS7_
.L189:
	.cfi_restore_state
	cmpq	$0, 24(%rbp)
	movq	%rbx, %rax
	jne	.L188
	xorl	%eax, %eax
	movq	%rbp, %rdx
	jmp	.L170
.L171:
	movq	%r12, %rsi
	movq	%rbp, %rdi
	call	_ZStltIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_
	testb	%al, %al
	je	.L174
	movq	32(%r13), %rdx
	xorl	%eax, %eax
	cmpq	%rbx, %rdx
	je	.L170
	movq	%rbx, %rdi
	call	_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@PLT
	movq	%r12, %rdi
	leaq	32(%rax), %rsi
	movq	%rax, %rbp
	call	_ZStltIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_
	testb	%al, %al
	je	.L169
	cmpq	$0, 24(%rbx)
	movq	%rbp, %rax
	jne	.L188
.L187:
	xorl	%eax, %eax
	movq	%rbx, %rdx
	jmp	.L170
.L188:
	movq	%rax, %rdx
	jmp	.L170
.L174:
	movq	%rbx, %rax
	xorl	%edx, %edx
.L170:
	popq	%rcx
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE5795:
	.size	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS8_ERS7_, .-_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS8_ERS7_
	.section	.text._ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS7_EESJ_IJEEEEESt17_Rb_tree_iteratorIS8_ESt23_Rb_tree_const_iteratorIS8_EDpOT_,"axG",@progbits,_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS7_EESJ_IJEEEEESt17_Rb_tree_iteratorIS8_ESt23_Rb_tree_const_iteratorIS8_EDpOT_,comdat
	.align 2
	.weak	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS7_EESJ_IJEEEEESt17_Rb_tree_iteratorIS8_ESt23_Rb_tree_const_iteratorIS8_EDpOT_
	.type	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS7_EESJ_IJEEEEESt17_Rb_tree_iteratorIS8_ESt23_Rb_tree_const_iteratorIS8_EDpOT_, @function
_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS7_EESJ_IJEEEEESt17_Rb_tree_iteratorIS8_ESt23_Rb_tree_const_iteratorIS8_EDpOT_:
.LFB5594:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA5594
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rcx, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rdi, %r12
	movl	$72, %edi
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	subq	$16, %rsp
	.cfi_def_cfa_offset 64
.LEHB13:
	call	_Znwm@PLT
.LEHE13:
	movq	(%r14), %rsi
	leaq	32(%rax), %r13
	movq	%rax, %rbx
	movq	%r13, %rdi
.LEHB14:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_@PLT
.LEHE14:
	xorl	%esi, %esi
	movq	%r13, %rdx
	movq	%r12, %rdi
	movl	%esi, 64(%rbx)
	movq	%rbp, %rsi
	call	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS8_ERS7_
	movq	%rax, %rbp
	testq	%rdx, %rdx
	jne	.L191
	jmp	.L203
.L199:
	endbr64
	movq	%rax, %rdi
.L193:
	call	__cxa_begin_catch@PLT
	movl	$72, %esi
	movq	%rbx, %rdi
	call	_ZdlPvm@PLT
.LEHB15:
	call	__cxa_rethrow@PLT
.LEHE15:
.L200:
	endbr64
	movq	%rax, %rbx
.L194:
	call	__cxa_end_catch@PLT
	movq	%rbx, %rdi
.LEHB16:
	call	_Unwind_Resume@PLT
.LEHE16:
.L191:
	testq	%rbp, %rbp
	movb	$1, %al
	leaq	8(%r12), %rbp
	jne	.L195
	cmpq	%rbp, %rdx
	je	.L195
	leaq	32(%rdx), %rsi
	movq	%r13, %rdi
	movq	%rdx, 8(%rsp)
	call	_ZStltIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_
	movq	8(%rsp), %rdx
.L195:
	movq	%rbp, %rcx
	movzbl	%al, %edi
	movq	%rbx, %rsi
	movq	%rbx, %rbp
	call	_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_@PLT
	incq	40(%r12)
	jmp	.L196
.L203:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movl	$72, %esi
	movq	%rbx, %rdi
	call	_ZdlPvm@PLT
.L196:
	addq	$16, %rsp
	.cfi_def_cfa_offset 48
	movq	%rbp, %rax
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE5594:
	.section	.gcc_except_table
	.align 4
.LLSDA5594:
	.byte	0xff
	.byte	0x9b
	.uleb128 .LLSDATT5594-.LLSDATTD5594
.LLSDATTD5594:
	.byte	0x1
	.uleb128 .LLSDACSE5594-.LLSDACSB5594
.LLSDACSB5594:
	.uleb128 .LEHB13-.LFB5594
	.uleb128 .LEHE13-.LEHB13
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB14-.LFB5594
	.uleb128 .LEHE14-.LEHB14
	.uleb128 .L199-.LFB5594
	.uleb128 0x1
	.uleb128 .LEHB15-.LFB5594
	.uleb128 .LEHE15-.LEHB15
	.uleb128 .L200-.LFB5594
	.uleb128 0
	.uleb128 .LEHB16-.LFB5594
	.uleb128 .LEHE16-.LEHB16
	.uleb128 0
	.uleb128 0
.LLSDACSE5594:
	.byte	0x1
	.byte	0
	.align 4
	.long	0

.LLSDATT5594:
	.section	.text._ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS7_EESJ_IJEEEEESt17_Rb_tree_iteratorIS8_ESt23_Rb_tree_const_iteratorIS8_EDpOT_,"axG",@progbits,_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS7_EESJ_IJEEEEESt17_Rb_tree_iteratorIS8_ESt23_Rb_tree_const_iteratorIS8_EDpOT_,comdat
	.size	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS7_EESJ_IJEEEEESt17_Rb_tree_iteratorIS8_ESt23_Rb_tree_const_iteratorIS8_EDpOT_, .-_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS7_EESJ_IJEEEEESt17_Rb_tree_iteratorIS8_ESt23_Rb_tree_const_iteratorIS8_EDpOT_
	.section	.text._ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixERS9_,"axG",@progbits,_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixERS9_,comdat
	.align 2
	.weak	_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixERS9_
	.type	_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixERS9_, @function
_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixERS9_:
.LFB5312:
	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	movq	%rsi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	leaq	8(%rdi), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%r12, %rbx
	subq	$32, %rsp
	.cfi_def_cfa_offset 80
	movq	16(%rdi), %rbp
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
.L205:
	testq	%rbp, %rbp
	je	.L217
	leaq	32(%rbp), %rdi
	movq	%r14, %rsi
	call	_ZStltIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_
	movq	24(%rbp), %rdx
	testb	%al, %al
	cmove	16(%rbp), %rdx
	cmove	%rbp, %rbx
	movq	%rdx, %rbp
	jmp	.L205
.L217:
	cmpq	%rbx, %r12
	je	.L208
	leaq	32(%rbx), %rsi
	movq	%r14, %rdi
	call	_ZStltIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_
	testb	%al, %al
	je	.L209
.L208:
	movq	%rbx, %rsi
	leaq	16(%rsp), %rcx
	leaq	15(%rsp), %r8
	movq	%r13, %rdi
	leaq	_ZSt19piecewise_construct(%rip), %rdx
	movq	%r14, 16(%rsp)
	call	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS7_EESJ_IJEEEEESt17_Rb_tree_iteratorIS8_ESt23_Rb_tree_const_iteratorIS8_EDpOT_
	movq	%rax, %rbx
.L209:
	leaq	64(%rbx), %rax
	movq	24(%rsp), %rdx
	subq	%fs:40, %rdx
	je	.L210
	call	__stack_chk_fail@PLT
.L210:
	addq	$32, %rsp
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE5312:
	.size	_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixERS9_, .-_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixERS9_
	.text
	.align 2
	.globl	_ZN8Metadata10getColTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.type	_ZN8Metadata10getColTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, @function
_ZN8Metadata10getColTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE:
.LFB4904:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	movq	%rdx, %rsi
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	leaq	160(%rbp), %rdi
	pushq	%rax
	.cfi_def_cfa_offset 32
	call	_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixERS9_
	movslq	(%rax), %rax
	imulq	$20, %rax, %rax
	addq	136(%rbp), %rax
	movups	(%rax), %xmm0
	movl	16(%rax), %eax
	movups	%xmm0, (%rbx)
	movl	%eax, 16(%rbx)
	movq	%rbx, %rax
	popq	%rdx
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4904:
	.size	_ZN8Metadata10getColTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .-_ZN8Metadata10getColTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.align 2
	.globl	_ZN8MetadataC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.type	_ZN8MetadataC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, @function
_ZN8MetadataC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE:
.LFB4894:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4894
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	xorl	%edx, %edx
	xorl	%ecx, %ecx
	xorl	%r8d, %r8d
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	xorl	%r9d, %r9d
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rsi, %r13
	xorl	%esi, %esi
	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	%rdi, %rbx
	subq	$1528, %rsp
	.cfi_def_cfa_offset 1584
	movq	%fs:40, %rax
	movq	%rax, 1512(%rsp)
	xorl	%eax, %eax
	leaq	16(%rdi), %rax
	movb	$0, 16(%rdi)
	movq	%rax, (%rdi)
	xorl	%eax, %eax
	movq	%rax, 8(%rdi)
	leaq	48(%rdi), %rax
	movq	%rax, 32(%rdi)
	xorl	%eax, %eax
	movq	%rax, 40(%rdi)
	leaq	64(%rdi), %rax
	movq	%rax, 48(%rsp)
	leaq	80(%rdi), %rax
	movq	%rax, 64(%rdi)
	xorl	%eax, %eax
	movq	%rax, 72(%rdi)
	xorl	%eax, %eax
	movq	%rax, 112(%rdi)
	movq	%rax, 120(%rdi)
	movq	%rax, 128(%rdi)
	movq	%rax, 136(%rdi)
	movq	%rax, 144(%rdi)
	movq	%rax, 152(%rdi)
	leaq	168(%rdi), %rax
	movb	$0, 48(%rdi)
	movb	$0, 80(%rdi)
	movl	%edx, 168(%rdi)
	movq	%rax, 184(%rdi)
	movq	%rax, 192(%rdi)
	leaq	240(%rbx), %rax
	movq	%rsi, 200(%rdi)
	movq	%rsi, 208(%rdi)
	movq	%rsi, 216(%rdi)
	movq	%rsi, 224(%rdi)
	movq	%r13, %rsi
	movq	%rcx, 176(%rdi)
	xorl	%edi, %edi
	movq	%rax, 256(%rbx)
	movq	%rax, 264(%rbx)
	leaq	232(%rbx), %rax
	movq	%rax, 16(%rsp)
	leaq	32(%rbx), %rax
	movl	%edi, 240(%rbx)
	movq	48(%rsp), %rdi
	movq	%rax, 56(%rsp)
	leaq	112(%rbx), %rax
	movq	%r8, 248(%rbx)
	movq	%r9, 272(%rbx)
	movq	%rax, 24(%rsp)
	leaq	208(%rbx), %rax
	movq	%rax, 32(%rsp)
	leaq	160(%rbx), %rax
	movq	%rax, 40(%rsp)
.LEHB17:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_assignERKS4_@PLT
	leaq	96(%rsp), %rax
	movq	16(%rsp), %rdi
	xorl	%r14d, %r14d
	xorl	%r15d, %r15d
	movb	$1, 280(%rbx)
	leaq	88(%rsp), %rbp
	leaq	992(%rsp), %r12
	movq	%rbp, %rsi
	movq	%rax, 112(%rsp)
	movq	%rax, 120(%rsp)
	xorl	%eax, %eax
	movq	%rax, 128(%rsp)
	movl	%r14d, 96(%rsp)
	movq	%r15, 104(%rsp)
	call	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EEaSEOSE_.isra.0
	movq	%rbp, %rdi
	call	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EED1Ev
	movq	%r13, %rsi
	movq	%r12, %rdi
	call	_ZN5utils19getMetadataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
	movq	%r12, %rsi
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_.isra.0
	movq	%r12, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	%r13, %rsi
	movq	%r12, %rdi
	call	_ZN5utils15getDataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
	movq	56(%rsp), %rdi
	movq	%r12, %rsi
	xorl	%r13d, %r13d
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_.isra.0
	movq	%r12, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	24(%rsp), %rdi
	xorl	%ecx, %ecx
	movq	%rbp, %rsi
	movq	%rcx, 88(%rsp)
	movq	%rcx, 96(%rsp)
	movq	%rcx, 104(%rsp)
	call	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEaSEOS7_.isra.0
	movq	%rbp, %rdi
	call	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED1Ev
	xorl	%esi, %esi
	movq	136(%rbx), %rcx
	xorl	%edi, %edi
	movq	144(%rbx), %rdx
	movq	152(%rbx), %rax
	movq	%rdi, 64(%rsp)
	movq	%rsi, 136(%rbx)
	movq	%rsi, 144(%rbx)
	movq	%rsi, 152(%rbx)
	movq	%rdi, 72(%rsp)
	movq	%rdi, 80(%rsp)
	movq	%rbp, %rdi
	movq	%rcx, 88(%rsp)
	movq	%rdx, 96(%rsp)
	movq	%rax, 104(%rsp)
	call	_ZNSt6vectorI7ColTypeSaIS0_EED1Ev
	leaq	64(%rsp), %rdi
	call	_ZNSt6vectorI7ColTypeSaIS0_EED1Ev
	movq	32(%rsp), %rdi
	xorl	%r8d, %r8d
	movq	%rbp, %rsi
	movq	%r8, 88(%rsp)
	movq	%r8, 96(%rsp)
	movq	%r8, 104(%rsp)
	call	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEaSEOS7_.isra.0
	movq	%rbp, %rdi
	call	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED1Ev
	movq	40(%rsp), %rdi
	xorl	%r9d, %r9d
	xorl	%r10d, %r10d
	leaq	96(%rsp), %rax
	xorl	%r11d, %r11d
	movq	%rbp, %rsi
	movl	%r9d, 96(%rsp)
	movq	%r10, 104(%rsp)
	movq	%rax, 112(%rsp)
	movq	%rax, 120(%rsp)
	movq	%r11, 128(%rsp)
	call	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EEaSEOSE_.isra.0
	movq	%rbp, %rdi
	xorl	%ebp, %ebp
	call	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EED1Ev
	movl	%ebp, 96(%rbx)
	movq	%rbx, %rdi
	movq	%r13, 104(%rbx)
	call	_ZN5utils10fileExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
	testb	%al, %al
	je	.L220
	movl	$8, %edx
	movq	%rbx, %rsi
	movq	%r12, %rdi
	movq	%r12, 8(%rsp)
	call	_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@PLT
.LEHE17:
	leaq	176(%rsp), %rax
	leaq	160(%rsp), %rbp
	movq	8(%rsp), %rdi
	xorl	%edx, %edx
	movq	%rax, 160(%rsp)
	xorl	%eax, %eax
	movq	%rbp, %rsi
	movq	%rax, 168(%rsp)
	leaq	208(%rsp), %rax
	movb	$0, 176(%rsp)
	movq	%rax, 192(%rsp)
	movq	%rdx, 200(%rsp)
	movb	$0, 208(%rsp)
.LEHB18:
	call	_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE.isra.0
	leaq	224(%rsp), %rdi
	movl	$8, %edx
	movq	%rbp, %rsi
	call	_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@PLT
.LEHE18:
	xorl	%r13d, %r13d
	leaq	224(%rsp), %rbp
.L222:
	leaq	192(%rsp), %r12
	movq	%rbp, %rdi
	movq	%r12, %rsi
.LEHB19:
	call	_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE@PLT
	movq	(%rax), %rdx
	movq	-24(%rdx), %rdx
	testb	$5, 32(%rax,%rdx)
	jne	.L252
	leaq	192(%rsp), %r12
	movq	24(%rsp), %rdi
	movq	%r12, %rsi
	call	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_
	movq	40(%rsp), %rdi
	movq	%r12, %rsi
	leal	1(%r13), %r14d
	call	_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixERS9_
	movl	%r13d, (%rax)
	movl	%r14d, %r13d
	jmp	.L222
.L252:
	leaq	160(%rsp), %r14
	movq	8(%rsp), %rdi
	movq	%r14, %rsi
	call	_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE.isra.0
	leaq	608(%rsp), %r13
	movl	$8, %edx
	movq	%r14, %rsi
	movq	%r13, %rdi
	call	_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@PLT
.LEHE19:
	movq	%r13, %rsi
	movq	%rbp, %rdi
.LEHB20:
	call	_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEaSEOS4_.isra.0
.LEHE20:
	movq	%r13, %rdi
	leaq	136(%rbx), %r14
	call	_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@PLT
.L224:
	movq	%r12, %rsi
	movq	%rbp, %rdi
.LEHB21:
	call	_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE@PLT
	movq	(%rax), %rdx
	movq	-24(%rdx), %rdx
	testb	$5, 32(%rax,%rdx)
	jne	.L253
	movq	%r12, %rsi
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_@PLT
.LEHE21:
	leaq	140(%rsp), %rdi
	movq	%r13, %rsi
.LEHB22:
	call	_Z10newColTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@PLT
.LEHE22:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movl	144(%rsp), %eax
	addl	%eax, 96(%rbx)
	movq	%r14, %rdi
	leaq	140(%rsp), %rsi
.LEHB23:
	call	_ZNSt6vectorI7ColTypeSaIS0_EE9push_backERKS0_
	jmp	.L224
.L253:
	leaq	160(%rsp), %r14
	movq	8(%rsp), %rdi
	movq	%r14, %rsi
	call	_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE.isra.0
	movl	$8, %edx
	movq	%r14, %rsi
	movq	%r13, %rdi
	call	_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@PLT
.LEHE23:
	movq	%r13, %rsi
	movq	%rbp, %rdi
.LEHB24:
	call	_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEaSEOS4_.isra.0
.LEHE24:
	movq	%r13, %rdi
	leaq	192(%rsp), %r14
	xorl	%r13d, %r13d
	call	_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@PLT
.L226:
	movq	%r12, %rsi
	movq	%rbp, %rdi
.LEHB25:
	call	_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE@PLT
	movq	(%rax), %rdx
	movq	-24(%rdx), %rdx
	testb	$5, 32(%rax,%rdx)
	jne	.L254
	movq	32(%rsp), %rdi
	movq	%r12, %rsi
	call	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_
	movq	16(%rsp), %rdi
	movq	%r14, %rsi
	leal	1(%r13), %r15d
	call	_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixERS9_
	movl	%r13d, (%rax)
	movl	%r15d, %r13d
	jmp	.L226
.L254:
	leaq	160(%rsp), %r14
	movq	8(%rsp), %rdi
	movq	%r14, %rsi
	call	_ZSt7getlineIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE.isra.0
	leaq	608(%rsp), %r13
	movl	$8, %edx
	movq	%r14, %rsi
	movq	%r13, %rdi
	call	_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode@PLT
.LEHE25:
	movq	%r13, %rsi
	movq	%rbp, %rdi
.LEHB26:
	call	_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEaSEOS4_.isra.0
.LEHE26:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@PLT
	leaq	104(%rbx), %rsi
	movq	%rbp, %rdi
.LEHB27:
	call	_ZNSi10_M_extractIlEERSiRT_@PLT
	movq	8(%rsp), %rdi
	call	_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv@PLT
.LEHE27:
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@PLT
	movq	%r12, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	%r14, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	8(%rsp), %rdi
	call	_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@PLT
	jmp	.L220
.L241:
	endbr64
	jmp	.L251
.L242:
	endbr64
	movq	%rax, %rbp
.L230:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L229
.L243:
	endbr64
	jmp	.L251
.L244:
	endbr64
.L251:
	movq	%rax, %rbp
.L232:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@PLT
	jmp	.L229
.L240:
	endbr64
	movq	%rax, %rbp
.L229:
	leaq	224(%rsp), %rdi
	call	_ZNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEED1Ev@PLT
	jmp	.L233
.L239:
	endbr64
	movq	%rax, %rbp
.L233:
	leaq	192(%rsp), %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	leaq	160(%rsp), %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	8(%rsp), %rdi
	call	_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@PLT
	jmp	.L234
.L238:
	endbr64
	movq	%rax, %rbp
.L234:
	movq	16(%rsp), %rdi
	call	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EED1Ev
	movq	32(%rsp), %rdi
	call	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED1Ev
	movq	40(%rsp), %rdi
	call	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EED1Ev
	leaq	136(%rbx), %rdi
	call	_ZNSt6vectorI7ColTypeSaIS0_EED1Ev
	movq	24(%rsp), %rdi
	call	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED1Ev
	movq	48(%rsp), %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	56(%rsp), %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	1512(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L250
	movq	%rbp, %rdi
.LEHB28:
	call	_Unwind_Resume@PLT
.LEHE28:
.L220:
	movq	1512(%rsp), %rax
	subq	%fs:40, %rax
	je	.L236
.L250:
	call	__stack_chk_fail@PLT
.L236:
	addq	$1528, %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
.LFE4894:
	.section	.gcc_except_table
.LLSDA4894:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4894-.LLSDACSB4894
.LLSDACSB4894:
	.uleb128 .LEHB17-.LFB4894
	.uleb128 .LEHE17-.LEHB17
	.uleb128 .L238-.LFB4894
	.uleb128 0
	.uleb128 .LEHB18-.LFB4894
	.uleb128 .LEHE18-.LEHB18
	.uleb128 .L239-.LFB4894
	.uleb128 0
	.uleb128 .LEHB19-.LFB4894
	.uleb128 .LEHE19-.LEHB19
	.uleb128 .L240-.LFB4894
	.uleb128 0
	.uleb128 .LEHB20-.LFB4894
	.uleb128 .LEHE20-.LEHB20
	.uleb128 .L241-.LFB4894
	.uleb128 0
	.uleb128 .LEHB21-.LFB4894
	.uleb128 .LEHE21-.LEHB21
	.uleb128 .L240-.LFB4894
	.uleb128 0
	.uleb128 .LEHB22-.LFB4894
	.uleb128 .LEHE22-.LEHB22
	.uleb128 .L242-.LFB4894
	.uleb128 0
	.uleb128 .LEHB23-.LFB4894
	.uleb128 .LEHE23-.LEHB23
	.uleb128 .L240-.LFB4894
	.uleb128 0
	.uleb128 .LEHB24-.LFB4894
	.uleb128 .LEHE24-.LEHB24
	.uleb128 .L243-.LFB4894
	.uleb128 0
	.uleb128 .LEHB25-.LFB4894
	.uleb128 .LEHE25-.LEHB25
	.uleb128 .L240-.LFB4894
	.uleb128 0
	.uleb128 .LEHB26-.LFB4894
	.uleb128 .LEHE26-.LEHB26
	.uleb128 .L244-.LFB4894
	.uleb128 0
	.uleb128 .LEHB27-.LFB4894
	.uleb128 .LEHE27-.LEHB27
	.uleb128 .L240-.LFB4894
	.uleb128 0
	.uleb128 .LEHB28-.LFB4894
	.uleb128 .LEHE28-.LEHB28
	.uleb128 0
	.uleb128 0
.LLSDACSE4894:
	.text
	.size	_ZN8MetadataC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .-_ZN8MetadataC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.globl	_ZN8MetadataC1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.set	_ZN8MetadataC1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE,_ZN8MetadataC2ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.align 2
	.globl	_ZN8Metadata6appendERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER7ColTypeb
	.type	_ZN8Metadata6appendERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER7ColTypeb, @function
_ZN8Metadata6appendERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER7ColTypeb:
.LFB4898:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leaq	160(%rdi), %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movl	%ecx, %r14d
	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	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	movq	%r15, %rdi
	pushq	%r8
	.cfi_def_cfa_offset 64
	call	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE4findERS7_
	leaq	168(%rbx), %rcx
	movq	%rax, %rdx
	xorl	%eax, %eax
	cmpq	%rdx, %rcx
	jne	.L255
	movq	120(%rbx), %r12
	movq	%rbp, %rsi
	subq	112(%rbx), %r12
	movq	%r15, %rdi
	call	_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixERS9_
	sarq	$5, %r12
	leaq	112(%rbx), %rdi
	movq	%rbp, %rsi
	movl	%r12d, (%rax)
	call	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_
	leaq	136(%rbx), %rdi
	movq	%r13, %rsi
	call	_ZNSt6vectorI7ColTypeSaIS0_EE9push_backERKS0_
	movl	4(%r13), %eax
	addl	%eax, 96(%rbx)
	testb	%r14b, %r14b
	je	.L258
	leaq	232(%rbx), %r13
	movq	%rbp, %rsi
	movq	%r13, %rdi
	call	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE4findERS7_
	leaq	240(%rbx), %rdx
	cmpq	%rax, %rdx
	jne	.L258
	movq	216(%rbx), %r12
	movq	%rbp, %rsi
	subq	208(%rbx), %r12
	movq	%r13, %rdi
	call	_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixERS9_
	sarq	$5, %r12
	leaq	208(%rbx), %rdi
	movq	%rbp, %rsi
	movl	%r12d, (%rax)
	call	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_
.L258:
	movb	$1, %al
.L255:
	popq	%rdx
	.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
.LFE4898:
	.size	_ZN8Metadata6appendERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER7ColTypeb, .-_ZN8Metadata6appendERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER7ColTypeb
	.align 2
	.globl	_ZN8Metadata9appendKeyERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.type	_ZN8Metadata9appendKeyERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, @function
_ZN8Metadata9appendKeyERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE:
.LFB4901:
	.cfi_startproc
	endbr64
	movq	120(%rdi), %rax
	cmpq	%rax, 112(%rdi)
	je	.L272
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rdi, %rbx
	leaq	160(%rdi), %rdi
	pushq	%rcx
	.cfi_def_cfa_offset 48
	call	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE4findERS7_
	leaq	168(%rbx), %rdx
	cmpq	%rax, %rdx
	jne	.L273
	xorl	%eax, %eax
	jmp	.L263
.L273:
	leaq	232(%rbx), %r13
	movq	%rbp, %rsi
	movq	%r13, %rdi
	call	_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_iESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE4findERS7_
	leaq	240(%rbx), %rdx
	cmpq	%rax, %rdx
	je	.L267
.L268:
	movb	$1, %al
	jmp	.L263
.L267:
	movq	216(%rbx), %r12
	movq	%rbp, %rsi
	subq	208(%rbx), %r12
	movq	%r13, %rdi
	call	_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixERS9_
	sarq	$5, %r12
	leaq	208(%rbx), %rdi
	movq	%rbp, %rsi
	movl	%r12d, (%rax)
	call	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_
	jmp	.L268
.L263:
	popq	%rdx
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
.L272:
	.cfi_restore 3
	.cfi_restore 6
	.cfi_restore 12
	.cfi_restore 13
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE4901:
	.size	_ZN8Metadata9appendKeyERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .-_ZN8Metadata9appendKeyERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.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
	.weak	_ZSt19piecewise_construct
	.section	.rodata._ZSt19piecewise_construct,"aG",@progbits,_ZSt19piecewise_construct,comdat
	.type	_ZSt19piecewise_construct, @gnu_unique_object
	.size	_ZSt19piecewise_construct, 1
_ZSt19piecewise_construct:
	.zero	1
	.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:

//
// Created by gautam on 17/04/20.
//

#ifndef DBASE_METADATA_CUH
#define DBASE_METADATA_CUH

#include <string>
#include <vector>
#include <fstream>
#include <sstream>
#include <map>

#include "utils.cuh"
#include "ColType.cuh"

class Metadata {
public:
    explicit Metadata(std::string tableName);

    Metadata();

    std::string getColName(int col);

    std::string operator[] (int col);

    bool append(std::string &colName, ColType &colType, bool isKey = false);

    bool appendKey(std::string &keyName);

    void invalidate();

    void commit();

    std::string metadataFileName;
    std::string dataFileName;
    std::string tableName;
    int rowSize;
    long rowCount;

    ColType getColType(std::string &colName);

    ColType getColType(int col);

    std::vector<std::string> columns;
    std::vector<ColType> datatypes;
    std::map<std::string, int> colMap;
    std::vector<std::string> keyCols;
    std::map<std::string, int> keyMap;
private:
    bool valid;
};


#endif //DBASE_METADATA_CUH

	.text
	.file	"Metadata.hip"
                                        # Start of file scope inline assembly
	.globl	_ZSt21ios_base_library_initv

                                        # End of file scope inline assembly
	.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 __hip_cuid_

	.text
	.p2alignl 7, 3214868480
	.fill 96, 4, 3214868480
	.type	__hip_cuid_,@object             ; @__hip_cuid_
	.section	.bss,"aw",@nobits
	.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 __hip_cuid_
	.amdgcn_target "amdgcn-amd-amdhsa--gfx1100"
	.amdgpu_metadata
---
amdhsa.kernels:  []
amdhsa.target:   amdgcn-amd-amdhsa--gfx1100
amdhsa.version:
  - 1
  - 2
...

	.end_amdgpu_metadata
