-color: #89AD45;
	border-color: #78973B;
}

.smart-style-2 .btn-danger {
	background-color: #DB4A67;
	border-color: #CA4862;
}

.smart-style-2 .btn-danger:hover,
.smart-style-2 .btn-danger:focus,
.smart-style-2 .btn-danger:active,
.smart-style-2 .btn-danger.active,
.smart-style-2 .open .dropdown-toggle.btn-danger {
	background-color: #CF4762;
	border-color: #C0455E;
}

.smart-style-2 .btn-warning {
	background-color: #E2B14A;
	border-color: #C99D42;
}

.smart-style-2 .btn-warning:hover,
.smart-style-2 .btn-warning:focus,
.smart-style-2 .btn-warning:active,
.smart-style-2 .btn-warning.active,
.smart-style-2 .open .dropdown-toggle.btn-warning {
	background-color: #D6A848;
	border-color: #C09844;
}

.smart-style-2 .pagination>.active>a,
.smart-style-2 .pagination>.active>span,
.smart-style-2 .pagination>.active>a:hover,
.smart-style-2 .pagination>.active>span:hover,
.smart-style-2 .pagination>.active>a:focus,
.smart-style-2 .pagination>.active>span:focus {
	background-color: #3b9ff3;
}

/*
 * MINIFIED
 */
.smart-style-2.minified .login-info a {
	margin-top: 4px;
}

.smart-style-2.minified #left-panel {
	padding:0 !important;
}

.smart-style-2.minified nav ul>li>a {
padding: 12px 11px;
}

.smart-style-2.minified nav>ul>li>ul, .smart-style-2.minified nav>ul>li>ul>li, .smart-style-2.minified nav>ul>li>ul>li>ul>li {
	background:#fff !important;
}

.smart-style-2.minified nav>ul>li {
	border-bottom: 1px solid #E6E6E6;
	border-top: 1px solid #FFFFFF;
}

.smart-style-2.minified nav>ul>li>a>i {
	font-size:18px !important;
}

.smart-style-2.minified .login-info span {
	padding:0;
}

.smart-style-2.minified .login-info {
	margin:0 !important;
}

.smart-style-2.minified nav ul li.active>a:before {
	height: 23px;
	right: -19px;
	top: 7px;
	font-size: 20px;
	color: #FFFFFF;
}

/*
 * COLOR PALLET
 */
.smart-style-2 .bg-color-red {
	background: #DB4A67 !important;
}

.smart-style-2 .bg-color-blue {
	background: #4387bf !important;
}

.smart-style-2 .smart-form .checkbox input:checked+i,
.smart-style-2 .smart-form .radio input:checked+i,
.smart-style-2 .smart-form .toggle input:checked+i {
	border-color: #3b9ff3;
}

.smart-style-2 .smart-form .toggle i:before {
background-color: #3b9ff3;
}

.smart-form .rating input+label:hover,
.smart-form .rating input+label:hover~label {
	color: #3b9ff


m-info@iis.fraunhofer.de
----------------------------------------------------------------------------- */

/*********************** MPEG surround decoder library *************************

   Author(s):

   Description: SAC Dec QMF processing

*******************************************************************************/

#ifndef SAC_QMF_H
#define SAC_QMF_H

#include "common_fix.h"

#include "sac_dec_interface.h"

#include "FDK_qmf_domain.h"
#define HANDLE_SPACE_ANALYSIS_QMF HANDLE_QMF_FILTER_BANK
#define HANDLE_SPACE_SYNTHESIS_QMF HANDLE_QMF_FILTER_BANK

/**
 * \brief  Convert Qmf input to output audio data.
 *
 * \param hSpaceSynthesisQmf  A Qmf Synthesis Filterbank handle.
 * \param Sr                  Pointer to Qmf input buffer.
 * \param Si                  Pointer to Qmf input buffer.
 * \param stride              Stride factor for output data, 1 if none.
 * \param timeSig             (None-)Interleaved audio output data.
 *
 * \return  Error status.
 */
SACDEC_ERROR CalculateSpaceSynthesisQmf(
    const HANDLE_FDK_QMF_DOMAIN_OUT hQmfDomainOutCh, const FIXP_DBL *Sr,
    const FIXP_DBL *Si, const INT stride, PCM_MPS *timeSig);

/**
 * \brief  Convert audio input data to qmf representation.
 *
 * \param hSpaceAnalysisQmf   A Qmf Analysis Filterbank handle.
 * \param timeSig             (None-)Interleavd audio input data.
 * \param Sr                  Pointer to Qmf output buffer.
 * \param Si                  Pointer to Qmf output buffer.
 *
 * \return  Error status.
 */
SACDEC_ERROR CalculateSpaceAnalysisQmf(
    HANDLE_SPACE_ANALYSIS_QMF hSpaceAnalysisQmf, const PCM_MPS *timeSig,
    FIXP_DBL *Sr, FIXP_DBL *Si);

#endif /* SAC_QMF_H */


97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z"],
    "vote-yea": [640, 512, [], "f772", "M608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32zm-96 64V64.3c0-17.9-14.5-32.3-32.3-32.3H160.4C142.5 32 128 46.5 128 64.3V384h384zM211.2 202l25.5-25.3c4.2-4.2 11-4.2 15.2.1l41.3 41.6 95.2-94.4c4.2-4.2 11-4.2 15.2.1l25.3 25.5c4.2 4.2 4.2 11-.1 15.2L300.5 292c-4.2 4.2-11 4.2-15.2-.1l-74.1-74.7c-4.3-4.2-4.2-11 0-15.2z"],
    "vr-cardboard": [640, 512, [], "f729", "M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z"],
    "walking": [320, 512, [], "f554", "M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44


�塔利·薩普納伯。"}},
[10717] = {"行竊侵入者", nil, {"收集5個巨龍教團織網。"}},
[10718] = {"靈魂會說話", nil, {"到劍刃山脈之雷霆王村找雷克薩交談。"}},
[10719] = {"你拿到筆記了嗎?", nil, {"將會見紙條交給劍刃山脈裡永恆樹林的林木守衛蕭恩。"}},
[10720] = {"最小的動物", nil, {"在土撥鼠的巢穴使用科多獸皮鼓。在控制土撥鼠後，在血槌營地的3個小桶裡下毒。"}},
[10721] = {"葛魯洛克的豬時光", nil, {"取得葛魯洛克的袋子。"}},
[10722] = {"黑翼集會所的集會", nil, {"從各個巨龍教徒身上收集足夠的戲服碎塊來做出一套監督者偽裝。然後使用這個偽裝來參加和克菲斯·暗鱗的會議。"}},
[10723] = {"『食龍者』柯爾葛羅姆", nil, {"從圓面巨魔那裡收集3個可怕圖騰。於柯爾葛羅姆的祭壇使用和設置沙伯邁恩的陷阱，然後召喚並殺死『食龍者』柯爾葛羅姆。\n\n當柯爾葛羅姆死掉後，把3個可怕圖騰放置在他屍體附近。"}},
[10724] = {"劍刃囚犯", nil, {"殺死劍刃巨魔取得雙足翼龍的牢籠鑰匙。取得鑰匙後，找到雙足翼龍的牢籠並且使用史貝瑞之哨召喚史貝瑞來打開籠子，讓他來釋放里奧克。"}},
[10725] = {"紫羅蘭之眼中的地位", nil, {"當你與紫羅蘭之眼的聲望到達崇拜後，將你的紫羅蘭印記交給逆風小徑的大法師利瑞達。"}},
[10726] = {"紫羅蘭之眼中的地位", nil, {"當你與紫羅蘭之眼的聲望到達崇拜後，將你的紫羅蘭印記交給逆風小徑的大法師利瑞達。"}},
[10727] = {"紫羅蘭之眼中的地位", nil, {"當你與紫羅蘭之眼的聲望到達崇拜後，將你的紫羅蘭印記交給逆風小徑的大法師利瑞達。"}},
[10728] = {"紫羅蘭之眼中的地位", nil, {"當你與紫羅蘭


        DFLL0LOCKF_R::new(((self.bits >> 2) & 0x01) != 0)
    }
    #[doc = "Bit 3 - DFLL0 Ready"]
    #[inline(always)]
    pub fn dfll0rdy(&self) -> DFLL0RDY_R {
        DFLL0RDY_R::new(((self.bits >> 3) & 0x01) != 0)
    }
    #[doc = "Bit 4 - DFLL0 Reference Clock Stopped"]
    #[inline(always)]
    pub fn dfll0rcs(&self) -> DFLL0RCS_R {
        DFLL0RCS_R::new(((self.bits >> 4) & 0x01) != 0)
    }
    #[doc = "Bit 5 - DFLL0 Out Of Bounds"]
    #[inline(always)]
    pub fn dfll0oob(&self) -> DFLL0OOB_R {
        DFLL0OOB_R::new(((self.bits >> 5) & 0x01) != 0)
    }
    #[doc = "Bit 6 - PLL0 Lock"]
    #[inline(always)]
    pub fn pll0lock(&self) -> PLL0LOCK_R {
        PLL0LOCK_R::new(((self.bits >> 6) & 0x01) != 0)
    }
    #[doc = "Bit 7 - PLL0 Lock Lost"]
    #[inline(always)]
    pub fn pll0locklost(&self) -> PLL0LOCKLOST_R {
        PLL0LOCKLOST_R::new(((self.bits >> 7) & 0x01) != 0)
    }
    #[doc = "Bit 13 - RCFAST Lock"]
    #[inline(always)]
    pub fn rcfastlock(&self) -> RCFASTLOCK_R {
        RCFASTLOCK_R::new(((self.bits >> 13) & 0x01) != 0)
    }
    #[doc = "Bit 14 - RCFAST Lock Lost"]
    #[inline(always)]
    pub fn rcfastlocklost(&self) -> RCFASTLOCKLOST_R {
        RCFASTLOCKLOST_R::new(((self.bits >> 14) & 0x01) != 0)
    }
    #[doc = "Bit 31 - Access Error"]
    #[inline(always)]
    pub fn ae(&self) -> AE_R {
        AE_R::new(((self.bits >> 31) & 0x01) != 0)
    }
}
#[doc = "Interrupt Status Register\n\nThis register you can [`read`](crate::generic::Reg::read). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [isr](index.html) module"]
pub struct ISR_SPEC;
impl crate::RegisterSpec for ISR_SPEC {
    type Ux = u32;
}
#[doc = "`read()` method returns [isr::R](R) reader structure"]
impl crate::Readable for ISR_SPEC {
    type Reader = R;
}
#[doc = "`reset()` method sets ISR to value 0"]
impl crate::Resettable for ISR_SPEC {
    #[inline(always)]
    fn reset_value() -> Self::Ux {
        0
    }
}
use crate::math::Real;
use crate::motion::{RigidMotion, RigidMotionComposition};
use crate::query::{DefaultQueryDispatcher, QueryDispatcher, Unsupported, TOI};
use crate::shape::Shape;

/// Computes the smallest time of impact of two shapes under arbitrary smooth movement.
pub fn nonlinear_time_of_impact(
    motion1: &dyn RigidMotion,
    g1: &dyn Shape,
    motion2: &dyn RigidMotion,
    g2: &dyn Shape,
    max_toi: Real,
    target_distance: Real,
) -> Result<Option<TOI>, Unsupported> {
    let motion12 = motion1.inv_mul(motion2);
    DefaultQueryDispatcher.nonlinear_time_of_impact(&motion12, g1, g2, max_toi, target_distance)
}
pub mod oauth2;
pub mod repositories;
use core::fmt::{Debug, Error, Formatter};
use riscv::register::{
    scause::Scause,


}
}

// Funcion para crear un binario apartir de un .ADI
pub fn crate_bin(path: &str, nombre: &str, meta_file: &str) {
    println!("Iniciando la creacion de un Archivos Binario de Instalacion...");
    let tomy: Value = toml::from_str(meta_file)
        .expect("Al parecer no has escrito bien el archivo ADI o no es un archivo ADI");
    let adi = tomy.as_table().unwrap();

    let conservar_src_dir = binario_completo(meta_file);

    if conservar_src_dir == true {
        let mut noombre = String::new();
        noombre.push_str(nombre);
        noombre.push_str(".abi.tar.gz");
        let tar_gz = File::create(noombre).expect("Algo fallo al crear el tar_gz");
        let enc = GzEncoder::new(tar_gz, Compression::default());
        let mut tar = tar::Builder::new(enc);
        tar.append_dir_all(".", path).expect("Fallo en dir_all");
    } else {
        let mut noombre = String::new();
        noombre.push_str(nombre);
        noombre.push_str(".abi.tar.gz");
        let tar_gz = File::create(noombre).expect("Algo fallo al crear el tar_gz");
        let enc = GzEncoder::new(tar_gz, Compression::default());
        let mut tar = tar::Builder::new(enc);

        // Verificando si es que instala con fuentes locales
        let fuentes_locales = source_es_local(meta_file);
        let des: AdiDescarga;
        if fuentes_locales == true {
            des = read_adi_down(meta_file, true);
        } else {
            des = read_adi_down(meta_file, false);
        }
        let mut dirc = String::new();
        dirc.push_str(path);
        dirc.push_str(&des.src);
        dirc.push_str("/");

        let archivos = &adi["instalacion"]["files"].as_array().unwrap();
        for i in 0..archivos.len() {
            let mut archivo = String::new();
            archivo.push_str(&dirc);
            archivo.push_str(&archivos[i].as_str().unwrap().to_string());
            //Arregla el problema de no comprimir carpetas, ejemplo funkin
            let dir_archivos = Path::new(&archivo);
            let es_directorio: bool = dir_archivos.is_dir();
            if es_directorio == true {
                tar.append_dir_all(dir_archivos, dir_archivos).unwrap();
            } else {
                tar.append_path(archivo).unwrap();
            }
        }

        let out_adi = String::from("apkg.adi");
        let f = write_f(&out_adi, meta_file.as_bytes());
        match f {
            Ok(_f) => println!("Es archivo .adi se copio con exito"),
            Err(_e) => {
                println!(
                    "{}",
                    "Ocurrio un error al copiar el archivo .adi al binario".red()
                );
                process::exit(0x0100);
            }
        }
        tar.append_path(&out_adi).unwrap();

        println!("{}", "Limpiando...".yellow());
        remove_df(&out_adi);
    }

    println!("Creacion del binario a sido de manera exitosa!!!");
}

pub fn binario_completo(toml_file: &str)


954  7F A3 EB 78 */	mr r3, r29
/* 8037EA18 0037B958  38 80 00 04 */	li r4, 4
/* 8037EA1C 0037B95C  4B CB A2 A1 */	bl setBasePosition__7J2DPaneF15J2DBasePosition
/* 8037EA20 0037B960  3B C0 00 00 */	li r30, 0
/* 8037EA24 0037B964  48 00 01 14 */	b .L_8037EB38
.L_8037EA28:
/* 8037EA28 0037B968  57 C0 06 3E */	clrlwi r0, r30, 0x18
/* 8037EA2C 0037B96C  2C 00 00 02 */	cmpwi r0, 2
/* 8037EA30 0037B970  41 82 00 3C */	beq .L_8037EA6C
/* 8037EA34 0037B974  40 80 00 14 */	bge .L_8037EA48
/* 8037EA38 0037B978  2C 00 00 00 */	cmpwi r0, 0
/* 8037EA3C 0037B97C  41 82 00 18 */	beq .L_8037EA54
/* 8037EA40 0037B980  40 80 00 20 */	bge .L_8037EA60
/* 8037EA44 0037B984  48 00 00 7C */	b .L_8037EAC0
.L_8037EA48:
/* 8037EA48 0037B988  2C 00 00 04 */	cmpwi r0, 4
/* 8037EA4C 0037B98C  40 80 00 74 */	bge .L_8037EAC0
/* 8037EA50 0037B990  48 00 00 48 */	b .L_8037EA98
.L_8037EA54:
/* 8037EA54 0037B994  C3 E2 09 34 */	lfs f31, lbl_8051EC94@sda21(r2)
/* 8037EA58 0037B998  C3 C2 08 B8 */	lfs f30, lbl_8051EC18@sda21(r2)
/* 8037EA5C 0037B99C  48 00 00 64 */	b .L_8037EAC0
.L_8037EA60:
/* 8037EA60 0037B9A0  C3 E2 09 10 */	lfs f31, lbl_8051EC70@sda21(r2)
/* 8037EA64 0037B9A4  C3 C2 08 B8 */	lfs f30, lbl_8051EC18@sda21(r2)
/* 8037EA68 0037B9A8  48 00 00 58 */	b .L_8037EAC0
.L_8037EA6C:
/* 8037EA6C 0037B9AC  88 1F 01 74 */	lbz r0, 0x174(r31)
/* 8037EA70 0037B9B0  C3 E2 09 34 */	lfs f31, lbl_8051EC94@sda21(r2)
/* 8037EA74 0037B9B4  28 00 00 00 */	cmplwi r0, 0
/* 8037EA78 0037B9B8  C3 C2 08 B8 */	lfs f30, lbl_8051EC18@sda21(r2)
/* 8037EA7C 0037B9BC  41 82 00 44 */	beq .L_8037EAC0
/* 8037EA80 0037B9C0  C0 3D 00 2C */	lfs f1, 0x2c(r29)
/* 8037EA84 0037B9C4  C0 1D 00 24 */	lfs f0, 0x24(r29)
/* 8037EA88 0037B9C8  C0 42 09 04 */	lfs f2, lbl_8051EC64@sda21(r2)
/* 8037EA8


E6D8  80 0D D9 E0 */	lwz r0, lbl_806A2680-_SDA_BASE_(r13)
/* 8040319C 003FE6DC  38 60 00 00 */	li r3, 0
/* 804031A0 003FE6E0  90 6D D9 E4 */	stw r3, lbl_806A2684-_SDA_BASE_(r13)
/* 804031A4 003FE6E4  54 00 07 7B */	rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 804031A8 003FE6E8  41 82 00 24 */	beq lbl_804031CC
/* 804031AC 003FE6EC  38 60 00 04 */	li r3, 4
/* 804031B0 003FE6F0  38 80 00 00 */	li r4, 0
/* 804031B4 003FE6F4  38 A0 00 01 */	li r5, 1
/* 804031B8 003FE6F8  38 C0 00 01 */	li r6, 1
/* 804031BC 003FE6FC  38 E0 00 00 */	li r7, 0
/* 804031C0 003FE700  39 00 00 02 */	li r8, 2
/* 804031C4 003FE704  39 20 00 02 */	li r9, 2
/* 804031C8 003FE708  48 0B 89 30 */	b func_804BBAF8
lbl_804031CC:
/* 804031CC 003FE70C  38 60 00 04 */	li r3, 4
/* 804031D0 003FE710  38 80 00 00 */	li r4, 0
/* 804031D4 003FE714  38 A0 00 00 */	li r5, 0
/* 804031D8 003FE718  38 C0 00 00 */	li r6, 0
/* 804031DC 003FE71C  38 E0 00 00 */	li r7, 0
/* 804031E0 003FE720  39 00 00 02 */	li r8, 2
/* 804031E4 003FE724  39 20 00 02 */	li r9, 2
/* 804031E8 003FE728  48 0B 89 10 */	b func_804BBAF8

.global func_804031EC
func_804031EC:
/* 804031EC 003FE72C  3C 60 CC 01 */	lis r3, 0xCC008000@ha
/* 804031F0 003FE730  D0 23 80 00 */	stfs f1, 0xCC008000@l(r3)
/* 804031F4 003FE734  D0 43 80 00 */	stfs f2, -0x8000(r3)
/* 804031F8 003FE738  D0 63 80 00 */	stfs f3, -0x8000(r3)
/* 804031FC 003FE73C  4E 80 00 20 */	blr

.global func_80403200
func_80403200:
/* 80403200 003FE740  3C 60 CC 01 */	lis r3, 0xCC008000@ha
/* 80403204 003FE744  D0 23 80 00 */	stfs f1, 0xCC008000@l(r3)
/* 80403208 003FE748  D0 43 80 00 */	stfs f2, -0x8000(r3)
/* 8040320C 003FE74C  D0 63 80 00 */	stfs f3, -0x8000(r3)
/* 80403210 003FE750  4E 80 00 20 */	blr

.global func_80403214
func_80403214:
/* 80403214 003FE754  3C 60 CC 01 */	lis r3, 0xCC008000@ha
/* 80403218 003FE758  D0 23 80 00 */	stfs f1, 0xCC008000@l(r3)
/* 8040321C 003FE75C  D0 43 80 00 */	stfs f2, -0x8000


////////
/
/	Memory mapped video driver assembler assist.
/
////////
/
/ State driven code
/
/	Input:	DS:SI - input string
/		ES:DI - current screen location
/		SS:BP - terminal information
/		CX    - input count
/		BP    - references terminal information
/		AH    - character attributes
/		AL    - character
/		BH    - (usually) kept zeroed for efficiency
/		DH    - current row
/		DL    - current column
/
////////

	.set	NCOL, 80	/ number of columns
	.set	NCB, 2		/ number of horizontal bytes per char
	.set	SCB, 1		/ log2(NCB)
	.set	NCR, 1		/ number of horizontal lines per char
	.set	NHB, 160	/ number of horizontal bytes per line
	.set	NRB, 160	/ number of bytes per character row(NCR*NHB)

ATTR	.define	%ah	/* attribute byte */
ZERO	.define	%bh	/* (almost) always zero */
ROW	.define	%dh	/* currently active vertical position */
COL	.define	%dl	/* currently active horizontal position */
POS	.define	%edi	/* currently active display address */

	.set	INTENSE,	0x08	/ high intensity attribute bit
	.set	BLINK,		0x80	/ blinking attribute bit
	.set	REVERSE,	0x70	/ reverse video

	.set	SEG_386_UD,	0x10 	/ 32 bit user data segment descriptor
	.set	SEG_ROM,	0x40	/ ROM descriptor         @ F0000
	.set	SEG_VIDEOa,	0x48	/ 0x48: video descriptor @ B0000
	.set	SEG_VIDEOb,	0x50	/ 0x50: video descriptor @ B8000

////////
/
/ Magic constants from <sys/io.h>
/
////////

	.set	IO_SEG, 0
	.set	IO_IOC, 4
	.set	IO_BASE, 12

	.set	IOSYS, 0
	.set	IOUSR, 1

////////
/
/ Data
/
////////

	.set	MM_FUNC,	0	/ current state
	.set	MM_PORT,	4	/ adapter base i/o port
	.set	MM_BASE,	8	/ adapter base memory address
	.set	MM_OFFSET,	12	/ offset within segment
	.set	MM_ROW,		16	/ screen row
	.set	MM_COL,		20	/ screen column
	.set	MM_POS,		24	/ screen position
	.set	MM_ATTR,	28	/ attributes
	.set	MM_N1,		32	/ numeric argument 1
	.set	MM_N2,		36	/ numeric argument 2
	.set	MM_BROW,	40	/ base row
	.set	MM_EROW,	44	/ end row
	.set	MM_LROW,	48	/ legal row limit
	.set	MM_SROW,	52	/ saved cursor row
	.set	MM_SCOL,	56	/ saved cursor column
	.set	MM_IBROW,	60	/ initial base row
	.set	MM_IEROW,	64	/ initial end row
	.set	MM_INVIS,	68	/ cursor invisible mask
	.set	MM_SLOW,	72	/ slow [no flicker] video update
	.set	MM_WRAP,	7


`,
			},
			"site_id": {
				Type:     schema.TypeString,
				Optional: true,
				ForceNew: true,
				Description: `Required. Immutable. A globally unique identifier for the Hosting site. This identifier is
used to construct the Firebase-provisioned subdomains for the site, so it must also be a valid
domain name label.`,
			},
			"default_url": {
				Type:        schema.TypeString,
				Computed:    true,
				Description: `The default URL for the site in the form of https://{name}.web.app`,
			},
			"name": {
				Type:     schema.TypeString,
				Computed: true,
				Description: `Output only. The fully-qualified resource name of the Hosting site, in the
format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the
Firebase project's
['ProjectNumber'](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its
['ProjectId'](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id).
Learn more about using project identifiers in Google's
[AIP 2510 standard](https://google.aip.dev/cloud/2510).`,
			},
			"project": {
				Type:     schema.TypeString,
				Optional: true,
				Computed: true,
				ForceNew: true,
			},
		},
		UseJSONNumber: true,
	}
}

