geDate);
        return changeDate;
      }
    }
  }

  /**
   * 每次调用sequence加1
   * @type {()=>number}
   */
  static getSequence = (() => {
    let sequence = 1;
    return () => {
      return ++sequence;
    };
  })();

  /**
   * 返回字符串长度，中文计数为2
   * @param str
   * @returns {number}
   */
  static strLength(str: string): number {
    let len = 0;
    for (let i = 0, length = str.length; i < length; i++) {
      str.charCodeAt(i) > 255 ? len += 2 : len++;
    }
    return len;
  }

  /**
   * 把url中的双斜杠替换为单斜杠
   * 如:http://localhost:8080//api//demo.替换后http://localhost:8080/api/demo
   * @param url
   * @returns {string}
   */
  static formatUrl(url = ''): string {
    let index = 0;
    if (url.startsWith('http')) {
      index = 7;
    }
    return url.substring(0, index) + url.substring(index).replace(/\/\/*/g, '/');
  }

  static sessionStorageGetItem(key: string) {
    const jsonString = sessionStorage.getItem(key);
    if (jsonString) {
      return JSON.parse(jsonString);
    }
    return null;
  }

  static sessionStorageSetItem(key: string, value: any) {
    sessionStorage.setItem(key, JSON.stringify(value));
  }

  static sessionStorageRemoveItem(key: string) {
    sessionStorage.removeItem(key);
  }

  static sessionStorageClear() {
    sessionStorage.clear();
  }

  static localStorageGetItem(key: string) {
    const jsonString = window.localStorage.getItem(key);
    if (jsonString) {
      return JSON.parse(jsonString);
    }
    return null;
  }

  static localStorageSetItem(key: string, value: any) {
    window.localStorage.setItem(key, JSON.stringify(value));
  }

  static localStorageRemoveItem(key: string) {
    window.localStorage.removeItem(key);
  }

  static localStorageClear() {
    window.localStorage.clear();
  }

  /** 产生一个随机的32位长度字符串 */
  static uuid() {
    let text = '';
    const possible = 'abcdef0123456789';
    for (let i = 0; i < 19; i++) {
      text += possible.charAt(Math.floor(Math.random() * possible.length));
    }
    return text + new Date().getTime();
  }
  /** 判断是否超链接 */
  static isUrl(str) {
    let reg = /(http:\/\/|https:\/\/)((\w|=|\?|\.|\/|&|-)+)/g;
    let objExp = new RegExp(reg);
    return objExp.test(str);
  }
  // base64加密
  static base64encoder(context): any {
    // tslint:disable-next-line:prefer-const
    let encoder = new Buffer(context).toString('base64');
    return encoder;
  }
  // base64解密
  static base64decoder(context): any {
    // tslint:disable-next-line:prefer-const
    let decoder = new Buffer(context, 'base64').toString();
    return decoder;
  }

  /** 乘法 */
  static accMul(arg1, arg2) {
    var m = 0, s1 = arg1.toString(), s2 = arg2.toString();
    try {
      m += s1.split(".")[1].length;
    }
    catch (e) {
    }
    try {
      m += s2.split(".")[1].length


        /// public static final [SO_LINGER](https://developer.android.com/reference/org/apache/http/params/CoreConnectionPNames.html#SO_LINGER)
        #[deprecated] pub const SO_LINGER : &'static str = "http.socket.linger";

        /// public static final [SO_TIMEOUT](https://developer.android.com/reference/org/apache/http/params/CoreConnectionPNames.html#SO_TIMEOUT)
        #[deprecated] pub const SO_TIMEOUT : &'static str = "http.socket.timeout";

        /// public static final [STALE_CONNECTION_CHECK](https://developer.android.com/reference/org/apache/http/params/CoreConnectionPNames.html#STALE_CONNECTION_CHECK)
        #[deprecated] pub const STALE_CONNECTION_CHECK : &'static str = "http.connection.stalecheck";

        /// public static final [TCP_NODELAY](https://developer.android.com/reference/org/apache/http/params/CoreConnectionPNames.html#TCP_NODELAY)
        #[deprecated] pub const TCP_NODELAY : &'static str = "http.tcp.nodelay";
    }
}
pub use crate::wasmer_inner::wasmer_engines::{Dylib, Universal};
// Deprecated engines.
pub use crate::wasmer_inner::wasmer_engines::{Native, JIT};
<gh_stars>1-10
//! Public key accelerator.

#![cfg_attr(not(test), no_std)]
#![deny(missing_docs)]

cfg_if::cfg_if! {
    if #[cfg(feature = "stm32wl5x_cm0p")] {
        /// Peripheral access crate.
        pub use stm32wl::stm32wl5x_cm0p as pac;
    } else if #[cfg(feature = "stm32wl5x_cm4")] {
        /// Peripheral access crate.
        pub use stm32wl::stm32wl5x_cm4 as pac;
    } else if #[cfg(feature = "stm32wle5")] {
        /// Peripheral access crate.
        pub use stm32wl::stm32wle5 as pac;
    } else {
        core::compile_error!("You must select your hardware with a feature flag");
    }
}

use core::{
    mem::size_of,
    ptr::{read_volatile, write_volatile},
    sync::atomic::{compiler_fence, Ordering::SeqCst},
};

/// PKA errors.
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
enum Error {
    /// Address access is out of range (unmapped address).
    Address,
    /// An AHB access to the PKA RAM occurred while the PKA core was computing
    /// and using its internal RAM.
    /// (AHB PKA_RAM access are not allowed while PKA operation is in progress).
    Ram,
}

/// Errors from an ECDSA signing operation.
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum EcdsaSignError {
    /// Address access is out of range (unmapped address).
    Address,
    /// An AHB access to the PKA RAM occurred while the PKA core was computing
    /// and using its internal RAM.
    /// (AHB PKA_RAM access are not allowed while PKA operation is in progress).
    Ram,
    /// Signature part R is equal to 0.
    Rzero,
    /// Signature part S is equal to 0.
    Szero,
    /// Unknown result code.
    Unknown {
        /// Unknown result code bits.
        bits: u32,
    },
}

