es: map[string]*nodeCIDRs{},
				}
			},
			args: args{
				nodeName: "node-1",
			},
			want: false,
		},
		{
			name: "test-2",
			testSetup: func() *fields {
				onReleaseCalls = 0
				cidrSet := []cidralloc.CIDRAllocator{
					&mockCIDRAllocator{
						OnRelease: func(cidr *net.IPNet) error {
							onReleaseCalls++
							require.Equal(t, mustNewCIDRs("10.0.0.0/16")[0], cidr)
							return nil
						},
						OnInRange: func(cidr *net.IPNet) bool {
							require.Equal(t, mustNewCIDRs("10.0.0.0/16")[0], cidr)
							return true
						},
					},
				}
				return &fields{
					v4ClusterCIDRs: cidrSet,
					nodes: map[string]*nodeCIDRs{
						"node-1": {
							v4PodCIDRs: mustNewCIDRs("10.0.0.0/16"),
						},
					},
				}
			},
			testPostRun: func(fields *fields) {
				require.Empty(t, fields.nodes)
				require.Equal(t, 1, onReleaseCalls)
			},
			args: args{
				nodeName: "node-1",
			},
			want: true,
		},
		{
			name: "test-3",
			testSetup: func() *fields {
				onReleaseCalls = 0
				cidrSet := []cidralloc.CIDRAllocator{
					&mockCIDRAllocator{
						OnRelease: func(cidr *net.IPNet) error {
							onReleaseCalls++
							require.Equal(t, mustNewCIDRs("fd00::/80")[0], cidr)
							return nil
						},
						OnInRange: func(cidr *net.IPNet) bool {
							require.Equal(t, mustNewCIDRs("fd00::/80")[0], cidr)
							return true
						},
					},
				}
				return &fields{
					v6ClusterCIDRs: cidrSet,
					nodes: map[string]*nodeCIDRs{
						"node-1": {
							v6PodCIDRs: mustNewCIDRs("fd00::/80"),
						},
					},
				}
			},
			testPostRun: func(fields *fields) {
				require.Empty(t, fields.nodes)
				require.Equal(t, 1, onReleaseCalls)
			},
			args: args{
				nodeName: "node-1",
			},
			want: true,
		},
	}
	for _, tt := range tests {
		tt.fields = tt.testSetup()
		n := &NodesPodCIDRManager{
			logger:           hivetest.Logger(t),
			v4CIDRAllocators: tt.fields.v4ClusterCIDRs,
			v6CIDRAllocators: tt.fields.v6ClusterCIDRs,
			nodes:            tt.fields.nodes,
		}
		got := n.releaseIPNets(tt.args.nodeName)
		require.Equal(t, tt.want, got, "Test Name: %s", tt.name)

		if tt.testPostRun != nil {
			tt.testPostRun(tt.fields)
		}
	}
}

func Test_parsePodCIDRs(t *testing.T) {
	type args struct {
		podCIDRs []string
	}
	tests := []struct {
		name    string
		args    args
		want    *nodeCIDRs
		wantErr bool
	}{
		{
			name: "test-1",
			args: args{
				podCIDRs: []string{
					"1.1.1.1/20",
					"1.1.1.1/28",
				},
			},
			want: &nodeCIDRs{
				v4PodCIDRs: mustNewCIDRs("1.1.1.1/20


』》 / 《米》(地面などの)区画 / 《しばしば軽べつして》《a~》(同類の人・幅の)群れ《+『of』+『名』》 / 〈土地など〉\'を\'区画に分ける,分割する《+『out』+『名』,+『名』+『out』》 / …\'を\'包みにする《+『up』+『名』,+『名』+『up』》'],
  ['parcel post', '小包郵便 / (《略》P.P.,p.p.)'],
  ['parch', '〈熱・太陽などが〉〈のど・土地など〉‘を\'からからに乾かす / 〈豆など〉‘を\'いる,あぶる / からからに渇く'],
  ['parchment', '〈U〉羊皮紙(羊・ヤギの皮で作る) / 〈C〉羊皮紙の文書(写本);卒業証書 / 〈U〉羊皮紙に似せた紙'],
  ['pard', '仲間,相棒(partner)'],
  ['pardon', '〈罪・過失など〉\'を\'『許す』,〈質問・妨害など〉\'を\'大目に見る;〈人〉\'を\'許す / 〈刑罰〉‘を\'免除する,軽減する / 〈U〉〈C〉(…を)許すこと,容赦すること《+『for』+『名』(do『ing』)》 / 〈C〉恩赦,赦免 / =indulgence'],
  ['pardonable', '許すことのできる,容赦できる'],
  ['pardonably', '許されて'],
  ['pardoner', '許す人 / (中世の)免罪符売り'],
  ['pare', '(通例刃物で)…‘の\'皮をむく(peel) / 〈不ぞろいな部分など〉‘を\'切り取る,削る(《+『away』(off』)+『名』+『away』(『off』)》 / (削るようにして)〈予算など〉‘を\'減らす,切詰める《+『down』+『名,』+『名』+『down』》'],
  ['paregoric', '鎮静剤 / 鎮静の'],
  ['parent', '〈C〉『親』(父または母);《複数形で》両親 / 〈C〉親代りの人,保護者 / 《複数形で》《文》先祖,祖先 / 〈C〉《文》源,起源,原因 / 親の(に関する);親のような'],
  ['parent company', '(子会社を持つ)親会社'],
  ['Parent-Teacher Association', '父母と教師の会(《略》『P.T.A.』)'],
  ['parentage', '生まれ(birth);血統;家柄 / 親であること'],
  ['parental', '親の,親としての,親にふさわしい / 親のような'],
  ['parenthesis', '『挿入語句』 / 《複数形で》括弧(通例丸括弧()を資す)'],
  ['parenthetic, p


ear();
//					rootFiles = null;
				}

			}
			catch(Exception e)
			{
				e.printStackTrace();
//				log.warn("",e);
			}
			catch(Throwable e)
			{
//				log.warn("",e);
				e.printStackTrace();
			}
			finally
			{
//				if(shutdownHook != null)
//					Runtime.getRuntime().removeShutdownHook(shutdownHook);
			}

		}

	}

	/**
	 * 添加系统中停止时的回调程序
	 *
	 * @param destroyVMHook

	 * should use addShutdownHook(Runnable destroyVMHook,int proir)
	 */
	@Deprecated
	public static void addShutdownHook(Runnable destroyVMHook,int proir) {
		ShutdownUtil.addShutdownHook(destroyVMHook,proir);

	}

	/**
	 * 添加系统中停止时的回调程序
	 *
	 * @param destroyVMHook

	 * should use addShutdownHook(Runnable destroyVMHook)
	 */
	@Deprecated
	public static void addShutdownHook(Runnable destroyVMHook) {
		addShutdownHook(destroyVMHook,-1);
	}

	public synchronized void destroySingleBeans() {
		if (singleDestorys != null && singleDestorys.size() > 0) {
			//
			Iterator<DisposableBean> ite = singleDestorys.iterator();
			while (ite.hasNext()) {
				DisposableBean et = ite.next();
				try {
					et.destroy();
				} catch (Exception e) {
					log.error(e.getMessage(),e);
				}
			}
		}

		if (destroyServiceMethods != null && destroyServiceMethods.size() > 0) {
			Iterator<DestroyMethod> ite = destroyServiceMethods.iterator();
			for (; ite.hasNext();) {
				DestroyMethod entry = ite.next();
				Object value = entry.getInstance();
				String method = entry.getDestroyMethod();
				try {
					ClassInfo iclass = ClassUtil.getClassInfo(value.getClass());
					Method m = iclass.getDeclaredMethod(method);
					if(m != null)
						m.invoke(value);
					else
					{
						log.info("Destroy Bean failed:"
									+value.getClass().getCanonicalName()+"."+method +" do not exist.");

					}
				} catch (SecurityException e) {
					log.error(e.getMessage(),e);
				} catch (Exception e) {
					log.error(e.getMessage(),e);
				}
			}
		}
	}

	public void registDisableBean(DisposableBean disposableBean) {
		singleDestorys.add(disposableBean);
	}

	private static class DestroyMethod
	{

		private final String destroyMethod;

		private final Object instance;
		public DestroyMethod(String destroyMethod, Object instance) {
			super();

			this.destroyMethod = destroyMethod;
			this.instance = instance;
		}
		/**
		 * @return the destroyMethod
		 */
		public String getDestroyMethod() {
			return destroyMethod;
		}
		/**
		 * @return the instance
		 */
		public Object getInstance() {
			return instance;
		}

	}

	public void registDestroyMethod(String destroyMethod, Object instance) {
		DestroyMethod destoryMethod = new DestroyMethod(destroyMethod, instance);
		destroyServiceMethods.add(destoryMethod);
	}

	/**
	 * 缺省接口key
	 */
	public static final String DEFAULT_CACHE_KEY = "DEFAULT_CACHE_KEY";

	/**
	 * 同步缓冲key
	 */

	public static final String SYNCHRO_CACHE_KEY = "SYNCHRO_CACHE_KEY";

	/**
	 * 创建不具有同步控制的provider代理接口实例 该代理接口可能有事务控制的功能也可能没有有事务控制，根据具体的配置来决定 createInf
	 *
	 * @return Object
	 */
	public static Object createInf(final Call


Fetcher.FLAG_EXCERPT) ?: ""
        return EntryMinimal(title, date, author, content)
    }

    companion object {

        const val SORT_BY_TITLE = 0
        const val SORT_BY_UNREAD = 1
    }
}package com.jcminarro.philology

import android.content.res.Resources
import android.icu.text.PluralRules
import android.os.Build
import java.util.Locale

internal class ResourcesUtil(private val baseResources: Resources) {
    private val repository: PhilologyRepository by lazy {
        Philology.getPhilologyRepository(baseResources.currentLocale())
    }

    @Throws(Resources.NotFoundException::class)
    fun getText(id: Int): CharSequence {
        return repository.getText(baseResources.getResourceEntryName(id))
            ?: baseResources.getText(id)
    }

    @Throws(Resources.NotFoundException::class)
    fun getString(id: Int): String = getText(id).toString()

    @Throws(Resources.NotFoundException::class)
    fun getQuantityText(id: Int, quantity: Int): CharSequence = repository.getPlural(
        baseResources.getResourceEntryName(id),
        quantity.toPluralKeyword(baseResources)
    ) ?: baseResources.getQuantityText(id, quantity)

    @Throws(Resources.NotFoundException::class)
    fun getQuantityString(id: Int, quantity: Int): String = getQuantityText(id, quantity).toString()

    @Throws(Resources.NotFoundException::class)
    fun getQuantityString(id: Int, quantity: Int, vararg formatArgs: Any?): String =
        String.format(getQuantityString(id, quantity), *formatArgs)

    fun getStringArray(id: Int): Array<String> =
        getTextArray(id).map { it.toString() }.toTypedArray()

    fun getTextArray(id: Int): Array<CharSequence> {
        return repository.getTextArray(baseResources.getResourceEntryName(id))
            ?: baseResources.getTextArray(id)
    }
}

interface PhilologyRepository {
    fun getText(key: String): CharSequence? = null
    fun getPlural(key: String, quantityString: String): CharSequence? = null
    fun getTextArray(key: String): Array<CharSequence>? = null
}

@SuppressWarnings("NewApi")
private fun Resources.currentLocale(): Locale = if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.N) {
    @Suppress("DEPRECATION")
    configuration.locale
} else {
    configuration.locales[0]
}

private fun Int.toPluralKeyword(baseResources: Resources): String = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    PluralRules.forLocale(baseResources.currentLocale()).select(this.toDouble())
} else {
    baseResources.getQuantityString(R.plurals.com_jcminarro_philology_quantity_string, this)
}
package com.jcminarro.roundkornerlayout

import android.content.Context
import android.graphics.Canvas
import android.os.Build
import android.util.AttributeSet
import android.widget.LinearLayout

class RoundKornerLinearLayout
@JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) :
        LinearLayout(context, attrs, defStyleAttr) {
    private val canvasRounder: CanvasRounder

    init {
        val array = context.obtainStyledAttributes(attrs, R.styleable.RoundKornerLinearLayout, 0, 0)
        val cornersHolder = array.getCornerRadius(
                R.styleable.RoundKornerLinearLayout_corner_radius,
                R.styleable.RoundKornerLinearLayout_top_left_corner_radius,
                R.styleable.RoundKornerLinearLayout_top_right_corner_radius,
                R.styleable.RoundKornerLinearLayout_bottom_right_corner_radius,
                R.styleable.RoundKornerLinearLayout_bottom_left_corner_radius
        )

        array.re


                "ml.t3.small",
		//	                "ml.t3.medium",
		//	                "ml.t3.large",
		//	                "ml.t3.xlarge",
		//	                "ml.t3.2xlarge",
		//	                "ml.m5.large",
		//	                "ml.m5.xlarge",
		//	                "ml.m5.2xlarge",
		//	                "ml.m5.4xlarge",
		//	                "ml.m5.8xlarge",
		//	                "ml.m5.12xlarge",
		//	                "ml.m5.16xlarge",
		//	                "ml.m5.24xlarge",
		//	                "ml.c5.large",
		//	                "ml.c5.xlarge",
		//	                "ml.c5.2xlarge",
		//	                "ml.c5.4xlarge",
		//	                "ml.c5.9xlarge",
		//	                "ml.c5.12xlarge",
		//	                "ml.c5.18xlarge",
		//	                "ml.c5.24xlarge",
		//	                "ml.p3.2xlarge",
		//	                "ml.p3.8xlarge",
		//	                "ml.p3.16xlarge",
		//	                "ml.g4dn.xlarge",
		//	                "ml.g4dn.2xlarge",
		//	                "ml.g4dn.4xlarge",
		//	                "ml.g4dn.8xlarge",
		//	                "ml.g4dn.12xlarge",
		//	                "ml.g4dn.16xlarge",
		//	                "ml.r5.large",
		//	                "ml.r5.xlarge",
		//	                "ml.r5.2xlarge",
		//	                "ml.r5.4xlarge",
		//	                "ml.r5.8xlarge",
		//	                "ml.r5.12xlarge",
		//	                "ml.r5.16xlarge",
		//	                "ml.r5.24xlarge",
		//	                "ml.p3dn.24xlarge",
		//	                "ml.m5d.large",
		//	                "ml.m5d.xlarge",
		//	                "ml.m5d.2xlarge",
		//	                "ml.m5d.4xlarge",
		//	                "ml.m5d.8xlarge",
		//	                "ml.m5d.12xlarge",
		//	                "ml.m5d.16xlarge",
		//	                "ml.m5d.24xlarge",
		//	                "ml.g5.xlarge",
		//	                "ml.g5.2xlarge",
		//	                "ml.g5.4xlarge",
		//	                "ml.g5.8xlarge",
		//	                "ml.g5.12xlarge",
		//	                "ml.g5.16xlarge",
		//	                "ml.g5.24xlarge",
		//	                "ml.g5.48xlarge",
		//	                "ml.p4d.24xlarge",
		//	                "ml.p4de.24xlarge",
		//	                "ml.geospatial.interactive",
		//	                "ml.trn1.2xlarge",
		//	                "ml.trn1.32xlarge",
		//	                "ml.trn1n.32xlarge"
		//	              ],
		//	              "type": "string"
		//	            },
		//	            "LifecycleConfigArn": {
		//	              "description": "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.",
		//	              "maxLength": 256,
		//	              "pattern": "^(arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*|None)$",
		//	              "type": "string"
		//	            },
		//	            "SageMakerImag


pEntry()).toStrictEqual([20, 'e'])
    expect(treeMap.size).toBe(4)
    expect(Array.from(treeMap.keys())).toStrictEqual([0, 5, 10, 15])
    expect(new TreeMap<number, string>((a, b) => a - b).popEntry()).toBeUndefined()
  })

  it('higher', () => {
    const treeMap = getTreeMap()

    expect(treeMap.higherKey(-1)).toBe(0)
    expect(treeMap.higherKey(2)).toBe(5)
    expect(treeMap.higherKey(5)).toBe(10)
    expect(treeMap.higherKey(21)).toBeUndefined()
    expect(treeMap.higherEntry(-1)).toStrictEqual([0, 'a'])
    expect(treeMap.higherEntry(2)).toStrictEqual([5, 'b'])
    expect(treeMap.higherEntry(5)).toStrictEqual([10, 'c'])
    expect(treeMap.higherEntry(21)).toBeUndefined()
  })

  it('lower', () => {
    const treeMap = getTreeMap()

    expect(treeMap.lowerKey(-1)).toBeUndefined()
    expect(treeMap.lowerKey(2)).toBe(0)
    expect(treeMap.lowerKey(5)).toBe(0)
    expect(treeMap.lowerKey(21)).toBe(20)
    expect(treeMap.lowerEntry(-1)).toBeUndefined()
    expect(treeMap.lowerEntry(2)).toStrictEqual([0, 'a'])
    expect(treeMap.lowerEntry(5)).toStrictEqual([0, 'a'])
    expect(treeMap.lowerEntry(21)).toStrictEqual([20, 'e'])
  })

  it('lower', () => {
    const treeMap = getTreeMap()

    expect(treeMap.lowerKey(-1)).toBeUndefined()
    expect(treeMap.lowerKey(2)).toBe(0)
    expect(treeMap.lowerKey(5)).toBe(0)
    expect(treeMap.lowerKey(21)).toBe(20)
    expect(treeMap.lowerEntry(-1)).toBeUndefined()
    expect(treeMap.lowerEntry(2)).toStrictEqual([0, 'a'])
    expect(treeMap.lowerEntry(5)).toStrictEqual([0, 'a'])
    expect(treeMap.lowerEntry(21)).toStrictEqual([20, 'e'])
  })

  it('compare string', () => {
    const treeMap = new TreeMap<string, string>()
    treeMap.set('a', 'test1')
    treeMap.set('c', 'test3')
    treeMap.set('b', 'test2')

    expect(Array.from(treeMap.keys())).toStrictEqual(['a', 'b', 'c'])
  })

  it('compare date', () => {
    const treeMap = new TreeMap<Date, string>()
    treeMap.set(new Date('2019-02-11'), 'holiday 2')
    treeMap.set(new Date('2019-01-01'), "new year's day")
    treeMap.set(new Date('2019-01-14'), 'holiday 1')

    expect(Array.from(treeMap.keys())).toStrictEqual([
      new Date('2019-01-01'),
      new Date('2019-01-14'),
      new Date('2019-02-11')
    ])
    expect(treeMap.higherKey(new Date('2019-01-31'))).toStrictEqual(new Date('2019-02-11'))
  })

  it('compare and throw error', () => {
    const treeMap = new TreeMap<TestInterface, string>()
    expect(() => {
      treeMap.set({ id: 1, content: 'a' }, 'a')
    }).toThrow()
  })

  it('split', () => {
    const lowerMap = getTreeMap().splitLower(10)
    expect(Array.from(lowerMap.keys())).toStrictEqual([0, 5, 10])

    const higherMap = getTreeMap().splitHigher(10)
    expect(Array.from(higherMap


Fields.FirstOrDefault(x => x.Mandatory == true && x.ExternalID != "description" && x.ExternalID != "name" && x.ExternalID != "Summary" && (x.SelectedValue == null || x.SelectedValue == string.Empty));
                if (notPopulatedMandatoryField != null)
                {
                    Reporter.ToUser(eUserMsgKey.MissedMandatotryFields, notPopulatedMandatoryField.Name, _ALMDefectProfile.Name);
                    return;
                }

                // Wrong list selection validation
                ExternalItemFieldBase wrongSelectedField = _ALMDefectProfile.ALMDefectProfileFields.FirstOrDefault(x => ((string.Equals(x.Type, "LookupList", StringComparison.OrdinalIgnoreCase) || string.Equals(x.Type, "UserList", StringComparison.OrdinalIgnoreCase))) && x.SelectedValue != null && x.SelectedValue != string.Empty && x.PossibleValues.Count > 0 && (!x.PossibleValues.Contains(x.SelectedValue)));
                if (wrongSelectedField != null)
                {
                    Reporter.ToUser(eUserMsgKey.WrongValueSelectedFromTheList, wrongSelectedField.Name, _ALMDefectProfile.Name);
                    return;
                }

                // Numeric selection validation
                int numeric = 0;
                ExternalItemFieldBase wrongNonNumberValueField = _ALMDefectProfile.ALMDefectProfileFields.FirstOrDefault(x => (string.Equals(x.Type, "Number", StringComparison.OrdinalIgnoreCase)) && x.SelectedValue != null && x.SelectedValue != string.Empty && !(int.TryParse(x.SelectedValue, out numeric)));
                if (wrongNonNumberValueField != null)
                {
                    Reporter.ToUser(eUserMsgKey.WrongNonNumberValueInserted, wrongNonNumberValueField.Name, _ALMDefectProfile.Name);
                    return;
                }

                // Date selection validation (QC receiving date in format yyyy-mm-dd)
                DateTime dt;
                ExternalItemFieldBase wrongDateValueField = _ALMDefectProfile.ALMDefectProfileFields.FirstOrDefault(x => (string.Equals(x.Type, "Date", StringComparison.OrdinalIgnoreCase)) && x.SelectedValue != null && x.SelectedValue != string.Empty && !(DateTime.TryParseExact(x.SelectedValue, "yyyy-mm-dd", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out dt)));
                if (wrongDateValueField != null)
                {
                    Reporter.ToUser(eUserMsgKey.WrongDateValueInserted, wrongDateValueField.Name, _ALMDefectProfile.Name);
                    return;
                }
            }

            foreach (ALMDefectProfile _ALMDefectProfile in mALMDefectProfiles.Where(x => x.ToUpdate == true))
            {
                Reporter.ToStatus(eStatusMsgKey.Save


-tools__toolbar>.tox-slider:not(:first-of-type){margin-right:8px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-right:32px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-right:32px}.tox .tox-insert-table-picker{display:flex;flex-wrap:wrap;width:170px}.tox .tox-insert-table-picker>div{border-color:#000;border-style:solid;border-width:0 1px 1px 0;box-sizing:border-box;height:17px;width:17px}.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker{margin:-4px 0}.tox .tox-insert-table-picker .tox-insert-table-picker__selected{background-color:rgba(32,122,183,.5);border-color:rgba(32,122,183,.5)}.tox .tox-insert-table-picker__label{color:#fff;display:block;font-size:14px;padding:4px;text-align:center;width:100%}.tox:not([dir=rtl]) .tox-insert-table-picker>div:nth-child(10n){border-right:0}.tox[dir=rtl] .tox-insert-table-picker>div:nth-child(10n+1){border-right:0}.tox .tox-menu{background-color:#2b3b4e;border:1px solid #000;border-radius:3px;box-shadow:0 4px 8px 0 rgba(42,55,70,.1);display:inline-block;overflow:hidden;vertical-align:top;z-index:1150}.tox .tox-menu.tox-collection.tox-collection--list{padding:0}.tox .tox-menu.tox-collection.tox-collection--toolbar{padding:4px}.tox .tox-menu.tox-collection.tox-collection--grid{padding:4px}.tox .tox-menu__label blockquote,.tox .tox-menu__label code,.tox .tox-menu__label h1,.tox .tox-menu__label h2,.tox .tox-menu__label h3,.tox .tox-menu__label h4,.tox .tox-menu__label h5,.tox .tox-menu__label h6,.tox .tox-menu__label p{margin:0}.tox .tox-menubar{background:url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23000000'/%3E%3C/svg%3E") left 0 top 0 #222f3e;background-color:#222f3e;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 4px 0 4px}.tox.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-menubar{border-top:1px solid #000}.tox .tox-mbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#fff;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0 4px;text-transform:none;width:auto}.tox .tox-mbtn[disabled]{background-color:transparent;border:0;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-mbtn:focus:not(:disabled){background:#4a5562;border:0;box-shadow:none;color:#fff}.tox .tox-mbtn--active{background:#757d87;border:0;box-shadow:none;color:#fff}.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active){background:#


.b	6,0
	EVEN

;---- Print Hex Digits ----

PrintHiInstrNum
	MOVEQ	#0,D0
	TST.W	CurrentPlayNote
	BEQ.B	phin2
	MOVE.W	InsNum(PC),D0
	LSR.W	#4,D0
	BNE.B	PrintHexDigit
phin2	TST.B	BlankZeroFlag
	BEQ.B	PrintHexDigit
	LEA	BlankInsText(PC),A0
	BRA.B	phd2
PrintHexDigit	AND.L	#15,D0
	ADD.L	D0,D0
	LEA	FastHexTable+1(PC),A0
	ADD.L	D0,A0
phd2	MOVE.W	#1,TextLength
	BRA.W	ShowText2

BlankInsText	dc.b " "
	EVEN

; this routine was coded by h0ffman and edited by 8bitbubsy
Print5HexDigits
	MOVE.L	D1,-(SP)
	MOVE.L	D7,-(SP)
	LEA	LongWordNumber(PC),A0
	MOVE.L	(A0),D0
	LEA	HexString+5(PC),A0	; 4 (+1 for pre-sub suffix)
	MOVEQ	#5-1,D7
.hexlp	MOVE.B	D0,D1
	AND.B	#$0F,D1
	CMP.B	#9,D1
	BLE.B	.dec
	ADDQ.B	#7,D1
.dec	ADD.B	#'0',D1
	MOVE.B	D1,-(A0)
	LSR.L	#4,D0
	DBRA	D7,.hexlp
	MOVE.L	(SP)+,D7
	MOVE.L	(SP)+,D1
	LEA	HexString(PC),A0
	MOVE.W	#5,TextLength
	BSR.B	ShowText2
	CLR.L	LongWordNumber
	RTS

HexString	dc.b	"00000"
	EVEN
; ---------------------------------------------------------------

PrintHexWord
	LEA	WordNumber(PC),A0
	MOVEQ	#0,D0
	MOVE.B	(A0),D0
	ADD.W	D0,D0
	LEA	FastHexTable(PC),A0
	ADD.W	D0,A0
	MOVE.W	#2,TextLength
	BSR.W	ShowText2
PrintHexByte
	LEA	WordNumber(PC),A0
	MOVEQ	#0,D0
	MOVE.B	1(A0),D0
	ADD.W	D0,D0
	LEA	FastHexTable(PC),A0
	ADD.W	D0,A0
	MOVE.W	#2,TextLength
	BSR.B	ShowText2
	CLR.W	WordNumber
	RTS

;---- Text Output Routines ----

ShowText3
	MOVE.W	D0,TextLength
	MOVE.W	D1,TextOffset
ShowText2
	MOVE.L	A0,ShowTextPtr
ShowText
	MOVEM.L	A2-A4,-(SP)
	LEA	FontData,A4
	LEA	FontDataOffsets(PC),A3
	MOVE.W	TextLength(PC),D0
	LEA	TextBitplane,A1
	ADD.W	TextOffset(PC),A1
	ADD.W	D0,TextOffset
	MOVE.L	ShowTextPtr(PC),A0
	SUBQ.W	#1,D0
.loop	MOVEQ	#0,D1
	MOVE.B


ng
	HTTPPort       string
	Authentication string
	ApplicationID  string
}{
	ID:             "id",
	FQDN:           "fqdn",
	PathPrefix:     "path_prefix",
	StripPrefix:    "strip_prefix",
	HTTPS:          "https",
	H2C:            "h2c",
	HTTPPort:       "http_port",
	Authentication: "authentication",
	ApplicationID:  "application_id",
}

var WebsiteTableColumns = struct {
	ID             string
	FQDN           string
	PathPrefix     string
	StripPrefix    string
	HTTPS          string
	H2C            string
	HTTPPort       string
	Authentication string
	ApplicationID  string
}{
	ID:             "websites.id",
	FQDN:           "websites.fqdn",
	PathPrefix:     "websites.path_prefix",
	StripPrefix:    "websites.strip_prefix",
	HTTPS:          "websites.https",
	H2C:            "websites.h2c",
	HTTPPort:       "websites.http_port",
	Authentication: "websites.authentication",
	ApplicationID:  "websites.application_id",
}

// Generated where

var WebsiteWhere = struct {
	ID             whereHelperstring
	FQDN           whereHelperstring
	PathPrefix     whereHelperstring
	StripPrefix    whereHelperbool
	HTTPS          whereHelperbool
	H2C            whereHelperbool
	HTTPPort       whereHelperint
	Authentication whereHelperstring
	ApplicationID  whereHelperstring
}{
	ID:             whereHelperstring{field: "`websites`.`id`"},
	FQDN:           whereHelperstring{field: "`websites`.`fqdn`"},
	PathPrefix:     whereHelperstring{field: "`websites`.`path_prefix`"},
	StripPrefix:    whereHelperbool{field: "`websites`.`strip_prefix`"},
	HTTPS:          whereHelperbool{field: "`websites`.`https`"},
	H2C:            whereHelperbool{field: "`websites`.`h2c`"},
	HTTPPort:       whereHelperint{field: "`websites`.`http_port`"},
	Authentication: whereHelperstring{field: "`websites`.`authentication`"},
	ApplicationID:  whereHelperstring{field: "`websites`.`application_id`"},
}

// WebsiteRels is where relationship names are stored.
var WebsiteRels = struct {
	Application string
}{
	Application: "Application",
}

// websiteR is where relationships are stored.
type websiteR struct {
	Application *Application `boil:"Application" json:"Application" toml:"Application" yaml:"Application"`
}

// NewStruct creates a new relationship struct
func (*websiteR) NewStruct() *websiteR {
	return &websiteR{}
}

func (o *Website) GetApplication() *Application {
	if o == nil {
		return nil
	}

	return o.R.GetApplication()
}

func (r *websiteR) GetApplication() *Application {
	if r == nil {
		return nil
	}

	return r.Application
}

// websiteL is where Load methods for each relationship are stored.
type websiteL struct{}

var (
	websiteAllColumns            = []string{"id", "fqdn", "path_prefix", "strip_prefix", "https", "h2c", "http_port", "authentication", "application_id"}
	websiteColumnsWithoutDefault = []string{"id", "fqdn", "path_prefix", "strip_prefix", "https", "h2c", "authentication", "application_


//
// ClassDump By HuangBai Private
//  Copyright (C) 1997-2019 Steve Nygard. Updated HuangBai-2024
//

#import <ProtobufLite/WXPBGeneratedMessage.h>

@class MMListenDiscoverItemResponse, MMListenDiscoverResponse, MMListenRecommendInfo, NSData, NSString, TingMusicSquarePreloadInfo, TingReddotReportInfo;

@interface TingMusicSquarePreloadResponse : WXPBGeneratedMessage
{
}

+ (void)initialize;

// Remaining properties
@property(retain, nonatomic) MMListenDiscoverItemResponse *discoverItemResponse; // @dynamic discoverItemResponse;
@property(retain, nonatomic) MMListenDiscoverResponse *discoverResponse; // @dynamic discoverResponse;
@property(retain, nonatomic) MMListenRecommendInfo *info; // @dynamic info;
@property(retain, nonatomic) NSData *musicGlobalContextBuffer; // @dynamic musicGlobalContextBuffer;
@property(retain, nonatomic) TingMusicSquarePreloadInfo *preloadInfo; // @dynamic preloadInfo;
@property(nonatomic) int preloadTimeCost; // @dynamic preloadTimeCost;
@property(nonatomic) unsigned int preloadType; // @dynamic preloadType;
@property(retain, nonatomic) TingReddotReportInfo *reportInfo; // @dynamic reportInfo;
@property(retain, nonatomic) NSString *uuid; // @dynamic uuid;

@end


x00021EF0,hLClockChanger)
DEF(0x000221C8,IntegralInteruptProc)
DEF(0x000221CC,BlockInterruptProc)
DEF(0x0002222C,hAngelSem)
DEF(0x00022910,hIntercomData)
DEF(0x00022974,CAP_port_2)
DEF(0x00022978,CAP_port_1)
DEF(0x0002297C,proc_CapReadyInterrupt)
DEF(0x00022980,arg_CapReadyInterrupt)
DEF(0x00022998,RemPulseWidthMin)
DEF(0x0002299C,RemPulseWidthMax)
DEF(0x000229A0,RemPulseDiffMin)
DEF(0x000229A4,RemPulseDiffMax)
DEF(0x000229A8,RemReleaseSelfMin)
DEF(0x000229AC,RemReleaseSelfMax)
DEF(0x000229B0,RemReleaseInstMin)
DEF(0x000229B4,RemReleaseInstMax)
DEF(0x000229B8,hSemaphoreTimer)
DEF(0x000229C0,hSwitchPubInstance)
DEF(0x000229C4,hSwitchQueue)
DEF(0x000229C8,hTaskSwitchMonitor)
DEF(0x000229CC,hSwitchSem1)
DEF(0x000229D0,hSwitchSem2)
DEF(0x000229D8,SM_229D8)
DEF(0x000229F8,SM_229F8)
DEF(0x00022A08,SM_22A08)
DEF(0x00022A20,SM_22A20)
DEF(0x00022A24,SM_22A24)
DEF(0x00022A5C,LCD_port_4)
DEF(0x00022A60,LCD_port_1)
DEF(0x00022A68,LCD_ports)
DEF(0x00022A7C,LCD_port_2)
DEF(0x00022C34,hQueueFds)
DEF(0x00022C38,hTaskFaseSensor)
DEF(0x00022C3C,hSemWaitTimer)
DEF(0x00022C6C,hErrorCollectInstanceSem)
DEF(0x00022C70,hErrorNumberList)
DEF(0x0002353C,LockCount)
DEF(0x00023540,DefTaskStackSize)
DEF(0x00023544,hParamPubInstance)
DEF(0x00023554,hUserSetting)
DEF(0x00023558,hProductParameter)
DEF(0x00023574,ClockSaver_port)
DEF(0x00023818,logFdSem)
DEF(0x00023854,memLibInstalled)
DEF(0x00023858,memSysPartition)
DEF(0x00023924,ttyDrvNum)
DEF(0x0002425C,nameForNameless)
DEF(0x00024340,h1stCaptureMessageQueue)
DEF(0x00024344,h2ndCaptureMessageQueue)
DEF(0x00024584,aHITACHI)
DEF(0x000245A2,amicrodrive)
DEF(0x00024618,aSanDisk)
DEF(0x0002467A,aLEXARATAFLASH)
DEF(0x00024740,gui_number)
DEF(0x00024780,drvTable)
DEF(0x00024860,some_important_structure)
DEF(0x00024BA0,proc_taskCreateHookAdd)
DEF(0x00024CC0,hTaskSDev_Develop)
DEF(0x00024E40,_func_selWakeupListTerm)
DEF(0x000252A0,hMainDataQueue)
DEF(0x000252C0,IC_unk_252C0)
DEF(0x00025320,_func_selPtyAdd)
DEF(0x000253C0


ize)]
struct Song {
  song_data: SongData,
  note_data: Option<NoteData>,
}

#[derive(Debug)]
struct Config {
  input_file: String,
  output_path: String,
}

fn main() {
  // Get execution config.
  let args: Vec<String> = env::args().collect();
  let config = Config::new(&args).unwrap_or_else(|err| {
    println!("Problem parsing arguments: {}", err);
    process::exit(1);
  });

  // Parse metadata.
  let song = Song::new(&config).unwrap_or_else(|err| {
    println!("Problem parsing song: {}", err);
    process::exit(1);
  });

  // Write output.
  if let Err(err) = song.output(config) {
    println!("Problem writing output: {}", err);
    process::exit(1);
  }
}

impl Config {
  fn new(args: &[String]) -> Result<Config, &str> {
    if args.len() < 3 {
      return Err("not enough arguments");
    }
    let input_file = args[1].clone();
    let output_path = args[2].clone();
    Ok(Config {
      input_file,
      output_path,
    })
  }
}

impl Song {
  fn new(config: &Config) -> Result<Song, Box<dyn Error>> {
    let note_data = NoteData::new(&config.input_file)?;
    let song_data = SongData::new(&config.input_file, note_data.as_ref())?;
    Ok(Song {
      song_data,
      note_data,
    })
  }

  fn output(&self, config: Config) -> Result<(), Box<dyn Error>> {
    let yaml = serde_yaml::to_string(&self.song_data.meta)?;
    let out_path = Path::new(&config.output_path);

    // Lyrics
    let tex_path = out_path.join(&self.song_data.meta.paths.lyrics);
    fs::write(tex_path, &self.song_data.text)?;

    // Yaml
    let yml_path = out_path
      .join(&self.song_data.meta.paths.lyrics)
      .with_extension("yml");
    fs::write(yml_path, yaml.replacen("---", "--- !Laul", 1))?;

    // Notes
    match (&self.song_data.meta.paths.music, &self.note_data) {
      (Some(music_path), Some(note_data)) => {
        let ly_path = out_path.join(music_path).with_extension("ly");
        fs::write(ly_path, &note_data.text)?;
      }
      _ => (),
    }
    Ok(())
  }
}

impl NoteData {
  fn new(path: &String) -> Result<Option<NoteData>, Box<dyn Error>> {
    let input_path = Path::new(path);
    let notes_input_path = input_path
      .parent()
      .unwrap()
      .parent()
      .unwrap()
      .join("notes")
      .join(input_path.with_extension("ly").file_name().unwrap());
    let note_data = match notes_input_path.is_file() {
      true => Some(NoteData {
        text: fs::read_to_string(&notes_input_path)?,
        path: notes_input_path.to_string_lossy().to_string(),
      }),
      false => None,
    };
    Ok(note_data)
  }
}

impl SongData {
  fn new(path: &String, note_data: Option<&NoteData>) -> Result<SongData, Box<dyn Error>> {
    let input_path = Path::new(path);
    let song_contents = fs::read_to_string(&path)?;
    let mut song_data = SongData {
      path: path.clone(),
      meta: SongMeta {
        paths:


)) {
				*dst++ = '0';
				*dst++ = '0';
			}
			goto done;
		}
	}
	if (((c & 0177) == ' ') || isgraph(c) || (flag & VIS_OCTAL)) {
		*dst++ = '\\';
		*dst++ = ((u_char)c >> 6 & 07) + '0';
		*dst++ = ((u_char)c >> 3 & 07) + '0';
		*dst++ = ((u_char)c & 07) + '0';
		goto done;
	}
	if ((flag & VIS_NOSLASH) == 0)
		*dst++ = '\\';
	if (c & 0200) {
		c &= 0177;
		*dst++ = 'M';
	}
	if (iscntrl(c)) {
		*dst++ = '^';
		if (c == 0177)
			*dst++ = '?';
		else
			*dst++ = c + '@';
	} else {
		*dst++ = '-';
		*dst++ = c;
	}
done:
	*dst = '\0';
	return (dst);
}


ot);

    /// <summary>
    ///     Represents the image key for the Shared.items file that is imported into this project in order to add a shared folder.
    /// </summary>
    public const string SharedItemsImportFile = nameof(SharedItemsImportFile);

    /// <summary>
    ///     Represents the image key for the AppDesigner folder (called "Properties" in C# and "My Project" in VB) when it is closed.
    /// </summary>
    public const string AppDesignerFolder = nameof(AppDesignerFolder);

    /// <summary>
    ///     Represents the image key for the AppDesigner folder (called "Properties" in C# and "My Project" in VB) when it is expanded.
    /// </summary>
    public const string ExpandedAppDesignerFolder = nameof(ExpandedAppDesignerFolder);
}


if result.success { " OK " } else { "FAIL" },
            result.name
        );
        if !result.success {
            error!("Failure details: {}", result.details);
        }
        assert_eq!(true, result.success);
    }
}
<filename>src/fruit/fruit_offer_controller.rs
use crate::fruit::FruitOffer;

