};
        foo$myFunc();
        """,
        warning(InlineAndCollapseProperties.RECEIVER_AFFECTED_BY_COLLAPSE));

    // "this" is lexically scoped in arrow functions so collapsing is safe.
    test(
        srcs(
            """
            var foo = {
              myFunc: () => {
                return this;
              }
            };
            foo.myFunc();
            """),
        expected(
            """
            var foo$myFunc = () => {
              return this
            };
            foo$myFunc();
            """));

    // but not in inner functions
    test(
        """
        var foo = {
          myFunc: function() {
            return (() => this);
          }
        };
        foo.myFunc();
        """,
        """
        var foo$myFunc = function() {
          return (() => this);
        };
        foo$myFunc();
        """,
        warning(InlineAndCollapseProperties.RECEIVER_AFFECTED_BY_COLLAPSE));

    // `super` is also a receiver reference
    // TODO(b/122665204): Make this case pass rather than crash.
    assertThrows(
        Exception.class,
        () ->
            test(
                """
                var foo = {
                  bar: 1,
                  myFunc() {
                    return super.bar;
                  }
                };
                foo.myFunc();
                """,
                """
                var foo$bar = 1;
                var foo$myFunc = function() {
                  return super.bar // Unclear what goes here.
                };
                foo$myFunc();
                """,
                warning(InlineAndCollapseProperties.RECEIVER_AFFECTED_BY_COLLAPSE)));

    // check references in param lists
    test(
        """
        var foo = {
          bar: 1,
          myFunc(x = this) {
          }
        };
        foo.myFunc();
        """,
        """
        var foo$bar = 1;
        var foo$myFunc = function(x = this) {
        };
        foo$myFunc();
        """,
        warning(InlineAndCollapseProperties.RECEIVER_AFFECTED_BY_COLLAPSE));
  }

  @Test
  public void testPropertyMethodAssignment_noThis() {
    // ES5 Version
    test(
        srcs(
            """
            var foo = {
              bar: 1,
              myFunc: function myFunc() {
                return 5
              }
            };
            foo.myFunc();
            """),
        expected(
            """
            var foo$bar = 1;
            var foo$myFunc = function myFunc() {
                return 5;
            };
            foo$myFunc();
            """));

    // ES6 version
    test(
        srcs(
            """
            var foo = {
              bar: 1,
              myFunc() {
                return 5;
              }
            };
            foo.myFunc();
            """),
        expected(
            """
            var foo$bar = 1;
            var foo$myFunc = function() {
                return 5;
            };
            foo$myFunc();
            """));
  }

  @Test
  public void testMethodPropertyShorthand() {
    test(
        srcs(
            """
            var foo = {
              bar: 1,
               myFunc() {
                return 2
              }
            };


  if (isNaN(comment.id)) {
    return Promise.reject(Error('commentId not a number'))
  }

  core.info(`comment: ${inspect(comment)}`)
  return new Comment(comment)
}

export async function findOrCreateVotingComment(
  octokit: Octokit,
  owner: string,
  repo: string,
  issueNumber: number,
  bodyIncludes: string,
  createCommentBody: Promise<string>
): Promise<Comment> {
  const comment = await findVotingComment(
    octokit,
    owner,
    repo,
    issueNumber,
    bodyIncludes
  )
  if (!comment) {
    return createVotingComment(
      octokit,
      owner,
      repo,
      issueNumber,
      await createCommentBody
    )
  }

  return comment
}

export async function createVotingComment(
  octokit: Octokit,
  owner: string,
  repo: string,
  issueNumber: number,
  body: string
): Promise<Comment> {
  const {data: comment} = await octokit.issues.createComment({
    owner,
    repo,
    issue_number: issueNumber,
    body
  })

  if (isNaN(comment.id)) {
    return Promise.reject(Error('commentId not a number'))
  }
  return new Comment(comment)
}

export async function updateVotingComment(
  octokit: Octokit,
  owner: string,
  repo: string,
  commentId: Promise<number>,
  body: Promise<string>
): Promise<void> {
  await octokit.issues.updateComment({
    owner,
    repo,
    comment_id: await commentId,
    body: await body
  })
}

export async function createVotingCommentBody(
  serverURL: string,
  owner: string,
  repo: string,
  ref: string,
  bodyIncludes: string,
  votesPromise: Promise<Reactions>,
  acceptanceCriteriaPromise: Promise<Config>
): Promise<string> {
  const votes = await votesPromise
  const acceptanceCriteria = await acceptanceCriteriaPromise
  let commentBody = `
**${bodyIncludes}** ![Voting](${serverURL}/${owner}/${repo}/workflows/Voting/badge.svg?branch=${ref})
Vote on this comment with 👍 or 👎.

Vote Summary:
  ${votes[forIt]} 👍
  ${votes[againstIt]} 👎

Acceptance Criteria:
  - ${acceptanceCriteria.percentageToApprove}% of weighted votes needs to be to approve
  - ${acceptanceCriteria.minVotersRequired} minimum # of unique voters required
`
  if (acceptanceCriteria.minVotingWindowMinutes !== 0) {
    commentBody += `  - at least ${acceptanceCriteria.minVotingWindowMinutes} minutes of voting`
  }
  return commentBody
}

export async function closeVotingComment(
  octokit: Octokit,
  owner: string,
  repo: string,
  comment: Comment,
  bodyIncludes: string,
  closedVotingBodyTag: string
): Promise<void> {
  if (bodyIncludes === closedVotingBodyTag) {
    return Promise.reject(
      Error(
        'voting comment identifier and closed comment identifier cannot be equal'
      )
    )
  }

  const closedBody = comment.body.replace(bodyIncludes, closedVotingBodyTag)

  await updateVotingComment(
    octokit,
    owner,
    repo,
    Promise.resolve(comment.id),
    Promise.resolve(closedBody)
  )

  return
}

export async function commentToId(commit: Promise<Comment>): Promise<number> {
  return (await commit).id
}
export async function commentToCreatedAt(
  commit: Promise<Comment>
): Promise<Date> {
  return (await commit).createdAt
}
import {BIG} from "./big";

export class FpCommon<T> {

    public reduce(): void;

    public norm(): void;


 Linguistics: ACL-IJCNLP 2021_, pages 4693-4703.\n' +
      '* Hendrycks et al. (2020) Dan Hendrycks, Collin Burns, Steven Basart, Andy Zou, Mantas Mazeika, Dawn Song, and Jacob Steinhardt. 2020. 대용량 멀티태스크 언어 이해도 측정. _ arXiv preprint arXiv:2009.03300_.\n' +
      '* Hovy et al. (2020) Geoffrey Hinton, Oriol Vinyals, and Jeff Dean. 2015. Distilling the knowledge in neural network. _ arXiv preprint arXiv:1503.02531_.\n' +
      '* Hoffmann et al. (2022) Jordan Hoffmann, Sebastian Borgeaud, Arthur Mensch, Elena Buchatskaya, Trevor Cai, Eliza Rutherford, Diego de Las Casas, Lisa Anne Hendricks, Johannes Welbl, Aidan Clark, Tom Hennigan, Eric Noland, Katie Millican, George van Driessche, Bogdan Damoc, Aurelia Guy, Simon Osindero, Karen Simonyan, Erich Elsen, Jack W. 레이, 오리올 빈날스 로랑 시프레 2022. 컴퓨팅-최적 대형 언어 모델 트레이닝.\n' +
      '* Huang et al. (2021) Feiqing Huang, Yuefeng Si, Yao Zheng, and Guodong Li. 2021. 압축된 컨볼루션 신경망에 대한 모델 중복성의 새로운 척도.\n' +
      '* Kaplan et al. (2020) Jared Kaplan, Sam McCandlish, Tom Henighan, Tom B. Brown, Benjamin Chess, Rewon Child, Scott Gray, Alec Radford, Jeffrey Wu, and Dario Amodei. 2020. 신경 언어 모델에 대한 스케일링 법칙.\n' +
      '* 고 등(2024) 고종우, 김숭륜, 천이천, 윤세영. 2024. 증류기: 대용량 언어 모델에 대한 유선형 증류를 향하여 _ arXiv preprint arXiv:2402.03898_.\n' +
      '* Lai et al. (2017) Guokun Lai, Qizhe Xie, Hanxiao Liu, Yiming Yang, and Eduard Hovy. 2017. Race: 검사로부터의 대규모 읽기 이해 데이터세트. _Proceedings of the 2017 Conference on Empirical Methods in Natural Language Processing_, pages 785-794.\n' +
      '* LeCun et al. (1989) Yann LeCun, John Denker, and Sara Solla. 1989. 최적의 뇌 손상. _ 신경 처리 시스템_, 2의 발전.\n' +
      '* Li et al. (2024) Haonan Li, Yixuan Zhang, Fajri Koto, Yifei Yang, Hai Zhao, Yeyun Gong, Nan Duan, and Timothy Baldwin. 2024. Cmmlu: 중국어로 된 방대한 멀티태스킹 언어 이해도 측정.\n' +
      '* Li et al. (2022) Shiyang Li


reakpoints::HwWatchpointOps<Self>> {
        Some(self)
    }
}

macro_rules! add_breakpoint {
    ( $self:ident, $addr:ident, $hook_map:ident ) => {{
        let hook = match $self.uc.add_code_hook($addr.into(), $addr.into(), step_hook) {
            Ok(h) => h,
            Err(_) => return Ok(false),
        };
        $self.$hook_map.insert($addr.into(), hook);
        Ok(true)
    }};
    ( $self:ident, $mem_type:ident, $addr:ident, $len:ident, $hook_map:ident ) => {{
        let hook = match $self.uc.add_mem_hook(HookType::$mem_type, $addr.into(), ($addr + $len - 1).into(), mem_hook) {
            Ok(h) => h,
            Err(_) => return Ok(false),
        };
        $self.$hook_map.entry($len).or_insert(HashMap::new()).insert($addr.into(), hook);
        Ok(true)
    }};
}

macro_rules! remove_breakpoint {
    ( $self:ident, $addr:ident, $hook_map:ident ) => {{
        let hook = match $self.$hook_map.remove(&$addr.into()) {
            Some(h) => h,
            None => return Ok(false),
        };
        match $self.uc.remove_hook(hook) {
            Ok(_) => Ok(true),
            Err(_) => Ok(false),
        }
    }};
    ( $self:ident, $addr:ident, $len:ident, $hook_map:ident ) => {{
        let map = match $self.$hook_map.get_mut(&$len) {
            Some(h) => h,
            None => return Ok(false),
        };
        let hook = match map.remove(&$addr.into()) {
            Some(h) => h,
            None => return Ok(false),
        };
        match $self.uc.remove_hook(hook) {
            Ok(_) => Ok(true),
            Err(_) => Ok(false),
        }
    }};
}

impl target::ext::breakpoints::SwBreakpoint for Emu<'_> {
    fn add_sw_breakpoint(&mut self, addr: u64, _kind: usize) -> TargetResult<bool, Self> {
        add_breakpoint!(self, addr, bp_sw_hooks)
    }

    fn remove_sw_breakpoint(&mut self, addr: u64, _kind: usize) -> TargetResult<bool, Self> {
        remove_breakpoint!(self, addr, bp_sw_hooks)
    }
}

impl target::ext::breakpoints::HwBreakpoint for Emu<'_> {
    fn add_hw_breakpoint(&mut self, addr: u64, _kind: usize) -> TargetResult<bool, Self> {
        add_breakpoint!(self, addr, bp_hw_hooks)
    }

    fn remove_hw_breakpoint(&mut self, addr: u64, _kind: usize) -> TargetResult<bool, Self> {
        remove_breakpoint!(self, addr, bp_hw_hooks)
    }
}

impl target::ext::breakpoints::HwWatchpoint for Emu<'_> {
    fn add_hw_watchpoint(&mut self, addr: u64, len: u64, kind: WatchKind) -> TargetResult<bool, Self> {
        match kind {
            WatchKind::Read => add_breakpoint!(self, MEM_READ, addr, len, wp_r_hooks),
            WatchKind::Write => add_breakpoint!(self, MEM_WRITE, addr, len, wp_w_hooks),
            WatchKind::ReadWrite => add_breakpoint!(self, MEM_VALID, addr, len, wp_rw_hooks),
        }
    }

    fn remove_hw_watchpoint(&mut self, addr: u64, len: u64, kind: WatchKind) -> TargetResult<bool, Self> {
        match kind {
            WatchKind::Read => remove_breakpoint!(self, addr, len, wp


t.implements)===null||s===void 0?void 0:s.forEach((e=>this.addKeyword(e)))}function R(e,t,r){const s=e.rules.findIndex((e=>e.keyword===r));if(s>=0){e.rules.splice(s,0,t)}else{e.rules.push(t);this.logger.warn(`rule ${r} is not defined`)}}function M(e){let{metaSchema:t}=e;if(t===undefined)return;if(e.$data&&this.opts.$data)t=D(t);e.validateSchema=this.compile(t,true)}const A={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function D(e){return{anyOf:[e,A]}}},76250:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(32017);s.code='require("ajv/dist/runtime/equal").default';t["default"]=s},53853:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});function r(e){const t=e.length;let r=0;let s=0;let n;while(s<t){r++;n=e.charCodeAt(s++);if(n>=55296&&n<=56319&&s<t){n=e.charCodeAt(s);if((n&64512)===56320)s++}}return r}t["default"]=r;r.code='require("ajv/dist/runtime/ucs2length").default'},55944:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});const s=r(74488);s.code='require("ajv/dist/runtime/uri").default';t["default"]=s},13558:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});class r extends Error{constructor(e){super("validation failed");this.errors=e;this.ajv=this.validation=true}}t["default"]=r},15457:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:true});t.validateAdditionalItems=void 0;const s=r(99029);const n=r(94227);const o={message:({params:{len:e}})=>(0,s.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,s._)`{limit: ${e}}`};const a={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:o,code(e){const{parentSchema:t,it:r}=e;const{items:s}=t;if(!Array.isArray(s)){(0,n.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}i(e,s)}};function i(e,t){const{gen:r,schema:o,data:a,keyword:i,it:c}=e;c.items=true;const u=r.const("len",(0,s._)`${a}.length`);if(o===false){e.setParams({len:t.length});e.pass((0,s._)`${u} <= ${t.length}`)}else if(typeof o=="object"&&!(0,n.alwaysValidSchema)(c,o)){const n=r.var("valid",(0,s._)`${u} <= ${t.length}`);r.if((0,s.not)(n),(()=>d(n)));e.ok(n)}function d(o){r.forRange("i",t.length,u,(t=>{e.subschema({keyword:i,dataProp:t,dataPropType:n.Type.Num},o);if(!c.allErrors)r.if((0,s.not)(o),(()=>r.break()))}))}}t.validateAdditionalItems=i;t["default"]=a},38660:(e,t,r)=>{Object.defineProperty(t,"__esModule


ly != val)
    {
        ShowGroupsOnly = val;
        if (foamData_)
        {
            foamData_->updateInfo();
        }
    }
}

void vtkPVFoamReader::updatePatchNamesView(const bool show)
{
    pqApplicationCore* appCore = pqApplicationCore::instance();

    // need to check this, since our destructor calls this
    if (!appCore)
    {
        return;
    }

    // Server manager model for querying items in the server manager
    pqServerManagerModel* smModel = appCore->getServerManagerModel();

    if (!smModel || !foamData_)
    {
        return;
    }

    // Get all the pqRenderView instances
    QList<pqRenderView*> renderViews = smModel->findItems<pqRenderView*>();

    for (int viewI=0; viewI < renderViews.size(); ++viewI)
    {
        foamData_->renderPatchNames
        (
            renderViews[viewI]->getRenderViewProxy()->GetRenderer(),
            show
        );
    }

    // use refresh here?
}

void vtkPVFoamReader::PrintSelf(ostream& os, vtkIndent indent)
{
    vtkDebugMacro(<<"PrintSelf");

    this->Superclass::PrintSelf(os,indent);
    os  << indent << "File name: "
        << (this->FileName ? this->FileName : "(none)") << "\n";

    foamData_->PrintSelf(os, indent);

    os  << indent << "Time step range: "
        << this->TimeStepRange[0] << " - " << this->TimeStepRange[1] << "\n"
        << indent << "Time step: " << this->GetTimeStep() << endl;
}

int vtkPVFoamReader::GetTimeStep()
{
    return foamData_ ? foamData_->timeIndex() : -1;
}

// ----------------------------------------------------------------------
// Parts selection list control

vtkDataArraySelection* vtkPVFoamReader::GetPartSelection()
{
    vtkDebugMacro(<<"GetPartSelection");
    return PartSelection;
}

int vtkPVFoamReader::GetNumberOfPartArrays()
{
    vtkDebugMacro(<<"GetNumberOfPartArrays");
    return PartSelection->GetNumberOfArrays();
}

const char* vtkPVFoamReader::GetPartArrayName(int index)
{
    vtkDebugMacro(<<"GetPartArrayName");
    return PartSelection->GetArrayName(index);
}

int vtkPVFoamReader::GetPartArrayStatus(const char* name)
{
    vtkDebugMacro(<<"GetPartArrayStatus");
    return PartSelection->ArrayIsEnabled(name);
}

void vtkPVFoamReader::SetPartArrayStatus(const char* name, int status)
{
    vtkDebugMacro("Set mesh part \"" << name << "\" status to: " << status);

    if (status)
    {
        PartSelection->EnableArray(name);
    }
    else
    {
        PartSelection->DisableArray(name);
    }
}

// ----------------------------------------------------------------------
// volField selection list control

vtkDataArraySelection* vtkPVFoamReader::GetVolFieldSelection()
{
    vtkDebugMacro(<<"GetVolFieldSelection");
    return VolFieldSelection;
}

int vtkPVFoamReader::GetNumberOfVolFieldArrays()
{
    vtkDebugMacro(<<"GetNumberOfVolFieldArrays");
    return VolFieldSelection->GetNumberOfArrays();
}

const char* vtkPVFoamReader::GetVolFieldArrayName(int index)
{
    vtkDebugMacro(<<"GetVolFieldArrayName");
    return VolFieldSelection->GetArrayName(index);
}

int vtkPVFoamReader::GetVolFieldArrayStatus(const char* name)
{
    vtkDebugMacro(<<"GetVolFieldArrayStatus");
    return VolFieldSelection->ArrayIsEnabled(name);
}

void vtkPVFoamReader::SetVolFieldArrayStatus(const char* name, int status)


 ARM:   vcvtm.u16.f16   q0, q1          @ encoding: [0xc2,0x03,0xb7,0xf3]
@ THUMB: vcvtm.s16.f16   d0, d1          @ encoding: [0xb7,0xff,0x01,0x03]
@ THUMB: vcvtm.s16.f16   q0, q1          @ encoding: [0xb7,0xff,0x42,0x03]
@ THUMB: vcvtm.u16.f16   d0, d1          @ encoding: [0xb7,0xff,0x81,0x03]
@ THUMB: vcvtm.u16.f16   q0, q1          @ encoding: [0xb7,0xff,0xc2,0x03]

  vcvtn.s16.f16 d0, d1
  vcvtn.s16.f16 q0, q1
  vcvtn.u16.f16 d0, d1
  vcvtn.u16.f16 q0, q1
@ ARM:   vcvtn.s16.f16   d0, d1          @ encoding: [0x01,0x01,0xb7,0xf3]
@ ARM:   vcvtn.s16.f16   q0, q1          @ encoding: [0x42,0x01,0xb7,0xf3]
@ ARM:   vcvtn.u16.f16   d0, d1          @ encoding: [0x81,0x01,0xb7,0xf3]
@ ARM:   vcvtn.u16.f16   q0, q1          @ encoding: [0xc2,0x01,0xb7,0xf3]
@ THUMB: vcvtn.s16.f16   d0, d1          @ encoding: [0xb7,0xff,0x01,0x01]
@ THUMB: vcvtn.s16.f16   q0, q1          @ encoding: [0xb7,0xff,0x42,0x01]
@ THUMB: vcvtn.u16.f16   d0, d1          @ encoding: [0xb7,0xff,0x81,0x01]
@ THUMB: vcvtn.u16.f16   q0, q1          @ encoding: [0xb7,0xff,0xc2,0x01]

  vcvtp.s16.f16 d0, d1
  vcvtp.s16.f16 q0, q1
  vcvtp.u16.f16 d0, d1
  vcvtp.u16.f16 q0, q1
@ ARM:   vcvtp.s16.f16   d0, d1          @ encoding: [0x01,0x02,0xb7,0xf3]
@ ARM:   vcvtp.s16.f16   q0, q1          @ encoding: [0x42,0x02,0xb7,0xf3]
@ ARM:   vcvtp.u16.f16   d0, d1          @ encoding: [0x81,0x02,0xb7,0xf3]
@ ARM:   vcvtp.u16.f16   q0, q1          @ encoding: [0xc2,0x02,0xb7,0xf3]
@ THUMB: vcvtp.s16.f16   d0, d1          @ encoding: [0xb7,0xff,0x01,0x02]
@ THUMB: vcvtp.s16.f16   q0, q1          @ encoding: [0xb7,0xff,0x42,0x02]
@ THUMB: vcvtp.u16.f16   d0, d1          @ encoding: [0xb7,0xff,0x81,0x02]
@ THUMB: vcvtp.u16.f16   q0, q1          @ encoding: [0xb7,0xff,0xc2,0x02]

  vcvt.s16.f16 d0