impl From<Error> for EcdsaSignError {
    fn from(pka: Error) -> Self {
        match pka {
            Error::Address => EcdsaSignError::Address,
            Error::Ram => EcdsaSignError::Ram,


.colorScheme.primary
}package com.eternaljust.msea.ui.page.node.tag

import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import androidx.paging.PagingConfig
import androidx.paging.PagingData
import com.eternaljust.msea.utils.HTMLURL
import com.eternaljust.msea.utils.NetworkUtil
import com.eternaljust.msea.utils.configPager
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.receiveAsFlow
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import java.util.UUID

class TagListViewModel : ViewModel() {
    private var tid: String = ""

    private val pager by lazy {
        configPager(PagingConfig(pageSize = 30, prefetchDistance = 1)) {
            loadData(tid = tid, page = it)
        }
    }

    var viewStates by mutableStateOf(TagListViewState(pagingData = pager))
        private set

    private val _viewEvents = Channel<TagListViewEvent>(Channel.BUFFERED)
    val viewEvents = _viewEvents.receiveAsFlow()

    fun dispatch(action: TagListViewAction) {
        when (action) {
            is TagListViewAction.PopBack -> popBack()
            is TagListViewAction.SetTid -> tid = action.id
        }
    }

    private suspend fun loadData(tid: String, page: Int) : List<TagListModel> {
        val list = mutableListOf<TagListModel>()
        if (page > 1) {
            return list
        }

        withContext(Dispatchers.IO) {
            val url = HTMLURL.TAG_LIST + "&id=$tid"
            val document = NetworkUtil.getRequest(url)
            val tr = document.selectXpath("//div[@class='bm_c']/table/tbody/tr")
            tr.forEach {
                val tag = TagListModel()

                val gif = it.selectXpath("td[@class='icn']/a/img").attr("src")
                if (gif.isNotEmpty()) {
                    tag.gif = HTMLURL.BASE + "/${gif}"
                }
                val title = it.selectXpath("th/a").text()
                if (title.isNotEmpty()) {
                    tag.title = title
                }
                val id = it.selectXpath("th/a").attr("href")
                if (id.isNotEmpty()) {
                    tag.tid = id.split("thread-").last().split("-").first()
                }
                val forum = it.selectXpath("td[@class='by']/a").text()
                if (forum.isNotEmpty()) {
                    tag.forum = forum
                }
                val fid = it.selectXpath("td[@class='by']/a").attr("href")
                println("fid---$fid")
                if (fid.isNotEmpty()) {
                    tag.fid = NetworkUtil.getFid(fid)
                }
                val name = it.selectXpath("td[@class='by'][2]/cite/a").text()
                if (name.isNotEmpty()) {
                    tag.name = name
                }
                val uid = it.selectXpath("td[@class='by'][2]/cite/a").attr("href")
                if (uid.isNotEmpty()) {
                    tag.uid = uid
                }
                val time = it.selectXpath("td[@class='by']/em/span").text()
                if (time


會設定當前登入的 user

![alt tag](https://i.imgur.com/QiDj6iM.png)

因為 One2many 比較特別, 所以我們先介紹 Many2many :laughing:

### odoo 手把手教學 - Many2many - part2

`Many2many`

* [Youtube Tutorial - odoo 手把手教學 - Many2many - part2](https://youtu.be/QeZfJqTGP-w)

要建立 Many2many 之前, 一定要先定義一個 model,

先定義 DemoTag (也請記得設定 [security/ir.model.access.csv](security/ir.model.access.csv) )

[models/models.py](models/models.py)

```python
......
class DemoTag(models.Model):
    _name = 'demo.tag'
    _description = 'Demo Tags'

    name = fields.Char(string='Tag Name', index=True, required=True)
    active = fields.Boolean(default=True, help="Set active.")
......
```

然後接著到底下 [models/models.py](models/models.py)

```python
......
class DemoExpenseTutorial(models.Model):
    _name = 'demo.expense.tutorial'
......
    # https://www.odoo.com/documentation/12.0/reference/orm.html#odoo.fields.Many2many
    # Many2many(comodel_name=<object object>, relation=<object object>, column1=<object object>, column2=<object object>, string=<object object>, **kwargs)
    #
    # relation: database table name
    #

    # By default, the relationship table name is the two table names
    # joined with an underscore and _rel appended at the end.
    # In the case of our books or authors relationship, it should be named demo_expense_tutorial_demo_tag_rel.
### odoo 手把手教學 - Many2many - part2
    tag_ids = fields.Many2many('demo.tag', 'demo_expense_tag', 'demo_expense_id', 'tag_id', string='Tges')
......
```

Many2many 比較多欄位, 我來說明一下,

`comodel_name` 為 `demo.tag` (需要對應的 model)

`relation` 為 `demo_expense_tag` (table 名稱),

Many2many 會多出一個 table, 這邊是針對 table 命名,

也就是 db 中的 table 名稱,

![alt tag](https://i.imgur.com/B7ren2r.png)

如果你沒填 `relation` 這個值, 預設的 table 名稱會是 model名稱 + comodel_name + `_rel`,

所以也就會是 `demo_expense_tutorial_demo_tag_rel`.

`column1` 為 `demo_expense_id`, `demo.expense.tutorial` table 中對應的 id.

`column2` 為 `tag_id`, `demo.tag` table 中對應的 id.

繼續看 [models/models.py](models/models.py)

```python
......
    # Related (Reference) fields (不會存在 db)
    # readonly default 為 True
    # store default 為 False
    gender = fields.Selection('Gender', related='employee_id.gender')
......
```

`


.Archer else CharacterOptions.Wizard
}

/**
 * Cria e retorna uma instância do personagem escolhido pelo usuário.
 */
private fun chooseCharacter(): Character {
    return when (getUserInputForCharacter()) {
        CharacterOptions.Archer -> Archer(100, 15, 10)
        CharacterOptions.Wizard -> Wizard(100, 15, 10)
    }
}

/**
 * Cria inimigo.
 */
private fun createEnemy(): Character = Goblin(100, 18, 5)package org.memento.di

import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import org.memento.data.datasource.AddPlanDataSource
import org.memento.data.datasource.MemberDataSource
import org.memento.data.datasource.ReqresDataSource
import org.memento.data.datasource.ScheduleDataSource
import org.memento.data.datasource.SettingDataSource
import org.memento.data.datasource.TodoDataSource
import org.memento.data.datasource.UserInfoDataSource
import org.memento.data.datasourceimpl.AddPlanDataSourceImpl
import org.memento.data.datasourceimpl.MemberDataSourceImpl
import org.memento.data.datasourceimpl.ReqresDataSourceImpl
import org.memento.data.datasourceimpl.ScheduleDataSourceImpl
import org.memento.data.datasourceimpl.SettingDataSourceImpl
import org.memento.data.datasourceimpl.TodoDataSourceImpl
import org.memento.data.datasourceimpl.UserDataSourceImpl
import javax.inject.Singleton

@Module
@InstallIn(SingletonComponent::class)
internal abstract class DataSourceModule {
    @Binds
    @Singleton
    abstract fun bindsReqresDataSource(reqresDataSourceImpl: ReqresDataSourceImpl): ReqresDataSource

    @Binds
    @Singleton
    abstract fun bindsLoginDataSource(loginDataSourceImpl: MemberDataSourceImpl): MemberDataSource

    @Binds
    @Singleton
    abstract fun bindsAddPlanDataSource(addScheduleDataSourceImpl: AddPlanDataSourceImpl): AddPlanDataSource

    @Binds
    @Singleton
    abstract fun bindsUserDataSource(userDataSourceImpl: UserDataSourceImpl): UserInfoDataSource

    @Binds
    @Singleton
    abstract fun bindsScheduleDataSource(scheduleDataSourceImpl: ScheduleDataSourceImpl): ScheduleDataSource

    @Binds
    @Singleton
    abstract fun bindsTodoDataSource(todoDataSourceImpl: TodoDataSourceImpl): TodoDataSource

    @Binds
    @Singleton
    abstract fun bindsSettingDataSource(settingDataSourceImpl: SettingDataSourceImpl): SettingDataSource
}
package org.memento.presentation.util

import timber.log.Timber
import java.text.SimpleDateFormat
import java.time.Duration
import java.time.LocalDate
import java.time.LocalDateTime
import java.time.ZoneId
import java.time.format.DateTimeFormatter
import java.util.Calendar
import java.util.Date
import java.util.Locale

fun formatDate(timestamp: Long): String {
    val formatter = SimpleDateFormat("MMM dd, yyyy", Locale.ENGLISH)
    return formatter.format(Date(timestamp)) // Jan 01, 2023
}

fun formatTime(
    hour: Int,
    roundedMinute: Int,
): String {
    val formatter = String.format(Locale.ENGLISH, "%02d:%02d %s", if (hour % 12 == 0) 12 else hour % 12, roundedMinute, if (hour < 12) "AM" else "PM")

    return formatter // 03:30 PM
}

fun String.to24HourFormat(): String {
    val regex = """(\d{2}):(\d{2})\s?(AM|PM)""".toRegex()
    val matchResult = regex.find(this) ?: return this

    val (hourStr, minuteStr, period) = matchResult.destructured


) {
      console.error(err);
    });
  }

  function setAnswer(sessionDescription) {
    if (! peerConnection) {
      console.error('peerConnection NOT exist!');
      return;
    }

    peerConnection.setRemoteDescription(sessionDescription)
    .then(function() {
      console.log('setRemoteDescription(answer) succsess in promise');
    }).catch(function(err) {
      console.error('setRemoteDescription(answer) ERROR: ', err);
    });
  }

  // start PeerConnection
  function connect() {
    if (! peerConnection) {
      console.log('make Offer');
      makeOffer();
    }
    else {
      console.warn('peer already exist.');
    }
  }

  // close PeerConnection
  function hangUp() {
    if (peerConnection) {
      console.log('Hang up.');
      peerConnection.close();
      peerConnection = null;
      pauseVideo(remoteVideo);
    }
    else {
      console.warn('peer NOT exist.');
    }
  }

</script>

<!doctype html>

 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Camera with mediaDevice</title>

  Camera with mediaDevice.getUserMedia()

  <button onclick="startVideo()">Start</button>
  <button onclick="stopVideo()">Stop</button>

  <video id="local_video" autoplay style="width: 320px; height: 240px; border: 1px solid black;"></video>

  <video id="flip_video" autoplay style="transform: scaleX(-1); width: 320px; height: 240px; border: 1px solid black;"></video>

  <video id="round_video" autoplay style="border-radius: 80px 80px 80px 80px; width: 320px; height: 240px; border: 1px solid black;"></video>

  <video id="filter_video" autoplay style="filter: sepia(100%); -webkit-filter: sepia(100%); width: 320px; height: 240px; border: 1px solid black;"></video>

  <video id="rotate_video" autoplay style="width: 320px; height: 240px; border: 1px solid black;"></video>

  <video id="shake_video" autoplay style="width: 320px; height: 240px; border: 1px solid black;"></video>


using Microsoft.ML;
using Microsoft.ML.AutoML;
using Microsoft.ML.Data;
using Regression_WineQuality.Common;
using System;
using System.IO;
using System.Linq;

namespace Regression_WineQuality
{
    public class WineData
    {
        [LoadColumn(0)]
        public float FixedAcidity;

        [LoadColumn(1)]
        public float VolatileAcidity;

        [LoadColumn(2)]
        public float CitricACID;

        [LoadColumn(3)]
        public float ResidualSugar;

        [LoadColumn(4)]
        public float Chlorides;

        [LoadColumn(5)]
        public float FreeSulfurDioxide;

        [LoadColumn(6)]
        public float TotalSulfurDioxide;

        [LoadColumn(7)]
        public float Density;

        [LoadColumn(8)]
        public float PH;

        [LoadColumn(9)]
        public float Sulphates;

        [LoadColumn(10)]
        public float Alcohol;

        [LoadColumn(11)]
        [ColumnName("Label")]
        public float Quality;

        [LoadColumn(12)]
        public float ID;
    }

    public class WinePrediction
    {
        [ColumnName("Score")]
        public float PredictionQuality;
    }

    class Program
    {
        static readonly string ModelFilePath = Path.Combine(Environment.CurrentDirectory, "MLModel", "model.zip");
        static readonly string TrainDataPath = Path.Combine(Environment.CurrentDirectory, "Data", "winequality-data-train.csv");
        static readonly string TestDataPath = Path.Combine(Environment.CurrentDirectory, "Data", "winequality-data-test.csv");

        static void Main(string[] args)
        {
            TrainAndSave();
            LoadAndPrediction();

            Console.WriteLine("Hit any key to finish the app");
            Console.ReadKey();
        }

        public static void TrainAndSave()
        {
            MLContext mlContext = new MLContext(seed: 1);

            // 准备数据
            var trainData = mlContext.Data.LoadFromTextFile<WineData>(path: TrainDataPath, separatorChar: ',', hasHeader: true);
            var testData = mlContext.Data.LoadFrom


 4, 3, -9, 4, 2, 5, 1, 2, 7, 3, -12, 4, 1, 2, 2, 4, -5, 5, 0, 2, 2, 3, -5, 4, 2, 2, 6, 3, -10, 4, 1, 2, 1, 4, 2, 5, 1, 3, 2, 4, -5, 5, 2, 6, 0, 2, 3, 3, -7, 4, 1, 2, 2, 4, -4, 5, 0, 2, 5, 3, -8, 4, 1, 2, 1, 4, 3, 5, 0, 3, 2, 4, -4, 5, 2, 6, 0, 3, 2, 4, -1, 5, -5, 6, 0, 2, 4, 3, -6, 4, 1, 2, 2, 4, -3, 5, 0, 3, 2, 4, -5, 5, 5, 6, 1, 3, 2, 4, -4, 5, 3, 6, 0, 2, 3, 3, -4, 4, 1, 2, 2, 4, -5, 6, 2, 2, 2, 4, -2, 5, 1, 3, 2, 4, -4, 5, 5, 6, 1, 2, 2, 4, -4, 6, 0, 2, 2, 3, -2, 4, 0, 2, 2, 4, -3, 6, 1, 2, 2, 4, -1, 5, 1, 2, 2, 4, -2, 6, 0, 1, 1, 3, 1, 2, 2, 4, -1, 6, 0, 2, 1, 2, -5, 4, 1, 2, 8, 3, -17, 4, 1, 3, 2, 4, 2, 5, -5, 6, 1, 3, 4, 3, -6, 4, 3, 5, 1, 3, 10, 3, -17, 4, 3, 6, 0, 1, 2, 4, 4, 3, 4, 3, -10, 4, 3, 5, 1, 2, 8, 3, -13, 4, 0, 2, 1, 2, -1, 4, 0, 2, 2, 4, 1, 6, 0, 2, 2, 2, -4, 4, 0, 2, 1, 3, -4, 4, 1, 2, 2, 4, 1, 5, 0, 2, 7, 3, -11, 4, 0, 2, 3, 4, -5, 5, 0, 2, 2, 3, -6, 4, 1, 2, 6, 3, -9, 4, 0, 2, 2, 4, 2, 5, 0, 2, 3, 4, -4, 5, 0, 2, 5, 3, -7, 4, 0, 2, 4, 3, -5, 4, 1, 2, 3, 4, -3, 5, 1, 2, 3, 3, -3, 4, 0, 2, 3, 4, -2, 5, 2, 3, 3, 4, -4, 5, 5, 6, 0, 2, 2, 3, -1, 4, 0, 2, 3, 4, -3, 6, 0, 2, 3, 4, -1, 5, 1, 2, 3, 4, -2, 6, 0, 2, 1, 3, 1, 4, 1, 2, 3, 4, -1, 6, 0, 3, 4, 3, -5, 4, 3, 5, 0, 1, 3, 4, 3, 3, 4, 3, -11, 4, 3, 5, 0, 1, 1, 2, 0, 2, 2, 2, -3, 4, 0, 2, 1, 3, -5, 4, 0, 2, 4, 4, -5, 5, 0, 2, 6, 3, -8, 4, 0, 2, 4, 4, -4, 5, 0, 2, 5, 3, -6, 4, 0, 2, 4, 3, -4, 4, 0, 2, 4, 4, -3, 5, 1, 3, 6, 3, -8, 4, 2, 5, 0, 2, 3, 3, -2, 4, 0, 2, 4, 4, -2, 5, 1, 2, 4, 4, -1, 5, 0, 2, 1, 3, 2, 4, 0, 1, 4, 4, 3, 2, 2, 2, -2, 4, 0, 2, 7, 3, -9, 4, 0, 2, 5, 4, -5, 5, 0, 2, 6, 3, -7, 4, 0, 2, 5, 4, -4, 5, 0, 2, 5, 3, -5, 4, 0, 2, 5, 4, -3, 5, 0, 2, 5, 4, -2, 5, 0, 1, 5, 4, 3, 1, 6, 4, 2, 1, 7, 4, 0, -1]
};
var swisseph = require('..');
var assert   = require('assert');

// Moscow, Russian Federation
var longitude = 37.61556;
var latitude  = 55.75222;
var altitude  = 156; // meters above sea


ENUM_FCEGameModesFCECareerModePreSeasonTourManager = 50
ENUM_FCEGameModesFCECareerModeHistoricalStatsManager = 51
ENUM_FCEGameModesFCECareerModeIniSettingsManager = 52
ENUM_FCEGameModesFCECareerModeInterestingResultManager = 53
ENUM_FCEGameModesFCECareerModeInternationalsManager = 54
ENUM_FCEGameModesFCECareerModeJobOfferManager = 55
ENUM_FCEGameModesFCECareerModeJobSwitchManager = 56
ENUM_FCEGameModesFCECareerModeLiveServicesManager = 57
ENUM_FCEGameModesFCECareerModeLoansManager = 58
ENUM_FCEGameModesFCECareerModeMainHubManager = 59
ENUM_IFCECareerAI = 60
ENUM_IFCECareerHistoryManager = 61
ENUM_IFCECareerSuccessManager = 62
ENUM_FCEGameModesFCECareerModeMatchImportanceManager = 63
ENUM_FCEGameModesFCECareerModeMatchSimulator = 64
ENUM_FCEGameModesFCECareerModeMissionManager = 65
ENUM_FCEGameModesFCECareerModeTcmFinanceManager = 66
ENUM_FCEGameModesFCECareerModeNewsManager = 67
ENUM_FCEGameModesFCECareerModeNextMatchManager = 68
ENUM_FCEGameModesFCECareerModePersistentEventsManager = 69
ENUM_FCEGameModesFCECareerModePlayableHighlightsManager = 70
ENUM_FCEGameModesFCECareerModeYouthTournamentManager = 71
ENUM_FCEGameModesFCECareerModePlayAsPlayerManager = 72
ENUM_FCEGameModesFCECareerModePAPMatchObjectivesManager = 73
ENUM_FCEGameModesFCECareerModePAPPersonalityManager = 74
ENUM_FCEGameModesFCECareerModePAPActivitiesManager = 75
ENUM_FCEGameModesFCECareerModePAPAgentManager = 76
ENUM_FCEGameModesFCECareerModePlayerContractManager = 77
ENUM_FCEGameModesFCECareerModePlayerDataRevealManager = 78
ENUM_FCEGameModesFCECareerModePlayerFormEventsManager = 79
ENUM_FCEGameModesFCECareerModePlayerFormManager = 80
ENUM_FCEGameModesFCECareerModePlayerGrowthManager = 81
ENUM_FCEGameModesFCECareerModePlayerMonitoringManager = 82
ENUM_FCEGameModesFCECareerModePlayerMoraleManager = 83
ENUM_FCEGameModesFCECareerModePlayerRetirementManager = 84
ENUM_FCEGameModesFCECareerModePlayerHeadsManager = 85
ENUM_FCEGameModesFCECareerModePlayerSearchManager = 86
ENUM_FCEGameModesFCECareerModePlayerStatusManager = 87
ENUM_FCEGameModesFCECareerModePlayerUtil = 88
ENUM_FCEGameModesFCECareerModePlayerValueManager = 89
ENUM_FCEGameModesFCECareerModePlayerWageManager = 90
ENUM_FCEGameModesFCECareerModePlaystyleManager = 91
ENUM_FCEGameModesFCECareerModePresentationManager = 92
ENUM_FCEGameModesFCECareerModeProfileStatsManager = 93
ENUM_FCEGameModesFCECareerModeManagerModeSeasonObjectiveManager = 94
ENUM_FCEGameModesFCECareerModeSavedInputManager = 95
ENUM_FCEGameModesFCECareerModeScoutManager = 96
ENUM_FCEGameModesFCECareerModeScriptManager = 97
ENUM_FCEGameModesFCECareerModeSeasonObjectiveManager = 98
ENUM_FCEGameModesFCECareerModeOldSeasonObjectiveManager = 99
ENUM_FCEGameModesFCECareerModeObjectivesHistoryManager = 100
ENUM_FCEGameModesFCECareerModeSeasonSituationSystem = 101
ENUM_FCEGameModesFCECareerModeSe


// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only

#ifndef CUSTOMWIDGET_H
#define CUSTOMWIDGET_H

#include <QtCore/qobject.h>
#include <QtCore/qstring.h>
#include <QtGui/qicon.h>

#if 0
#pragma qt_deprecates(QtDesigner/customwidget.h)
#pragma qt_deprecates(QtDesigner/QDesignerCustomWidgetInterface)
#pragma qt_deprecates(QtDesigner/QDesignerCustomWidgetCollectionInterface)
#endif

QT_BEGIN_NAMESPACE

class QWidget;
class QDesignerFormEditorInterface;

class QDesignerCustomWidgetInterface
{
public:
    virtual ~QDesignerCustomWidgetInterface() = default; // ### FIXME: weak vtable

    virtual QString name() const = 0;
    virtual QString group() const = 0;
    virtual QString toolTip() const = 0;
    virtual QString whatsThis() const = 0;
    virtual QString includeFile() const = 0;
    virtual QIcon icon() const = 0;

    virtual bool isContainer() const = 0;

    virtual QWidget *createWidget(QWidget *parent) = 0;

    virtual bool isInitialized() const { return false; }
    virtual void initialize(QDesignerFormEditorInterface *core) { Q_UNUSED(core); }

    virtual QString domXml() const
    {
        return QLatin1StringView("<widget class=\"%1\" name=\"%2\"/>")
            .arg(name(), name().toLower());
    }

    virtual QString codeTemplate() const { return QString(); }
};

#define QDesignerCustomWidgetInterface_iid "org.qt-project.QDesignerCustomWidgetInterface"

Q_DECLARE_INTERFACE(QDesignerCustomWidgetInterface, QDesignerCustomWidgetInterface_iid)

class QDesignerCustomWidgetCollectionInterface
{
public:
    virtual ~QDesignerCustomWidgetCollectionInterface() = default; // ### FIXME: weak vtable

    virtual QList<QDesignerCustomWidgetInterface*> customWidgets() const = 0;
};

#define QDesignerCustomWidgetCollectionInterface_iid "org.qt-project.Qt.QDesignerCustomWidgetCollectionInterface"

Q_DECLARE_INTERFACE(QDesignerCustomWidgetCollectionInterface, QDesignerCustomWidgetCollectionInterface_iid)

QT_END_NAMESPACE

#endif // CUSTOMWIDGET_H


DOMFixtures}${domStrings}`
    document.body.appendChild(fixtures)
    return fixtures
  }

  const teardownFixtures = () => {
    while (fixtures.firstChild) fixtures.removeChild(fixtures.firstChild)
    if (fixtures.parentNode) {
      fixtures.parentNode.removeChild(fixtures)
    }
  }

  beforeEach(() => {
    fakeENV.setup()
    window.jsonData = {
      id: 27,
      GROUP_GRADING_MODE: false,
      anonymous_grader_ids: ['asdfg', 'mry2b'],
    }

    SpeedGrader.EG.currentStudent = {
      id: 4,
      name: 'Guy B. Studying',
      submission_state: 'not_graded',
      submission: {
        score: 7,
        grade: 70,
        submission_comments: [
          {
            group_comment_id: null,
            publishable: false,
            anonymous: false,
            assessment_request_id: null,
            attachment_ids: '',
            author_id: 1000,
            author_name: 'An Author',
            comment: 'test',
            context_id: 1,
            context_type: 'Course',
            created_at: '2016-07-12T23:47:34Z',
            hidden: false,
            id: 11,
            posted_at: 'Jul 12 at 5:47pm',
            submission_id: 1,
            teacher_only_comment: false,
            updated_at: '2016-07-12T23:47:34Z',
          },
          {
            group_comment_id: null,
            publishable: false,
            anonymous: false,
            assessment_request_id: null,
            attachment_ids: '',
            cached_attachments: [
              {
                attachment: {
                  cloned_item_id: null,
                  content_type: 'video/mp4',
                  context_id: 1,
                  context_type: 'Assignment',
                  display_name: 'SampleVideo_1280x720_1mb (1).mp4',
                  filename: 'SampleVideo_1280x720_1mb.mp4',
                  id: 21,
                  media_entry_id: 'maybe',
                  mime_class: 'video',
                  size: 1055736,
                  workflow_state: 'processed',
                },
              },
            ],
            author_id: 1000,
            author_name: 'An Author',
            comment: 'test',
            context_id: 1,
            context_type: 'Course',
            created_at: '2016-07-13T23:47:34Z',
            hidden: false,
            id: 12,
            posted_at: 'Jul 12 at 5:47pm',
            submission_id: 1,
            teacher_only_comment: false,
            updated_at: '2016-07-13T23:47:34Z',
          },
        ],
      },
    }

    ENV.RUBRIC_ASSESSMENT = {
      assessment_type: 'grading',
      assessor_id: 1,
    }

    ENV.anonymous_identities = {
      mry2b: {id: 'mry2b', name: 'Grader 2'},
      asdfg: {id: 'asdfg', name: 'Grader 1'},
    }

    const commentBlankHtml = `

        <button class="submit_comment_button">
          Submit
        </button>

          Delete comment

    `

    const commentAttachmentBlank = `

        <a href="example.com/{{ submitter_id }}/{{ id }}/{{ co


/**
 ******************************************************************************
 *
 * @file       globalmessaging.h
 * @author     The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
 *             Parts by Nokia Corporation (qt-info@nokia.com) Copyright (C) 2009.
 * @addtogroup GCSPlugins GCS Plugins
 * @{
 * @addtogroup CorePlugin Core Plugin
 * @{
 * @brief The Core GCS plugin
 *****************************************************************************/
/*
 * This program 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.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
 * for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, see <http://www.gnu.org/licenses/>
 */

#ifndef GLOBALMESSAGING_H
#define GLOBALMESSAGING_H
#include "core_global.h"
#include <QObject>
#include <QString>

namespace Core {

typedef enum { ERROR, WARNING, INFO } MessageType;
class CORE_EXPORT GlobalMessage : public QObject
{
    Q_OBJECT
public:
    explicit GlobalMessage(QString brief, QString description, MessageType type,
                           QObject *parent = nullptr);
    explicit GlobalMessage(MessageType = ERROR, QObject *parent = nullptr);
    void setActive(bool value);
    bool isActive() { return m_active; }
    void setText(QString brief, QString description)
    {
        m_brief = brief;
        m_description = description;
        emit changed(this);
    }
    void setBrief(QString brief)
    {
        m_brief = brief;
        emit changed(this);
    }
    void setDescription(QString description)
    {
        m_description = description;
        emit changed(this);
    }
    QString getBrief() { return m_brief; }
    QString getDescription() { return m_description; }
    MessageType getType() { return m_type; }
signals:
    void changed(GlobalMessage *);

private:
    QString m_brief;
    QString m_description;
    MessageType m_type;
    bool m_active;
};

class CORE_EXPORT GlobalMessaging : public QObject
{
    Q_OBJECT
public:
    explicit GlobalMessaging(QObject *parent = nullptr);
    GlobalMessage *addErrorMessage(QString brief, QString description);
    GlobalMessage *addWarningMessage(QString brief, QString description);
    GlobalMessage *addInfoMessage(QString brief, QString description);
    void addMessage(GlobalMessage *);
    QList<GlobalMessage *> getActiveErrors();
    QList<GlobalMessage *> getActiveWarnings();
    QList<GlobalMessage *> getActiveInfos();
    QList<GlobalMessage *> getErrors();
    QList<GlobalMessage *> getWarnings();
    QList<GlobalMessage *> getInfos();

signals:
    void newMessage(GlobalMessage *);
    void newError(GlobalMessage *);
    void newWarning(GlobalMessage *);
    void newInfo(GlobalMessage *);
    void changedMessage(GlobalMessage *);
    void changedError(GlobalMessage *);
    void changedWarning(GlobalMessage *);
    void changedInfo(GlobalMessage *);
    void deletedMessage();
    void deletedError();
    void deletedWarning();
    void deletedInfo();

public slots:
    void messageDeleted();

private:
    QList<GlobalMessage *> errorList;
    QList<GlobalMessage *> warningList;
    QList<GlobalMessage *> infoList;
};
}
#endif // GLOBALMESSAGING_H


	rootCmd: cmd,
	}
}

type CobraCommandCompleter struct {
	rootCmd *cobra.Command
}

func (c *CobraCommandCompleter) Complete(d prompt.Document) []prompt.Suggest {
	if d.TextBeforeCursor() == "" {
		return []prompt.Suggest{}
	}
	args := strings.Split(d.TextBeforeCursor(), " ")
	w := d.GetWordBeforeCursor()
	s := c.commandSuggestions(c.rootCmd, args, 0, w)
	return prompt.FilterHasPrefix(s, d.GetWordBeforeCursor(), true)
}

func (c *CobraCommandCompleter) commandSuggestions(cmd *cobra.Command, args []string, index int, w string) []prompt.Suggest {
	if len(args) == 0 || index >= len(args) {
		return cmdSuggestions(cmd)
	}

	currentArg := args[index]
	childCmd, found := findCmd(cmd, currentArg)
	if !found {
		if strings.HasPrefix(w, "-") {
			return optSuggestions(cmd)
		}
		return cmdSuggestions(cmd)
	}
	return c.commandSuggestions(childCmd, args, index+1, w)
}

func optSuggestions(cmd *cobra.Command) []prompt.Suggest {
	flags := cmd.Flags()
	s := make([]prompt.Suggest, 0)
	flags.VisitAll(func(f *pflag.Flag) {
		s = append(s, prompt.Suggest{
			Text:        "--" + f.Name,
			Description: f.Usage,
		})
	})
	s = append(s, prompt.Suggest{Text: "--help", Description: "Help on command " + cmd.Name()})
	return s
}

func findCmd(cmd *cobra.Command, arg string) (*cobra.Command, bool) {
	commands := cmd.Commands()
	for i, c := range cmd.Commands() {
		if c.Hidden {
			continue
		}
		if c.Name() == arg {
			return commands[i], true
		}
	}
	return nil, false
}

func cmdSuggestions(cmd *cobra.Command) []prompt.Suggest {
	childCmds := cmd.Commands()
	var s []prompt.Suggest
	for _, childCmd := range childCmds {
		if childCmd.Hidden {
			continue
		}
		s = append(s, prompt.Suggest{
			Text:        childCmd.Name(),
			Description: childCmd.Short,
		})
	}
	return s
}
package core

import (
	"github.com/1xyz/coolbeans/state"
	"github.com/stretchr/testify/assert"
	"testing"
)

func TestClientSet(t *testing.T) {

}

func TestClientSet_Set(t *testing.T) {
	cs := make(ClientSet)

	cli := newTestClient()
	err := cs.Set(cli)
	assert.Nilf(t, err, "expect err to be nil")

	err = cs.Set(cli)
	assert.Equalf(t, state.ErrEntryExists, err, "expect err to be ErrEntryExists")

	err = cs.Set(newTestClient())
	assert.Nilf(t, err, "expect err to be nil")
}

func TestClientSet_Remove(t *testing.T) {
	cs := make(ClientSet)

	cli := newTestClient()
	if err := cs.Set(cli); err != nil {
		t.Fatalf("test error %v", err)
	}

	err := cs.Remove(cli)
	assert.Nilf(t, err, "expect err to be nil")

	err = cs.Remove(cli)
	assert.Equalf(t, state.ErrEntryMissing, err, "expect err to be ErrEntryMissing")
}

func TestClientSet_Contains(t *t


GroupSubscription,
	PermissionGroupInvoice,
	PermissionGroupCustomer,
	PermissionGroupAnalytics,
}

func IsValidGroup(target string) bool {
	if len(target) <= 0 {
		return false
	}
	for _, event := range PermissionGroupList {
		if event == PermissionGroup(target) {
			return true
		}
	}
	return false
}

type PermissionType string

const (
	PermissionTypeRead   = "Read"
	PermissionTypeWrite  = "Write"
	PermissionTypeExport = "Export"
)
package consts

type PlanType int

const (
	PlanTypeMain           = 1
	PlanTypeRecurringAddon = 2
	PlanTypeOnetime        = 3
)

type PlanStatusEnum int

const (
	PlanStatusEditable           = 1
	PlanStatusActive             = 2
	PlanStatusInActive           = 3
	PlanStatusSoftArchive        = 4
	PlanStatusHardArchive        = 5
	PlanPublishStatusPublished   = 2
	PlanPublishStatusUnPublished = 1
)

func (status PlanStatusEnum) Description() string {
	switch status {
	case PlanStatusEditable:
		return "PlanStatusEditable"
	case PlanStatusActive:
		return "PlanStatusActive"
	case PlanStatusSoftArchive:
		return "PlanStatusSoftArchive"
	case PlanStatusHardArchive:
		return "PlanStatusHardArchive"
	default:
		return "PlanStatusEditable"
	}
}

type GatewayPlanStatusEnum int

const (
	GatewayPlanStatusInit     = 0
	GatewayPlanStatusCreate   = 1
	GatewayPlanStatusActive   = 2
	GatewayPlanStatusInActive = 3
)

func (status GatewayPlanStatusEnum) Description() string {
	switch status {
	case GatewayPlanStatusInit:
		return "GatewayPlanStatusInit"
	case GatewayPlanStatusCreate:
		return "GatewayPlanStatusCreate"
	case GatewayPlanStatusActive:
		return "GatewayPlanStatusActive"
	case GatewayPlanStatusInActive:
		return "GatewayPlanStatusInActive"
	default:
		return "GatewayPlanStatusInit"
	}
}
package swagger

const (
	RedoclyContent = `
<!DOCTYPE html>

<title>API Reference</title>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1">

<redoc spec-url="api.json" show-object-schema-examples="true"></redoc>

`
	LatestSwaggerUIPageContent = `
<!DOCTYPE html>

	<meta charset="utf-8" />
	<meta name="viewport" content="width=device-width, initial-scale=1" />
	<meta name="description" content="SwaggerUI"/>

	<title>UniBee API</title>
	<link rel="stylesheet" href="https://unpkg.com/swagger-ui-dist@latest/swagger-ui.css" />


ORIENTATION_HORIZONTAL) {
                    bindArticlePage(holder.view, getItem(position))
                } else {
                    bindArticleVerticalPage(holder.view, getItem(position))
                }
                PageType.ERROR -> bindErrorPage(holder.view, getItem(position))
                PageType.AUTH, PageType.AUTH_BUY -> bindAuthPage(holder.view, getItem(position))
                PageType.END -> buildEndPage(holder.view)
            }
            when {
                !Preferences.get(Preferences.Key.MIPMAP_FOLLOW, false) -> holder.view.setBackgroundColor(Color.TRANSPARENT)
                controller.theme.mipmap.isNotBlank() -> holder.view.background = UIModule.getMipmapByTheme(controller.theme)
                else -> holder.view.setBackgroundColor(controller.theme.background)
            }
            holder.view.setOnClickListener { onTouchClicked() }
        }

    }

    /**
     * 分卷页
     */
    private fun bindBookletPage(holder: View, page: Page) {
        holder.setPadding(controller.display.horizontal, controller.display.top, controller.display.horizontal, controller.display.bottom)
        (holder as TextView).text = page.chapter.title
        holder.setTextColor(controller.theme.content)
        holder.typeface = controller.paint.typeface
    }

    /**
     * 插画页
     */
    private fun bindIllustrationPage(holder: View, page: Page) {
        val image = page.cells.first().image
        val options = BitmapFactory.Options()
        options.inJustDecodeBounds = true
        BitmapFactory.decodeFile(image, options)
        holder.mIllustrationView.layoutParams.width = controller.display.width
        holder.mIllustrationView.layoutParams.height = options.outHeight * controller.display.width / options.outWidth
        holder.mIllustrationView.none().load(image)
    }

    /**
     * 文章页
     */
    private fun bindArticlePage(view: View, page: Page) {
        view.mPageLayout.setPadding(controller.display.horizontal, controller.display.top, controller.display.horizontal, controller.display.bottom)
        arrayOf(view.mPageTitle, view.mPageSchedule, view.mPageTime).forEach { child -> child.setTextColor(controller.theme.secondary) }
        //书签
        (view.mPageBookmark.layoutParams as RelativeLayout.LayoutParams).marginEnd = controller.display.horizontal
        controller.hasBookmark(page).observe(this, Observer { view.mPageBookmark.isVisible = it })
        view.mPageBookmark.imageTintList = ColorStateList.valueOf(controller.theme.control)
        //标题
        view.mPageTitle.isVisible = Preferences.get(Preferences.Key.SHOW_TITLE, true)
        view.mPageTitle.setPadding(0, 0, 0, 0)
        view.mPageTitle.text = if (page.cells.any { it.type == CellType.TITLE }) controller.book.name else page.chapter.title
        view.mPageTitle.typeface = controller.paint.typeface
        view.mPageTitle.setTextColor(controller.theme.secondary)
        //内置状态栏
        view.mPageStatusBar.isVisible = Preferences.get(Preferences.Key.CUSTOM_STATUS_BAR, true)
        //时间
        view.mPageTime.typeface = controller.paint.typeface
        view.mPageTime.paint.isFakeBoldText = controller.paint.isFakeBoldText
        view.mPageTime.setTextColor(controller.theme.secondary)
        //电量
        view.mPageBattery.imageTintList = ColorStateList.valueOf(controller.theme.secondary)
        //进度
        val list = adapter.currentList.filter { it.chapter == page.chapter }
        view.mPageSchedule.isVisible = Preferences.get(Preferences.Key.SHOW_TITLE, true)
        view.mPageSchedule.typeface = controller.paint.typeface
        view.mPageSchedule.


import os
import time

from building3d.display.plot_objects import plot_objects
from building3d.io.b3d import write_b3d
from building3d.io.stl import read_stl
from building3d.logger import init_logger
from building3d.sim.rays.dump_buffers import read_buffers
from building3d.sim.rays.movie_from_buffer import make_movie_from_buffer
from building3d.sim.rays.ray_buff_plotter import RayBuffPlotter
from building3d.sim.rays.simulation import Simulation
from building3d.sim.rays.simulation_config import SimulationConfig

if __name__ == "__main__":
    print("This example shows a ray simulation in a sphere with many polygons...")

    project_dir = os.path.join("out", "ray_sphere")
    init_logger(os.path.join(project_dir, "log"))

    # Create building
    building = read_stl("resources/stl/sphere.stl")

    # Simulation configuration
    sim_cfg = SimulationConfig(building)

    sim_cfg.paths["project_dir"] = project_dir
    sim_cfg.paths["buffer_dir"] = os.path.join(project_dir, "states")
    sim_cfg.engine["num_steps"] = 200
    sim_cfg.rays["num_rays"] = 500
    sim_cfg.rays["source"] = (0.5, 0.0, 0.0)
    sim_cfg.rays["absorbers"] = [[-0.5, 0.0, 0.0]]

    # Simulate
    sim = Simulation(building, sim_cfg)
    t0 = time.time()
    pos_buf, enr_buf, hit_buf = sim.run()
    tot_time = time.time() - t0
    print(f"{tot_time=:.2f}")

    # Save building
    b3d_file = os.path.join(project_dir, "building.b3d")
    write_b3d(b3d_file, building)

    # Read buffers
    pos_buf, enr_buf, hit_buf = read_buffers(sim_cfg.paths["buffer_dir"], sim_cfg)

    # Show plot
    rays = RayBuffPlotter(building, pos_buf, enr_buf)
    plot_objects((building, rays))

    make_movie_from_buffer(
        output_file=os.path.join(project_dir, "movie.mp4"),
        building=building,
        pos_buf=pos_buf,
        enr_buf=enr_buf,
        sim_cfg=sim_cfg,
    )


[]

export type RespenseFoodList = ResponseCommon<FoodList | null>

export interface FoodState {
  foodList: FoodList;
  currentPage: number;
  pageSize: number;
  finish: boolean;
  pending: boolean;
}

const state: FoodState = {
  foodList: [],
  currentPage: 1,
  pageSize: 6,
  finish: false,
  pending: false
}

const getters: GetterTree<FoodState, RootState> = {

}

const mutations: MutationTree<FoodState> = {
  addCurrentPage(state) {
    state.currentPage++
  },
  changeFinishState(state) {
    state.finish = true
  },
  changePendingState(state, newSate: boolean) {
    state.pending = newSate
  },
  fetchFoodList(state, payload: FoodList) {
    payload.map(item => {
      state.foodList.push(item)
    })
  }
}

const actions: ActionTree<FoodState, RootState> = {
  fetchFoodList({ state, commit }) {
    if (!state.finish && !state.pending) {
      commit('changePendingState', true)
      axios.get(`/api/dbcourse/food/list?page=${state.currentPage}&size=${state.pageSize}`)
        .then((res: RespenseFoodList) => {
          const data = res.data
          if (data.code === '200') {
            if (data.data?.length === 0) {
              commit('changeFinishState')
            } else {
              commit('addCurrentPage')
              commit('fetchFoodList', res.data.data)
            }
          } else {
            createMessage('fail', '获取数据失败')
          }
        })
        .catch(() => {
          createMessage('fail', '获取数据失败')
        })
        .finally(() => {
          commit('changePendingState', false)
        })
    }
  }
}

export default {
  namespaced: true,
  state,
  getters,
  actions,
  mutations
}
export interface Product {
  name: string;
  image: string;
  description: string;
  option: Option;
  sides: Side[];
}

export interface Option {
  name: string;
  limit: number;
  choices: string[];
}

export interface Side {
  name: string;
  modifierName: string;
  options: string[];
}

export interface SideChange {
  side: string;
  modifierName: string;
  sideModifier: string | number;
}

export interface Order {
  itemName: string;
  quantity: number;
  options: string[];
  optionsName: string;
  side: SideChange | null;
  requests: string;
}

export interface OrderOption {
  name: string;
  selected: string[];
}
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { Pokemon, PokemonData } from '../models/pokemon';
import { map } from 'rxjs/operators';

@Injectable({
  providedIn: 'root'
})
export class PokemonService {

  private readonly api = 'https://pokeapi.co/api/v2/';

  constructor(
    private http: HttpClient
  ) { }

  getAll(limit: number = 10): Observable<Pokemon[]>{
    return this.http.get(this.api + 'pokemon?limit=' + limit).pipe(
      map((response: any) => response.results.map((pok: any)=> new Pokemon(pok)))
    );
  }

  get(id: string): Observable<PokemonData> {
    return this.http.get<PokemonData>(this.api + 'pokemon/' + id);
  }

}
import { IsNotEmpty, Matches, IsEnum } from 'class-validator';
import { MountTypeEnum } from 'src/mounts/models/enum/mount-type.enum';

export class RegisterDto {
  @IsNotEmpty()
  username: string;

  @IsNotEmpty()
  @Matches(new RegExp(/[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A


e = OCIAnsibleModule(argument_spec=module_args)

    if not HAS_OCI_PY_SDK:
        module.fail_json(msg="oci python sdk required for this module.")

    resource_facts_helper = ResourceFactsHelper(
        module=module,
        resource_type="association",
        service_client_class=CertificatesManagementClient,
        namespace="certificates_management",
    )

    result = []

    if resource_facts_helper.is_get():
        result = [resource_facts_helper.get()]
    elif resource_facts_helper.is_list():
        result = resource_facts_helper.list()
    else:
        resource_facts_helper.fail()

    module.exit_json(associations=result)

if __name__ == "__main__":
    main()


l     func_8010B720
/* 01294 80A54134 A60E010E */  sh      $t6, 0x010E($s0)           ## 0000010E
/* 01298 80A54138 0C023C23 */  jal     func_8008F08C
/* 0129C 80A5413C 02202025 */  or      $a0, $s1, $zero            ## $a0 = 00000000
/* 012A0 80A54140 3C038016 */  lui     $v1, 0x8016                ## $v1 = 80160000
/* 012A4 80A54144 2463E660 */  addiu   $v1, $v1, 0xE660           ## $v1 = 8015E660
/* 012A8 80A54148 946F0F06 */  lhu     $t7, 0x0F06($v1)           ## 8015F566
/* 012AC 80A5414C 94790EF6 */  lhu     $t9, 0x0EF6($v1)           ## 8015F556
/* 012B0 80A54150 02202025 */  or      $a0, $s1, $zero            ## $a0 = 00000000
/* 012B4 80A54154 35F80080 */  ori     $t8, $t7, 0x0080           ## $t8 = 00000080
/* 012B8 80A54158 37280100 */  ori     $t0, $t9, 0x0100           ## $t0 = 00000100
/* 012BC 80A5415C A4780F06 */  sh      $t8, 0x0F06($v1)           ## 8015F566
/* 012C0 80A54160 A4680EF6 */  sh      $t0, 0x0EF6($v1)           ## 8015F556
/* 012C4 80A54164 0C021344 */  jal     Item_Give
/* 012C8 80A54168 2405002C */  addiu   $a1, $zero, 0x002C         ## $a1 = 0000002C
/* 012CC 80A5416C 9209030A */  lbu     $t1, 0x030A($s0)           ## 0000030A
/* 012D0 80A54170 3C0C80A5 */  lui     $t4, %hi(func_80A541FC)    ## $t4 = 80A50000
/* 012D4 80A54174 24030001 */  addiu   $v1, $zero, 0x0001         ## $v1 = 00000001
/* 012D8 80A54178 11200008 */  beq     $t1, $zero, .L80A5419C
/* 012DC 80A5417C 258C41FC */  addiu   $t4, $t4, %lo(func_80A541FC) ## $t4 = 80A541FC
/* 012E0 80A54180 3C0B80A5 */  lui     $t3, %hi(func_80A5427C)    ## $t3 = 80A50000
/* 012E4 80A54184 240A0002 */  addiu   $t2, $zero, 0x0002         ## $t2 = 00000002
/* 012E8 80A54188 256B427C */  addiu   $t3, $t3, %lo(func_80A5427C) ## $t3 = 80A5427C
/* 012EC 80A5418C A20A030A */  sb      $t2, 0x030A($s0)           ## 0000030A
/* 012F0 80A54190 A603030E */  sh      $v1, 0x030E($s0)           ## 0000030E
/* 012F4 80A54194 10000014 */  beq     $zero, $zero, .L80A541E8
/* 012F8 80A54198 AE0B025C */  sw      $t3, 0x025C($s0)           ## 0000025C
.L80A5419C:
/* 012FC 80A5419C A600030E */  sh      $zero, 0x030E($s0)         ## 0000030E
/* 0


BA7C 80083CB4 E0150208 */  j          .Llevel_10_80085780
/* 7FBA80 80083CB8 3C0060A2 */   sb        $zero, 0x3C($s3)
.Llevel_10_80083CBC:
/* 7FBA84 80083CBC 0780023C */  lui        $v0, %hi(D_80075794)
/* 7FBA88 80083CC0 9457428C */  lw         $v0, %lo(D_80075794)($v0)
/* 7FBA8C 80083CC4 00000000 */  nop
/* 7FBA90 80083CC8 11004010 */  beqz       $v0, .Llevel_10_80083D10
/* 7FBA94 80083CCC FCFF0424 */   addiu     $a0, $zero, -0x4
/* 7FBA98 80083CD0 07800A3C */  lui        $t2, %hi(D_80076378)
/* 7FBA9C 80083CD4 78634A25 */  addiu      $t2, $t2, %lo(D_80076378)
/* 7FBAA0 80083CD8 36006386 */  lh         $v1, 0x36($s3)
/* 7FBAA4 80083CDC 3D006292 */  lbu        $v0, 0x3D($s3)
/* 7FBAA8 80083CE0 80180300 */  sll        $v1, $v1, 2
/* 7FBAAC 80083CE4 21186A00 */  addu       $v1, $v1, $t2
/* 7FBAB0 80083CE8 0000638C */  lw         $v1, 0x0($v1)
/* 7FBAB4 80083CEC 80100200 */  sll        $v0, $v0, 2
/* 7FBAB8 80083CF0 21104300 */  addu       $v0, $v0, $v1
/* 7FBABC 80083CF4 3800428C */  lw         $v0, 0x38($v0)
/* 7FBAC0 80083CF8 00000000 */  nop
/* 7FBAC4 80083CFC 0C005090 */  lbu        $s0, 0xC($v0)
/* 7FBAC8 80083D00 A8DF000C */  jal        RandRange
/* 7FBACC 80083D04 04000524 */   addiu     $a1, $zero, 0x4
/* 7FBAD0 80083D08 21800202 */  addu       $s0, $s0, $v0
/* 7FBAD4 80083D0C 410070A2 */  sb         $s0, 0x41($s3)
.Llevel_10_80083D10:
/* 7FBAD8 80083D10 1800628E */  lw         $v0, 0x18($s3)
/* 7FBADC 80083D14 0100033C */  lui        $v1, (0x10000 >> 16)
/* 7FBAE0 80083D18 24104300 */  and        $v0, $v0, $v1
/* 7FBAE4 80083D1C 19004010 */  beqz       $v0, .Llevel_10_80083D84
/* 7FBAE8 80083D20 00000000 */   nop
/* 7FBAEC 80083D24 3D006292 */  lbu        $v0, 0x3D($s3)
/* 7FBAF0 80083D28 00000000 */  nop
/* 7FBAF4 80083D2C 16004014 */  bnez       $v0, .Llevel_10_80083D88
/* 7FBAF8 80083D30 00000000 */   nop
/* 7FBAFC 80083D34 3C006292 */  lbu        $v0, 0x3C($s3)
/* 7FBB00 80083D38 00000000 */  nop
/* 7FBB04 80083D3C 90065E10 */  beq        $v0, $fp, .Llevel_10_80085780
/* 7FBB0


import json
import copy
import zipfile
import os
from datetime import datetime

def setup_experiment(experiment_name=None):
    if experiment_name is None:
        current_date = datetime.now()
        formatted_date = current_date.strftime("%B-%d")
        experiment_name = formatted_date
    directory_name = os.path.join("Experiments", experiment_name)
    i = 0
    new_directory_name = directory_name
    while os.path.exists(new_directory_name):
        i += 1
        new_directory_name = f"{directory_name}-{i}"
    os.makedirs(new_directory_name)
    return new_directory_name

def save_options(options, filename):
    options_to_save = options.copy()
    for key, value in options_to_save.items():
        if callable(value):
            options_to_save[key] = value.__doc__.split("\n")[-2]

    with open(filename, 'w') as params_file:
        json.dump(options_to_save, params_file, indent=0)

def save_input_data(oxide_params, data_path_array, filename):
    input_data = copy.deepcopy(oxide_params)
    input_data["references"] = list(data_path_array)
    with open(filename, 'w') as params_file:
        json.dump(input_data, params_file, indent=0)

def archive_important_files(experiment_path):
    to_save = [
        "ODELoss.png",
        "IdealFunctionsForPredictedVars.png",
        "Result.png",
        "TBegLoss.png",
        "ReferenceLoss.png",
        "MaxPeakLoss.png",
        "movie.gif",
        "trainable_variables_history.gif",
        "test.dat",
        "variables.dat",
        "train.dat",
        "parameters.txt",
        "LossHistory.png",
        "LossHistory.txt",
        "input_data.txt",
        "SolutionHistory_x.txt",
        "SolutionHistory_y.txt",
    ]

    with zipfile.ZipFile(os.path.join(experiment_path, "ImportantInfo.zip"), 'w') as zipf:
        for file_name in to_save:
            path = os.path.join(str(experiment_path), file_name)
            if os.path.exists(path):
                zipf.write(path)


)
}

func (s *S) TestGetScheme(c *gocheck.C) {
	instance := TestScheme{}
	RegisterScheme("x", instance)
	defer UnregisterScheme("x")
	scheme, err := GetScheme("x")
	c.Assert(err, gocheck.IsNil)
	c.Assert(scheme, gocheck.Equals, instance)
}

func (s *S) TestGetSchemeInvalidScheme(c *gocheck.C) {
	_, err := GetScheme("x")
	c.Assert(err, gocheck.NotNil)
	c.Assert(err.Error(), gocheck.Equals, `Unknown scheme: "x".`)
}
// Copyright 2014 tsuru authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package auth

import (
	"errors"
	"github.com/tsuru/tsuru/db"
	"github.com/tsuru/tsuru/quota"
	"gopkg.in/mgo.v2"
	"gopkg.in/mgo.v2/bson"
)

// ReserveApp reserves an app for the user, reserving it in the database. It's
// used to reserve the app in the user quota, returning an error when there
// isn't any space available.
func ReserveApp(user *User) error {
	user, err := checkUser(user.Email)
	if err != nil {
		return err
	}
	conn, err := db.Conn()
	if err != nil {
		return err
	}
	defer conn.Close()
	err = conn.Users().Update(
		bson.M{"email": user.Email, "quota.inuse": user.InUse},
		bson.M{"$inc": bson.M{"quota.inuse": 1}},
	)
	for err == mgo.ErrNotFound {
		user, err = checkUser(user.Email)
		if err != nil {
			return err
		}
		err = conn.Users().Update(
			bson.M{"email": user.Email, "quota.inuse": user.InUse},
			bson.M{"$inc": bson.M{"quota.inuse": 1}},
		)
	}
	return err
}

func checkUser(email string) (*User, error) {
	user, err := GetUserByEmail(email)
	if err != nil {
		return nil, err
	}
	if user.Quota.Limit == user.Quota.InUse {
		return nil, &quota.QuotaExceededError{
			Available: 0, Requested: 1,
		}
	}
	return user, nil
}

// ReleaseApp releases an app from the user list, releasing the quota spot for
// another app.
func ReleaseApp(user *User) error {
	errCantRelease := errors.New("Cannot release unreserved app")
	user, err := GetUserByEmail(user.Email)
	if err != nil {
		return err
	}
	if user.Quota.InUse == 0 {
		return errCantRelease
	}
	conn, err := db.Conn()
	if err != nil {
		return err
	}
	defer conn.Close()
	err = conn.Users().Update(
		bson.M{"email": user.Email, "quota.inuse": user.InUse},
		bson.M{"$inc": bson.M{"quota.inuse": -1}},
	)
	for err == mgo.ErrNotFound {
		user, err = GetUserByEmail(user.Email)
		if err != nil {
			return err
		}
		if user.Quota.InUse == 0 {
			return errCantRelease
		}
		err = conn.Users().Update(
			bson.M{"email": user.Email, "quota.inuse": user.InUse},
			bson.M{"$inc": bson.M{"quota.inuse": -1}},
		)
	}
	return err
}
// Copyright 2014 tsuru authors. All rights reserved.
// Use of this source code is


0, #0x1
	add     r1, r2, r1
	ldsb    r0, [r5, r0]
	lsl     r1, r1, #2
	lsl     r2, r0, #4
	ldr     r0, [pc, #0x2c] @ 0x20655e0, (=Unknown_20eeab0)
	add     r0, r0, r2
	ldr     r4, [r1, r0]
	mov     r0, r7
	mov     r1, #0x80
	bl      MaskSpriteFlags
	cmp     r0, #0x0
	beq     branch_20655c8
	mov     r0, #0x1
	b       branch_20655ca

branch_20655c8: @ 20655c8 :thumb
	mov     r0, #0x0
branch_20655ca: @ 20655ca :thumb
	strb    r0, [r5, #0x2]
	mov     r0, r7
	mov     r1, r4
	bl      ChangeSpriteFaceDirection_WithCheck
	mov     r0, r7
	mov     r1, #0x80
	bl      SetSpriteFlags
	pop     {r3-r7,pc}
@ 0x20655de

.align 2
.word Unknown_20eeab0 @ 0x20655e0

.thumb
Function_20655e4: @ 20655e4 :thumb
	push    {r3,lr}
	ldrb    r1, [r1, #0x2]
	cmp     r1, #0x0
	bne     branch_20655f2
	mov     r1, #0x80
	bl      UnsetSpriteFlags
branch_20655f2: @ 20655f2 :thumb
	pop     {r3,pc}
@ 0x20655f4

thumb_func_start IsSpriteMovable
IsSpriteMovable: @ 20655f4 :thumb
	push    {r4,lr}
	mov     r1, #Sprite_Flags_Locked
	mov     r4, r0
	bl      CheckSpriteFlags
	cmp     r0, #0x0
	bne     branch_2065606
	mov     r0, #0x0
	pop     {r4,pc}

branch_2065606: @ 2065606 :thumb
	mov     r0, r4
	mov     r1, #Sprite_Flags_2
	bl      CheckSpriteFlags
	cmp     r0, #0x1
	bne     branch_2065616
	mov     r0, #0x0
	pop     {r4,pc}

branch_2065616: @ 2065616 :thumb
	mov     r0, r4
	mov     r1, #Sprite_Flags_10
	bl      CheckSpriteFlags
	cmp     r0, #0x1
	bne     branch_2065632
	mov     r0, r4
	mov     r1, #Sprite_Flags_EndMovement
	bl      CheckSpriteFlags
	cmp     r0, #0x0
	bne     branch_2065632
	mov     r0, #0x0
	pop     {r4,pc}

branch_2065632: @ 2065632 :thumb
	mov     r0, #0x1
	pop     {r4,pc}
thumb_func_end IsSpriteMovable

/* Input:
r0: Ptr to SpriteStruct
r1: MovementScriptCmd
*/
.align 2, 0
.thumb
.globl Function_2065638
Function_2065638: @ 2065638 :thumb
	push    {r3-r5,lr}
	mov     r4, r1
	mov     r5, r0
	cmp     r4, #0x9a
	blt     branch_2065646
	bl      ErrorHandling
branch_2065646


mon and all cards attached to it into your deck. If this Pokémon has at least 1 extra Fire, Water, and Lightning Energy attached to it (in addition to this attack’s cost), this attack does 110 damage to 3 of your opponent’s Pokémon. (Don’t apply Weakness and Resistance for Benched Pokémon.) (You can’t use more than 1 GX attack in a game.)",
				fr: "Mélangez ce Pokémon et toutes les cartes qui lui sont attachées avec votre deck. Si au moins une Énergie Fire, Water et Lightning supplémentaire sont attachées à ce Pokémon (en plus du coût de cette attaque), cette attaque inflige 110 dégâts à 3 des Pokémon de votre adversaire. (N’appliquez ni la Faiblesse ni la Résistance aux Pokémon de Banc.) (Vous ne pouvez utiliser qu’une attaque GX par partie.)",
				es: "Pon este Pokémon y todas las cartas unidas a él en tu baraja y barájalas todas. Si este Pokémon tiene por lo menos 1 Energía Fire, Water y Lightning adicionales unidas a él (además de las del coste de este ataque), este ataque hace 110 puntos de daño a 3 de los Pokémon de tu rival. (No apliques Debilidad y Resistencia a los Pokémon en Banca). (No puedes usar más de 1 ataque GX en una partida).",
				it: "Rimischia questo Pokémon e tutte le carte a esso assegnate nel tuo mazzo. Se questo Pokémon ha almeno un’Energia Fire, un’Energia Water e un’Energia Lightning extra assegnate, in aggiunta a quelle del costo di questo attacco, questo attacco infligge 110 danni a tre dei Pokémon del tuo avversario. Ricorda che non puoi applicare debolezza e resistenza ai Pokémon in panchina. Non puoi usare più di un attacco GX a partita.",
				pt: "Embaralhe este Pokémon e todas as cartas ligadas a ele no seu baralho. Se este Pokémon tiver pelo menos 1 Energia Fire, Water e Lightning adicional ligada a ele (além do custo deste ataque), este ataque causará 110 pontos de dano a 3 dos Pokémon do seu oponente (não aplique Fraqueza e Resistência aos Pokémon no Banco). (Você não pode usar mais de 1 ataque GX por partida.)",
				de: "Mische dieses Pokémon und alle an es angelegten Karten in dein Deck. Wenn an dieses Pokémon mindestens 1 extra Fire-, Water- und Lightning-Energie angelegt ist (zusätzlich zu den Kosten dieser Attacke), fügt diese Attacke 3 Pokémon deines Gegners 110 Schadenspunkte zu. (Wende Schwäche und Resistenz bei Pokémon auf der Bank nicht an.) (Du kannst pro Spiel nur 1 GX-Attacke einsetzen.)"
			},

		},
	],
	weaknesses: [
		{
			type: "Lightning",
			value: "×2"
		},
	],
	resistances: [
		{
			type: "Fighting",
			value: "-20"
		},
	],
	retreat: 3,

}

export default card
import type { TypografRule } from '../../../main';
function replaceNbsp($0: string, $1: string, $2: string, $3: string) {
    return $1 + $2.replace(/([^\u00A0])\u00A0([^\u00A0])/g, '$1 $2') + $3;
}

export const nowrapRule: TypografRule = {
    name: 'common/


face {
  font-family: "Noto Serif KR";
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/notoserifkr/v28/3JnoSDn90Gmq2mr3blnHaTZXbOtLJDvui3JOncjmeM5z4ZvTefxutxWKI13DA9agQzxl4iCfvB7KDWw.114.woff2)
    format("woff2");
  unicode-range:
    U+3c-3d, U+2026, U+24d2, U+314b, U+ac11, U+acf3, U+ad74, U+ad81, U+adf9,
    U+ae34, U+af43, U+afb8, U+b05d, U+b07c, U+b110, U+b118, U+b17c, U+b180,
    U+b18d, U+b192, U+b2cc, U+b355, U+b378, U+b4a4, U+b4ef, U+b78d, U+b799,
    U+b7a9, U+b7fd, U+b807, U+b80c, U+b839, U+b9b4, U+b9db, U+ba3c, U+bab0,
    U+bba4, U+bc94, U+be4c, U+c154, U+c1c4, U+c26c, U+c2ac, U+c2ed, U+c4f4,
    U+c55e, U+c561, U+c571, U+c5b5, U+c5c4, U+c654-c655, U+c695, U+c6e8, U+c6f9,
    U+c724, U+c751, U+c775, U+c7a0, U+c7c1, U+c874, U+c880, U+c9d5, U+c9f8,
    U+cabd, U+cc29, U+cc2c, U+cca8, U+ccab, U+ccd0, U+ce21, U+ce35, U+ce7c,
    U+ce90, U+cee8, U+cef4, U+cfe0, U+d070, U+d0b9, U+d0c1, U+d0c4, U+d0c8,
    U+d15c, U+d1a1, U+d2c0, U+d300, U+d314, U+d3ed, U+d478, U+d480, U+d48d,
    U+d508, U+d53d, U+d5e4, U+d611, U+d61c, U+d68d, U+d6a8, U+d798;
}
/* [115] */
@font-face {
  font-family: "Noto Serif KR";
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/notoserifkr/v28/3JnoSDn90Gmq2mr3blnHaTZXbOtLJDvui3JOncjmeM5z4ZvTefxutxWKI13DA9agQzxl4iCfvB7KDWw.115.woff2)
    format("woff2");
  unicode-range:
    U+23, U+25, U+5f, U+a9, U+ac08, U+ac78, U+aca8, U+acac, U+ace8, U+ad70,
    U+adc0, U+addc, U+b137, U+b140, U+b208, U+b290, U+b2f5, U+b3c5, U+


;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis
}
.actioncard .topic-list-suggested .topic .topic-intro .topic-follow {
    color:#999
}
.actioncard .topic-list-suggested .topic .topic-intro .topic-follow:hover {
    color:#58b
}
@media (max-width:767px) {
    .actioncard .topic-list-suggested .topic {
    width:50%
}
.actioncard .topic-list-suggested .topic:last-child {
    display:none
}
}[class*=sprite-topstory-icon-] {
    display:inline-block;
    vertical-align:middle
}
.sprite-topstory,[class*=sprite-topstory-] {
    background-image:url(../images/img/topstory/sprites.auto.ebf39759.png);
    background-repeat:no-repeat
}
.sprite-topstory-icon-ad-menu-down {
    background-position:0 0;
    width:10px;
    height:6px
}
@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi) {
    .sprite-topstory,[class*=sprite-topstory-] {
    background-image:url(../images/img/topstory/sprites@2x.auto.d5ba6ef4.png);
    background-size:10px 6px
}
}.AdFeed-menuBtn {
    position:absolute!important;
    top:11px;
    right:0;
    padding:1px 8px;
    border:0;
    border-radius:3px;
    background:#eff6fa;
    color:#25bb9b;
    font-size:100%;
    cursor:pointer;
    outline:0
}
.AdFeed-impression {
    position:absolute;
    width:0;
    height:0;
    left:-100000px;
    top:-100000px
}
.ImageAdFeed-attachment,.CardAdFeed-attachment {
    display:block
}
.ImageAdFeed-image {
    width:100%;
    border-radius:4px
}
.CardAdFeed-attachment {
    -webkit-tap-highlight-color:rgba(225,225,225,.5);
    position:relative;
    cursor:pointer;
    *zoom:1;
    color:inherit
}
.CardAdFeed-attachment .inline-img {
    float:left;
    height:112px;
    width:200px;
    border-radius:4px;
    margin:1px 10px 5px 0
}
.CardAdFeed-attachment:before,.CardAdFeed-attachment:after {
    display:table;
    content:""
}
.CardAdFeed-attachment:after {
    clear:both
}
.CardAdFeed-attachment:before,.CardAdFeed-attachment:after {
    display:table;
    content:""
}
.CardAdFeed-attachment:after {
    clear:both
}
.CardAdFeed-attachment:hover {
    text-decoration:none
}
.CardAdFeed-button {
    color:#25bb9b
}
.CardAdFeed-attachment:hover .CardAdFeed-button {
    text-decoration:none;
    background-color:#eff6fa
}
.HomeTopics {
    padding-bottom:8px;
    border-bottom:1px solid #eee
}
.HomeTopics-title {
    float:left;
    color:#666
}
.HomeTopics-list {
    margin-top:10px;
    *zoom:1
}
.HomeTopics-list:before,.HomeTopics-list:after {
    display:table;
    content:""
}
.HomeTopics-list:after {
    clear:both
}
.HomeTopics-list:before,.HomeTopics-list:after {
    display:table;
    content


object;
	}

	/**
	 * @param object the object to set
	 */
	public void setObject(AbstractObject object)
	{
		this.object = object;
		if ((widget == null) || widget.isDisposed())
		{
			widget = new Card(parent, getTitle()) {
				@Override
				protected Control createClientArea(Composite parent)
				{
					return OverviewPageElement.this.createClientArea(parent);
				}
			};
			GridData gd = new GridData();
			gd.horizontalAlignment = SWT.FILL;
         gd.horizontalSpan = horizontalSpan;
			gd.grabExcessHorizontalSpace = true;
         gd.verticalAlignment = verticalAlignment;
         gd.heightHint = getHeightHint();
			widget.setLayoutData(gd);
		}
		onObjectChange();
	}

	/**
	 * Dispose widget associated with this element
	 */
	public void dispose()
	{
		if ((widget != null) && !widget.isDisposed())
			widget.dispose();
	}

   /**
    * Check if widget associated with this element is disposed.
    *
    * @return true if widget associated with this element is disposed
    */
   public boolean isDisposed()
   {
      return (widget == null) || widget.isDisposed();
   }

	/**
	 * Check if element is applicable for given object. Default implementation
	 * always returns true.
	 *
	 * @param object object to test
	 * @return true if element is applicable
	 */
	public boolean isApplicableForObject(AbstractObject object)
	{
		return true;
	}

	/**
	 * Fix control placement
	 */
	public void fixPlacement()
	{
		if ((widget != null) && !widget.isDisposed())
		{
			if (anchor == null)
			{
				widget.moveAbove(null);
			}
			else
			{
				widget.moveBelow(anchor.getAnchorControl());
			}
		}
	}

	/**
    * @return the verticalAlignment
    */
   public int getVerticalAlignment()
   {
      return verticalAlignment;
   }

   /**
    * @param verticalAlignment the verticalAlignment to set
    */
   public void setVerticalAlignment(int verticalAlignment)
   {
      this.verticalAlignment = verticalAlignment;
   }

   /**
    * @return the horizontalSpan
    */
   public int getHorizontalSpan()
   {
      return horizontalSpan;
   }

   /**
    * @param horizontalSpan the horizontalSpan to set
    */
   public void setHorizontalSpan(int horizontalSpan)
   {
      this.horizontalSpan = horizontalSpan;
   }

   /**
    * @return
    */
	private Control getAnchorControl()
	{
		if ((widget != null) && !widget.isDisposed())
			return widget;
		if (anchor != null)
			return anchor.getAnchorControl();
		return null;
	}

	/**
	 * @return
	 */
	protected Display getDisplay()
	{
		return ((widget != null) && !widget.isDisposed()) ? widget.getDisplay() : Display.getCurrent();
	}

	/**
	 * @return
	 */
   protected ObjectView getObjectView()
	{
      return objectView;
	}

	/**
	 * Create client area.
	 *
	 * @param parent
	 * @return
	 */
	protected abstract Control createClientArea(Composite parent);

	/**
	 * Get height hint for element content.
	 *
	 * @return height hint for element content
	 */
	protected int getHeightHint()
	{
	   return SWT.DEFAULT;
	}

	/**
	 * Handler for object change.
	 */
	protected abstract void onObjectChange();

	/**
	 * Get element's title
	 *
	 * @return element's title
	 */
	protected abstract String getTitle();
}
/**
 * NetXMS - open source network management system
 * Copyright (C) 2019 RadenSolutions
 *
 * This program 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 2 of the License, or
 * (at your option) any later version


 KPC_ME		(0x1 << 12)  /* Matrix Keypad Enable */
#define KPC_MIE		(0x1 << 11)  /* Matrix Interrupt Enable */
#define KPC_DK_DEB_SEL	(0x1 <<	 9)  /* Direct Key Debounce select */
#define KPC_DI		(0x1 <<	 5)  /* Direct key interrupt bit */
#define KPC_DEE0	(0x1 <<	 2)  /* Rotary Encoder 0 Enable */
#define KPC_DE		(0x1 <<	 1)  /* Direct Keypad Enable */
#define KPC_DIE		(0x1 <<	 0)  /* Direct Keypad interrupt Enable */

#define KPDK_DKP	(0x1 << 31)
#define KPDK_DK7	(0x1 <<	 7)
#define KPDK_DK6	(0x1 <<	 6)
#define KPDK_DK5	(0x1 <<	 5)
#define KPDK_DK4	(0x1 <<	 4)
#define KPDK_DK3	(0x1 <<	 3)
#define KPDK_DK2	(0x1 <<	 2)
#define KPDK_DK1	(0x1 <<	 1)
#define KPDK_DK0	(0x1 <<	 0)

#define KPREC_OF1	(0x1 << 31)
#define kPREC_UF1	(0x1 << 30)
#define KPREC_OF0	(0x1 << 15)
#define KPREC_UF0	(0x1 << 14)

#define KPMK_MKP	(0x1 << 31)
#define KPAS_SO		(0x1 << 31)
#define KPASMKPx_SO	(0x1 << 31)

#define GPIO113_BIT	(1 << 17)/* GPIO113 in GPSR, GPCR, bit 17 */
#define PSLR		0x40F00034
#define PSTR		0x40F00038  /* Power Manager Standby Configuration Reg */
#define PSNR		0x40F0003C  /* Power Manager Sense Configuration Reg */
#define PVCR		0x40F00040  /* Power Manager Voltage Change Control Reg */
#define PKWR		0x40F00050  /* Power Manager KB Wake-Up Enable Reg */
#define PKSR		0x40F00054  /* Power Manager KB Level-Detect Status Reg */
#define OSMR4		0x40A00080  /* */
#define OSCR4		0x40A00040  /* OS Timer Counter Register */
#define OMCR4		0x40A000C0  /* */

#endif	/* CONFIG_CPU_PXA27X */

#endif	/* _PXA_REGS_H_ */


andom().eval() ));
  CALL_SUBTEST_2(rvalue_copyassign( Array<float,4,4>::Random().eval() ));
}
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// Copyright (C) 2010 Hauke Heibel <hauke.heibel@gmail.com>
// Copyright (C) 2015 Gael Guennebaud <gael.guennebaud@inria.fr>
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#define TEST_ENABLE_TEMPORARY_TRACKING

#include "main.h"

template <int N, typename XprType>
void use_n_times(const XprType &xpr)
{
  typename internal::nested_eval<XprType,N>::type mat(xpr);
  typename XprType::PlainObject res(mat.rows(), mat.cols());
  nb_temporaries--; // remove res
  res.setZero();
  for(int i=0; i<N; ++i)
    res += mat;
}

template <int N, typename ReferenceType, typename XprType>
bool verify_eval_type(const XprType &, const ReferenceType&)
{
  typedef typename internal::nested_eval<XprType,N>::type EvalType;
  return internal::is_same<typename internal::remove_all<EvalType>::type, typename internal::remove_all<ReferenceType>::type>::value;
}

template <typename MatrixType> void run_nesting_ops_1(const MatrixType& _m)
{
  typename internal::nested_eval<MatrixType,2>::type m(_m);

  // Make really sure that we are in debug mode!
  VERIFY_RAISES_ASSERT(eigen_assert(false));

  // The only intention of these tests is to ensure that this code does
  // not trigger any asserts or segmentation faults... more to come.
  VERIFY_IS_APPROX( (m.transpose() * m).diagonal().sum(), (m.transpose() * m).diagonal().sum() );
  VERIFY_IS_APPROX( (m.transpose() * m).diagonal().array().abs().sum(), (m.transpose() * m).diagonal().array().abs().sum() );

  VERIFY_IS_APPROX( (m.transpose() * m).array().abs().sum(), (m.transpose() * m).array().abs().sum() );
}

template <typename MatrixType> void run_nesting_ops_2(const MatrixType& _m)
{
  typedef typename MatrixType::Scalar Scalar;
  Index rows = _m.rows();
  Index cols = _m.cols();
  MatrixType m1 = MatrixType::Random(rows,cols);
  Matrix<Scalar,MatrixType::RowsAtCompileTime,MatrixType::ColsAtCompileTime,ColMajor> m2;

  if((MatrixType::SizeAtCompileTime==Dynamic))
  {
    VERIFY_EVALUATION_COUNT( use_n_times<1>(m1 + m1*m1), 1 );
    VERIFY_EVALUATION_COUNT( use_n_times<10>(m1 + m1*m1), 1 );

    VERIFY_EVALUATION_COUNT( use_n_times<1>(m1.template triangularView<Lower>().solve(m1.col(0))), 1 );
    VERIFY_EVALUATION_COUNT( use_n_times<10>(m1.template triangularView<Lower>().solve(m1.col(0))), 1 );

    VERIFY_EVALUATION_COUNT( use_n_times<1>(Scalar(2)*m1.template triangularView<Lower>().solve(m1.col(0))), 2 ); // FIXME could be one by applying the scaling in-place on the solve result
    VERIFY_EVALUATION_COUNT(


continue;
      }
      const color = obj[_xfa_object.$toStyle](this.color);
      if (color) {
        style[color.startsWith("#") ? propName : altPropName] = color;
      }
      return style;
    }
    if (this.color && this.color.value) {
      const color = this.color[_xfa_object.$toStyle]();
      style[color.startsWith("#") ? propName : altPropName] = color;
    }
    return style;
  }
}
class Filter extends _xfa_object.XFAObject {
  constructor(attributes) {
    super(TEMPLATE_NS_ID, "filter", true);
    this.addRevocationInfo = (0, _utils.getStringOption)(attributes.addRevocationInfo, ["", "required", "optional", "none"]);
    this.id = attributes.id || "";
    this.name = attributes.name || "";
    this.use = attributes.use || "";
    this.usehref = attributes.usehref || "";
    this.version = (0, _utils.getInteger)({
      data: this.version,
      defaultValue: 5,
      validate: x => x >= 1 && x <= 5
    });
    this.appearanceFilter = null;
    this.certificates = null;
    this.digestMethods = null;
    this.encodings = null;
    this.encryptionMethods = null;
    this.handler = null;
    this.lockDocument = null;
    this.mdp = null;
    this.reasons = null;
    this.timeStamp = null;
  }
}
class Float extends _xfa_object.ContentObject {
  constructor(attributes) {
    super(TEMPLATE_NS_ID, "float");
    this.id = attributes.id || "";
    this.name = attributes.name || "";
    this.use = attributes.use || "";
    this.usehref = attributes.usehref || "";
  }
  [_xfa_object.$finalize]() {
    const number = parseFloat(this[_xfa_object.$content].trim());
    this[_xfa_object.$content] = isNaN(number) ? null : number;
  }
  [_xfa_object.$toHTML](availableSpace) {
    return valueToHtml(this[_xfa_object.$content] !== null ? this[_xfa_object.$content].toString() : "");
  }
}
class Font extends _xfa_object.XFAObject {
  constructor(attributes) {
    super(TEMPLATE_NS_ID, "font", true);
    this.baselineShift = (0, _utils.getMeasurement)(attributes.baselineShift);
    this.fontHorizontalScale = (0, _utils.getFloat)({
      data: attributes.fontHorizontalScale,
      defaultValue: 100,
      validate: x => x >= 0
    });
    this.fontVerticalScale = (0, _utils.getFloat)({
      data: attributes.fontVerticalScale,
      defaultValue: 100,
      validate: x => x >= 0
    });
    this.id = attributes.id || "";
    this.kerningMode = (0, _utils.getStringOption)(attributes.kerningMode, ["none", "pair"]);
    this.letterSpacing = (0, _utils.getMeasurement)(attributes.letterSpacing, "0");
    this.lineThrough = (0, _utils.getInteger)({
      data: attributes.lineThrough,
      defaultValue: 0,
      validate: x => x === 1 || x === 2
    });
    this.lineThroughPeriod = (0, _utils.getStringOption)(attributes.lineThroughPeriod, ["all", "word"]);
    this.overline = (0, _utils.getInteger)({
      data: attributes.overline,
      defaultValue: 0,
      validate: x => x === 1 || x === 2
    });
    this.overlinePeriod = (0, _utils.getStringOption)(attributes.overlinePeriod, ["all", "word"]);
    this.posture = (0, _utils.getStringOption)(attributes.posture, ["normal", "italic"]);


                  TodoListSyncTimeWrapper(
                            todos.filter { todo -> todo.type == "study" },
                            it.syncTime
                        )
                    )
                    _categoryTodoLife.postValue(
                        TodoListSyncTimeWrapper(
                            todos.filter { todo -> todo.type == "life" },
                            it.syncTime
                        )
                    )
                    _categoryTodoOther.postValue(
                        TodoListSyncTimeWrapper(
                            todos.filter { todo -> todo.type == "other" },
                            it.syncTime
                        )
                    )
                    it.syncTime.apply {
                        setLastSyncTime(this)
                    }
                    syncWithRemote(todos)
                }

            }
    }

    /**
     * 推送todo
     */
    fun pushTodo(pushWrapper: TodoListPushWrapper) {
        TodoRepository
            .pushTodo(pushWrapper)
            .mapOrInterceptException {
                viewModelScope.launch {
                    val modifyTime = System.currentTimeMillis() / 1000
                    setLastModifyTime(modifyTime)
                    TodoDatabase.instance.todoDao().insertAll(pushWrapper.todoList)
                    TodoWidget.sendAddTodoBroadcast(appContext)
                    getAllTodo()
                    _isPushed.postValue(true)
                }
            }
            .safeSubscribeBy {
                getAllTodo()
                viewModelScope.launch(Dispatchers.IO) {
                    TodoDatabase.instance.todoDao().insertAll(pushWrapper.todoList)
                }
                TodoWidget.sendAddTodoBroadcast(appContext)
                _isPushed.postValue(true)
                it.syncTime.apply {
                    setLastSyncTime(this)
                    setLastModifyTime(this)
                }
            }
    }

    /**
     * 详情页更新todo
     */
    fun updateTodo(todo: Todo) {
        val syncTime = getLastSyncTime()
        val pushWrapper = TodoListPushWrapper(
            todoList = listOf(todo),
            syncTime = syncTime,
            force = TodoListPushWrapper.NONE_FORCE,
            firsPush = if (syncTime == 0L) 1 else 0
        )

        TodoRepository.pushTodo(pushWrapper)
            .mapOrInterceptException {
                viewModelScope.launch {
                    val modifyTime = System.currentTimeMillis() / 1000
                    setLastModifyTime(modifyTime)
                    TodoDatabase.instance.todoDao().insertAll(pushWrapper.todoList)
                    TodoWidget.sendAddTodoBroadcast(appContext)
                }
            }
            .safeSubscribeBy {
                viewModelScope.launch {
                    setLastModifyTime(it.syncTime)
                    TodoDatabase.instance.todoDao().insertAll(pushWrapper.todoList)
                }
                TodoWidget.sendAddTodoBroadcast(appContext)
                it.syncTime.apply {
                    setLastSyncTime(this)
                    setLastModifyTime(this)
                }
            }
        rawTodo = todo
    }

    /**
     * 删除todo
     */
    fun delTodo(delPushWrapper: DelPushWrapper) {
        TodoRepository
            .delTodo(delPushWrapper)
            .mapOrInterceptException {
                viewModelScope.launch {
                    val modifyTime = System.currentTimeMillis() / 1000
                    setLastModifyTime(modifyTime)
                    delPushWrapper.delTodoList.forEach { todoId ->
                        TodoDatabase.instance.todoDao().deleteTodoById(todoId)
                    }
                    TodoWidget.sendAddTodoBroadcast(appContext)
                    getAllTodo()
                }
            }


#include <stdio.h>
#include <time.h>

#include "util/bitvec.h"
#include "test_macros.h"

int
main(int argc, char *argv[])
{
	bitvec_t *bv;
	int i, j;
	clock_t c;

	(void)argc;
	(void)argv;
	TEST_ASSERT(bv = bitvec_alloc(199));
	bitvec_set(bv,198);
	bitvec_set(bv,0);
	bitvec_set(bv,42);
	bitvec_set(bv,43);
	bitvec_set(bv,44);
	TEST_ASSERT(bitvec_is_set(bv,198));
	TEST_ASSERT(bitvec_is_set(bv,0));
	TEST_ASSERT(bitvec_is_set(bv,42));
	TEST_ASSERT(bitvec_is_set(bv,43));
	TEST_ASSERT(bitvec_is_set(bv,44));
	TEST_EQUAL(5, bitvec_count_set(bv, 199));
	bitvec_clear(bv, 43);
	TEST_EQUAL(0, bitvec_is_set(bv,43));

	c = clock();
	for (j = 0; j < 1000000; ++j)
		bitvec_count_set(bv, 199);
	c = clock() - c;
	printf("1000000 * 199 bitvec_count_set in %.2f sec\n",
	       (double)c / CLOCKS_PER_SEC);
	bitvec_free(bv);

	bv = bitvec_alloc(1314);
	c = clock();
	for (j = 0; j < 50000; ++j)
		for (i = 0; i < 1314; ++i)
			bitvec_set(bv, i);
	c = clock() - c;
	printf("50000 * 1314 bitvec_set in %.2f sec\n",
	       (double)c / CLOCKS_PER_SEC);
	bitvec_free(bv);

	/* Test realloc */
	bv = bitvec_alloc(13);
	for (i = 1; i < 13; i+=2)
	    bitvec_set(bv, i);
	printf("Bits set %ld\n", bitvec_count_set(bv, 13));
        TEST_EQUAL(6, bitvec_count_set(bv, 13));
	bv = bitvec_realloc(bv, 13, 2000);
	for (i = 0; i < 2000; i++) {
          /* printf("%d %d\n", i, bitvec_is_set(bv, i) != 0); */
	}
	printf("Bits set after realloc %ld\n", bitvec_count_set(bv, 2000));
        TEST_EQUAL(6, bitvec_count_set(bv, 2000));
	bitvec_free(bv);

	return 0;
}


ion in the triangle.
///
/// `Q2` Third quaternion in the triangle.
///
/// `f` Weighting factor. See the remarks.
///
/// `g` Weighting factor. See the remarks.
///
/// ## Return value
///
/// Returns a quaternion in barycentric coordinates.
///
/// ## Remarks
///
/// The following pseudocode demonstrates the operation of the function.
///
/// ```text
/// XMVECTOR Result;
/// XMVECTOR QA, QB;
/// float s = f + g;
///
/// if (s != 0.0f)
/// {
///     QA = XMQuaternionSlerp(Q0, Q1, s);
///     QB = XMQuaternionSlerp(Q0, Q2, s);
///     Result = XMQuaternionSlerp(QA, QB, g / s);
/// }
/// else
/// {
///     Result.x = Q0.x;
///     Result.y = Q0.y;
///     Result.z = Q0.z;
///     Result.w = Q0.w;
/// }
///
/// return Result;
/// ```
///
/// Note that Barycentric coordinates work for 'flat' surfaces but not for 'curved' ones.
/// This function is therefore a bit of a work-around. An alternative method for blending
/// 3 quanterions is given by the following code:
///
/// ```text
/// inline XMVECTOR XMQuaternionBlend(
///   FXMVECTOR Q0,
///   FXMVECTOR Q1,
///   FXMVECTOR Q2,
///   float w1,
///   float w2
/// )
/// {
///     // Note if you choose one of the three weights to be zero, you get a blend of two
///     // quaternions.  This does not give you slerp of those quaternions.
///     float w0 = 1.0f - w1 - w2;
///     XMVECTOR Result = XMVector4Normalize(
///         XMVectorScale(Q0, w0) +
///         XMVectorScale(Q1, w1) +
///         XMVectorScale(Q2, w2));
///     return Result;
/// }
/// ```
///
/// ## Reference
///
/// <https://docs.microsoft.com/en-us/windows/win32/api/directxmath/nf-directxmath-XMQuaternionBaryCentric>
#[inline]
pub fn XMQuaternionBaryCentric(
    Q0: FXMVECTOR,
    Q1: FXMVECTOR,
    Q2: FXMVECTOR,
    f: f32,
    g: f32,
) -> XMVECTOR
{
    let s = f + g;

    let Result: XMVECTOR;
    if ((s < 0.00001) && (s > -0.00001))
    {
        Result = Q0;
    }
    else
    {
        let Q01: XMVECTOR = XMQuaternionSlerp(Q0, Q1, s);
        let Q02: XMVECTOR = XMQuaternionSlerp(Q0, Q2, s);

        Result = XMQuaternionSlerp(Q01, Q02, g / s);
    }

    return Result;
}

/// Returns a point in barycentric coordinates, using the specified quaternions.
///
/// ## Parameters
///
/// `Q0` First quaternion in the triangle.
///
/// `Q1` Second quaternion in the triangle.
///
/// `Q2` Third quaternion in the triangle.
///
/// `F` Weighting factor. All components of this vector must be the same.
///
/// `G` Weighting factor. All components of this vector must be the same.
///
/// ## Return value
///
/// Returns a quaternion in barycentric coordinates.
///
/// ## Remarks
///
/// The DirectXMath quaternion functions use an XMVECTOR 4-vector to represent quaternions, where
/// the `X`, `Y`, and `Z` components are the vector part and the `W` component is the scalar par


tive,
    .btn--inactive:focus{
        background-color:#ddd;
        color:#777;
        cursor:text;            /* [1] */
    }

/*------------------------------------*\
    $STYLES
\*------------------------------------*/
/**
 * Button style modifiers.
 *
 * 1. Use an overly-large number to ensure completely rounded, pill-like ends.
 */
.btn--soft{
    border-radius:200px;        /* [1] */
}

.btn--hard{
    border-radius:0;
}

}//endif
@charset "UTF-8";
@if $debug-mode == true{
/*------------------------------------*\
    $DEBUG
\*------------------------------------*/
/**
 * Enable this stylesheet to visually detect any improperly nested or
 * potentially invalid markup, or any potentially inaccessible code.
 *
 * Red          ==      definite error
 * Yellow       ==      double-check
 * None         ==      should be fine
 *
 * Please note that this method of checking markup quality should not be relied
 * upon entirely. Validate your markup!
 */

/**
 * Are there any empty elements in your page?
 */
:empty{
    outline:5px solid yellow;
}

/**
 * Images require `alt` attributes, empty `alt`s are fine but should be
 * double-checked, no `alt` is bad and is flagged red.
 */
img{
    outline:5px solid red;
}
img[alt]{
    outline:none;
}
img[alt=""]{
    outline:5px solid yellow;
}

/**
 * Links sometimes, though not always, benefit from `title` attributes. Links
 * without are never invalid but it’s a good idea to check.
 */
a{
    outline:5px solid yellow;
}
a[title]{
    outline:none;
}

/**
 * Double-check any links whose `href` is something questionable.
 */
a[href="#"],
a[href*="javascript"]{
    outline:5px solid yellow;
}

/**
 * The `target` attribute ain’t too nice...
 */
a[target]{
    outline:5px solid yellow;
}

/**
 * Ensure any lists only contain `li`s as children.
 */
ul,
ol{
    > *:not(li){
        outline:5px solid red;
    }
}

/**
 * It’s always nice to give `th`s `scope` attributes.
 */
th{
    outline:5px solid yellow;
}
th[scope]{
    outline:none;
}

/**
 * `tr`s as children of `table`s ain’t great, did you need a `thead`/`tbody`?
 */
table > tr{
    outline:5px solid yellow;
}

/**
 * `tfoot` needs to come *before* `tbody`.
 */
tbody + tfoot{
    outline:5px solid yellow;
}

/**
 * Forms require `action` attributes
 */
form{
    outline:5px solid red;
}
form[action]{
    outline:none;
}

/**
 * Various form-field types have required attributes. `input`s need `type`
 * attributes, `textarea`s need `rows` and `cols` attributes and submit buttons
 * need a `value` attribute.
 */
textarea,
input{
    outline:5px solid red;
}
input[type]{
    outline:none;
}
textarea[rows][cols]{
    outline:none;
}
input[type=submit]{
    outline:5px solid red;
}
input[type=submit][value]{
    outline:none;
}

/**
 * Avoid inline styles where possible.
 */
[style]{
	outline:5px solid yellow;
}

/**
 * You should avoid using IDs for CSS, is this doing any styling?
 */
[id]{
	outline:5px solid yellow;
}

/**
 * Are you using the grid system correctly?
 */
.gw > :not(.g),
.grid-wrapper > :not(.grid),
.gw--rev > :


0
/* 8026B3CC 0026702C  4E 80 00 20 */	blr

.global OSSwitchFPUContext
OSSwitchFPUContext:
/* 8026B3D0 00267030  7C A0 00 A6 */	mfmsr r5
/* 8026B3D4 00267034  60 A5 20 00 */	ori r5, r5, 0x2000
/* 8026B3D8 00267038  7C A0 01 24 */	mtmsr r5
/* 8026B3DC 0026703C  4C 00 01 2C */	isync
/* 8026B3E0 00267040  80 A4 01 9C */	lwz r5, 0x19c(r4)
/* 8026B3E4 00267044  60 A5 20 00 */	ori r5, r5, 0x2000
/* 8026B3E8 00267048  7C BB 03 A6 */	mtspr 0x1b, r5
/* 8026B3EC 0026704C  3C 60 80 00 */	lis r3, 0x800000D8@ha
/* 8026B3F0 00267050  80 A3 00 D8 */	lwz r5, 0x800000D8@l(r3)
/* 8026B3F4 00267054  90 83 00 D8 */	stw r4, 0xd8(r3)
/* 8026B3F8 00267058  7C 05 20 00 */	cmpw r5, r4
/* 8026B3FC 0026705C  41 82 00 14 */	beq lbl_8026B410
/* 8026B400 00267060  2C 05 00 00 */	cmpwi r5, 0
/* 8026B404 00267064  41 82 00 08 */	beq lbl_8026B40C
/* 8026B408 00267068  4B FF F9 31 */	bl __OSSaveFPUContext
lbl_8026B40C:
/* 8026B40C 0026706C  4B FF F8 09 */	bl __OSLoadFPUContext
lbl_8026B410:
/* 8026B410 00267070  80 64 00 80 */	lwz r3, 0x80(r4)
/* 8026B414 00267074  7C 6F F1 20 */	mtcrf 0xff, r3
/* 8026B418 00267078  80 64 00 84 */	lwz r3, 0x84(r4)
/* 8026B41C 0026707C  7C 68 03 A6 */	mtlr r3
/* 8026B420 00267080  80 64 01 98 */	lwz r3, 0x198(r4)
/* 8026B424 00267084  7C 7A 03 A6 */	mtspr 0x1a, r3
/* 8026B428 00267088  80 64 00 88 */	lwz r3, 0x88(r4)
/* 8026B42C 0026708C  7C 69 03 A6 */	mtctr r3
/* 8026B430 00267090  80 64 00 8C */	lwz r3, 0x8c(r4)
/* 802


",12],
["a896","",10],
["a8bc","ḿ"],
["a8bf","ǹ"],
["a8c1",""],
["a8ea","",20],
["a958",""],
["a95b",""],
["a95d",""],
["a989","〾⿰",11],
["a997","",12],
["a9f0","",14],
["aaa1","",93],
["aba1","",93],
["aca1","",93],
["ada1","",93],
["aea1","",93],
["afa1","",93],
["d7fa","",4],
["f8a1","",93],
["f9a1","",93],
["faa1","",93],
["fba1","",93],
["fca1","",93],
["fda1","",93],
["fe50","⺁⺄㑳㑇⺈⺋㖞㘚㘎⺌⺗㥮㤘㧏㧟㩳㧐㭎㱮㳠⺧⺪䁖䅟⺮䌷⺳⺶⺷䎱䎬⺻䏝䓖䙡䙌"],
["fe80","䜣䜩䝼䞍⻊䥇䥺䥽䦂䦃䦅䦆䦟䦛䦷䦶䲣䲟䲠䲡䱷䲢䴓",6,"䶮",93],
["8135f437",""]
]

},{}],15:[function(require,module,exports){
module.exports=[
["0","\u0000",128],
["a1","｡",62],
["8140","　、。，．・：；？！゛゜´｀¨＾￣＿ヽヾゝゞ〃仝々〆〇ー―‐／＼～∥｜…‥‘’“”（）〔〕［］｛｝〈",9,"＋－±×"],
["8180","÷＝≠＜＞≦≧∞∴♂♀°′″℃￥＄￠￡％＃＆＊＠§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓"],
["81b8","∈∋⊆⊇⊂⊃∪∩"],
["81c8","∧∨￢⇒⇔∀∃"],
["81da","∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬"],
["81f0","Å‰♯♭♪†‡¶"],
["81fc","◯"],
["824f","０",9],
["8260","Ａ",25],
["8281","ａ",25],
["829f","ぁ",82],
["8340","ァ",62],
["8380","ム",22],
["839f","Α",16,"Σ",6],
["83bf","α",16,"σ",6],
["8440","А",5,"ЁЖ",25],
["8470","а",5,"ёж",7],
["8480","о",17],
["849f","─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂"],
["8740","①",19,"Ⅰ",9],
["875f","㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡"],
["877e","㍻"],
["8780","〝〟№㏍℡㊤",4,"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪"],
["889f","亜唖娃阿哀愛挨姶逢


 {
    //         Arg::Rng(_, v) => if v.len() == 1 {
    //             v[0].col == col && v[0].row == row
    //         } else {
    //             v[0].col >= col && v[0].row >= row && v[1].col <= col && v[1].row <= row
    //         },
    //         _ => false,
    //     }
    // }
    pub fn move_by(&mut self, dcol: isize, drow: isize, bcol: usize, brow: usize) {
        if dcol == 0 && drow == 0 {
            return;
        }
        match self {
            Arg::Rng(_, v) => {
                let mut vnew: Vec<Pos> = Vec::new();
                let mut changed = false;
                for mut pos in v.iter().cloned() {
                    if !pos.fixed_col && dcol != 0 && pos.col >= bcol {
                        let newcol = pos.col as isize + dcol;
                        pos.col = if newcol < 0 { 0 } else { newcol as usize};
                        changed = true;
                    }
                    if !pos.fixed_row && drow != 0 && pos.row >= brow {
                        let newrow = pos.row as isize + drow;
                        pos.row = if newrow < 0 { 0 } else { newrow as usize};
                        changed = true;
                    }
                    vnew.push(pos);
                }
                if changed {
                    std::mem::swap(self, &mut Arg::Rng(None, vnew));
                }
            },
            _ => {},
        }
    }
}

#[derive(Debug,Copy,Clone, PartialEq)]
pub struct Pos {
    pub col: usize,
    pub row: usize,
    pub fixed_col: bool,
    pub fixed_row: bool,
    pub full_col: bool, // TODO: support in formulae
    pub full_row: bool, // TODO: support in formulae
}

impl Default for Pos {
    fn default() -> Pos {
        Pos {
            col: UNINIT, fixed_col: false, full_col: false,
            row: UNINIT, fixed_row: false, full_row: false,
        }
    }
}

impl Pos {
    pub fn new(col: usize, row: usize) -> Pos {
        Pos{col, row, ..Pos::default()}
    }
}

pub fn err_msg(errcode: u16) -> &'static str {
    match errcode {
        0 => "",
        2 => "#RECURSE",
        3 => "#DIV/0",
        _ => "#VALUE!",
    }
}

const COL_SHIFT: u64 = 100000; // max number of columns 18000+, take next 10th power
pub fn pos_to_id(col: usize, row: usize) -> u64 {
    row as u64 * COL_SHIFT + col as u64
}
pub fn id_to_pos(id: u64) -> (usize, usize) {
    let (col, row) = (id % COL_SHIFT, id / COL_SHIFT);
    (col as usize, row as usize)
}
<reponame>ThuriyaThwin/Wumpus<gh_stars>0
aima.core.environment.map.SimplifiedRoadMapOfAustralia
use crate::{Chain, DataSource};
use anyhow::Result;
use blockchain::HostFn;
use graph::blockchain;

pub struct RuntimeAdapter {}

impl blockchain::RuntimeAdapter<Chain> for RuntimeAdapter {
    fn host_fns(&self, _ds: &DataSource) -> Result<Vec<HostFn>> {
        Ok(vec![])
    }
}
<filename>test_suite/tests/ui/identifier/variant_struct.rs<gh_stars>0
#[macro_use]
extern crate serde_derive;

#[derive(Deserialize)]
#[serde(variant_identifier)]
struct S;

fn main() {}
<filename>Ru


ения: Катаклизм.",
    ["T"] = "Точка вторжения: Катаклизм",
  },
  [10767] = {
    ["D"] = "Теперь, когда у нас есть доступ к базе Легиона в Точке вторжения: Катаклизм, нужно придумать способ положить конец их действиям. Деревня Призрачной Луны не может спать спокойно, пока даже следы присутствия Легиона в этой местности не стерты с лица земли.$B$BЯ послал туда передовой отряд, чтобы помочь тебе уничтожить их припасы. Возвращайся в форт Легиона и воспользуйся телепортом, отмеченным зелеными кристаллами. Наканси встретит тебя на месте.",
    ["O"] = "Доложитесь Наканси в Точке вторжения: Катаклизм.",
    ["T"] = "Точка вторжения: Катаклизм",
  },
  [10768] = {
    ["D"] = "Всадники на ветрокрылах должны вернуться в Деревню Призрачной Луны, чтобы подготовиться к следующему этапу нашего штурма. Теперь мне от тебя нужны гербовые накидки эльфов крови.$B$BКогда ты соберешь достаточно гербовых накидок, подай сигнал всадникам на ветрокрылах, используя кор\'кронское сигнальное ружье. Пришло время попробовать себя в шпионаже, |3-6($R)!",
    ["O"] = "Collect 10 Illidari Tabards and then use the Kor\'kron Flare Gun to signal another Kor\'kron Wind Rider.$B$BSpeak with Overlord Or\'barokh at Shadowmoon Village in Shadowmoon Valley should you lose your Kor\'kron Flare Gun and require a replacement.",
    ["T"] = "Гербовые накидки Иллидари",
  },
  [10769] = {
    ["D"] = "Ученый Тиорус был так добр, подготовить эту смесь для последней стычки. Я просто вылью ее на эту гербовую накидку, которую тебе удалось раздобыть и на ней возникнет образ негодяев Иллидари.$B$BВозьми эту зачарованную гербовую накидку и отправляйся в Поля Затмения, к юго-западу от Лагеря Затмения. Там используй гербовую накидку, чтобы превратиться в агента Иллидана. Пользуясь личиной, убей безумных колоссов, бродящих по полю. Они сочтут это нападением лагеря Затмения, и союз будет разорван.",
    ["O"] = "Убейте 5 безумных колоссов в личине эльфа крови Иллидари и потом вернитесь к Властителю Ор\'барокху в Деревню Призрачной Л


tToolType(toolID)==1&&getToolType()==1) {//they've got a pick and we need a pick
          if (getToolLevel(toolID)==12) {//gold exception
             return getToolLevel()<=6; //only works if iron or less needed
          } else {
             return getToolLevel(toolID)>=getToolLevel();//if they've got something better or equal to what we need
          }
       } else if (getToolType(toolID)==2&&getToolType()==2) {//they've got a shovel and we need a shovel
          return true;
       }//note: there are no cases where an axe is nessesary
       return false;
    }

    //for determining the level of tool required to break this block
    //see getToolLevel(toolId) for listing of tool levels
    private int getToolLevel() {
       if (getToolType()<=3) {
          return 1;//hand
       } else {
          return getToolLevel(tool);
       }
    }

    //returns the "level" of a given item id
    //the level of a tool is directly used in calculating break time
    public int getToolLevel(int toolID) {
       if (getToolType(toolID)==-1) {
          return 1;//hand
       } else if (toolID==269||toolID==270||toolID==271) {
          return 2;//wood
       } else if (toolID==273||toolID==274||toolID==275) {
          return 4;//stone
       } else if (toolID==256||toolID==257||toolID==258) {
          return 6;//iron
       } else if (toolID==277||toolID==278||toolID==279) {
          return 8;//diamond
       } else if (toolID==284||toolID==285||toolID==286) {
          return 12;//gold
       } else {//note: shouldn't reach this case, as unrecognized tools are treated as hand.
          throw new IllegalArgumentException("tool id not recognized");
       }
    }

       //returns the time required to break a block with a given tool in miliseconds
       //mishandles jackolantern, pumpkin, melon, cobweb, leaves, vines, cocoa if using sword
       public int getBreakTime(int toolID) {
          if (hardness==-1) {//unbreakable block
             return -1;
          }
          if(isValidTool(toolID)) {//add sword complexity
             if (tool==359) {//shears exception
                if (id==35) {
                   return (int)(1000*0.24);
                } else {
                   return (int) (hardness*.1);
                }
             } else {
                return (int)(hardness*(3.0/(2.0*getToolLevel(toolID))));
             }
          } else {
             if(getToolType()==getToolType(toolID)) {
                return (int) (hardness*(5.0/getToolLevel(toolID)));
             } else {
                return (int) (hardness*(5.0));
             }
          }
       }

    public Block getRelative(int bx, int by, int bz){
        Block b = world.getBlock(x+bx, y+by, z+bz);
        if(b == null){
            System.out.println("B is null, ending the world....");
        }
        return b;
    }

}
/*
 * ShoppingList - A simple shopping list for Android
 *
 * Copyright (C) 2018.  Wolfgang Popp
 *
 * This program 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.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR