       108, 109, 110, 111, 112, 113, 114, 115
    ] |
    - ctrl[u8x16]: [127_u8, 15, 1, 14, 2, 13, 3, 12, 4_u8, 11, 16, 10, 6, 19, 7, 18]
        => [100_u8, 121, 17, 72, 34, 116, 51, 104, 68, 117, 110, 84, 102, 113, 119, 115]
);

#[cfg(target_arch = "aarch64")]
test_vtbx!(
    test_vqtbx1_p8 => vqtbx1_p8:
    - table[poly8x16_t]: [
        0_u8, 17, 34, 51, 68, 85, 102, 119,
        106, 93, 84, 117, 104, 116, 72, 121
    ] |
    - ext[poly8x8_t]: [100_u8, 101, 102, 103, 104, 105, 106, 107] |
    - ctrl[u8x8]: [127_u8, 15, 1, 14, 2, 13, 3, 12] => [100_u8, 121, 17, 72, 34, 116, 51, 104] |
    - ctrl[u8x8]: [4_u8, 11, 16, 10, 6, 19, 7, 18] => [68_u8, 117, 102, 84, 102, 105, 119, 107]
);

#[cfg(target_arch = "aarch64")]
test_vtbx!(
    test_vqtbx1q_p8 => vqtbx1q_p8:
    - table[poly8x16_t]: [
        0_u8, 17, 34, 51, 68, 85, 102, 119,
        106, 93, 84, 117, 104, 116, 72, 121
    ] |
    - ext[poly8x16_t]: [
        100_u8, 101, 102, 103, 104, 105, 106, 107,
        108, 109, 110, 111, 112, 113, 114, 115
    ] |
    - ctrl[u8x16]: [127_u8, 15, 1, 14, 2, 13, 3, 12, 4_u8, 11, 16, 10, 6, 19, 7, 18]
        => [100_u8, 121, 17, 72, 34, 116, 51, 104, 68, 117, 110, 84, 102, 113, 119, 115]
);

#[cfg(target_arch = "aarch64")]
test_vtbx!(
    test_vqtbx2_s8 => vqtbx2_s8:
    - table[int8x16x2_t]: [
        0_i8, -1, 2, -3, 4, -5, 6, -7,
        8, -9, 10, -11, 12, -13, 14, -15,
        16, -17, 18, -19, 20, -21, 22, -23,
        24, -25, 26, -27, 28, -29, 30, -31
    ] |
    - ext[int8x8_t]: [100_i8, -101, 102, -103, 104, -105, 106, -107] |
    - ctrl[i8x8]: [80_i8, 15, 1, 24, 2, 13, 3, 29] => [100_i8, -15, -1, 24, 2, -13, -3, -29] |
    - ctrl[i8x8]: [4_i8, 31, 32, 10, 6, 49, 7, 18] => [4_i8, -31, 102, 10, 6, -105, -7, 18]
);

#[cfg(target_arch = "aarch64")]
test_vtbx!(
    test_vqtbx2q_s8 => vqtbx2q_s8:
    - table[int8x16x2_t]: [
        0_i8, -1, 2, -3, 4, -5, 6, -7,
        8, -9, 10, -11, 12, -13, 14, -15,
        16, -17, 18,


overning permissions and limitations
 * under the License.
 */

using System;

using Foundation;
using AppKit;

namespace VMDirSchemaEditorSnapIn
{
    public partial class SelectObjectClassWindow : NSWindow
    {
        public SelectObjectClassWindow(IntPtr handle)
            : base(handle)
        {
        }

        [Export("initWithCoder:")]
        public SelectObjectClassWindow(NSCoder coder)
            : base(coder)
        {
        }

        public override void AwakeFromNib()
        {
            base.AwakeFromNib();
        }
    }
}


食品安全总体情况；

（二）本市食品安全风险评估信息和食品安全风险警示信息；

（三）本市重大食品安全事故及其处理信息；

（四）市人民政府确定需要统一公布的其他重要食品安全信息。

食品药品监督管理、质量技术监督、农业、卫生计生、出入境检验检疫等部门应当加强监管部门间的信息共享，获知前款规定的需要统一公布的食品安全信息的，还应当立即向市食品药品安全委员会报告；市食品药品安全委员会应当及时确定需要公布的食品安全信息，由市食品药品安全委员会办公室统一公布。

食品药品监督管理、市场监督管理、质量技术监督、农业、出入境检验检疫等部门依据各自职责，建立、完善食品安全信息系统，公布食品安全日常监督管理、食品安全违法行为行政处罚等信息。

第八十八条 对涉嫌构成食品安全犯罪的，食品药品监督管理、市场监督管理、质量技术监督、农业等部门应当按照有关规定及时将案件移送同级公安机关。对移送的案件，公安机关应当及时审查；认为有犯罪事实需要追究刑事责任的，应当立案侦查。

食品药品监督管理、市场监督管理、质量技术监督、农业等部门和相关食品检验机构应当按照规定，配合公安机关、人民检察院、人民法院做好涉案食品的处置、检验、评估认定工作。

### 第七章  法律责任

第八十九条 违反本条例规定的行为，法律、行政法规有处理规定的，从其规定；构成犯罪的，依法追究刑事责任。

第九十条 违反本条例第二十一条规定，从事食品和食用农产品贮存、运输服务未按照规定办理备案手续的，由市食品药品监督管理部门或者区市场监督管理部门责令改正，给予警告；拒不改正的，处五千元以上五万元以下罚款。

违反本条例第三十四条规定，有下列情形之一的，由市食品药品监督管理部门或者


weight = 3,  d_min = 0.0, d_max = 0.7 },
        { { name = 'storage-tank', count = math_random(2, 6) },                     weight = 3,  d_min = 0.3, d_max = 0.6 },
        { { name = 'train-stop', count = math_random(1, 2) },                       weight = 1,  d_min = 0.2, d_max = 0.7 },
        { { name = 'express-loader', count = math_random(1, 2) },                   weight = 1,  d_min = 0.5, d_max = 1 },
        { { name = 'fast-loader', count = math_random(1, 2) },                      weight = 1,  d_min = 0.2, d_max = 0.7 },
        { { name = 'loader', count = math_random(1, 2) },                           weight = 1,  d_min = 0.0, d_max = 0.5 },
        { { name = 'lab', count = math_random(1, 2) },                              weight = 2,  d_min = 0.0, d_max = 0.3 },
        { { name = 'roboport', count = 1 },                                         weight = 2,  d_min = 0.8, d_max = 1 },
        { { name = 'flamethrower-turret', count = 1 },                              weight = 3,  d


or more information check the layer example in the example folder.
```js
// We can get layers from viewer
console.log( viewer.layers );
```
#### Unit
It shows the system unit of the DXF file. It can be compared with the UNITS object to obtain a descriptive name.
```js
import { UNITS } from 'three-dxf-viewer';

// We can get units from viewer
console.log( viewer.unit );
console.log( UNITS.Meters[ viewer.unit ] );

// Or can be compared with UNITS
console.log( viewer.unit === UNITS.Meters ? 'DXF on meters' : 'DXF on other units' );
```

#### Default Text Height
It sets the default text height fro text entities that doesn't have height specified.
```js
viewer.DefaultTextHeight = 12;
```

#### Default Text Scale
It sets the default text scale for the DXF file (Default 1). It changes all the texts heights in the DXF file.
```js
viewer.DefaultTextScale = 1;
```

#### Cache
The viewer doesn't cache geometries by default, but this can be changed to cache it and reuse geometry the second time a model is loaded
```js
// Cache can be changed to true to enable caching
viewer.useCache = true;
```

## Controls

The class `CADControls` can be used to add controls to the scene, instead of `Select` and `Hover` classes.

```js
import { CADControls, DXFViewer } from 'three-dxf-viewer';

const viewer = new DXFViewer();
let dxf = await viewer.getFromPath( dxfFilePath, fontPath );

const controls = new CADControls( three.renderer.domElement, three.camera, dxf, viewer.lastDXF );
controls.subscribe( 'select', ( selects ) => console.log( 'Selected entities', selects ) );
controls.subscribe( 'hover', ( hovered ) => console.log( 'Hovered entity', hovered.userData.entity ) );

scene.add( dxf );

```

## Utilities

There are 4 utilities that can be used optionally with the viewer:

### Merger
By default the viewer will merge Block entities. however, it is possible to merge all entities to optimize drawing big DXF files.

```js
import { Merger, DXFViewer } from 'three-dxf-viewer';

let dxf = await new DXFViewer().getFromPath( dxfFilePath, fontPath );

const mergedObject = new Merger().merge( dxf );

scene.add( mergedObject );

```

### Selection
The select class can be used to select entities in the scene. It will highlight the selected entity. Selection can be done by clicking on the entity or pressing Ctrl and using the selection box.

```js
import { Select, DXFViewer } from 'three-dxf-viewer';

const viewer = new DXFViewer();
let dxf = await viewer.getFromPath( dxfFilePath, fontPath );

const select = new Select( three.renderer.domElement, three.camera, dxf, viewer.lastDXF );
select.subscribe( 'select', ( selects ) => console.log( 'Selected entities', selects ) );

scene.add( dxf );

```

### Hover
The hover class will highlight the hovered entity by the mouse.

```js
import { Hover, DXFViewer } from 'three-dxf-viewer';

const viewer = new DXFViewer();
let dxf = await viewer.getFromPath( dxfFilePath, fontPath );

const hover = new Hover( three.renderer.domElement, three.camera, dxf, viewer.lastDXF );
hover.subscribe( 'hover', ( hovered ) => console.log( 'Hovered


   [1, "2"],
    "$[*] ? (@ != null)",
    [1, "2", null],
    null,
  ],
  [
    `select * from jsonb_path_query('[1, "2", null]', '$[*] ? (@ == null)');`,
    [null],
    "$[*] ? (@ == null)",
    [1, "2", null],
    null,
  ],
  [
    `select * from jsonb_path_query('{}', '$ ? (@ == @)');`,
    [],
    "$ ? (@ == @)",
    {},
    null,
  ],
  [
    `select * from jsonb_path_query('[]', 'strict $ ? (@ == @)');`,
    [],
    "strict $ ? (@ == @)",
    [],
    null,
  ],
  [
    `select jsonb_path_query('{"a": {"b": 1}}', 'lax $.**');`,
    [{ a: { b: 1 } }, { b: 1 }, 1],
    "lax $.**",
    { a: { b: 1 } },
    null,
  ],
  [
    `select jsonb_path_query('{"a": {"b": 1}}', 'lax $.**{0}');`,
    [{ a: { b: 1 } }],
    "lax $.**{0}",
    { a: { b: 1 } },
    null,
  ],
  [
    `select jsonb_path_query('{"a": {"b": 1}}', 'lax $.**{0 to last}');`,
    [{ a: { b: 1 } }, { b: 1 }, 1],
    "lax $.**{0 to last}",
    { a: { b: 1 } },
    null,
  ],
  [
    `select jsonb_path_query('{"a": {"b": 1}}', 'lax $.**{1}');`,
    [{ b: 1 }],
    "lax $.**{1}",
    { a: { b: 1 } },
    null,
  ],
  [
    `select jsonb_path_query('{"a": {"b": 1}}', 'lax $.**{1 to last}');`,
    [{ b: 1 }, 1],
    "lax $.**{1 to last}",
    { a: { b: 1 } },
    null,
  ],
  [
    `select jsonb_path_query('{"a": {"b": 1}}', 'lax $.**{2}');`,
    [1],
    "lax $.**{2}",
    { a: { b: 1 } },
    null,
  ],
  [
    `select jsonb_path_query('{"a": {"b": 1}}', 'lax $.**{2 to last}');`,
    [1],
    "lax $.**{2 to last}",
    { a: { b: 1 } },
    null,
  ],
  [
    `select jsonb_path_query('{"a": {"b": 1}}', 'lax $.**{3 to last}');`,
    [],
    "lax $.**{3 to last}",
    { a: { b: 1 } },
    null,
  ],
  [
    `select jsonb_path_query('{"a": {"b": 1}}', 'lax $.**{last}');`,
    [1],
    "lax $.**{last}",
    { a: { b: 1 } },
    null,
  ],
  [
    `select jsonb_path_query('{"a": {"b": 1}}', 'lax $.**.b ? (@ > 0)');`,
    [1],
    "lax $.**.b ? (@ > 0)",
    { a: { b: 1 } },
    null,
  ],
  [
    `select jsonb_path_query('{"a": {"b": 1}}', 'lax $.**{0}.b ? (@ > 0)');`,
    [],
    "lax $.**{0}.b ? (@ > 0)",
    { a: { b: 1 } },
    null,
  ],
  [
    `select jsonb_path_query('{"


fn default() -> Self {
        Self {
            foreground: CellRgb::Rgb(Rgb { r: 0xe9, g: 0xff, b: 0x5e }),
            background: CellRgb::Rgb(Rgb { r: 0x1d, g: 0x1f, b: 0x21 }),
        }
    }
}

#[derive(Deserialize, Copy, Clone, Default, Debug, PartialEq, Eq)]
pub struct IndexedColor {
    pub color: Rgb,

    index: ColorIndex,
}

impl IndexedColor {
    #[inline]
    pub fn index(&self) -> u8 {
        self.index.0
    }
}

#[derive(Copy, Clone, Default, Debug, PartialEq, Eq)]
struct ColorIndex(u8);

impl<'de> Deserialize<'de> for ColorIndex {
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
    where
        D: Deserializer<'de>,
    {
        let index = u8::deserialize(deserializer)?;

        if index < 16 {
            Err(SerdeError::custom(
                "Config error: indexed_color's index is {}, but a value bigger than 15 was \
                 expected; ignoring setting",
            ))
        } else {
            Ok(Self(index))
        }
    }
}

#[derive(ConfigDeserialize, Debug, Copy, Clone, PartialEq, Eq)]
pub struct InvertedCellColors {
    #[config(alias = "text")]
    pub foreground: CellRgb,
    #[config(alias = "cursor")]
    pub background: CellRgb,
}

impl Default for InvertedCellColors {
    fn default() -> Self {
        Self { foreground: CellRgb::CellBackground, background: CellRgb::CellForeground }
    }
}

#[derive(ConfigDeserialize, Debug, Copy, Clone, Default, PartialEq, Eq)]
pub struct SearchColors {
    pub focused_match: FocusedMatchColors,
    pub matches: MatchColors,
    bar: BarColors,
}

#[derive(ConfigDeserialize, Debug, Copy, Clone, PartialEq, Eq)]
pub struct FocusedMatchColors {
    pub foreground: CellRgb,
    pub background: CellRgb,
}

impl Default for FocusedMatchColors {
    fn default() -> Self {
        Self {
            background: CellRgb::Rgb(Rgb { r: 0x00, g: 0x00, b: 0x00 }),
            foreground: CellRgb::Rgb(Rgb { r: 0xff, g: 0xff, b: 0xff }),
        }
    }
}

#[derive(ConfigDeserialize, Debug, Copy, Clone, PartialEq, Eq)]
pub struct MatchColors {
    pub foreground: CellRgb,
    pub background: CellRgb,
}

impl Default for MatchColors {
    fn default() -> Self {
        Self {
            background: CellRgb::Rgb(Rgb { r: 0xff, g: 0xff, b: 0xff }),
            foreground: CellRgb::Rgb(Rgb { r: 0x00, g: 0x00, b: 0x00 }),
        }
    }
}

#[derive(ConfigDeserialize, Debug, Copy, Clone, Default, PartialEq, Eq)]
pub struct BarColors {
    foreground: Option<Rgb>,
    background: Option<Rgb>,
}

#[derive(ConfigDeserialize, Clone, Debug, PartialEq, Eq)]
pub struct PrimaryColors {
    pub foreground: Rgb,
    pu


Tarot", effect = "Enhance", cost_mult = 1.0, config = {mod_conv = 'm_mult', max_highlighted = 2}},
        c_emperor=          {order = 5,     discovered = false, cost = 3, consumeable = true, name = "The Emperor", pos = {x=4,y=0}, set = "Tarot", effect = "Round Bonus", cost_mult = 1.0, config = {tarots = 2}},
        c_heirophant=       {order = 6,     discovered = false, cost = 3, consumeable = true, name = "The Hierophant", pos = {x=5,y=0}, set = "Tarot", effect = "Enhance", cost_mult = 1.0, config = {mod_conv = 'm_bonus', max_highlighted = 2}},
        c_lovers=           {order = 7,     discovered = false, cost = 3, consumeable = true, name = "The Lovers", pos = {x=6,y=0}, set = "Tarot", effect = "Enhance", cost_mult = 1.0, config = {mod_conv = 'm_wild', max_highlighted = 1}},
        c_chariot=          {order = 8,     discovered = false, cost = 3, consumeable = true, name = "The Chariot", pos = {x=7,y=0}, set = "Tarot", effect = "Enhance", cost_mult = 1.0, config = {mod_conv = 'm_steel', max_highlighted = 1}},
        c_justice=          {order = 9,     discovered = false, cost = 3, consumeable = true, name = "Justice", pos = {x=8,y=0}, set = "Tarot", effect = "Enhance", cost_mult = 1.0, config = {mod_conv = 'm_glass', max_highlighted = 1}},
        c_hermit=           {order = 10,    discovered = false, cost = 3, consumeable = true, name = "The Hermit", pos = {x=9,y=0}, set = "Tarot", effect = "Dollar Doubler", cost_mult = 1.0, config = {extra = 20}},
        c_wheel_of_fortune= {order = 11,    discovered = false, cost = 3, consumeable = true, name = "The Wheel of Fortune", pos = {x=0,y=1}, set = "Tarot", effect = "Round Bonus", cost_mult = 1.0, config = {extra = 4}},
        c_strength=         {order = 12,    discovered = false, cost = 3, consumeable = true, name = "Strength", pos = {x=1,y=1}, set = "Tarot", effect = "Round Bonus", cost_mult = 1.0, config = {mod_conv = 'up_rank', max_highlighted = 2}},
        c_hanged_man=       {order = 13,    discovered = false, cost = 3, consumeable = true, name = "The Hanged Man", pos = {x=2,y=1}, set = "Tarot", effect = "Card Removal", cost_mult = 1.0, config = {remove_card = true, max_highlighted = 2}},
        c_death=            {order = 14,    discovered = false, cost = 3, consumeable = true, name = "Death", pos = {x=3,y=1}, set = "Tarot", effect = "Card Conversion", cost_mult = 1.0, config = {mod_conv = 'card', max_highlighted = 2, min_highlighted = 2}},
        c_temperance=       {order = 15,    discovered = false, cost = 3, consumeable = true, name = "Temperance", pos = {x=4,y=1}, set = "Tarot", effect = "Joker Payout", cost_mult = 1.0, config = {extra = 50}},
        c_devil=            {order = 16,    discovered = false, cost = 3, consumeable = true, name = "The Devil", pos = {x=5,y=1}, set = "Tarot", effect = "Enhance", cost_mult = 1.0, config =


-hm-tbody=footer] td {
    font-size: 10pt;
}

table[data-hm-table=temperature] tbody[data-hm-tbody=chart] tr > td:nth-child(1),
table[data-hm-table=temperature] tbody[data-hm-tbody=chart] tr > td:nth-child(2) {
    border-top: none;
    border-bottom: none;
}

span[data-hm-span=left] > span {
    position: absolute;
    right: 2px;
    top: -10px;
    font-size: 14px;
}

table[data-hm-table] td._diagonal{
    /*position: relative;*/
}

table[data-hm-table=temperature] tbody[data-hm-tbody=chart] .icon {
    display: block;
    position: relative;
    margin-bottom: 5px;
    line-height: 10px;
    font-size: 12px;
    text-align: left;
    margin-left: 5px;
}

table[data-hm-table=temperature] tbody[data-hm-tbody=chart] .icon:after {
    display: block;
    position: absolute;
    left: 35px;
    top: 0;
    height: 10px;
}

table[data-hm-table=temperature] tbody[data-hm-tbody=chart] .icon--oralThermometer::after {
    width: 10px;
    background-color: blue;
    border-radius: 50%;
    content: '';
}

table[data-hm-table=temperature] tbody[data-hm-tbody=chart] .icon--armpitThermometer::after {
    height: 10px;
    color: blue;
    content: '×';
    font-weight: bold;
}

table[data-hm-table=temperature] tbody[data-hm-tbody=chart] .icon--rectalThermometer::after {
    width: 6px;
    height: 6px;
    border: 2px solid blue;
    border-radius: 50%;
    content: '';
}

table[data-hm-table=temperature] tbody[data-hm-tbody=chart] .icon--earThermometer::after {
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-bottom: 8px solid blue;
    content: '';
}

table[data-hm-table=temperature] tbody[data-hm-tbody=chart] .icon--pulse::after {
    width: 10px;
    background-color: red;
    border-radius: 50%;
    content: '';
}

table[data-hm-table=temperature] tbody[data-hm-tbody=chart] .icon--heartRate::after {
    width: 6px;
    height: 6px;
    border: 2px solid red;
    border-radius: 50%;
    content: '';
}

table[data-hm-table=temperature] tbody[data-hm-tbody=chart] td {
    vertical-align: top;
    text-align: right;
}

table[data-hm-table=temperature] tbody[data-hm-tbody=chart] tr:first-child td:last-child {
    text-align: left;
}

/**/
.widget-table tr{
    height: 38px;
    line-height: 15px;
}
.widget-table tr>td{
    position: relative;
}
.widget-table tr>td .cke_widget_wrapper_textboxWidget:first-of-type{
    position: absolute;
    top: 0;
    left: 0;
}
.widget-table tr>td .cke_widget_wrapper_textboxWidget:last-of-type{
    position: absolute;
    right: 0;
    bottom: 0;
}

/*体温单 end*/

span[data-hm-node=labelbox] {
    background-color: #F0F


VERSION, header);
                MDC.put("TraceId", TraceContext.traceId());
                MDC.put("env", SpringContextUtil.getEnv());
            }
        }).addPathPatterns("/**");
    }

    /**
     * 添加RestTemplate插件
     * <p>
     * 将上下文中的版本号, 租户id放入请求头中
     */
    @Override
    public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException {
        HttpRequestWrapper requestWrapper = new HttpRequestWrapper(request);
        String version = SystemThreadLocal.get(SysConstant.VERSION);
        if (ObjectUtil.isNotEmpty(version)) {
            requestWrapper.getHeaders().add(SysConstant.VERSION, version);
        }
        String tenantId = SystemThreadLocal.get(SysConstant.TENANTID);
        if (ObjectUtil.isNotEmpty(tenantId)) {
            requestWrapper.getHeaders().add(SysConstant.TENANTID, tenantId);
        }
        return execution.execute(requestWrapper, body);
    }

    @Override
    public void addFormatters(FormatterRegistry registry) {
        registry.addConverterFactory(new EnumConvertorFactory());
    }

}
package cn.bctools.oss.cons;