/// Keep track of current offer and creating offer clones
pub(crate) struct FruitOfferController {
    offer: Option<FruitOffer>
}

impl FruitOfferController {
    pub(crate) fn new()-> FruitOfferController {
        return FruitOfferController { offer: None };
    }

    pub(crate) fn has_offer(&self) ->bool{
        return match self.offer {
            None => { false }
            Some(_) => { true }
        }
    }

    pub(crate) fn set_offer(&mut self, offer :&FruitOffer){
        self.offer = Some(offer.clone());
    }

    /// Returns None if Controller has no option else creates
    /// clone of the current offer
    pub(crate) fn get_offer(&self) ->Option<FruitOffer>{
        match &self.offer{
            None => {
                None
            }
            Some(offer) => {
                Some(FruitOffer{
                    fruit: offer.fruit.clone(),
                    price: offer.price,
                    start: offer.start.clone(),
                    duration_ms: offer.duration_ms,
                    id: offer.id
                })
            }
        }
    }
}
/* Zed Attack Proxy (ZAP) and its related class files.
 *
 * ZAP is an HTTP/HTTPS proxy for assessing web application security.
 *
 * Copyright 2019 the ZAP development team
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

use super::ZapApiError;
use super::ZapService;
use serde_json::Value;
use std::collections::HashMap;

/**
 * This file was automatically generated.
 */
pub fn status(service: &ZapService, scanid: String) -> Result<Value, ZapApiError> {
    let mut params = HashMap::new();
    params.insert("scanId".to_string(), scanid);
    super::call(service, "spider", "view", "status", params)
}

pub fn results(service: &ZapService, scanid: String) -> Result<Value, ZapApiError> {
    let mut params = HashMap::new();
    params.insert("scanId".to_string(), scanid);
    super::call(service, "spider", "view", "results", params)
}

pub fn full_results(service: &ZapService, scanid: String) -> Result<Value, ZapApiError> {
    let mut params = HashMap::new();
    params.insert("scanId".to_string(), scanid);
    super::call(service, "spider", "view", "fullResults", params)
}

pub fn scans(service: &ZapService) -> Result<Value, ZapApiError> {
    let params = HashMap::new();
    super::call(service, "spider", "view", "scans", params)
}