tring(columnInfo.Name));

				case NpgsqlDbType.Timestamp:
				case NpgsqlDbType.TimestampTZ:
				case NpgsqlDbType.Date: return string.Format("{0} == null ? \"null\" : {0}.Value.Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds.ToString()", UFString(columnInfo.Name));
				case NpgsqlDbType.Time:
				case NpgsqlDbType.TimeTZ:
				case NpgsqlDbType.Interval: return string.Format("{0} == null ? \"null\" : {0}.Value.TotalMilliseconds.ToString()", UFString(columnInfo.Name));

				case NpgsqlDbType.Boolean: return string.Format("{0} == null ? \"null\" : ({0} == true ? \"true\" : \"false\")", UFString(columnInfo.Name));
				case NpgsqlDbType.Bytea: return string.Format("{0} == null ? \"null\" : Convert.ToBase64String({0})", UFString(columnInfo.Name));
				case NpgsqlDbType.Bit:
				case NpgsqlDbType.Varbit: return string.Format("{0} == null ? \"null\" : string.Format(\"'{{0}}'\", {0}.To1010())", UFString(columnInfo.Name));

				case NpgsqlDbType.Point:
				case NpgsqlDbType.Line:
				case NpgsqlDbType.LSeg:
				case NpgsqlDbType.Box:
				case NpgsqlDbType.Path:
				case NpgsqlDbType.Polygon:
				case NpgsqlDbType.Circle:

				case NpgsqlDbType.Cidr:
				case NpgsqlDbType.Inet:
				case NpgsqlDbType.MacAddr: return string.Format("{0} == null ? \"null\" : {0}.ToString()", UFString(columnInfo.Name));

				case NpgsqlDbType.Json:
				case NpgsqlDbType.Jsonb:
				case NpgsqlDbType.Uuid: return string.Format("{0} == null ? \"null\" : {0}.ToString()", UFString(columnInfo.Name));

				case NpgsqlDbType.IntegerRange:
				case NpgsqlDbType.BigintRange:
				case NpgsqlDbType.NumericRange:
				case NpgsqlDbType.TimestampRange:
				case NpgsqlDbType.TimestampTZRange:
				case NpgsqlDbType.DateRange: return string.Format("{0} == null ? \"null\" : {0}.ToString()", UFString(columnInfo.Name));

				case NpgsqlDbType.Hstore:
				case NpgsqlDbType.Geometry:
				case NpgsqlDbType.Enum:
				case NpgsqlDbType.Composite:
				default: return string.Format("{0} == null ? \"null\" : {0}.ToString()", UFString(columnInfo.Name));
			}
		}

		protected string GetToStringStringify(ColumnInfo columnInfo)
        {
            switch (columnInfo.Type)
            {
				case NpgsqlDbType.Smallint:
				case NpgsqlDbType.Integer:
				case NpgsqlDbType.Bigint:
				case NpgsqlDbType.Numeric:
				case NpgsqlDbType.Real:
				case NpgsqlDbType.Double:
				case NpgsqlDbType.Money: return "_" + UFString(columnInfo.Name) + " == null ? \"null\" : _" + UFString(columnInfo.Name) + ".ToString()";

				case NpgsqlDbType.Char:
				case NpgsqlDbType.Varchar:
				case NpgsqlDbType.Text: return "_" + UFString(columnInfo.Name) + " == null ? \"null\" : _" + UFString


ovs r0, #0x10
	strb r0, [r2]
	adds r0, r4, #0
	adds r0, #0x25
	strb r1, [r0]
	movs r0, #0x80
	lsls r0, r0, #0xb
	str r0, [r4, #0x10]
	adds r0, r4, #0
	bl UpdateSpriteAnimation
	movs r6, #0
	movs r5, #0
	mov r8, r5
	movs r0, #0x90
	lsls r0, r0, #2
	mov sl, r0
	movs r1, #0x30
	mov sb, r1
_0801B61E:
	mov r0, sb
	adds r4, r7, r0
	strh r5, [r4, #0x16]
	strh r5, [r4, #0x18]
	cmp r6, #0
	bne _0801B63C
	movs r0, #0x16
	bl VramMalloc
	b _0801B640
	.align 2, 0
_0801B634: .4byte 0x0000025E
_0801B638: .4byte 0x03000020
_0801B63C:
	ldr r0, [r7, #0x34]
	add r0, r8
_0801B640:
	str r0, [r4, #4]
	movs r0, #0x80
	lsls r0, r0, #1
	strh r0, [r4, #0x1a]
	strh r5, [r4, #8]
	ldr r1, _0801B688 @ =0x0000038B
	strh r1, [r4, #0xa]
	adds r0, r4, #0
	adds r0, #0x20
	strb r6, [r0]
	strh r5, [r4, #0x14]
	strh r5, [r4, #0x1c]
	adds r1, r4, #0
	adds r1, #0x21
	movs r0, #0xff
	strb r0, [r1]
	adds r1, #1
	movs r0, #0x10
	strb r0, [r1]
	adds r0, r4, #0
	adds r0, #0x25
	strb r5, [r0]
	str r5, [r4, #0x10]
	adds r0, r4, #0
	bl UpdateSpriteAnimation
	mov r0, sl
	adds r4, r7, r0
	strh r5, [r4, #0x16]
	strh r5, [r4, #0x18]
	cmp r6, #0
	bne _0801B68C
	movs r0, #0x16
	bl VramMalloc
	b _0801B696
	.align 2, 0
_0801B688: .4byte 0x0000038B
_0801B68C:
	movs r1, #0x91
	lsls r1, r1, #2
	adds r0, r7, r1
	ldr r0, [r0]
	add r0, r8
_0801B696:
	str r0, [r4, #4]
	movs r0, #0x80
	lsls r0, r0, #1
	strh r0, [r4, #0x1a]
	strh r5, [r4, #8]
	ldr r0, _0801B6F0 @ =0x0000038B
	strh r0, [r4, #0xa]
	adds r1, r6, #0
	adds r1, #0xb
	adds r0, r4, #0
	adds r0, #0x20
	strb r1, [r0]
	strh r5, [r4


  --color-green: #18c692;

  --font-sans: "Poppins", "Helvetica Neue", Helvetica;
  --font-rubik: "Rubik", "Helvetica Neue", Helvetica;

  --tracking-6: 0.06rem;

  /* custom reesponsive breakpoints we define */
  --breakpoint-3xl: 109.375rem;
  --breakpoint-mdlg: 50rem;

  /* all of the following is related to our loading spinner animation */
  --animate-spinn: spinner 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
  --animate-spinn-45: spinner 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite -0.45s;
  --animate-spinn-30: spinner 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite -0.3s;
  --animate-spinn-15: spinner 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite -0.15s;

  @keyframes spinner {
    from {
      transform: rotate(0deg);
    }
    to {
      transform: rotate(360deg);
    }
  }
}
@import url("https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap");

@import "tailwindcss";

@theme {
  --color-primary-800: #0891aa;
  --color-primary-700: #18abc6;
  --color-primary-300: #67c6e3;
  --color-primary-100: #eff9fb;

  --color-grey-1000: #151515;
  --color-grey-900: #6d6d6d;
  --color-grey-800: #797979;
  --color-grey-700: #7d7d7d;
  --color-grey-600: #8d8d8d;
  --color-grey-500: #b3b3b3;
  --color-grey-400: #c7c7c7;
  --color-grey-300: #d9d9d9;

  --color-yellow: #fec107;
  --color-red: #ff1500;
  --color-green: #18c692;

  --font-sans: "Poppins", "Helvetica Neue", Helvetica;
  --font-rubik: "Rubik", "Helvetica Neue", Helvetica;

  --tracking-6: 0.06rem;

  /* custom reesponsive breakpoints we define */
  --breakpoint-3xl: 109.375rem;
  --breakpoint-mdlg: 50rem;

  /* all of the following is related to our loading spinner animation */
  --animate-spinn: spinner 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
  --animate-spinn-45: spinner 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite -0.45s;
  --animate-spinn-30: spinner 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite -0.3s;
  --animate-spinn-15: spinner 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite -0.15s;

  @keyframes spinner {
    from {
      transform: rotate(0deg);
    }
    to {
      transform: rotate(360deg);
    }
  }
}
@import


 +
	"\x0erequired_int32\x18\x01 \x01(\x05B\x05\xaa\x01\x02\b\x03R\rrequiredInt32\x12,\n" +
	"\x0erequired_int64\x18\x02 \x01(\x03B\x05\xaa\x01\x02\b\x03R\rrequiredInt64\x12.\n" +
	"\x0frequired_uint32\x18\x03 \x01(\rB\x05\xaa\x01\x02\b\x03R\x0erequiredUint32\x12.\n" +
	"\x0frequired_uint64\x18\x04 \x01(\x04B\x05\xaa\x01\x02\b\x03R\x0erequiredUint64\x12.\n" +
	"\x0frequired_sint32\x18\x05 \x01(\x11B\x05\xaa\x01\x02\b\x03R\x0erequiredSint32\x12.\n" +
	"\x0frequired_sint64\x18\x06 \x01(\x12B\x05\xaa\x01\x02\b\x03R\x0erequiredSint64\x120\n" +
	"\x10required_fixed32\x18\a \x01(\aB\x05\xaa\x01\x02\b\x03R\x0frequiredFixed32\x120\n" +
	"\x10required_fixed64\x18\b \x01(\x06B\x05\xaa\x01\x02\b\x03R\x0frequiredFixed64\x122\n" +
	"\x11required_sfixed32\x18\t \x01(\x0fB\x05\xaa\x01\x02\b\x03R\x10requiredSfixed32\x122\n" +
	"\x11required_sfixed64\x18\n" +
	" \x01(\x10B\x05\xaa\x01\x02\b\x03R\x10requiredSfixed64\x12,\n" +
	"\x0erequired_float\x18\v \x01(\x02B\x05\xaa\x01\x02\b\x03R\rrequiredFloat\x12.\n" +
	"\x0frequired_double\x18\f \x01(\x01B\x05\xaa\x01\x02\b\x03R\x0erequiredDouble\x12*\n" +
	"\rrequired_bool\x18\r \x01(\bB\x05\xaa\x01\x02\b\x03R\frequiredBool\x12.\n" +
	"\x0frequired_string\x18\x0e \x01(\tB\x05\xaa\x01\x02\b\x03R\x0erequiredString\x12,\n" +
	"\x0erequired_bytes\x18\x0f \x01(\fB\x05\xaa\x01\x02\b\x03R\rrequiredBytes\x12\x8f\x01\n" +
	"\x17required_nested_message\x18\x12 \x01(\v2P.protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.NestedMessageB\x05\xaa\x01\x02\b\x03R\x15requiredNestedMessage\x12}\n" +
	"\x18required_foreign_message\x18\x13 \x01(\v2<.protobuf_test_messages.editions.proto2.ForeignMessageProto2B\x05\xaa\x01\x02\b\x03R\x16requiredForeignMessage\x12\x86\x01\n" +
	"\x14required_nested_enum\x18\x15 \x01(\x0e2M.protobuf_test_messages.editions.proto2.TestAllRequiredTypesProto2.Ne


c3?0f?1UcP7JKRHeap
.global update__17AudAnmSoundObjectFf
.global modifySoundParams__17AudAnmSoundObjectFP14JASSoundParamsPC22JAUSoundAnimationSoundf
.global playsSound__17AudAnmSoundObjectFPC22JAUSoundAnimationSoundRCQ29JGeometry8TVec3?0f?1f
.global getSoundID__17AudAnmSoundObjectFPC22JAUSoundAnimationSoundRCQ29JGeometry8TVec3?0f?1f
.global getFreeHandle__17AudAnmSoundObjectFPC22JAUSoundAnimationSound
.global skip__17AudAnmSoundObjectFf
.global setStartPos__17AudAnmSoundObjectFf
.global updateAnimSound__17AudAnmSoundObjectFfRCQ29JGeometry8TVec3?0f?1P15JAISoundStarter
.global startAnimSound__17AudAnmSoundObjectFRCQ29JGeometry8TVec3?0f?1fP15JAISoundStarter
.global releaseHandleIfNecessary__17AudAnmSoundObjectFP14JAISoundHandleUl
.global getNumSounds__17JAUSoundAnimationCFv
.global isNotingOn__22JAUSoundAnimationSoundCFfb
.global getSound__17JAUSoundAnimationCFi
.global __dt__17AudAnmSoundObjectFv
.global ?224?2__dt__17AudAnmSoundObjectFv
.global ?272?2modifySoundParams__17AudAnmSoundObjectFP14JASSoundParamsPC22JAUSoundAnimationSoundf
.global ?272?2playsSound__17AudAnmSoundObjectFPC22JAUSoundAnimationSoundRCQ29JGeometry8TVec3?0f?1f
.global ?272?2getSoundID__17AudAnmSoundObjectFPC22JAUSoundAnimationSoundRCQ29JGeometry8TVec3?0f?1f
.global ?272?2getFreeHandle__17AudAnmSoundObjectFPC22JAUSoundAnimationSound
.global __vt__17AudAnmSoundObject
.global sInstance__36JASGlobalInstance?015JAISoundStarter?1
.global ?257628
.global ?258672

; Segments
.section .text
__ct__17AudAnmSoundObjectFPQ29JGeometry8TVec3?0f?1UcP7JKRHeap:
.byte 0x94, 0x21, 0xFF, 0xF0 # 8002dc60
.byte 0x7C, 0x08, 0x02, 0xA6 # 8002dc64
.byte 0x90, 0x01, 0x00, 0x14 # 8002dc68
.byte 0x93, 0xE1, 0x00, 0x0C # 8002dc6c
.byte 0x7C, 0x7F, 0x1B, 0x78 # 8002dc70
.byte 0x4B, 0xFF, 0xCF, 0x6D # 8002dc74
.byte 0x7F, 0xE4, 0xFB, 0x78 # 8002dc78
.byte 0x38, 0x7F, 0x00, 0x48 # 8002dc7c
.byte 0x48, 0x47, 0x2F, 0x41 # 8002dc80
.byte 0x3C, 0xA0, 0x80, 0x56 # 8002dc84
.byte 0x7F, 0xE3, 0xFB, 0x78 # 8002dc88
.byte 0x38, 0xA5, 0x5F, 0xE8 # 8002dc8c
.byte 0x38, 0x85, 0x00, 0x24 # 8002dc90
.byte 0x90, 0xBF, 0x00, 0x08 # 8002dc94
.byte 0x38, 0x05, 0x00, 0x34 # 8002dc98
.byte 0x90, 0x9F, 0x00, 0x18 # 8002dc9c
.byte 0x90, 0x1F, 0x00, 0x48 # 8002dca0
.byte 0x83, 0xE1, 0x00, 0x0C # 8002dca4
.byte 0x80, 0x01, 0x00, 0x14 # 8002dca8
.byte 0x7C, 0x08, 0x03, 0xA6 # 8


( nq.size, 3 )
		nq = nq.dequeue()
		equal( nq.size, 2 )
		nq = nq.enqueue( "", 0 )
		equal( nq.size, 3 )
		nq = nq.dequeue()
		equal( nq.size, 2 )
		nq = nq.dequeue()
		equal( nq.size, 1 )
		nq = nq.dequeue()
		equal( nq.size, 0 )
	}

	@test("it's ok to queue same items, even with same priorities") caseEnqueueSame() {
		let nq = new PriorityQueue<string,number>()
		nq = nq.enqueue( "", 0 )
		equal( nq.size, 1 )
		nq = nq.enqueue( "", 0 )
		equal( nq.size, 2 )
		nq = nq.enqueue( "", 1 )
		equal( nq.size, 3 )
		nq = nq.enqueue( "a", 1 )
		equal( nq.size, 4 )
		nq = nq.enqueue( "b", 2 )
		equal( nq.size, 5 )
		const q1 = PQ.make( [["1", 1]] )
		const q2 = PQ.enqueue( q1, "2", 2 )
		deepEqual( PQ.first( q2 ), ["1",1] )
	}

	@test("dequeue returns new heap without element with higher priority (min by default)") dequeueCase() {
		let nq = new PriorityQueue<string,number>()
		equal( nq.size, 0 )
		nq = nq.enqueue( "1", 1 )
		nq = nq.enqueue( "2", 2 )
		nq = nq.enqueue( "0", 0 )
		nq = nq.enqueue( "5", 5 )
		nq = nq.enqueue( "3", 3 )
		nq = nq.enqueue( "4", 4 )
		equal( nq.size, 6 )
		equal( nq.firstElement(), "0" )
		nq = nq.dequeue()
		equal( nq.firstElement(), "1" )
		nq = nq.dequeue()
		equal( nq.firstElement(), "2" )
		nq = nq.dequeue()
		equal( nq.size, 3 )
		equal( nq.firstElement(), "3" )
		nq = nq.dequeue()
		equal( nq.firstElement(), "4" )
		nq = nq.dequeue()
		equal( nq.firstElement(), "5" )
		nq = nq.dequeue()
		equal( nq.size, 0 )
		equal( nq.dequeue(), nq )

		const q1 = PQ.make( [["1", 1],["2", 2]] )
		const q2 = PQ.dequeue( q1 )
		deepEqual( PQ.first( q2 ), ["2",2] )
		const q3 = PQ.dequeue( q2 )
		equal( PQ.dequeue( q3 ), q3 )
	}

	@test("dequeue from empty returns the same queue") dequeueEmpty() {
		let nq = new PriorityQueue<string,number>()
		equal( nq.size, 0 )
		equal( nq.dequeue(), nq )
		nq = nq.enqueue( "", 0 )
		equal( nq.size, 1 )
		nq = nq.dequeue()
		equal( nq.dequeue(), nq )
	}

	@test("default comparator: min heap") defaultComparator() {
		let nq = new PriorityQueue<string,number>()
		equal( nq.size, 0 )
		nq = nq.enqueue( "second", 2 ).enqueue( "first", 1 ).enqueue( "third", 3 )
		equal( nq.size, 3 )
		equal( nq.firstElement(), "first" )
		nq = nq.dequeue()
		equal( nq.firstElement(), "second" )
		nq = nq.dequeue()
		equal( nq.firstElement(), "third" )
		nq = nq.dequeue()
		equal( nq.size, 0 )
		nq = nq.dequeue()
		equal( nq, nq.dequeue(


  add lr, lr, #1
  cmp lr, r4
  mov ip, ip, lsr #8
  add r6, r6, #4
  bcc .L12002
  b .L11219
.L12413:
  rsb sl, r6, r7
  cmp sl, #0
  ble .L11219
  ldr r9, [sp, #0]
  movs  r8, sl, lsr #3
  add r7, r9, r6, asl #2
  beq .L12278
  ldr r3, .L12436+4
  mov r4, r7
  add r0, r0, r3
  mov r6, ip
  mov r1, #0
.L12280:
  ldr r2, [r0, #68]
  cmp r2, #0
  beq .L12281
  ands  lr, r2, #255
  beq .L12283
  ldr r3, [r4, #12]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne fp, [sp, #20]
  ldreq r5, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, fp, r3
  orreq r3, r5, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r4, #12]
  streq r3, [r4, #12]
.L12283:
  mov r3, r2, lsr #8
  ands  lr, r3, #255
  beq .L12287
  ldr r3, [r4, #8]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r9, [sp, #20]
  ldreq fp, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r9, r3
  orreq r3, fp, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r4, #8]
  streq r3, [r4, #8]
.L12287:
  mov r3, r2, lsr #16
  ands  lr, r3, #255
  beq .L12291
  ldr r3, [r4, #4]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne r5, [sp, #20]
  ldreq r9, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, r5, r3
  orreq r3, r9, r3, asl #16
  orrne r3, lr, r3
  orreq r3, lr, r3
  strne r3, [r4, #4]
  streq r3, [r4, #4]
.L12291:
  movs  r2, r2, lsr #24
  beq .L12281
  ldr r3, [r4, #0]
  tst r3, #256
  movne r3, r3, lsr #16
  ldrne fp, [sp, #20]
  ldreq lr, [sp, #20]
  movne r3, r3, asl #16
  orrne r3, fp, r3
  orreq r3, lr, r3, asl #16
  orrne r3, r2, r3
  orreq r3, r2, r3
  strne r3, [r4, #0]
  streq r3, [r4, #0]
.L12281:
  ldr lr, [r6, #0]
  cmp


distrib+1);
  NEW_TABLE( m_c_rt_distrib, unsigned long, m_rtdistrib+1);
  NEW_VAR(m_sem_rt, C_Semaphore()) ;

  m_sem_rt->P();
  for (L_i=0 ; L_i <= m_rtdistrib ; L_i++) {
    m_p_rt_distrib[L_i] = 0;
    m_c_rt_distrib[L_i] = 0;
  }

  m_p_min_rt_distrib = m_rtdistrib ;
  m_p_max_rt_distrib = 0 ;

  m_c_min_rt_distrib = m_rtdistrib ;
  m_c_max_rt_distrib = 0 ;
  m_counter_rt = 0 ;
  m_sem_rt->V();
}

C_DataLogRTDistrib::~C_DataLogRTDistrib() {

  GEN_DEBUG(0, "C_DataLogRTDistrib::~C_DataLogRTDistrib()");
  m_sem_rt->P();
  DELETE_TABLE(m_p_rt_distrib);
  DELETE_TABLE(m_c_rt_distrib);
  m_sem_rt->V();
  DELETE_VAR(m_sem_rt);
}

int C_DataLogRTDistrib::data (char *P_data) {
  (*m_output_stream) << P_data << iostream_endl << iostream_flush ;
  return (1);
}

int C_DataLogRTDistrib::data (double P_time, double P_value) {
  unsigned long   L_index    ;

  L_index = (unsigned long) floor(P_value) ;

  m_sem_rt->P();
  if(L_index >= m_rtdistrib) {
    L_index = m_rtdistrib ;
  }

  m_p_rt_distrib[L_index] ++;
  m_c_rt_distrib[L_index] ++;

  m_p_min_rt_distrib = min(m_p_min_rt_distrib,L_index);
  m_c_min_rt_distrib = min(m_c_min_rt_distrib,L_index);
  m_p_max_rt_distrib = max(m_p_max_rt_distrib,L_index);
  m_c_max_rt_distrib = max(m_c_max_rt_distrib,L_index);

  m_counter_rt ++;

  if (m_counter_rt >= m_size_log) {
    m_sem->V();
  }
  m_sem_rt->V();

  return (1);
}

void C_DataLogRTDistrib::do_log_cumul () {

  size_t         L_i ;

  m_sem_rt->P();
  (*m_output_stream) << "Dump Cumulative;" << iostream_endl << iostream_flush ;

  for(L_i = m_c_min_rt_distrib ; L_i <= m_c_max_rt_distrib ; L_i++) {
    if(m_c_rt_distrib[L_i] != 0) {
      (*m_output_stream) << L_i << ";"
                         << m_c_rt_distrib[L_i] << ";" ;
      (*m_output_stream) << iostream_endl << iostream_flush ;
    }
  }
  m_sem_rt->V();
}

void C_DataLogRTDistrib::do_log () {

  size_t         L_i ;

  m_sem_rt->P();
  if (m_counter_rt) {
    (*m_output_stream) << "Dump Periodic;" << iostream_endl << iostream_flush ;
    for(L_i = m_p_min_rt_distrib ; L_i <= m_p_max_rt_distrib ; L_i++) {

      if(m_p_rt_distrib[L_i] != 0) {
	(*m_output_stream) << L_i << ";"
			   << m_p_rt_distrib[L_i] << ";" ;
	(*m_output_stream) << iostream_endl << iostream_flush ;
      }
    }

    for (L_i=0 ; L_i <= m_rtdistrib ; L_i++) {
      m_p_rt_distrib[L_i] = 0;
    }
    m_p_min_rt_distrib = m_rtdistrib ;
    m_p_max_rt_distrib = 0 ;
    m_counter_rt = 0 ;
  }
  m_sem_rt->V();

}

/*
 *  This program is free software; you can red


Test_Key
	cmp.w #"o",Key_Pressed-data_base(a5)		touche Stop ?
	beq AskStopSure
	bra Next_Block

TD_not_Test_Key
	cmp.l #GADGETUP,Classe_message-data_base(a5)	c'est un gadget ?
	bne Next_Block
	cmp.l #Gadget6,Gadget_adr-data_base(a5)		regarde si gadget Stop
	bne Next_Block

AskStopSure
	lea TextRequestSure(pc),a0		requester "Are U sure ?"
	move.l #ReqTextStopSure,trs_Text(a0)
	move.l _ReqBase(pc),a6
	CALL TextRequest
	tst.l d0
	bne TD_Error_Incomplete
	bra Next_Block

TD_Exit
	lea TD_Struct(pc),a1			met le buffer sur disk
	move.w #CMD_UPDATE,IO_COMMAND(a1)	commande UPDATE
	CALL DoIO				ecrit sur le disque

	lea TD_Struct(pc),a1			arrete le moteur
	move.w #TD_MOTOR,IO_COMMAND(a1)
	clr.l IO_LENGTH(a1)
	CALL DoIO

	move.l d4,d1				ferme le fichier
	move.l _DosBase(pc),a6
	CALL Close

TD_do_CheckSum
	btst #1,Option_Number-data_base(a5)	CheckSum demand ?
	bne.s Make_CheckSum			bit 1 car option 2 et 3
	rts

*-----------------------------> routine qui recalcule le CheckSum Block 0 et 1
Make_CheckSum
	lea TD_Struct(pc),a1			vire le buffer du trackdisk
	move.w #CMD_CLEAR,IO_COMMAND(a1)
	move.l (_SysBase).w,a6
	CALL DoIO

	lea TD_Struct(pc),a1
	move.w #CMD_READ,IO_COMMAND(a1)		commande READ
	move.l TD_Buffer(pc),IO_DATA(a1)	adr du buffer en chip
	move.l #512*2,IO_LENGTH(a1)		2 blocks  lire
	clr.l IO_OFFSET(a1)			block 0
	CALL DoIO				lit les 2 blocks
	lea TD_Struct(pc),a1
	tst.b IO_ERROR(a1)
	bne Check_Error_Read

	move.l TD_Buffer(pc),a0			pointe le buffer
	lea 4(a0),a1				pointe le CheckSum
	clr.l (a1)				on l'efface pour l'addition
	move.w #1024/4-1,d1			nb de long mot
	moveq #0,d0
Loop_CheckSum
	add.l (a0)+,d0				calcule du CheckSum du
	bcc.s Jump				bootblock
	addq.l #1,d0
Jump
	dbf d1,Loop_CheckSum
	not.l d0
	move.l d0,(a1)				sauve le CheckSum

	lea TD_Struct(pc),a1
	move.w #CMD_WRITE,IO_COMMAND(a1)	commande WRITE
	move.l TD_Buffer(pc),IO_DATA(a1)	adr du buffer en chip
	move.l #512*2,IO_LENGTH(a1)		2 blocks  lire
	clr.l IO_OFFSET(a1)			block 0
	CALL DoIO				lit les 2 blocks
	lea TD_Struct(pc),a1
	tst.b IO_ERROR(a1)
	bne Check_Error_Write

	move.w #CMD_UPDATE,IO_COMMAND(a1)	commande UPDATE
	CALL DoIO				ecrit sur le disque

	lea TD_Struct(pc),a1			arrete le moteur
	move.w #TD_MOTOR


trToArgument(j+i)->getName()+"_"+getPntrToArgument(j)->getName(),lower(j+i,j));
      }
    }
  } else {
    hillsOfile_.printField("multivariate","false");
    for(unsigned i=0; i<ncv; ++i) {
      file.printField("sigma_"+getPntrToArgument(i)->getName(),hill.sigma[i]);
    }
  }
  double height=hill.height;
  // note that for gamma=1 we store directly -F
  if(welltemp_ && biasf_>1.0) {
    height*=biasf_/(biasf_-1.0);
  }
  file.printField("height",height).printField("biasf",biasf_);
  if(mw_n_>1) {
    file.printField("clock",int(std::time(0)));
  }
  file.printField();
}

void MetaD::addGaussian(const Gaussian& hill) {
  if(grid_) {
    size_t ncv=getNumberOfArguments();
    std::vector<unsigned> nneighb=getGaussianSupport(hill);
    std::vector<Grid::index_t> neighbors=BiasGrid_->getNeighbors(hill.center,nneighb);
    std::vector<double> der(ncv);
    std::vector<double> xx(ncv);
    if(comm.Get_size()==1) {
      // for performance reasons and thread safety
      std::vector<double> dp(ncv);
      for(size_t i=0; i<neighbors.size(); ++i) {
        Grid::index_t ineigh=neighbors[i];
        for(unsigned j=0; j<ncv; ++j) {
          der[j]=0.0;
        }
        BiasGrid_->getPoint(ineigh,xx);
        double bias=evaluateGaussianAndDerivatives(xx,hill,der,dp);
        BiasGrid_->addValueAndDerivatives(ineigh,bias,der);
      }
    } else {
      unsigned stride=comm.Get_size();
      unsigned rank=comm.Get_rank();
      std::vector<double> allder(ncv*neighbors.size(),0.0);
      std::vector<double> n_der(ncv,0.0);
      std::vector<double> allbias(neighbors.size(),0.0);
      // for performance reasons and thread safety
      std::vector<double> dp(ncv);
      for(unsigned i=rank; i<neighbors.size(); i+=stride) {
        Grid::index_t ineigh=neighbors[i];
        for(unsigned j=0; j<ncv; ++j) {
          n_der[j]=0.0;
        }
        BiasGrid_->getPoint(ineigh,xx);
        allbias[i]=evaluateGaussianAndDerivatives(xx,hill,n_der,dp);
        for(unsigned j=0; j<ncv; j++) {
          allder[ncv*i+j]=n_der[j];
        }
      }
      comm.Sum(allbias);
      comm.Sum(allder);
      for(unsigned i=0; i<neighbors.size(); ++i) {
        Grid::index_t ineigh=neighbors[i];
        for(unsigned j=0; j<ncv; ++j) {
          der[j]=allder[ncv*i+j];
        }
        BiasGrid_->addValueAndDerivatives(ineigh,allbias[i],der);
      }
    }
  } else {
    hills_.push_back(hill);
  }
}

std::vector<unsigned> MetaD::getGaussianSupport(const Gaussian& hill) {
  std::vector<unsigned> nneigh;
  std::vector<double> cutoff;
  unsigned ncv=getNumberOfArguments();

  // traditional or flexible hill?
  if(hill.multivariate) {
    unsigned k=0;
    M


onvert args back to function parameters
            kwargs = args.model_dump()
            return await self._original_func(**kwargs)

        def name(self) -> str:
            return str(original_func.__name__)

    # Create task instance
    task_instance = GeneratedTask()

    # Add special attributes (can't use update_wrapper on task instance)
    task_instance.__name__ = original_func.__name__  # type: ignore[attr-defined]
    task_instance.__azolla_task_class__ = GeneratedTask  # type: ignore[attr-defined]
    task_instance.__azolla_args_model__ = args_model  # type: ignore[attr-defined]

    # Make it callable like the original function for testing
    @functools.wraps(original_func)
    async def wrapper(*args: Any, **kwargs: Any) -> Any:
        return await original_func(*args, **kwargs)

    # Copy task attributes to wrapper
    wrapper.__azolla_task_class__ = GeneratedTask  # type: ignore[attr-defined]
    wrapper.__azolla_args_model__ = args_model  # type: ignore[attr-defined]
    wrapper.__azolla_task_instance__ = task_instance  # type: ignore[attr-defined]

    return wrapper


ator.
#[cfg(feature = "wee_alloc")]
#[global_allocator]
static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT;

macro_rules! log {
    ( $( $t:tt )* ) => {
        web_sys::console::log_1(&format!( $( $t )* ).into());
    }
}

// TODO: Remove this enum and trait
// This implementation is redundant but I couldn't find how to wasm export other dependencie's enum
#[wasm_bindgen]
#[derive(Debug)]
pub enum FileType {
    Png,
    Jpeg,
}

trait ImageFormatBinder {
    fn get_image_format(&self) -> ImageFormat;
}

impl ImageFormatBinder for FileType {
    fn get_image_format(&self) -> ImageFormat {
        match *self {
            FileType::Png => ImageFormat::Png,
            FileType::Jpeg => ImageFormat::Jpeg,
        }
    }
}

#[wasm_bindgen]
#[derive(Debug)]
pub struct InputFile {
    file_type: FileType,
    buffer: Uint8Array,
}

#[wasm_bindgen]
impl InputFile {
    pub fn new(file_type: FileType, buffer: Uint8Array) -> InputFile {
        InputFile { file_type, buffer }
    }
}

#[wasm_bindgen]
extern "C" {
    fn alert(s: &str);
}

#[wasm_bindgen]
pub fn greet(s: &str) {
    alert(s);
}

#[wasm_bindgen]
pub fn ocr(input: InputFile) {
    utils::set_panic_hook();

    let image: ImageResult<DynamicImage> = image::load_from_memory_with_format(
        &input.buffer.to_vec(),
        input.file_type.get_image_format(),
    );
    log!("{:?}", input);
    // alert(image.unwrap().width().to_string().as_str());
    alert(&image.unwrap().to_bytes().len().to_string())
}
mod ovit_fuse;

extern crate clap;
extern crate log;

use clap::{App, Arg};
use log::info;
use ovit_fuse::TiVoFS;
use std::ffi::OsStr;

fn main() {
    env_logger::init();

    let matches = App::new("ovit-fuse")
        .version("0.0.0-dev")
        .author("<NAME> <<EMAIL>>")
        .about("FUSE driver for interacting with TiVo Media File Systems")
        .arg(
            Arg::with_name("TARGET")
                .help("The TiVo drive containing the Media File System to be mounted")
                .required(true)
                .index(1),
        )
        .arg(
            Arg::with_name("MOUNT POINT")
                .help("Location to mount Media File System")
                .required(true)
                .index(2),
        )
        .get_matches();

    let tivo_drive_location = matches.value_of("TARGET").expect("No TiVo drive provided!");
    let mount_point = matches
        .value_of("MOUNT POINT")
        .expect("No mount point provided!");

    let filesystem = TiVoFS {
        drive_location: tivo_drive_location.to_string(),
    };

    // TODO: Check that the drive location is actually available before mounting with FUSE

    let fuse_args: Vec<&OsStr> = vec![&OsStr::new("-o"), &OsStr::new("auto_unmount")];

    info!("Mounting TiVoFS with FUSE");

    fuse_mt::mount(
        fuse_mt::FuseMT::new(filesystem, 1),
        &mount_point,
        &fuse_args,
    )
    .expect("Could not mount!");
}
<reponame>dtrain157/wasm_gl
use crate::shader::shader_controller::ShaderController;
use nalgebra_glm as glm;
use we


wed data size for this field is 10KB. This excludes
  /// `publicKeyEncryptionCertificates`.
  ///
  /// The values for Object must be JSON objects. It can consist of `num`,
  /// `String`, `bool` and `null` as well as `Map` and `List` values.
  core.Object? emails;

  /// ETag of the resource.
  ///
  /// Output only.
  core.String? etag;

  /// The list of external IDs for the user, such as an employee or network ID.
  ///
  /// The maximum allowed data size for this field is 2KB.
  ///
  /// The values for Object must be JSON objects. It can consist of `num`,
  /// `String`, `bool` and `null` as well as `Map` and `List` values.
  core.Object? externalIds;

  /// The user's gender.
  ///
  /// The maximum allowed data size for this field is 1KB.
  ///
  /// The values for Object must be JSON objects. It can consist of `num`,
  /// `String`, `bool` and `null` as well as `Map` and `List` values.
  core.Object? gender;

  /// Stores the hash format of the `password` property.
  ///
  /// The following `hashFunction` values are allowed: * `MD5` - Accepts simple
  /// hex-encoded values. * `SHA-1` - Accepts simple hex-encoded values. *
  /// `crypt` - Compliant with the
  /// [C crypt library](https://en.wikipedia.org/wiki/Crypt_%28C%29). Supports
  /// the DES, MD5 (hash prefix `$1$`), SHA-256 (hash prefix `$5$`), and SHA-512
  /// (hash prefix `$6$`) hash algorithms. If rounds are specified as part of
  /// the prefix, they must be 10,000 or fewer.
  core.String? hashFunction;

  /// The unique ID for the user.
  ///
  /// A user `id` can be used as a user request URI's `userKey`.
  core.String? id;

  /// The list of the user's Instant Messenger (IM) accounts.
  ///
  /// A user account can have multiple ims properties. But, only one of these
  /// ims properties can be the primary IM contact. The maximum allowed data
  /// size for this field is 2KB.
  ///
  /// The values for Object must be JSON objects. It can consist of `num`,
  /// `String`, `bool` and `null` as well as `Map` and `List` values.
  core.Object? ims;

  /// Indicates if the user's profile is visible in the Google Workspace global
  /// address list when the contact sharing feature is enabled for the domain.
  ///
  /// For more information about excluding user profiles, see the
  /// [administration help center](https://support.google.com/a/answer/1285988).
  core.bool? includeInGlobalAddressList;

  /// If `true`, the user's IP address is subject to a deprecated IP address
  /// \[`allowlist`\](https://support.google.com/a/answer/60752) configuration.
  core.bool? ipWhitelisted;

  /// Indicates a user with super administrator privileges.
  ///
  /// The `isAdmin` property can only be edited in the
  /// [Make a user an administrator](https://developers.google.com/workspace/admin/directory/v1/guides/manage-users.html#make_admin)
  /// operation (
  /// [makeAdmin](https://developers.google.com/workspace/admin/directory/v1/reference/users/makeAdmin.html)
  /// method). If edited in the user
  /// [insert](https://developers.google.com/workspace/admin/directory/v1/reference/users/insert.html)
  /// or
  /// [update](https://developers.google.com/workspace/admin/directory/v1/reference/users/update.html)
  /// methods, the edit is ignored by the API service.
  ///
  /// Output only.
  core.bool? isAdmin;

  /// Indicates if the user is


          0 => {
                    match y {
                        0 => Rlc(register),
                        1 => Rrc(register),
                        2 => Rl(register),
                        3 => Rr(register),
                        4 => Sla(register),
                        5 => Sra(register),
                        6 => Swap(register),
                        7 => Srl(register),
                        _ => unreachable!()
                    }
                },
                1 => Bit(y, register),
                2 => Res(y, register),
                3 => Set(y, register),
                _ => unreachable!()
            }
        };

    instruction
}

fn decode_alu(y: u8, src: Box<dyn AddressingMode<u8>>) -> Instruction {
    use self::Instruction::*;

    match y {
        0 => Add8(src),
        1 => Adc(src),
        2 => Sub(src),
        3 => Sbc(src),
        4 => And(src),
        5 => Xor(src),
        6 => Or(src),
        7 => Cp(src),
        _ => unreachable!()
    }
}

pub fn execute(cpu: &mut Cpu, bus: &mut Bus, instruction: &Instruction) -> bool {
    use self::Instruction::*;
    match instruction {
        Nop                 => { nop(); true },
        Ld8(dest, src)      => { ld(cpu, bus, dest.as_ref(), src.as_ref()); true },
        Ld16(dest, src)     => { ld(cpu, bus, dest.as_ref(), src.as_ref()); true },
        Stop                => { stop(cpu); true },
        Jr(cond, addr)      => { jr(cpu, bus, *cond, addr.as_ref()) },
        Add16(dest, src)    => { add_16(cpu, bus, dest.as_ref(), src.as_ref()); true },
        Inc8(reg)           => { inc_8(cpu, bus, reg.as_ref()); true },
        Inc16(reg)          => { inc_16(cpu, bus, reg.as_ref()); true },
        Dec8(reg)           => { dec_8(cpu, bus, reg.as_ref()); true },
        Dec16(reg)          => { dec_16(cpu, bus, reg.as_ref()); true },
        Rlca                => { rlca(cpu); true },
        Rrca                => { rrca(cpu); true },
        Rla                 => { rla(cpu); true },
        Rra                 => { rra(cpu); true },
        Daa                 => { daa(cpu); true },
        Cpl                 => { cpl(cpu); true },
        Scf                 => { scf(cpu); true },
        Ccf                 => { ccf(cpu); true },
        Ldd(dest, src)      => { ldd(cpu, bus, dest.as_ref(), src.as_ref()); true },
        Ldi(dest, src)      => { ldi(cpu, bus, dest.as_ref(), src.as_ref()); true },
        Add8(reg)           => { add_8(cpu, bus, reg.as_ref()); true },
        Adc(reg)            => { adc(cpu, bus, reg.as_ref()); true },
        Sub(reg)            => { sub(cpu, bus, reg.as_ref()); true },
        Sbc(reg)            => { sbc(cpu, bus, reg.as_ref()); true },
        And(reg)            => { and(cpu, bus, reg.as_ref()); true },
        Xor(reg)            => { xor(cpu, bus, reg.as


ense, 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 com.maltaisn.notes.model

import android.content.Context
import androidx.room.Room
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.maltaisn.notes.model.entity.Label
import com.maltaisn.notes.model.entity.LabelRef
import com.maltaisn.notes.testNote
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.runBlocking
import org.junit.After
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import kotlin.test.assertEquals
import kotlin.test.assertNull

@RunWith(AndroidJUnit4::class)
class LabelsDaoTest {

    private lateinit var database: NotesDatabase
    private lateinit var labelsDao: LabelsDao
    private lateinit var notesDao: NotesDao

    @Before
    fun createDatabase() {
        val context = ApplicationProvider.getApplicationContext<Context>()
        database = Room.inMemoryDatabaseBuilder(context, NotesDatabase::class.java).build()
        labelsDao = database.labelsDao()
        notesDao = database.notesDao()
    }

    @After
    fun closeDatabase() {
        database.close()
    }

    @Test
    fun readWriteTests() = runBlocking {
        val labelNoId = Label(Label.NO_ID, "label1")

        // Insert
        val id = labelsDao.insert(labelNoId)
        val label = labelNoId.copy(id = id)
        assertEquals(label, labelsDao.getById(id))
        assertEquals(label, labelsDao.getLabelByName("label1"))

        // Update with insert
        val updatedLabel0 = Label(1, "updated label1")
        labelsDao.insert(updatedLabel0)
        assertEquals(updatedLabel0, labelsDao.getById(1))
        assertEquals(updatedLabel0, labelsDao.getLabelByName("updated label1"))

        // Update directly
        val updatedLabel1 = Label(1, "updated label1 again")
        labelsDao.update(updatedLabel1)
        assertEquals(updatedLabel1, labelsDao.getById(id))
        assertEquals(updatedLabel1, labelsDao.getLabelByName("updated label1 again"))

        // Delete
        labelsDao.delete(updatedLabel1)
        assertNull(labelsDao.getById(id))
        assertNull(labelsDao.getLabelByName("updated label1 again"))
    }

    @Test
    fun getAllTest() = runBlocking {
        val labels = listOf(
            Label(1, "label1"),
            Label(2, "label2"),
            Label(3, "label3"),
        )
        for (label in labels) {
            labelsDao.insert(label)
        }
        assertEquals(labels.toSet(), labelsDao.getAll().toSet())
    }

    @Test
    fun clearTest() = runBlocking {
        labelsDao.insert(Label(1, "label1"))
        labelsDao.insert(Label(2, "label2"))
        labelsDao.insert(Label(3, "label3"))
        labelsDao.clear()
        assertEquals(emptyList(), labelsDao.getAll())
    }

    @Test
    fun changeLabelRefsTest() = runBlocking {
        notesDao.insertAll(listOf(
            testNote(id = 1),
            testNote(id = 2),
            testNote(id = 3),
        ))
        for (i in 1L..5L) {
            labelsDao.insert(Label(i, "label


mov     r6, r0
	add     r0, sp, #0x24
	bl      Function_223badc
	add     r0, sp, #0x18
	bl      Function_223badc
	cmp     r6, #0x0
	bne     branch_2242e80
	ldr     r4, [pc, #0x19c] @ [0x2242f00] (=0x22591c8)
	add     r0, sp, #0x0
	mov     r1, r5
	bl      Function_223ba6c
	add     r0, sp, #0xc
	mov     r1, r4
	bl      Function_223ba6c
	add     r0, sp, #0x0
	add     r1, sp, #0xc
	mov     r2, #0xc
	bl      Function_224154c
	mov     r4, r0
	add     r0, sp, #0xc
	bl      Function_223badc
	add     r0, sp, #0x0
	bl      Function_223badc
	cmp     r4, #0x0
	addne   sp, sp, #0x78
	ldmnefd sp!, {r3-r7,pc}
	add     r0, sp, #0x60
	mov     r1, r5
	bl      Function_223ba6c
	ldr     r1, [pc, #0x148] @ [0x2242f04] (=0x22591d8)
	add     r0, sp, #0x54
	bl      Function_223ba6c
	add     r0, sp, #0x6c
	add     r1, sp, #0x60
	add     r2, sp, #0x54
	mov     r3, #0x0
	bl      Function_2242f08
	add     r0, sp, #0x54
	bl      Function_223badc
	add     r0, sp, #0x60
	bl      Function_223badc
	ldr     r0, [sp, #0x70]
	cmp     r0, #0x0
	bne     branch_2242e00
	add     r0, sp, #0x6c
	bl      Function_223b578
	add     sp, sp, #0x78
	ldmfd   sp!, {r3-r7,pc}
@ 0x2242e00

.arm
branch_2242e00: @ 2242e00 :arm
	ldr     r1, [sp, #0x70]
	mov     r0, #0xc
	sub     r1, r1, #0x1
	mul     r2, r1, r0
	ldr     r1, [sp, #0x6c]
	ldr     r0, [r1, r2]
	add     r1, r1, r2
	mov     r0, r0, lsl #31
	movs    r0, r0, lsr #31
	addeq   r0, r1, #0x1
	ldrne   r0, [r1, #0x8]
	bl      Function_20dae0c
	movs    r4, r0
	bne     branch_2242e48
	add     r0, sp, #0x6c
	bl      Function_223b578
	add     sp, sp, #0x78
	ldmfd   sp!, {r3-r7,pc}
@ 0x2242e48

.arm
branch_2242e48: @ 2242e48 :arm
	ldr     r0, [pc, #0xa8] @ [0x2242ef8] (=0x225b6dc)
	add     r3, sp, #0x48
	ldr     r0, [r0]
	add     r0, r0, #0x64
	ldmia   r0


    final String newText = currentText.substring(0, cursorPosition) +
        emote.text! +
        currentText.substring(cursorPosition);
    message.value = newText;
    _replyContentController.value = TextEditingValue(
      text: newText,
      selection:
          TextSelection.collapsed(offset: cursorPosition + emote.text!.length),
    );
  }

  @override
  void didChangeMetrics() {
    super.didChangeMetrics();
    final String routePath = Get.currentRoute;
    if (mounted &&
        (routePath.startsWith('/video') ||
            routePath.startsWith('/dynamicDetail'))) {
      WidgetsBinding.instance.addPostFrameCallback((_) {
        // 键盘高度
        final viewInsets = EdgeInsets.fromViewPadding(
            View.of(context).viewInsets, View.of(context).devicePixelRatio);
        _debouncer.run(() {
          if (mounted) {
            if (keyboardHeight == 0 && emoteHeight == 0) {
              setState(() {
                emoteHeight = keyboardHeight =
                    keyboardHeight == 0.0 ? viewInsets.bottom : keyboardHeight;
              });
            }
          }
        });
      });
    }
  }

  @override
  void dispose() {
    WidgetsBinding.instance.removeObserver(this);
    _replyContentController.dispose();
    replyContentFocusNode.removeListener(() {});
    replyContentFocusNode.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    double _keyboardHeight = EdgeInsets.fromViewPadding(
            View.of(context).viewInsets, View.of(context).devicePixelRatio)
        .bottom;
    return Container(
      clipBehavior: Clip.hardEdge,
      decoration: BoxDecoration(
        borderRadius: const BorderRadius.only(
          topLeft: Radius.circular(12),
          topRight: Radius.circular(12),
        ),
        color: Theme.of(context).colorScheme.surface,
      ),
      child: Column(
        mainAxisSize: MainAxisSize.min,
        children: [
          ConstrainedBox(
            constraints: const BoxConstraints(
              maxHeight: 200,
              minHeight: 120,
            ),
            child: Container(
              padding: const EdgeInsets.only(
                  top: 12, right: 15, left: 15, bottom: 10),
              child: SingleChildScrollView(
                child: Form(
                  key: _formKey,
                  autovalidateMode: AutovalidateMode.onUserInteraction,
                  child: TextField(
                    controller: _replyContentController,
                    minLines: 3,
                    maxLines: null,
                    autofocus: false,
                    focusNode: replyContentFocusNode,
                    decoration: const InputDecoration(
                        hintText: "输入回复内容",
                        border: InputBorder.none,
                        hintStyle: TextStyle(
                          fontSize: 14,
                        )),
                    style: Theme.of(context).textTheme.bodyLarge,
                    onChanged: (text) {
                      message.value = text;
                    },
                  ),
                ),
              ),
            ),
          ),
          Divider(
            height: 1,
            color: Theme.of(context).dividerColor.withOpacity(0.1),
          ),
          Container(
            height: 52,
            padding: const EdgeInsets.only(
              left: 12,
              right: 12,
            ),
            margin: EdgeInsets.only(
              bottom: toolbarType == 'input' && keyboardHeight == 0.0
                  ? MediaQuery.of(context).padding.bottom
                  : 0,
            ),
            child: Row(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              children: [
                ToolbarIconButton(
                  onPressed: () {
                    if (toolbarType == 'emote') {
                      setState(() {
                        toolbarType = 'input';
                      });
                    }
                    FocusScope.of(context).requestFocus(replyContentFocusNode);
                  },
                  icon: const Icon(Ic


 void;
/**
  * Unmerges the part of self’s content identified by merge_id.
  * @param mergeId a merge id as returned by Gtk.UIManager.add_ui_from_string()
  */
removeUi(mergeId: number): void;
/**
  * Sets the “add_tearoffs” property, which controls whether menus generated by this Gtk.UIManager will have tearoff menu items.
  * @param addTearoffs whether tearoff menu items are added
  */
setAddTearoffs(addTearoffs: boolean): void;
/**
  * Whether tearoff menu items should be added to menus deprecated
  */
addTearoffs: boolean;
/**
  * An XML string describing the merged UI
  */
readonly ui: string;
}

import { isErrorLike } from '../util/errors'

import { parseExtensionManifestOrError } from './extensionManifest'

describe('parseExtensionManifestOrError', () => {
    test('parses valid input', () =>
        expect(parseExtensionManifestOrError('{"url":"a","activationEvents":["*"]}')).toEqual({
            url: 'a',
            activationEvents: ['*'],
        }))
    test('returns an error value for invalid JSONC', () => {
        const value = parseExtensionManifestOrError('.')
        expect(isErrorLike(value)).toBeTruthy()
    })
    test('returns an error value for valid JSONC but invalid data', () => {
        const value = parseExtensionManifestOrError('{"url":"a"}')
        expect(isErrorLike(value)).toBeTruthy()
    })
    test('invalid categories', () => {
        const value = parseExtensionManifestOrError('{"categories":[1]}')
        expect(isErrorLike(value)).toBeTruthy()
    })
    test('invalid tags', () => {
        const value = parseExtensionManifestOrError('{"tags":[1]}')
        expect(isErrorLike(value)).toBeTruthy()
    })
})
var message = "Hello World"
console.log(message)

function aaa(a:any[],b:number) {
    console.log(a.length+b);
}
aaa([1, 2, 3,], 8)

const roundDown = (num: number): number => {
  const splitNumbers: number[] = num.toString().split('.').map(n => parseInt(n, 10));
  if (splitNumbers.length < 1) return num;
  const [wholeNumber, fractionNumber] = splitNumbers;
  const isNegative: boolean = num < 0;
  return (fractionNumber >= 0 && isNegative) ? wholeNumber - 1 : wholeNumber;
};

export default (oldVal: string): string => {
  const parsedVal: number = parseInt(oldVal, 10);
  const calVal: number = (parsedVal - 10) / 2;
  return roundDown(calVal).toString();
};
import type { TSESLint, TSESTree } from '@typescript-eslint/utils';
import {
  type CallExpressionWithSingleArgument,
  DescribeAlias,
  type StringNode,
  TestCaseName,
  createRule,
  getStringValue,
  isStringNode,
  isTypeOfJestFnCall,
  parseJestFnCall,
} from './utils';

type IgnorableFunctionExpressions =
  | TestCaseName.it
  | TestCaseName.test
  | DescribeAlias.describe;

const hasStringAsFirstArgument = (
  node: TSESTree.CallExpression,
): node is CallExpressionWithSingleArgument<StringNode> =>
  node.arguments[0] && isStringNode(node.arguments[0]);

const populateIgnores = (ignore: readonly string[]): string[] => {
  const ignores: string[] = [];

  if (ignore.includes(DescribeAlias.describe)) {
    ignores.push(...Object.keys(DescribeAlias));
  }
  if (ignore.includes(TestCaseName.test)) {
    ignores.push(
      ...Object.keys(TestCaseName).filter(k => k.endsWith(TestCaseName.test)),
    );
  }
  if (ignore.includes(TestCaseName.it)) {
    ignores.push(
      ...Object.keys(TestCaseName).filter(k => k.endsWith(


QUnit.test(
    "Link preview and message should not be squashed when there is more than the link in the message",
    async () => {
        const pyEnv = await startServer();
        const linkPreviewId = pyEnv["mail.link.preview"].create({
            image_mimetype: "image/jpg",
            source_url:
                "https://upload.wikimedia.org/wikipedia/commons/thumb/4/41/Siberischer_tiger_de_edit02.jpg/290px-Siberischer_tiger_de_edit02.jpg",
        });
        const channelId = pyEnv["discuss.channel"].create({ name: "wololo" });
        pyEnv["mail.message"].create({
            body: "http://linkPreview not empty",
            link_preview_ids: [linkPreviewId],
            message_type: "comment",
            model: "discuss.channel",
            res_id: channelId,
        });
        const { openDiscuss } = await start();
        openDiscuss(channelId);
        await contains(".o-mail-Message-bubble");
    }
);

QUnit.test("Sending message with link preview URL should show a link preview card", async () => {
    const pyEnv = await startServer();
    const channelId = pyEnv["discuss.channel"].create({ name: "wololo" });
    const { openDiscuss } = await start();
    openDiscuss(channelId);
    await insertText(".o-mail-Composer-input", "https://make-link-preview.com");
    await click("button:not([disabled])", { text: "Send" });
    await contains(".o-mail-LinkPreviewCard");
});

QUnit.test("Delete all link previews at once", async () => {
    const pyEnv = await startServer();
    const linkPreviewIds = pyEnv["mail.link.preview"].create([
        {
            og_description: "Description",
            og_title: "Article title 1",
            og_type: "article",
            source_url: "https://www.odoo.com",
        },
        {
            image_mimetype: "image/jpg",
            source_url:
                "https://upload.wikimedia.org/wikipedia/commons/thumb/4/41/Siberischer_tiger_de_edit02.jpg/290px-Siberischer_tiger_de_edit02.jpg",
        },
    ]);
    const channelId = pyEnv["discuss.channel"].create({ name: "wololo" });
    pyEnv["mail.message"].create({
        body: "not empty",
        link_preview_ids: linkPreviewIds,
        message_type: "comment",
        model: "discuss.channel",
        res_id: channelId,
    });
    const { openDiscuss } = await start();
    openDiscuss(channelId);
    await click(".o-mail-LinkPreviewCard button[aria-label='Remove']");
    await click(".modal-footer button", { text: "Delete all previews" });
    await contains(".o-mail-LinkPreviewCard", { count: 0 });
    await contains(".o-mail-LinkPreviewImage", { count: 0 });
});
/* @odoo-module */

import {
    addFakeModel,
    addModelNamesToFetch,
    insertModelFields,
    insertRecords,
} from "@bus/../tests/helpers/model_definitions_helpers";
import { TEST_GROUP_IDS } from "@bus/../tests/helpers/test_constants";

import { Command } from "@mail/../tests/helpers/command";

import { uniqueId } from "@web/core/utils/functions";

//--------------------------------------------------------------------------
// Models
//--------------------------------------------------------------------------

addModelNamesToFetch([
    "mail.activity",
    "mail.activity.type",
    "discuss.channel",
    "discuss.channel.member",
    "discuss.channel.rtc.session",
    "discuss.gif.favorite",
    "discuss.voice.metadata",
    "mail.compose.message",


s://`) to use when redirecting requests. The default is the protocol that is used in the original request.
        /// </summary>
        public readonly string? RedirectAllRequestsTo;
        /// <summary>
        /// A json array containing [routing rules](https://cloud.yandex.com/docs/storage/s3/api-ref/hosting/upload#request-scheme) describing redirect behavior and when redirects are applied.
        ///
        /// The `CORS` object supports the following:
        /// </summary>
        public readonly string? RoutingRules;

        [OutputConstructor]
        private StorageBucketWebsite(
            string? errorDocument,

            string? indexDocument,

            string? redirectAllRequestsTo,

            string? routingRules)
        {
            ErrorDocument = errorDocument;
            IndexDocument = indexDocument;
            RedirectAllRequestsTo = redirectAllRequestsTo;
            RoutingRules = routingRules;
        }
    }
}


History[sName][_SKM._guild];
	-- if ((sGuildName ~= nil) and (sGuildName ~= "not in a guild")) then
	if ((sGuildName ~= nil) and (sGuildName ~= "")) then
		SkM_UpdateGuildHistory(sGuildName, sDate, sName);
	end

	-- 09/04/2005 16:46:43 End of modification

	SkM_UpdateEnemy_SetLastView(sName, sDate);  -- 09/04/2005 18:30:05 PIng: Moved in order to have the information available for guild update

end

function SkM_UpdateEnemyRank(sName, sRank)
	SkM_UpdateEnemyHistory();

	SKM_Data[_RealmName][_PlayerName].EnemyHistory[sName][_SKM._rank] = sRank;
end

function SkM_UpdateEnemy_SetGuild(sName, sGuild)
	SkM_UpdateEnemyHistory();

	--if (not SKM_Data[_RealmName][_PlayerName].EnemyHistory[sName][_SKM._guild]) then
		SKM_Data[_RealmName][_PlayerName].EnemyHistory[sName][_SKM._guild] = sGuild;
	--end
end

function SkM_UpdateGuild_SetLastView(sGuildName, sDate, sPlayerName)
	SKM_Data[_RealmName][_PlayerName].GuildHistory[sGuildName][_SKM._lastView] = sDate;
	SKM_Data[_RealmName][_PlayerName].GuildHistory[sGuildName][_SKM._lastPlayerViewed] = sPlayerName;
end

function SkM_UpdateGuild_IncrCounter(sGuildName, sType, iValue)
	SKM_Data[_RealmName][_PlayerName].GuildHistory[sGuildName][sType] = ifnil(SKM_Data[_RealmName][_PlayerName].GuildHistory[sGuildName][sType], 0) + iValue;
end

function SkM_UpdateGuild_IncrPlayerKill(sGuildName, iValue)
	SkM_UpdateGuild_IncrCounter(sGuildName, _SKM._playerKill, iValue);
end

function SkM_UpdateGuild_IncrPlayerFullKill(sGuildName, iValue)
	SkM_UpdateGuild_IncrCounter(sGuildName, _SKM._playerFullKill, iValue);
end

function SkM_UpdateGuild_IncrPlayerAssistKill(sGuildName, iValue)
	SkM_UpdateGuild_IncrCounter(sGuildName, _SKM._playerAssistKill, iValue);
end

function SkM_UpdateGuild_IncrKillPlayer(sGuildName, iValue, bBattleground)
	local sType;
	if (bBattleground) then
		sType = _SKM._enemyKillBG;
	else
		sType = _SKM._enemyKillPlayer;
	end
	SkM_UpdateGuild_IncrCounter(sGuildName, sType, iValue);
end

function SkM_UpdateGuild_IncrHonorKill(sGuildName, iValue)
	SkM_UpdateGuild_IncrCounter(sGuildName, _SKM._honorKill, iValue);
end

function SkM_UpdateGuild_IncrMeet(sGuildName, iValue)
	SkM_UpdateGuild_IncrCounter(sGuildName, _SKM._meetCount, iValue);
end

-- --------------------------------------------------------------------------------------

-- SkM_UpdateGuildHistory
-- --------------------------------------------------------------------------------------
-- Update guild information when receiving an update of a enemy from this guild
-- --------------------------------------------------------------------------------------
function SkM_UpdateGuildHistory(sGuildName, sDate, sName)
	local FName = "SkM_UpdateGuildHistory";

	SkM_Trace(FName, 2, "Guild Name : "..sGuildName..", Date : ".. sDate.. ", Player Name : "..sName);


/*
 * Copyright © 2022 Rémi Denis-Courmont.
 *
 * This file is part of Librempeg
 *
 * Librempeg is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 *
 * Librempeg 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 General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with Librempeg; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */

#include "asm.S"

func ff_vector_fmul_window_scaled_rvv, zve64x, zba
        lpad    0
        csrwi   vxrm, 0
        vsetvli t0, zero, e16, m1, ta, ma
        sh2add  a2, a4, a2
        vid.v   v0
        sh3add  t3, a4, a3
        vadd.vi v0, v0, 1
        sh2add  t0, a4, a0
1:
        vsetvli t2, a4, e16, m1, ta, ma
        slli    t4, t2, 2
        slli    t1, t2, 1
        vrsub.vx v2, v0, t2
        sub     t3, t3, t4
        vsetvli zero, zero, e32, m2, ta, ma
        sub     a2, a2, t4
        vle32.v v8, (t3)
        sub     t0, t0, t1
        vle32.v v4, (a2)
        sub     a4, a4, t2
        vrgatherei16.vv v28, v8, v2
        vle32.v v16, (a1)
        add     a1, a1, t4
        vrgatherei16.vv v20, v4, v2
        vle32.v v24, (a3)
        add     a3, a3, t4
        vwmul.vv v12, v16, v28
        vwmul.vv v8, v16, v24
        // vwnmsac.vv does _not_ exist so multiply & subtract separately
        vwmul.vv v4, v20, v24
        vwmacc.vv v8, v20, v28
        vsetvli zero, zero, e64, m4, ta, ma
        vsub.vv v12, v12, v4
        vsetvli zero, zero, e32, m2, ta, ma
        vnclip.wi v16, v8, 31
        vnclip.wi v20, v12, 31
        vsetvli zero, zero, e16, m1, ta, ma
        vnclip.wx v8, v16, a5
        vnclip.wx v12, v20, a5
        vrgatherei16.vv v16, v8, v2
        vse16.v v12, (a0)
        add     a0, a0, t1
        vse16.v v16, (t0)
        bnez    a4, 1b

        ret
endfunc

func ff_vector_fmul_window_fixed_rvv, zve64x, zba
        lpad    0
        csrwi   vxrm, 0
        vsetvli t0, zer


c,+
	ld hl,@sprites2
+
	jp addSpritesToOam_withOffset

@offsets:
	.db $30 $20
	.db $30 $38
	.db $40 $48
	.db $58 $48
	.db $68 $38
	.db $68 $20
	.db $58 $10
	.db $40 $10
	.db $28 $70
	.db $58 $70
	.db $70 $70

@sprites1:
	.db $02
	.db $00 $00 $0c $22
	.db $00 $18 $0c $02

@sprites2:
	.db $02
	.db $00 $00 $0c $22
	.db $00 $28 $0c $02

; For some reason, ages uses a different row to display the numbers for seed counts?
.ifdef ROM_AGES
	.define NUMBER_OFFSET $20
.else; ROM_SEASONS
	.define NUMBER_OFFSET $10
.endif

;;
func_02_5a35:
	ldde $05, $00

.ifdef ROM_AGES
	call cpInventorySelectedItemToHarp
	jr nz,+
	ldde $03, $05
+
.endif

	; d = maximum number of options
	; e = first bit to check in wSeedsAndHarpSongsObtained

	ld b,d
	ld d,$00
@next:
	push bc
	ld a,e
	ld hl,wSeedsAndHarpSongsObtained
	call checkFlag
	jr z,@dontHaveSubItem

	push de
	ld a,d
	call func_02_5afc
	ld a,e
	ld hl,seedAndHarpSpriteTable
	rst_addAToHl
	ld a,(hl)
	rst_addAToHl
	call addSpritesToOam_withOffset
	pop de

.ifdef ROM_AGES
	; If this is for the harp, skip over some of the following code
	ld a,e
	cp $05
	jr nc,@seedOnlyCodeDone
.endif

; Seed-only code (for seed satchel, seed shooter)
	ld a,e
	ld hl,wNumEmberSeeds
	rst_addAToHl
	ld b,(hl)
	ld a,(wInventory.cbb8)
	ld hl,table_5ae5-4
	rst_addDoubleIndex
	ldi a,(hl)
	ld h,(hl)
	ld l,a
	ld a,d
	rst_addAToHl
	ld c,(hl)
	ld hl,w4TileMap+$c0
	ld a,(wInventorySubmenu0CursorPos)
	cp $08
	jr nc,+
	ld hl,w4TileMap+$160
+
	ld a,c
	rst_addAToHl
	ld a,b
	and $f0
	swap a
	add NUMBER_OFFSET
	ldi (hl),a
	ld a,b
	and $0f
	add NUMBER_OFFSET
	ldd (hl),a

@seedOnlyCodeDone:
	inc d

@dontHaveSubItem:
	inc e
	pop bc
	dec b
	jr nz,@next

	ld a,(wTmpcbb5)
	call func_02_5afc
	ld hl,@cursorSprite
	jp addSpritesToOam_withOffset

.undefine NUMBER_OFFSET

; Sprite for cursor in submenus
@cursorSprite:
	.db $01
	.db $28 $0c $0e $03

seedAndHarpSpriteTable:
	dbrel @sprite0
	dbrel @sprite1
	dbrel @sprite2
	dbrel @sprite3
	dbrel @sprite4

.ifdef ROM_AGES
	dbrel @sprite5
	dbre


attachment_details .attachment-alt-text{margin-bottom:5px}.wp_attachment_details #attachment_alt{max-width:500px;height:3.28571428em}.wp_attachment_details .attachment-alt-text-description{margin-top:5px}.wp_attachment_details label[for=content]{font-size:13px;line-height:1.5;margin:1em 0}.wp_attachment_details #attachment_caption{height:4em}.describe .image-editor{vertical-align:top}.imgedit-wrap{position:relative;padding-top:10px}.image-editor fieldset,.image-editor p{margin:8px 0}.image-editor legend{margin-bottom:5px}.describe .imgedit-wrap .image-editor{padding:0 5px}.wp_attachment_holder div.updated{margin-top:0}.wp_attachment_holder .imgedit-wrap>div{height:auto}.imgedit-panel-content{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:20px}.imgedit-settings{max-width:240px}.imgedit-group-controls>*{display:none}.imgedit-panel-active .imgedit-group-controls>*{display:block}.wp_attachment_holder .imgedit-wrap .image-editor{float:left;width:250px}.image-editor input{margin-top:0;vertical-align:middle}.imgedit-wait{position:absolute;top:0;bottom:0;width:100%;background:#fff;opacity:.7;display:none}.imgedit-wait:before{content:"";display:block;width:20px;height:20px;position:absolute;right:50%;top:50%;margin:-10px -10px 0 0;background:transparent url(../images/spinner.gif) no-repeat center;background-size:20px 20px;transform:translateZ(0)}.no-float{float:none}.image-editor .disabled,.media-disabled{color:#a7aaad}.A1B1{overflow:hidden}.A1B1 .button,.wp_attachment_image .button{float:right}.no-js .wp_attachment_image .button{display:none}.A1B1 .spinner,.wp_attachment_image .spinner{float:right}.imgedit-menu .note-no-rotate{clear:both;margin:0;padding:1em 0 0}.image-editor .imgedit-menu .button{display:inline-block;width:auto;min-height:28px;font-size:13px;line-height:2;padding:0 10px}.imgedit-menu .button:after,.imgedit-menu .button:before{font:normal 16px/1 dashicons;margin-left:8px;speak:never;vertical-align:middle;position:relative;top:-2px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.imgedit-menu .imgedit-rotate.button:after{content:'\f140';margin-right:2px;margin-left:0}.imgedit-menu .imgedit-rotate.button[aria-expanded=true]:after{content:'\f142'}.imgedit-menu .button.disabled{color:#a7aaad;border-color:#dcdcde;background:#f6f7f7;box-shadow:none;text-shadow:0 1px 0 #fff;cursor:default;transform:none}.imgedit-crop:before{content:"\f165"}.imgedit-scale:before{content:"\f211"}.imgedit-rotate:before{content:"\f167"}.imgedit-undo:before{content:"\f171"}.imgedit-redo:before{content:"\f172"}.imgedit-crop-wrap{position:relative}.imgedit-crop-wrap img{background-image:linear-gradient(-45deg,#c3c4c7 25%,transparent 25%,transparent 75%,#c3c4c7


strong>End

<title>The One With the Lesbian Wedding</title>

The One With the Lesbian Wedding

Originally written by Doty Abrams

Transcribed by Mindy Mattingly Phillips

[at Ross's. Carol and Susan are picking Ben up]

ROSS: Ok. Here's his diaper bag, and his uh, Mr. Winky, and uh...oh, him. Hi!

CAROL: So how did everything go?

ROSS: Oh, great. Great. There was a projectile, uh, throwing up incident, but he
started it.

CAROL: Well, we've gotta go.

ROSS: Ok.

SUSAN: [clears her throat]

CAROL: Oh, right. Um, I've got some news. It's about us.

ROSS: Oh, you and me?

CAROL: Uh, no, Susan and me.

SUSAN: The other us.

ROSS: Ok.

CAROL: We're uh, we're getting married.

ROSS: As in, "I now pronounce you wife and wife" married?

CAROL: Anyway, we'd like you to come, but we totally understand if you don't want to.

ROSS: Why wouldn't I want to come? I had fun at the first wedding.

CAROL: Look I just thought that...

ROSS: No no no, I mean, hey, why shouldn't I be happy for you? What would it say about
me if I couldn't revel in your joy? I'm revelling baby, believe me!

SUSAN: Is your finger caught in that chair?

ROSS: Mmm hmmm.

CAROL: Want us to go?

ROSS: Uh-huh.

[at Rachel and Monica's]

ROSS: This is so cool. You're actually gonna be on television.

JOEY: It really hit me last night. I'm gonna be on Days of our Lives. And then I
started thinkin' about all of u, and how these are the days of our lives..

MONICA: Yes! Carol and Susan's caterer had a mountain bike accident this weekend, and
she's in a full body cast.

ROSS, CHANDLER & JOEY: Yes!

MONICA: They want me to do it, which is really cool, seeing as I've never catered
before, and I really need the money, and this isn't a problem for you, is it?

ROSS: Would it matter?

MONICA: Oh, you are so great! [kisses him] Thank you!

JOEY: Are you really not going?

ROSS: I am really not going. I don't get it. They already live together, why do they
need to get married?

MONICA: They love each other, and they wanna celebrate that love with the people that
are close with them.

ROSS:


based. Using Beastmaster's level versus Target's level
    local pLvl = player:getMainLvl()
    --printf("player level : %u",pLvl)
    local mLvl = target:getMainLvl()
    --printf("mob level : %u",mLvl)

    -- Checking level difference between the target and the BST
    local dLvl = (mLvl - pLvl)
    --printf("level difference : %u",dLvl)

    -- Determining what level of resistance the target will have to the ability
    local resist = 0
    dLvl = (10 * dLvl) - modAcc -- merits increase accuracy by 5% per level
    if dLvl <= 0 then -- default level difference to 1 if mob is equal to the Beastmaster's level or less.
        resist = 1
    --printf("resist : %u",resist)
    else
        resist = math.random(1,(dLvl + 100)) -- calculate chance of missing based on number of levels mob is higher than you. Target gets 10% resist per level over BST
    --printf("resist : %u",resist)
    end

    -- Adjusting duration based on resistance. Only fair way I could see to do it...
    if resist >= 20 then
        if (resist / 10) >= (duration) then
            duration = (duration - math.random(1,(duration - 2)))
            --printf("Duration post resist : %u",duration)
        else
            duration = (duration - math.random(1,(resist / 10)))
            --printf("Duration post resist : %u",duration)
        end
    end

    -- execute ability based off of resistance value space reserved for resist message
    if resist <= 90 then -- still experimental. not exactly sure how to calculate hit %
        target:addStatusEffect(dsp.effect.TERROR,potency,0,duration)
    else
        -- reserved for text related to resist
    end

    return dsp.effect.TERROR
end


I.NewEventsFromMask(mask))
			}
		}
	} else {
		// if not found, convert events to allow_events
		// this happens when vault secret has not been updated since before v0.23
		events, ok := data["events"]
		if ok {
			allowEventsMask := int64(0)

			for _, element := range events.([]interface{}) {
				event, ok := element.(string)
				if ok {
					switch event {
					case constants.EventPush:
						allowEventsMask |= constants.AllowPushBranch
					case constants.EventPull:
						allowEventsMask |= constants.AllowPullOpen | constants.AllowPullReopen | constants.AllowPullSync
					case constants.EventComment:
						allowEventsMask |= constants.AllowCommentCreate | constants.AllowCommentEdit
					case constants.EventDeploy:
						allowEventsMask |= constants.AllowDeployCreate
					case constants.EventTag:
						allowEventsMask |= constants.AllowPushTag
					case constants.EventSchedule:
						allowEventsMask |= constants.AllowSchedule
					}
				}
			}

			s.SetAllowEvents(velaAPI.NewEventsFromMask(allowEventsMask))
		}
	}

	// set images if found in Vault secret
	v, ok = data["images"]
	if ok {
		images, ok := v.([]interface{})
		if ok {
			for _, element := range images {
				image, ok := element.(string)
				if ok {
					s.SetImages(append(s.GetImages(), image))
				}
			}
		}
	}

	// set name if found in Vault secret
	v, ok = data["name"]
	if ok {
		name, ok := v.(string)
		if ok {
			s.SetName(name)
		}
	}

	// set org if found in Vault secret
	v, ok = data["org"]
	if ok {
		org, ok := v.(string)
		if ok {
			s.SetOrg(org)
		}
	}

	// set repo if found in Vault secret
	v, ok = data["repo"]
	if ok {
		repo, ok := v.(string)
		if ok {
			s.SetRepo(repo)
		}
	}

	// set team if found in Vault secret
	v, ok = data["team"]
	if ok {
		team, ok := v.(string)
		if ok {
			s.SetTeam(team)
		}
	}

	// set type if found in Vault secret
	v, ok = data["type"]
	if ok {
		secretType, ok := v.(string)
		if ok {
			s.SetType(secretType)
		}
	}

	// set value if found in Vault secret
	v, ok = data["value"]
	if ok {
		value, ok := v.(string)
		if ok {
			s.SetValue(value)
		}
	}

	// set allow_command if found in Vault secret
	v, ok = data["allow_command"]
	if ok {
		command, ok := v.(bool)
		if ok {
			s.SetAllowCommand(command)
		}
	}

	// set allow_substitution if found in Vault secret
	v, ok = data["allow_substitution"]
	if ok {
		substitution, ok := v.(bool)
		if ok {
			s.SetAllowSubstitution(substitution)
		}
	} else {
		// set allow_substitution to allow_command value if not found in Vault secret
		cmd, ok := data["allow_command"]
		if ok {
			command, ok := cmd.(bool)
			if ok {
				s.SetAllowSubstitution(command)
			}
		}
	}

	// set repo_allowlist if found in Vault secret
	v, ok = data["repo_allowlist"]
	if ok {
		allowlist, ok := v.([]any)
		if ok {
			for _, element := range allowlist {
				repo, ok := element.(string)
				if ok {
					s.SetRepoAllowlist(append(s.GetRepoAllowlist(), repo))


大提高起来，许多农民由于政府逮捕了反革命分子，又加下了透雨，称为双喜临门，城镇商人纳税比过去迅速，磐石城关商人仅40分钟完成交纳任务。

   农村被管制的地富和小坏蛋都老实起来，邪气大大降低，劳动人民则喜气洋洋。

   总之，干部积极，群众高兴，敌我界限更加分明，各种工作都较前更加顺利起来。

   正如中央三次公安会议总结所指出：

   “此次镇反为各种工作创造了有利的前提条件。”

   就是这样，使新区面貌为之一新。

   （二）我们所以获得上述成绩，是由于：

   （1）毛主席和东北局的及时指导和掌握。

   （2）省、地、县各级党委根据毛主席及东北局指示精神与实际情况相结合，及时地指导检查和首长负责亲自动手。

   （3）广大干部的努力和广大人民群众的支持及积极参加。

   最主要的原因，应归功于毛主席的英明领导和及时的指导，毛主席和中央这一正确的措施，正是广大人民的迫切要求，因而使我们的工作一开始就取得各阶层人民的热烈拥护和积极的支持。

    但我们丝毫都不应骄傲，在我们的镇反工作中还存在着不少的缺点。

   1.大张旗鼓的宣传不够，许多地方害怕暴露秘密，不敢大胆地向人民群众交底交政策，而各种报刊都在公开宣传，反革命分子警觉并有准备，因此有些地方则处于被动，群众还有顾虑。

   2.侦察工作不够，主要表现在我们对现行犯，现在潜伏活动的反革命分子发现的不多，在这一方面还应引起足够的注意。

   3.有的地方发生急躁与草率从事的现象，有的县分把社会上的刑事犯及思想上有毛病的人，都列入镇反范围之内，左的情绪已在滋长，多捕人与个别的乱捕人的现象已经发生，如不很好掌握，将成群众尾巴。有


			// Log the message.
			LOG_MESSAGE
			(
				MESSAGE_TYPE_INFORMATIONAL,
				WEX::Common::String().Format
				(
					L"DXGI message (category %s, severity %s, ID %u):  %S.",
					ToString( pCurrentMessage->Category ).c_str(),
					ToString( pCurrentMessage->Severity ).c_str(),
					pCurrentMessage->ID,
					pCurrentMessage->pDescription
				)
			);

			// Delete the message buffer.
			pCurrentMessage = nullptr;

			delete [] pCurrentMessageBuffer;
			pCurrentMessageBuffer = nullptr;
		};
	};
};

///////////////////////////////////////////////////////
// Function:  SetSymbolPath
//
// Purpose:
// Set the NT symbol path to include the OSBinRoot and
// TestBinRoot paths to make finding debug symbols more
// likely in the event of a crash.
///////////////////////////////////////////////////////
HRESULT CGraphicsTAEFTest::SetSymbolPath()
{
	//
	// Initialize locals.
	//

	HRESULT hOverallResult = E_FAIL;

	WCHAR WTTSDKPath[MAX_PATH] = L"";

	WCHAR NativeOSBinRoot[MAX_PATH] = L"";
	WCHAR WoW64OSBinRoot[MAX_PATH] = L"";

	WCHAR NativeTestBinRoot[MAX_PATH] = L"";
	WCHAR WoW64TestBinRoot[MAX_PATH] = L"";

	WCHAR SymbolPath[MAX_PATH * 4] = L"";

	PWSTR lpszErrorXML = nullptr;
	PWSTR lpszOSBinRoot = nullptr;
	PWSTR lpszWoW64OSBinRoot = nullptr;
	PWSTR lpszTestBinRoot = nullptr;
	PWSTR lpszWoW64TestBinRoot = nullptr;

	HMODULE hWTTSDK = nullptr;

	typedef PWSTR (*PF_GetParameterValue)
	(
		PCWSTR pcszParamName,
		PWSTR * ppszErrorXML
	);
	PF_GetParameterValue pWTTSDK_GetParameterValue = nullptr;

	typedef void (*PF_WTTFreeMemory)
	(
		PVOID pMemory
	);
	PF_WTTFreeMemory pWTTSDK_WTTFreeMemory = nullptr;

	typedef void (*PF_WTTSDKCleanup)();
	PF_WTTSDKCleanup pWTTSDK_WTTSDKCleanup = nullptr;

	//
	// Load WTTSDK.dll.
	//

	hWTTSDK = LoadLibraryExW
	(
		L"WTTSDK.dll",
		nullptr,
		0
	);

	if ( hWTTSDK == nullptr )
	{
		//
		// Get the WTT client directory.
		//

		DWORD nWTTSDKPath = GetEnvironmentVariableW
		(
			L"WTTBin",
			WTTSDKPath,
			ARRAYSIZE( WTTSDKPath )
		);

		if ( nWTTSDKPath == 0 )
		{
			LOG_MESSAGE
			(
				MESSAGE_TYPE_WARNING,
				L"GetEnvironmentVariable on WTTBin failed."
			);
		}
		else
		{
			//
			// Concatenate the DLL name to the path.
			//

			StringCchCatW
			(
				WTTSDKPath,
				ARRAYSIZE(WTTSDKPath),
				L"\\WTTSDK.dll"
			);

			//
			// Try to load WTTSDK.dll again.
			//

			hWTTSDK = LoadLibraryExW
			(
				WTTSDKPath,
				nullptr,
				0
			);
		};
	};

	if ( hWTTSDK != nullptr )
	{
		//
		// Find the WTTSDK.dll entry points.
		//

		pWTTSDK_GetParameterValue = reinterpret_cast< PF_GetParameterValue >
		(
			GetProcAddress
			(
				hWTTSDK,


 default: // Avoid compiler warnings.
        YYCASE_ (0, YY_("syntax error"));
        YYCASE_ (1, YY_("syntax error, unexpected %s"));
        YYCASE_ (2, YY_("syntax error, unexpected %s, expecting %s"));
        YYCASE_ (3, YY_("syntax error, unexpected %s, expecting %s or %s"));
        YYCASE_ (4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
        YYCASE_ (5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
#undef YYCASE_
      }

    std::string yyres;
    // Argument number.
    std::ptrdiff_t yyi = 0;
    for (char const* yyp = yyformat; *yyp; ++yyp)
      if (yyp[0] == '%' && yyp[1] == 's' && yyi < yycount)
        {
          yyres += symbol_name (yyarg[yyi++]);
          ++yyp;
        }
      else
        yyres += *yyp;
    return yyres;
  }

  const short EvalParser::yypact_ninf_ = -173;

  const signed char EvalParser::yytable_ninf_ = -1;

  const short
  EvalParser::yypact_[] =
  {
     -45,   175,   236,     4,   175,   175,    61,   101,   107,    25,
      26,    82,   102,   149,   159,   179,   182,   192,   198,   205,
     206,   210,   211,   213,   227,   228,   232,   136,   156,   157,
     240,  -173,  -173,  -173,  -173,  -173,   134,     7,  -173,   236,
     151,   229,   233,   160,   164,   126,  -173,   113,     1,  -173,
     124,   185,   186,   180,   120,    79,   236,   236,   236,   175,
     175,   236,   236,   236,   236,   236,   236,   236,   236,   236,
     236,   -33,   -35,   193,   -35,   194,   188,  -173,   175,  -173,
     175,   236,   236,     2,   124,   185,   186,   -35,   -35,  -173,
    -173,  -173,  -173,   238,  -173,   239,  -173,   242,   254,  -173,
    -173,  -173,  -173,  -173,  -173,  -173,  -173,  -173,  -173,  -173,
    -173,  -173,  -173,  -173,   152,   155,   158,    68,    84,   161,
       3,     5,     6,     8,     9,    10,    11,    12,    16,  -173,
    -173,  -173,  -173,  -173,   243,  -173,   244,  -173,   224,   175,
     259,   175,   125,   126,  -173,   248,   249,   250,   251,   252,
     255,   256,   258,  -173,   225,   236,   236,  -173,   236,   236,
    -173,  -173,  -173,  -173,  -173,  -173,  -173,  -173,  -173,   273,
     276,   236,  -173,    91,   277,   278,   279,   280,   281,    74,
     106,    88,  -173,   265,   165,    28,   236,   166,    29,   -19,
      18,    30,    95,   116,   114,   246,   260,   290,  -173,  -173,
    -173,  -173,  -173,  -173,   291,  -173,  -173,  -173,    -8,   245,
    -173,   195,   236,  -173,  -173,   292,   293,  -173,  -173,   295,
     296,   297,   185,   185,  -173,  -173,   311,  -173,   312,  -173,
      31,   253,   185,   185,   185,   185,   299,   300,  -173,  -173,
     236,  -173,   302,   303,   304,   305,   306,   307,   308,    32,
    -173,   309,   310,   313,   314,   138,   144,  -173,   150,   116,
     116,


NE_YEAR = IS_PROD ? 31536000000 : 0;
const ONE_WEEK = IS_PROD ? 604800000 : 0;
const BASE_DIR = path.join(__dirname, '/../../..');

// @TODO refactor so every file is hashed
export default function staticMiddleware (expressApp) {
  /* Expose static files for the client
     These files are processed by Webpack and the filenames are hashed
     This allows them to be cached for one year since the filename changes in case the file changes.
  */
  expressApp.use('/static/js', express.static(`${BASE_DIR}/website/client/dist/static/js`, { maxAge: ONE_YEAR }));
  expressApp.use('/static/css', express.static(`${BASE_DIR}/website/client/dist/static/css`, { maxAge: ONE_YEAR }));
  expressApp.use('/static/svg', express.static(`${BASE_DIR}/website/client/dist/static/svg`, { maxAge: ONE_YEAR }));
  expressApp.use('/static/img', express.static(`${BASE_DIR}/website/client/dist/static/img`, { maxAge: ONE_YEAR }));
  expressApp.use('/assets', express.static(`${BASE_DIR}/website/client/dist/assets`, { maxAge: ONE_YEAR }));

  /* Expose other static files (audio, emails images, ...)
     These files are not processed by Webpack but they change very rarely.
     So we still cache them for 1 week.
  */
  expressApp.use('/static/audio', express.static(`${BASE_DIR}/website/client/dist/static/audio`, { maxAge: ONE_WEEK }));
  expressApp.use('/static/emails', express.static(`${BASE_DIR}/website/client/dist/static/emails`, { maxAge: ONE_WEEK }));
  expressApp.use('/static/icons', express.static(`${BASE_DIR}/website/client/dist/static/icons`, { maxAge: ONE_WEEK }));
  expressApp.use('/static/merch', express.static(`${BASE_DIR}/website/client/dist/static/merch`, { maxAge: ONE_WEEK }));
  expressApp.use('/static/presskit', express.static(`${BASE_DIR}/website/client/dist/static/presskit`, { maxAge: ONE_WEEK }));
  expressApp.use('/static/npc', express.static(`${BASE_DIR}/website/client/dist/static/npc`, { maxAge: ONE_WEEK }));

  /* The remaining files are not cached yet. */


;
		}
	}

	tr.selected {
		td.select-checkbox,
		th.select-checkbox {
			&:after {
				content: '\2714';

				margin-top: -11px;
				margin-left: -4px;

				text-align: center;
				text-shadow:
					1px 1px #B0BED9,
					-1px -1px #B0BED9,
					1px -1px #B0BED9,
					-1px 1px #B0BED9;
			}
		}
	}
}

div.dataTables_wrapper {
	span.select-info,
	span.select-item {
		margin-left: 0.5em;
	}
}

@media screen and (max-width: 640px) {
	div.dataTables_wrapper {
		span.select-info,
		span.select-item {
			margin-left: 0;
			display: block;
		}
	}
}/*!
 *  Font Awesome 4.6.0 by @davegandy - http://fontawesome.io - @fontawesome
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.6.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.6.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.6.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.6.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.6.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.6.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)


.new("Order Acknowledgment Strike Price Exists", "cboe.bzx.options.orderentry.boe.v2.10.orderacknowledgmentstrikepriceexists", ftypes.UINT8, {[1]="Yes",[0]="No"}, base.DEC, 0x02)
omi_cboe_bzx_options_orderentry_boe_v2_10.fields.order_acknowledgment_sub_liquidity_indicator_exists = ProtoField.new("Order Acknowledgment Sub Liquidity Indicator Exists", "cboe.bzx.options.orderentry.boe.v2.10.orderacknowledgmentsubliquidityindicatorexists", ftypes.UINT8, {[1]="Yes",[0]="No"}, base.DEC, 0x01)
omi_cboe_bzx_options_orderentry_boe_v2_10.fields.order_acknowledgment_symbol_exists = ProtoField.new("Order Acknowledgment Symbol Exists", "cboe.bzx.options.orderentry.boe.v2.10.orderacknowledgmentsymbolexists", ftypes.UINT8, {[1]="Yes",[0]="No"}, base.DEC, 0x01)
omi_cboe_bzx_options_orderentry_boe_v2_10.fields.order_acknowledgment_time_in_force_exists = ProtoField.new("Order Acknowledgment Time In Force Exists", "cboe.bzx.options.orderentry.boe.v2.10.orderacknowledgmenttimeinforceexists", ftypes.UINT8, {[1]="Yes",[0]="No"}, base.DEC, 0x20)
omi_cboe_bzx_options_orderentry_boe_v2_10.fields.order_acknowledgment_working_price_exists = ProtoField.new("Order Acknowledgment Working Price Exists", "cboe.bzx.options.orderentry.boe.v2.10.orderacknowledgmentworkingpriceexists", ftypes.UINT8, {[1]="Yes",[0]="No"}, base.DEC, 0x20)
omi_cboe_bzx_options_orderentry_boe_v2_10.fields.order_cancelled_account_exists = ProtoField.new("Order Cancelled Account Exists", "cboe.bzx.options.orderentry.boe.v2.10.ordercancelledaccountexists", ftypes.UINT8, {[1]="Yes",[0]="No"}, base.DEC, 0x01)
omi_cboe_bzx_options_orderentry_boe_v2_10.fields.order_cancelled_attributed_quote_exists = ProtoField.new("Order Cancelled Attributed Quote Exists", "cboe.bzx.options.orderentry.boe.v2.10.ordercancelledattributedquoteexists", ftypes.UINT8, {[1]="Yes",[0]="No"}, base.DEC, 0x08)
omi_cboe_bzx_options_orderentry_boe_v2_10.fields.order_cancelled_base_liquidity_indicator_exists = ProtoField.new("Order Cancelled Base Liquidity Indicator Exists", "cboe.bzx.options.orderentry.boe.v2.10.ordercancelledbaseliquidityindicatorexists", ftypes.UINT8, {[1]="Yes",[0]="No"}, base.DEC, 0x40)
omi_cboe_bzx_options_orderentry_boe_v2_10.fields.order_cancelled_bitfield_count = ProtoField.new("Order Cancelled Bitfield Count", "cboe.bzx.options.orderentry.boe.v2.10.ordercancelledbitfieldcount", fty