func resourceFirebaseHostingSiteCreate(d *schema.ResourceData, meta interface{}) error {
	config := meta.(*transport_tpg.Config)
	userAgent, err := tpgresource.GenerateUserAgentString(d, config.UserAgent)
	if err != nil {
		return err
	}

	obj := make(map[string]interface{})
	appIdProp, err := expandFirebaseHostingSiteAppId(d.Get("app_id"), d, config)
	if err != nil {
		return err
	} else if v, ok := d.GetOkExists("app_id"); !tpgresource.IsEmptyValue(reflect.ValueOf(appIdProp)) && (ok || !reflect.DeepEqual(v, appIdProp)) {
		obj["appId"] = appIdProp
	}

	url, err := tpgresource.ReplaceVars(d, config, "{{FirebaseHostingBasePath}}projects/{{project}}/sites?siteId={{site_id}}")
	if err != nil {
		return err
	}

	log.Printf("[DEBUG] Creating new Site: %#v", obj)
	billingProject := ""

	project, err := tpgresource.GetProject(d, config)
	if err != nil {
		return fmt.Errorf("Error fetching project for Site: %s", err)
	}
	billingProject = project

	// err == nil indicates that the billing_project value was found
	if bp, err := tpgresource.GetBillingProject(d, config); err == nil {
		billingProject = bp
	}

	res, err := transport_tpg.SendRequest(transport_tpg.SendRequestOptions{
		Config:    config,
		Method:    "POST",
		Project:   billingProject,
		RawURL:    url,
		UserAgent: userAgent,
		Body:      obj,
		Timeout:   d.Timeout(schema.TimeoutCreate),
	})
	if err != nil {
		return fmt.Errorf("Error creating Site: %s", err)
	}
	if err := d.Set("name", flattenFirebaseHostingSiteName(res["name"], d, config)); err != nil {
		return fmt.Errorf(`Error setting computed identity field "name": %s`, err)
	}

	// Store the ID now
	id, err := tpgre


# Ultralytics YOLO 🚀, AGPL-3.0 license

from ultralytics.models.yolo import classify, detect, obb, pose, segment

from .model import YOLO, YOLOWorld

__all__ = "classify", "segment", "detect", "pose", "obb", "YOLO", "YOLOWorld"


\x7e\xd3\x14\x9f\xe6\xbf\xea\x66\x41\x9a\x41\xd8\x38\xe2\x62\x6b\x74\x11\x90\xac\x1b\xc0\x47\xd9\xfb\x50\x78\x7c\x05\x04\xf1\x09\x7b\xe3\x23\x48\x84\x35\xbb\x6e\xa4\xf9\x0a\x0b\xa6\xc0\x7b\x4c\xf4\x45\xfd\xde\x8e\x00\xf4\x00\x8b\xa0\x09\xfe\x25\xbe\x2e\x4b\xe1\x3d\xcd\x3f\x58\x2b\x8f\xd9\xb2\x45\x70\x0b\xca\xf0\x80\x0b\x27\x3c\x06\x81\xd9\xfa\x25\x7e\x1f\xc8\x93\x93\xbe\x0a\x4d\x8e\xff\x0c\x00\x00\xff\xff\xef\x78\xce\x15\xf8\x0d\x00\x00")

func kibana_app_panels_timepicker_custom_html_bytes() ([]byte, error) {
	return bindata_read(
		_kibana_app_panels_timepicker_custom_html,
		"kibana/app/panels/timepicker/custom.html",
	)
}

func kibana_app_panels_timepicker_custom_html() (*asset, error) {
	bytes, err := kibana_app_panels_timepicker_custom_html_bytes()
	if err != nil {
		return nil, err
	}

	info := bindata_file_info{name: "kibana/app/panels/timepicker/custom.html", size: 3576, mode: os.FileMode(436), modTime: time.Unix(1415373325, 0)}
	a := &asset{bytes: bytes, info:  info}
	return a, nil
}

var _kibana_app_panels_timepicker_editor_html = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\x91\x4d\x4e\xc3\x40\x0c\x85\xaf\x32\xf2\x7e\xc8\x05\x26\x91\xd8\x70\x00\xc4\xbe\x32\x19\xb7\x18\x79\x7e\xe4\x71\x03\xbd\x3d\xcd\x0f\x55\x2b\x21\x24\xd8\x74\x93\xc5\xf3\xb3\xdf\xf7\x32\x21\xf2\xe4\x46\xc1\xd6\x7a\xa0\xc8\x56\xd4\x6b\xf9\x80\xe1\x5a\x6f\x34\x1a\x97\x7c\x2b\x6e\xe6\x52\xb7\x91\xe0\x2b\xc9\x65\x23\xa1\x08\x0c\xcf\x24\x68\x3c\x91\x33\x4e\xe4\x56\x6b\x73\x61\x99\x0e\x63\x49\x09\x5d\xa3\x8a\x8a\x46\x31\x74\xab\x1c\xba\xe5\xd2\x10\x38\x


-popup-singlePage .cbp-l-project-details-list li{border-bottom:1px dotted #DFDFDF;padding:inherit;color:#666;font:400 12px/30px "Open Sans",sans-serif}.cbp-popup-singlePage .cbp-l-project-details-list strong{display:inline-block;color:#696969;font:600 12px "Open Sans",sans-serif;min-width:100px}.cbp-popup-singlePage .cbp-l-project-details-visit{color:#FFF;float:right;text-decoration:none;font:400 11px/18px "Open Sans",sans-serif;margin-top:12px;text-transform:uppercase;background-color:#34425C;padding:6px 12px}.cbp-popup-singlePage .cbp-l-project-details-visit:hover{color:#AFBBDB}.cbp-popup-singlePage .cbp-l-project-related{margin:30px 0 20px}.cbp-popup-singlePage .cbp-l-project-related-wrap{font-size:0;margin:0}.cbp-popup-singlePage .cbp-l-project-related-item{margin-right:5%;max-width:30%;display:inline-block}.cbp-popup-singlePage .cbp-l-project-related-item:last-child{margin-right:0}.cbp-popup-singlePage .cbp-l-project-related-title{font:bold 14px sans-serif;color:#474747;margin-top:20px}.cbp-popup-singlePage .cbp-l-project-related-link{text-decoration:none}.cbp-popup-singlePage .cbp-l-project-related-link:hover{opacity:.9}.cbp-popup-singlePage .cbp-l-member-img{float:left;margin-right:20px;margin-top:20px;border:1px solid #e2e2e2}.cbp-popup-singlePage .cbp-l-member-img img{display:block}.cbp-popup-singlePage .cbp-l-member-info{margin-top:20px}.cbp-popup-singlePage .cbp-l-member-name{font:bold 16px/12px "Open Sans",sans-serif;margin-bottom:6px}.cbp-popup-singlePage .cbp-l-member-position{font:400 13px "Open Sans",sans-serif}.cbp-popup-singlePage .cbp-l-member-desc{font:400 12px "Open Sans",sans-serif;margin-top:15px}.cbp-popup-singlePageInline{width:100%;height:0;position:absolute;top:0;left:0;overflow:hidden}.cbp-popup-singlePageInline .cbp-popup-navigation{position:absolute;top:0;right:0;z-index:2;width:40px;height:40px}.cbp-popup-singlePageInline .cbp-popup-close{background:url("../img/cbp-sprite.png") no-repeat scroll -94px -2px transparent;height:40px;width:40px;right:20px;top:30px}.cbp-popup-singlePageInline .cbp-popup-close:hover{opacity:.7}.cbp-popup-singlePageInline .cbp-popup-content{width:100%;min-height:200px}.cbp.cbp-popup-isOpening .cbp-popup-singlePageInline,.cbp.cbp-popup-isOpening{-webkit-transition:height .4s ease 0s!important;transition:height .4s ease 0s!important}.cbp.cbp-popup-isOpening .cbp-item{-webkit-transition:-webkit-transform .4s ease 0s!important;transition:transform .4s ease 0s!important}.cbp-singlePageInline-active{opacity:.6!important}.cbp-popup-singlePageInline .cbp-popup-loadingBox{visibility:hidden;background:url("../img/cbp-loading.gif") no-repeat scroll center center transparent;border:medium non


port dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import javax.inject.Inject

/**
 * 页面状态：角色适用ex装备
 */
@Immutable
data class CharacterExtraEquipUiState(
    val extraEquipList: List<CharacterExtraEquipData>? = null,
    val loadState: LoadState = LoadState.Loading
)

/**
 * 角色适用ex装备 ViewModel
 *
 * @param extraEquipmentRepository
 *
 */
@HiltViewModel
class CharacterExtraEquipViewModel @Inject constructor(
    private val extraEquipmentRepository: ExtraEquipmentRepository,
    savedStateHandle: SavedStateHandle
) : ViewModel() {
    private val unitId: Int? = savedStateHandle[NavRoute.UNIT_ID]

    private val _uiState = MutableStateFlow(CharacterExtraEquipUiState())
    val uiState: StateFlow<CharacterExtraEquipUiState> = _uiState.asStateFlow()

    init {
        if (unitId != null) {
            getCharacterExtraEquipList(unitId)
        }
    }

    /**
     * 获取角色可使用的ex装备列表
     */
    private fun getCharacterExtraEquipList(unitId: Int) {
        viewModelScope.launch {
            val list = extraEquipmentRepository.getCharacterExtraEquipList(unitId)
            _uiState.update {
                it.copy(
                    extraEquipList = list,
                    loadState = updateLoadState(list)
                )
            }
        }
    }

}
package cn.wthee.pcrtool.ui.character.filter

import androidx.compose.runtime.Immutable
import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import cn.wthee.pcrtool.data.db.repository.UnitRepository
import cn.wthee.pcrtool.data.db.view.GuildData
import cn.wthee.pcrtool.data.model.FilterCharacter
import cn.wthee.pcrtool.navigation.NavRoute
import cn.wthee.pcrtool.navigation.setData
import cn.wthee.pcrtool.utils.JsonUtil
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import javax.inject.Inject

/**
 * 页面状态：角色列表
 */
@Immutable
data class CharacterListFilterUiState(
    // 公会信息
    val guildList: List<GuildData> = emptyList(),
    // 种族信息
    val raceList: List<String> = emptyList(),
    val filter: FilterCharacter? = null,
    // 是否有天赋类型
    val hasTalent: Boolean = false,
    // 是否有职能
    val hasRole: Boolean = false
)

/**
 * 角色列表 ViewModel
 *
 * @param unitRepository
 */
@HiltViewModel
class CharacterListFilterViewModel @Inject constructor(
    private val unitRepository: UnitRepository,
    savedStateHandle: SavedStateHandle
) : ViewModel() {
    private val filter: FilterCharacter? = JsonUtil.fromJson(savedStateHandle[NavRoute.FILTER_DATA])

    private val _uiState = MutableStateFlow(CharacterListFilterUiState())
    val uiState: StateFlow<CharacterListFilterUiState> = _uiState.asStateFlow()

    init {
        get


燒掉它們！",
  },
  [3481] = {
    ["D"] = "箱子似乎上鎖了。",
    ["O"] = "打開箱子。",
    ["T"] = "打開箱子…",
  },
  [3482] = {
    ["D"] = "This is the horde version of the black box quest.",
    ["O"] = "Take this box to Kravel.",
    ["T"] = "<NYI> <TXT> The Pocked Black Box",
  },
  [3483] = {
    ["D"] = "",
    ["O"] = "",
    ["T"] = "信號發射器",
  },
  [3501] = {
    ["D"] = "儘管你可能找不到純淨無暇德萊尼水晶，但是在你探索這片土地的過程中，一定可以找到若干有瑕疵的德萊尼水晶碎片。$B$B庫米沙是否可以利用這些碎片返回家園，這還很難說，但是這些碎片可以為德萊尼人所用。$B$B把你發現的有瑕疵的德萊尼水晶碎片都交給我，我會給你報酬的。",
    ["O"] = "將有瑕疵的德萊尼水晶碎片交給庫米沙，你就可以得到相應的回報。",
    ["T"] = "多多益善",
  },
  [3502] = {
    ["D"] = "Well, after that display of voracious greed, I feel nauseous.$B$BRegardless, I shall not dwell too long on your material addiction.$B$BFor each imperfect draenethyst fragment you turn in, I shall reward you with more junk. My junk heap gets smaller while your junk heap gets larger. On Draenor we call this a \'win-win\' situation.",
    ["O"] = "Bring Kum\'isha Imperfect Draenethyst Fragments. Any form of monster in the Blasted Lands could be carrying a fragment.",
    ["T"] = "One Draenei\'s Junk...",
  },
  [3503] = {
    ["D"] = "",
    ["O"] = "",
    ["T"] = "見到主人",
  },
  [3504] = {
    ["D"] = "Betraying, thieving woman! That\'s what I call her--that\'s all she\'ll ever be!$B$BI may have made a grave mistake, $N. I trusted a blood elf. What\'s worse, I trusted a woman!$B$BShe claimed Azshara would hold great riches... powerful items. I simply send some warriors with her to protect her and I would be rewarded. Well, look who\'s the fool--she\'s killed them all.$B$BI want vengeance, $N, but I can\'t afford to send anyone else. Find Ag\'tor at Valormok, north of the Haldarr Encampment. He\'ll tell you more.",
    ["O"] = "Deliver the Sealed Letter to Ag\'tor to Ag\'tor Bloodfist in Azshara.",
    ["T"] = "Betrayed",
  },
  [3505] = {
    ["D"] = "I thought as much.$B$BWe start our crusade against her workers along the southern bluffs on the northern peninsula of Azshara. Kill them with bloody rage--let them know they\'ve betrayed the wrong allies.$B$BDo not concern yourself with her yet--she spends most of her time with her bodyguards searching Azshara. It would be prudent after you\'ve slain her workers to find her personal camp. Scouting out where we can attack her would be wise. Perhaps there is something there we can use to provoke her.",
    ["O"] = "Kill 10 Blood Elf Reclaimers, and 10 Blood Elf Surveyors before seeking out Magus Rimtori\'s camp. Once you\'ve found it, look for something that might be important to her that can be used to draw her into a fight.",
    ["T"] = "Betrayed",
  },
  [3506] = {
    ["D"] = "A few more moments of thought brings a few ideas to mind, one of which brings a smile to your face: perhaps destroying the crystals would upset the blood elf responsible for the slaughter of so many orcs and the betrayal of Belgrom?$B$BYou continue to decipher more of the script and pictures and realize th


 GET_REG(latch_l_active);	}
bool TMC5130Stepper::latch_l_inactive()			{ GET_REG(latch_l_inactive);}
bool TMC5130Stepper::latch_r_active()			{ GET_REG(latch_r_active);	}
bool TMC5130Stepper::latch_r_inactive()			{ GET_REG(latch_r_inactive);}
bool TMC5130Stepper::en_latch_encoder()			{ GET_REG(en_latch_encoder);}
bool TMC5130Stepper::sg_stop()					{ GET_REG(sg_stop);			}
bool TMC5130Stepper::en_softstop()				{ GET_REG(en_softstop);		}
#include "TMCStepper.h"
#include "TMC_MACROS.h"

#define GET_REG00(SETTING) DRVSTATUS(); return READ_RDSEL00_register.SETTING
#define GET_REG01(SETTING) DRVSTATUS(); return READ_RDSEL01_register.SETTING
#define GET_REG10(SETTING) DRVSTATUS(); return READ_RDSEL10_register.SETTING

uint32_t TMC2660Stepper::DRVSTATUS() {
	uint32_t response = read()&0xFFCFF;
	READ_RDSEL00_register.sr = response & 0xFF;
	READ_RDSEL01_register.sr = response & 0xFF;
	READ_RDSEL10_register.sr = response & 0xFF;
	switch(rdsel()) {
		case 0b00: READ_RDSEL00_register.sr |= response & 0xFFC00; break;
		case 0b01: READ_RDSEL01_register.sr |= response & 0xFFC00; break;
		case 0b10: READ_RDSEL10_register.sr |= response & 0xFFC00; break;
		default: return 0;
	}
	return response;
}

uint16_t TMC2660Stepper::mstep()	{ if(rdsel() != 0b00) rdsel(0b00); GET_REG00(mstep); 	}
uint8_t TMC2660Stepper::se() 		{ if(rdsel() != 0b10) rdsel(0b10); GET_REG10(se); 		}
bool TMC2660Stepper::stst() 		{ GET_REG00(stst); }
bool TMC2660Stepper::olb() 			{ GET_REG00(olb);	 }
bool TMC2660Stepper::ola() 			{ GET_REG00(ola);	 }
bool TMC2660Stepper::s2gb() 		{ GET_REG00(s2gb); }
bool TMC2660Stepper::s2ga() 		{ GET_REG00(s2ga); }
bool TMC2660Stepper::otpw() 		{ GET_REG00(otpw); }
bool TMC2660Stepper::ot() 			{ GET_REG00(ot);	 }
bool TMC2660Stepper::sg() 			{ GET_REG00(sg_value);	 }

uint16_t TMC2660Stepper::sg_result(){
	uint16_t out = 0;
	if (rdsel() == 0b00) rdsel(0b01);
	DRVSTATUS();
	switch(rdsel()) {
		case 0b01: out = READ_RDSEL01_register.sg_result; break;
		case 0b10: out = READ_RDSEL10_register.sg_result; break;
		default: break;
	}
	return out;
}
#include "TMCStepper.h"
#include "TMC_MACROS.h"

TMC5160Stepper::TMC5160Stepper(uint16_t pinCS, float RS, int8_t link) : TMC5130Stepper(pinCS, RS, link)
  { defaults(); }
TMC5160Stepper::TMC5160Stepper(uint16_t pinCS, float RS, ui


x solid #FFFFFF; }
    .page-sidebar-reversed .page-sidebar-menu-hover-submenu li:hover a > .arrow {
      border-left: 8px solid #FFFFFF; }
  .page-sidebar-menu-hover-submenu li:hover > .sub-menu {
    background: #FFFFFF !important; } }

@media (max-width: 991px) {
  /* 991px */
  .page-header.navbar {
    padding: 0;
    /* Top menu */ }
    .page-header.navbar .top-menu .navbar-nav > li.dropdown > .dropdown-toggle:hover {
      background-color: #3d4154; } }

@media (max-width: 767px) {
  /* 767px */
  .page-header.navbar {
    background: #3B3F51;
    border-bottom: 1px solid #41465a;
    /* Top menu */ }
    .page-header.navbar .page-top {
      background: #3B3F51; }
    .page-header.navbar .top-menu .navbar-nav > li.dropdown > .dropdown-toggle:hover {
      background-color: #393d4e; } }

/****
 CSS3 Spinner Bar
****/
.page-spinner-bar > div,
.block-spinner-bar > div {
  background: #6fa7d7; }
@charset "UTF-8";
/* Cubic Bezier Transition */
@media print {
  body {
    background-color: #fff !important;
    direction: ltr; }
  .page-bar {
    display: none; }
  .page-sidebar-wrapper {
    display: none; }
  .page-quick-sidebar-wrapper {
    display: none; }
  .theme-panel {
    display: none; }
  .hidden-print {
    display: none; }
  .page-footer {
    display: none; }
  .no-page-break {
    page-break-after: avoid; }
  .page-container {
    margin: 0px !important;
    padding: 0px !important; }
  .page-content {
    padding: 0 !important;
    min-height: 300px !important;
    padding: 0px 20px 20px !important;
    margin: 0 !important; }
  .table th,
  .table td {
    text-align: left !important; } }

/***
Page Header
***/
.page-header.navbar {
  width: 100%;
  padding: 0 20px 0 20px;
  margin: 0;
  border: 0px;
  padding: 0px;
  box-shadow: none;
  height: 50px;
  min-height: 50px;
  filter: none;
  background-image: none;
  /* Fixed header */
  /* Header logo */
  /* Search box */
  /* Menu Toggler */
  /* Top menu */ }
  .page-header.navbar.navbar-fixed-top {
    z-index: 9995; }
  .page-header.navbar.navbar-static-top {
    z-index: 9995; }
  .page-header.navbar .page-logo {
    float: left;
    display: block;
    width: 235px;
    height: 50px;
    padding-left: 20px;
    padding-right: 20px; }
    .page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .page-logo {
      padding: 0; }
    .page-header.navbar .page-logo > .logo-image,
    .page-header.navbar .page-logo > a {
      display: inline-block;
      float: left; }
    .page-header.navbar .page-logo .logo-default {
      margin: 18px 0 0 0; }
    .page-header.navbar .page-logo .logo-mini {
      display: none;
      margin-left: 5px; }
    .page-header.navbar .page-logo .text-logo {
      padding-left: 20px;
      padding


s/Pointnet2_PyTorch.git#egg=pointnet2_ops&subdirectory=pointnet2_ops_lib"

(PoinTramba) $ pip install --upgrade https://github.com/unlimblue/KNN_CUDA/releases/download/0.2/KNN_CUDA-0.2-py3-none-any.whl

(PoinTramba) $ pip install causal-conv1d==1.1.1
(PoinTramba) $ pip install mamba-ssm==1.1.1

(PoinTramba) $ pip install -r requirements.txt
```

## Dataset:

### ScanObjNN
```
wget http://hkust-vgd.ust.hk/scanobjectnn/h5_files.zip
```

### ModelNet40
```
wget https://shapenet.cs.stanford.edu/media/modelnet40_normal_resampled.zip
```

### ShapeNetPart
```
wget https://shapenet.cs.stanford.edu/media/shapenetcore_partanno_segmentation_benchmark_v0_normal.zip
```

Please modify the dataset path in configuration files (dataset_configs).
```
├── data
    ├── ScanObjNN
        ├── h5_files
            ├── main_split
            └── ....
    ├── ModeNet40
        └── modelnet40_ply_hdf5_2048
            ├── ply_data_train0.h5
            └── ....
    └── ShapeNetPart
        └── shapenetcore_partanno_segmentation_benchmark_v0_normal
            ├── 02691156
            └── ....

```

## Usage

To run our code, you can directly run the sh files like:

```
bash run.sh
```

To run with different settings, please modify the args settings, including

```
--attention_depth
--mode_group
--type_pooling
--type_weighting
--mode_sort
--seed
etc
```

Note to modify the 'NAME' of the 'model' in the config files.
PointMambaFormer includes our alignment loss and our importance loss
BasePointMamba is the pure framework

## Citation

If you find these projects useful, please consider citing our paper.

## Note

Just released the codes for segmentation (sorry for being too lazy to clean the code, orz....).

## Acknowledgement

We thank [PointMamba](https://github.com/LMD0311/PointMamba), [PointCloudMamba](https://github.com/SkyworkAI/PointCloudMamba) [PointBERT](https://github.com/lulutang0608/Point-BERT), [Mamba](https://github.com/state-spaces/mamba) and other relevant works for their amazing open-sourced projects!
# cache

This folder is the cache directory for Hugging Face (HF) and Surya models S3 bucket.

When using online mode, downloaded models will be cached in this folder.

For [offline mode](https://huggingface.co/docs/transformers/main/installation#offline-mode) use, please download the models in advance and specify the model directory.

## Directory structures

**There are currently two directory structures:**
- The Huggingface CLI cache structure
- The Surya S3 bucket download structure

Starting from Marker version 1.5.4, the Surya S3 bucket structure is used by default.

### Huggingface CLI cache structure

use this command `tree -a ./cache/huggingface/hub`

```
./cache/huggingface/hub
├── .locks
│   ├── models--datalab-to--inline_math_det0
│   │   ├── 15937d4ae6bf71a1bbe36715fa9aeea2d56c3a7c.lock
│   │   ├── 1674f2a5253af7f3bcb38eb7dbe5f1cf3ed1dcb3-gzip.lock
│   │   ├── 310f06a4fe98b66f90fcecd2776d9699a6641993.lock
│   │   ├── a6344aac8c09253b3b630fb776ae94478aa0275b-gzip


划生育法)，制定本办法。

第二条 公民享有依法生育的权利，同时应当依法履行计划生育的义务，其生育行为应当符合人口与计划生育法的规定。

地方各级人民政府和县级以上各级人民政府计划生育行政部门应当采取综合措施，做好计划生育宣传教育、避孕节育服务等经常性工作，使本行政区域内公民的生育行为符合人口与计划生育法的规定。

第三条 不符合人口与计划生育法第十八条的规定生育子女的公民，应当依照本办法的规定缴纳社会抚养费。

社会抚养费的征收标准，分别以当地城镇居民年人均可支配收入和农村居民年人均纯收入为计征的参考基本标准，结合当事人的实际收入水平和不符合法律、法规规定生育子女的情节，确定征收数额。社会抚养费的具体征收标准由省、自治区、直辖市规定。

任何单位和个人不得违反法律、法规的规定擅自增设与计划生育有关的收费项目，提高社会抚养费征收标准。

第四条 社会抚养费的征收，由县级人民政府计划生育行政部门作出书面征收决定；县级人民政府计划生育行政部门可以委托乡(镇)人民政府或者街道办事处作出书面征收决定。

第五条 不符合人口与计划生育法第十八条规定生育子女的流动人口的社会抚养费的征收，按照下列规定办理：

(一)当事人的生育行为发生在其现居住地的，由现居住地县级人民政府计划生育行政部门按照现居住地的征收标准作出征收决定；

(二)当事人的生育行为发生在其户籍所在地的，由户籍所在地县级人民政府计划生育行政部门按照户籍所在地的征收标准作出征收决定；

(三)当事人的生育行为发生时，其现居住地或者户籍所在地县级人民政府计划生育行政部门均未发现的，此后由首先发现其生育行为的县级人民政府计划生育行政部门按照当地的征收标准作出征收决定。

当事人在一地已经被征收社会抚养费


    other.timePeriodStart == timePeriodStart &&
    other.timePeriodEnd == timePeriodEnd &&
    other.timeOpen == timeOpen &&
    other.timeClose == timeClose &&
    other.valueOpen == valueOpen &&
    other.valueHigh == valueHigh &&
    other.valueLow == valueLow &&
    other.valueClose == valueClose &&
    other.valueCount == valueCount;

  @override
  int get hashCode =>
    // ignore: unnecessary_parenthesis
    (timePeriodStart == null ? 0 : timePeriodStart!.hashCode) +
    (timePeriodEnd == null ? 0 : timePeriodEnd!.hashCode) +
    (timeOpen == null ? 0 : timeOpen!.hashCode) +
    (timeClose == null ? 0 : timeClose!.hashCode) +
    (valueOpen == null ? 0 : valueOpen!.hashCode) +
    (valueHigh == null ? 0 : valueHigh!.hashCode) +
    (valueLow == null ? 0 : valueLow!.hashCode) +
    (valueClose == null ? 0 : valueClose!.hashCode) +
    (valueCount == null ? 0 : valueCount!.hashCode);

  @override
  String toString() => 'IndexesIndexTimeseriesItem[timePeriodStart=$timePeriodStart, timePeriodEnd=$timePeriodEnd, timeOpen=$timeOpen, timeClose=$timeClose, valueOpen=$valueOpen, valueHigh=$valueHigh, valueLow=$valueLow, valueClose=$valueClose, valueCount=$valueCount]';

  Map<String, dynamic> toJson() {
    final json = <String, dynamic>{};
    if (this.timePeriodStart != null) {
      json[r'time_period_start'] = this.timePeriodStart!.toUtc().toIso8601String();
    } else {
      json[r'time_period_start'] = null;
    }
    if (this.timePeriodEnd != null) {
      json[r'time_period_end'] = this.timePeriodEnd!.toUtc().toIso8601String();
    } else {
      json[r'time_period_end'] = null;
    }
    if (this.timeOpen != null) {
      json[r'time_open'] = this.timeOpen!.toUtc().toIso8601String();
    } else {
      json[r'time_open'] = null;
    }
    if (this.timeClose != null) {
      json[r'time_close'] = this.timeClose!.toUtc().toIso8601String();
    } else {
      json[r'time_close'] = null;
    }
    if (this.valueOpen != null) {
      json[r'value_open'] = this.valueOpen;
    } else {
      json[r'value_open'] = null;
    }
    if (this.valueHigh != null) {
      json[r'value_high'] = this.valueHigh;
    } else {
      json[r'value_high'] = null;
    }
    if (this.valueLow != null) {
      json[r'value_low'] = this.valueLow;
    } else {
      json[r'value_low'] = null;
    }
    if (this.valueClose != null) {
      json[r'value_close'] = this.valueClose;
    } else {
      json[r'value_close'] = null;
    }
    if (this.valueCount != null) {
      json[r'value_count'] = this.valueCount;
    } else {
      json[r'value_count'] = null;
    }
    return json;
  }

  /// Returns a new [IndexesIndexTimeseriesItem] instance and imports its values from
  /// [value] if it's a [Map], null otherwise.
  // ignore: prefer_constructors_over_static_methods
  static IndexesIndexTimeseriesItem? fromJson(dynamic value) {
    if (value is Map) {
      final json = value.cast<String, dynamic>();

      // Ensure that the map contains the required keys.
      // Note 1: the values aren't checked for validity beyond being non-null.
      // Note 2: this code is stripped in release mode!
      assert(() {
        requiredKeys.forEach((key) {
          assert(json.containsKey(key), 'Required key "IndexesIndexTimeseriesItem[$key]" is missing from JSON.');


"><tt class="py-keyword">from</tt> <tt id="link-10" class="py-name" targets="Module gluon.sqlhtml=gluon.sqlhtml-module.html">sqlhtml</tt> <tt class="py-keyword">import</tt> <tt id="link-11" class="py-name" targets="Class gluon.sqlhtml.SQLFORM=gluon.sqlhtml.SQLFORM-class.html">SQLFORM</tt><tt class="py-op">,</tt> <tt id="link-12" class="py-name" targets="Class gluon.sqlhtml.SQLTABLE=gluon.sqlhtml.SQLTABLE-class.html">SQLTABLE</tt> </tt>
<tt class="py-lineno">21</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-13" class="py-name" targets="Module gluon.compileapp=gluon.compileapp-module.html">compileapp</tt> <tt class="py-keyword">import</tt> <tt id="link-14" class="py-name" targets="Function gluon.compileapp.LOAD()=gluon.compileapp-module.html#LOAD">LOAD</tt> </tt>
<tt class="py-lineno">22</tt>  <tt class="py-line"> </tt>
<tt class="py-lineno">23</tt>  <tt class="py-line"><tt class="py-comment"># Dummy code to enable code completion in IDE's.</tt> </tt>
<tt class="py-lineno">24</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
<tt class="py-lineno">25</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt id="link-15" class="py-name">globals</tt> <tt class="py-keyword">import</tt> <tt id="link-16" class="py-name" targets="Class gluon.globals.Request=gluon.globals.Request-class.html">Request</tt><tt class="py-op">,</tt> <tt id="link-17" class="py-name" targets="Class gluon.globals.Response=gluon.globals.Response-class.html">Response</tt><tt class="py-op">,</tt> <tt id="link-18" class="py-name" targets="Class gluon.globals.Session=gluon.glo


ExecutionTime()
	s.ProtoScenario.ExecutionTime = currentScenarioExecTime + execTime
}

// ExecTime returns the time taken for scenario execution
func (s ScenarioResult) ExecTime() int64 {
	return s.ProtoScenario.ExecutionTime
}

func (s ScenarioResult) updateExecutionTimeFromItems(protoItems []*gauge_messages.ProtoItem) {
	for _, item := range protoItems {
		if item.GetItemType() == gauge_messages.ProtoItem_Step {
			stepExecTime := item.GetStep().GetStepExecutionResult().GetExecutionResult().GetExecutionTime()
			s.AddExecTime(stepExecTime)
		} else if item.GetItemType() == gauge_messages.ProtoItem_Concept {
			conceptExecTime := item.GetConcept().GetConceptExecutionResult().GetExecutionResult().GetExecutionTime()
			s.AddExecTime(conceptExecTime)
		}
	}
}

func (s ScenarioResult) GetPreHook() []*gauge_messages.ProtoHookFailure {
	if s.ProtoScenario.PreHookFailure == nil {
		return []*gauge_messages.ProtoHookFailure{}
	}
	return []*gauge_messages.ProtoHookFailure{s.ProtoScenario.PreHookFailure}
}

func (s ScenarioResult) GetPostHook() []*gauge_messages.ProtoHookFailure {
	if s.ProtoScenario.PostHookFailure == nil {
		return []*gauge_messages.ProtoHookFailure{}
	}
	return []*gauge_messages.ProtoHookFailure{s.ProtoScenario.PostHookFailure}
}

func (s ScenarioResult) AddPreHook(f ...*gauge_messages.ProtoHookFailure) {
	s.ProtoScenario.PreHookFailure = f[0]
}

func (s ScenarioResult) AddPostHook(f ...*gauge_messages.ProtoHookFailure) {
	s.ProtoScenario.PostHookFailure = f[0]
}

func (s ScenarioResult) Item() interface{} {
	return s.ProtoScenario
}
/*----------------------------------------------------------------
 *  Copyright (c) ThoughtWorks, Inc.
 *  Licensed under the Apache License, Version 2.0
 *  See LICENSE in the project root for license information.
 *----------------------------------------------------------------*/

package lang

import (
	"context"
	"fmt"
	"os"
	"strconv"
	"strings"

	"github.com/getgauge/gauge/config"
	"github.com/getgauge/gauge/util"
	"github.com/sourcegraph/go-langserver/pkg/lsp"
	"github.com/sourcegraph/jsonrpc2"
)

type registrationParams struct {
	Registrations []registration `json:"registrations"`
}

type registration struct {
	Id              string      `json:"id"`
	Method          string      `json:"method"`
	RegisterOptions interface{} `json:"registerOptions"`
}

type codeLensRegistrationOptions struct {
	textDocumentRegistrationOptions
	ResolveProvider bool `json:"resolveProvider,omitempty"`
}

type didChangeWatchedFilesRegistrationOptions struct {
	Watchers []fileSystemWatcher `json:"watchers"`
}

type fileSystemWatcher struct {
	GlobPattern string `json:"globPattern"`
	Kind        int    `json:"kind"`
}

type watchKind int

const (
	created watchKind = 1
	deleted watchKind = 4
)

type textDocumentRegistrationOptions struct {
	DocumentSelector []documentSelector `json:"documentSelector"`
}

type textDocumentChangeRegistrationOptions struct {
	textDocumentRegistrationOptions
	SyncKind lsp.TextDocumentSyncKind `json:"syncKind,omitempty"`
}

type documentSelector struct {
	Scheme   string `json:"scheme"`
	Language string `json:"language"`
	Pattern  string `json:"pattern"`
}

var clientCapabilities ClientCapabilities

type ClientCapabilities struct {
	SaveFiles bool `json:"saveFiles,omitempty"`
}

func gaugeLSPCapabilities() lsp.InitializeResult {
	kind := lsp.T


lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
        };
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                    "uri",
                    |m: &Header| { &m.uri },
                    |m: &mut Header| { &mut m.uri },
                ));
                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                    "content_type",
                    |m: &Header| { &m.content_type },
                    |m: &mut Header| { &mut m.content_type },
                ));
                fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                    "method",
                    |m: &Header| { &m.method },
                    |m: &mut Header| { &mut m.method },
                ));
                fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeSint32>(
                    "status_code",
                    |m: &Header| { &m.status_code },
                    |m: &mut Header| { &mut m.status_code },
                ));
                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<UserField>>(
                    "user_fields",
                    |m: &Header| { &m.user_fields },
                    |m: &mut Header| { &mut m.user_fields },
                ));
                ::protobuf::reflect::MessageDescriptor::new::<Header>(
                    "Header",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static Header {
        static mut instance: ::protobuf::lazy::Lazy<Header> = ::protobuf::lazy::Lazy {
            lock: ::protobuf::lazy::ONCE_INIT,
            ptr: 0 as *const Header,
        };
        unsafe {
            instance.get(Header::new)
        }
    }
}

impl ::protobuf::Clear for Header {
    fn clear(&mut self) {
        self.uri.clear();
        self.content_type.clear();
        self.method.clear();
        self.status_code = ::std::option::Option::None;
        self.user_fields.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for Header {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for Header {
    fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
        ::protobuf::reflect::ProtobufValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct UserField {
    // message fields
    key: ::protobuf::SingularField<::std::string::String>,
    value: ::protobuf::SingularField<::std::vec::Vec<u8>>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a UserField {
    fn default() -> &'a UserField {
        <UserField as ::protobuf::Mess


 the voting power of a specific witness.
    pub fn voting_power(&self, name: &PublicKey) -> VotingPower {
        self.witnesses
            .get(name)
            .map_or_else(|| 0, |x| x.voting_power)
    }

    /// Returns the stake required to reach a quorum (2f+1).
    pub fn quorum_threshold(&self) -> VotingPower {
        // If N = 3f + 1 + k (0 <= k < 3)
        // then (2 N + 3) / 3 = 2f + 1 + (2k + 2)/3 = 2f + 1 + k = N - f
        let total_votes: VotingPower = self.witnesses.values().map(|x| x.voting_power).sum();
        2 * total_votes / 3 + 1
    }

    /// Returns the stake required to reach availability (f+1).
    pub fn validity_threshold(&self) -> VotingPower {
        // If N = 3f + 1 + k (0 <= k < 3)
        // then (N + 2) / 3 = f + 1 + k/3 = f + 1
        let total_votes: VotingPower = self.witnesses.values().map(|x| x.voting_power).sum();
        (total_votes + 2) / 3
    }

    /// Returns the addresses of all witnesses.
    pub fn witness_address(&self, name: &PublicKey) -> Option<SocketAddr> {
        self.witnesses.get(name).map(|witness| witness.address)
    }

    /// Returns the addresses of all witnesses.
    pub fn witnesses_addresses(&self) -> Vec<(PublicKey, SocketAddr)> {
        self.witnesses
            .iter()
            .map(|(name, witness)| (*name, witness.address))
            .collect()
    }
}

/// The private configuration of the identity provider and witnesses.
#[derive(Serialize, Deserialize)]
pub struct PrivateConfig {
    /// The public key of this entity.
    pub name: PublicKey,
    /// The private key of this entity.
    pub secret: KeyPair,
}

impl Default for PrivateConfig {
    fn default() -> Self {
        Self::new()
    }
}

impl PrivateConfig {
    /// Creates a new private configuration.
    pub fn new() -> Self {
        let (name, secret) = KeyPair::generate_production_keypair();
        Self { name, secret }
    }
}

impl Import for PrivateConfig {}
impl Export for PrivateConfig {}
<filename>examples/observe_property.rs<gh_stars>1-10
use mpv_socket::{Error, MpvSocket, Property};

fn main() -> Result<(), Error> {
    pretty_env_logger::init_timed();

    let mut mpv_socket = MpvSocket::connect(r#"\\.\pipe\mpv-socket"#)?;

    let client_name = mpv_socket.client_name()?;
    let version = mpv_socket.get_version()?;
    let filename: String = mpv_socket.get_property(Property::Filename)?;

    println!("Client name: {}", client_name);
    println!("Version: {}", version);
    println!("Filename: {}", filename);

    // Observe property changes with a iterator based API:
    for result in mpv_socket
        .observe_property(Property::PlaybackTime)?
        .take(10)
    {
        let playback_time: f64 = result?;
        log::info!("Playback time: {}", playback_time);
    }

    Ok(())
}
<filename>src/protocol/cac/connection/cstp/cstp_frame/mod.rs
use crate::AnyError;

mod read;
mod write;

mod fmt_display;

#[derive(Debug)]
pub enum CstpFrame {
    Data(Vec<u8>),
    DpdReq(Vec<u8>),
    DpdResp(Vec<u8>),
    Disconect,
    Keepalive,
    Compressed(Vec<u8>),
    Terminate,
}
<gh_stars>1-10
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this


synthesis, ts_transition])

    sampling_args = deepcopy(diffeqsolve_args)
    sampling_args.update({"saveat": diffrax.SaveAt(ts=ts_samples)})

    solutions = inference(key, model, 1, args.size * 2, sampling_args)

    images = to_rgb(solutions.ys["x"])
    images_synthesis = np.array(
        images[: len(ts_synthesis), ...].transpose(1, 0, 2, 3, 4)
    )
    images_transition = np.array(
        images[len(ts_synthesis) :, ...].transpose(1, 0, 2, 3, 4)
    )
    writer.add_video(
        "anime_synthesis",
        images_synthesis,
    )

    padded_exemplars = np.zeros(images_transition.shape)
    padded_exemplars[..., : args.size, : args.size] = exemplars_np
    writer.add_video(
        "anime",
        np.concatenate([images_transition, padded_exemplars]),
    )

    writer.close()


格式报文或 29 位标识符的扩展格式报文。

| **标准帧&扩展帧对比** |             |                       |
| --------------------- | ----------- | --------------------- |
| **帧格式**            | **标准帧**  | **扩展帧**            |
| 规范                  | CAN2.0A     | CAN2.0B               |
| CAN ID（标识符）长度  | 11 bits     | 29 bits               |
| CAN ID（标识符）范围  | 0x000~0x7FF | 0x00000000~0x1FFFFFFF |

#### 14.1.6.2 CAN报文帧类型

CAN报文类型又分如5种帧类型：

数据帧：主要用于发送方向接收方传输数据的帧；

遥控帧：主要用于接收方向具有相同ID的发送方请求数据的帧；

错误帧：主要用于当检测出错误时向其他节点通知错误的帧。

过载帧：主要用于接收方通知其他尚未做好接收准备的帧。

间隔帧：主要用于将数据帧及遥控帧与前一帧分隔开来的帧。

其中数据帧是使用最多的帧类型，这里重点介绍以下数据帧。
数据帧如下图所示：

![](http://photos.100ask.net/NewHomeSite/LinuxCan_Image0002.jpeg)

由上图所示，数据帧包括：
（1）帧起始。表示数据帧开始的段。

（2）仲裁段。表示该帧优先级的段。

（3）控制段。表示数据的字节数及保留位的段。

（4）数据段。数据的内容，一帧可发送0~8个字节的数据。

（5）CRC段。检查帧的传输错误的段。

（6）ACK段。表示确认正常接收的段。

（7）帧结束。表示数据帧结束的段。

具体介绍可以查看”CAN2.0A”、”CAN2.0B”详细介绍。

我们主要关注我们编程所需要关注的几个段：

ID: CAN报文ID；

IDE: 为0是标准帧，为1是扩展帧；

RTR: 为0是数据帧，为1是远程帧；

DLC: CAN报文数据长度，范围0~8字节；

Data：数据，0~8个字节；

## 14.2 CAN编程框架创建

当前我们所学习的是应用编程，为了以后CAN编程框架的通用性和可移植性，我们创建一个抽象的CAN应用编程框架，此框架可以适用于单片机应用编程，也可以适用于linux应用编程。

因此，根据CAN总线编程的通用属性，我们抽象出如下属性：

| 属性          | 属性描述                                                     | 说明 |
| ------------- | ------------------------------------------------------------ | ---- |
| CAN端口号     | 描述CAN端口，如CAN1,CAN2,CAN3,与具体硬件外设有关。           |      |
| CAN收发器配置 | 描述CAN收发器模式设置，收发器模式有Normal，Stanby，Sleep，ListenOnly等模式；  本章节所使用的收发器是硬件默认配置，因此不需要配置。 |      |
| CAN控制器配置 |


/// Closes a window.
///
/// # Parameters
///
/// - `NSTDWindow *const window` - Pointer to the window.
#[inline]
#[cfg_attr(feature = "clib", no_mangle)]
pub unsafe extern "C" fn nstd_gui_window_close(window: *mut NSTDWindow) {
    Box::from_raw(*window);
    *window = std::ptr::null_mut();
}
<reponame>Polkadex-Substrate/interbtc
mod mock;
use mock::{assert_eq, *};

#[test]
fn integration_test_oracle_with_parachain_shutdown_fails() {
    ExtBuilder::build().execute_with(|| {
        SecurityPallet::set_status(StatusCode::Shutdown);

        assert_noop!(
            Call::Oracle(OracleCall::feed_values { values: vec![] }).dispatch(origin_of(account_of(ALICE))),
            DispatchError::BadOrigin
        );
    })
}
<filename>backend/src/plugin/mod.rs
use std::{
    collections::{HashMap, HashSet},
    fmt,
    io::Cursor,
    str::FromStr,
    sync::Arc,
    time::{Duration, SystemTime},
};

use chrono::prelude::*;
use console_api::{instrument::Update, tasks::TaskDetails};
use dashmap::DashMap;
use futures::{StreamExt, TryStreamExt};
use grafana_plugin_sdk::{backend, data, prelude::*};
use humantime::format_duration;
use serde::Deserialize;
use tokio::{sync::mpsc, task::JoinHandle};
use tokio_stream::wrappers::ReceiverStream;
use tracing::{debug, error, info, trace, warn};

use crate::{
    connection::Connection,
    metadata::{MetaId, Metadata},
    spawn_named,
    task::{Task, TaskId},
};

#[path = "data.rs"]
mod data_service_impl;
mod diagnostics;
mod resource;
mod stream;

#[derive(Clone, Debug, Eq, Hash, PartialEq)]
struct DatasourceUid(String);

impl fmt::Display for DatasourceUid {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        self.0.fmt(f)
    }
}

#[derive(Debug, thiserror::Error)]
pub enum Error {
    #[error("stream already running")]
    StreamAlreadyRunning,

    #[error("missing task ID")]
    MissingTaskId,
    #[error("invalid task ID: {0}")]
    InvalidTaskId(String),
    #[error("task with ID {} not found", (.0).0)]
    TaskNotFound(TaskId),

    #[error("unknown path: {0}. must be one of: tasks, resources/<id>")]
    UnknownPath(String),

    #[error("data not found for instance")]
    DatasourceInstanceNotFound,

    #[error("invalid datasource URL: {0}")]
    InvalidDatasourceUrl(String),

    #[error("Datasource ID not present on request")]
    MissingDatasource,

    #[error("Error converting data: {0}")]
    ConvertTo(#[from] backend::ConvertToError),
    #[error("Error converting request: {0}")]
    ConvertFrom(#[from] backend::ConvertFromError),
    #[error("Error creating frame : {0}")]
    Data(#[from] data::Error),
}

#[derive(Clone, Debug, Deserialize, PartialEq, Eq)]
#[serde(tag = "path")]
enum Path {
    #[serde(rename = "tasks")]
    Tasks,
    #[serde(rename = "task", rename_all = "camelCase")]
    TaskDetails { task_id: TaskId },
    #[serde(rename = "taskHistogram", rename_all = "camelCase")]
    TaskHistogram { task_id: TaskId },
    #[serde(rename = "resources")]
    Resources,
}

impl fmt::Display for Path {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        ma


_store(pub(super) trait Store)]
	pub struct Pallet<T>(_);

	pub type NegativeImbalanceOf<C, T> =
		<C as Currency<<T as frame_system::Config>::AccountId>>::NegativeImbalance;

	pub type BalanceOf<T> =
		<<T as Config>::Currency as Currency<<T as frame_system::Config>::AccountId>>::Balance;

	/// Configure the pallet by specifying the parameters and types it depends on.
	#[pallet::config]
	pub trait Config: frame_system::Config + pallet_balances::Config {
		/// The overarching event type.
		type Event: From<Event<Self>> + IsType<<Self as frame_system::Config>::Event>;

		/// The currency mechanism.
		type Currency: ReservableCurrency<Self::AccountId>;

		/// Weight information for extrinsics in this pallet.
		type WeightInfo: WeightInfo;

		/// Message Prefix for signing messages using ecdsa signature
		#[pallet::constant]
		type MessagePrefix: Get<&'static [u8]>;

		#[pallet::constant]
		type ReservationFee: Get<BalanceOf<Self>>;
	}

	// holding AccountId32 address that bonded for H160 address
	#[pallet::storage]
	pub type H160Mapping<T: Config> = StorageMap<_, Twox64Concat, H160, AccountId32>;

	// holding H160 address that bonded for AccountId32 address
	#[pallet::storage]
	pub type Id32Mapping<T: Config> = StorageMap<_, Twox64Concat, AccountId32, H160>;

	#[pallet::event]
	#[pallet::generate_deposit(pub(super) fn deposit_event)]
	pub enum Event<T: Config> {
		Bonded { sender: T::AccountId, address: H160 },
		Unbonded { sender: T::AccountId, address: H160 },
	}

	#[derive(PartialEq)]
	#[pallet::error]
	pub enum Error<T> {
		// when can't verify the signature and message
		SignatureOrAddressNotCorrect,
		// Substrate address or EVM address already bond
		AlreadyBond,
		// Making unbond with non-bonding account
		NonbondAccount,
	}

	#[pallet::call]
	impl<T: Config> Pallet<T>
	where
		[u8; 32]: From<<T as frame_system::Config>::AccountId>,
		AccountId32: From<<T as frame_system::Config>::AccountId>,
	{
		/// Bond Substrate(H256) address with EVM(H160) address
		///
		/// The origin must be Signed
		///
		/// Parameters:
		/// - `signature`: signature of the address that signed the message contain hex format of origin
		///
		/// - `address`: EVM(H160) address that you want to bond
		///
		/// - `withdraw`: true/false withdraw all the balance of original account of address trasfer to
		/// the origin, always KeepAlive original address
		///
		/// Emits `Bonded` event when successful.
		///
		/// Weight: `O(1)`
		#[pallet::weight(<T as pallet::Config>::WeightInfo::bond(100u32))]
		#[transactional]
		pub fn bond(
			origin: OriginFor<T>,
			signature: [u8; 65],
			address: H160,
			withdraw: bool,
		) -> DispatchResult {
			let sender = ensure_signed(origin)?;
			let account_id: AccountId32 = sender.clone().into();

			ensure!(
				Id32Mapping::<T>::get(account_id.clone()).is_none()
					&& H160Mapping::<T>::get(address).is_none(),
				<Error<T>>::AlreadyBo


ndow.Promise)&&(window.Promise=null)</script>


d"})}resolveResponse(e){let t=e.data.uuid,r=W(this,s5).get(t);if(r){let i=e.data.resp;W(this,s5).delete(t),i.payloadType==="err"?r.reject(RH(i)):r.resolve(i)}else console.warn("Can't find request.")}};s5=new WeakMap;var OE=Z0(cl()),ME=new TextDecoder("utf-8"),QH,$H,NH,WH,UH;QH=new WeakMap,$H=new WeakMap,NH=new WeakMap,WH=new WeakMap,UH=new WeakMap;var bE=new Int32Array(new ArrayBuffer(4));ge&&(globalThis.Worker=X0("worker_threads").Worker);var a5,Kc,sw,En,Mz=class extends pl{constructor(e){super(),x1(this,Kc),x1(this,a5,void 0),this.close=()=>{},x1(this,En,async(r,i)=>{if(!(!i||!i.type))switch(i.type){case"resolve":Y2(this,a5,new Int32Array(i.data)),this.resolve();return;case"response":this.resolveResponse(i);return;case"system":this.systemQueue.put(i.data);return;default:this.outputQueue.put(i);return;case"sync-request":{let n=i,s=n.data.msg,a=n.data.reqData;switch(s.type){case"read":{let o=await this.inputQueue.get();await EH(r,a,o);break}default:throw new $e(`Unsupported request type '${s.type}'.`)}return}case"request":throw new $e("Can't send messages of type 'request' from a worker. Please Use 'sync-request' instead.")}});let t=r=>{Wt(this,Kc,sw).call(this,r),this.close=()=>{r.terminate(),this.putClosedMessage()};let i={type:"init",data:{config:e,channelType:F4.SharedArrayBuffer}};r.postMessage(i)};if(fl(e.baseUrl))dl(`${e.baseUrl}webr-worker.js`,r=>t(r));else{let r=new Worker(`${e.baseUrl}webr-worker.js`);t(r)}({resolve:this.resolve,promise:this.initialised}=Xn())}interrupt(){if(!W(this,a5))throw new $e("Failed attempt to interrupt before initialising interruptBuffer");this.inputQueue.reset(),W(this,a5)[0]=1}};a5=new WeakMap,Kc=new WeakSet,sw=function(e){ge?e.on("message",t=>{W(this,En).call(this,e,t)}):e.onmessage=t=>W(this,En).call(this,e,t.data)},En=new WeakMap;var qH,jH,XH,ZH;qH=new WeakMap,jH=new WeakMap,XH=new WeakMap,ZH=new WeakMap;var DE=Z0(cl());ge&&(globalThis.Worker=X0("worker_threads").Worker);var c5,K0,l5,Yc,aw,Jc,bz,tl,ow,Tn,GH=class extends pl{constructor(e){super(),x1(this,Yc),x1(this,Jc),x1(this,tl),this.close=()=>{},x1(this,c5,new Map),x1(this,K0,void 0),x1(this,l5,!1),x1(this,Tn,(r,i)=>{if(!(!i||!i.type))switch(i.type){case"resolve":this.resolve();return;case"response":this.resolveResponse(i);return;case"system":this.systemQueue.put(i.data);return;default:this.outputQueue.put(i


trols #playerpage header div.controls {
	  button {
		bottom: 0;
	  }
	}
  }
}@editor-topbar-button-margin:	4px;
@color-keyboard-shortcuts:  #afbfdf;
@background-keyboard-shortcuts: #3F4963;
@color-divider-rule: rgb(34,39,54);

.mixin-keyboard-shortcut() {
	font-family: "Source Sans Pro", "Source Sans", sans-serif;
	font-size: 100%; // bootstrap
	font-weight: 400;
	color: @color-keyboard-shortcuts;
	border: 1px solid @color-keyboard-shortcuts;
	background: none;
	border-radius: 3px 3px;
	padding: 0px 5px;
	margin: 0 3px;
	display: inline-block;
	text-align: center;
	text-transform: capitalize;
	&.wide {
	  padding: 0 15px;
	}
	&:first-child {
	  margin-left: 0;
	}
	&.modifier {
	  text-indent: -10000px;
	  position: relative;
	  padding: 0;
	  &:after {
		content: "";
		position: absolute;
		top: 50%;
		left: 50%;
		margin-left: -15px;
		margin-top: -15px;
		width: 30px;
		height: 30px;
		background: url('/images/v2/mod_keys.svg') no-repeat;
	  }
	  &.key_cmd:after {
		background-position: 0px 0;
	  }
	  &.key_ctrl:after {
		background-position: -30px 0;
	  }
	  &.key_alt:after {
		background-position: -60px 0;
	  }
	  &.key_shift:after {
		background-position: -90px 0;
	  }
	}
}

body.bEditor {

  .mixin-threecol;

  .searchbox svg {
	width: 25px;
	height: 40px;
	margin-right: 5px;
  }

  &.inVR {
	#editor-header, #progressbar, #info-pane, #editor-footer, #drag-overlay, >div.popover {
	  display: none;
	}
	>#canvases {
	  position: absolute;
	  top:0;
	  bottom:0;
	  >div {
		display: none;
	  }
	  >div.webvr-polyfill-fullscreen-wrapper {
		display: block;
	  }
	}
  }

  div.modal {
	-webkit-font-smoothing: subpixel-antialiased;
  }

  .floating-box {
	z-index: 65;
  }

  #canvases {	// considered the master viewport
	position: absolute;
	left: 0;
	right: 0;
	top: @height-editor-header;
	bottom: @height-editor-footer;
	overflow: hidden;
	z-index: 2;
  }

  #canvas_parent {
	min-height: 270px;
  }

  /* buttons */
  button.ui_off svg, button[disabled] svg {
	opacity: 0.5;
  }
  button[disabled] {	// reset the reset..
	opacity: 1;
  }

  button.svg, a.btn.svg {	// default
	background: transparent;
	color: #ccc;
	svg {
	  stroke: #ccc;
	  background: none;
	}
  }

  div#row2 {
	display: -webkit-flex;
	-webkit-flex-flow: row wrap;
	-webkit-justify-content: center;
	-webkit-align-items: center;
	-webkit-align-content: center;

	display:flex;
	justify-content: center;
	flex-flow: row wrap;
	align-items: center;
	align-


"updated-core-file",
			},
			objs:          []client.Object{deplWithImage("k8s.gcr.io/coredns:1.6.7"), cm, kubeadmCM},
			expectErr:     false,
			expectUpdates: true,
			expectImage:   "k8s.gcr.io/coredns:1.7.0",
		},
		{
			name: "kubeadm defaults, stay on k8s.gcr.io/coredns:1.7.0",
			kcp: &controlplanev1.KubeadmControlPlane{
				Spec: controlplanev1.KubeadmControlPlaneSpec{
					KubeadmConfigSpec: bootstrapv1.KubeadmConfigSpec{
						ClusterConfiguration: bootstrapv1.ClusterConfiguration{
							DNS: bootstrapv1.DNS{
								ImageRepository: "k8s.gcr.io",
								ImageTag:        "1.7.0",
							},
						},
					},
					Version: "v1.23.0",
				},
			},
			migrator: &fakeMigrator{
				migratedCorefile: "updated-core-file",
			},
			objs:          []client.Object{deplWithImage("k8s.gcr.io/coredns:1.7.0"), cm, kubeadmCM},
			expectErr:     false,
			expectUpdates: false,
		},
		{
			name: "kubeadm defaults, upgrade from k8s.gcr.io/coredns:1.7.0 to k8s.gcr.io/coredns/coredns:v1.8.0",
			kcp: &controlplanev1.KubeadmControlPlane{
				Spec: controlplanev1.KubeadmControlPlaneSpec{
					KubeadmConfigSpec: bootstrapv1.KubeadmConfigSpec{
						ClusterConfiguration: bootstrapv1.ClusterConfiguration{
							DNS: bootstrapv1.DNS{
								ImageRepository: "k8s.gcr.io",
								ImageTag:        "v1.8.0", // NOTE: ImageTags requires the v prefix
							},
						},
					},
					Version: "v1.23.0",
				},
			},
			migrator: &fakeMigrator{
				migratedCorefile: "updated-core-file",
			},
			objs:          []client.Object{deplWithImage("k8s.gcr.io/coredns:1.7.0"), cm, kubeadmCM},
			expectErr:     false,
			expectUpdates: true,
			expectImage:   "k8s.gcr.io/coredns/coredns:v1.8.0", // NOTE: ImageName has coredns/coredns
		},
		{
			name: "kubeadm defaults, stay on k8s.gcr.io/coredns/coredns:v1.8.0",
			kcp: &controlplanev1.KubeadmControlPlane{
				Spec: controlplanev1.KubeadmControlPlaneSpec{
					KubeadmConfigSpec: bootstrapv1.KubeadmConfigSpec{
						ClusterConfiguration: bootstrapv1.ClusterConfiguration{
							DNS: bootstrapv1.DNS{
								ImageRepository: "k8s.gcr.io",
								ImageTag:        "v1.8.0", // NOTE: ImageTags requires the v prefix
							},
						},
					},
					Version: "v1.23.0",
				},
			},
			migrator: &fakeMigrator{
				migratedCorefile: "updated-core-file",
			},
			objs:          []client.Object{deplWithImage("k8s.gcr.io/coredns/coredns:v1.8.0"), cm, kubeadmCM},
			expectErr:     false,
			expectUpdates: false,
		},
		{
			name: "stay on k8s.gcr.io/coredns/coredns:v1.8.1",
			kcp: &controlplanev1.KubeadmControlPlane{
				Spec: controlplanev


, const ivyc_s1::vector__ivy__access_path__ &a) {
	        s << '[';
		for (unsigned i = 0; i < a.size(); i++) {
		    if (i != 0)
		        s << ',';
		    s << a[i];
		}
	        s << ']';
		return s;
            }

	    template <>
	    ivyc_s1::vector__ivy__access_path__ _arg<ivyc_s1::vector__ivy__access_path__>(std::vector<ivy_value> &args, unsigned idx, long long bound) {
	        ivy_value &arg = args[idx];
	        if (arg.atom.size())
	            throw out_of_bounds(idx);
	        ivyc_s1::vector__ivy__access_path__ a;
	        a.resize(arg.fields.size());
		for (unsigned i = 0; i < a.size(); i++) {
		    a[i] = _arg<ivyc_s1::ivy__access_path>(arg.fields,i,0);
	        }
	        return a;
	    }

	    template <>
	    void __deser<ivyc_s1::vector__ivy__access_path__>(ivy_deser &inp, ivyc_s1::vector__ivy__access_path__ &res) {
	        inp.open_list();
	        while(inp.open_list_elem()) {
		    res.resize(res.size()+1);
	            __deser(inp,res.back());
		    inp.close_list_elem();
                }
		inp.close_list();
	    }

	    template <>
	    void __ser<ivyc_s1::vector__ivy__access_path__>(ivy_ser &res, const ivyc_s1::vector__ivy__access_path__ &inp) {
	        int sz = inp.size();
	        res.open_list(sz);
	        for (unsigned i = 0; i < (unsigned)sz; i++) {
		    res.open_list_elem();
	            __ser(res,inp[i]);
		    res.close_list_elem();
                }
	        res.close_list();
	    }

	    #ifdef Z3PP_H_
	    template <>
            z3::expr __to_solver(gen& g, const z3::expr& z3val, ivyc_s1::vector__ivy__access_path__& val) {
	        z3::expr z3end = g.apply("vector[ivy.access_path].end",z3val);
	        z3::expr __ret = z3end  == g.int_to_z3(z3end.get_sort(),val.size());
	        unsigned __sz = val.size();
	        for (unsigned __i = 0; __i < __sz; ++__i)
		    __ret = __ret && __to_solver(g,g.apply("vector[ivy.access_path].value",z3val,g.int_to_z3(g.sort("vector[ivy.access_path].domain"),__i)),val[__i]);
                return __ret;
            }

	    template <>
	    void  __from_solver<ivyc_s1::vector__ivy__access_path__>( gen &g, const  z3::expr &v,ivyc_s1::vector__ivy__access_path__ &res){
	        unsigned long long __end;
	        __from_solver(g,g.apply("vector[ivy.access_path].end",v),__end);
	        unsigned __sz = (unsigned) __end;
	        res.resize(__sz);
	        for (unsigned __i = 0; __i < __sz; ++__i)
		    __from_solver(g,g.apply("vector[ivy.access_path].value",v,g.int_to_z3(g.sort("vector[ivy.access_path].domain"),__i)),res[__i]);
	    }

	    template <>
	    void  __randomize<ivyc_s1::vector__ivy


/*
 * Copyright 2006 The Android Open Source Project
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

#ifndef SkParse_DEFINED
#define SkParse_DEFINED

#include "SkColor.h"

class SkParse {
public:
    static int Count(const char str[]); // number of scalars or int values
    static int Count(const char str[], char separator);
    static const char* FindColor(const char str[], SkColor* value);
    static const char* FindHex(const char str[], uint32_t* value);
    static const char* FindMSec(const char str[], SkMSec* value);
    static const char* FindNamedColor(const char str[], size_t len, SkColor* color);
    static const char* FindS32(const char str[], int32_t* value);
    static const char* FindScalar(const char str[], SkScalar* value);
    static const char* FindScalars(const char str[], SkScalar value[], int count);

    static bool FindBool(const char str[], bool* value);
    // return the index of str in list[], or -1 if not found
    static int  FindList(const char str[], const char list[]);
#ifdef SK_SUPPORT_UNITTEST
    static void TestColor();
    static void UnitTest();
#endif
};

#endif


/*
 *     Generated by class-dump 3.3.4 (64 bit).
 *
 *     class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2011 by Steve Nygard.
 */

#import "NSButton.h"

@class NSDictionary, NSString, NSURL;

@interface LUTitleLink : NSButton
{
    NSURL *_linkURL;
    NSString *_linkDescription;
    NSDictionary *_standardAttributes;
    NSDictionary *_rolloverAttributes;
}

@property(retain) NSDictionary *rolloverAttributes; // @synthesize rolloverAttributes=_rolloverAttributes;
@property(retain) NSDictionary *standardAttributes; // @synthesize standardAttributes=_standardAttributes;
@property(retain) NSString *linkDescription; // @synthesize linkDescription=_linkDescription;
@property(retain) NSURL *linkURL; // @synthesize linkURL=_linkURL;
- (void)setAttributes:(id)arg1;
- (void)setLink:(id)arg1 description:(id)arg2;
- (id)accessibilityAttributeValue:(id)arg1;
- (void)setTitle:(id)arg1;
- (void)cursorUpdate:(id)arg1;
- (void)mouseExited:(id)arg1;
- (void)mouseEntered:(id)arg1;
- (void)dealloc;
- (void)awakeFromNib;

@end


5 10.604 14.606 11.232 14.118 11.704C13.638 12.168 12.99 12.4 12.174 12.4H10.434V16H9.354ZM10.434 11.428H12.174C12.646 11.428 13.022 11.284 13.302 10.996C13.59 10.7 13.734 10.308 13.734 9.82C13.734 9.324 13.59 8.932 13.302 8.644C13.022 8.356 12.646 8.212 12.174 8.212H10.434V11.428Z" fill="var(--color-text)"></path></g><g id="icon-65536"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)"></path></g><g id="icon-131072"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)"></path></g><g id="icon-262144"><rect fill="var(--color-icon-background)" stroke="#FF4D4D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M8.85 16L11.13 7.24H12.582L14.85 16H13.758L13.182 13.672H10.53L9.954 16H8.85ZM10.746 12.76H12.954L12.282 10.06C12.154 9.548 12.054 9.12 11.982 8.776C11.91 8.432 11.866 8.208 11.85 8.104C11.834 8.208 11.79 8.432 11.718 8.776C11.646 9.12 11.546 9.544 11.418 10.048L10.746 12.76Z" fill="var(--color-text)"></path></g><g id="icon-524288"><rect fill="var(--color-icon-background)" stroke="#FF4D4D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M8.85 16L11.13 7.24H12.582L14.85 16H13.758L13.182 13.672H10.53L9.954 16H8.85ZM10.746 12.76H12.954L12.282 10.06C12.154 9.548 12.054 9.12 11.982 8.776C11.91 8.432 11.866 8.208 11.85 8.104C11.834 8.208 11.79 8.432 11.718 8.776C11.646 9.12 11.546 9.544 11.418 10.048L10.746 12.76Z" fill="var(--color-text)"></path></g><g id="icon-1048576"><rect fill="var(--color-icon-background)" stroke="#FF4D4D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M8.85 16L11.13 7.24H12.582L14.85 16H13.758L13.182 13.672H10.53L9.954 16H8.85ZM10.746 12.76H12.954L12.282 10.06C12.154 9.548 12.054 9.12 11.982 8.776C11.91 8.


rn err
				}
				vmauthLB.Status.Conditions = append(vmauthLB.Status.Conditions, appsv1.DeploymentCondition{
					Type:   appsv1.DeploymentProgressing,
					Reason: "NewReplicaSetAvailable",
					Status: "True",
				})
				if err := fclient.Status().Update(ctx, &vmauthLB); err != nil {
					return err
				}

				return nil
			})
		}
		if err := CreateOrUpdate(ctx, fclient, cr); err != nil {
			t.Fatalf("unexpected error: %s", err)
		}
		if validate != nil {
			if err := validate(ctx, fclient); err != nil {
				t.Fatalf("unexpected validation error: %s", err)
			}
		}
	}

	// base cluster
	cr := &vmv1.VLCluster{
		ObjectMeta: metav1.ObjectMeta{
			Name:      "base",
			Namespace: "default",
			Labels: map[string]string{
				"only-main-object-label": "value",
			},
			Annotations: map[string]string{
				"only-main-object-annotation": "value",
			},
		},
		Spec: vmv1.VLClusterSpec{
			VLInsert: &vmv1.VLInsert{
				CommonApplicationDeploymentParams: vmv1beta1.CommonApplicationDeploymentParams{
					ReplicaCount: ptr.To(int32(1)),
				},
			},
			VLStorage: &vmv1.VLStorage{
				CommonApplicationDeploymentParams: vmv1beta1.CommonApplicationDeploymentParams{
					ReplicaCount: ptr.To(int32(1)),
				},
			},
			VLSelect: &vmv1.VLSelect{
				CommonApplicationDeploymentParams: vmv1beta1.CommonApplicationDeploymentParams{
					ReplicaCount: ptr.To(int32(1)),
				},
			},
		},
	}
	validate := func(ctx context.Context, rclient client.Client) error {
		// ensure SA created
		var sa corev1.ServiceAccount
		assert.Nil(t, rclient.Get(ctx, types.NamespacedName{Name: cr.GetServiceAccountName(), Namespace: cr.Namespace}, &sa))
		assert.Nil(t, sa.Annotations)
		assert.Equal(t, sa.Labels, cr.FinalLabels(cr.SelectorLabels()))

		// check insert
		var dep appsv1.Deployment
		assert.Nil(t, rclient.Get(ctx, types.NamespacedName{Name: cr.GetVLInsertName(), Namespace: cr.Namespace}, &dep))
		assert.Len(t, dep.Spec.Template.Spec.Containers, 1)
		cnt := dep.Spec.Template.Spec.Containers[0]
		assert.Equal(t, cnt.Args, []string{"-httpListenAddr=:9481", "-internalselect.disable=true", "-storageNode=vlstorage-base-0.vlstorage-base.default:9491"})
		assert.Nil(t, dep.Annotations)
		assert.Equal(t, dep.Labels, cr.FinalLabels(cr.VLInsertSelectorLabels()))

		// check select
		assert.Nil(t, rclient.Get(ctx, types.NamespacedName{Name: cr.GetVLSelectName(), Namespace: cr.Namespace}, &dep))
		assert.Len(t, dep.Spec.Template.Spec.Containers, 1)
		cnt = dep.Spec.Template.Spec.Containers[0]
		assert.Equal(t, cnt.Args, []string{"-httpListenAddr=:9471", "-internalinsert.disable=true", "-storageNode=vlstorage-base-0.vlstorage-base.default:9491"})
		assert.Nil(t, dep.Annotations)
		assert.Equal(t, dep.Labels, cr.FinalLabels(cr.VLSelectSelectorLabels()))

		// check storage
		var sts appsv1.StatefulSet
		assert.Nil(t, rclient.Get(ctx, types.NamespacedName{Name: cr.GetVLStorageName(), Namespace: cr.Namespace}, &sts


vd {
	case bincVdSpecial:
		switch d.vs {
		case bincSpNil:
			n.v = valueTypeNil
		case bincSpFalse:
			n.v = valueTypeBool
			n.b = false
		case bincSpTrue:
			n.v = valueTypeBool
			n.b = true
		case bincSpNan:
			n.v = valueTypeFloat
			n.f = math.NaN()
		case bincSpPosInf:
			n.v = valueTypeFloat
			n.f = math.Inf(1)
		case bincSpNegInf:
			n.v = valueTypeFloat
			n.f = math.Inf(-1)
		case bincSpZeroFloat:
			n.v = valueTypeFloat
			n.f = float64(0)
		case bincSpZero:
			n.v = valueTypeUint
			n.u = uint64(0) // int8(0)
		case bincSpNegOne:
			n.v = valueTypeInt
			n.i = int64(-1) // int8(-1)
		default:
			d.d.errorf("decodeNaked: Unrecognized special value 0x%x", d.vs)
		}
	case bincVdSmallInt:
		n.v = valueTypeUint
		n.u = uint64(int8(d.vs)) + 1 // int8(d.vs) + 1
	case bincVdPosInt:
		n.v = valueTypeUint
		n.u = d.decUint()
	case bincVdNegInt:
		n.v = valueTypeInt
		n.i = -(int64(d.decUint()))
	case bincVdFloat:
		n.v = valueTypeFloat
		n.f = d.decFloat()
	case bincVdSymbol:
		n.v = valueTypeSymbol
		n.s = d.DecodeString()
	case bincVdString:
		n.v = valueTypeString
		n.s = d.DecodeString()
	case bincVdByteArray:
		n.v = valueTypeBytes
		n.l = d.DecodeBytes(nil, false)
	case bincVdTimestamp:
		n.v = valueTypeTimestamp
		tt, err := decodeTime(d.r.readx(int(d.vs)))
		if err != nil {
			panic(err)
		}
		n.t = tt
	case bincVdCustomExt:
		n.v = valueTypeExt
		l := d.decLen()
		n.u = uint64(d.r.readn1())
		n.l = d.r.readx(l)
	case bincVdArray:
		n.v = valueTypeArray
		decodeFurther = true
	case bincVdMap:
		n.v = valueTypeMap
		decodeFurther = true
	default:
		d.d.errorf("decodeNaked: Unrecognized d.vd: 0x%x", d.vd)
	}

	if !decodeFurther {
		d.bdRead = false
	}
	if n.v == valueTypeUint && d.h.SignedInteger {
		n.v = valueTypeInt
		n.i = int64(n.u)
	}
	return
}

//------------------------------------

//BincHandle is a Handle for the Binc Schema-Free Encoding Format
//defined at https://github.com/ugorji/binc .
//
//BincHandle currently supports all Binc features with the following EXCEPTIONS:
//  - only integers up to 64 bits of precision are supported.
//    big integers are unsupported.
//  - Only IEEE 754 binary32 and binary64 floats are supported (ie Go float32 and float64 types).
//    extended precision and decimal IEEE 754 floats are unsupported.
//  - Only UTF-8 strings supported.
//    Unicode_Other Binc types (UTF16, UTF32) are currently unsupported.
//
//Note that these EXCEPTIONS are temporary and full support is possible and may happen soon.
type BincHandle struct {
	BasicHandle
	binaryEncoding


 'TypeScript',
  short_name: 'TS',
  type: SkillType.language,
  level: 0,
  background_color: '#3178c6',
  text_color: '#FFFFFF',
};

const nextjs: Skill = {
  name: 'Next.js',
  type: SkillType.library,
  level: 0,
  background_color: '#000000',
  text_color: '#FFFFFF',
}

const python: Skill = {
  name: 'Python',
  type: SkillType.language,
  level: 0,
  background_color: "#2b5b84",
  text_color: "#ffdf76",
};

const html: Skill = {
  name: 'HTML',
  type: SkillType.language,
  level: 0,
  background_color: '#f06529',
  text_color: '#FFFFFF',
};

const css: Skill = {
  name: 'CSS',
  type: SkillType.language,
  level: 0,
  background_color: "#1a5e9a",
  text_color: '#FFFFFF',
};

const ruby: Skill = {
  name: 'Ruby',
  type: SkillType.language,
  level: 1,
  background_color: "#820C02",
  text_color: "#EDA895",
};

const sql: Skill = {
  name: 'SQL',
  type: SkillType.language,
  level: 1,
  background_color: "#4479a1",
  text_color: '#FFFFFF',
};

const php: Skill = {
  name: 'PHP',
  type: SkillType.language,
  level: 2,
  background_color: "#8892BF",
  text_color: "#ffffff",
};

const go: Skill = {
  name: 'Go',
  type: SkillType.language,
  level: 2,
  background_color: "#7fd5ea",
  text_color: "#ffffff",
};

const cpp: Skill = {
  name: 'C++',
  type: SkillType.language,
  level: 2,
  background_color: "#5E97D0",
  text_color: "#ffffff",
}

const java: Skill = {
  name: 'Java',
  type: SkillType.language,
  level: 2,
  background_color: "#5382a1",
  text_color: "#f89820",
}

const react: Skill = {
  name: 'React',
  type: SkillType.library,
  level: 0,
  background_color: `#61dafb`,
  text_color: '#FFFFFF',
};

const react_native: Skill = {
  name: 'React Native',
  type: SkillType.framework,
  level: 0,
  background_color: `#61dafb`,
  text_color: '#FFFFFF',
};

const firebase: Skill = {
  name: 'Firebase',
  type: SkillType.framework,
  level: 1,
  background_color: '#F5820D',
  text_color: '#FFE28A',
};

const aws_lambda: Skill = {
  name: 'AWS Lambda',
  type: SkillType.tool,
  level: 1,
  background_color: "#252F3E",
  text_color: "#FF9900"
};

const aws_cloudfront: Skill = {
  name: 'AWS Cloudfront',
  type: SkillType.tool,
  level: 2,
  background_color: "#FF9900",
  text_color: "#252F3E"
};

const stripe: Skill = {
  name: 'Stripe',
  type: SkillType.tool,
  level: 2,
  background_color: "#635bff",
  text_color: '#FFFFFF',
}

const segment: Skill = {
  name: 'Segment',
  type: SkillType.tool,
  level: 2,


 else {
                setUserAuthenticationValidityDurationSeconds(DEFAULT_AUTHENTICATION_DELAY)
            }

        }.build()

        val advancedKeyAlias = MasterKey.Builder(activity).apply {
            setKeyGenParameterSpec(keySpecifications)
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
                if (activity.packageManager.hasSystemFeature(PackageManager.FEATURE_STRONGBOX_KEYSTORE)) { // Check if strongbox / hardware keystore exists
                    Log.d("Keyspace", "Accessing Strongbox (TEE) Keystore...")
                    setRequestStrongBoxBacked(true) // use Strongbox / hardware keystore / Titan chip
                } else if (activity.packageManager.hasSystemFeature(PackageManager.FEATURE_HARDWARE_KEYSTORE)) {
                    Log.d("Keyspace", "Accessing hardware-backed HAL Keystore...")
                } else {
                    Log.d("Keyspace", "Accessing software Keystore container...")
                }
            }
        }.build()

        Log.d("Keyspace", "Attempting to access $KEYRING_NAME from " +
                if (advancedKeyAlias.isStrongBoxBacked) "Strongbox"
                else if (advancedKeyAlias.isKeyStoreBacked)  "HAL Keystore"
                else "Software Keystore"
        )

        return advancedKeyAlias
    }

    /**
     * Store encryption / decryption keys from Keyspace's own key management solution, called the "Keyring" with the Android Keystore.
     * If the app crashes, it's because the Keystore couldn't get an authentication signal from Android and will throw a "User not authenticated error".
     *
     * To fix this, either:
     * 1. implement a BiometricPrompt shortly before accessing the keys (preferably in an activity), or
     * 2. reinstall the app, then lock and unlock your phone once and quickly use the function.
     *
     * @param  alias name of the key to be stored, can be something simple like "xchacha-key". Duplicate aliases are always overwritten. This is the alias within the Keyring, NOT the Android Keystore.
     * @param  key the actual key to be stored, as a UTF-8 string. To convert to and from ByteArray, use a cryptographically safe library like LazySodium.
     * @return `true` if the key was stored successfully, `false` if errors occured while storing keys (see Logcat for verbose information)
     * @see <a href="https://security.googleblog.com/2020/02/data-encryption-on-android-with-jetpack.html">Data Encryption on Android with Jetpack Security </a>
     */
    @SuppressLint("ApplySharedPref")
    private fun storeKey (alias: String, key: ByteArray, masterKey: MasterKey): Boolean {

        // var masterKey: MasterKey? = getKeystoreMasterKey()
        var _masterKey: MasterKey = masterKey

        var similarKeyName: String? = null

        try {

            Log.d("Keyspace", "Key length = " + key.size.toString() + ", Key mod 8 = " + (key.size % 8).toString())

            if (alias.lowercase().contains("token")) {
                if (
                    key.size % 2 != 0 || // if token length is a valid byte unit
                    (key.size * 2) != 40 // if token is long enough to qualify as key, 128-bit (64 Byte) key is minimum standard.
                ) { throw InvalidKeySpecException() }
            } else {
                if (
                    key.size % 2 != 0 || // if key length is a valid byte unit
                    (key.size * 2) < 64 // if key is long enough to qualify as key, 128-bit (64 Byte) key is minimum standard.
                ) { throw InvalidKeySpecException() }
            }

            val keyring = EncryptedSharedPreferences.create( // create keyring object in memory
                context,
                KEYRING_NAME,
                _masterKey,
                EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
                EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
            )

            val stringifiedKey = key.to


].
	cb.ColVec(5).Int16()[0] = int16(randInt(rng, 1, 50))
	// P_CONTAINER random string [Containers].
	cb.ColVec(6).Bytes().Set(0, randContainer(rng, a))
	// P_RETAILPRICE = (90000 + ((P_PARTKEY/10) modulo 20001 ) + 100 * (P_PARTKEY modulo 1000))/100.
	cb.ColVec(7).Float64()[0] = float64(makeRetailPriceFromPartKey(partKey))
	// P_COMMENT text string [5,22].
	cb.ColVec(8).Bytes().Set(0, w.textPool.randString(rng, 5, 22))
}

var partSuppColTypes = []coltypes.T{
	coltypes.Int64,
	coltypes.Int64,
	coltypes.Int16,
	coltypes.Float64,
	coltypes.Bytes,
}

func (w *tpch) tpchPartSuppInitialRowBatch(
	batchIdx int, cb coldata.Batch, a *bufalloc.ByteAllocator,
) {
	l := w.localsPool.Get().(*generateLocals)
	defer w.localsPool.Put(l)
	rng := l.rng
	rng.Seed(w.seed + uint64(batchIdx))

	partKey := batchIdx + 1
	cb.Reset(partSuppColTypes, numPartSuppPerPart)

	// P_PARTKEY unique within [SF * 200,000].
	partKeyCol := cb.ColVec(0).Int64()
	suppKeyCol := cb.ColVec(1).Int64()
	availQtyCol := cb.ColVec(2).Int16()
	supplyCostCol := cb.ColVec(3).Float64()
	commentCol := cb.ColVec(4).Bytes()

	// For each row in the PART table, four rows in PartSupp table.
	for i := 0; i < numPartSuppPerPart; i++ {
		// PS_PARTKEY = P_PARTKEY.
		partKeyCol[i] = int64(partKey)
		// PS_SUPPKEY = (ps_partkey + (i * (( S/4 ) + (int)(ps_partkey-1 )/S))))
		// modulo S + 1 where i is the ith supplier within [0 .. 3] and S = SF *
		// 10,000.
		s := w.scaleFactor * 10000
		suppKeyCol[i] = int64((partKey+(i*((s/numPartSuppPerPart)+(partKey-1)/s)))%s + 1)
		// PS_AVAILQTY random value [1 .. 9,999].
		availQtyCol[i] = int16(randInt(rng, 1, 9999))
		// PS_SUPPLYCOST random value [1.00 .. 1,000.00].
		supplyCostCol[i] = float64(randFloat(rng, 1, 1000, 100))
		// PS_COMMENT text string [49,198].
		commentCol.Set(i, w.textPool.randString(rng, 49, 198))
	}
}

var customerColTypes = []coltypes.T{
	coltypes.Int64,
	coltypes.Bytes,
	coltypes.Bytes,
	coltypes.Int16,
	coltypes.Bytes,
	coltypes.Float64,
	coltypes.Bytes,
	coltypes.Bytes,
}

func (w *tpch) tpchCustomerInitialRowBatch(
	batchIdx int, cb coldata.Batch, a *bufalloc.ByteAllocator,
) {
	l := w.localsPool.Get().(*generateLocals)
	defer w.localsPool.Put(l)
	rng := l.rng
	rng.Seed(w.seed + uint64(batchIdx))

	custKey := int64(batchIdx) + 1
	cb.Reset(customerColTypes, 1)

	// C_CUSTKEY unique within [SF * 150,000].
	cb.ColVec(0).Int64()[0] = custKey
	// C_NAME text appended with minimum 9 digits with leading zeros ["Custome


~~~~~~@.barray.qrx#basic_string.c#char_traits.c~#allocator.c~~ virtual
        [bits 32]
@.xc@std@#unordered_map.#basic_string.c#char_traits.c~#allocator.c~~#vector.#shared_ptr.5Token~#allocator.#shared_ptr.n0~~~#hash.#basic_string.c#char_traits.c~#allocator.c~~~#equal_to.#basic_string.c#char_traits.c~#allocator.c~~~#allocator.#pair.x#basic_string.c#char_traits.c~#allocator.c~~#vector.#shared_ptr.n0~#allocator.#shared_ptr.n0~~~~~~@.barray.qrx#basic_string.c#char_traits.c~#allocator.c~~:
        dd      00h
        dd      0ffffffa8h
        dd      0400h
        dd      @.xt@#tuple.rx#basic_string.c#char_traits.c~#allocator.c~~~+0
        dd      0fffffffch
        dd      01h
        dd      02h
        dd      00h
section code
section code
        section vsc@std@#vector.#shared_ptr.5Token~#allocator.#shared_ptr.n0~~~@__move_assign.qr#vector.#shared_ptr.n0~#allocator.#shared_ptr.n0~~~#integral_constant.4booln1?1?~ virtual
        [bits 32]
; std::vector<shared_ptr<Token>, allocator<shared_ptr<Token>>>::__move_assign(vector<shared_ptr<Token>, allocator<shared_ptr<Token>>>&, integral_constant<bool, bool=1>)
@std@#vector.#shared_ptr.5Token~#allocator.#shared_ptr.n0~~~@__move_assign.qr#vector.#shared_ptr.n0~#allocator.#shared_ptr.n0~~~#integral_constant.4booln1?1?~:
        add     esp,byte 0ffffffb0h
        push    ebx
        push    esi
L_70097:
        mov     esi,dword [esp+08h+058h]
        mov     ebx,dword [esp+04h+058h]
; Line 1383:     __vdeallocate();
        mov     eax,ebx
        push    eax
        call    @std@#vector.#shared_ptr.5Token~#allocator.#shared_ptr.n0~~~@__vdeallocate.qv ; std::vector<shared_ptr<Token>, allocator<shared_ptr<Token>>>::__vdeallocate()
        add     esp,byte 04h
; Line 1384:     __base::__move_assign_alloc(__c);
        mov     edx,ebx
        mov     eax,esi
        mov     dword [esp-050h+058h],00h
        lea     ecx,[esp-050h+058h]
        push    dword [ecx]
        push    eax
        push    edx
        call    @std@#__vector_base.#shared_ptr.5Token~#allocator.#shared_ptr.n0~~~@__move_assign_alloc.qr#__vector_base.#shared_ptr.n0~#allocator.#shared_ptr.n0~~~#integral_constant.4booln1?1?~ ; std::__vector_base<shared_ptr<Token>, allocator<shared_ptr<Token>>>::__move_assign_alloc(__vector_base<shared_ptr<Token>, allocator<shared_ptr<Token>>>&, integral_constant<bool, bool=1>)
L_70148:
        add     esp,byte 0ch
L_70119:
; Line 1385:     this->__begin_ = __c.__begin_;
        mov     eax,esi
        mov     ecx,dword [esi+04h]
        mov     dword [ebx+04h],ecx
; Line 1386:     this->__end_ = __c.__end_;
        mov     ecx,dword [esi+


BoxClose();
        errorShow(resp.message);
        return;
      } else {
        errorHide();
      }

      loginUP(email.value, password.value, id);
    });
  };

  global.passwordAsk = function(id) {
    var loginBox = $(ID_LOGIN_BOX);
    var subtitle = $(ID_LOGIN_BOX_EMAIL_SUBTITLE);

    remove($(ID_LOGIN_BOX_EMAIL_BUTTON));
    remove($(ID_LOGIN_BOX_LOGIN_LINK_CONTAINER));
    remove($(ID_LOGIN_BOX_FORGOT_LINK_CONTAINER));
    if (oauthButtonsShown) {
      if (configuredOauths.length > 0) {
        remove($(ID_LOGIN_BOX_HR1));
        remove($(ID_LOGIN_BOX_HR2));
        remove($(ID_LOGIN_BOX_OAUTH_PRETEXT));
        remove($(ID_LOGIN_BOX_OAUTH_BUTTONS_CONTAINER));
      }
    }

    var order, fid, type, placeholder;

    if (popupBoxType === 'signup') {
      order = ['name', 'website', 'password'];
      fid = [
        ID_LOGIN_BOX_NAME_INPUT,
        ID_LOGIN_BOX_WEBSITE_INPUT,
        ID_LOGIN_BOX_PASSWORD_INPUT,
      ];
      type = ['text', 'text', 'password'];
      placeholder = ['Real Name', 'Website (Optional)', 'Password'];
    } else {
      order = ['password'];
      fid = [ID_LOGIN_BOX_PASSWORD_INPUT];
      type = ['password'];
      placeholder = ['Password'];
    }

    if (popupBoxType === 'signup') {
      subtitle.innerText = 'Finish the rest of your profile to complete.';
    } else {
      subtitle.innerText = 'Enter your password to log in.';
    }

    for (var i = 0; i < order.length; i++) {
      var fieldContainer = create('div');
      var field = create('div');
      var fieldInput = create('input');

      fieldInput.id = fid[i];

      classAdd(fieldContainer, 'email-container');
      classAdd(field, 'email');
      classAdd(fieldInput, 'input');

      attrSet(fieldInput, 'name', order[i]);
      attrSet(fieldInput, 'type', type[i]);
      attrSet(fieldInput, 'placeholder', placeholder[i]);

      append(field, fieldInput);
      append(fieldContainer, field);

      if (order[i] === 'password') {
        var fieldButton = create('button');
        classAdd(fieldButton, 'email-button');
        fieldButton.innerText = popupBoxType;

        if (popupBoxType === 'signup') {
          onclick(fieldButton, global.signup, id);
        } else {
          onclick(fieldButton, global.login, id);
        }

        append(field, fieldButton);
      }

      append(loginBox, fieldContainer);
    }

    if (popupBoxType === 'signup') {
      $(ID_LOGIN_BOX_NAME_INPUT).focus();
    } else {
      $(ID_LOGIN_BOX_PASSWORD_INPUT).focus();
    }
  };

  function pageUpdate(callback) {
    var attributes = {
      isLocked: isLocked,
      stickyCommentHex: stickyCommentHex,
    };

    var json = {
      commenterToken: commenterTokenGet(),
      domain: DOMAIN,
      path: pageId,
      attributes: attributes,
    };

    post(origin + '/api/page/update', json, function(resp) {
      if (!resp.success) {
        errorShow(resp.message);
        return;
      } else {
        errorHide();
      }

      call(callback);
    });
  }

  global.threadLockToggle = function() {
    var l