/**
 * @author
 */
public class SystemCons {
    /**
     * 大文件上传标识
     */
    public final static String R_KEY = "file:bigfile:certificate:%s";

    public static final int MIN_MULTIPART_SIZE = 5 * 1024 * 1024;
    /**
     * 富文本编辑框上传图片使用
     */
    protected static String EDITOR = "\n" +
            "{\n" +
            "    \"imageActionName\": \"uploadimage\", \n" +
            "    \"imageFieldName\": \"upfile\", \n" +
            "    \"imageMaxSize\": 2048000, \n" +
            "    \"imageAllowFiles\": [\".png\", \".jpg\", \".jpeg\", \".gif\", \".bmp\"], \n" +
            "    \"imageCompressEnable\": true, \n" +
            "    \"imageCompressBorder\": 1600, \n" +
            "    \"imageInsertAlign\": \"none\", \n" +
            "    \"imageUrlPrefix\": \"\", \n" +
            "    \"imagePathFormat\": \"/img/{time}{rand:2}\", \n" +
            "    \"scrawlActionName\": \"uploadscrawl\", \n" +
            "    \"scrawlFieldName\": \"upfile\", \n" +
            "    \"scrawlPathFormat\": \"img/{time}{rand:2}\", \n" +
            "    \"scrawlMaxSize\": 2048000, \n" +
            "    \"scrawlUrlPrefix\": \"\", \n" +
            "    \"scrawlInsertAlign\": \"none\",\n" +
            "    \"snapscreenActionName\": \"uploadimage\", \n" +
            "    \"snapscreenPathFormat\": \"img/{time}{rand:2}\", \n" +
            "    \"snapscreenUrlPrefix\": \"\", \n" +
            "    \"snapscreenInsertAlign\": \"none\", \n" +
            "    \"catcherLocalDomain\": [\"127.0.0.1\", \"localhost\", \"img.dcssn.com\"],\n" +
            "    \"catcherActionName\": \"catchimage\", \n" +
            "    \"catcherFieldName\": \"source\", \n" +
            "    \"catcherPathFormat\": \"img/{time}{rand:2}\", \n" +
            "    \"catcherUrlPrefix\": \"\", \n" +
            "    \"catcherMaxSize\": 2


github.com/Taceolabs/co-snarks/commit/2e0a307524cd6b7a14fd3fc4dd2c00466c378534))
* Move poseidon2 from ultrahonk to mpc-core ([380fc4d](https://github.com/Taceolabs/co-snarks/commit/380fc4d7541053c06992b13a1e9fb1c42d4600e2))

### Code Refactoring

* co-noir lib usability improvents, added lib usage examples ([18e644e](https://github.com/Taceolabs/co-snarks/commit/18e644ecdf18419fb9b4a071562210c5b0eee0a7))

### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * co-builder bumped from 0.2.0 to 0.3.0
    * mpc-core bumped from 0.7.0 to 0.8.0

## [0.3.0](https://github.com/TaceoLabs/co-snarks/compare/ultrahonk-v0.2.0...ultrahonk-v0.3.0) (2024-12-16)

### ⚠ BREAKING CHANGES

* Align to upstream bb behavior of calculating the grand product argument only over the relevant trace size, which leads to a different proof being output.
* Bump Noir to v0.38.0, implement range checks, and allow nargo-asserts
* Move builder to new co-builder crate
* The interface of the UltraCircuitVariable trait has change. Thus, also ProvingKey::create() throws an error now.
* co-noir now stores shared inputs in a different format (`BTreeMap<String, Rep3AcvmType<ark_bn254::Fr>>` instead of `BTreeMap<String, Rep3PrimeFieldShare<ark_bn254::Fr>>`)
* The produced proofs are now different due to new transcript handling in bb 0.55.1, and they are no longer backwards compatible.

### Features

* Add builder for ultrahonk and fix prover ([929dd1d](https://github.com/TaceoLabs/co-snarks/commit/929dd1d39f3048fd91ccab229e9ae8a500b92df6))
* Add co-noir binary ([#201](https://github.com/TaceoLabs/co-snarks/issues/201)) ([3163aec](https://github.com/TaceoLabs/co-snarks/commit/3163aec0795dd7b357f532e4da9e232ea164f064))
* Add co-oink prover ([#194](https://github.com/TaceoLabs/co-snarks/issues/194)) ([b5fbd85](https://github.com/TaceoLabs/co-snarks/commit/b5fbd85b32cdb01c8865777c2238e159fc9b2553))
* Add co-zeromorph to co-ultrahonk ([#195](https://github.com/TaceoLabs/co-snarks/issues/195)) ([e7df56e](https://github.com/TaceoLabs/co-snarks/commit/e7df56e5af49938166e9ce4a2bbc49eaa8977acc))
* Add first version of a (untested) UltraHonk prover ([9f2911f](https://github.com/TaceoLabs/co-snarks/commit/9f2911f61f10d40217145a6802ccaf577aa7995f))
* Add MPC tests for co-ultrahonk ([#199](https://github.com/TaceoLabs/co-snarks/issues/199)) ([5a36ad5](https://github.com/TaceoLabs/co-snarks/commit/5a36ad5d5226cf25b8c8ffe377dd30efe6133725))
* Add sumcheck prov


gen_lib8
#endif

//                              rdi    rsi       rdx      rcx
// void kernel_sgead_8_1_lib8(int k, float *A, int sda, float *B);

	.p2align 4,,15
#if defined(OS_LINUX)
	.globl kernel_sgead_8_1_lib8
	.type kernel_sgead_8_1_lib8, @function
kernel_sgead_8_1_lib8:
#elif defined(OS_MAC)
	.globl _kernel_sgead_8_1_lib8
_kernel_sgead_8_1_lib8:
#elif defined(OS_WINDOWS)
	.globl kernel_sgead_8_1_lib8
	.def kernel_sgead_8_1_lib8; .scl 2; .type 32; .endef
kernel_sgead_8_1_lib8:
#endif

	PROLOGUE

	// call inner dgemm kernel nt

	movq	ARG1, %r10 // k
	movq	ARG2, %r11  // alpha
	movq	ARG3, %r12  // A
	movq	ARG4, %r13  // 8*sda*sizeof(float)
	sall	$ 5, %r13d
	movq	ARG5, %r14  // B

#if MACRO_LEVEL>=1
	INNER_KERNEL_SGEAD_8_1_LIB8
#else
#if defined(OS_LINUX) | defined(OS_WINDOWS)
	call inner_kernel_sgead_8_1_lib8
#elif defined(OS_MAC)
	callq _inner_kernel_sgead_8_1_lib8
#endif
#endif

	EPILOGUE

	ret

#if defined(OS_LINUX)
	.size	kernel_sgead_8_1_lib8, .-kernel_sgead_8_1_lib8
#endif

//                                  rdi    rsi       rdx      rcx       r8
// void kernel_sgead_8_1_gen_lib8(int k, float *A, int sda, float *B, int m0);

	.p2align 4,,15
#if defined(OS_LINUX)
	.globl kernel_sgead_8_1_gen_lib8
	.type kernel_sgead_8_1_gen_lib8, @function
kernel_sgead_8_1_gen_lib8:
#elif defined(OS_MAC)
	.globl _kernel_sgead_8_1_gen_lib8
_kernel_sgead_8_1_gen_lib8:
#elif defined(OS_WINDOWS)
	.globl kernel_sgead_8_1_gen_lib8
	.def kernel_sgead_8_1_gen_lib8; .scl 2; .type 32; .endef
kernel_sgead_8_1_gen_lib8:
#endif

	PROLOGUE

	// call inner dgemm kernel nt

	movq	ARG1, %r10 // k
	movq	ARG2, %r11  // alpha
	movq	ARG3, %r12  // A
	movq	ARG4, %r13  // 8*sda*sizeof(float)
	sall	$ 5, %r13d
	movq	ARG5, %r14  // B
	movq	ARG6, %r15 // m1

#if MACRO_LEVEL>=1
	INNER_KERNEL_SGEAD_8_1_GEN_LIB8
#else
#if defined(OS_LINUX) | defined(OS_WINDOWS)
	call inner_kernel_sgead_8_1_gen_lib8
#elif defined(OS_MAC)
	callq _inner_kernel_sgead_8_1_gen_lib8
#endif
#endif

	EPILOGUE

	ret

#if defined(OS_LINUX)
	.size	kernel_sgead


--package.path = "./?.lua;../modules/?.lua";
GameUIConstants = require( "gameui_constants" );
ButtonCode = require( "buttoncode" );

local currentMenuItem = 0;
main_menu = {}

function main_menu:Version( )
	return 4639;
end

function main_menu:OnLoad( params )
	print( "main_menu_OnLoad!" );
	self.scripthandle = params.scripthandle

	currentMenuItem = 0;

	-- blah we need these so we can change the fonts on them.
	menuitemtxt1 = "menubutton1:menuitemtxt_Instance"
	menuitemtxt2 = "menubutton2:menuitemtxt_Instance"
	menuitemtxt3 = "menubutton3:menuitemtxt_Instance"
	menuitemtxt4 = "menubutton4:menuitemtxt_Instance"
	menuitemtxt5 = "menubutton5:menuitemtxt_Instance"
	menuitemtxt6 = "menubutton6:menuitemtxt_Instance"
	menuitemtxt7 = "menubutton7:menuitemtxt_Instance"
	menuitemtxt8 = "menubutton8:menuitemtxt_Instance"
	menuitemtxt9 = "menubutton9:menuitemtxt_Instance"
	menuitemtxts  = { menuitemtxt1, menuitemtxt2, menuitemtxt3, menuitemtxt4, menuitemtxt5, menuitemtxt6, menuitemtxt7, menuitemtxt8, menuitemtxt9 }

	-- these are the hitareas inside the groups.
	button1 = "menubutton1:button1_Instance"
	button2 = "menubutton2:button1_Instance"
	button3 = "menubutton3:button1_Instance"
	button4 = "menubutton4:button1_Instance"
	button5 = "menubutton5:button1_Instance"
	button6 = "menubutton6:button1_Instance"
	button7 = "menubutton7:button1_Instance"
	button8 = "menubutton8:button1_Instance"
	button9 = "menubutton9:button1_Instance"
	buttons  = { button1, button2, button3, button4, button5, button6, button7, button8, button9 };

	-- These are the menu item sizes going away from the selected item.
	menuitemfontnames = { "Small48", "Small36", "Small24", "Small20", "Small16", "Small16", "Small16", "Small16", "Small16", "Small16" };

	-- start off with gamecollectiontxt selected, center item.
	main_menu:InitList( 5 )
end

function main_menu:SetFontHelper( szGraphicName, szFontName )
	-- !!!!!!!!!!!!!!!!!!!!!!
	-- HACK: never do this! Always find your graphic controls and store their handles in OnLoad function!
	-- !!!!!!!!!!!!!!!!!!!!!!
	c:CallGraphic(
		c:CallScript( self.scripthandle,
			"FindGraphic",
			{ graphic = szGraphicName }
			).graphichandle,
		"SetFont",
		{ fontname = szFontName }
		)
end

function main_menu:RequestFocusHelper( szGraphicName, szSoundName )
	-- !!!!!!!!!!!!!!!!!!!!!!
	-- HACK: never do this! Always find your graphic controls and store their handles in OnLoad function!
	-- !!!!!!!!!!!!!!!!!!!!!!
	c:CallGraphic(
		c:CallScript( self.scripthandle,
			"FindGraphic",
			{ graphic = szGraphicName }
			).graphichandle,
		"RequestFocus",
		{ sound = szSoundName }
		)
end

function main_menu:InitList( centerMenuItem )

	-- Set centerMenuItem selected
	self:SetFontHelper( menuitemtxts[centerMenuItem], menuitemfontnames[1] )

	-- unselect all others
	local i = cen


[cfg(feature = "polish")]
        Language::Polish => POLISH_MODELS_DIRECTORY,

        #[cfg(feature = "portuguese")]
        Language::Portuguese => PORTUGUESE_MODELS_DIRECTORY,

        #[cfg(feature = "punjabi")]
        Language::Punjabi => PUNJABI_MODELS_DIRECTORY,

        #[cfg(feature = "romanian")]
        Language::Romanian => ROMANIAN_MODELS_DIRECTORY,

        #[cfg(feature = "russian")]
        Language::Russian => RUSSIAN_MODELS_DIRECTORY,

        #[cfg(feature = "serbian")]
        Language::Serbian => SERBIAN_MODELS_DIRECTORY,

        #[cfg(feature = "shona")]
        Language::Shona => SHONA_MODELS_DIRECTORY,

        #[cfg(feature = "slovak")]
        Language::Slovak => SLOVAK_MODELS_DIRECTORY,

        #[cfg(feature = "slovene")]
        Language::Slovene => SLOVENE_MODELS_DIRECTORY,

        #[cfg(feature = "somali")]
        Language::Somali => SOMALI_MODELS_DIRECTORY,

        #[cfg(feature = "sotho")]
        Language::Sotho => SOTHO_MODELS_DIRECTORY,

        #[cfg(feature = "spanish")]
        Language::Spanish => SPANISH_MODELS_DIRECTORY,

        #[cfg(feature = "swahili")]
        Language::Swahili => SWAHILI_MODELS_DIRECTORY,

        #[cfg(feature = "swedish")]
        Language::Swedish => SWEDISH_MODELS_DIRECTORY,

        #[cfg(feature = "tagalog")]
        Language::Tagalog => TAGALOG_MODELS_DIRECTORY,

        #[cfg(feature = "tamil")]
        Language::Tamil => TAMIL_MODELS_DIRECTORY,

        #[cfg(feature = "telugu")]
        Language::Telugu => TELUGU_MODELS_DIRECTORY,

        #[cfg(feature = "thai")]
        Language::Thai => THAI_MODELS_DIRECTORY,

        #[cfg(feature = "tsonga")]
        Language::Tsonga => TSONGA_MODELS_DIRECTORY,

        #[cfg(feature = "tswana")]
        Language::Tswana => TSWANA_MODELS_DIRECTORY,

        #[cfg(feature = "turkish")]
        Language::Turkish => TURKISH_MODELS_DIRECTORY,

        #[cfg(feature = "ukrainian")]
        Language::Ukrainian => UKRAINIAN_MODELS_DIRECTORY,

        #[cfg(feature = "urdu")]
        Language::Urdu => URDU_MODELS_DIRECTORY,

        #[cfg(feature = "vietnamese")]
        Language::Vietnamese => VIETNAMESE_MODELS_DIRECTORY,

        #[cfg(feature = "welsh")]
        Language::Welsh => WELSH_MODELS_DIRECTORY,

        #[cfg(feature = "xhosa")]
        Language::Xhosa => XHOSA_MODELS_DIRECTORY,

        #[cfg(feature = "yoruba")]
        Language::Yoruba => YORUBA_MODELS_DIRECTORY,

        #[cfg(feature = "zulu")]
        Language::Zulu => ZULU_MODELS_DIRECTORY,
    }
}

#[cfg(test)]
mod tests {
    use super::*;
    use crate::minify;

    const EXPECTED_UNIGRAM_MODEL: &str = r#"
    {
        "language":"ENGLISH",
        "ngrams":{
            "2/93616591":"ﬀ ċ ė ĩ ȼ ɔ ţ ũ ʔ ơ ả ộ ù",
            "36/93616591":"ā",
            "16/93616591":"ﬁ",
            "7/93616591":"ă ệ",
            "5/93616591":"ą ħ ś",
            "26/93616591":"ć",
            "49/93616591":"č",
            "8/936


[] previewTypes = JasperPrintRenderer.getPreviewType(isCanExport);
		for(int i = 0; i < previewTypes.length; i++) {
			previewType.appendItem(previewTypes[i].getName(), previewTypes[i].getValue());
			if (previewTypes[i].getValue().equals(defaultType))
				previewType.setSelectedIndex(i);
		}

		toolbar.appendChild(previewType);
		previewType.addEventListener(Events.ON_SELECT, this);

		// Added BY Martin - Ntier Software Services 09/10/2013
		toolbar.appendChild(new Separator("vertical"));
		bSendMail.setName("SendMail");  // ?? Msg
		if (ThemeManager.isUseFontIconForImage())
			bSendMail.setIconSclass(Icon.getIconSclass(Icon.SEND_MAIL));
		else
			bSendMail.setImage(ThemeManager.getThemeResource("images/SendMail24.png"));
		bSendMail.setTooltiptext(Util.cleanAmp(Msg.getMsg(Env.getCtx(), "SendMail")));
		toolbar.appendChild(bSendMail);
		bSendMail.addEventListener(Events.ON_CLICK, this);

		toolbar.appendChild(new Separator("vertical"));
		bArchive.setName("Archive");
		if (ThemeManager.isUseFontIconForImage())
			bArchive.setIconSclass(Icon.getIconSclass(Icon.ARCHIVE));
		else
			bArchive.setImage(ThemeManager.getThemeResource("images/Archive24.png"));
		bArchive.setTooltiptext(Util.cleanAmp(Msg.getMsg(Env.getCtx(), "Archive")));
		toolbar.appendChild(bArchive);
		bArchive.addEventListener(Events.ON_CLICK, this);

		int tableId = m_printInfo.getAD_Table_ID();
		int recordId = m_printInfo.getRecord_ID();
		if (tableId > 0 && recordId > 0) {
			toolbar.appendChild(new Separator("vertical"));
			bAttachment.setName("Attachment");
			if (ThemeManager.isUseFontIconForImage())
				bAttachment.setIconSclass(Icon.getIconSclass(Icon.ATTACHMENT));
			else
				bAttachment.setImage(ThemeManager.getThemeResource("images/Attachment24.png"));
			bAttachment.setTooltiptext(Util.cleanAmp(Msg.getMsg(Env.getCtx(), "Attachment")));
			toolbar.appendChild(bAttachment);
			bAttachment.addEventListener(Events.ON_CLICK, this);
		}

		if ( isCanExport )
		{
			bExport.setName("Export");
			if (ThemeManager.isUseFontIconForImage())
				bExport.setIconSclass(Icon.getIconSclass(Icon.EXPORT));
			else
				bExport.setImage(ThemeManager.getThemeResource("images/Export24.png"));
			bExport.setTooltiptext(Util.cleanAmp(Msg.getMsg(Env.getCtx(), "Export")));
			toolbar.appendChild(bExport);
			bExport.addEventListener(Events.ON_CLICK, this);
			if (ThemeManager.isUseFontIconForImage())
				LayoutUtils.addSclass("medium-toolbarbutton", bExport);

			uploadServicesMap = MAuthorizationAccount.getUserUploadServices();
			if (uploadServicesMap.size() > 0) {
				bCloudUpload.setName("CloudUpload");
				if (ThemeManager.isUseFontIconForImage())
					bCloudUpload.setIconSclass(Icon.getIconSclass(Icon.FILE_IMPORT));
				else
					bCloudUpload.setImage(ThemeManager.getThemeResource("images/FileImport24.png"));
				bCloudUpload.setTooltiptext(Util.cleanAmp(Msg.getMsg(Env.getCtx(), "CloudUpload")));
				toolbar.appendChild(bCloudUpload);
				bCloudUpload.addEventListener(Events.ON_CLICK, this);
			}
		}

		North north = new North();
		layout.appendChild(north);
		north.appendChild(


eled idl-code" data-dfn-for="Clients" data-dfn-type="method" data-export id="clients-get-method">get(<var>id</var>)</dfn> method must run these steps:

Let <var>promise</var> be a new promise.

        Run these substeps in parallel:

          For each service worker client <var>client</var> whose origin is the same as the associated service worker’s origin:

            If <var>client</var>’s id is <var>id</var>, then:

If <var>client</var> is not a secure context, reject <var>promise</var> with a "SecurityError" exception and abort these steps.

              If <var>client</var> is a window client, then:

Let <var>browsingContext</var> be <var>client</var>’s global object’s browsing context.

Let <var>visibilityState</var> be null.

Let <var>focusState</var> be null.

                Queue a task <var>task</var> to run the


>>,
    iter_count: usize,
    next_event: Option<HighlightEvent>,
    last_highlight_range: Option<(usize, usize, usize)>,
}

struct HighlightIterLayer<'a, 'tree: 'a> {
    _tree: Tree,
    cursor: QueryCursor,
    captures: iter::Peekable<QueryCaptures<'a, 'tree, &'a [u8]>>,
    config: &'a HighlightConfiguration,
    highlight_end_stack: Vec<usize>,
    scope_stack: Vec<LocalScope<'a>>,
    ranges: Vec<Range>,
    depth: usize,
}

impl Highlighter {
    pub fn new() -> Self {
        Highlighter {
            parser: Parser::new(),
            cursors: Vec::new(),
        }
    }

    pub fn parser(&mut self) -> &mut Parser {
        &mut self.parser
    }

    /// Iterate over the highlighted regions for a given slice of source code.
    pub fn highlight<'a>(
        &'a mut self,
        config: &'a HighlightConfiguration,
        source: &'a [u8],
        cancellation_flag: Option<&'a AtomicUsize>,
        mut injection_callback: impl FnMut(&str) -> Option<&'a HighlightConfiguration> + 'a,
    ) -> Result<impl Iterator<Item = Result<HighlightEvent, Error>> + 'a, Error> {
        let layers = HighlightIterLayer::new(
            source,
            self,
            cancellation_flag,
            &mut injection_callback,
            config,
            0,
            vec![Range {
                start_byte: 0,
                end_byte: usize::MAX,
                start_point: Point::new(0, 0),
                end_point: Point::new(usize::MAX, usize::MAX),
            }],
        )?;
        assert_ne!(layers.len(), 0);
        let mut result = HighlightIter {
            source,
            byte_offset: 0,
            injection_callback,
            cancellation_flag,
            highlighter: self,
            iter_count: 0,
            layers: layers,
            next_event: None,
            last_highlight_range: None,
        };
        result.sort_layers();
        Ok(result)
    }
}

impl HighlightConfiguration {
    /// Creates a `HighlightConfiguration` for a given `Language` and set of highlighting
    /// queries.
    ///
    /// # Parameters
    ///
    /// * `language`  - The Tree-sitter `Language` that should be used for parsing.
    /// * `highlights_query` - A string containing tree patterns for syntax highlighting. This
    ///   should be non-empty, otherwise no syntax highlights will be added.
    /// * `injections_query` -  A string containing tree patterns for injecting other languages
    ///   into the document. This can be empty if no injections are desired.
    /// * `locals_query` - A string containing tree patterns for tracking local variable
    ///   definitions and references. This can be empty if local variable tracking is not needed.
    ///
    /// Returns a `HighlightConfiguration` that can then be used with the `highlight` method.
    pub fn new(
        language: Language,
        highlights_query: &str,
        injection_query: &str,
        locals_query: &str,
    ) -> Result<Self, QueryError> {
        // Concatenate the query strings, keeping track of the start offset of each section.
        let mut query_source = String::new();
        query_source.push_str(injection_query);
        let locals_query_offset = query_source.len();
        query_source.push_str(locals_query);
        let highlights_query_offset


ake in wei")
	cmd.Flags().Uint32Var(&cfg.DelegationID, "delegation-id", 0, "The delegation ID (0 for flexible staking)")
}

func bindValidatorRedelegateFlags(cmd *cobra.Command, cfg *redelegateConfig) {
	bindValidatorBaseFlags(cmd, &cfg.baseConfig)
	cmd.Flags().StringVar(&cfg.ValidatorSrcPubKey, "validator-src-pubkey", "", "Src validator's hex-encoded compressed 33-byte secp256k1 public key")
	cmd.Flags().StringVar(&cfg.ValidatorDstPubKey, "validator-dst-pubkey", "", "Dst validator's hex-encoded compressed 33-byte secp256k1 public key")
	cmd.Flags().StringVar(&cfg.StakeAmount, "redelegate", "", "Amount to redelegate in wei")
	cmd.Flags().Uint32Var(&cfg.DelegationID, "delegation-id", 0, "The delegation ID (0 for flexible staking)")
}

func bindValidatorRedelegateOnBehalfFlags(cmd *cobra.Command, cfg *redelegateConfig) {
	bindValidatorBaseFlags(cmd, &cfg.baseConfig)
	cmd.Flags().StringVar(&cfg.DelegatorAddress, "delegator-address", "", "Delegator's EVM address")
	cmd.Flags().StringVar(&cfg.ValidatorSrcPubKey, "validator-src-pubkey", "", "Src validator's hex-encoded compressed 33-byte secp256k1 public key")
	cmd.Flags().StringVar(&cfg.ValidatorDstPubKey, "validator-dst-pubkey", "", "Dst validator's hex-encoded compressed 33-byte secp256k1 public key")
	cmd.Flags().StringVar(&cfg.StakeAmount, "redelegate", "", "Amount to redelegate in wei")
	cmd.Flags().Uint32Var(&cfg.DelegationID, "delegation-id", 0, "The delegation ID (0 for flexible staking)")
}

func bindValidatorKeyExportFlags(cmd *cobra.Command, cfg *exportKeyConfig) {
	bindValidatorKeyFlags(cmd, &cfg.ValidatorKeyFile)
	defaultEVMKeyFilePath := filepath.Join(config.DefaultHomeDir(), "config", "private_key.txt")
	cmd.Flags().BoolVar(&cfg.ExportEVMKey, "export-evm-key", false, "Export the EVM private key")
	cmd.Flags().StringVar(&cfg.EvmKeyFile, "evm-key-path", defaultEVMKeyFilePath, "Path to save the exported EVM private key")
}

func bindKeyGenPrivKeyJSONFlags(cmd *cobra.Command, cfg *genPrivKeyJSONConfig) {
	bindValidatorKeyFlags(cmd, &cfg.ValidatorKeyFile)
	bindValidatorBaseFlags(cmd, &cfg.baseConfig)
}

func bindKeyShowEncryptedFlags(cmd *cobra.Command, cfg *showEncryptedConfig) {
	bindValidatorBaseFlags(cmd, &cfg.baseConfig)
	cmd.Flags().BoolVar(&cfg.ShowPrivate, "show-private", false, "Show private key")
}

func bindValidatorKeyFlags(cmd *cobra.Command, keyFilePath *string) {
	defaultKeyFilePath := filepath.Join(config.DefaultHomeDir(), "config", "priv_validator_key.json")
	cmd.Flags().StringVar(keyFilePath, "keyfile", defaultKeyFilePath, "Path to the Tendermint key file")
}

func bindEncPrivKeyFileFlags(cmd *cobra.Command, encKeyFilePath *string) {
	cmd.Flags().StringVar(encKeyFilePath, "enc-key-file", "", "Path to the encrypted private key file")
}

func bindStatusFlags(flags *pflag.FlagSet, cfg *StatusConfig) {
	libcmd.BindHomeFlag(flags, &cfg.HomeDir)
}

func bindKeyConvertFlags(cmd *cobra.Command, cfg *keyConfig) {
	cmd.Flags().StringVar(&cfg.ValidatorKeyFile, "validator-key-file", "", "Path to the validator key file")
	cmd.Flags().StringVar(&


.include "macro.inc"
.set noreorder

.lcomm SAVERA2, 4

.text
glabel _patch_gte
    sw         $ra, SAVERA2
    jal        EnterCriticalSection
    .nop
    li         $t1, 0x56
    li         $t2, 0xB0
    jal        $t2
    .nop
    lw         $v0, 0x18($v0)
    .nop
    addu       $v0, 0x28
    addu       $t7, $v0, $zero
    la         $t2, 3f
    la         $t1, 4f
0:
    lw         $v1, 0x0($t2)
    lw         $t3, 0x0($v0)
    addu       $t2, 0x4
    bne        $v1, $t3, 2f
    addu       $v0, 0x4
    bne        $t2, $t1, 0b
    .nop
    addu       $v0, $t7, $zero
    la         $t2, 4f
    la         $t1, 5f
1:
    lw


 on error
	.ftrace1
feclearexcept:
	.ftrace2
#ifdef __x86_64__
//	maintain exceptions in the sse mxcsr, clear x87 exceptions
	mov	%edi,%ecx
	and	$0x3f,%ecx
#ifndef NOX87
	fnstsw	%ax
	test	%eax,%ecx
	jz	1f
	fnclex
1:
#endif
	stmxcsr	-8(%rsp)
	and	$0x3f,%eax
	or	%eax,-8(%rsp)
	test	%ecx,-8(%rsp)
	jz	1f
	not	%ecx
	and	%ecx,-8(%rsp)
	ldmxcsr	-8(%rsp)
1:	xor	%eax,%eax
	ret
#elif defined(__aarch64__)
	and	w0,w0,#0x1f
	mrs	x1,fpsr
	bic	w1,w1,w0
	msr	fpsr,x1
	mov	w0,#0
	ret
#else
#error "unsupported architecture"
#endif
	.endfn	feclearexcept,globl

//	Checks for floating point exception.
//
//	This function may be used to check the thread-local
//	floating-point exception status bits, e.g.
//
//	    feclearexcept(FE_ALL_EXCEPT);
//	    volatile double x = 0, y = 1 / x;
//	    assert(fetestexcept(FE_ALL_EXCEPT) == FE_DIVBYZERO);
//
	.ftrace1
//	@param excepts may bitwise-or the following:
//		- `FE_INVALID`
//		- `FE_DIVBYZERO`
//		- `FE_OVERFLOW`
//		- `FE_UNDERFLOW`
//		- `FE_INEXACT`
//		- `FE_ALL_EXCEPT` (all of the above)
//	@return	mask of which exception status codes are currently set,
//		or zero if there aren't any floating point exceptions
	.ftrace1
fetestexcept:
	.ftrace2
#ifdef __x86_64__
	and	$0x3f,%edi
	push	$0
	stmxcsr	(%rsp)
#ifdef NOX87
	pop	%rax
#else
	pop	%rsi
	fnstsw	%ax
	or	%esi,%eax
	and	%edi,%eax
#endif
	ret
#elif defined(__aarch64__)
	and	w0,w0,#0x1f
	mrs	x1,fpsr
	and	w0,w0,w1
	ret
#endif
	.endfn	fetestexcept,globl

	.ftrace1
feraiseexcept:
	.ftrace2
#ifdef __x86_64__
	and	$0x3f,%edi
	stmxcsr	-8(%rsp)
	or	%edi,-8(%rsp)
	ldmxcsr	-8(%rsp)
	xor	%eax,%eax
	ret
#elif defined(__aarch64__)
	and	w0,w0,#0x1f
	mrs	x1,fpsr
	orr	w1,w1,w0
	msr	fpsr,x1
	mov	w0,#0
	ret
#endif
	.endfn	feraiseexcept,globl

	.ftrace1
__fesetround:
	.ftrace2
#ifdef __x86_64__
	push	%rax
	xor	%eax,%eax
	mov	%edi,%ecx
#ifndef NOX87
	fnstcw	(%rsp)
	andb	$0xf3,1(%rsp)
	or	%ch,1(%rsp)
	fldcw	(%rsp)
#endif
	stmxcsr	(%rsp)
	shl	$3,%ch
	andb	$0x9f,1(%rsp)
	or	%ch,1(%rsp)
	ldmxcsr	(%rsp)
	pop	%rcx
	ret
#elif defined(__aarch64__)
	mrs	x1,fpcr
	bic	w1,w1,#0xc00000
	orr	w1,w1,w0
	msr	fpcr,x1
	mov	w0,#0
	ret
#endif
	.endfn	__fesetround,globl,hidden

	.ftrace1
fegetround:
	.ftrace2
#ifdef __x86_64__
	push	%rax
	stmxcsr	(%rsp)
	pop	%rax
	shr	$3,%eax
	and	$0xc00,%eax
	ret
#elif defined(__aarch64__)
	mrs	x0,fpcr
	and	w0,w0,#0xc00000
	ret
#endif
	.endfn	fegetround,globl

	.ftrace1
fegetenv:
	.ftrace2
#ifdef __x86_64__
	xor	%eax,%eax
#ifndef NOX87
	fnstenv	(%rdi)
#endif
	stmxcsr	28(%rdi)
	ret
#elif defined(__aarch64__)
	mrs


		4. STRUCTURE MAPPING: Identify navigation patterns, page hierarchy, and site organization
		5. PURPOSE IDENTIFICATION: Determine the primary function and target audience
		6. INSIGHT EXTRACTION: Extract key technical details, business model, and unique features

		FOCUS AREAS:
		- Site title, description, and branding elements
		- Main content themes and messaging
		- Technical stack indicators (frameworks, libraries)
		- Business/personal information and contact details
		- Key features, services, or products offered
		- Design patterns and user experience elements

		THOROUGHNESS REQUIREMENT:
		DO NOT BE LAZY! You must continue analyzing until you have exhausted all ` +
		`available information or reached the tool limit. Start with the main page, ` +
		`then explore additional pages like:
		- /about, /contact, /portfolio, /services, /products
		- Any links found in navigation menus or footer
		- Subpages that provide more context about the site owner or business
		- Continue fetching pages until you have a complete picture or hit the 3-request limit

		OUTPUT REQUIREMENTS:
		- Provide a clear, descriptive title based on actual content
		- Summarize the site's primary purpose in 1-2 sentences
		- List 5-10 key insights that reveal important aspects of the site`
}

func runAnalysis(ctx context.Context, analyzerAgent *agent.Agent[AgentResult], input AgentInput) {
	log.Printf("Starting analyzer-agent...")
	res, err := analyzerAgent.Run(ctx, input)
	if err != nil {
		log.Fatalf("Failed to run analyzer-agent: %v", err)
	}

	data, err := json.MarshalIndent(res.Data, "", "  ")
	if err != nil {
		log.Fatalf("Failed to marshal result: %v", err)
	}
	log.Printf("Analyzer result: %s\n", data)
}

func createHttpTool() llm.LLMTool {
	tool, err := llm.NewLLMTool(
		llm.WithLLMToolName("http"),
		llm.WithLLMToolDescription("Fetches content from a URL via HTTP GET request"),
		llm.WithLLMToolParametersSchema[HttpToolParams](),
		llm.WithLLMToolCall(handleHttpRequest),
	)
	if err != nil {
		log.Fatalf("Failed to create http tool: %v", err)
	}

	return tool
}

func handleHttpRequest(callID string, params HttpToolParams) (HttpToolResult, error) {
	log.Printf("🌐 HTTP CALL: GET %s", params.URL)

	req, err := http.NewRequestWithContext(context.Background(), http.MethodGet, params.URL, nil)
	if err != nil {
		return createErrorResult(callID, 0, "Error creating request: "+err.Error()), nil
	}

	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		return createErrorResult(callID, 0, "Error: "+err.Error()), nil
	}
	defer func() {
		if closeErr := resp.Body.Close(); closeErr != nil {
			log.Printf("Error closing response body: %v", closeErr)
		}
	}()

	headers := extractHeaders(resp.Header)
	body, err := io.ReadAll(resp.Body)
	if err != nil {
		return HttpToolResult{
			BaseLLMToolResult: llm.BaseLLMToolResult{ID: callID},
			StatusCode:        resp.StatusCode,
			Body:              "Error r


eshdata.AnimatedVertexFramesByVertexIndex[j].VertexOffsetFrames[i].Z) > float.Epsilon)
                        {
                            hasNonZero = true;
                            break;
                        }
                    }
                    if (hasNonZero == false)
                        framesToDelete.Add(i);
                }
                for (int i = framesToDelete.Count - 1; i >= 0; i--)
                {
                    for (int j = 0; j < Meshdata.AnimatedVertexFramesByVertexIndex.Count; j++)
                    {
                        Meshdata.AnimatedVertexFramesByVertexIndex[j].VertexOffsetFrames.RemoveAt(framesToDelete[i]);
                        Meshdata.AnimatedVertexFramesByVertexIndex[j].VertexOffsetFramesInStringLiteral.RemoveAt(framesToDelete[i]);
                    }
                }

                // Anywhere there is no movement at all, purge that list of offsets
                for (int i = 0; i < Meshdata.AnimatedVertexFramesByVertexIndex.Count; i++)
                {
                    bool allTheSame = true;
                    string xValue = string.Empty;
                    string yValue = string.Empty;
                    string zValue = string.Empty;
                    for (int j = 0; j < Meshdata.AnimatedVertexFramesByVertexIndex[i].VertexOffsetFramesInStringLiteral.Count; ++j)
                    {
                        if (j == 0)
                        {
                            xValue = Meshdata.AnimatedVertexFramesByVertexIndex[i].VertexOffsetFramesInStringLiteral[j].XString;
                            yValue = Meshdata.AnimatedVertexFramesByVertexIndex[i].VertexOffsetFramesInStringLiteral[j].YString;
                            zValue = Meshdata.AnimatedVertexFramesByVertexIndex[i].VertexOffsetFramesInStringLiteral[j].ZString;
                        }
                        else if (Meshdata.AnimatedVertexFramesByVertexIndex[i].VertexOffsetFramesInStringLiteral[j].XString != xValue ||
                            Meshdata.AnimatedVertexFramesByVertexIndex[i].VertexOffsetFramesInStringLiteral[j].YString != yValue ||
                            Meshdata.AnimatedVertexFramesByVertexIndex[i].VertexOffsetFramesInStringLiteral[j].ZString != zValue)
                        {
                            allTheSame = false;
                            break;
                        }
                    }
                    if (allTheSame == true)
                    {
                        Meshdata.AnimatedVertexFramesByVertexIndex[i].VertexOffsetFrames.Clear();
                        Meshdata.AnimatedVertexFramesByVertexIndex[i].VertexOffsetFramesInStringLiteral.Clear();
                    }
                }
            }

            Logger.WriteDebug(" - Done reading EQ Mesh Data from '" + fileFullPath + "'");
            return true;
        }
    }
}


);
    var r = parseFloatWithUnits(node.getAttribute('r'));

    var subpath = Path(null);
    subpath.absarc(x, y, r, 0, Math.PI * 2, null);

    var path = ShapePath();
    path.subPaths.add(subpath);

    return path;
  }

  ShapePath parseEllipseNode(node) {
    var x = parseFloatWithUnits(node.getAttribute('cx'));
    var y = parseFloatWithUnits(node.getAttribute('cy'));
    var rx = parseFloatWithUnits(node.getAttribute('rx'));
    var ry = parseFloatWithUnits(node.getAttribute('ry'));

    var subpath = Path(null);
    subpath.absellipse(x, y, rx, ry, 0, Math.PI * 2, null, null);

    var path = ShapePath();
    path.subPaths.add(subpath);

    return path;
  }

  ShapePath parseLineNode(node) {
    var x1 = parseFloatWithUnits(node.getAttribute('x1'));
    var y1 = parseFloatWithUnits(node.getAttribute('y1'));
    var x2 = parseFloatWithUnits(node.getAttribute('x2'));
    var y2 = parseFloatWithUnits(node.getAttribute('y2'));

    var path = ShapePath();
    path.moveTo(x1, y1);
    path.lineTo(x2, y2);
    path.currentPath.autoClose = false;

    return path;
  }

  isTransformRotated(m) {
    return m.elements[1] != 0 || m.elements[3] != 0;
  }

  getTransformScaleX(m) {
    var te = m.elements;
    return Math.sqrt(te[0] * te[0] + te[1] * te[1]);
  }

  getTransformScaleY(m) {
    var te = m.elements;
    return Math.sqrt(te[3] * te[3] + te[4] * te[4]);
  }

  transformPath(path, m) {
    transfVec2(v2) {
      tempV3.set(v2.x, v2.y, 1).applyMatrix3(m);

      v2.set(tempV3.x, tempV3.y);
    }

    var isRotated = isTransformRotated(m);

    var subPaths = path.subPaths;

    for (var i = 0, n = subPaths.length; i < n; i++) {
      var subPath = subPaths[i];
      var curves = subPath.curves;

      for (var j = 0; j < curves.length; j++) {
        var curve = curves[j];

        if (curve is LineCurve) {
          transfVec2(curve.v1);
          transfVec2(curve.v2);
        } else if (curve.isCubicBezierCurve) {
          transfVec2(curve.v0);
          transfVec2(curve.v1);
          transfVec2(curve.v2);
          transfVec2(curve.v3);
        } else if (curve.isQuadraticBezierCurve) {
          transfVec2(curve.v0);
          transfVec2(curve.v1);
          transfVec2(curve.v2);
        } else if (curve.isEllipseCurve) {
          if (isRotated) {
            print(
                'SVGLoader: Elliptic arc or ellipse rotation or skewing is not implemented.');
          }

          tempV2.set(curve.aX, curve.aY);
          transfVec2(tempV2);
          curve.aX = tempV2.x;
          curve.aY = tempV2.y;

          curve.xRadius *= getTransformScaleX(m);
          curve.yRadius *= getTransformScaleY(m);
        }
      }
    }


pmuludq 352(%esp), %ymm6, %ymm7
vmovdqu %ymm7, 96(%esp)
vpmuludq 384(%esp), %ymm6, %ymm7
vpmuludq %ymm6, %ymm5, %ymm6
vmovdqu %ymm7, 64(%esp)
vmovdqu %ymm6, 32(%esp)
jmp poly1305_blocks_avx2_33
.p2align 6
poly1305_blocks_avx2_33:
vmovdqu (%edx), %ymm6
addl $-64, %ecx
vmovdqu %ymm3, 416(%esp)
vmovdqu %ymm4, 160(%esp)
vperm2i128 $32, 32(%edx), %ymm6, %ymm7
vperm2i128 $49, 32(%edx), %ymm6, %ymm5
addl $64, %edx
vpunpckldq %ymm5, %ymm7, %ymm6
vpunpckhdq %ymm5, %ymm7, %ymm7
vmovdqu %ymm6, 448(%esp)
vmovdqu %ymm7, 480(%esp)
vpmuludq 128(%esp), %ymm0, %ymm7
vpmuludq 96(%esp), %ymm2, %ymm5
vpaddq %ymm5, %ymm7, %ymm7
vpmuludq 64(%esp), %ymm1, %ymm5
vpaddq %ymm5, %ymm7, %ymm5
vmovdqu 32(%esp), %ymm7
vpmuludq %ymm7, %ymm3, %ymm3
vpaddq %ymm3, %ymm5, %ymm5
vmovdqu 288(%esp), %ymm3
vpmuludq %ymm3, %ymm4, %ymm4
vpaddq %ymm4, %ymm5, %ymm4
vpxor %ymm5, %ymm5, %ymm5
vpunpckldq %ymm5, %ymm6, %ymm6
vpaddq %ymm6, %ymm4, %ymm4
vpmuludq %ymm7, %ymm0, %ymm6
vpmuludq %ymm3, %ymm2, %ymm3
vmovdqu %ymm4, 512(%esp)
vpaddq %ymm3, %ymm6, %ymm4
vmovdqu 416(%esp), %ymm6
vpmuludq 320(%esp), %ymm1, %ymm3
vpaddq %ymm3, %ymm4, %ymm4
vpmuludq 352(%esp), %ymm6, %ymm3
vmovdqu 160(%esp), %ymm6
vpaddq %ymm3, %ymm4, %ymm4
vpmuludq 384(%esp), %ymm6, %ymm3
vpaddq %ymm3, %ymm4, %ymm4
vmovdqu 480(%esp), %ymm3
vpunpckhdq %ymm5, %ymm3, %ymm3
vpsllq $18, %ymm3, %ymm3
vpaddq %ymm3, %ymm4, %ymm4
vmovdqu %ymm4, 544(%esp)
vpmuludq 96(%esp), %ymm0, %ymm4
vpmuludq 64(%esp), %ymm2, %ymm3
vpaddq %ymm3, %ymm4, %ymm4
vmovdqu 288(%esp), %ymm3
vpmuludq %ymm7, %ymm1, %ymm7
vpaddq %ymm7, %ymm4, %ymm4
vpmuludq 416(%esp), %ymm3, %ymm7
vpaddq %ymm7, %ym


ring())

		require.Equal(t, tc.expectedKey, ka)
		require.Equal(t, tc.expectedValue, va)

		iterator.Next()
	}

	require.False(t, iterator.Valid())
	require.Panics(t, iterator.Next)
	require.NoError(t, iterator.Close())
}

func TestTestTraceKVStoreReverseIterator(t *testing.T) {
	var buf bytes.Buffer

	store := newTraceKVStore(&buf)
	iterator := store.ReverseIterator(nil, nil)

	s, e := iterator.Domain()
	require.Equal(t, []byte(nil), s)
	require.Equal(t, []byte(nil), e)

	testCases := []struct {
		expectedKey      []byte
		expectedValue    []byte
		expectedKeyOut   string
		expectedvalueOut string
	}{
		{
			expectedKey:      kvPairs[2].Key,
			expectedValue:    kvPairs[2].Value,
			expectedKeyOut:   "{\"operation\":\"iterKey\",\"key\":\"a2V5MDAwMDAwMDM=\",\"value\":\"\",\"metadata\":{\"blockHeight\":64}}\n",
			expectedvalueOut: "{\"operation\":\"iterValue\",\"key\":\"\",\"value\":\"dmFsdWUwMDAwMDAwMw==\",\"metadata\":{\"blockHeight\":64}}\n",
		},
		{
			expectedKey:      kvPairs[1].Key,
			expectedValue:    kvPairs[1].Value,
			expectedKeyOut:   "{\"operation\":\"iterKey\",\"key\":\"a2V5MDAwMDAwMDI=\",\"value\":\"\",\"metadata\":{\"blockHeight\":64}}\n",
			expectedvalueOut: "{\"operation\":\"iterValue\",\"key\":\"\",\"value\":\"dmFsdWUwMDAwMDAwMg==\",\"metadata\":{\"blockHeight\":64}}\n",
		},
		{
			expectedKey:      kvPairs[0].Key,
			expectedValue:    kvPairs[0].Value,
			expectedKeyOut:   "{\"operation\":\"iterKey\",\"key\":\"a2V5MDAwMDAwMDE=\",\"value\":\"\",\"metadata\":{\"blockHeight\":64}}\n",
			expectedvalueOut: "{\"operation\":\"iterValue\",\"key\":\"\",\"value\":\"dmFsdWUwMDAwMDAwMQ==\",\"metadata\":{\"blockHeight\":64}}\n",
		},
	}

	for _, tc := range testCases {
		buf.Reset()
		ka := iterator.Key()
		require.Equal(t, tc.expectedKeyOut, buf.String())

		buf.Reset()
		va := iterator.Value()
		require.Equal(t, tc.expectedvalueOut, buf.String())

		require.Equal(t, tc.expectedKey, ka)
		require.Equal(t, tc.expectedValue, va)

		iterator.Next()
	}

	require.False(t, iterator.Valid())
	require.Panics(t, iterator.Next)
	require.NoError(t, iterator.Close())
}

func TestTraceKVStorePrefix(t *testing.T) {
	store := newEmptyTraceKVStore(nil)
	pStore := prefix.NewStore(store, []byte("trace_prefix"))
	require.IsType(t, prefix.Store{}, pStore)
}

func TestTraceKVStoreGetStoreType(t *testing.T) {
	dbm := dbadapter.Store{DB: dbm.NewMemDB()}
	store := newEmptyTraceKVStore(nil)
	require.Equal(t, dbm.GetStoreType(), store.GetStoreType())
}

func TestTraceKVStoreCacheWrap(t *testing.T) {
	store := newEmptyTraceKVStore(nil)
	require.Panics(t, func() { store.CacheWrap() })
}

func TestTraceKVStoreCacheWrapWithTrace(t *testing.T


using Crm;
using Microsoft.Crm.Sdk.Messages;
using Microsoft.Xrm.Sdk;
using System;
using System.Linq;
using Xunit;

namespace FakeXrmEasy.Tests.FakeContextTests
{
    public class FakeContextTestExecute
    {
        [Fact]
        public void When_Executing_Assign_Request_New_Owner_Should_Be_Assigned()
        {
            var oldOwner = new EntityReference("systemuser", Guid.NewGuid());
            var newOwner = new EntityReference("systemuser", Guid.NewGuid());

            var account = new Account
            {
                Id = Guid.NewGuid(),
                OwnerId = oldOwner


nwse',
            description = 'Double arrow pointing to the top-left and bottom-right.',
        },
        {
            name = 'sizenesw',
            description = 'Double arrow pointing to the top-right and bottom-left.',
        },
        {
            name = 'sizewe',
            description = 'Double arrow pointing left and right.',
        },
        {
            name = 'sizens',
            description = 'Double arrow pointing up and down.',
        },
        {
            name = 'sizeall',
            description = 'Four-pointed arrow pointing up, down, left, and right.',
        },
        {
            name = 'no',
            description = 'Slashed circle or crossbones.',
        },
        {
            name = 'hand',
            description = 'Hand symbol.',
        },
    },
}


from models.user import User
from models.product import Product
from models.order import Order, OrderItem
from models.base import Base

__all__ = [
    "User",
    "Product",
    "Order",
    "OrderItem",
    "Base"
]


�励访问次数少的节点
     * 完整公式：UCB1 = 平均价值 + c * sqrt(ln(父节点访问次数)/当前节点访问次数)

2. **扩展阶段 (Expansion)**
   - 当到达叶节点且有未尝试的移动时
   - 随机选择一个未尝试的移动
   - 创建新的子节点
   - 更新节点的未尝试移动列表

3. **模拟阶段 (Simulation)**
   - 从新节点开始进行随机模拟
   - 使用快速评估策略
   - 直到达到终止状态
   - 记录模拟结果

4. **反向传播 (Backpropagation)**
   - 将模拟结果沿路径向上传播
   - 更新节点访问次数和累计价值
   - 影响后续的选择决策
   - 直到更新到根节点

每个节点维护的统计信息：
- 访问次数：记录节点被访问的次数
- 累计价值：记录所有模拟的总价值
- 子节点列表：记录已扩展的子节点
- 未尝试的移动：记录尚未尝试的移动

## 5. 优化的空间

### 5.1 当前问题
1. **计算效率问题**
   - 每个评估函数都要进行计算，计算量大
   - 多个评估函数的并行计算增加了资源消耗
   - 评估函数的计算复杂度随游戏状态复杂度增加而增加

2. **权重调优问题**
   - 多个评估函数的得分需要通过权重整合
   - 权重策略需要人工反复尝试和调整
   - 不同游戏阶段可能需要不同的权重组合
   - 权重调整过程耗时且难以优化

### 5.2 神经网络解决方案

#### 5.2.1 模型架构设计
```mermaid
graph TD
    subgraph 输入层
        Input[游戏状态输入<br>4x4网格]
        Input --> Conv1[卷积层1<br>64个3x3卷积核]
    end

    subgraph 特征提取
        Conv1 --> Conv2[卷积层2<br>128个3x3卷积核]
        Conv2 --> Conv3[卷积层3<br>256个3x3卷积核]
        Conv3 --> Pool[全局池化]
    end

    subgraph 策略网络
        Pool --> Dense1[全连接层1<br>512个神经元]
        Dense1 --> Dense2[全连接层2<br>256个神经元]
        Dense2 --> Policy[策略输出<br>4个动作概率]
    end

    subgraph 价值网络
        Pool --> Dense3[全连接层1<br>512个神经元]
        Dense3 --> Dense4[全连接层2<br>256个神经元]
        Dense4 --> Value[价值输出<br>状态评分]
    end

    style Input fill:#f9f,stroke:#333,stroke-width:2px
    style Policy fill:#bbf,stroke:#333,stroke-width:2px
    style Value fill:#bfb,stroke:#333,stroke-width:2px
```

1. **网络结构设计**
   - 输入层：4x4网格的游戏状态
   - 卷积层：提取局部特征和模式
   - 全连接层：整合全局信息
   - 双输出头：策略网络和价值网络
   - 残差连接：帮助训练更深的网络

2. **特征表示**
   - 网格编码：使用one-hot编码表示数字
   - 位置编码：考虑数字的相对位置
   - 合并编码：数字和位置的组合特征
   - 历史信息：考虑最近几步的状态变化

3. **训练策略**
   - 自我对弈：通过MCTS生成训练数据
   - 课程学习：从简单状态开始训练
   - 经验回放：存储和重用高质量对局
   - 多任务学习：同时优化策略和价值# Earthquake-Intensity-Analysis-Using-QGIS
![0021](https://github.com/gulnaazshaikh149/Earthquake-Intensity-A


background ssf-bg-count">

  <input class="a-button-input" type="submit" aria-labelledby="a-autoid-1-announce">

 <input class="a-button-input" type="submit" aria-labelledby="a-autoid-2-announce">
        <li class="a-spacing-small item imageThumbnail a-declarative" data-ux-click="" data-csa-c-type="u


) {
	var cpuTimes []cpu.TimesStat
	PerTotal := [2]bool{perCPU, totalCPU}
	for i := 0; i < 2; i++ {
		if PerTotal[i] {
			if cpuTime, err := cpu.Times(i == 0); err == nil {
				cpuTimes = append(cpuTimes, cpuTime...)
			} else {
				return nil, err
			}
		}
	}
	return cpuTimes, nil
}

func (c *CPUInfoTest) CPUTimes(perCPU, totalCPU bool) ([]cpu.TimesStat, error) {
	if c.index < len(c.timeStat) {
		r := c.timeStat[c.index]
		c.index += 1
		return r, nil
	}
	return nil, fmt.Errorf("")
}

var coreTempRegex = regexp.MustCompile(`coretemp_core[\d]+_input`)

func CoreTemp() (map[string]float64, error) {
	if runtime.GOOS == datakit.OSLinux {
		tempMap := map[string]float64{}
		sensorTempStat, err := host.SensorsTemperatures()
		if err != nil {
			return nil, err
		}

		temp, count := 0.0, 0
		for _, v := range sensorTempStat {
			if coreTempRegex.MatchString(v.SensorKey) {
				temp += v.Temperature
				count++
				cpuID := strings.Replace(strings.Split(v.SensorKey, "_")[1], "core", "cpu", 1)
				tempMap[cpuID] = v.Temperature
			}
		}
		if count > 0 {
			tempMap["cpu-total"] = temp / float64(count)
			return tempMap, nil
		} else {
			return nil, fmt.Errorf("no coretemp data")
		}
	}

	return nil, fmt.Errorf("os is not supported")
}

type UsageStat struct {
	CPU       string
	User      float64
	System    float64
	Idle      float64
	Nice      float64
	Iowait    float64
	Irq       float64
	Softirq   float64
	Steal     float64
	Guest     float64
	GuestNice float64
	Total     float64
}

func usageCPU(cur, pre, total float64) float64 {
	v := 100 * (cur - pre) / total
	// 此处规避异常数值，Windows 上存在原始数据异常的情况
	if v < 0 || v > 100 {
		return 0
	}
	return v
}

// CalculateUsage calculate cpu usage.
func CalculateUsage(nowT cpu.TimesStat, lastT cpu.TimesStat, totalDelta float64) (*UsageStat, error) {
	if nowT.CPU != lastT.CPU {
		err := fmt.Errorf("warning. Not the same CPU. CPU:%s %s", nowT.CPU, lastT.CPU)
		return nil, err
	}
	c := new(UsageStat)

	c.CPU = nowT.CPU
	c.User = usageCPU(nowT.User-nowT.Guest, lastT.User-lastT.Guest, totalDelta)
	c.System = usageCPU(nowT.System, lastT.System, totalDelta)
	c.Idle = usageCPU(nowT.Idle, lastT.Idle, totalDelta)
	c.Nice = usageCPU(nowT.Nice-nowT.GuestNice, lastT.Nice-lastT.GuestNice, totalDelta)
	c.Iowait = usageCPU(nowT.Iowait, lastT.Iowait, totalDelta)
	c.Irq = usageCPU(nowT.Irq, lastT.Irq, totalDelta)
	c.Softirq = usageCPU(nowT.Softirq, lastT.Softirq, totalDelta)
	c.Steal = usageCPU(nowT.Steal, lastT.Steal, totalDelta)
	c.Guest = usageCPU(nowT.Guest, lastT.Guest, totalDelta)
	c.GuestNice = usageCPU(nowT.GuestNice, lastT.GuestNice, totalDelta)
	c.Total = c.User + c.System + c.Nice + c.Iowait + c.Irq + c.Softirq + c.Steal + c.Guest + c.GuestNice
	if c.Total < 0 || c.Total > 100 {
		c.Total = 0
	}
	return c, nil
}


/*******************************************************************************
 * gui/NetworkView.h                                                           *
 *                                                                             *
 * Copyright (c) 2008 Robert Fernie    <retroshare.project@gmail.com>          *
 *                                                                             *
 * This program is free software: you can redistribute it and/or modify        *
 * it under the terms of the GNU Affero General Public License as              *
 * published by the Free Software Foundation, either version 3 of the          *
 * License, or (at your option) any later version.                             *
 *                                                                             *
 * This program is distributed in the hope that it will be useful,             *
 * but WITHOUT ANY WARRANTY; without even the implied warranty of              *
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the                *
 * GNU Affero General Public License for more details.                         *
 *                                                                             *
 * You should have received a copy of the GNU Affero General Public License    *
 * along with this program. If not, see <https://www.gnu.org/licenses/>.       *
 *                                                                             *
 *******************************************************************************/

#ifndef _NETWORK_VIEW_H
#define _NETWORK_VIEW_H

#include <QGraphicsScene>

#include <retroshare/rstypes.h>

#include <retroshare-gui/RsAutoUpdatePage.h>
#include "ui_NetworkView.h"

class NetworkView : public RsAutoUpdatePage
{
	Q_OBJECT

	public:
		NetworkView(QWidget *parent = 0);
		virtual ~NetworkView();

		virtual void updateDisplay() ; // derived from RsAutoUpdatePage

	public slots:
		void update() ;

	private slots:

		void setMaxFriendLevel(int) ;
		void setEdgeLength(int) ;
		void setNameSearch(QString) ;

		void changedFoFCheckBox( );
		void redraw();

		void setFreezeState(bool);

	private:

		void  clear();

		QGraphicsScene *mScene;

		/** Qt Designer generated object */
		Ui::NetworkView ui;
		uint _max_friend_level ;
        std::map<RsPgpId,GraphWidget::NodeId> _node_ids ;

		bool _should_update ;
};

#endif


	ids = append(ids, r.ID)
	}
	return ids
}

// Total is.
func (r *SearchUserPropertyReviewResult) Total() int {
	return r.Page.Total
}

// SearchLogResult is.
type SearchLogResult struct {
	Order  string     `json:"order"`
	Sort   string     `json:"sort"`
	Result []AuditLog `json:"result"`
	Page   Page       `json:"page"`
}

// AuditLog is.
type AuditLog struct {
	UID    int64  `json:"uid"`
	Uname  string `json:"uname"`
	OID    int64  `json:"oid"`
	Type   int8   `json:"type"`
	Action string `json:"action"`
	Str0   string `json:"str_0"`
	Str1   string `json:"str_1"`
	Str2   string `json:"str_2"`
	Int0   int    `json:"int_0"`
	Int1   int    `json:"int_1"`
	Int2   int    `json:"int_2"`
	Ctime  string `json:"ctime"`
	Extra  string `json:"extra_data"`
}
package dao

import (
	"context"
	"time"

	"go-common/app/admin/main/member/model"

	"github.com/jinzhu/gorm"
	"github.com/pkg/errors"
)

const (
	_officialName         = "user_official"
	_officialDocName      = "user_official_doc"
	_officialDocAdditName = "user_official_doc_addit"
)

// Official is.
func (d *Dao) Official(ctx context.Context, mid int64) (off *model.Official, err error) {
	off = &model.Official{}
	if err = d.member.Table(_officialName).Where("mid=?", mid).Find(off).Error; err != nil {
		err = errors.Wrap(err, "official docs")
	}
	return
}

// OfficialEdit is.
func (d *Dao) OfficialEdit(ctx context.Context, mid int64, role int8, title, desc string) (off *model.Official, err error) {
	off = &model.Official{
		Mid: mid,
	}
	attrs := map[string]interface{}{
		"role":        role,
		"title":       title,
		"description": desc,
	}
	if err = d.member.Table(_officialName).Where("mid=?", mid).Assign(attrs).FirstOrCreate(off).Error; err != nil {
		err = errors.Wrap(err, "official edit")
	}
	return
}

// Officials is.
func (d *Dao) Officials(ctx context.Context, mid int64, roles []int8, stime, etime time.Time, pn, ps int) (offs []*model.Official, total int, err error) {
	where := "role in (?) AND ctime>? AND ctime<?"
	if mid > 0 {
		where = "mid=? AND " + where
		err = d.member.Table(_officialName).Order("ctime DESC").Offset((pn-1)*ps).Limit(ps).Where(where, mid, roles, stime, etime).Find(&offs).Error
		d.member.Table(_officialName).Where(where, mid, roles, stime, etime).Count(&total)
	} else {
		err = d.member.Table(_officialName).Order("ctime DESC").Offset((pn-1)*ps).Limit(ps).Where(where, roles, stime, etime).Find(&offs).Error
		d.member.Table(_officialName).Where(where, roles, stime, etime).Count(&total)
	}
	if err != nil {
		err = errors.Wrap(err, "official docs")
	}
	return
}

// OfficialDoc is.
func (d *Dao) OfficialDoc(ctx context.Context, mid int64) (off *model.OfficialDoc, err error) {
	off = &model.OfficialDoc{OfficialExtra: &model.OfficialExt


endian use offset in r10=0 that's why is it just
	 * 0xa address. The same is done for the least significant 16 bits
	 * for 0xe address.
	 *
	 * LITTLE ENDIAN memory map for user exception
	 * 0x8: 0xXXXX00B0
	 * 0xC: 0xXXXX08B8
	 *
	 * Offset is for little endian setup to 0x2. rsubi instruction decrease
	 * address value to ensure that points to proper place which is
	 * 0x8 for the most significant 16 bits and
	 * 0xC for the least significant 16 bits
	 */
	lhu	r7, r1, r10
	rsubi	r8, r10, 0xa
	sh	r7, r0, r8
	rsubi	r8, r10, 0xe
	sh	r6, r0, r8
#endif

	/* interrupt_handler */
	swi	r2, r0, 0x10	/* interrupt - imm opcode */
	swi	r3, r0, 0x14	/* interrupt - brai opcode */

	addik	r6, r0, _interrupt_handler
	sw	r6, r1, r0
	lhu	r7, r1, r10
	rsubi	r8, r10, 0x12
	sh	r7, r0, r8
	rsubi	r8, r10, 0x16
	sh	r6, r0, r8

	/* hardware exception */
	swi	r2, r0, 0x20	/* hardware exception - imm opcode */
	swi	r3, r0, 0x24	/* hardware exception - brai opcode */

	addik	r6, r0, _hw_exception_handler
	sw	r6, r1, r0
	lhu	r7, r1, r10
	rsubi	r8, r10, 0x22
	sh	r7, r0, r8
	rsubi	r8, r10, 0x26
	sh	r6, r0, r8
#endif /* BUILD_SPL */

	/* Flush cache before enable cache */
	addik	r5, r0, 0
	addik	r6, r0, XILINX_DCACHE_BYTE_SIZE
flush:	bralid r15, flush_cache
	nop

	/* enable instruction and data cache */
	mfs	r12, rmsr
	ori	r12, r12, 0xa0
	mts	rmsr, r12

clear_bss:
	/* clear BSS segments */
	addi	r5, r0, __bss_start
	addi	r4, r0, __bss_end
	cmp	r6, r5, r4
	beqi	r6, 3f
2:
	swi     r0, r5, 0 /* write zero to loc */
	addi    r5, r5, 4 /* increment to next loc */
	cmp     r6, r5, r4 /* check if we have reach the end */
	bnei    r6, 2b
3:	/* jumping to board_init */
#ifndef CONFIG_SPL_BUILD
	brai	board_init_f
#else
	brai	board_init_r
#endif
1:	bri	1b

#ifndef CONFIG_SPL_BUILD
/*
 * Read 16bit little endian
 */
	.text
	.global	in16
	.ent	in16
	.align	2
in16:	lhu	r3, r0, r5
	bslli	r4, r3, 8
	bsrli	r3, r3, 8
	andi	r4, r4, 0xffff
	or	r3, r3, r4
	rtsd	r15, 8
	sext16	r3, r3
	.end	in16

/*
 * Write 16bit little endian
 * first parameter(r5) - address, second(r6) - short value
 */
	.text
	.global	out16
	.ent	out16
	.align	2
out16:	bslli	r3, r6, 8
	bsrli	r6, r6, 8
	andi	r3, r3, 0xffff
	or	r3, r3, r6
	sh	r3, r0, r5
	rtsd	r15, 8
	or	r0, r0, r0
	.end	out16
#


.weapon_property_127[65652] = {
		id = 65652,
		name = "肇和技能弹幕LV2",
		damage = 9,
		base = 65651
	}
	uv0.weapon_property_127[65653] = {
		id = 65653,
		name = "肇和技能弹幕LV3",
		damage = 10,
		base = 65651
	}
	uv0.weapon_property_127[65654] = {
		id = 65654,
		name = "肇和技能弹幕LV4",
		damage = 11,
		base = 65651
	}
end()


所得税的基本税率",
"basic recipe":"[化] 基本配方",
"basic rectifier":"[电] 基本整流器",
"basic refractory":"[化] 碱性耐火材料",
"basic refractory materials":"[机] 碱性耐火材料",
"basic research":"[经] 基本研究",
"basic rights and duties":"[法] 基本权利和义务",
"basic rocks":"[机] 碱性岩",
"basic salary":"[经] 基本薪金(工资)",
"basic salt":"[化] 碱式盐\\n[医] 硷性盐",
"basic sediment":"[机] 碱性沉积",
"basic sequential access method":"[计] 基本顺序存取法",
"basic shaft system":"[机] 基轴制",
"basic slag":"[化] 碱性炉渣",
"basic slag practice":"[机] 碱性造渣法",
"basic software":"[电] 基本软件",
"basic solvent":"[化] 碱性溶剂",
"basic staff":"[经] 基本职员",
"basic stain":"[医] 硷性染剂",
"basic standard":"[化] 基础标准",
"basic standard cost":"[经] 基本标准成本",
"basic standard cost system":"[经] 基本标准成本制度",
"basic standard motion":"[经] 基本标准动作",
"basic standard of quality":"[经] 质量基础标准",
"basic statement":"[计] 基本语句",
"basic statistics":"[经] 基本统计数字",
"basic status register":"[计] 基本状态寄存器",
"basic steel":"[化] 碱性炉钢",
"basic step":"[计] 基本步",
"basic stock":"[经] 基本库存",
"basic storage":"[计] 基本存储",
"basic storage module":"[计] 基本存储模块",
"basic structural element":"[计] 基本结构元素",
"basic structure":"[电] 基本结构",
"basic substituted":"[机] 碱性基取代了的",
"basic subsystem module":"[计] 基本子系统模块",
"basic sulfate":"[医] 硷性硫酸盐",
"basic sulfate white lead":"[机] 硫酸铅白",
"basic superphosphate":"[化] 沉淀磷酸钙(一种枸溶性磷肥)",
"basic switch":"[电] 基本开关",
"basic switching term":"[计] 基本转换项",
"basic symbol":"[计] 基本符号",
"BASIC system":"[计] BASIC系统",
"basic tariff":"[经] 基本运价表",
"basic tax law":"[经] 基本税法",
"basic telecommunication access method":"[计] 基本远程通信存取法",
"basic titrant":"[机] 碱滴定液",
"basic tolerance":"[化] 基本公差",
"basic training":" 基本功; 底工",
"basic trend":"[经] 基本趋势",
"basic unit budget":"[经] 基本单位预算",
"basic unit of state power":"[法] 基层政权单位",


* Creates a immutable label with no image and no text, with {@link SwingConstants#LEADING} horizontal
	 * alignment, with HTML rendering disabled.
	 *

	 * See {@link JLabel#JLabel()}.
	 */
	public GIconLabel() {
		super();
	}

	/**
	 * Creates a immutable label with the specified image,
	 * with HTML rendering disabled.
	 *

	 * See {@link JLabel#JLabel(Icon)}.
	 *
	 * @param image icon to be displayed by the label
	 */
	public GIconLabel(Icon image) {
		super(image);
	}

	/**
	 * Creates a immutable label with the specified image and horizontal alignment,
	 * with HTML rendering disabled.
	 *

	 * See {@link JLabel#JLabel(Icon, int)}.
	 *
	 * @param image icon to be displayed by the label
	 * @param horizontalAlignment  One of
	 *           {@link SwingConstants#LEFT},
	 *           {@link SwingConstants#CENTER},
	 *           {@link SwingConstants#RIGHT},
	 *           {@link SwingConstants#LEADING},
	 *           {@link SwingConstants#TRAILING}
	 */
	public GIconLabel(Icon image, int horizontalAlignment) {
		super(image, horizontalAlignment);
	}

	/**
	 * This is a half-way method of turning this label into an immutable instance.
	 *

	 * If the user has a type of "GIconLabel", they will see the deprecated warning on calls to setText().
	 *

	 * If there are calls to setText() with any non-null or non-empty value, a
	 * warning will be printed in the log.
	 *
	 * @param text string this label will NOT display
	 */
	@Deprecated
	@Override
	public void setText(String text) {
		if (!StringUtils.isEmpty(text)) {
			Msg.warn(this, "Trying to set text on an icon label! New text: [" + text + "]",
				ReflectionUtilities.createJavaFilteredThrowable());
			return;
		}
		super.setText(text);
	}

}
/* ###
 * IP: GHIDRA
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package docking.widgets.label;

import javax.swing.JLabel;
import javax.swing.SwingConstants;

import docking.widgets.checkbox.GCheckBox;
import docking.widgets.checkbox.GHtmlCheckBox;

/**
 * A 'dynamic' label (the text can be changed), with HTML rendering allowed.
 *

 * Clients do not need to prefix label text with "<html>", as is required for a standard
 * JLabel.
 *

 * See also:
 *

 *
Class	Mutable text	HTML rendering	Description

 *
{@link GLabel}	Immutable	NO	Non-html unchangeable label

 *
{@link GDLabel}	Mutable	NO	Non-html changeable label

 *
{@link GHtmlLabel}	Immutable	YES	Html unchangeable label

 *
{@link GDHtmlLabel}	Mutable	YES	Html changeable label

 *
{@link GIconLabel}	N/A	NO	<


tps://huggingface.co/datasets/akoksal/muri-it.","first_N":5,"first_N_keywords":["text-generation","question-answering","summarization","Achinese","Adyghe"],"keywords_longer_than_N":true},
	{"name":"mHumanEval-Benchmark","keyword":"kirundi","license":"Apache License 2.0","license_url":"https://choosealicense.com/licenses/apache-2.0/","language":"en","dataset_url":"https://huggingface.co/datasets/md-nishat-008/mHumanEval-Benchmark","creator_name":"Nishat Raihan","creator_url":"https://huggingface.co/md-nishat-008","description":"\n\n\n\t\n\t\t\n\t\t🔷 Accepted in NAACL Proceedings (2025) 🔷\n\t\n\n\n\n\n\n  \n    \n      \n        \n          \n        \n      \n      \n        \n          \n        \n      \n      \n        \n          \n        \n      \n    \n  \n\n\n\n\n\n  \n\n\t\n\t\n\t\n\t\tmHumanEval\n\t\n\nThe mHumanEval benchmark is curated based on prompts from the original HumanEval 📚 [Chen et al., 2021]. It includes a total of 33,456 prompts for Python, and 836,400 in total - significantly expanding from the original 164. \n\n\n\t\n\t\t\n\t\tQuick Start\n\t\n\n  Detailed… See the full description on the dataset page: https://huggingface.co/datasets/md-nishat-008/mHumanEval-Benchmark.","first_N":5,"first_N_keywords":["Afar","Abkhaz","Avestan","Afrikaans","Akan"],"keywords_longer_than_N":true},
	{"name":"V1Q","keyword":"kirundi","license":"Apache License 2.0","license_url":"https://choosealicense.com/licenses/apache-2.0/","language":"en","dataset_url":"https://huggingface.co/datasets/YuRiVeRTi/V1Q","creator_name":"YuRiVeRTical","creator_url":"https://huggingface.co/YuRiVeRTi","description":"from datasets import load_dataset\nds = load_dataset(\"b3x0m/Chinese-H-Novels\")\nimport sagemaker\nimport boto3\nfrom sagemaker.huggingface import HuggingFaceModel\ntry:\n    role = sagemaker.get_execution_role()\nexcept ValueError:\n    iam = boto3.client('iam')\n    role = iam.get_role(RoleName='sagemaker_execution_role')['Role']['Arn']\n\n\t\n\t\t\n\t\tHub Model configuration. https://huggingface.co/models\n\t\n\nhub = {\n    'HF_MODEL_ID':'deepseek-ai/Janus-Pro-7B',\n    'HF_TASK':'any-to-any'\n}\n\n\t\n\t\t\n\t\tcreate… See the full description on the dataset page: https://huggingface.co/datasets/YuRiVeRTi/V1Q.","first_N":5,"first_N_keywords":["text-classification","token-classification","table-question-answering","question-answering","zero-shot-classification"],"keywords_longer_than_N":true},
	{"name":"HPLT2.0_cleaned","keyword":"kirundi","license":"Creative Commons Zero v1.0 Universal","license_url":"https://choosealicense.com/licenses/cc0-1.0/","language":"en","dataset_url":"https://huggingface.co/datasets/jobs-git/HPLT2.0_cleaned","creator_name":"James Guana","creator_url":"https://huggingface.co/jobs-git","description":"This is a large-scale collection of web-crawled documents in 191 world languages, produced by the HPLT project. \nThe source of the data is mostly Internet Archive with some additions from Common Crawl.\nFor a detailed description of the dataset, please


erp_features_img_two .img_icon .pluse_2 {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  border-radius: 50%;
  z-index: -1;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background: rgba(243, 186, 14, 0.102);
}

.erp_features_img_two .img_icon .pluse_1:before,
.erp_features_img_two .img_icon .pluse_1:after,
.erp_features_img_two .img_icon .pluse_2:before,
.erp_features_img_two .img_icon .pluse_2:after {
  content: "";
  position: absolute;
  background: rgba(243, 186, 14, 0.13);
  border-radius: 50%;
  left: 50%;
  top: 50%;
  margin-left: -40px;
  margin-top: -40px;
}

.erp_features_img_two .img_icon .pluse_1:before,
.erp_features_img_two .img_icon .pluse_2:before {
  width: 80px;
  height: 80px;
}

.erp_features_img_two .img_icon .pluse_1:after,
.erp_features_img_two .img_icon .pluse_2:after {
  width: 60px;
  height: 60px;
  background: #f3ba0e;
  margin-left: -30px;
  margin-top: -30px;
}

.erp_features_img_two .img_icon.red .pluse_1,
.erp_features_img_two .img_icon.red .pluse_2 {
  background: rgba(249, 62, 94, 0.102);
}

.erp_features_img_two .img_icon.red .pluse_1:before,
.erp_features_img_two .img_icon.red .pluse_1:after,
.erp_features_img_two .img_icon.red .pluse_2:before,
.erp_features_img_two .img_icon.red .pluse_2:after {
  background: rgba(249, 62, 94, 0.13);
}

.erp_features_img_two .img_icon.red .pluse_1:after,
.erp_features_img_two .img_icon.red .pluse_2:after {
  background: #f93e5e;
}

.erp_features_img_two .img_icon.green .pluse_1,
.erp_features_img_two .img_icon.green .pluse_2 {
  background: rgba(112, 215, 21, 0.102);
}

.erp_features_img_two .img_icon.green .pluse_1:before,
.erp_features_img_two .img_icon.green .pluse_1:after,
.erp_features_img_two .img_icon.green .pluse_2:before,
.erp_features_img_two .img_icon.green .pluse_2:after {
  background: rgba(112, 215, 21, 0.13);
}

.erp_features_img_two .img_icon.green .pluse_1:after,
.erp_features_img_two .img_icon.green .pluse_2:after {
  background: #70d715;
}

.erp_features_img_two .img_icon .pluse_1 {
  animation: pulsates 3s infinite linear;
}

.erp_features_img_two .img_icon .pluse_2 {
  background: transparent !important;
}

.erp_features_img_two .img_icon .pluse_2:before {
  animation: pulsates 3s infinite linear;
  animation-delay: 1s;
  margin-left: 0;
  margin-top: 0;
}

.erp_features_img_


(char *) data.data;

			while ((q = strchr_m(p, ';'))) {
				*q = '\0';
				q++;

				callbacks->del_value(callback_data, key, p);

				p = q;
			}
			callbacks->del_value(callback_data, key, p);
		} else if (strcasecmp(value_name, "**DeleteKeys") == 0) {
			char *p, *q, *full_key;

			p = (char *) data.data;

			while ((q = strchr_m(p, ';'))) {
				*q = '\0';
				q++;

				full_key = talloc_asprintf(mem_ctx, "%s\\%s",
							   key, p);
				callbacks->del_key(callback_data, full_key);
				talloc_free(full_key);

				p = q;
			}
			full_key = talloc_asprintf(mem_ctx, "%s\\%s", key, p);
			callbacks->del_key(callback_data, full_key);
			talloc_free(full_key);
		} else {
			callbacks->add_key(callback_data, key);
			callbacks->set_value(callback_data, key, value_name,
					     value_type, data);
 		}
	}
cleanup:
	close(fd);
	talloc_free(data.data);
	talloc_free(key);
	talloc_free(value_name);
	talloc_free(buf);
	return ret;
}


False && elseSide == XR.Const.True)
            Components1(cond)
          else
            null
        }
      )
    }
}

val XR.When.Companion.IfCondThenTrueOrFalse get() = IfCondThenTrueOrFalse()

class IfCondThenTrueOrFalse {
  operator fun <AP : Pattern<XR.Expression>> get(x: AP) =
    customPattern1("When.IfNullThenTrueOrFalse", x) { it: XR.When ->
      on(it).match(
        case(XR.When.CondThenElse[Is(), Is()]).thenThis { cond, (thenSide, elseSide) ->
          if (thenSide == XR.Const.True && elseSide == XR.Const.False)
            Components1(cond)
          else
            null
        }
      )
    }
}

val XR.When.Companion.NullIfNullOrX get() = NullIfNullOrX()

class NullIfNullOrX {
  operator fun <AP : Pattern<XR.Expression>, BP : Pattern<XR.Expression>> get(notNullSide: AP, elseClause: BP) =
    customPattern1("When.NullIfNullOrX", notNullSide) { it: XR.When ->
      // if (x == null) null else x
      on(it).match(
        case(XR.When.CondThen[XR.BinaryOp.OneSideIs[NullXR(), Is<OP.EqEq>(), Is()], NullXR()]).thenThis { (nullSide, notNullSide), _ ->
          if (notNullSide == this.orElse)
            Components1(notNullSide)
          else
            null
        }
      )
    }
}

operator fun <OP : Pattern<UnaryOperator>, AP : Pattern<A>, A : XR.Expression> XR.UnaryOp.Companion.get(op: OP, expr: AP) =
  customPattern1("When.UnaryOp", expr) { it: XR.UnaryOp ->
    if (op.matchesAny(it.op) && expr.matchesAny(it.expr)) {
      Components1(it.expr)
    } else {
      null
    }
  }

operator fun <AP : Pattern<XR.Expression>, MP : Pattern<OP>, BP : Pattern<XR.Expression>> XR.BinaryOp.Companion.get(a: AP, m: MP, b: BP) =
  customPattern2("BinaryOp3", a, b) { it: XR.BinaryOp ->
    if (m.matchesAny(it.op) && a.matchesAny(it.a) && b.matchesAny(it.b)) {
      Components2(it.a, it.b)
    } else {
      null
    }
  }

val XR.BinaryOp.Companion.OneSideIs get() = OneSideIs()

class OneSideIs {
  operator fun <OneSide : Pattern<XR.Expression>, OP : Pattern<BinaryOperator>, OtherSide : Pattern<XR.Expression>> get(oneSide: OneSide, op: OP, otherSide: OtherSide) =
    customPattern2("When.OneSideIs", oneSide, otherSide) { it: XR.BinaryOp ->
      if (op.matchesAny(it.op)) {
        if (oneSide.matchesAny(it.a)) {
          Components2(it.a, it.b)
        } else if (oneSide.matchesAny(it.b)) {
          Components2(it.b, it.a)
        } else {
          null
        }
      } else {
        null
      }
    }
}

val XR.When.Companion.XIsNotNullOrNull get() = XIsNotNullOrNull()

class XIsNotNullOrNull {
  operator fun <AP : Pattern<XR.Expression>> get(x: AP) =
    customPattern1("When.XIsNotNullOrNull", x) { it: XR.When ->
      on(it).match(
        // if (x != null) x else null -> x
        case(XR.When.CondThen[XR.BinaryOp.OneSideIs[NullXR(), Is<OP.NotEq>(), Is()], Is()]).thenIfThis { (


        this.items.push(block);
        }
        this.numberOfBytes += block.size();
        //console.log("this.numberOfBytes: " + this.numberOfBytes);
    }

    get(i: number): T {
        return this.items[i];
    }

    numberOfBlocks() {
        return this.items.length;
    }

    size() {
        return this.numberOfBytes;
    }

    printOn(o: Reporter) {
        o.writeArray(this, this.title())
    }

    className() {
        return `Subblocks<${this.constructor.name}>`;
    }
}
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
  name: 'search',
})
export class SearchPipe implements PipeTransform {
  transform(value: any, searchTerm: string): any {
    return value.filter(function (search: any) {
      return (
        search.contatcName
          .toLowerCase()
          .indexOf(searchTerm.toString().toLowerCase()) > -1 ||
        search.email
          .toLowerCase()
          .indexOf(searchTerm.toString().toLowerCase()) > -1 ||
        search.contactMobile.indexOf(searchTerm.toString()) > -1
      );
    });
  }
}
import { getBlocks } from "~/api/blocks";

export const state = () => ({
  selected: [],
  blocks: []
})

export const mutations = {
  flip(state, index) {
    state.selected = [...state.selected, index];
    if (state.selected.length <= 2) {
      const blocks = state.blocks;
      blocks.splice(index, 1, { ...blocks[index], flip: true });
      state.blocks = blocks.slice();
    }
  },
  backflip(state) {
    const blocks = state.blocks.slice();
    state.selected.map(index => {
      blocks.splice(index, 1, { ...blocks[index], flip: false });
    });
    state.blocks = blocks.slice();
    state.selected = [];
  },
  resetSelected(state) {
    state.selected = [];
  },
  setPeople(state, blocks) {
    state.blocks = blocks
  }
}

const getBlock = (state, index) => {
  return state.blocks[index];
}

export const getters = {
  winner: state => {
    return state.blocks.every(block => block.flip);
  },
  selectedBlocks: state => {
    return state.selected.map(index => state.blocks[index]);
  }
}

export const actions = {
  async nuxtServerInit({ commit }) {
    commit('setPeople', await getBlocks(20))
  },
  flip({ commit }, index) {
    commit('flip', index);
  },
  backflip({ commit }, index1, index2) {
    commit('backflip', index1, index2);
  },
  resetSelected({ commit }) {
    commit('resetSelected');
  }
}
import '../../setup'

import * as assert from 'assert'

import {
  CannotDecideDecider,
  CannotDecideError,
  FalseDecider,
  NotDecider,
  NotDeciderInput,
  TrueDecider,
  Decision,
} from '../../../src'

describe('NotDecider', () => {
  let decider: NotDecider
  const input: string = 'test'

  const trueDecider: TrueDecider = new TrueDecider()
  const falseDecider: FalseDecider = new FalseDecider()
  const cannotDecideDecider: CannotDecideDecider = new CannotDecideDecider()
  beforeEach(() => {
    decider = new NotDecider()
  })

  describe('decide', () => {
    it('should return true with false decision', async () => {
      const notInput: NotDeciderInput = {
        property: {
          decider: falseDecider,
          input,


 准备超时阈值,即播放器在建立链接、解析流媒体信息的超时阈值
     * @param readTimeout    读数据超时阈值
     */
    public void setTimeout(int prepareTimeout, int readTimeout) {
        this.mPrepareTimeout=prepareTimeout;
        this.mReadTimeout=readTimeout;
        if(null!=mMediaPlayer) mMediaPlayer.setTimeout(prepareTimeout,readTimeout);
    }

    /**
     * 返回视频的总时长
     * @return 毫秒
     */
    public long getDurtion() {
        if(null!=mMediaPlayer){
            try {
                return mMediaPlayer.getDuration();
            }catch (RuntimeException e){
                e.printStackTrace();
            }
        }
        return 0;
    }

    /**
     * 返回当前正在播放的位置
     * @return 毫秒
     */
    public long getCurrentPosition() {
        if(null!=mMediaPlayer){
            try {
                return mMediaPlayer.getCurrentPosition();
            }catch (RuntimeException e){
                e.printStackTrace();
            }
        }
        return 0;
    }

    /**
     * 返回当前缓冲进度
     * @return 单位：百分比
     */
    public int getBuffer() {
        if(null!=mMediaPlayer){
            try {
                return mMediaPlayer.getBuffer();
            }catch (RuntimeException e){
                e.printStackTrace();
            }
        }
        return 0;
    }

    /**
     * 生命周期调用恢复播放,在用户主动暂停的情况下不主动恢复播放
     * 手动点击暂停\恢复请调用playOrPause
     */
    public void onResume() {
        if(checkedDataSource()&&sPlayerState==PlayerState.STATE_ON_PAUSE){
            startTimer();
            try {
                if(null!=mMediaPlayer){
                    mMediaPlayer.start();
                }
                listenerAudioFocus();
                sPlayerState = PlayerState.STATE_ON_PLAY;
                onPlayerState(sPlayerState,getString(R.string.player_media_resume,"恢复播放"));
            }catch (RuntimeException e){
                e.printStackTrace();
            }
        }
    }

    /**
     * 生命周期调用暂停播放
     * 手动点击暂停\恢复请调用playOrPause
     */
    public void onPause() {
        onPause(false);
    }

    private void onPause(boolean isClick) {
        if(checkedDataSource()&&isPlaying()){
            stopTimer();
            try {
                if(null!=mMediaPlayer){
                    mMediaPlayer.pause();
                }
            }catch (RuntimeException e){
                e.printStackTrace();
            }
            sPlayerState = isClick?PlayerState.STATE_PAUSE:PlayerState.STATE_ON_PAUSE;
            onPlayerState(sPlayerState,getString(R.string.player_media_pause,"暂停播放"));
        }
    }

    /**
     * 主动完成播放,会回调COMPLETION状态给控制器和宿主
     */
    public void onCompletion() {
        stopTimer();
        releaseTextureView();
        sPlayerState = PlayerState.STATE_COMPLETION;
        onPlayerState


331
PWZsb2F0 80332
IFRyYW5zaXQ= 80333
INqp2LPYp9mG 80334
bWFjcm8= 80335
INei16k= 80336
IOma 80337
QXVzdHJhbGlh 80338
IM+I 80339
IOyXsOq1rA== 80340
VGFuaw== 80341
INC30LDQstC10YDRiA== 80342
IExpZmVzdHlsZQ== 80343
U29saWM= 80344
IOCkuOCkguCkleCljeCksOCkrg== 80345
IMOpdmVudA== 80346
dm9sZQ== 80347
IHBsYXlmdWw= 80348
eW91dHU= 80349
IOGDkuGDkOGDnOGDleGDmOGDlw== 80350
IGZhdWx0eQ== 80351
IENvdmVyYWdl 80352
INee16nXlA== 80353
4KmN4Ki5 80354
IGhvYmJpZXM= 80355
IHphamVk 80356
aXZhbHM= 80357
IGFncmVnYXI= 80358
INC60YDQsNC5 80359
X2hvdXI= 80360
IHBvbGljaWFs 80361
IG1lZGljYW1lbnRvcw== 80362
IFRveXM= 80363
IHN1Y2Nlc3Npb24= 80364
LmF0dA== 80365
IE1vbnJvZQ== 80366
INC80LXQutGC 80367
IHhpbg== 80368
J10pLA== 80369
INC40YHRgtC40YTQvtC00LA= 80370
Om51bWJlcg== 80371
INCj0LrRgNCw0LjQvdGL 80372
INin2YTYudix2Kg= 80373
KGFwcGxpY2F0aW9u 80374
IGVzdGFibGVjZXI= 80375
IHJvYXN0 80376
LmZlYXR1cmVz 80377
dWNpbg== 80378
IGxpZWJlcg== 80379
IFBhc3Npb24= 80380
IHNpbXBlbA== 80381
YWxpZW4= 80382
IOC2uOC3mQ== 80383
LkJ1c2luZXNz 80384
1bXVuNaC1b0= 80385
IHTDqXJtaW5vcw== 80386
IOazqOWGjA== 80387
IGVzcGHDsW9sYQ== 80388
KEVsZW1lbnQ= 80389
IFJ1dA== 80390
IG3DqWxhbmdl 80391
5Yeh 80392
4KS44KSt4KS+ 80393
IE1QTw== 80394
IHdoYWthbQ== 80395
W2c= 80396
IOGDnOGDkOGDrg== 80397
4YKQ 80398
bWFt 80399
IO2DnA== 80400
IGdlbmlhbA== 80401
IG1pbHlvbg== 80402
IENvY2E= 80403
IFBlbQ== 80404
IScsCg== 80405
INC40q0= 80406
IOCkuOClgeCksOCkleCljeCkt+Ckvg== 80407
eHRh 80408
IHNleHVhbGl0eQ== 80409
IEpldHM= 80410
IOC0rOC0qOC1jeC0pw== 80411
Ymxpbmdz 80412
c3RhcnRlcg== 80413
INCw0YDQsNGB 80414
INW+1aXWgNWh1aI= 80415
IG3JmW4= 80416
IGFkZWN1YWRv 80417
IHNjaGVybQ== 80418
INin2YTYpdmF2KfYsdin2Ko= 804


;
			int ret = NativeMethods.ISteamAppList_GetAppName(nAppID, pchName2, cchNameMax);
			pchName = ret != -1 ? InteropHelp.PtrToStringUTF8(pchName2) : null;
			Marshal.FreeHGlobal(pchName2);
			return ret;
		}

		/// <summary>
		/// <para> returns -1 if no dir was found</para>
		/// </summary>
		public static int GetAppInstallDir(AppId_t nAppID, out string pchDirectory, int cchNameMax) {
			InteropHelp.TestIfAvailableClient();
			IntPtr pchDirectory2 = Marshal.AllocHGlobal(cchNameMax);
			int ret = NativeMethods.ISteamAppList_GetAppInstallDir(nAppID, pchDirectory2, cchNameMax);
			pchDirectory = ret != -1 ? InteropHelp.PtrToStringUTF8(pchDirectory2) : null;
			Marshal.FreeHGlobal(pchDirectory2);
			return ret;
		}

		/// <summary>
		/// <para> return the buildid of this app, may change at any time based on backend updates to the game</para>
		/// </summary>
		public static int GetAppBuildId(AppId_t nAppID) {
			InteropHelp.TestIfAvailableClient();
			return NativeMethods.ISteamAppList_GetAppBuildId(nAppID);
		}
	}
}


LU	#36*2,D1
	ADD.L	D1,A1
	MOVE.W	(A1,D0.W),n_period(A6)
	MOVEM.L	(SP)+,D0-D1/A0-A1

	MOVE.W	2(A6),D0
	AND.W	#$0FF0,D0
	CMP.W	#$0ED0,D0 ; Notedelay
	BEQ	mt_CheckMoreEfx

	BTST	#2,n_wavecontrol(A6)
	BNE.S	mt_vibnoc
	CLR.B	n_vibratopos(A6)
mt_vibnoc
	BTST	#6,n_wavecontrol(A6)
	BNE.S	mt_trenoc
	CLR.B	n_tremolopos(A6)
mt_trenoc
	MOVE.L	n_start(A6),(A5)	; Set start
	MOVEQ.l	 #0,D0
	MOVE.W	n_length(A6),D0
	ADD.L	D0,D0
	ADD.L	D0,(A5)			; point to end of sample
	MOVE.W	D0,4(A5)		; Set length
	MOVE.W	n_period(A6),6(A5)	; Set period
	BRA	mt_CheckMoreEfx

mt_SetDMA
	MOVE.L	D0,-(SP)
	MOVEQ.L	#0,D0
	LEA	ch4s(PC),A5
	LEA	mt_chan4temp(PC),A6
	MOVE.L	n_loopstart(A6),10(A5)
	MOVE.W	n_replen(A6),D0
	ADD.L	D0,D0
	ADD.L	D0,10(A5)
	MOVE.W	D0,14(A5)

	MOVEQ.L	#0,D0
	LEA	ch3s(PC),A5
	LEA	mt_chan3temp(PC),A6
	MOVE.L	n_loopstart(A6),10(A5)
	MOVE.W	n_replen(A6),D0
	ADD.L	D0,D0
	ADD.L	D0,10(A5)
	MOVE.W	D0,14(A5)

	MOVEQ.L	#0,D0
	LEA	ch2s(PC),A5
	LEA	mt_chan2temp(PC),A6
	MOVE.L	n_loopstart(A6),10(A5)
	MOVE.W	n_replen(A6),D0
	ADD.L	D0,D0
	ADD.L	D0,10(A5)
	MOVE.W	D0,14(A5)

	MOVEQ.L	#0,D0
	LEA	ch1s(PC),A5
	LEA	mt_chan1temp(PC),A6
	MOVE.L	n_loopstart(A6),10(A5)
	MOVE.W	n_replen(A6),D0
	ADD.L	D0,D0
	ADD.L	D0,10(A5)
	MOVE.W	D0,14(A5)

	MOVE.L	(SP)+,D0

mt_dskip
	ADD.W	#16,mt_PattPos
	MOVE.B	mt_PattDelTime,D0
	BEQ.S	mt_dskc
	MOVE.B	D0,mt_PattDelTime2
	CLR.B	mt_PattDelTime
mt_dskc	TST.B	mt_PattDelTime2
	BEQ.S	mt_dska
	SUBQ.B	#1,mt_PattDelTime2
	BEQ.S	mt_dska
	SUB.W	#16,mt_PattPos


015 The go-ethereum Authors
// This file is part of the go-ethereum library.
//
// The go-ethereum library is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// The go-ethereum library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.

/*
Package vm implements the Ethereum Virtual Machine.

The vm package implements one EVM, a byte code VM. The BC (Byte Code) VM loops
over a set of bytes and executes them according to the set of rules defined
in the Ethereum yellow paper.
*/
package vm
// Copyright 2015 The go-ethereum Authors
// This file is part of the go-ethereum library.
//
// The go-ethereum library is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// The go-ethereum library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.

package vm

import (
	"math/big"
	"time"

	"github.com/ethereum/go-ethereum/common"
)

// EVMLogger is used to collect execution traces from an EVM transaction
// execution. CaptureState is called for each step of the VM with the
// current VM state.
// Note that reference types are actual VM data structures; make copies
// if you need to retain them beyond the current call.
type EVMLogger interface {
	// Transaction level
	CaptureTxStart(gasLimit uint64)
	CaptureTxEnd(restGas uint64)
	// Top call frame
	CaptureStart(env *EVM, from common.Address, to common.Address, create bool, input []byte, gas uint64, value *big.Int)
	CaptureEnd(output []byte, gasUsed uint64, t time.Duration, err error)
	// Rest of call frames
	CaptureEnter(typ OpCode, from common.Address, to common.Address, input []byte, gas uint64, value *big.Int)
	CaptureExit(output []byte, gasUsed uint64, err error)
	// Opcode level
	CaptureState(pc uint64, op OpCode, gas, cost uint64, scope *ScopeContext, rData []byte, depth int, err error)
	CaptureFault(pc uint64, op OpCode, gas, cost uint64, scope *ScopeContext, depth int, err error)
}
// Copyright 2015 The go-ethereum Authors
// This file is part of the go-ethereum library.
//
// The go-ethereum library is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// The go-ethereum library is distributed in the hope that it will be