/**
 * Gets the regexes of URLs excluded from the spider scans.
*/
pub fn excluded_from_scan(service: &ZapService) -> Result<Value, ZapApiError> {
    let para


-dom-window-portalhost\u2461"}],"title":"3.1. Portal hosts"}],"url":"#dom-window-portalhost"},
"dom-windoweventhandlers-onportalactivate": {"dfnID":"dom-windoweventhandlers-onportalactivate","dfnText":"onportalactivate","external":false,"refSections":[],"url":"#dom-windoweventhandlers-onportalactivate"},
"e0eefdd9": {"dfnID":"e0eefdd9","dfnText":"origin (for MessageEvent)","external":true,"refSections":[{"refs":[{"id":"ref-for-dom-messageevent-origin"},{"id":"ref-for-dom-messageevent-origin\u2460"}],"title":"3. The portal element"},{"refs":[{"id":"ref-for-dom-messageevent-origin\u2461"},{"id":"ref-for-dom-messageevent-origin\u2462"}],"title":"3.1. Portal hosts"}],"url":"https://html.spec.whatwg.org/multipage/comms.html#dom-messageevent-origin"},
"e7cb09fb": {"dfnID":"e7cb09fb","dfnText":"StructuredDeserializeWithTransfer","external":true,"refSections":[{"refs":[{"id":"ref-for-structureddeserializewithtransfer"}],"title":"2. Portal browsing contexts"},{"refs":[{"id":"ref-for-structureddeserializewithtransfer\u2460"}],"title":"3. The portal element"},{"refs":[{"id":"ref-for-structureddeserializewithtransfer\u2461"}],"title":"3.1. Portal hosts"}],"url":"https://html.spec.whatwg.org/multipage/structured-data.html#structureddeserializewithtransfer"},
"e809a09f": {"dfnID":"e809a09f","dfnText":"browsing-context connected","external":true,"refSections":[{"refs":[{"id":"ref-for-browsing-context-connected"}],"title":"2. Portal browsing contexts"},{"refs":[{"id":"ref-for-browsing-context-connected\u2460"}],"title":"3. The portal element"}],"url":"https://html.spec.whatwg.org/multipage/infrastructure.html#browsing-context-connected"},
"e99bd18e": {"dfnID":"e99bd18e","dfnText":"relevant global object","external":true,"refSections":[{"refs":[{"id":"ref-for-concept-relevant-global"}],"title":"3.1. Portal hosts"}],"url":"https://html.spec.whatwg.org/multipage/webappapis.html#concept-relevant-global"},
"eb62573b": {"dfnID":"eb62573b","dfnText":"HTTP(S) scheme","external":true,"refSections":[{"refs":[{"id":"ref-for-http-scheme"},{"id":"ref-for-http-scheme\u2460"}],"title":"3. The portal element"},{"refs":[{"id":"ref-for-http-scheme\u2461"}],"title":"4.4. Navigation"}],"url":"https://fetch.spec.whatwg.org/#http-scheme"},
"ee7bba09": {"dfnID":"ee7bba09","dfnText":"response","external":true,"refSections":[{"refs":[{"id":"ref-for-concept-response"}],"title":"5.1.1.2. portal-src Post-request check"}],"url":"https://fetch.spec.whatwg.org/#concept-response"},
"element-attrdef-portal-referrerpolicy": {"dfnID":"element-attrdef-portal-referrerpolicy","dfnText":"referrerpolicy","external":false,"refSections":[{"refs":[{"id":"ref-for-element-attrdef-portal-referrerpolicy"},{"id":"ref-for-element-attrdef-portal-referrerpolicy\u2460"}],"title":"3. The por


on():
    # model = GaussianMixture(2,2,trainable=False).to(device=device_)
    model = GMMIso(1,2,trainable=False).to(device=device_)
    # model = LambertianLobe().to(device_)
    draw_pdf("/home/bingxu/projects/neumip_adobe/blender-neumip-mulliala-deploy/renderer/output/debug_bias/test_pdf_withlambert.exr", model)
    draw_samples("/home/bingxu/projects/neumip_adobe/blender-neumip-mulliala-deploy/renderer/output/debug_bias/test_samples_withlambert.exr", model)

### test gaussian lobes
if __name__ == "__main__":
    plot_the_comparison()


.That’s an error.There was an error. Please try again later.That’s all we know.";
const String frSymptomsNameDepressed = "Déprimé";
const String frSymptomsNameConfused = "Confus";
const String frSymptomsNameStressed = "Stressé";
const String frSymptomsNameMotivated =
    "Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try again later.That’s all we know.";
const String frSymptomsNameUnmotivated =
    "Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try again later.That’s all we know.";
const String frSymptomsNameCreative = "Créatif";
const String frSymptomsNameProductive = "Productif";
const String frSymptomsNameUnproductive = "Improductif";
const String frSymptomsNameNoSex = "Pas de sexe";
const String frSymptomsNameProtectedSex = "Sexe protégé";
const String frSymptomsNameUnprotectedSex = "Sexe non protégé";
const String frSymptomsNameOralSex =
    "Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try again later.That’s all we know.";
const String frSymptomsNameAnalSex = "Sexe anal";
const String frSymptomsNameMasturbation = "Masturbation";
const String frSymptomsNameHighSexDrive = "Libido élevé";
const String frSymptomsNameNeutralSexDrive = "Libido neutre";
const String frSymptomsNameLowSexDrive = "Lower Sexe";
const String frSymptomsNameSexToys = "Jouets sexuels";
const String frSymptomsNameOrgasm = "Orgasme";
const String frSymptomsNameNoOrgasm =
    "Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try again later.That’s all we know.";
const String frSymptomsNameEverythingWell = "Tout bien";
const String frSymptomsNameCramps = "Crampes";
const String frSymptomsNameTenderBreasts = "Seins tendres";
const String frSymptomsNameHeadache = "Mal de tête";
const String frSymptomsNameAcne = "Acné";
const String frSymptomsNameBackache = "Mal au dos";
const String frSymptomsNameAbdominalPain = "Douleurs abdominales";
const String frSymptomsNameFatigue = "Fatigue";
const String frSymptomsNamePainFree = "Sans douleur";
const String frSymptomsNamePeriodCramps = "Crampes périodiques";
const String frSymptomsNameOvulation = "Ovulation";
const String frSymptomsNameBreastTenderness = "Tendreté mammaire";
const String frSymptomsNameMigraine = "Migraine";
const String frSymptomsNameMigraineWithAura =
    "Error 500 (Server Error)!!1500.That’s an error.There was an error. Please try again later.That’s all we know.";
const String frSymptomsNameLowerBack = "Lombes";
const String frSymptomsNameLeg = "Jambe";
const String frSymptomsNameJoint = "Articulation";
const String frSymptomsNameNoDischarge = "Aucune libération";
const String frSymptomsNameLightDischarge = "Décharge légère";
const String frSymptomsNameCreamy = "Crémeux";
const String frSymptomsNameWatery = "Aqueux";
const String frSymptomsNameUnusual = "Inhabituel";
const String frSymptomsNameSpotting = "Repérage";
const String frSymptomsNameSticky = "Collant";
const String frSymptomsNameEggWhite = "Blanc d'oeuf";
const String frSymptomsNameGray = "Gris";
const String frSymptomsNameGassy = "Ga


local function hl_override(name, props)
  local hl = ch.lib.hl.get_hl { name = name }
  return vim.tbl_deep_extend('force', hl, props or {})
end

local function glassify(name)
  return hl_override(name, { bg = 'none' })
end

return {
  setup = function()
    ch.lib.autocmd.create {
      event = 'ColorScheme', priority = GC.priority.handle.colorscheme.transparency,
      desc = 'load transparency hls',
      fn = function(_)
        -- reload highlights after colorscheme is switched/reloaded with changes
        require 'ch.plugin.transparency'.create()
        require 'ch.plugin.transparency'.fix()
      end,
    }
  end,
  get = function()
    return _G.saved_highlights.transparent or require 'ch.plugin.transparency'.create()
  end,
  create = function()
    _G.saved_highlights = {
      transparent = {
        Normal = { fg = ch.lib.hl:get('ui', 'fg'), bg = 'none' },
        SignColumn = glassify 'SignColumn',
        LineNr = glassify 'LineN


ù²bðfë|ÌÅBN¢k!.¯4×åá{¦ÎÁ©8=Ô#9m,0¼¹ã¹²!hD)Ú2ª%Oj Ø4oî4¸6ªì8ÎX¶Ut²±7wÞýiMxsç Öîf#4Ýôoî\øe~?Ûî3Û½t9~ÚÛ~xGËÚ'ZFÚRÞÜ¹íaØ¦3* 8aövÖ§Lªr¹l	«0Ãþé è\ç^«¯OÆìj_;÷%CygÆóU:àèÍÜëUï_
ÁÜ±¢1ÜrÈ	Ùf~sç}ôEIýUsv¤åì¸³Ô|°/=¶<]%Om¾ÚÝO.Ð½ùà¨¯ke]öi?<ß~`l¦7+Ô×÷÷%/dôZ»QHØôo>¸ýëÅ8áê$_Zz3 E³Ñ ï£}${ßÀ>Vñ«#qrÓ¼¸ÓùP±Bw½wÍ#4¯nÞ"7ïi^×¼=ïé÷îy8YfÅkÈ?Ñ,N"ìK NÐØBÞÜ/½:X3qC®¬B"!U QJ¸VrÌ½èÃ³ÝÃ~Îëú.ïÕÚ
ÖýÛeiv×»k~øÔÊ.C³ÑL=puå"$A8zB/ó¼ÖGÂýÕmû÷¸G<C
ÂÞ<¨»ÖK×,XµÍaÍÝ½b¯h}¯æäf¡Ù§ìPJlÚ7Î^ëÉ>"AÀþ Ðó7þg#þv¯bQÿÙ()Á¿û7Äß<,½¾#Ò¨tW´!þ½
÷ïVík1°fþ°Ò×Å35b3XÜ"ÄHqÎHMW´ÅBmÖ7knhÈ=È,bX,Ó2æêfI,ÌÑC`°Éoø~¬ty5o&÷nfhëûP-<òÜ\7oDøgûÿ5ÿ_«üÙqó¨þæ\ÐöÝ\î_¥ñ/ñÏòéü«¢ÃBt6Ú}¥f"ôaL+ve!ÚY1ROeaG¦û=ºtsµÆ½è;N11»ú¥àë£´]* Y%YâÀÜóÅÆâc{imM T¼Ê\%KPr,6¹½ôèxPFRÊPÒAU`j/=]3TPV* S£ºq¥·2?)ùqDB¼M×^úÞ®ðýtø>dºµì®ñý2ü
íè


InterfaceVisitorPtr ??= Pointer.fromFunction(
          _findCategoryInterfaceVisitor, exceptional_visitor_return),
      nullptr);
  final itfCursor = _findCategoryInterfaceVisitorResult;
  if (itfCursor == null) {
    _logger.severe('Category $name has no interface.');
    return null;
  }

  // TODO(#347): Currently any interface with a category bypasses the filters.
  final itf = itfCursor.type().toCodeGenType();
  if (itf is! ObjCInterface) {
    _logger.severe(
        'Interface of category $name is $itf, which is not a valid interface.');
    return null;
  }

  _interfaceStack.push(_ParsedObjCInterface(itf));
  clang.clang_visitChildren(
      cursor,
      _parseInterfaceVisitorPtr ??= Pointer.fromFunction(
          _parseInterfaceVisitor, exceptional_visitor_return),
      nullptr);
  _interfaceStack.pop();

  _logger.fine('++++ Finished ObjC category: '
      'Name: $name, ${cursor.completeStringRepr()}');

  return itf;
}

clang_types.CXCursor? _findCategoryInterfaceVisitorResult;
int _findCategoryInterfaceVisitor(clang_types.CXCursor cursor,
    clang_types.CXCursor parent, Pointer<Void> clientData) {
  if (cursor.kind == clang_types.CXCursorKind.CXCursor_ObjCClassRef) {
    _findCategoryInterfaceVisitorResult = cursor;
    return clang_types.CXChildVisitResult.CXChildVisit_Break;
  }
  return clang_types.CXChildVisitResult.CXChildVisit_Continue;
}
// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
//

library library12.dart;

import "library11.dart";
class Library12 {
  Library12(this.fld);
  Library12.other(fld, multiplier) {
    this.fld = fld*multiplier;
  }
  func() {
    return 2;
  }
  var fld;
  static static_func() {
    var result = 0;
    var obj = new Library11(4);
    result = obj.fld;
    Expect.equals(4, result);
    result += obj.func();
    Expect.equals(7, result);
    result += Library11.static_func();
    Expect.equals(9, result);
    result += Library11.static_fld;
    Expect.equals(10, result);
    Expect.equals(100, top_level11);
    Expect.equals(200, top_level_func11());
    return 3;
  }
  static var static_fld = 4;
}

abstract class Library12Interface {
  Library12 addObjects(Library12 value1, Library12 value2);
}

const int top_level12 = 10;
top_level_func12() {
  return 20;
}
// Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

import 'package:expect/expect.dart';

import 'dart:async';

topLevelFunction() async { }

Future<int> topLevelWithParameter(int a) async {
  return 7 + a;
}

int /// type-mismatch2: static type warning, dynamic type error
topLevelWithParameterWrongType(int a) async {
  return 7 + a;
}

var what = 'async getter';
Future<String> get topLevelGetter async {
  return 'I want to be an ${what}';
}

class A {
  static int staticVar = 1;

  static staticMethod(int param) async =>


- Check null sentinel value
  if raw == 2147483647 then
    return "Min Lot Size: No Value"
  end

  return "Min Lot Size: "..value
end

-- Translate: Min Lot Size
cme_futures_mdp3_sbe_v1_9.min_lot_size.translate = function(raw)
  -- Check null sentinel value
  if raw == 2147483647 then
    return 0/0
  end

  return raw/10000
end

-- Dissect: Min Lot Size
cme_futures_mdp3_sbe_v1_9.min_lot_size.dissect = function(buffer, offset, packet, parent)
  local length = cme_futures_mdp3_sbe_v1_9.min_lot_size.size
  local range = buffer(offset, length)
  local raw = range:le_int()
  local value = cme_futures_mdp3_sbe_v1_9.min_lot_size.translate(raw)
  local display = cme_futures_mdp3_sbe_v1_9.min_lot_size.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_cme_futures_mdp3_sbe_v1_9.fields.min_lot_size, range, value, display)

  return offset + length, value
end

-- Lot Type
cme_futures_mdp3_sbe_v1_9.lot_type = {}

-- Size: Lot Type
cme_futures_mdp3_sbe_v1_9.lot_type.size = 1

-- Display: Lot Type
cme_futures_mdp3_sbe_v1_9.lot_type.display = function(value)
  return "Lot Type: "..value
end

-- Dissect: Lot Type
cme_futures_mdp3_sbe_v1_9.lot_type.dissect = function(buffer, offset, packet, parent)
  local length = cme_futures_mdp3_sbe_v1_9.lot_type.size
  local range = buffer(offset, length)
  local value = range:le_int()
  local display = cme_futures_mdp3_sbe_v1_9.lot_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_cme_futures_mdp3_sbe_v1_9.fields.lot_type, range, value, display)

  return offset + length, value
end

-- Lot Type Rules Group
cme_futures_mdp3_sbe_v1_9.lot_type_rules_group = {}

-- Size: Lot Type Rules Group
cme_futures_mdp3_sbe_v1_9.lot_type_rules_group.size =
  cme_futures_mdp3_sbe_v1_9.lot_type.size +
  cme_futures_mdp3_sbe_v1_9.min_lot_size.size

-- Display: Lot Type Rules Group
cme_futures_mdp3_sbe_v1_9.lot_type_rules_group.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Lot Type Rules Group
cme_futures_mdp3_sbe_v1_9.lot_type_rules_group.fields = function(buffer, offset, packet, parent, lot_type_rules_group_index)
  local index = offset

  -- Implicit Lot Type Rules Group Index
  if lot_type_rules_group_index ~= nil then
    local iteration = parent:add(omi_cme_futures_mdp3_sbe_v1_9.fields.lot_type_rules_group_index, lot_type_rules_group_index)
    iteration:set_generated()
  end

  -- Lot Type: 1 Byte Signed Fixed Width Integer
  index, lot_type = cme_futures_mdp3_sbe_v1_9.lot_type.dissect(buffer, index, packet, parent)

  -- Min Lot Size


95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8"/>
                    </svg>
                    Github

                    <svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-linkedin mx-1 icon" viewBox="0 0 16 16">
                        <path d="M0 1.146C0 .513.526 0 1.175 0h13.65C15.474 0 16 .513 16 1.146v13.708c0 .633-.526 1.146-1.175 1.146H1.175C.526 16 0 15.487 0 14.854zm4.943 12.248V6.169H2.542v7.225zm-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248S2.4 3.226 2.4 3.934c0 .694.521 1.248 1.327 1.248zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016l.016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225z"/>
                    </svg>
                    LinkedIn

Trafikskolor

    {% else %}

You are not logged in

Logga in

    {% endif %}

{% endblock %}{% extends "base.html" %}

{% block content %}


 ${(longitude as Buffer).toString('hex')}`);

    const latitude = buf.slice(7, 11).reverse()
    console.log(`latitude = ${(latitude as Buffer).toString('hex')}`);

    const gpsFixStatus = buf.slice(11, 12).reverse()
    console.log(`gpsFixStatus = ${(gpsFixStatus as Buffer).toString('hex')}`);

    const reserve = buf.slice(12, 13).reverse()
    console.log(`reserve = ${(reserve as Buffer).toString('hex')}`);

    const calorie = buf.slice(13, 15).reverse()
    console.log(`calorie = ${(calorie as Buffer).toString('hex')}`);

    const batteryCapacity = buf.slice(15, 16).reverse()
    console.log(`batteryCapacity = ${(batteryCapacity as Buffer).toString('hex')}`);

    const dateTime = buf.slice(16, 20).reverse()
    console.log(`dateTime = ${(dateTime as Buffer).toString('hex')}`);

    const beaconId = buf.slice(20, 40).reverse()
    console.log(`beaconId = ${(beaconId as Buffer).toString('hex')}`);

    const beaconType = buf.slice(40, 41).reverse()
    console.log(`beaconType = ${(beaconType as Buffer).toString('hex')}`);

    const rssi = buf.slice(41, 42).reverse()
    console.log(`rssi = ${(rssi as Buffer).toString('hex')}`);

    const txPower = buf.slice(42, 43).reverse()
    console.log(`txPower = ${(txPower as Buffer).toString('hex')}`);

    const heartRate = buf.slice(43, 44).reverse()
    console.log(`heartRate = ${(heartRate as Buffer).toString('hex')}`);

    const temperature = buf.slice(44, 46).reverse()
    console.log(`temperature = ${(temperature as Buffer).toString('hex')}`);

    const step = buf.slice(46, 48).reverse()
    console.log(`step = ${(step as Buffer).toString('hex')}`);

    const distance = buf.slice(48, 50).reverse()
    console.log(`distance = ${(distance as Buffer).toString('hex')}`);
    return ent;
  }
}

class Lw360hrData {
  protocolVersion: string;
  commandId: string;
  longitude: string;
  latitude: string;
  gpsFixStatus: string;
  reserve: string;
  calorie: string;
  batteryCapacity: string;
  dateTime: string;
  beaconId: string;
  beaconType: string;
  rssi: string;
  txPower: string;
  heartRate: string;
  temperature: string;
  step: string;
  distance: string;
}

export default new Lw360hrService()
import express from "express";
import {
  AddNotificationError,
  AllNotificationsCleared,
  CommandFailure,
  CommandSuccess,
  InvalidCommand,
  Notification,
  NotificationAdded,
  NotificationCommand,
  NotificationCommandResult,
  NotificationCommandResultTag,
  NotificationCommandTag,
  NotificationNotAdded,
  NotificationNotRemoved,
  NotificationRemoved,
  Notifications,
  NotificationsCleared,
  RemoveNotificationError,
  RemoveNotificationResult,
  validateNotificationCommand,
} from "./notifications";
import { Either, Left, Right, EitherTag } from "./utilities";

// Map from user id to list of notifications
const notifications = new Map<number, Notification[]>();
let notificationId = 0;

const application = express();
application.use(express.json());

// Take in a `NotificationCommand` and act on it, responding accordingly with a
// a `NotificationCommandResult`
application.post("/notification", (request: express.Request, response: express.Response) => {
  console.log("Received body:", request.body);
  const maybeCommand = validateNotificationCommand(request.body);
  if (!maybeCommand.valid) {
    const errorString =
      typeof maybeCommand.errors === "string"
        ? maybeCommand.errors
        : JSON.stringify(maybeCommand.errors);

    return response.status(400).send(CommandFailure(InvalidCommand(errorString)));
  }

  const commandResult = executeCommand(maybeCommand.value


pc, 0, current);
}

void handle_cp_disabled(struct pt_regs *regs, unsigned long pc, unsigned long npc,
			unsigned long psr)
{
	send_sig_fault(SIGILL, ILL_COPROC, (void __user *)pc, 0, current);
}

void handle_cp_exception(struct pt_regs *regs, unsigned long pc, unsigned long npc,
			 unsigned long psr)
{
#ifdef TRAP_DEBUG
	printk("Co-Processor Exception at PC %08lx NPC %08lx PSR %08lx\n",
	       pc, npc, psr);
#endif
	send_sig_fault(SIGILL, ILL_COPROC, (void __user *)pc, 0, current);
}

void handle_hw_divzero(struct pt_regs *regs, unsigned long pc, unsigned long npc,
		       unsigned long psr)
{
	send_sig_fault(SIGFPE, FPE_INTDIV, (void __user *)pc, 0, current);
}

#ifdef CONFIG_DEBUG_BUGVERBOSE
void do_BUG(const char *file, int line)
{
        // bust_spinlocks(1);   XXX Not in our original BUG()
        printk("kernel BUG at %s:%d!\n", file, line);
}
EXPORT_SYMBOL(do_BUG);
#endif

/* Since we have our mappings set up, on multiprocessors we can spin them
 * up here so that timer interrupts work during initialization.
 */

void trap_init(void)
{
	extern void thread_info_offsets_are_bolixed_pete(void);

	/* Force linker to barf if mismatched */
	if (TI_UWINMASK    != offsetof(struct thread_info, uwinmask) ||
	    TI_TASK        != offsetof(struct thread_info, task) ||
	    TI_FLAGS       != offsetof(struct thread_info, flags) ||
	    TI_CPU         != offsetof(struct thread_info, cpu) ||
	    TI_PREEMPT     != offsetof(struct thread_info, preempt_count) ||
	    TI_SOFTIRQ     != offsetof(struct thread_info, softirq_count) ||
	    TI_HARDIRQ     != offsetof(struct thread_info, hardirq_count) ||
	    TI_KSP         != offsetof(struct thread_info, ksp) ||
	    TI_KPC         != offsetof(struct thread_info, kpc) ||
	    TI_KPSR        != offsetof(struct thread_info, kpsr) ||
	    TI_KWIM        != offsetof(struct thread_info, kwim) ||
	    TI_REG_WINDOW  != offsetof(struct thread_info, reg_window) ||
	    TI_RWIN_SPTRS  != offsetof(struct thread_info, rwbuf_stkptrs) ||
	    TI_W_SAVED     != offsetof(struct thread_info, w_saved))
		thread_info_offsets_are_bolixed_pete();

	/* Attach to the address space of init_task. */
	mmgrab(&init_mm);
	current->active_mm = &init_mm;

	/* NOTE: Other cpus have this done as they are started
	 *       up on SMP.
	 */
}


ls.result(
            getMissingPaths(zkc, uri, "path/to/log"));

        assertEquals(
            Lists.newArrayList(
                uri.getPath() + "/path/to/log",
                uri.getPath() + "/path/to",
                uri.getPath() + "/path"
            ),
            missingPaths);
    }

    @Test(timeout = 60000)
    public void testGetMissingPathsRecursive2() throws Exception {
        String path = uri.getPath() + "/path/to/log";
        ZkUtils.createFullPathOptimistic(
            zkc.get(), path, EMPTY_BYTES, zkc.getDefaultACL(), CreateMode.PERSISTENT);

        List<String> missingPaths = FutureUtils.result(
            getMissingPaths(zkc, uri, "path/to/log"));

        assertEquals(
            Collections.emptyList(),
            missingPaths);
    }

    @Test(timeout = 60000)
    public void testGetMissingPathsFailure() throws Exception {
        ZooKeeper mockZk = mock(ZooKeeper.class);
        ZooKeeperClient mockZkc = mock(ZooKeeperClient.class);
        when(mockZkc.get()).thenReturn(mockZk);
        doAnswer(invocationOnMock -> {
            String path = (String) invocationOnMock.getArguments()[0];
            StatCallback callback = (StatCallback) invocationOnMock.getArguments()[2];
            callback.processResult(Code.BADVERSION.intValue(), path, null, null);
            return null;
        }).when(mockZk).exists(anyString(), anyBoolean(), any(StatCallback.class), anyObject());

        try {
            FutureUtils.result(getMissingPaths(mockZkc, uri, "path/to/log"));
            fail("Should fail on getting missing paths on zookeeper exceptions.");
        } catch (ZKException zke) {
            assertEquals(Code.BADVERSION, zke.getKeeperExceptionCode());
        }
    }

    @Test(timeout = 60000)
    public void testRenameLog() throws Exception {
        String logName = testName.getMethodName();
        String logIdentifier = "<default>";
        int numSegments = 5;

        createLog(
            zkc,
            uri,
            logName,
            logIdentifier,
            numSegments);

        String newLogName = "path/to/new/" + logName;
        FutureUtils.result(metadataStore.renameLog(uri, logName, newLogName));
    }

    @Test(timeout = 60000, expected = LogExistsException.class)
    public void testRenameLogExists() throws Exception {
        String logName = testName.getMethodName();
        String logIdentifier = "<default>";
        int numSegments = 5;
        createLog(
            zkc,
            uri,
            logName,
            logIdentifier,
            numSegments);

        String newLogName = "path/to/new/" + logName;
        createLog(
            zkc,
            uri,
            newLogName,
            logIdentifier,
            3);

        FutureUtils.result(metadataStore.renameLog(uri, logName, newLogName));
    }

    @Test(timeout = 60000, expected = LockingException.class)
    public void testRenameLockedLog() throws Exception {
        String logName = testName.getMethodName();
        String logIdentifier = "<default>";
        int numSegments = 5;
        createLog(
            zkc,
            uri,
            logName,
            logIdentifier,
            numSegments);

        // create a lock
        String logRootPath = getLogRootPath(uri, logName, logIdentifier);
        String lockPath = logRootPath + LOCK_PATH;
        zkc.get().create(lockPath + "/test", new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL_SEQUENTIAL);

        String newLogName = "path/to/new/" + logName;
        FutureUtils.result(metadataStore.renameLog(uri, logName, newLogName));
    }

}
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE


myName01, followEnemyName02 )
	local gameObjectId = GameObject.GetGameObjectId("TppSoldier2", followEnemyName01 )
	local vehicle = GameObject.GetGameObjectId( "TppVehicle2", VehicleName )
	local sol01 = GameObject.GetGameObjectId( "TppSoldier2", followEnemyName01 )
	local sol02 = GameObject.GetGameObjectId( "TppSoldier2", followEnemyName02 )
	local command = { id="SetCommandAi", commandType = CommandAi.INFANTRY, vehicle=vehicle, sol01=sol01, sol02=sol02, }
	GameObject.SendCommand( gameObjectId, command )
end

function this.UnsetFollowVehiclesAi( followEnemyName )
	local enemyId = GameObject.GetGameObjectId("TppSoldier2", followEnemyName )
	local command = { id="RemoveCommandAi"  }
	GameObject.SendCommand( enemyId, command )
end

function this.SetIngnoreCoop()
	local gameObjectId = GameObject.GetGameObjectId( "afgh_remnants_cp" )
	local command = { id = "SetIgnoreCoop" }
	GameObject.SendCommand( gameObjectId, command )
end

function this.UnSetIngnoreCoop()
	local gameObjectId = GameObject.GetGameObjectId( "afgh_remnants_cp" )
	local command = { id = "RemoveIgnoreCoop" }
	GameObject.SendCommand( gameObjectId, command )
end

function this.SetCombatLocator( enemyId, locatorName )
	local SendCommand = GameObject.SendCommand
	local gameObjectId = {type="TppCommandPost2", index=0}
	local soldierId = GameObject.GetGameObjectId( "TppSoldier2", enemyId )

	local command = {
		id = "AssignMemberRoleInLocator",
		locatorName = LocatorName,
		soldier2GameObjectId = soldierId,
	}
	SendCommand(gameObjectId, command)
end

function this.SetCannonTime( TIME )
	local enemies = { type="TppSoldier2" }
	local time = TIME
	local command = { id = "SetCannonTime", time=time }
	GameObject.SendCommand( enemies, command )
end

function this.AimSubLasPos( TIME )
	local time = TIME
	local gameObjectId = GameObject.GetGameObjectId( "afgh_remnants_cp" )
	local command = { id = "SetTargetQuietTime", time=time }
	GameObject.SendCommand( gameObjectId, command )
end

function this.ReleaseEnemies( vehicleId, driverId, enemyId_1, enemyId_2, enemyId_3 )
	Fox.Log(" ### Release Enemies From A_Vehicle ###")
	local gameObjectId = { type="TppSoldier2" }

	local vehicle = GameObject.GetGameObjectId( "TppVehicle2", vehicleId )
	local driver= GameObject.GetGameObjectId( "TppSoldier2", driverId )

	local sol01 = GameObject.GetGameObjectId( "TppSoldier2", enemyId_1 )
	local sol02 = GameObject.GetGameObjectId( "TppSoldier2", enemyId_2 )
	local sol03 = GameObject.GetGameObjectId( "TppSoldier2", enemyId_3 )
	TppEnemy.SetEnable( enemyId_1 )
	TppEnemy.SetEnable( enemyId_2 )
	TppEnemy.SetEnable( enemyId_3 )

	local command = { id = "SetInVehicle", vehicle=vehicle, driver=driver, sol01=sol01, sol02=sol02, sol03=sol03, }
	GameObject.SendCommand( gameObjectId, command )
end

function this.LunchRocket( enemyId, x, y, z )
	local soldierId = GameObject.GetGameObjectId("TppS


krossade en man med sin tyngd genom att falla på honom."

L.aw_hed1_title = "Effektivitet"
L.aw_hed1_text = "upptäckte nöjet med huvudskott och utförde {num}."

L.aw_hed2_title = "Hjärnkirurg"
L.aw_hed2_text = "avlägsnade {num} hjärnor från dess huvud för en närmare analys."

L.aw_hed3_title = "Jag Beskyller TV-Spelen"
L.aw_hed3_text = "applicerade sin mordsimulerings-träning och placerade {num} dödliga huvudskott."

L.aw_cbr1_title = "Dunk Dunk Dunk"
L.aw_cbr1_text = "har en riktig bra svingarm med kofoten, vilket {num} offer fick reda på."

L.aw_cbr2_title = "Martin Timell"
L.aw_cbr2_text = "täckte sin kofot med inte mindre än {num} människors hjärnor."

L.aw_pst1_title = "Ihärdig Liten Rackare"
L.aw_pst1_text = "dödade {num} spelare med hjälp av pistolen. Sedan gick han och kramade någon till döds."

L.aw_pst2_title = "Slakt Med Låg Kaliber"
L.aw_pst2_text = "dödade en liten armé på {num} med en pistol. Förmodligen har han ett litet hagelgevär i mynningen."

L.aw_sgn1_title = "Lätt Som En Plätt"
L.aw_sgn1_text = "applicerade haglet där det gör som mest skada, och dödade {num} mål på kuppen."

L.aw_sgn2_title = "Tusen Små Hagel"
L.aw_sgn2_text = "gillade inte riktigt sitt hagel, så han gav bort allt. {num} mottagare levde inte länge nog för att ha kul med det."

L.aw_rfl1_title = "Peka och Klicka"
L.aw_rfl1_text = "visar att allt du behöver för {num} döda är ett gevär och en stadig hand."

L.aw_rfl2_title = "Jag Kan Se Ditt Huvud Härifrån"
L.aw_rfl2_text = "kände sitt gevär utan och innan. Nu känner {num} andra också hans till det."

L.aw_dgl1_title = "Gevär I Mini-Format"
L.aw_dgl1_text = "börjar få grepp om sin Desert Eagle och dödade {num} människor."

L.aw_dgl2_title = "Deaglar'n"
L.aw_dgl2_text = "blåste iväg {num} människor med sin handkanon."

L.aw_mac1_title = "Sikta(inte) och Skjut"
L.aw_mac1_text = "dödade {num} människor med sin MAC10, men vägrar uppge hur många skott som krävdes."

L.aw_mac2_title = "Köttbullar med MACaroner"
L.aw_mac2_text = "undrar vad som skulle hända om han kunde använda två MAC10 samtidigt. {num} gånger två?"

L.aw_sip1_title = "Var Tyst"
L.aw_sip1_text = "fick tyst på {num} människor med den ljuddä


},
	{
		"id": "19114",
		"name": "Bensheim",
		"state_id": "1367"
	},
	{
		"id": "19115",
		"name": "Berkatal",
		"state_id": "1367"
	},
	{
		"id": "19116",
		"name": "Biblis",
		"state_id": "1367"
	},
	{
		"id": "19117",
		"name": "Bickenbach",
		"state_id": "1367"
	},
	{
		"id": "19118",
		"name": "Biebertal",
		"state_id": "1367"
	},
	{
		"id": "19119",
		"name": "Biedenkopf",
		"state_id": "1367"
	},
	{
		"id": "19120",
		"name": "Birkenau",
		"state_id": "1367"
	},
	{
		"id": "19121",
		"name": "Bischofsheim",
		"state_id": "1367"
	},
	{
		"id": "19122",
		"name": "Borken",
		"state_id": "1367"
	},
	{
		"id": "19123",
		"name": "Braunfels",
		"state_id": "1367"
	},
	{
		"id": "19124",
		"name": "Breidenbach",
		"state_id": "1367"
	},
	{
		"id": "19125",
		"name": "Bruchkobel",
		"state_id": "1367"
	},
	{
		"id": "19126",
		"name": "Budingen",
		"state_id": "1367"
	},
	{
		"id": "19127",
		"name": "Burstadt",
		"state_id": "1367"
	},
	{
		"id": "19128",
		"name": "Buseck",
		"state_id": "1367"
	},
	{
		"id": "19129",
		"name": "Buttelborn",
		"state_id": "1367"
	},
	{
		"id": "19130",
		"name": "Butzbach",
		"state_id": "1367"
	},
	{
		"id": "19131",
		"name": "Darmstadt",
		"state_id": "1367"
	},
	{
		"id": "19132",
		"name": "Dautphetal",
		"state_id": "1367"
	},
	{
		"id": "19133",
		"name": "Dieburg",
		"state_id": "1367"
	},
	{
		"id": "19134",
		"name": "Dietzenbach",
		"state_id": "1367"
	},
	{
		"id": "19135",
		"name": "Dillenburg",
		"state_id": "1367"
	},
	{
		"id": "19136",
		"name": "Dreieich",
		"state_id": "1367"
	},
	{
		"id": "19137",
		"name": "Egelsbach",
		"state_id": "1367"
	},
	{
		"id": "19138",
		"name": "Eichenzell",
		"state_id": "1367"
	},
	{
		"id": "19139",
		"name": "Eltville",
		"state_id": "1367"
	},
	{
		"id": "19140",
		"name": "Eppstein",
		"state_id": "1367"
	},
	{
		"id": "19141",
		"name": "Erbach",


2.f32 s5, s5
// vcvtr.s32.f32 s6, s6
// vcvtr.s32.f32 s7, s7
_vroundq_f32 q10, q11, q0
_vroundq_f32 q10, q11, q1
vmul.f32 q2, q2, q15
vadd.f32 q2, q2, q9
vmul.f32 q3, q3, q15
vadd.f32 q3, q3, q9
// vcvtr.s32.f32 s8, s8
// vcvtr.s32.f32 s9, s9
// vcvtr.s32.f32 s10, s10
// vcvtr.s32.f32 s11, s11
// vcvtr.s32.f32 s12, s12
// vcvtr.s32.f32 s13, s13
// vcvtr.s32.f32 s14, s14
// vcvtr.s32.f32 s15, s15
_vroundq_f32 q10, q11, q2
_vroundq_f32 q10, q11, q3

vqmovn.s32 d0, q0
vqmovn.s32 d1, q1
vqmovn.s32 d2, q2
vqmovn.s32 d3, q3

vqmovn.s16 d0, q0
vqmovn.s16 d1, q1
vmax.s8 d0, d0, d28
vmax.s8 d1, d1, d28
vmin.s8 d0, d0, d29
vmin.s8 d1, d1, d29

vst1.32 {q0}, [r1]!

sub r2, r2, #4
cmp r2, #4
bge FLLoop4

FL1:
cmp r2, #0
beq FLEnd

FLLoop1:
vld1.32 {q0}, [r0]!
vmul.f32 q0, q0, q15
vadd.f32 q0, q0, q9
// vcvtr.s32.f32 s0, s0
// vcvtr.s32.f32 s1, s1
// vcvtr.s32.f32 s2, s2
// vcvtr.s32.f32 s3, s3
_vroundq_f32 q10, q11, q0

vqmovn.s32 d0, q0
vqmovn.s16 d0, q0
vmax.s8 d0, d0, d28
vmin.s8 d0, d0, d29

vst1.32 {d0[0]}, [r1]!

subs r2, r2, #1
bne FLLoop1

FLEnd:
pop {pc}
#endif
#endif


Version) {
  authVersion_ = authVersion;
  setParameter(std::string("AuthVersion"), std::to_string(authVersion));
}

std::string BindAuthToMachineRequest::getLogicalExp() const {
  return logicalExp_;
}

void BindAuthToMachineRequest::setLogicalExp(const std::string &logicalExp) {
  logicalExp_ = logicalExp;
  setParameter(std::string("LogicalExp"), logicalExp);
}

int BindAuthToMachineRequest::getAutoBind() const {
  return autoBind_;
}

void BindAuthToMachineRequest::setAutoBind(int autoBind) {
  autoBind_ = autoBind;
  setParameter(std::string("AutoBind"), std::to_string(autoBind));
}

std::vector<std::string> BindAuthToMachineRequest::getUnBind() const {
  return unBind_;
}

void BindAuthToMachineRequest::setUnBind(const std::vector<std::string> &unBind) {
  unBind_ = unBind;
}

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

#include <alibabacloud/sas/model/ListInterceptionTargetPageResult.h>
#include <json/json.h>

using namespace AlibabaCloud::Sas;
using namespace AlibabaCloud::Sas::Model;

ListInterceptionTargetPageResult::ListInterceptionTargetPageResult() :
	ServiceResult()
{}

ListInterceptionTargetPageResult::ListInterceptionTargetPageResult(const std::string &payload) :
	ServiceResult()
{
	parse(payload);
}

ListInterceptionTargetPageResult::~ListInterceptionTargetPageResult()
{}

void ListInterceptionTargetPageResult::parse(const std::string &payload)
{
	Json::Reader reader;
	Json::Value value;
	reader.parse(payload, value);
	setRequestId(value["RequestId"].asString());
	auto allRuleTargetListNode = value["RuleTargetList"]["RuleTarget"];
	for (auto valueRuleTargetListRuleTarget : allRuleTargetListNode)
	{
		RuleTarget ruleTargetListObject;
		if(!valueRuleTargetListRuleTarget["AppName"].isNull())
			ruleTargetListObject.appName = valueRuleTargetListRuleTarget["AppName"].asString();
		if(!valueRuleTargetListRuleTarget["TargetId"].isNull())
			ruleTargetListObject.targetId = std::stol(valueRuleTargetListRuleTarget["TargetId"].asString());
		if(!valueRuleTargetListRuleTarget["TargetName"].isNull())
			ruleTargetListObject.targetName = valueRuleTargetListRuleTarget["TargetName"].asString();
		if(!valueRuleTargetListRuleTarget["Namespace"].isNull())
			ruleTargetListObject._namespace = valueRuleTargetListRuleTarget["Namespace"].asString();
		if(!valueRuleTargetListRuleTarget["TargetType"].isNull())
			ruleTargetListObject.targetType = valueRuleTargetListRuleTarget["TargetType"].asString();
		if(!valueRuleTargetListRuleTarget["ClusterId"].isNull())
			ruleTargetListObject.clusterId = valueRuleTargetListRuleTarget["ClusterId"].asString();
		if(!valueRuleTargetListRuleTarget["ClusterName"].isNull())
			ruleTargetListObject.clusterName = valueRuleTargetListRuleTarget["ClusterName"].asString();
		if(!valueRuleTargetListRuleTarget["RuleType"].isNull())
			ruleTargetListObject.ruleType = valueRuleTargetListRuleTarget


_protection_fault.set_handler_fn(general_protection_fault);
        idt.invalid_opcode.set_handler_fn(invalid_opcode);
        idt.machine_check.set_handler_fn(machine_check);
        idt.non_maskable_interrupt.set_handler_fn(non_maskable_interrupt);
        idt.virtualization.set_handler_fn(virtualization);
        idt.x87_floating_point.set_handler_fn(x87_floating_point);
        idt.stack_segment_fault.set_handler_fn(stack_segment_fault);
        idt.simd_floating_point.set_handler_fn(simd_floating_point);
        idt.overflow.set_handler_fn(overflow);
        idt.debug.set_handler_fn(debug);
        // 在IDT中为双重错误处理程序设置堆栈索引
        unsafe {
            idt.double_fault.set_handler_fn(double_fault).set_stack_index(gdt::DOUBLE_FAULT_LIST_INDEX);
        }
        idt[InterruptIndex::Timer.into()].set_handler_fn(timer_interrupt);
        idt[InterruptIndex::KeyBoard.into()].set_handler_fn(keyboard_interrupt);
        idt
    };
}

//---------------------------------中断处理--------------------------------------
// 中断索引表
#[derive(Copy, Clone, Debug)]
#[repr(u8)]
enum InterruptIndex {
    // 时钟中断
    Timer = PIC_MAIN,
    // 键盘中断
    KeyBoard,
}

impl From<usize> for InterruptIndex {
    fn from(index: usize) -> Self {
        Self::from(index as u8)
    }
}

impl From<u8> for InterruptIndex {
    fn from(index: u8) -> Self {
        match index {
            32 => InterruptIndex::Timer,

            0..32 => {
                panic!("0-31 vector already used for exception!")
            }
            other => {
                panic!("the index is invalid!")
            }
        }
    }
}

impl From<InterruptIndex> for u8 {
    fn from(index: InterruptIndex) -> Self {
        index as u8
    }
}

impl From<InterruptIndex> for usize {
    fn from(index: InterruptIndex) -> Self {
        u8::from(index) as usize
    }
}

/// 时钟中断
/// 该频率是常量HZ，该值一般是在100 ~ 1000之间。
/// 该中断的作用是为了定时更新系统日期和时间，使系统时间不断地得到跳转。
/// 另外该中断的中断处理函数除了更新系统时间外，还需要更新本地CPU统计数。
/// 指的是调用scheduler_tick递减进程的时间片，若进程的时间片递减到0，进程则被调度出去而放弃CPU使用权
extern "x86-interrupt" fn timer_interrupt(_stackframe: &mut InterruptS


            try
                    {
                        if (requestQueue.Count > 0)
                        {
                            maybeWorkItem = requestQueue.Dequeue();
                        }
                        else
                        {
                            maybeWorkItem = null;
                        }
                        StatsReadout.QueueLength = requestQueue.Count;
                    }
                    finally
                    {
                        Monitor.Exit(requestQueue);
                    }
                }
                else
                {
                    maybeWorkItem = null;
                    Debug.Log("Meshing thread timed out getting a lock on the task queue");
                }
                if (!maybeWorkItem.HasValue)
                {
                    // Wait a bit; TODO tune SLEEP_TIME
                    Thread.Sleep(SLEEP_TIME);
                    continue;
                }
                // We've got something to do!
                Request workItem = maybeWorkItem.Value;
                watch = System.Diagnostics.Stopwatch.StartNew();
                Result result = CreateMeshes(workItem);
                watch.Stop();
                times[index] = watch.ElapsedTicks;
                index++;
                if (index >= times.Length)
                    index = 0;
                long average = 0;
                foreach (long item in times)
                {
                    average += item;
                }
                average /= times.Length;
                StatsReadout.BlockProcessTime = new System.TimeSpan(average);
                lock (resultQueue)
                {
                    resultQueue.Enqueue(result);
                }
                lock (recycledBlocks)
                {
                    recycledBlocks.Push(workItem.data);
                }
            }
            catch(Exception e)
            {
                Debug.LogException(e);
            }
        }
    }

    public override string Status()
    {
        StringBuilder sb = new StringBuilder();
        for(int i = 0; i < threads.Length; i++)
        {
            sb.Append("Thread ").Append(i).Append(": ").Append(threads[i] == null ? "NULL" : threads[i].ThreadState.ToString()).AppendLine();
        }
        return sb.ToString();
    }
}


uniform_location(&program, "u_color");
    let buffer = gl.create_buffer().unwrap();
    gl.bind_buffer(WebGlRenderingContext::ARRAY_BUFFER, Some(&buffer));
    let nodes = Scene::parse_items(include_str!("input.csv"));
    // let nodes = Scene::gen_items(500);
    // since the input data uses world coordinates (-inf, +inf), we need to place elements
    // at the (x,y) at the center of screen and translate them according to position
    set_geometry(
      &gl,
      (canvas.width() / 2) as f32,
      (canvas.height() / 2) as f32,
      1,
      1,
    );
    Scene {
      gl,
      program,
      canvas,
      position_attrib,
      translation_uniform,
      resolution_uniform,
      color_uniform,
      nodes,
    }
  }

  // fn gen_items(total: u32) -> Vec<Node> {
  //   let mut ptr: *mut Node = unsafe { add_particles(total as i32) };
  //   let mut ret: Vec<Node> = vec![];
  //   let end_rounded_up = ptr.wrapping_offset(total as isize);
  //   while ptr != end_rounded_up {
  //     unsafe { ret.push(*ptr) };
  //     ptr = ptr.wrapping_offset(1);
  //   }
  //   return ret;
  // }

  fn parse_items(csv_source: &str) -> Vec<Node> {
    let mut items = csv_source.lines();
    let mut nodes: Vec<Node> = vec![];
    while let Some(item) = items.next() {
      if !item.is_empty() {
        match parse_node(item) {
          Ok(node) => nodes.push(node),
          Err(e) => println!("Failed to parse node {}", e),
        }
      }
    }
    return nodes;
  }

  pub fn draw_scene(&self) {
    let width = self.canvas.width();
    let height = self.canvas.height();
    let gl = &self.gl;
    gl.viewport(0, 0, width as i32, height as i32);
    gl.clear_color(0.0, 0.0, 0.0, 1.0);
    gl.clear(WebGlRenderingContext::COLOR_BUFFER_BIT);
    gl.use_program(Some(&self.program));
    gl.enable_vertex_attrib_array(self.position_attrib);
    gl.vertex_attrib_pointer_with_i32(
      self.position_attrib,
      2,
      WebGlRenderingContext::FLOAT,
      false,
      0,
      0,
    );
    gl.uniform2f(
      self.resolution_uniform.as_ref(),
      width as f32,
      height as f32,
    );
    let z_coords = self.nodes.iter().map(|n| n.z).collect::<Vec<f64>>();
    let rgb_coords = z_coords_to_rgb(&z_coords);
    for (i, node) in self.nodes.iter().enumerate() {
      gl.uniform4f(
        self.color_uniform.as_ref(),
        rgb_coords[i].r as f32,
        rgb_coords[i].g as f32,
        rgb_coords[i].b as f32,
        1.0,
      );
      let translation = [node.x as f32, node.y as f32];
      gl.uniform2fv_with_f32_array(self.translation_uniform.as_ref(), &translation);
      gl.draw_arrays(WebGlRenderingContext::TRIANGLES, 0, 6);
    }

    fn vec_min<T: PartialOrd + Copy>(v: &Vec<T>) -> T {
      *v.iter().min_by(|&x, y| x.partial_cmp(y).unwrap()).unwrap()
    }

    fn vec_max<T: PartialOrd + Copy>


)',
                                    'rgba(139, 92, 246, 0.85)',
                                    'rgba(16, 185, 129, 0.85)',
                                    'rgba(245, 158, 11, 0.85)',
                                    'rgba(239, 68, 68, 0.85)'
                                ],
                                borderRadius: 8,
                                borderSkipped: false
                            }]
                        },
                        options: {
                            responsive: true,
                            maintainAspectRatio: false,
                            scales: {
                                y: {
                                    beginAtZero: true,
                                    ticks: {
                                        callback: function(value) { return value.toLocaleString(); },
                                        font: { weight: '600', size: 11 }
                                    },
                                    grid: { color: 'rgba(0, 0, 0, 0.05)' }
                                },
                                x: {
                                    ticks: { font: { weight: '600', size: 11 } },
                                    grid: { display: false }
                                }
                            },
                            plugins: {
                                legend: { display: false },
                                tooltip: {
                                    callbacks: {
                                        label: function(context) {
                                            return context.label + ': ' + context.formattedValue + ' passengers';
                                        }
                                    }
                                }
                            }
                        }
                    });

                    console.log("✅ Passenger chart created successfully");
                    return true;
                } catch (error) {
                    console.error("❌ Passenger chart error:", error);
                    return false;
                }
            }

            // Initialize map
            function initMap() {
                console.log("🗺 Creating map...");

                if (typeof L === 'undefined') {
                    console.error("❌ Leaflet not loaded");
                    return false;
                }

                try {
                    var mapElement = document.getElementById('map');
                    if (!mapElement) {
                        console.error("❌ Map element not found");
                        return false;
                    }

                    map = L.map('map').setView([35.7006, 139.739], 11);
                    L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
                        attribution: '© OpenStreetMap contributors'
                    }).addTo(map);

                    for (var i = 0; i < stations.length; i++) {
                        var s = stations[i];
                        var iconHtml = '
' + s.rank + '
';

                        var icon = L.divIcon({
                            html: iconHtml,
                            iconSize: [32, 32],
                            iconAnchor: [16, 16]
                        });

                        var popupHtml = '
' + s.name + '
' + s.operator + ' • ' + s.railway + '
Daily Passengers: ' + s.passengers.toLocaleString() + '
';

                        L.marker([s.lat, s.lng], {icon: icon}).addTo(map).bindPopup(popupHtml);
                    }

                    setTimeout(function() {
                        if (map) map.invalidateSize();
                    }, 100);


1wdd{height:64px;margin:16px 0 24px -24px;padding:12px 0;width:100vw}.l8YSdd{align-items:center;display:flex;overflow:auto hidden;width:100%}.l8YSdd::before{width:24px;content:"";display:block;flex-shrink:0}.QhHVZd{border-width:0;box-shadow:0 1px 2px 0 rgba(60,64,67,.3),0 1px 3px 1px rgba(60,64,67,.15);border-radius:8px;flex-shrink:0;margin-right:16px;width:48px}.QhHVZd .VfPpkd-BFbNVe-bF1uUb{opacity:0}.atwQXd{bottom:50%;position:absolute;right:50%;transform:translate(50%,50%)}.fGct3b .cN0oRe,.J1Igtd .cN0oRe{display:inline-block}.hIGwCc .cN0oRe,.fGct3b .QhHVZd,.J1Igtd .QhHVZd{display:none}.hIGwCc .QhHVZd{display:inline-block}.JGYmdb{border-radius:24px;align-content:center;border:1px solid rgb(154,160,166);display:flex;height:40px;margin-bottom:32px;padding-right:24px;top:-46px;width:fit-content;z-index:1}.qxNhq .JGYmdb{border-color:white}.ELDAIb{font-size:20px;height:20px;margin:auto 16px;margin-right:8px}.QUSrl{font-family:"Google Sans","Product Sans",Helvetica,Arial,sans-serif;font-size:14px;font-weight:500;line-height:20px;text-transform:none;margin:auto 0}@media screen and (min-width:600px){.XcNflb .cN0oRe{width:96px}.PyyLUd{right:-48px}.ynrBgc{font-family:"Google Sans Display",Roboto,Arial,sans-serif;line-height:3.25rem;font-size:2.75rem;letter-spacing:0;font-weight:400;font-weight:500}.F5UCq{font-family:"Google Sans",Roboto,Arial,sans-serif;line-height:2.75rem;font-size:2.25rem;letter-spacing:0;font-weight:400;font-weight:500}.rQkmxe{font-family:"Google Sans",Roboto,Arial,sans-serif;line-height:2.5rem;font-size:2rem;letter-spacing:0;font-weight:400;font-weight:500}.JU1wdd{margin-left:-72px}.l8YSdd::before{width:72px}}@media screen and (min-width:840px){.jaQz3d{background:linear-gradient(to right,rgb(32,33,36) 0,rgba(0,0,0,0) 56%),linear-gradient(to top,rgb(32,33,36) 0,rgba(0,0,0,0) 56%)}.Mqg6jb{display:inline}.Il7kR .cN0oRe{display:none}.XcNflb{min-height:56.25vw}.XcNflb .qxNhq{margin-top:112px}.Fd93Bb{width:560px}.Il7kR .Fd93Bb,.Il7kR .tv4jIf{width:500px}.tv4jIf{margin-top:16px}.atwQXd{display:none}}@media screen and (min-width:960px){.Il7kR .Fd93Bb,.Il7kR .tv4jIf{width:636px}.J1Igtd .cN0oRe{display:none}.J1Igtd .Q


.ttqipai.com',	'fregiv.ttqipai.com'},
{'31482',	'frontdesk003.51mudi.com',	'frontdesk003.51mudi.com'},
{'31483',	'froot.nl',	'froot.nl'},
{'31484',	'fs2dfs.3322.org',	'fs2dfs.3322.org'},
{'31485',	'fs45fd.cn',	'fs45fd.cn'},
{'31486',	'fs5k.spaces.live.com',	'fs5k.spaces.live.com'},
{'31487',	'fsd3fds.3322.org',	'fsd3fds.3322.org'},
{'31488',	'fsdbc.cn',	'fsdbc.cn'},
{'31489',	'fsgnfjh123.3322.org',	'fsgnfjh123.3322.org'},
{'31490',	'ft5yj.com',	'ft5yj.com'},
{'31491',	'ft916.8800.org',	'ft916.8800.org'},
{'31492',	'ft917.3322.org',	'ft917.3322.org'},
{'31493',	'ftp.scarlet.be',	'ftp.scarlet.be'},
{'31494',	'ftp4sales.cn',	'ftp4sales.cn'},
{'31495',	'fu456.com',	'fu456.com'},
{'31496',	'fu678.com',	'fu678.com'},
{'31497',	'fucai3dtuku.com',	'fucai3dtuku.com'},
{'31498',	'fucai66.cn',	'fucai66.cn'},
{'31499',	'fuck.ss.la',	'fuck.ss.la'},
{'31500',	'fuckrav.9966.org',	'fuckrav.9966.org'},
{'31501',	'fucn.ch.ma',	'fucn.ch.ma'},
{'31502',	'fullantispywareonlinescane.com',	'fullantispywareonlinescane.com'},
{'31503',	'fullantispywareproscan.com',	'fullantispywareproscan.com'},
{'31504',	'funky-soft.org',	'funky-soft.org'},
{'31505',	'funloveonline.com',	'funloveonline.com'},
{'31506',	'funnyvalentinessite.com',	'funnyvalentinessite.com'},
{'31507',	'funso8.com',	'funso8.com'},
{'31508',	'fuoqlasdx.dnsdojo.org',	'fuoqlasdx.dnsdojo.org'},
{'31509',	'futjap.net',	'futjap.net'},
{'31510',	'futurepay.info',	'futurepay.info'},
{'31511',	'fuy88.cn',	'fuy88.cn'},
{'31512',	'fvbvbrt.2288.org',	'fvbvbrt.2288.org'},
{'31513',	'fwef222.cn',	'fwef222.cn'},
{'31514',	'fwefr43.cn',	'fwefr43.cn'},
{'31515',	'fx.pq.to',	'fx.pq.to'},
{'31516',	'fx2009jj.cn',	'fx2009jj.cn'},
{'31517',	'fxcctv-2b.cn',	'fxcctv-2b.cn'},
{'31518',	'fxctz.com',	'fxctz.com'},
{'31519',	'fxok.cn',	'fxok.cn'},
{'31520',	'fxtn5.com',	'fxtn5.com'},
{'31521',	'fyg.cc',	'fyg.cc'},
{'31522',	'fyivbrl3b0dyf.cn',	'fyivbrl3b0dyf.cn'},
{'31523',	'fymuqah.co


 Klonlama
GitHub repo'sunu klonlayın:
```bash
git clone https://github.com/buildonhybrid/integrity-node.git
cd integrity-node
```

## Adım 5: Çevre Değişkenleri Ayarları
.env.example dosyasını .env olarak kopyalayın:
```bash
cp .env.example .env
```

.env dosyasını düzenleyin:
```bash
nano .env
```

**.env dosyasındaki örnek içerik:**
```env
RPC_URL=<your_arbitrum_rpc_url>
OPERATOR_PRIVATE_KEY=<your_operator_private_key>
PROTOCOL_CONTRACT_ADDRESS=0x070Af5bcE820f61e409417AfF9b4C1B15B6537df
```

**Bu kısımları kendi bilgilerinizle değiştirin:**
- `<your_arbitrum_rpc_url>` - Arbitrum RPC URL'niz
- `<your_operator_private_key>` - Operator wallet private key'niz

NOT: Operator adresine 0.002 falan fee arb eth gönderin. Operator kaydı için gerekli.

### RPC URL Seçenekleri:
- **Alchemy:** `https://arb-mainnet.g.alchemy.com/v2/YOUR_API_KEY`
- **Infura:** `https://arbitrum-mainnet.infura.io/v3/YOUR_PROJECT_ID`
- **QuickNode:** `https://your-endpoint.arbitrum-mainnet.quiknode.pro/YOUR_TOKEN/`

## Adım 6: Node'u Başlatma
Arka planda çalıştırın:
```bash
docker-compose up -d
```

Logları kontrol edin:
```bash
docker-compose logs -f hybrid-node
```

## Adım 7: Lisans Delegasyonu
Node başarıyla çalıştıktan sonra:
1. https://nodes.buildonhybrid.com/ adresine git
2. **NFT lisans cüzdanınızı** bağla (operator adresinden farklı olabilir)
3. Lisanslarınızı operator adresinize delegate et (Her operator wallet için maksimum 50 lisans)

**ÖNEMLİ:**
- **Operator adresi:** Node'un çalıştığı cüzdan (`.env` dosyasındaki private key)
- **NFT lisans cüzdanı:** Hybrid NFT lisanslarının bulunduğu cüzdan
- Bu iki cüzdan farklı olabilir, lisansları operator adresine delegate etmeniz gerekir

## Faydalı Komutlar

### Node Durumunu Kontrol Etme
Çalışan container'ları gösterin:
```bash
docker ps
```

Node loglarını izleyin:

Not: docker-compose logs ile logları kontrol edecekseniz `cd integrity-node` ile integrity-node klasörünün içine girmeniz gerekiyor ilk önce. Kolay olsun diye ben ona göre ayarladım ama normal şekilde loglara bakmak isterseniz iki komut var birincisi `docker logs -f hybrid-node` ikincisi `docker logs -f hybrid-node-autoupdate`

```bash
cd
cd integrity-node
docker-compose logs -f hybrid-node
```

Watchtower loglarını izleyin:
```bash
cd
cd integrity-node
docker-compose logs -f autoupdate
```

### Node'u Yeniden Başlatma
Durdurun:
```bash
cd
cd integrity-node
docker-compose down
```

Güncelleme ile başlatın:
```bash
docker-compose up -d --pull always
```

### Tamamen Temizlik
Container'ları durdurun ve temizleyin:
```bash
cd integrity-node
docker-compose down
sudo docker system prune -a
```

## Sorun Giderme

### Docker İzin Hatası
```bash
sudo usermod -aG docker $USER
newgrp docker
```

### Port Çakışması
Kullanılan portları kontrol edin:
```bash
sudo netstat -tulpn | grep :PORT_NUMBER
```

### Log Kontrolü
Detaylı loglar:
```bash
cd integrity


ов.
* Для Reality рекомендуется использовать Nginx как обратный прокси, который можно установить через скрипт.
* Рекомендуется включить fail2ban, который также можно установить через скрипт.
* Используйте предложение о ссылке для обмена от [@DuckSoft](https://github.com/DuckSoft) [(beta)](https://github.com/XTLS/Xray-core/issues/91), поддерживающее Qv2ray, V2rayN, V2rayNG.
* Используйте предложение из проекта [XTLS](https://github.com/XTLS/Xray-core/issues/158), следуя стандарту [UUIDv5](https://tools.ietf.org/html/rfc4122#section-4.3), чтобы отобразить пользовательские строки в UUID VLESS.
* Установка Reality: [Установка сервера протокола Xray Reality](https://hey.run/archives/da-jian-xray-reality-xie-yi-fu-wu-qi).
* Риски использования протокола Reality: [Риски использования протокола Xray Reality](https://hey.run/archives/reality-xie-yi-de-feng-xian).
* Ускорение сервера с помощью протокола Reality: [Ускорение сервера с помощью "утечек" протокола Reality](https://hey.run/archives/use-reality).
* Добавлена конфигурация балансировки нагрузки Reality. Руководство: [Как развернуть балансировку нагрузки для протокола Reality](https://hey.run/archives/bushu-reality-balance).
* Добавлена конфигурация балансировки нагрузки ws/grpc. Руководство: [Расширенные возможности XRay – Создание балансировки нагрузки для сервера бэкенда](https://hey.run/archives/xrayjin-jie-wan-fa---da-jian-hou-duan-fu-wu-qi-fu-zai-jun-heng).
* Поддержка протокола gRPC, подробнее: [XRay продвинутые возможности – Использование протокола gRPC](https://hey.run/archives/xrayjin-jie-wan-fa---shi-yong-grpcxie-yi).

## Telegram группа

* Группа для обсуждений Telegram: [нажмите на ссылку](https://t.me/48VSqv7xIIFmZDZl)

## Подготовка

* Подготовьте сервер, который будет работать за границей и будет иметь публичный IP-адрес.
* Если вы устанавливаете протокол Reality, найдите доменное имя, соответствующее требованиям Xray.
* Если вы устанавливаете версию с TLS, подготовьте доменное имя и добавьте запись A.
* Прочитайте [официальную документацию Xray](https://xtls.github.io), чтобы понять протоколы Reality TLS WebSocket gRPC и информацию о Xray,


/*
Copyright (c) 2018-2019, tevador <tevador@gmail.com>

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
	* Redistributions of source code must retain the above copyright
	  notice, this list of conditions and the following disclaimer.
	* Redistributions in binary form must reproduce the above copyright
	  notice, this list of conditions and the following disclaimer in the
	  documentation and/or other materials provided with the distribution.
	* Neither the name of the copyright holder nor the
	  names of its contributors may be used to endorse or promote products
	  derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

#pragma once

#include <stdint.h>
#include "intrin_portable.h"

rx_vec_i128 soft_aesenc(rx_vec_i128 in, rx_vec_i128 key);

rx_vec_i128 soft_aesdec(rx_vec_i128 in, rx_vec_i128 key);

template<bool soft>
inline rx_vec_i128 aesenc(rx_vec_i128 in, rx_vec_i128 key) {
	return soft ? soft_aesenc(in, key) : rx_aesenc_vec_i128(in, key);
}

template<bool soft>
inline rx_vec_i128 aesdec(rx_vec_i128 in, rx_vec_i128 key) {
	return soft ? soft_aesdec(in, key) : rx_aesdec_vec_i128(in, key);
}


import numpy as np
import pandas as pd
import pytest

from causalml.match import NearestNeighborMatch, MatchOptimizer
from causalml.propensity import ElasticNetPropensityModel
from .const import RANDOM_SEED, TREATMENT_COL, SCORE_COL, GROUP_COL

@pytest.fixture
def generate_unmatched_data(generate_regression_data):
    generated = False

    def _generate_data():
        if not generated:
            y, X, treatment, tau, b, e = generate_regression_data()

            features = ["x{}".format(i) for i in range(X.shape[1])]
            df = pd.DataFrame(X, columns=features)
            df[TREATMENT_COL] = treatment

            df_c = df.loc[treatment == 0]
            df_t = df.loc[treatment == 1]

            df = pd.concat([df_t, df_c, df_c], axis=0, ignore_index=True)

            pm = ElasticNetPropensityModel(random_state=RANDOM_SEED)
            ps = pm.fit_predict(df[features], df[TREATMENT_COL])
            df[SCORE_COL] = ps
            df[GROUP_COL] = np.random.randint(0, 2, size=df.shape[0])

        return df, features

    yield _generate_data

def test_nearest_neighbor_match_by_group(generate_unmatched_data):
    df, features = generate_unmatched_data()

    psm = NearestNeighborMatch(replace=False, ratio=1.0, random_state=RANDOM_SEED)

    matched = psm.match_by_group(
        data=df,
        treatment_col=TREATMENT_COL,
        score_cols=[SCORE_COL],
        groupby_col=GROUP_COL,
    )

    assert sum(matched[TREATMENT_COL] == 0) == sum(matched[TREATMENT_COL] != 0)

def test_match_optimizer(generate_unmatched_data):
    df, features = generate_unmatched_data()

    optimizer = MatchOptimizer(
        treatment_col=TREATMENT_COL,
        ps_col=SCORE_COL,
        matching_covariates=[SCORE_COL],
        min_users_per_group=100,
        smd_cols=[SCORE_COL],
        dev_cols_transformations={SCORE_COL: np.mean},
    )

    matched = optimizer.search_best_match(df)

    assert sum(matched[TREATMENT_COL] == 0) == sum(matched[TREATMENT_COL] != 0)


// Copyright (c) Duende Software. All rights reserved.
// See LICENSE in the project root for license information.

using Duende.IdentityServer.Hosts.Shared.Configuration;
using Duende.IdentityServer.UI.AspNetIdentity.Models;

namespace IdentityServerHost;

internal static class IdentityServerExtensions
{
    internal static WebApplicationBuilder ConfigureIdentityServer(this WebApplicationBuilder builder)
    {
        builder.Services.AddIdentityServer(opt =>
            {
                // In load-balanced environments, synchronization delay is important.
                // In development, w


] 硫糖醛酸苷",
"thioglycerin":"[化] 硫甘油; 2,3-二羟基-1-丙硫醇",
"thioglycerol":"[医] 硫代甘油, 二羟丙硫醇",
"thioglycol":"2-硫代乙二醇, 2-硫基乙醇",
"thioglycolate":"巯基乙酸盐[酯]",
"thioglycolic acid":"[建] 氢硫基醋酸",
"thioglycollic acid":"[化] 巯基乙酸; 氢硫基乙酸\\n[医] 巯基乙酸",
"thioguanine":"n. [药]硫鸟嘌呤(一种抗肿瘤药)",
"thioguanosine":"[化] 硫鸟苷; 硫鸟嘌呤核苷",
"thiohistidine-betaine":"[化] 硫组氨酸甲基内盐; 麦硫因",
"thiohistidinebetaine":"[化] 麦角硫因; 巯组氨酸三甲内盐; 巯组氨酸三甲基内盐",
"thiohydantoic acid":"[化] 硫脲基乙酸",
"thiohydantoin":"[化] 海硫因; 乙内酰硫脲",
"thiohydracrylic acid":"[化] 巯基丙酸",
"thiohydroquinone":"[化] 硫氢醌; 对羟基苯硫酚",
"thiohydroxy":"[化] 巯基; 氢硫基",
"thiohypophosphate":"[化] 全硫连二磷酸盐",
"thiohypophosphoric acid":"[化] 全硫连二磷酸",
"thioic acid":"[化] 硫代酸",
"thioindigo":"硫靛蓝",
"thioindoxyl":"[化] 硫代-3-吲哚酚",
"thioindoxylic acid":"[化] 硫代吲羟酸",
"thioisonicotinamide":"[医] 硫异烟酰胺(抗结核药)",
"thioketal":"[化] 酮缩硫醇",
"thioketone":"n. [化]硫酮, 丙硫酮",
"thiokinase":"硫激酶",
"Thiokol":"n. 聚硫橡胶,乙硫橡胶[商标名]",
"thiokol latex":"[化] 聚硫胶乳",
"thiokol polysulfide(rubber)":"[化] 聚硫橡胶",
"thiol":"n. [化]硫醇",
"thiol acid":"[化] 硫羟酸",
"thiol ester":"[化] 硫羟酸酯",
"thiol transacetylase":"[化] 硫醇转乙酰酶",
"thiol-acetic acid":"[化] 硫羟乙酸",
"thiolactic acid":"[化] 硫羟乳酸\\n[医] 硫乳酸",
"thiolase":"硫解酶",
"thiolate":"硫醇盐, 烃硫基金属",
"thiolcarbonic acid":"[化] 一硫羟碳酸",
"thiolhistidine":"巯(基)组氨酸",
"thiolic":"a. thiol的变形",